<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2067970518453966336</id><updated>2012-01-20T21:28:34.810-05:00</updated><category term='Mobile'/><category term='Vista'/><category term='MySQL'/><category term='MVC'/><category term='XSL'/><category term='CSS'/><category term='WordPress'/><category term='SQL Server'/><category term='TinyMCE'/><category term='Java'/><category term='Search'/><category term='eXist XML'/><category term='ASP.NET'/><category term='Apprenticeship'/><category term='PHP'/><category term='Regex'/><category term='Development'/><category term='Textml'/><category term='XQuery'/><category term='Google Analytics'/><category term='TDD'/><category term='Other'/><category term='SEO'/><category term='MarkLogic Server'/><category term='Apache'/><category term='JavaScript'/><category term='Study Plans'/><title type='text'>Rendition Protocol</title><subtitle type='html'>A collection of notes, code snippets, instructions, et cetera for myself.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://renditionprotocol.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default?start-index=101&amp;max-results=100'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>152</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-482930778310195461</id><published>2011-12-26T10:34:00.003-05:00</published><updated>2011-12-26T10:44:03.562-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Crabmeat Cream Sauce</title><summary type='text'>We made this with lobster ravioli for a special occasion. The original recipe was for about one pound of pasta and in parentheses I've added my changes 3 pounds.2 ounces of unsalted butter (6 ounces for 3 lbs.)1 tablespoon of chopped shallots (1 large bulb for 3 lbs.)4 ounces of chunk crabmeat (8 ounces for 3 lbs.)2 ounces of Cognac (I substituted Grand Marnier because I had it on hand and used </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=482930778310195461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/482930778310195461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/482930778310195461'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2011/12/crabmeat-cream-sauce.html' title='Crabmeat Cream Sauce'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-9054185382844767683</id><published>2011-12-26T10:21:00.004-05:00</published><updated>2011-12-26T10:33:28.663-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Peach Cobbler in a Cast Iron Skillet</title><summary type='text'>This is insanely good, especially if you like cast-iron cooking.6 tablespoons of unsalted butter1 cup of sugar1 cup of flour2 teaspoons of baking powder1/4 teaspoon of salt1 cup + 1 tablespoon of whole milk1 can of sliced peaches with their liquid (I have been substituting 1 jar of Trader Joe's peach halves, minus 2 halves, with about half the liquid in the jar)Pre-heat the oven to 350 with a 10"</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=9054185382844767683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/9054185382844767683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/9054185382844767683'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2011/12/peach-cobbler-in-cast-iron-skillet.html' title='Peach Cobbler in a Cast Iron Skillet'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-7538243610560820833</id><published>2011-11-07T20:29:00.004-05:00</published><updated>2011-11-07T20:36:40.257-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><title type='text'>Testing Geolocation Locally with Chrome and URIs with file://</title><summary type='text'>If you need to test geolocation in Chrome using local files -- where your URL is going to start with file:// -- you need to throw a switch when you start Chrome. --allow-file-access-from-filesIf you're a Launchy user like me, you can do this by starting to type Chrome, hitting Tab, then pasting in that switch.This issue is documented and tracked here: http://code.google.com/p/chromium-os/issues/</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=7538243610560820833' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/7538243610560820833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/7538243610560820833'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2011/11/testing-geolocation-locally-with-chrome.html' title='Testing Geolocation Locally with Chrome and URIs with file://'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-1807410048279842667</id><published>2011-11-06T22:39:00.003-05:00</published><updated>2011-11-06T22:49:09.775-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>VirtualBox on Mac OS X Lion Running Windows XP and Accessing a USB Drive</title><summary type='text'>File this one under "odd."While running VirtualBox 4.1.4 on Mac OS X Lion as the host and Windows XP 3 as the guest, I was having some trouble getting my Western Digital Elements external hard drive recognized on the guest. The external was formatted for Windows and all my data was added from a Windows machine, so I could read it from the Mac, but I couldn't write to it. The Mac would recognize </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=1807410048279842667' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/1807410048279842667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/1807410048279842667'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2011/11/virtualbox-on-mac-os-x-lion-running.html' title='VirtualBox on Mac OS X Lion Running Windows XP and Accessing a USB Drive'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-5275574388671377581</id><published>2011-10-28T08:41:00.003-05:00</published><updated>2011-10-28T08:54:49.610-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Moving Thunderbird from a PC to a Mac</title><summary type='text'>This was pure awesome sauce when I heard I could do it.I had been using Thunderbird on a PC for about two years before needing to move over to a Mac, OS X Lion, to be specific. Thankfully, you can move your Thunderbird profile from a PC to a Mac with hardly any fuss at all.1) Open up a terminal window. You should be in your user directory by default. If not, get there. The user Library directory </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=5275574388671377581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5275574388671377581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5275574388671377581'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2011/10/moving-thunderbird-from-pc-to-mac.html' title='Moving Thunderbird from a PC to a Mac'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-8542384873408255070</id><published>2011-10-20T07:31:00.004-05:00</published><updated>2011-10-20T07:41:17.442-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XQuery'/><title type='text'>Testing for an empty sequence in XQuery</title><summary type='text'>In an XQuery code base I was maintaining recently, all external variables were strongly typed as strings (declare variable $input as xs:string external;). This saved some time and lines of code since we always knew the type of those variables and the code would fail fast if they were not strings.Unfortunately, the writers of the calling code decided it was too hard to make sure an empty string </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=8542384873408255070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/8542384873408255070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/8542384873408255070'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2011/10/testing-for-empty-sequence-in-xquery.html' title='Testing for an empty sequence in XQuery'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-7306002151899644471</id><published>2011-08-01T02:28:00.004-05:00</published><updated>2011-11-08T11:49:45.563-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><title type='text'>Freeware and Shareware Tools</title><summary type='text'>I'll always forget about some of these tools primarily because I don't use all of them all of the time.ASP.NET / Visual Studio-relatedAnkhCastle WindsorCruiseControl.NETELMAHEnterprise LibraryFxCopGhostDocLog4NetNAntNArrangeNCoverNHibernateNuGetNUnitPowerCommandsProductivity Power ToolsReflectorReSharperSandcastleStyleCopTestDriven.NETBitKinexCLRProfilerColorPicDAEMON Tools Lite (mounting CDs)</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=7306002151899644471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/7306002151899644471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/7306002151899644471'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2009/03/freeware-and-shareware-tools.html' title='Freeware and Shareware Tools'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-305430472422172578</id><published>2011-06-14T15:41:00.003-05:00</published><updated>2011-06-14T15:46:30.117-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><title type='text'>Beware Old Posts</title><summary type='text'>I noticed that many of my older posts are woefully out of date. I added a little JavaScript snippet to warn you about that. There's probably a more elegant way to do this, but it'll work for now.var message = " &lt;span style='font-size: 20px; font-weight: bold; color: red;'&gt;STOP! This is an old post. Are you sure it's still relevant?&lt;/span&gt;";var currentDate = new Date();var thisYear = </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=305430472422172578' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/305430472422172578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/305430472422172578'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2011/06/beware-old-posts.html' title='Beware Old Posts'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-3414864766435043359</id><published>2011-05-12T11:50:00.001-05:00</published><updated>2011-06-04T13:01:04.489-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XQuery'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><title type='text'>XQuery Katas</title><summary type='text'>After having several MarkLogic projects back-to-back, I haven't had a new one in far too long. So, to practice my XQuery in the hopes of having a new one soon, I've started a collection of XQuery katas.The intent of these is less TDD and more brushing up on XQuery, but I'm also interested in testing my functions. To that end you'll see I have my tests built using:Visual StudioNUnitSaxon HEMeager,</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=3414864766435043359' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3414864766435043359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3414864766435043359'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2011/05/xquery-katas.html' title='XQuery Katas'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-4115728854684289349</id><published>2011-05-12T11:40:00.001-05:00</published><updated>2011-06-04T13:01:25.542-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Getting Capabilities from WURFL in ASP.NET</title><summary type='text'>This is one of those things that took me a little too much time to find the first time around.I'm using WURFL with 51Degrees for mobile device detection in an ASP.NET MVC application. I needed to also detect whether the device using the app is a tablet or not. WUFL has the "is_tablet" capability defined, but this is not a default property on the Browser object.So how do you get at the value for </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=4115728854684289349' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/4115728854684289349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/4115728854684289349'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2011/05/getting-capabilities-from-wurfl-in.html' title='Getting Capabilities from WURFL in ASP.NET'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-7634272320942577890</id><published>2011-03-16T19:19:00.006-05:00</published><updated>2011-03-16T20:23:19.043-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Tequila</title><summary type='text'>I'm on a quest for a tequila that is as smooth to drink as Grand Marnier.paQuí Silvera : Surprisingly, this is a bit easier to drink than Herradura Añejo. It simply has a little less bite. I expected that I would like an añejo more.Herradura Añejo : It's not quite smooth sipping, but very good with a small piece of ice.Patrón Silver : Not sure what all the fuss is about here. They're clearly </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=7634272320942577890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/7634272320942577890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/7634272320942577890'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2011/03/tequila.html' title='Tequila'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-5125704729716246393</id><published>2011-03-16T14:57:00.005-05:00</published><updated>2011-03-16T15:04:23.435-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><title type='text'>Launchy, Remote Desktop, Dual Monitors, and Windows 7</title><summary type='text'>I've come to love Launchy -- to the point where I get irritated when it's not installed on a machine I might be working on temporarily.Unfortunately, when I setup my new machine, I suddenly could not trigger Launchy while using my preferred remote desktop application, visionapp Remote Desktop. I'm not sure if it was my new dual-monitor configuration or Windows 7, but every time I hit Alt+Space it</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=5125704729716246393' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5125704729716246393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5125704729716246393'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2011/03/launchy-remote-desktop-dual-monitors.html' title='Launchy, Remote Desktop, Dual Monitors, and Windows 7'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-725166344585959594</id><published>2011-02-25T19:07:00.002-05:00</published><updated>2011-02-25T19:10:54.554-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Study Plans'/><category scheme='http://www.blogger.com/atom/ns#' term='Apprenticeship'/><title type='text'>Reading List Now On Bitbucket</title><summary type='text'>I've noticed a number of developers making their reading lists public, so I've decided to stop writing mini blog posts about what I'm reading here and just make the whole list public over on Bitbucket.</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=725166344585959594' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/725166344585959594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/725166344585959594'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2011/02/reading-list-now-on-bitbucket.html' title='Reading List Now On Bitbucket'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-3319379364092833081</id><published>2011-02-01T00:01:00.000-05:00</published><updated>2011-02-01T00:01:04.301-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Study Plans'/><category scheme='http://www.blogger.com/atom/ns#' term='Apprenticeship'/><title type='text'>Study Plan: February, 2011</title><summary type='text'>I was finally able to finish C# in Depth! I do admit to reading the final couple of chapters on 4.0 quickly, but at least I know what they cover when I need the concepts.Before I started Clean Code I found a title from Wrox, Professional ASP.NET Design Patterns. Although I've read O'Reilly's Head First Design Patterns, I still don't feel like I have a great grasp on some of the fundamental </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=3319379364092833081' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3319379364092833081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3319379364092833081'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2011/02/study-plan-february-2011.html' title='Study Plan: February, 2011'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-2078839891302051087</id><published>2011-01-08T11:24:00.003-05:00</published><updated>2011-01-08T11:40:32.787-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Study Plans'/><category scheme='http://www.blogger.com/atom/ns#' term='Apprenticeship'/><title type='text'>Study Plan: January, 2011</title><summary type='text'>I finished The Art of Agile Development as planned in December. The key for me there will be to selectively apply what I can. It's unlikely that we would be able to use this development style completely for a few different reasons: we're all remote, we often work solo on projects because we're such a small group, and communication outside the group ... is improving.I'm fairly annoyed with myself </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=2078839891302051087' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2078839891302051087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2078839891302051087'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2011/01/study-plan-january-2011.html' title='Study Plan: January, 2011'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-6786213046635996535</id><published>2010-12-03T10:37:00.000-05:00</published><updated>2010-12-12T10:37:55.472-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Study Plans'/><category scheme='http://www.blogger.com/atom/ns#' term='Apprenticeship'/><title type='text'>Study Plan: December, 2010</title><summary type='text'>Well, my November study plan did not go as I hoped. I'm not quite sure what happened, but I had a hard time finishing up Learning JavaScript and I'm still not done with The Art of Agile Development. The latter I've been trying to read quickly (for reasons I'll explain at a later date), but I consistently find myself slowing down with it. I don't know whether to say that's frustrating or not -- I </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=6786213046635996535' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6786213046635996535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6786213046635996535'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2010/12/study-plan-december-2010.html' title='Study Plan: December, 2010'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-5170637110661220939</id><published>2010-11-24T10:35:00.000-05:00</published><updated>2010-12-12T10:36:33.674-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apprenticeship'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><title type='text'>Writing Unit Tests Makes Me Feel Stupid</title><summary type='text'>Writing unit tests makes me feel stupid.Allow me to explain.I'm not talking about full-blown TDD, but simply about a beginner trying to write some tests in order to make sure code is working as expected in as many cases as possible. What I almost invariably run up against is my own questionable design choices that usually boil down to three issues: lots of dependencies, needing non-trivial data </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=5170637110661220939' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5170637110661220939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5170637110661220939'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2010/11/writing-unit-tests-makes-me-feel-stupid.html' title='Writing Unit Tests Makes Me Feel Stupid'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-1249232296117472442</id><published>2010-11-19T17:49:00.002-05:00</published><updated>2010-11-19T17:52:47.766-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Regex'/><title type='text'>Regex Matches in C#</title><summary type='text'>static void Main(string[] args){  string sample = "Swedish field marshal ... fact that Gustav II father the Thirty Years' War";  Regex r = new Regex(@"JS_DisplayEntry\((\d*?)\)", RegexOptions.IgnoreCase);  MatchCollection collection = r.Matches(sample);  foreach (Match m in collection)  {    Console.WriteLine(m.Groups[1].Value);  }  Console.ReadLine();}</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=1249232296117472442' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/1249232296117472442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/1249232296117472442'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2010/11/regex-matches-in-c.html' title='Regex Matches in C#'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-8803364890981488596</id><published>2010-11-18T12:30:00.008-05:00</published><updated>2010-11-18T13:12:15.319-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XSL'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>XSL Embedded Resources, xsl:include, Saxon HE, and You</title><summary type='text'>I wanted to:Set my XSL files in my .NET console application to be embedded resources so they wouldn't be so easy to tinker withUse xsl:include to modularize some XSL where appropriatePass a parameter into one of the XSL filesUse Saxon for its XSL 2.0 supportAt first, before I needed xsl:include, the code worked absolutely fine. The problem I ran into is apparently related to where the .NET </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=8803364890981488596' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/8803364890981488596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/8803364890981488596'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2010/11/xsl-embedded-resources-xslinclude-saxon.html' title='XSL Embedded Resources, xsl:include, Saxon HE, and You'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-6907135017491460301</id><published>2010-11-14T17:16:00.003-05:00</published><updated>2010-11-14T17:27:48.565-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Meatballs</title><summary type='text'>Preheat the oven to 350.~1 lb of mixed ground beef, sausage, and veal OR 1/3 lb of each.1 egg1 clove of garlic1 cup of dried breadcrumbs1/4 cup of olive oil1/4 cup of waterSalt and pepper to your tasteParsley or oregano to your tasteMix it all together. Make balls about the size of a baseball. Place them on a baking sheet.Bake for about 40-45 minutes.</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=6907135017491460301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6907135017491460301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6907135017491460301'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2010/11/meatballs.html' title='Meatballs'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-831451166655258552</id><published>2010-11-11T10:35:00.001-05:00</published><updated>2010-12-12T10:36:49.162-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Study Plans'/><category scheme='http://www.blogger.com/atom/ns#' term='Apprenticeship'/><title type='text'>Study Plan: November, 2010</title><summary type='text'>Here's the planned reading list for November and what I hope to get out of each title. I usually like to read one code-focused and one non-code-focused at the same time.Learning JavaScript: I've used JavaScript for years, but always in bits and pieces. I decided to go a little deeper into it because it's a different language from my primary one (C#) and because I can use it immediately in my </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=831451166655258552' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/831451166655258552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/831451166655258552'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2010/11/study-plan-november-2010.html' title='Study Plan: November, 2010'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-6739946611658176797</id><published>2010-11-08T10:34:00.000-05:00</published><updated>2010-12-12T10:35:00.495-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apprenticeship'/><title type='text'>Obstacles &amp; Bootstrapping</title><summary type='text'>ObstaclesThe biggest obstacles in my way on this road are time and distractions. They're similar, but definitely not one in the same, and it's easy to let them interfere with my goals.TimeThis one's pretty simple. There's just not enough time in the day to learn everything I want to know about. More to the point, there's just enough time in the day to learn just enough to do my job, and I think </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=6739946611658176797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6739946611658176797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6739946611658176797'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2010/11/obstacles-bootstrapping.html' title='Obstacles &amp; Bootstrapping'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-3448416807072819661</id><published>2010-11-07T10:32:00.001-05:00</published><updated>2011-01-08T11:42:37.121-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apprenticeship'/><title type='text'>The Long Road</title><summary type='text'>Some days I hesitate even to call myself a software apprentice, but that's the best way to describe me.I've been involved with software, web development in particular, since 1999. I started out as a guy who kept volunteering for technical tasks with a publishing company working on CD-ROM products. First it was image manipulation in PhotoShop. Then it was tools like Folio to import data for </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=3448416807072819661' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3448416807072819661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3448416807072819661'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2010/11/long-road.html' title='The Long Road'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-1040466353830129480</id><published>2010-10-12T10:17:00.002-05:00</published><updated>2010-10-12T10:23:31.452-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><title type='text'>Stop All Visual Studio Web Applications From Starting When Debugging</title><summary type='text'>If you have a Visual Studio solution with more than one web application project, when you start the debugger you'll likely find that all the web applications will start their own ASP.NET Development Server instance. I wanted to stop that because I didn't need them all to start and I wanted to keep the system resources. Select the web application project. Go to the properties tab.  Find the "</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=1040466353830129480' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/1040466353830129480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/1040466353830129480'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2010/10/stop-all-visual-studio-web-applications.html' title='Stop All Visual Studio Web Applications From Starting When Debugging'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-3994305534783270865</id><published>2010-09-13T19:58:00.003-05:00</published><updated>2010-09-13T20:03:46.099-05:00</updated><title type='text'>Storing a Directory Path with a Space and Using it in PowerShell</title><summary type='text'>Step 1: Store the path in a variable like so$7Zip = "C:\Program Files (x86)\7za.exe"Step 2: Wrap the reference in the double quotes and precede with the call operator like soForEach-Object { &amp;"$7Zip" a ($_.fullname -replace "txt", "zip") $_.fullname }Step 3: Complain silently in your head about the time you wasted trying to figure that out.</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=3994305534783270865' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3994305534783270865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3994305534783270865'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2010/09/storing-directory-path-with-space-and.html' title='Storing a Directory Path with a Space and Using it in PowerShell'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-5512775449506288722</id><published>2010-07-30T19:47:00.002-05:00</published><updated>2010-07-30T19:51:07.860-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Find a Column in Your Database by Name</title><summary type='text'>SELECT t.name AS table_name,SCHEMA_NAME(schema_id) AS schema_name,c.name AS column_nameFROM sys.tables AS tINNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_IDWHERE c.name LIKE '%isTextbook%'ORDER BY schema_name, table_name;Props to SQL Authority.</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=5512775449506288722' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5512775449506288722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5512775449506288722'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2010/07/find-column-in-your-database-by-name.html' title='Find a Column in Your Database by Name'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-8438960098512831110</id><published>2010-07-23T09:04:00.002-05:00</published><updated>2010-07-23T09:08:26.601-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Convert HTML Stored in SQL Server as varbinary to Text</title><summary type='text'>I have a wonderfully exciting legacy database I'm handling and it contains a varbinary(MAX) field with HTML. For debugging purposes, every once in awhile I need to dig in and review what's stored there. Here's how I do that:SELECT CONVERT(VARCHAR(MAX), mainText) AS htmlString FROM entry WHERE entryid = 1380915</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=8438960098512831110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/8438960098512831110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/8438960098512831110'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2010/07/convert-html-stored-in-sql-server-as.html' title='Convert HTML Stored in SQL Server as varbinary to Text'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-5575255453163621635</id><published>2010-06-24T15:50:00.005-05:00</published><updated>2010-06-24T16:05:00.753-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>A Little URL Rewriting with Managed Fusion Rewriter</title><summary type='text'>I'm stuck on IIS 6 for now and I needed to do a bunch of URL rewriting. No one wants to spend money these days, so we didn't spring for the Helicon ISAPI_Rewrite product. I have a lot of legacy URLs to handle, but we won't keep them in place for more than a year and by that time we'll likely be on IIS 7 with its own rewriting tools.I went with the Managed Fusion Rewriter tool both for its </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=5575255453163621635' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5575255453163621635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5575255453163621635'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2010/06/little-url-rewriting-with-managed.html' title='A Little URL Rewriting with Managed Fusion Rewriter'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-5018979999664609456</id><published>2010-06-11T17:26:00.007-05:00</published><updated>2010-06-11T18:37:01.773-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>New Phrase: Smells Like Mountain Oysters To Me</title><summary type='text'>I suggest the casual usage of a new phrase: smells like mountain oysters to me.What does it mean? Roughly, it means someone's trying to make you look like an fool, possibly in front of others, but definitely for their own gain. It could also simply mean someone's trying to feed you a line of bullshit.Would you eat a bull's testicles? Neither would I, but that's what mountain oysters are. The </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=5018979999664609456' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5018979999664609456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5018979999664609456'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2010/06/new-phrase-smells-like-mountain-oysters.html' title='New Phrase: Smells Like Mountain Oysters To Me'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-5735026843038432558</id><published>2010-04-28T18:13:00.003-05:00</published><updated>2010-04-28T18:26:47.109-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><title type='text'>Fiddler, Localhost, and Visual Studio</title><summary type='text'>When you're running a site through Visual Studio's internal web server, Fiddler doesn't pick up the traffic. The help documentation gives a few tips for working around this problem, but the one that worked for me I found on Loren Halvorson's blog: add a dot [.] after localhost and before the port colon. http://localhost.:2951/Props to Loren.</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=5735026843038432558' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5735026843038432558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5735026843038432558'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2010/04/fiddler-localhost-and-visual-studio.html' title='Fiddler, Localhost, and Visual Studio'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-6594963679382460252</id><published>2010-04-13T20:46:00.003-05:00</published><updated>2010-04-13T20:56:02.947-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><category scheme='http://www.blogger.com/atom/ns#' term='XQuery'/><title type='text'>XQuery Link-Love</title><summary type='text'>Hi there.I recently received some link-love from Pete Aven (Twitter, Blog) for some XQuery and MarkLogic Server posts I have here.  The posts are kind of out-dated at this point, but I leave them up in case they help someone out. When I was just starting out, this kind of information was invaluable to me so I'm just trying to pay it forward.I'm currently on a big SQL Server based project and my </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=6594963679382460252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6594963679382460252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6594963679382460252'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2010/04/xquery-link-love.html' title='XQuery Link-Love'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-149895032656969620</id><published>2010-04-09T13:34:00.002-05:00</published><updated>2010-04-09T13:39:56.039-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>TinyGet and URL Parameters</title><summary type='text'>TinyGet is still a tool I use for some quick and dirty load testing, but I never needed to pass it URL parameters before. Simply adding an amerpsand was failing. The trick is escape it with the ^ character.tinyget -srv:mydomain.com -uri:/Search/Results?q=food^&amp;pIndex=5 -loop:10Thanks to the folks on the IIS forums for their help!</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=149895032656969620' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/149895032656969620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/149895032656969620'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2010/04/tinyget-and-url-parameters.html' title='TinyGet and URL Parameters'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-1607688331472237377</id><published>2010-03-10T18:51:00.004-05:00</published><updated>2010-03-10T18:56:45.279-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Quick Console App to Ping a Server</title><summary type='text'>This is based mostly off of something in the Microsoft documentation.  It's just a quick hack to let me know when a remote server comes back up.static void Main(string[] args){  Ping pingSender = new Ping();  PingOptions options = new PingOptions();  // Create a buffer of 32 bytes of data to be transmitted.  string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";  byte[] buffer = </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=1607688331472237377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/1607688331472237377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/1607688331472237377'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2010/03/quick-console-app-to-ping-server.html' title='Quick Console App to Ping a Server'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-763708182254597077</id><published>2010-02-25T20:06:00.003-05:00</published><updated>2010-03-10T18:51:48.757-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>Center the Effing Div</title><summary type='text'>.image {  margin-left: auto;  margin-right: auto;  width: 415px; /* fix the width while we're at it */  text-align: center; /* and we'll center the caption as well */}</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=763708182254597077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/763708182254597077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/763708182254597077'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2010/02/center-effing-div.html' title='Center the Effing Div'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-336851759497397053</id><published>2009-10-08T14:38:00.002-05:00</published><updated>2009-10-08T14:50:22.026-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Backup / Export Your Google Site</title><summary type='text'>Judging from this thread, the inability to easily backup/export a Google Site has been a problem for awhile. Thankfully there's a tool on Google Code you can use to grab a local copy. The tool is pretty simple, but the documentation is not entirely clear.  Here's what I did for my simple site, which is private:Host: sites.google.comDomain: [leave blank]Webspace: [the last part of domain name path</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=336851759497397053' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/336851759497397053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/336851759497397053'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2009/10/backup-export-your-google-site.html' title='Backup / Export Your Google Site'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-5891413689137273575</id><published>2009-09-27T10:41:00.005-05:00</published><updated>2009-09-27T11:44:20.106-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>MVC Storefront Collected Links</title><summary type='text'>There are videos and posts out there about the MVC Storefront sample application for ASP.NET MVC 1.0, but they're scattered around a bit.This list will mix the original posts from Rob Conery's blog, Weke Road, and the ASP.NET MVC video collection and some Rob's related posts.ASP.NET MVC: Introducing The MVC Storefront Series [video]ASP.NET MVC: MVC Storefront, Part 2 – Repository Pattern [video]</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=5891413689137273575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5891413689137273575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5891413689137273575'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2009/09/mvc-storefront-collected-links.html' title='MVC Storefront Collected Links'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-8698507938161506919</id><published>2009-07-31T14:51:00.002-05:00</published><updated>2009-07-31T14:54:30.599-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XQuery'/><category scheme='http://www.blogger.com/atom/ns#' term='MarkLogic Server'/><title type='text'>Unique Attribute Values Across Multiple Documents using XQuery</title><summary type='text'>It's a little slow, but here's one way to get a list of all the unique attribute values across multiple XML documents using XQuery.  let $raw-values :=   for $book in collection("abc")/(gbook|set)[@type='oeb']  return     element { "book" }     {       for $value in distinct-values($book//node()/@class)      return element { "class" } { $value }    }for $item in distinct-values($raw-values//class</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=8698507938161506919' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/8698507938161506919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/8698507938161506919'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2009/07/unique-attribute-values-across-multiple.html' title='Unique Attribute Values Across Multiple Documents using XQuery'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-3997772572717313739</id><published>2009-07-10T10:42:00.004-05:00</published><updated>2009-07-11T15:50:03.525-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XQuery'/><category scheme='http://www.blogger.com/atom/ns#' term='MarkLogic Server'/><title type='text'>MarkLogic XCC Layer File Open Errors</title><summary type='text'>If you have library modules you're importing, the query may work fine in cq, but if you try to use the same query via the XCC layer you may get "File Open Error" messages.One cause of this for me was the pathing in the import statement. cq seems to handle a relative path while XCC cannot, at least in MarkLogic 4.1.I needed to change from...import module namespace my = "http://blah.com" at "</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=3997772572717313739' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3997772572717313739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3997772572717313739'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2009/07/marklogic-xcc-layer-file-open-errors.html' title='MarkLogic XCC Layer File Open Errors'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-8958301974417501250</id><published>2009-07-06T20:49:00.003-05:00</published><updated>2009-07-06T20:55:34.162-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XQuery'/><category scheme='http://www.blogger.com/atom/ns#' term='MarkLogic Server'/><title type='text'>MarkLogic, cq and Namespaces</title><summary type='text'>If you import an XQuery library in cq and declare the namespace, cq gets fussy if you then try to declare your own functions. I know there are clear reasons for this, but here's what I do so I can use my own functions during testing.xquery version "1.0-ml";import module namespace search = "http://marklogic.com/appservices/search"   at "/MarkLogic/appservices/search/search.xqy";declare namespace </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=8958301974417501250' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/8958301974417501250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/8958301974417501250'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2009/07/marklogic-cq-and-namespaces.html' title='MarkLogic, cq and Namespaces'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-4593843898979486045</id><published>2009-07-04T18:31:00.006-05:00</published><updated>2009-07-04T18:58:42.506-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XSL'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Saxon, Command Line, C#, and XSL 2.0</title><summary type='text'>I've been using Xalan/Xerces for command line XSL transformations for years, but I've been moving farther away from Java over the years, so I wanted something .NET compatible and I wanted something XSL 2.0 compatible. I finally switched to Saxon.I normally use the standard XML objects in my ASP.NET apps, but I'll switch to Xalan command line tools when I need the "write" extension. I can do the </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=4593843898979486045' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/4593843898979486045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/4593843898979486045'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2009/07/saxon-command-line-c-and-xsl-20.html' title='Saxon, Command Line, C#, and XSL 2.0'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-6148444031790236938</id><published>2009-06-09T13:10:00.003-05:00</published><updated>2009-06-09T13:14:49.301-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Find Duplicate IDs in a Table with SQL</title><summary type='text'>This is a simple way to find all the rows that have duplicate IDs / values in a table.SELECT entryid, Count(entryid) AS ecount FROM filelocation GROUP BY entryidHAVING (Count(entryid) &gt; 1) -- This runs after the aggregate count() function</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=6148444031790236938' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6148444031790236938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6148444031790236938'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2009/06/find-duplicate-ids-in-table-with-sql.html' title='Find Duplicate IDs in a Table with SQL'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-2429449868022045475</id><published>2009-05-07T19:06:00.006-05:00</published><updated>2009-05-07T19:21:03.821-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XSL'/><title type='text'>Getting Unique XML Element Values with XSL 1.0</title><summary type='text'>Today I needed to munge some dirty XML data. I still haven't taught myself XSL/XPath 2.0 yet, so I was limited to XSL 1.0 for now. The data I had looked like this, only much, much worse.&lt;Subject&gt;Value 1|Value 2&lt;/Subject&gt;&lt;Subject&gt;Value 1|Value 2&lt;/Subject&gt;&lt;Subject&gt;Value 1|Value 2&lt;/Subject&gt;&lt;Time&gt;Time Value 1&lt;/Time&gt;&lt;Time&gt;Time Value 1&lt;/Time&gt;&lt;Time&gt;Time Value 1&lt;/Time&gt;&lt;Subject&gt;Value 3|Value 4&lt;/Subject&gt;&lt;</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=2429449868022045475' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2429449868022045475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2429449868022045475'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2009/05/getting-unique-xml-element-values-in.html' title='Getting Unique XML Element Values with XSL 1.0'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-3424399841991156302</id><published>2009-05-03T13:33:00.002-05:00</published><updated>2009-05-03T13:37:23.508-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>Centering a div</title><summary type='text'>This approach will center a &lt;div&gt; in a scenario where you want to have the body of your page centered on the screen, but leave the text left aligned.body{ text-align: center; align: center;} #container{ text-align: left; margin: 0 auto;}align:center / margin: 0 auto are for IE/FF.</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=3424399841991156302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3424399841991156302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3424399841991156302'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2009/05/centering-div.html' title='Centering a div'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-2498739258830004300</id><published>2009-04-04T13:34:00.005-05:00</published><updated>2009-04-04T13:40:15.947-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>See Unencrypted DTSRun Commands</title><summary type='text'>If you come across encrypted DTSRun commands, here's a way to decrypt them.Drop down to the command prompt and paste in the full DTSRun string:C:\&gt;DTSRun /~ZThisWouldBeYourBigUglyDTSRunCommandString /!X /!C Everything after C:\&gt; is directly from the Job's Command text box.  You have to add /!X and /!C to the end. Hit Enter to run it and the results then end up in your "paste" buffer, so you can </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=2498739258830004300' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2498739258830004300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2498739258830004300'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2009/04/see-unencrypted-dtsrun-commands.html' title='See Unencrypted DTSRun Commands'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-2625090368026086921</id><published>2009-04-04T13:19:00.005-05:00</published><updated>2009-04-04T13:33:05.440-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>T-SQL SPROC to Re-Create a Full Text Catalog</title><summary type='text'>I cannot claim any ownership over this code. It's a colleague's, but it's so handy that I have to document it somewhere.This will create an SPROC to re-create a full text catalog, which of course can then be tied to a Job.CREATE PROCEDURE p_RecreateFT_Articles AS  ALTER TABLE [dbo].[Articles] WITH NOCHECK ADD  CONSTRAINT [PK_Articles] PRIMARY KEY  CLUSTERED  (  [Article_ID] )  ON [PRIMARY] IF </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=2625090368026086921' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2625090368026086921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2625090368026086921'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2009/04/t-sql-sproc-to-re-create-full-text.html' title='T-SQL SPROC to Re-Create a Full Text Catalog'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-2320442893218163282</id><published>2009-03-31T20:30:00.002-05:00</published><updated>2009-03-31T20:33:00.858-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>T-SQL INSERT From One Table Into Another</title><summary type='text'>This is just a simple example of doing an INSERT INTO one table from another, with a hard-coded value thrown into the mix.INSERT INTO ProductSubjects  (ID, ProductID, SubjectID)SELECT NEWID(), '52EB01B6-B768-4F9B-8F60-1A695A13D945', Subjects.ID FROM Subjects</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=2320442893218163282' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2320442893218163282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2320442893218163282'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2009/03/t-sql-insert-from-one-table-into.html' title='T-SQL INSERT From One Table Into Another'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-471832487416776911</id><published>2009-03-31T20:25:00.003-05:00</published><updated>2009-03-31T20:29:33.320-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>T-SQL SELECT Using CASE and String Concatenation</title><summary type='text'>Here I'm selecting the ID field followed by a concatenation of 3 different subject fields, depending on whether or not the fields are NULL.SELECT  ID,   CASE   WHEN Subject2 IS NULL THEN     Subject1  WHEN Subject2 IS NOT NULL AND Subject3 IS NULL THEN     Subject1 +  ' : ' + Subject2  ELSE Subject1 + ' : '  + Subject2 + ' : '  + Subject3  END AS TheSubjectFROM SubjectsORDER BY TheSubject</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=471832487416776911' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/471832487416776911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/471832487416776911'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2009/03/t-sql-select-using-case-and-string.html' title='T-SQL SELECT Using CASE and String Concatenation'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-1115036708699633616</id><published>2009-03-28T17:36:00.002-05:00</published><updated>2009-03-28T17:44:38.647-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Analytics'/><title type='text'>Seeing Hourly Traffic with Google Analytics</title><summary type='text'>Here's how to create a report in Google Analytics that will give you an hourly traffic report for your site.Go to Custom ReportingClick "Creat new custom report"Open the "Site Usage" section on the left and drag Pageviews (or anything else you're looking for) over to one of the blue metric sections on the rightOpen the "Visitors" section on the left and drag "Hour of the day" to the green </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=1115036708699633616' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/1115036708699633616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/1115036708699633616'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2009/03/seeing-hourly-traffic-with-google.html' title='Seeing Hourly Traffic with Google Analytics'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-6365948351258156287</id><published>2009-02-08T14:03:00.007-05:00</published><updated>2011-01-18T09:00:04.524-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><title type='text'>Highlight a DIV Element onClick</title><summary type='text'>This is just a quick script to highlight a DIV element when a user clicks on an enclosed link. It's a little small/silly, but I've had more than request for something like this come in.&lt;html&gt;&lt;head&gt;&lt;title&gt;Highlight&lt;/title&gt;&lt;style type="text/css"&gt; .highlight { background-color:#ffff00; }&lt;/style&gt;&lt;/head&gt;&lt;body&gt;&lt;div id="div1"&gt;Row one &lt;a href="javascript:changeHighlight('div1');"&gt;HIGHLIGHT&lt;/a&gt;&lt;/div&gt;&lt;div </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=6365948351258156287' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6365948351258156287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6365948351258156287'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2009/02/highlight-div-element-onclick.html' title='Highlight a DIV Element onClick'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-5823410201743597784</id><published>2009-01-19T17:37:00.003-05:00</published><updated>2009-01-19T18:53:33.991-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Using PDFBox in C#</title><summary type='text'>Last week I was trying to extract text from PDF files in an automated fashion. After some searching I found a CodeProject.com article describing how to use PDFBox in C#.  As of this writing, the DLLs needed for the C# version are only in the old SourceForge version, which seems to be behind the Apache Incubator current version in Java.For the SourceForge version, I created a console application, </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=5823410201743597784' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5823410201743597784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5823410201743597784'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2009/01/using-pdfbox-in-c.html' title='Using PDFBox in C#'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-3209256187069936298</id><published>2009-01-18T13:18:00.003-05:00</published><updated>2009-01-18T13:25:51.742-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Optimum WiFi on Metro-North's New Haven Line</title><summary type='text'>I'm on the Metro-North New Haven line quite a bit these days.  I thought having access to Optimum WiFi would be a boon, but that hasn't been the case.  In nearly all cases, you have to be right on the platform of each station to get access, which is of little use on the train itself.Here are some other general notes:If you allow automatic connections, the network will connect by itself at each </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=3209256187069936298' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3209256187069936298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3209256187069936298'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2009/01/optimum-wifi-on-metro-norths-new-haven.html' title='Optimum WiFi on Metro-North&apos;s New Haven Line'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-947935326736091269</id><published>2009-01-17T13:22:00.002-05:00</published><updated>2009-02-01T13:38:53.776-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>You'll Get the Idea</title><summary type='text'>I'll refine this over time.CCI Mini-Mag HP HV (36 grain): Very inconsistent report, but no jams.Federal Game Shok HV (40 grain): Clean and consistent. No jams.Remington Yellow Jacket HP (33 grain): Clean and consistent. No jams.Remington 22 Thunderbolt (40 grain): ?Winchester Super X Power Point HP (40 grain): ?</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=947935326736091269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/947935326736091269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/947935326736091269'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2009/01/youll-get-idea.html' title='You&apos;ll Get the Idea'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-4221449871490616965</id><published>2008-11-26T12:57:00.004-05:00</published><updated>2008-11-26T13:11:28.331-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Thanksgiving, 2008</title><summary type='text'>As we come to Thanksgiving, here are some things I'm thankful for this year.My wife, children, and I had another year of good health.The country managed to get through the election without another legal fiasco.I found a new job (rather, a new job found me) relatively quickly after being laid off.We made the decision to not buy a new car or commit to major home renovations mere months before being</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=4221449871490616965' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/4221449871490616965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/4221449871490616965'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/11/thanksgiving-2008.html' title='Thanksgiving, 2008'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-4388713611268303821</id><published>2008-11-24T08:11:00.005-05:00</published><updated>2008-11-24T09:42:21.745-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eXist XML'/><category scheme='http://www.blogger.com/atom/ns#' term='XQuery'/><title type='text'>Loading XML into eXist Using XQuery and the Sandbox</title><summary type='text'>This past weekend I was tinkering with the eXist XML database. The installation went fine and some of their sample queries ran fine. My next step was to load some of my content into it.Rather than use their web interface or desktop client, I wanted to load the documents using XQuery through their sandbox application. I thought this would be quick and easy and would allow me to compare some </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=4388713611268303821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/4388713611268303821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/4388713611268303821'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/11/loading-xml-into-exist-using-xquery-and.html' title='Loading XML into eXist Using XQuery and the Sandbox'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-7736053418331515121</id><published>2008-11-21T10:29:00.003-05:00</published><updated>2008-11-21T11:00:31.072-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Textml'/><title type='text'>Exporting XML Files from Textml</title><summary type='text'>I had a case where documents were being created and stored dynamically in Textml Server by an application, but we wanted the physical files exported. I had a ContentServer class already in place for selecting all documents in a collection and for selecting a document by file name, which would make this easier. This was going nowhere near a production server, so reusing what I had to get this done</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=7736053418331515121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/7736053418331515121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/7736053418331515121'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/11/exporting-xml-files-from-textml.html' title='Exporting XML Files from Textml'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-8646172088175472501</id><published>2008-11-18T20:36:00.005-05:00</published><updated>2008-11-18T21:10:40.184-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Textml'/><title type='text'>Weird Bug While Porting Textml Server Code from JSP to ASP.NET</title><summary type='text'>This morning I was porting an old search results page accessing Textml Server from JSP to ASP.NET.  One feature implemented there is search within results.  We execute this by storing the original query in the session and then, when a user asks to search within results, we pull it out and re-run it so the second query can reference the first.  We have a line like this in the JSP page...</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=8646172088175472501' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/8646172088175472501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/8646172088175472501'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/11/weird-bug-while-porting-textml-server.html' title='Weird Bug While Porting Textml Server Code from JSP to ASP.NET'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-4245067958556643007</id><published>2008-11-11T21:10:00.001-05:00</published><updated>2010-05-10T21:51:46.918-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Logins Fail after SQL Server Restore</title><summary type='text'>After doing a SQL Server db restore, logins can be a problem.  This script will re-sync the passwords.EXEC sp_change_users_login 'Auto_Fix','UserOne', null, 'pwd1'EXEC sp_change_users_login 'Auto_Fix','UserTwo', null, 'pwd2'EXEC sp_change_users_login 'Auto_Fix','UserThree', null, 'pwd3'To find these users.EXEC sp_change_users_login 'Report', null, null, null</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=4245067958556643007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/4245067958556643007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/4245067958556643007'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/11/logins-fail-after-sql-server-restore.html' title='Logins Fail after SQL Server Restore'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-4029441136373185450</id><published>2008-10-08T12:51:00.004-05:00</published><updated>2008-10-08T12:56:46.854-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='XQuery'/><title type='text'>Add XQuery Support to UltraEdit</title><summary type='text'>Leave it to the team that works on UltraEdit to make adding XQuery support easy.Here's a tutorial on adding a language.Here's the XQuery wordfile they provide.Done in about 15 seconds.  Nice.</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=4029441136373185450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/4029441136373185450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/4029441136373185450'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/10/add-xquery-support-to-ultraedit.html' title='Add XQuery Support to UltraEdit'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-4855760697505699401</id><published>2008-09-28T19:40:00.004-05:00</published><updated>2008-09-28T19:47:28.320-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XQuery'/><category scheme='http://www.blogger.com/atom/ns#' term='MarkLogic Server'/><title type='text'>Stop a Long-Running Query in MarkLogic Server</title><summary type='text'>If you're like me, every once in awhile you'll be working on a query in cq, you'll do something stupid in XQuery, run the query, and it will run forever.  MarkLogic Server has built-in timeouts, but you can stop a long-running query rather than waiting.  Here's how you can do it using the default admin console in 3.2.In the left-hand column, click on Groups.Click on DefaultClick on App </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=4855760697505699401' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/4855760697505699401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/4855760697505699401'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/09/stop-long-running-query-in-marklogic.html' title='Stop a Long-Running Query in MarkLogic Server'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-7111597424763593840</id><published>2008-09-28T08:53:00.014-05:00</published><updated>2008-09-28T09:58:09.508-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>The Last Game at old Yankee Stadium</title><summary type='text'>I was at the last game at the old Yankee Stadium last Sunday, September 21 with my father. I'm not going to get sentimental. There's a tremendous amount of history in that stadium, but the physical structure was due to be replaced.  Here are some things I'll enjoy remembering about the last game:During the pregame ceremonies, Yogi Berra standing behind home plate, looking very small and frail, </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=7111597424763593840' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/7111597424763593840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/7111597424763593840'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/09/last-game-at-old-yankee-stadium.html' title='The Last Game at old Yankee Stadium'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6awORZVFvZc/SN-WMtqr5EI/AAAAAAAAAAc/_Y6Xj6TFESA/s72-c/gal_yankeestadium_32.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-6109880536236961860</id><published>2008-09-15T19:07:00.003-05:00</published><updated>2008-09-15T19:25:19.478-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>Creating or Updating an htpasswd File</title><summary type='text'>Don't laugh.I do this maybe twice a year.To create a new htpasswd file:Using the command line / terminal, go to the directory you want to protect then type:user$ htpasswd -c .htpasswd YourUsernameType the password twiceThe tool you're using is htpasswd. The -c switch is the instruction to create a new file. The file name will be .htpasswd.  Note that in most systems, a file that starts with a . </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=6109880536236961860' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6109880536236961860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6109880536236961860'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/09/creating-or-updating-htpasswd-file.html' title='Creating or Updating an htpasswd File'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-8609337268596943621</id><published>2008-09-11T19:02:00.003-05:00</published><updated>2008-09-11T19:10:52.059-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='XQuery'/><title type='text'>New XQuery Component for SyntaxHighlighter</title><summary type='text'>I created an XQuery component for Alex Gorbatchev's SyntaxHighlighter, which you see in use with my XQuery snippets on this blog.I've asked Alex to add it to the download package, but you can also download it from my site.</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=8609337268596943621' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/8609337268596943621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/8609337268596943621'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/09/new-xquery-component-for.html' title='New XQuery Component for SyntaxHighlighter'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-7997192279559040676</id><published>2008-09-09T20:52:00.002-05:00</published><updated>2008-09-09T20:55:43.226-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><title type='text'>Add Syntax Highlighting to Your Blogger Blog</title><summary type='text'>Here are a couple of good links to help you add syntax highlighting to your Blogger blog.The source in Google's code base.A "Yet Another Coding Blog" article.An alternate blog post in case one goes dark.</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=7997192279559040676' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/7997192279559040676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/7997192279559040676'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/09/add-syntax-highlighting-to-your-blogger.html' title='Add Syntax Highlighting to Your Blogger Blog'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-1508058779302980878</id><published>2008-08-18T20:18:00.008-05:00</published><updated>2011-02-01T21:10:12.843-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Atari 400 and My First Dose of FAIL</title><summary type='text'>I'm not sure what made me think about this now, but I was just daydreaming and thought about my very first programming experience.I had gotten an Atari 400 (may have been XL?) as a kid and it came with a BASIC cartridge and this binder full of programs you could write. I remember looking at them and thinking it was cool that if I type these odd looking lines that didn't make sense to me, the </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=1508058779302980878' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/1508058779302980878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/1508058779302980878'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/08/atari-400800-and-my-first-dose-of-fail.html' title='Atari 400 and My First Dose of FAIL'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6awORZVFvZc/SKojIYMh4WI/AAAAAAAAAAU/qOJqk2N0FT0/s72-c/atari400a.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-7967694295290963440</id><published>2008-07-03T21:13:00.004-05:00</published><updated>2008-09-09T20:40:39.539-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Read in a String of XML to an XPathDocument in ASP.NET</title><summary type='text'>Had a string representation of an XML file today that needed to be read into an XPathDocument object.// results was the string XML file representationStringReader sReader = new StringReader(results); XmlReader xReader = new XmlTextReader(sReader);XPathDocument myXpathDocument = new XPathDocument(xReader);</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=7967694295290963440' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/7967694295290963440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/7967694295290963440'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/07/read-in-string-of-xml-to-xpathdocument.html' title='Read in a String of XML to an XPathDocument in ASP.NET'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-6924680390478782366</id><published>2008-06-24T20:19:00.005-05:00</published><updated>2008-09-09T20:43:04.474-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Saving an XPathDocument or XmlDocument to a File in ASP.NET</title><summary type='text'>Today I was working on a class that was returning an XPathDocument representation of an XML document and I needed to save it to a file.  I switched the class to return an XmlDocument ... and the reason for that should be obvious from the two code samples below.Here's how I saved an XPathDocument to an XML file:// myItems[0] is from a generic List&lt;XPathDocument&gt; listXPathDocument document = </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=6924680390478782366' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6924680390478782366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6924680390478782366'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/06/saving-xpathdocument-or-xmldocument-to.html' title='Saving an XPathDocument or XmlDocument to a File in ASP.NET'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-5414862873694845685</id><published>2008-06-23T18:39:00.004-05:00</published><updated>2008-09-09T20:44:28.701-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Textml'/><title type='text'>Load an XML File from the File System into Textml with ASP.NET</title><summary type='text'>I'm building an internal application that needs to load an XML file from the file system into a specific repository path in Textml Server.  Here's the method I used within a ContentServer class I created.The references to various this properties are set in the same class where I get the values from a configuration file for the staging and production servers.public bool Publish(string fileUri){  </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=5414862873694845685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5414862873694845685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5414862873694845685'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/06/load-xml-file-from-file-system-into.html' title='Load an XML File from the File System into Textml with ASP.NET'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-5315702207208431531</id><published>2008-06-17T21:16:00.007-05:00</published><updated>2008-09-09T20:47:05.488-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Using the ASP.NET AdRotator Control for Text-Only Ads</title><summary type='text'>Here's a pathetic little hack to leverage the ASP.NET AdRotator control to generate text-only ads.In your ASPX page:&lt;asp:AdRotator  ID="AdRotator1"  AdvertisementFile="~/App_Data/DidYouKnow.config"  runat="server"  OnAdCreated="AdRotator1_CustomAdCreated"/&gt;&lt;asp:HyperLink  ID="HyperLink1"  runat="server"  NavigateUrl="#"&gt;&lt;/asp:HyperLink&gt;In your code-behind page:public void AdRotator1_</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=5315702207208431531' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5315702207208431531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5315702207208431531'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/06/using-aspnet-adrotator-control-for-text.html' title='Using the ASP.NET AdRotator Control for Text-Only Ads'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-4290431904044963828</id><published>2008-06-15T18:53:00.000-05:00</published><updated>2008-06-23T18:58:37.538-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Getting Server and Other HTTP Information in a Class in an ASP.NET App</title><summary type='text'>Another tidbit I can never remember when I need it.  You're working on an ASP.NET website and you have a class that needs to access the Request or Response information, for example.  Use HttpContext.Current as in the sample below._name = HttpContext.Current.Request.ServerVariables["SERVER_NAME"];</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=4290431904044963828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/4290431904044963828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/4290431904044963828'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/06/getting-server-and-other-http.html' title='Getting Server and Other HTTP Information in a Class in an ASP.NET App'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-2107523131675369688</id><published>2008-06-11T23:20:00.006-05:00</published><updated>2008-09-09T21:21:58.768-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XQuery'/><category scheme='http://www.blogger.com/atom/ns#' term='MarkLogic Server'/><title type='text'>Removing Noise Words from a String with XQuery</title><summary type='text'>MarkLogic doesn't offer a way to do stop words (a/k/a suppression lists a/k/a noise words) by default for various reasons -- and I didn't want to block them from being used in searches -- but I was asked to remove them from consideration when using hit highlighting.  Here's the code I used to remove a fixed set of noise words from a user's search string.define variable $NOISE_WORDS as xs:string*{</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=2107523131675369688' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2107523131675369688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2107523131675369688'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/06/marklogic-doesnt-offer-way-to-do-stop.html' title='Removing Noise Words from a String with XQuery'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-5390599470184422055</id><published>2008-05-14T19:26:00.003-05:00</published><updated>2008-05-14T19:38:03.514-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Controlling Which Button Fires When the User Hits Enter in ASP.NET Web Apps</title><summary type='text'>If you need to control which button fires when a user hits Enter on the keyboard in an ASP.NET web application, there are two simple ways to do this.On an ASPX page with no MasterPage and only one Button control to worry about, set the DefaultButton property of the form tag to the ID of the Button.  Nice and simple.In my specific situation, I had a MasterPage and 3 different buttons, 1 for quick </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=5390599470184422055' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5390599470184422055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5390599470184422055'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/05/controlling-which-button-fires-when.html' title='Controlling Which Button Fires When the User Hits Enter in ASP.NET Web Apps'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-5975318187881620223</id><published>2008-05-09T21:22:00.004-05:00</published><updated>2008-05-09T21:32:24.707-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Get a List of Embedded Resource Names Within a .NET Application</title><summary type='text'>I have a .NET Windows application and I wanted to embed an XSL file into it permanently and then reference it in code.  Embedding it is just a quick setting change, but figuring out how to reference it stumped me.  Here's how you can loop through all your embedded resources and see how you should reference them.Assembly myAssemblyList = Assembly.GetExecutingAssembly();string[] myResources = </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=5975318187881620223' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5975318187881620223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5975318187881620223'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/05/get-list-of-embedded-resource-names.html' title='Get a List of Embedded Resource Names Within a .NET Application'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-9106452203918331994</id><published>2008-05-09T20:58:00.003-05:00</published><updated>2008-05-09T21:21:56.637-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Using an Enum Instead of "Magic Values" in an ASP.NET Website</title><summary type='text'>I have a nasty habit of using "magic values" in some complex web pages in ASP.NET sites ... you know, passing type=document or type=legal or type=address in the URL string and then having the page react to it.  I've grown to dislike it because it can be a pain to debug on a complex page and I always have to remember the values I'm expecting.  I'm experimenting with using a enum instead.  Here's </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=9106452203918331994' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/9106452203918331994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/9106452203918331994'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/05/using-enum-instead-of-magic-values-in.html' title='Using an Enum Instead of &quot;Magic Values&quot; in an ASP.NET Website'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-2919965807616286316</id><published>2008-05-09T20:42:00.003-05:00</published><updated>2008-05-09T20:51:26.090-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Accessing XML Elements with Namespaces using the ASP.NET XPathNavigator</title><summary type='text'>If you need to access XML elements that have a namespace associated with them using the XPathNavigator object, here's how you can create an XmlNamespaceManager and use it.  This is part of a bit of code where I was processing an RSS post.StringBuilder myString = new StringBuilder();XPathDocument myDoc = new XPathDocument(myDocumentUri);XPathNavigator myNav = myDoc.CreateNavigator();</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=2919965807616286316' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2919965807616286316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2919965807616286316'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/05/accessing-xml-elements-with-namespaces.html' title='Accessing XML Elements with Namespaces using the ASP.NET XPathNavigator'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-3993218126883571469</id><published>2008-05-01T20:25:00.000-05:00</published><updated>2008-05-13T19:26:48.224-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>NATO Phonetic Alphabet</title><summary type='text'>Letter   Phonetic EquivalentA        AlphaB        BravoC        CharlieD        DeltaE        EchoF        FoxtrotG        GolfH        HotelI        IndiaJ        JulietK        KiloL        LimaM        MikeN        NovemberO        OscarP        PapaQ        QuebecR        RomeoS        SierraT        TangoU        UniformV        VictorW        WhiskeyX        X-rayY        YankeeZ        </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=3993218126883571469' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3993218126883571469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3993218126883571469'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/05/nato-phonetic-alphabet.html' title='NATO Phonetic Alphabet'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-2615206295702344789</id><published>2008-04-15T18:41:00.007-05:00</published><updated>2008-09-10T18:56:34.157-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XQuery'/><category scheme='http://www.blogger.com/atom/ns#' term='MarkLogic Server'/><title type='text'>Creating a Summary from a MarkLogic Search Result</title><summary type='text'>It's called a summary, or a snippet, or context.  It's the string beneath each search result that shows you some words around your search term(s) in the document that was returned.There's a good one in lib-search if you're using it.  I'm not ... yet.  At first I tried to use just the relevant functions, but it wasn't doing quite what I wanted and it seemed pretty heavy, especially returning 25 </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=2615206295702344789' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2615206295702344789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2615206295702344789'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/04/creating-summary-from-marklogic-search.html' title='Creating a Summary from a MarkLogic Search Result'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-3967345553074780199</id><published>2008-04-15T18:25:00.003-05:00</published><updated>2008-04-15T18:38:52.730-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><title type='text'>LibraryThing's JSON API</title><summary type='text'>This morning I was tinkering with LibraryThing's JSON API just to demonstrate a proof of concept to some people internally.  I used FireBug to take a look at what the service was actually returning.  Here's the bare-bones script.&lt;html&gt;  &lt;head&gt;    &lt;title&gt;LibraryThing Tests&lt;/title&gt;  &lt;/head&gt;  &lt;body&gt;    &lt;p&gt;This is an example of information we can get from LibraryThing.&lt;/p&gt;    &lt;h3&gt;Christmas on </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=3967345553074780199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3967345553074780199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3967345553074780199'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/04/librarythings-json-api.html' title='LibraryThing&apos;s JSON API'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-3989396845118519597</id><published>2008-03-28T18:16:00.010-05:00</published><updated>2008-09-10T19:42:43.367-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XQuery'/><category scheme='http://www.blogger.com/atom/ns#' term='MarkLogic Server'/><title type='text'>Setting and Getting Documet Quality in MarkLogic Server</title><summary type='text'>I had a request to influence the score of documents returned by searches based on the year of publication.  Since a year isn't used as part of most searches, it seemed like the best approach was to set the document quality to the pub year.  Then I could use that value in the scoring calculations.  Take a look at the Developer's Guide for how do do that.Here's how I looped through all the </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=3989396845118519597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3989396845118519597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3989396845118519597'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/03/setting-and-getting-documet-quality-in.html' title='Setting and Getting Documet Quality in MarkLogic Server'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-6447984244770606412</id><published>2008-03-17T19:22:00.003-05:00</published><updated>2008-03-17T19:38:29.369-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MarkLogic Server'/><title type='text'>Bad CodepointIterator::_next Error from MarkLogic Server</title><summary type='text'>Getting a "Bad CodepointIterator::_next" error from a query in MarkLogic?  Check you configuration at the app server level.  We were seeing this error on our production instance, but not our development instance.  In our ASP.NET app (through XCC) we would see a generic message, but when we ran the query in cq we saw the more specific version.  After a wasted day or so trying to track down the </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=6447984244770606412' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6447984244770606412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6447984244770606412'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/03/bad-codepointiteratornext-error-from.html' title='Bad CodepointIterator::_next Error from MarkLogic Server'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-5188035893276634573</id><published>2008-03-16T08:25:00.007-05:00</published><updated>2008-09-10T19:43:31.502-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XQuery'/><category scheme='http://www.blogger.com/atom/ns#' term='MarkLogic Server'/><title type='text'>Basic Information on MarkLogic Collections</title><summary type='text'>I wanted to get some quick information about all of my collections, starting with a list of names and how many documents were in each. This isn't rocket science, but I'll add to this post as the query expands.(: Set "collection lexicon" to true in the index definition. :)let $collections := cts:collections() return&lt;root count="{ fn:count($collections) }"&gt;{for $collection in $collectionsreturn  &lt;</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=5188035893276634573' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5188035893276634573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5188035893276634573'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/03/basic-information-on-marklogic.html' title='Basic Information on MarkLogic Collections'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-7970201643245109218</id><published>2008-03-12T19:00:00.003-05:00</published><updated>2008-03-12T19:05:46.416-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Hiding the Finish Button on an ASP.NET Wizard Control</title><summary type='text'>This is a Class 1 stupid hack.  I think it's one of those things where there probably is an easier way to do this, but I haven't found it yet.  On an ASP.NET Wizard control, I wanted to hide the Finish button.  Here's one way.myWizard.FinishCompleteButtonType = ButtonType.Link;myWizard.FinishCompleteButtonText = String.Empty;myWizard.FinishCompleteButtonStyle.CssClass = "";</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=7970201643245109218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/7970201643245109218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/7970201643245109218'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/03/hiding-finish-button-on-aspnet-wizard.html' title='Hiding the Finish Button on an ASP.NET Wizard Control'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-321006179765421917</id><published>2008-03-12T18:42:00.003-05:00</published><updated>2008-03-12T18:58:10.299-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Save to Word in ASP.NET</title><summary type='text'>I was looking around for a code snippet to allow a user to save / export a print version of a web page to a Word file on the fly.  This didn't need to be complex at all, but everything I found was either overwrought or would result in a Word document that displayed HTML tagging.Here's an oversimplified method that works.  You can build this up as needed. NOTE: Be sure to eliminate the extra space</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=321006179765421917' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/321006179765421917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/321006179765421917'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/03/save-to-word-in-aspnet.html' title='Save to Word in ASP.NET'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-2858199294148289787</id><published>2008-03-01T21:50:00.004-05:00</published><updated>2008-03-01T22:15:24.996-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Save an ASP.NET TreeView Control to an XML File</title><summary type='text'>Here are two methods to help you take a TreeView web control and save / export / serialize it to a file.  Add these two statements to the top of the file:using System.Xml;using System.Text;These two methods take the TreeView and recursively loop through all the TreeNode controls./// &lt;summary&gt;/// Recurses through a TreeView web control exports the results/// to an XML file nested to match the </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=2858199294148289787' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2858199294148289787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2858199294148289787'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/03/save-aspnet-treeview-control-to-xml.html' title='Save an ASP.NET TreeView Control to an XML File'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-5120449772430707194</id><published>2008-02-22T14:50:00.012-05:00</published><updated>2008-11-23T11:05:51.167-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Apache-Style Web Application Security (Almost) in ASP.NET with Web.config</title><summary type='text'>I say "almost" because if it really was Apache-style, it would be easy.  But this is Windows we're talking about, so it isn't.What I wanted to do was pretty simple: launch a web app with anonymous access except for one directory to contain administrative controls, which I wanted to protect with the standard Login control and values stored in Web.config file.For the Web.config settings, what I saw</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=5120449772430707194' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5120449772430707194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5120449772430707194'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/02/apache-style-web-application-security.html' title='Apache-Style Web Application Security (Almost) in ASP.NET with Web.config'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-8118596616994568020</id><published>2008-02-06T21:35:00.000-05:00</published><updated>2008-02-06T21:40:39.257-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Search'/><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><title type='text'>Free Information Retrieval Book Available</title><summary type='text'>Introduction to Information Retrieval published by Cambridge University Press is available free online.  Many thanks to the authors for this.  They say it will remain free after the book is published.  I may grab a copy of the PDFs...just in case.Just reading the introduction makes me wish I paid more attention in math.  I wonder if there are any math textbooks available on USENET?  ;-)</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=8118596616994568020' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/8118596616994568020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/8118596616994568020'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/02/free-information-retrieval-book.html' title='Free Information Retrieval Book Available'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-5175553530740463134</id><published>2008-02-02T16:40:00.000-05:00</published><updated>2008-02-02T16:47:46.459-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><title type='text'>The Time Stamp of Your IIS Logs is Not Wrong</title><summary type='text'>Looking at your IIS server logs and wondering why the time stamp doesn't seem to reflect the actual server time?  If you have IIS set to write the logs in W3C extended log file format, the date is always in GMT.  Microsoft does have a knowledge base article on this.Here's a GMT conversion chart for the United States.</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=5175553530740463134' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5175553530740463134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/5175553530740463134'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/02/time-stamp-of-your-iis-logs-is-not.html' title='The Time Stamp of Your IIS Logs is Not Wrong'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-361981374783020961</id><published>2008-01-26T21:29:00.000-05:00</published><updated>2008-01-26T21:49:36.530-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Error Rendering Control with ASP.NET WizardStep and Accordion Controls</title><summary type='text'>If you're using the .NET Framework 2.0 with Visual Studio 2005 and ASP.NET AJAX 1.0, you may run into odd errors when you use the Wizard control and you try to embed an Accordion control inside a WizardStep.  When I did this, it was all in the ASPX code view and the code-behind file.  The page and the project built cleanly and the run-time tests were fine, as well.  But when another developer </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=361981374783020961' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/361981374783020961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/361981374783020961'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/01/error-rendering-control-with-aspnet.html' title='Error Rendering Control with ASP.NET WizardStep and Accordion Controls'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-8653754314218758869</id><published>2008-01-24T21:58:00.001-05:00</published><updated>2008-09-10T19:45:54.393-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XQuery'/><category scheme='http://www.blogger.com/atom/ns#' term='MarkLogic Server'/><title type='text'>Modify an XML Fragment Retrieved by MarkLogic Server</title><summary type='text'>Last week I was experimenting with a scenario where I wanted to retrieve a section of a larger XML document from MarkLogic Server, but modify it before passing it up to the web application layer (we're using MarkLogic -&gt; XCC -&gt; ASP.NET).  This XQuery sample recurses through all of the element and text nodes, modifies what's needed, and passes the rest back unchanged.  In the end we decided on a </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=8653754314218758869' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/8653754314218758869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/8653754314218758869'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/01/modify-xml-fragment-retrieved-by.html' title='Modify an XML Fragment Retrieved by MarkLogic Server'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-471736706973816553</id><published>2008-01-21T16:17:00.000-05:00</published><updated>2008-01-21T17:53:30.538-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>My New Kakadu</title><summary type='text'>About two weeks ago I was packing up my stuff and getting ready to leave work when I noticed something stunk.  It was my 6-year-old black Eddie Bauer shoulder bag and it was not pleasant.I had a little Christmas cash in my pocket, so I shopped around a little.  After looking at bags from Timbuk2, Chrome, Manhattan Portage and many others I decided that a) they're all over-priced and b) they're </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=471736706973816553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/471736706973816553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/471736706973816553'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/01/my-new-kakadu.html' title='My New Kakadu'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-859790299123922407</id><published>2008-01-15T08:50:00.000-05:00</published><updated>2008-01-15T08:55:14.761-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XQuery'/><category scheme='http://www.blogger.com/atom/ns#' term='MarkLogic Server'/><title type='text'>XQuery Support in MarkLogic Server</title><summary type='text'>It's a buried a little deep, but here's how to find out which version of the XQuery spec your version of MarkLogic supports.Got to http://developer.marklogic.com/ and find the documentation.  Find the release notes.  Find the section called "Compatibility with XQuery Drafts."Here's the information for 3.2.This release implements the XQuery language, functions and operators specified in the May 02</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=859790299123922407' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/859790299123922407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/859790299123922407'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/01/xquery-support-in-marklogic-server.html' title='XQuery Support in MarkLogic Server'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-3540110944222500085</id><published>2008-01-04T22:03:00.001-05:00</published><updated>2008-01-04T22:07:14.471-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><title type='text'>Vista Downgrade</title><summary type='text'>As I mentioned in an earlier post, I have a computer with Microsoft Vista.  Had.  After several months of trying to live with it, I decided to downgrade to XP Pro.  I want the OS to stay out of the way and just work and perform reasonably.  Is that really so much to ask?Getting all the drivers straight was a bit of a pain, but the machine is back up and running now.  All I have to say is ... </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=3540110944222500085' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3540110944222500085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3540110944222500085'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/01/vista-downgrade.html' title='Vista Downgrade'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-2948180338816397686</id><published>2008-01-01T11:32:00.000-05:00</published><updated>2007-12-31T23:36:13.768-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Get a Random Item from an Array in ASP.NET</title><summary type='text'>Here's a quick and easy way to get a random item from an array in ASP.NET.string[] myImages = { "/images/one.gif", "/images/two.gif", "/images/three.gif" };string randomItem = myImages[ new Random().Next( 0, my.GetLength(0) ) ];</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=2948180338816397686' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2948180338816397686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2948180338816397686'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2008/01/get-random-item-from-array-in-aspnet.html' title='Get a Random Item from an Array in ASP.NET'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-2140479084558719013</id><published>2008-01-01T11:30:00.000-05:00</published><updated>2007-12-31T23:46:42.355-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>"The state information is invalid for this page and might be corrupted" Using ASP.NET AJAX</title><summary type='text'>When you're using ASP.NET AJAX and the user accesses your site using Firefox, the user may see an error message that says "The state information is invalid for this page and might be corrupted."  This seems to be caused by Firefox's methods for saving session information in its cache.  There are a couple of ways to make sure this doesn't happen, depending on how extensive you want to disable the </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=2140479084558719013' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2140479084558719013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2140479084558719013'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2007/01/state-information-is-invalid-for-this.html' title='&quot;The state information is invalid for this page and might be corrupted&quot; Using ASP.NET AJAX'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-1739056756229800628</id><published>2007-12-22T22:13:00.001-05:00</published><updated>2008-07-06T14:43:24.371-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TinyMCE'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>TinyMCE, ASP.NET AJAX, and Auto-Save</title><summary type='text'>I'm working on a ASP.NET web app that will allow administration of a new product feature and some of that content can be several paragraphs long.  I'm using TinyMCE for those longer pieces and the ASP.NET AJAX Timer control to auto-save the form.What I noticed is that any field connected to TinyMCE wouldn't be saved on auto-save, but would be saved just fine with a full Save button click and </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=1739056756229800628' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/1739056756229800628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/1739056756229800628'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2007/12/tinymce-aspnet-ajax-and-auto-save.html' title='TinyMCE, ASP.NET AJAX, and Auto-Save'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-6534687158375598116</id><published>2007-12-21T11:13:00.000-05:00</published><updated>2008-01-21T11:05:15.718-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Textml'/><category scheme='http://www.blogger.com/atom/ns#' term='MarkLogic Server'/><title type='text'>Textml vs. MarkLogic, Part 2</title><summary type='text'>I had a very good conversation yesterday with John Kreisa the Director of Product Marketing for Mark Logic where we talked about the differences between Textml and MarkLogic Server -- the issues I raised in a previous post, plus a few others.  One of the other topics that I forgot to mention there and is a huge plus for MarkLogic is the ability to influence relevancy ranking.The best part of this</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=6534687158375598116' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6534687158375598116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6534687158375598116'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2007/12/textml-vs-marklogic-part-2.html' title='Textml vs. MarkLogic, Part 2'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-6617509773763613599</id><published>2007-12-20T21:01:00.000-05:00</published><updated>2007-12-20T21:30:09.035-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>ASP.NET TreeNode, Parent of the Selected Node, and RenderPreText</title><summary type='text'>I bumped into something interesting today while working on a TreeView control to be used to represent a book's table of contents on a website. The control had 3 levels: the root, the chapter level, and each major section within each chapter, which we call the "a-head level." If the user is viewing a piece of content from the a-head level, I was asked to NOT expand the chapter level TreeNode, to </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=6617509773763613599' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6617509773763613599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6617509773763613599'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2007/12/aspnet-treenode-parent-of-selected-node.html' title='ASP.NET TreeNode, Parent of the Selected Node, and RenderPreText'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-6702784444397617542</id><published>2007-12-20T20:56:00.000-05:00</published><updated>2007-12-20T21:00:39.373-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Visual Studio 2005 Spell Check Now Available</title><summary type='text'>I've been waiting for this for awhile now. There's finally a good spell check tool for Visual Studio 2005 (and 2008) available.</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=6702784444397617542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6702784444397617542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/6702784444397617542'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2007/12/visual-studio-2005-spell-check-now.html' title='Visual Studio 2005 Spell Check Now Available'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-1800922281374546862</id><published>2007-12-15T17:01:00.000-05:00</published><updated>2008-01-24T21:53:09.108-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Fennel and Pepper Biscuits</title><summary type='text'>I love these things.Proof some yeast for 5-10 minutes.1 cup warm water2 tablespoons olive oil1/4 teaspoon sugar1 packet of yeastPut together in a large bowl:5 cups of all-purpose flour1 1/4 tablespoons salt1 tablespoon fennel1 tablespoon black pepper (or to taste)1/2 cup olive oilproofed yeast from aboveKnead/mix together with a little warm water as needed.  When done, let the dough rest for 20-</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=1800922281374546862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/1800922281374546862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/1800922281374546862'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2007/12/fennel-and-pepper-biscuits.html' title='Fennel and Pepper Biscuits'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-3829662632974812958</id><published>2007-12-11T20:23:00.000-05:00</published><updated>2007-12-11T20:25:46.463-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Set an ASP.NET TreeView Node to Expand and not PostBack</title><summary type='text'>A classic small snippet of code that I use infrequently and takes me too long to find when I need it.  Here's how to set an ASP.NET TreeView Node to expand and not PostBack when clicked.tvNode.SelectAction = TreeNodeSelectAction.Expand;</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=3829662632974812958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3829662632974812958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/3829662632974812958'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2007/12/set-aspnet-treeview-node-to-expand-and.html' title='Set an ASP.NET TreeView Node to Expand and not PostBack'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2067970518453966336.post-2637483219155922839</id><published>2007-12-11T20:10:00.000-05:00</published><updated>2007-12-11T20:22:07.622-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='SEO'/><title type='text'>URL Rewriting in ASP.NET with No Code</title><summary type='text'>http://urlrewriter.net/ provides a great little tool for URL rewriting in ASP.NET.  I used this on a site where SEO was of particular concern.  The best part was that it required no code.Instead of mydomain.com/reader/Default.aspx?id=12345&amp;type=book I could enable links like mydomain.com/reader/Default.aspx/12345/book.Here's how I enabled this using Web.config:&lt;configuration&gt;  &lt;!--...--&gt;  &lt;</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2067970518453966336&amp;postID=2637483219155922839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2637483219155922839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2067970518453966336/posts/default/2637483219155922839'/><link rel='alternate' type='text/html' href='http://renditionprotocol.blogspot.com/2007/12/url-rewriting-in-aspnet-with-no-code.html' title='URL Rewriting in ASP.NET with No Code'/><author><name>Mattio Valentino</name><uri>http://www.blogger.com/profile/09334343515454341109</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
