<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Killfly Blogs &#187; Technology</title>
	<atom:link href="http://blog.killfly.com/index.php/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.killfly.com</link>
	<description></description>
	<lastBuildDate>Mon, 09 Jan 2012 22:51:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>How to Get the Date of a DateTime in SQL Server</title>
		<link>http://blog.killfly.com/index.php/2008/04/04/how-to-get-the-date-of-a-datetime-in-sql-server/</link>
		<comments>http://blog.killfly.com/index.php/2008/04/04/how-to-get-the-date-of-a-datetime-in-sql-server/#comments</comments>
		<pubDate>Fri, 04 Apr 2008 20:06:16 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/?p=98</guid>
		<description><![CDATA[Pretty simple really. Try this SQL: SELECT CONVERT(nvarchar(20), GetDate(), 101); or SELECT CONVERT(nvarchar(20), CAST(&#8217;2008-04-04 16:07:07.920&#8242; AS DateTime), 101); If you need to use it in a comparison you can easily do something like WHERE CONVERT(nvarchar(20), MyDateColumn, 101) BETWEEN @DateFrom AND @DateTo Enjoy!]]></description>
			<content:encoded><![CDATA[<p>Pretty simple really.  Try this SQL:</p>
<blockquote><p>SELECT CONVERT(nvarchar(20), GetDate(), 101);</p></blockquote>
<p>or</p>
<blockquote><p>SELECT CONVERT(nvarchar(20), CAST(&#8217;2008-04-04 16:07:07.920&#8242; AS DateTime), 101);</p></blockquote>
<p>If you need to use it in a comparison you can easily do something like</p>
<blockquote><p>WHERE CONVERT(nvarchar(20), MyDateColumn, 101) BETWEEN @DateFrom AND @DateTo</p></blockquote>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2008/04/04/how-to-get-the-date-of-a-datetime-in-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sharepoint / MOSS / VPC Info</title>
		<link>http://blog.killfly.com/index.php/2007/12/28/sharepoint-moss-vpc-info/</link>
		<comments>http://blog.killfly.com/index.php/2007/12/28/sharepoint-moss-vpc-info/#comments</comments>
		<pubDate>Fri, 28 Dec 2007 18:40:11 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2007/12/28/sharepoint-moss-vpc-info/</guid>
		<description><![CDATA[I need a place to keep track of all the good resources I&#8217;ve been finding on how to get a VirtualPC image running for SharePoint Developement. Here goes: How to Build a SharePoint Development Machine: Long list of steps and tools to getting a development SharePoint server up and running. This takes the approach that <a href='http://blog.killfly.com/index.php/2007/12/28/sharepoint-moss-vpc-info/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I need a place to keep track of all the good resources I&#8217;ve been finding on how to get a VirtualPC image running for SharePoint Developement.  Here goes:</p>
<p>How to Build a SharePoint Development Machine:<br />
Long list of steps and tools to getting a development SharePoint server up and running.  This takes the approach that the develpoment tools should be kept local, and to use remote degugging:<br />
<a  href="http://weblogs.asp.net/erobillard/archive/2007/02/23/build-a-sharepoint-development-machine.aspx">http://weblogs.asp.net/erobillard/archive/2007/02/23/build-a-sharepoint-development-machine.aspx</a></p>
<p>How to create a MOSS 2007 VPC Image, the Whole 9 Yards:<br />
20 steps detailing the entire process from start to finish:<br />
<a  href="http://www.pptspaces.com/sharepointreporterblog/Lists/Posts/Post.aspx?ID=28">How to Create a MOSS 2007 VPC Image: The Whole 9 Yards</a></p>
<p>Andrew Noon: SharePoint Web Parts:<br />
Including remote debugging:<br />
<a  href="http://www.sharepointblogs.com/andynoon/archive/2006/06/20/sharepoint-2003-creating-web-parts.aspx">http://www.sharepointblogs.com/andynoon/archive/2006/06/20/sharepoint-2003-creating-web-parts.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2007/12/28/sharepoint-moss-vpc-info/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VB.NET Version of Custom Configuration Sections</title>
		<link>http://blog.killfly.com/index.php/2007/12/20/vbnet-version-of-custom-configuration-sections/</link>
		<comments>http://blog.killfly.com/index.php/2007/12/20/vbnet-version-of-custom-configuration-sections/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 19:22:40 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2007/12/20/vbnet-version-of-custom-configuration-sections/</guid>
		<description><![CDATA[Today at work I needed to add a custom configuration section to a 2.0 ASP.NET / VB.NET project.  After looking around, almost al the examples weren&#8217;t in VB.  The the best article I found was at (not surprisingly) 4Guys.  Anyway, the sample code was C#, so I had to convert it to VB.  Here it is <a href='http://blog.killfly.com/index.php/2007/12/20/vbnet-version-of-custom-configuration-sections/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Today at work I needed to add a custom configuration section to a 2.0 ASP.NET / VB.NET project.  After looking around, almost al the examples weren&#8217;t in VB.  The the <a  href="http://aspnet.4guysfromrolla.com/articles/032807-1.aspx">best article I found</a> was at (not surprisingly) 4Guys.  Anyway, the sample code was C#, so I had to convert it to VB.  Here it is for anyone who might want to D/L it.  Once you get used to it, the configSections stuff is pretty cool, although a little too much coding if you don&#8217;t really need it maybe.  Anyway, if you&#8217;ve been desperatley looking for a VB.NET example, here ya go:</p>
<p><a  href="http://blog.killfly.com/wp-content/uploads/2007/12/customconfiguration2_vb.zip" title="Custom Configuration (VB Version)">Custom Configuration (VB Version)</a></p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2007/12/20/vbnet-version-of-custom-configuration-sections/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Behringer B5 Disassembly</title>
		<link>http://blog.killfly.com/index.php/2007/12/18/behringer-b5-disassembly/</link>
		<comments>http://blog.killfly.com/index.php/2007/12/18/behringer-b5-disassembly/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 04:52:59 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Music]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2007/12/18/behringer-b5-disassembly/</guid>
		<description><![CDATA[My Behringer B-5 microphone started making some weird thumping noises recently. After doing some cable swapping, and creative hookups between my preamp and a pair of headphones, I became 90% sure that it was the microphone making these weird noises. Also, the noises seem to be intermittent, so my guess is that maybe one of <a href='http://blog.killfly.com/index.php/2007/12/18/behringer-b5-disassembly/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>My Behringer B-5 microphone started making some weird thumping noises recently.  After doing some cable swapping, and creative hookups between my preamp and a pair of headphones, I became 90% sure that it was the microphone making these weird noises.  Also, the noises seem to be intermittent, so my guess is that maybe one of the capacitors inside the microphone is making the noise in the signal after it heats up?  I don&#8217;t know, I&#8217;m not an electrical engineer.  Also, after taking the microphone apart myself, I discovered that if you&#8217;re not an electrical engineer,  there will be no reason for you to open this thing up.  Anyway, if you&#8217;re reading this, you have an unhealthy desire to take your B5 apart for some reason, so let&#8217;s go&#8230;</p>
<p>First the tools that you WILL NOT need.  I discovered this through my adventure:</p>
<ul>
<li>Pipe Cutter</li>
<li>Dewalt cordless drill and bits</li>
<li>Bench Vice  (to hold the microphone while you attempt to drill it)</li>
</ul>
<p>The tools you will need:</p>
<ul>
<li>Something to loosen the retainer clip (that&#8217;s what I call it).  I&#8217;m sure there is an official tool that can into the little cutouts  on the ring, but what I used was a pair of slip-joint pliers.</li>
</ul>
<p>Your microphone should look like this (<a  href="http://photo.killfly.com/displayimage.php?album=77&#038;pos=0" target="_blank">http://photo.killfly.com/displayimage.php?album=77&amp;pos=0</a>)  if it does not, you do not have a Behringer B5, and these instructions will not be of much help to you.  Also, the image of mine has a deep gouge on the XLR end.  Yours will not have this because mine is actually in two pieces.  The picture was taken after my first disassembly in which I cut off the end with a pipe cutter thinking that I needed to free up the screw at that end.  It turns out that the screw that is under the decal near the XLR connector does not need to be removed.  (I also attempted to drill out the screw in a fit of disassembly rage).</p>
<p>Take off the cardoid or omnidirectional capsule, whichever is on there,  and you will be presented with something like the following: <a  href="http://photo.killfly.com/displayimage.php?album=77&#038;pos=1" target="_blank">http://photo.killfly.com/displayimage.php?album=77&amp;pos=1</a>.  See the threads that are now exposed?  At the tip of the threads (also visible in the picture) you can see two cutouts.  This is where you should probably use a special tool to get into those cutouts, and be able to unthread this ring.  The ring is actually what&#8217;s holding the contents of the microphone into the case.</p>
<p>Unscrew the ring: <a  href="http://photo.killfly.com/displayimage.php?album=77&#038;pos=2" target="_blank">http://photo.killfly.com/displayimage.php?album=77&amp;pos=2 </a>(I&#8217;m using my fingers in the picture, but in reality I had to loosen it with a pair of slip-joint pliers.)  One thing to note, there are two holes in the top of the microphone that look like they&#8217;re custom made for being able to unscrew the tip.  This is not what you&#8217;re looking to do, you want to actually unscrew the threads themselves.</p>
<p>The desired result is better explained by seeing all the pieces together in a picture (or two):</p>
<ul>
<li><a  href="http://photo.killfly.com/displayimage.php?album=77&#038;pos=12" target="_blank">http://photo.killfly.com/displayimage.php?album=77&amp;pos=12</a></li>
<li><a  href="http://photo.killfly.com/displayimage.php?album=77&#038;pos=4" target="_blank"> http://photo.killfly.com/displayimage.php?album=77&amp;pos=4</a></li>
</ul>
<p>In this picture you can see the case, the ring, and the capsule in the top, and the guts of the microphone in the bottom of the picture.  In order to remove the guts, you&#8217;ll have to push down on the attenuation selector switch to be able to get it past the cutout on the case.   When you pull out the gut, it will come out on a sled.  You want to pull it out straight, because there&#8217;s a key that the XLR connector preventing it from twisting.  Both halves of the key are visible in these two shot</p>
<ul>
<li><a  href="http://photo.killfly.com/displayimage.php?album=77&#038;pos=5" target="_blank">http://photo.killfly.com/displayimage.php?album=77&amp;pos=5</a></li>
<li><a  href="http://photo.killfly.com/displayimage.php?album=77&#038;pos=6" target="_blank">http://photo.killfly.com/displayimage.php?album=77&amp;pos=6</a></li>
</ul>
<p>Now that you have the sled out, you can see the contents of the microphone.  If, like me, you were hoping to see a wire that might be loose, and that you could fix, you will be sorely disappointed.  But it&#8217;s still kinda neat.  Feel free to check out all the pics over at the photo site: <a  href="http://photo.killfly.com/thumbnails.php?album=77" target="_blank">http://photo.killfly.com/thumbnails.php?album=77</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2007/12/18/behringer-b5-disassembly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ADAL 1.0.8</title>
		<link>http://blog.killfly.com/index.php/2007/08/29/adal-108/</link>
		<comments>http://blog.killfly.com/index.php/2007/08/29/adal-108/#comments</comments>
		<pubDate>Thu, 30 Aug 2007 00:35:02 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2007/08/29/adal-108/</guid>
		<description><![CDATA[ADAL 1.0.8 Changes CodeGen Logic in seperate assembly. This will make lots of things easier (for me), but most notably it will allow easy creation of other projects that use the ADAL library (like a web-based version). Option to save password with project file. You shouldn&#8217;t be using a high-level account anyway! Option to prefix <a href='http://blog.killfly.com/index.php/2007/08/29/adal-108/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p><strong>ADAL 1.0.8 Changes</strong></p>
<p>CodeGen Logic in seperate assembly.  This will make lots of things easier (for me), but most notably it will allow easy creation of other projects that use the ADAL library (like a web-based version).</p>
<p>Option to save password with project file.  You shouldn&#8217;t be using a high-level account anyway!</p>
<p>Option to prefix &#8220;Item&#8221; object property names with a string if they are a member of the primary key.  This makes knowing what field must be populated for an Insert easy.</p>
<p>I omitted the installer for now until I get the auto-update working right.  Who wants to have to uninstall an application when it&#8217;s just an update.</p>
<p>Other stuff I can&#8217;t remember, it&#8217;s been a while since a release.</p>
<p>Download: <a  href="http://sourceforge.net/projects/adal/">http://sourceforge.net/projects/adal/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2007/08/29/adal-108/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coppermine Demo Fixed?</title>
		<link>http://blog.killfly.com/index.php/2007/08/29/coppermine-demo-fixed/</link>
		<comments>http://blog.killfly.com/index.php/2007/08/29/coppermine-demo-fixed/#comments</comments>
		<pubDate>Thu, 30 Aug 2007 00:22:29 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2007/08/29/coppermine-demo-fixed/</guid>
		<description><![CDATA[Hi all, Here&#8217;s the link to what I think is a fixed version of the Coppermine 1.3 demo package, which I have called 1.3.1. Here&#8217;s what I did to fix, that way someone can tell me if it&#8217;ll cause any problems. It seems to work for me, but I&#8217;m not a coppermine expert&#8230; Start Demo <a href='http://blog.killfly.com/index.php/2007/08/29/coppermine-demo-fixed/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Hi all,</p>
<p>Here&#8217;s the link to what I think is a fixed version of the Coppermine 1.3 demo package, which I have called 1.3.1.  Here&#8217;s what I did to fix, that way someone can tell me if it&#8217;ll cause any problems.  It seems to work for me, but I&#8217;m not a coppermine expert&#8230;</p>
<ul>
<li>Start Demo 1.1</li>
<li>Attach MySQL Administrator to the MySQL instance, and backup the coppermine database.</li>
<li>Stop Demo 1.1</li>
<li>Edit Demo1.3 &#8216;pms_config.ini&#8217; file to not mirror database to local directory.</li>
<li>Start Demo 1.3</li>
<li>Attach MySQL Administrator to the MySQL instance, and restore the backup from 1.1.</li>
<li>Stop the Demo1.3</li>
<li>Zip up Demo 1.3 as 1.3.1</li>
</ul>
<p><a  href="http://www.killfly.com/uploads/Technology/CoppermineLiveDemoFix/cpg_live-demo_1.3.2.zip">http://www.killfly.com/uploads/Technology/CoppermineLiveDemoFix/cpg_live-demo_1.3.2.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2007/08/29/coppermine-demo-fixed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pitfalls of Automatic Update Utilities</title>
		<link>http://blog.killfly.com/index.php/2007/04/09/microsoft-sometimes-you-piss-me-off/</link>
		<comments>http://blog.killfly.com/index.php/2007/04/09/microsoft-sometimes-you-piss-me-off/#comments</comments>
		<pubDate>Mon, 09 Apr 2007 14:57:47 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2007/04/09/microsoft-sometimes-you-piss-me-off/</guid>
		<description><![CDATA[Usually I&#8217;m a proponent of Microsoft. I generally like their developmet tools, and enjoy writing in .NET because of all the useful things I can accomplish with it. But today they pissed me off a little bit. I was trying to figure out how to interface with Exchange Server 2003, so I downloaded their SDK <a href='http://blog.killfly.com/index.php/2007/04/09/microsoft-sometimes-you-piss-me-off/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Usually I&#8217;m a proponent of Microsoft.  I generally like their developmet tools, and enjoy writing in .NET because of all the useful things I can accomplish with it.  But today they pissed me off a little bit.  I was trying to figure out how to interface with Exchange Server 2003, so I downloaded their SDK for 2003 (<a  href="http://www.microsoft.com/downloads/details.aspx?familyid=09B45603-2147-424E-81E5-601FBFDFDF0D&#038;displaylang=en">http://www.microsoft.com/downloads/details.aspx?familyid=09B45603-2147-424E-81E5-601FBFDFDF0D&amp;displaylang=en</a>).  One of the sample projects is an Issue Tracking System.</p>
<p>The install went ok (it creates a virtual directory for you, and copies the files to your inetpub folder).  However, when I opened the site in Visual Studio 2005 it was prompted with the conversion utility to upgrade it to the new 2005 format.   &#8220;No problem&#8221; I thought, go for it.  I navigated to the IIS directory (using the Visual Studio IIS browser in the conversion utility) and clicked ok.</p>
<p>I was letting it run and glanced down at the status bar to see files names from a lot of my other projects flying by.  &#8220;Oh crap!&#8221;, said to myself&#8230;actually that wasn&#8217;t <em>exactly</em> what I said.  I clicked cancel, which didn&#8217;t work.  I guess they didn&#8217;t use enough application.doevents in their code.</p>
<p>Long story short, a lot of my applications that used to be stored in my inetpub folder are now hosed.  Thankfully all the <em>real</em> project are under source control so I just have to pull fresh copies out, but a lot of little test projects are now broken.</p>
<p>Maybe I have something unique about my environment which caused it to attempt to convert my entire inetpub folder,  or maybe I fat-fingered the &#8220;open from IIS application&#8221; browser and selected the IIS root.  Whatever it was it&#8217;s a very good reminder lesson that:</p>
<ul>
<li>Conversion utilities are dangerous things</li>
<li>Source Control is awesome</li>
<li>Backup procedures are critical</li>
</ul>
<p>Now I&#8217;m off to try and salvage as many applications as I can&#8230;&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2007/04/09/microsoft-sometimes-you-piss-me-off/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ADAL 1.0.7a</title>
		<link>http://blog.killfly.com/index.php/2007/04/05/adal-107a/</link>
		<comments>http://blog.killfly.com/index.php/2007/04/05/adal-107a/#comments</comments>
		<pubDate>Fri, 06 Apr 2007 02:23:47 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2007/04/05/adal-107a/</guid>
		<description><![CDATA[Not much to report, just that I accidently removed the icon for the ADAL exe, so the last release went out without it. So if you really were attached to that awesome icon, you can go re-download ADAL. -Andrew]]></description>
			<content:encoded><![CDATA[<p>Not much to report, just that I accidently removed the icon for the ADAL exe, so the last release went out without it.  So if you really were attached to that <em>awesome</em> icon, you can go <a  href="http://sourceforge.net/projects/adal/">re-download</a> ADAL.</p>
<p>-Andrew</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2007/04/05/adal-107a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ADAL 1.0.7</title>
		<link>http://blog.killfly.com/index.php/2007/04/04/adal-107/</link>
		<comments>http://blog.killfly.com/index.php/2007/04/04/adal-107/#comments</comments>
		<pubDate>Thu, 05 Apr 2007 02:43:02 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2007/04/04/adal-107/</guid>
		<description><![CDATA[ You can download now, or read and download at the bottom (recommended, lol) ADAL Version 1.0.7 was released today. Additions and fixes are included are: - Fixed bug in PopulateFromReader that caused an error when calling the SELECT method of DAL objects. The call to PopulateFromReader was not inside a Do While Reader.Read. - Supports <a href='http://blog.killfly.com/index.php/2007/04/04/adal-107/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p> You can <a  href="http://sourceforge.net/projects/adal/">download </a>now, or read and download at the bottom (recommended, lol)</p>
<p>ADAL Version 1.0.7 was released today.  Additions and fixes are included are:</p>
<p>- Fixed bug in PopulateFromReader that caused an error when calling the SELECT method of DAL objects. The call to PopulateFromReader was not inside a Do While Reader.Read.</p>
<p>- Supports SQL Server IMAGE and MONEY datatypes.  Image is mapped to a Byte array on the .NET side.</p>
<p>- Added detection of IsNullable and IsComputed when building the DAL.</p>
<p>- IsComputed detection is used to fix the bug that resulted when ADAL tried to update computed columns. Also, the ClassItem object&#8217;s property is set to read-only on a computed column. So there is never even the illusion that the end user could try to update that column themselves.</p>
<p>- IsNullable is used to reduce the amount of code generated in the .NET Insert and Update methods.</p>
<p>- We added screenshots to the SourceForge website too!</p>
<p><a  href="http://sourceforge.net/projects/adal/">Download</a>?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2007/04/04/adal-107/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamic Javascript Tag Insert &#8211; ASP.NET 2.0</title>
		<link>http://blog.killfly.com/index.php/2007/04/04/dynamic-javascript-tag-insert-aspnet-20/</link>
		<comments>http://blog.killfly.com/index.php/2007/04/04/dynamic-javascript-tag-insert-aspnet-20/#comments</comments>
		<pubDate>Wed, 04 Apr 2007 22:28:28 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2007/04/04/dynamic-javascript-tag-insert-aspnet-20/</guid>
		<description><![CDATA[A lot of JavaScript utilities need to be inserted at the bottom of the page so that the HTML elements that use them (or at least the function calls) do not generate errors. When using ASP.NET 2.0 master pages, you might want to insert the &#60;SCRIPT&#62; tags dynamically so that a particular JavaScript resource is <a href='http://blog.killfly.com/index.php/2007/04/04/dynamic-javascript-tag-insert-aspnet-20/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>A lot of JavaScript utilities need to be inserted at the bottom of the page so that the HTML elements that use them (or at least the function calls) do not generate errors.  When using ASP.NET 2.0 master pages, you might want to insert the &lt;SCRIPT&gt; tags dynamically so that a particular JavaScript resource is available on every page.</p>
<p>I spent a lot of time trying to find a solution to this, and never really found a perfect one.  The method I describe here is the best solution I could find at the moment.</p>
<p>Firts add a PlaceHolder Control, right before the end form tag.  We&#8217;ll use this to write the &lt;SCRIPT&gt; tag so that it appears almost at the end of the document:</p>
<p><font color="#0000ff" size="2">&lt;</font><font color="#a31515" size="2">asp</font><font color="#0000ff" size="2">:</font><font color="#a31515" size="2">PlaceHolder</font><font size="2"> </font><font color="#ff0000" size="2">ID</font><font color="#0000ff" size="2">=&#8221;plhJavaScript&#8221;</font><font size="2"> </font><font color="#ff0000" size="2">runat</font><font color="#0000ff" size="2">=&#8221;server&#8221;&gt;&lt;/</font><font color="#a31515" size="2">asp</font><font color="#0000ff" size="2">:</font><font color="#a31515" size="2">PlaceHolder</font><font color="#0000ff" size="2">&gt;</font></p>
<p>Then you can modify the master page&#8217;s Page_Load event to create a generic control, which will end up as the &lt;SCRIPT&gt; tag that is our goal.  Once you have it, all you have to do is add it to the placeholder:</p>
<p style="margin: 0px">      <span style="color: green">&#8216;create generic html control</span></p>
<p style="margin: 0px">      <span style="color: blue">Dim</span> JS <span style="color: blue">As</span> <span style="color: blue">New</span> HtmlControls.HtmlGenericControl(<span style="color: #a31515">&#8220;script&#8221;</span>)</p>
<p style="margin: 0px">      JS.Attributes.Add(<span style="color: #a31515">&#8220;type&#8221;</span>, <span style="color: #a31515">&#8220;text/javascript&#8221;</span>)</p>
<p style="margin: 0px">      JS.Attributes.Add(<span style="color: #a31515">&#8220;src&#8221;</span>, HttpContext.Current.Request.ApplicationPath &amp; <span style="color: #a31515">&#8220;/js/MyJavascriptFile.js&#8221;</span>)</p>
<p style="margin: 0px">      plhJavaScript.Controls.Add(JS)</p>
<p><!--EndFragment--><!--EndFragment-->That&#8217;s pretty much it.  I think the code above might need tweaking to get the path always perfect if you&#8217;re down in a sub-directory, but you get the point.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2007/04/04/dynamic-javascript-tag-insert-aspnet-20/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>ADAL 1.0.6</title>
		<link>http://blog.killfly.com/index.php/2007/03/28/adal-106/</link>
		<comments>http://blog.killfly.com/index.php/2007/03/28/adal-106/#comments</comments>
		<pubDate>Wed, 28 Mar 2007 21:23:38 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2007/03/28/adal-106/</guid>
		<description><![CDATA[Hi all, Options:  Download now, or read and then download at the bottom.  ADAL 1.0.6 has been released.  There is a new feature in this release for anyone doing their own extensions, PopulateFromReader!  Basically this method that is available on every Item that ADAL creates will accept a SQLDataReader and auto populate the properties of the <a href='http://blog.killfly.com/index.php/2007/03/28/adal-106/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Hi all,</p>
<p>Options:  <a  href="http://sourceforge.net/projects/adal/" title="ADAL Download Page">Download</a> now, or read and then download at the bottom.</p>
<p> ADAL 1.0.6 has been released.  There is a new feature in this release for anyone doing their own extensions, PopulateFromReader!  Basically this method that is available on every Item that ADAL creates will accept a SQLDataReader and auto populate the properties of the object for you.  Yes, that&#8217;s right, no more:</p>
<p> IIF(MyReader(<font size="2" color="#a31515">&#8220;ColumnName&#8221;</font><font size="2">) </font><font size="2" color="#0000ff">Is</font><font size="2"> DBNull.Value, </font><font size="2" color="#0000ff">Nothing</font><font size="2">, MyReader(</font><font size="2" color="#a31515">&#8220;ColumnName&#8221;</font><font size="2">))</font></p>
<p>Now isn&#8217;t that nifty?  This allows you to create an extension in a Partial class without too much worry.  Just <em>make sure</em> that the reader has all the fields the object will need or you&#8217;ll see a yellow screen of death.</p>
<p> The code that ADAL creates for a Select Now looks something like:</p>
<p><font size="2" color="#0000ff">Public</font><font size="2"> </font><font size="2" color="#0000ff">Function</font><font size="2"> [Select](</font><font size="2" color="#0000ff">ByVal</font><font size="2"> ColumnName </font><font size="2" color="#0000ff">As</font><font size="2"> </font><font size="2" color="#0000ff">String</font><font size="2">) </font><font size="2" color="#0000ff">As</font><font size="2"> Classes.TableItem<br />
</font><font size="2" color="#0000ff">Dim</font><font size="2"> retObject </font><font size="2" color="#0000ff">As</font><font size="2"> </font><font size="2" color="#0000ff">New</font><font size="2"> Classes.TableItem</font><font size="2" color="#0000ff">Try</font></p>
<p><font size="2" color="#0000ff">Dim</font><font size="2"> MyReader </font><font size="2" color="#0000ff">As</font><font size="2"> SqlDataReader<br />
</font><font size="2">MyCommand.CommandText = </font><font size="2" color="#a31515">&#8220;ADAL_usp_TableItem_Select&#8221;</font></p>
<p><font size="2" color="#0000ff">With</font><font size="2"> MyCommand.Parameters<br />
</font><font size="2">.Clear()<br />
</font><font size="2">.Add(</font><font size="2" color="#a31515">&#8220;@ColumnName&#8221;</font><font size="2">, SqlDbType.VARCHAR, 2).value = ColumnName<br />
</font><font size="2" color="#0000ff">End</font><font size="2"> </font><font size="2" color="#0000ff">With</font></p>
<p><font size="2">SqlConnection1.Open()<br />
</font><font size="2">MyReader = MyCommand.ExecuteReader(CommandBehavior.CloseConnection)</font><font size="2"><strong>retObject.PopulateFromReader(MyReader)<br />
</strong></font><font size="2">MyReader.Close()</font><font size="2" color="#0000ff">Catch</font><font size="2"> ex </font><font size="2" color="#0000ff">As</font><font size="2"> Exception<br />
</font><font size="2" color="#0000ff">Throw<br />
</font><font size="2" color="#0000ff">Finally</font></p>
<p><font size="2" color="#0000ff">If</font><font size="2"> SqlConnection1.State = ConnectionState.Open </font><font size="2" color="#0000ff">Then</font><font size="2"> SqlConnection1.Close()<br />
</font><font size="2" color="#0000ff">End</font><font size="2"> </font><font size="2" color="#0000ff">Try</font></p>
<p><font size="2" color="#0000ff">Return</font><font size="2"> retObject<br />
</font><font size="2" color="#0000ff">End</font><font size="2"> </font><font size="2" color="#0000ff">Function</font></p>
<p>The new PopulateFromReader is in bold. </p>
<p>There&#8217;s also a bug fix in this version.  When ADAL was creating code to check for the length of strings during Property Sets if failed to check if the value was not nothing, and ended up causing an exception if it was (it was just using If MyString.Length &gt; 0 Then).</p>
<p>Maybe you want to head on over to SourceForge and give it a <a  href="http://sourceforge.net/projects/adal/" title="ADAL Download Page">Download</a>?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2007/03/28/adal-106/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ADAL 1.0.5</title>
		<link>http://blog.killfly.com/index.php/2007/03/18/adal-105/</link>
		<comments>http://blog.killfly.com/index.php/2007/03/18/adal-105/#comments</comments>
		<pubDate>Mon, 19 Mar 2007 00:52:25 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2007/03/18/adal-105/</guid>
		<description><![CDATA[An official release of ADAL, version 1.0.5 is available form the ADAL SourceForge.net download page (http://sourceforge.net/projects/adal). There&#8217;s a couple new features in this version, most notably: Uses an .msi installer Has &#8220;File Save&#8221; and &#8220;File Open&#8221; commands that write the current configuration to a custom XML file so you can reload the settings you had <a href='http://blog.killfly.com/index.php/2007/03/18/adal-105/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>An official release of ADAL, version 1.0.5 is available form the ADAL SourceForge.net download page (<a  href="http://sourceforge.net/projects/adal">http://sourceforge.net/projects/adal</a>).  There&#8217;s a couple new features in this version, most notably:</p>
<ul>
<li>Uses an .msi installer</li>
<li>Has &#8220;File Save&#8221; and &#8220;File Open&#8221; commands that write the current configuration to a custom XML file so you can reload the settings you had last.</li>
</ul>
<p>There&#8217;s also a quick bug fix.  When a table is all primary keys, ADAL used to generate a &#8220;GRANT EXECUTE ON&#8221; for the UPDATE stored procedure, even though it didn&#8217;t generate the CREATE statement for the update, so it generated a SQL error when you ran the SQL script.  This has been fixed.</p>
<p>Plans for the future are:</p>
<ul>
<li>Templating &#8211; Develop a templating system so that users can create their own VB code templates that ADAL should generate around.  this will be quite hard to get right, so I wouldn&#8217;t expect it too soon.</li>
<li>Use embedded (but still paramaterized) SQL.  This would remove the need to create the stored procedures, which can be nice to keep the use of ADAL fairly simple.</li>
<li>Take a look at Paul Kimmel&#8217;s Ideas about a Data Acces Layer and see how much of that can be used in ADAL (http://www.developer.com/net/vb/article.php/3650241)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2007/03/18/adal-105/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ADAL &#8211; Gone Open Source</title>
		<link>http://blog.killfly.com/index.php/2007/03/15/adal-gone-open-source/</link>
		<comments>http://blog.killfly.com/index.php/2007/03/15/adal-gone-open-source/#comments</comments>
		<pubDate>Fri, 16 Mar 2007 02:23:35 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2007/03/15/adal-gone-open-source/</guid>
		<description><![CDATA[I decided to make ADAL Open Source.   &#8220;Why not?&#8221; I figured.  I never planned on charging for it, and now that it&#8217;s open source I get to host it at SourceForge and get the use of their Subversion Source Control servers.  So anyway, I haven&#8217;t done an official release over at SourceForge yet, but at <a href='http://blog.killfly.com/index.php/2007/03/15/adal-gone-open-source/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I decided to make ADAL Open Source.   &#8220;Why not?&#8221; I figured.  I never planned on charging for it, and now that it&#8217;s open source I get to host it at SourceForge and get the use of their Subversion Source Control servers.  So anyway, I haven&#8217;t done an official release over at SourceForge yet, but at least you can get the code from Subversion and compile it yourself if you want the most recent version.  The SourceForge URL is: <a  href="http://sourceforge.net/projects/adal">http://sourceforge.net/projects/adal</a></p>
<p>Don&#8217;t be afraid to use the SourceSorge forum and feature request system either&#8230;</p>
<p> Have fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2007/03/15/adal-gone-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removed Flickr Badge</title>
		<link>http://blog.killfly.com/index.php/2006/05/27/removed-flickr-badge/</link>
		<comments>http://blog.killfly.com/index.php/2006/05/27/removed-flickr-badge/#comments</comments>
		<pubDate>Sat, 27 May 2006 12:18:36 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2006/05/27/removed-flickr-badge/</guid>
		<description><![CDATA[I used to have the Flickr Badge on the right hand sidebar, but it seemed to be slowing down the blog (I&#8217;d frequently see my browser &#8220;Waiting for www.flickr.com&#8230;&#8221;). It&#8217;s gone now, we&#8217;ll see if performance improves.]]></description>
			<content:encoded><![CDATA[<p>I used to have the Flickr Badge on the right hand sidebar, but it seemed to be slowing down the blog (I&#8217;d frequently see my browser &#8220;Waiting for www.flickr.com&#8230;&#8221;).  It&#8217;s gone now, we&#8217;ll see if performance improves.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2006/05/27/removed-flickr-badge/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ADAL v.03</title>
		<link>http://blog.killfly.com/index.php/2006/05/22/adal-v03/</link>
		<comments>http://blog.killfly.com/index.php/2006/05/22/adal-v03/#comments</comments>
		<pubDate>Mon, 22 May 2006 04:15:15 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2006/05/22/adal-v03/</guid>
		<description><![CDATA[Removed VB syntax highlighting until we develop our own. Identifies tables with auto-increment fields and alters the insert to not attempt to insert into that field (would generate a SQL error). The DAL class also sets the ID property of the item passed in to the new auto-incremented value. UPDATE statements now update every field <a href='http://blog.killfly.com/index.php/2006/05/22/adal-v03/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<ul type="disc" style="margin-top: 0in">
<li class="MsoNormal">Removed      VB syntax highlighting until we develop our own.</li>
<li class="MsoNormal">Identifies      tables with auto-increment fields and alters the insert to not attempt to      insert into that field (would generate a SQL error).  The DAL class also sets the ID property      of the item passed in to the new auto-incremented value.</li>
<li class="MsoNormal">UPDATE      statements now update every field (even the primary keys).  This is weird but was needed in order to      satisfy cases where every column in the table is part of the primary key      (ADAL used to generate invalid code in this case).  I suppose this makes the execution of      the update statement a little slower, but in the interest of reliability      I’m willing to make the sacrifice.</li>
<li class="MsoNormal">Interprets DECIMAL datatype correctly</li>
</ul>
<p class="MsoNormal">
<p class="MsoNormal"><strong>Now With Options!</strong></p>
<ul type="disc" style="margin-top: 0in">
<li class="MsoNormal">Options      menu item opens options form!</li>
<li class="MsoNormal">Change      root namespace (defaults to ADAL)</li>
<li class="MsoNormal">Put      the item classes and DAL classes in the same or separate namespaces (Defaults to &#8220;Classes&#8221; and &#8220;DAL&#8221;)</li>
<li class="MsoNormal">Customizable      stored procedure prefix.  This      allows you to easily identify which stored procedures belong to the ADAL      objects (in case you need to delete either the ADAL or your own it’ll help      prevent what I did when I deleted a few custom stored procedures because      they all looked the same).</li>
<li class="MsoNormal">Option      to generate “GRANT EXECUTE” statements on the stored procedures created.  No more “Execute permission denied”      errors!</li>
<li class="MsoNormal">Option      to include validation code on varchar property gets and sets for length.  ADAL throws an exception if you enable      this and you try to set an items property with a value that’s too long.</li>
</ul>
<p><strong>Still With Problems</strong></p>
<ul>
<li>There are still data types (like tinyint that ADAL doesn&#8217;t know what to do with).  I&#8217;ll get to those eventually&#8230;.</li>
</ul>
<p><strong>Download: </strong><a  id="p59" onmousedown="selectLink(59);" href="http://blog.killfly.com/wp-content/uploads/2006/05/ADAL_v0.3.zip">ADAL Version 0.3 </a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2006/05/22/adal-v03/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>No More Spam &amp; a New CMS</title>
		<link>http://blog.killfly.com/index.php/2006/05/21/no-more-spam-a-new-cms/</link>
		<comments>http://blog.killfly.com/index.php/2006/05/21/no-more-spam-a-new-cms/#comments</comments>
		<pubDate>Sun, 21 May 2006 12:32:44 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2006/05/21/no-more-spam-a-new-cms/</guid>
		<description><![CDATA[Spamalot I just downloaded and installed Akismet so hopefully I won&#8217;t have to deal with spam any more. We&#8217;ll see. CMS Search I also checked out some CMS packages yesterday and think the one that looks the best so far is CMS Made Simple It has a nice simple interface that allows me to add <a href='http://blog.killfly.com/index.php/2006/05/21/no-more-spam-a-new-cms/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p><strong>Spamalot</strong><br />
I just downloaded and installed <a  target="_blank" href="http://akismet.com/">Akismet</a>  so hopefully I won&#8217;t have to deal with spam any more.  We&#8217;ll see.</p>
<p><strong>CMS Search</strong><br />
I also checked out some CMS packages yesterday and think the one that looks the best so far is <a  target="_blank" href="http://www.cmsmadesimple.org/">CMS Made Simple</a>  It has a nice simple interface that allows me to add new categories, and pages under the categories.  It offers links between pages, but does not keep track of what pages are linked to what.  So it allows me to delete a page that is being linked to from another, that&#8217;s the only part I don&#8217;t like so far&#8230;</p>
<p>For a free demo of CMS Made Simple, check out <a  href="http://opensourcecms.com/index.php?option=content&#038;task=view&#038;id=452">http://opensourcecms.com/index.php?option=content&#038;task=view&#038;id=452</a></p>
<p>I&#8217;ll keep looking on <a  target="_blank" href="http://opensourcecms.com/">http://opensourcecms.com/</a> for a CMS, but so far this one&#8217;s out front.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2006/05/21/no-more-spam-a-new-cms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Damn I&#8217;m Bored</title>
		<link>http://blog.killfly.com/index.php/2006/05/20/damn-im-bored/</link>
		<comments>http://blog.killfly.com/index.php/2006/05/20/damn-im-bored/#comments</comments>
		<pubDate>Sat, 20 May 2006 13:10:27 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2006/05/20/damn-im-bored/</guid>
		<description><![CDATA[Here&#8217;s a neat little site that shows short video clips of Linux distrobutions&#8230;if you like that shitty Linux OS: http://linclips.crocusplains.com/]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a neat little site that shows short video clips of Linux distrobutions&#8230;if you like that shitty Linux OS: <a  href="http://linclips.crocusplains.com/">http://linclips.crocusplains.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2006/05/20/damn-im-bored/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oh Yeah, there&#8217;s more</title>
		<link>http://blog.killfly.com/index.php/2006/05/20/oh-yeah-theres-more/</link>
		<comments>http://blog.killfly.com/index.php/2006/05/20/oh-yeah-theres-more/#comments</comments>
		<pubDate>Sat, 20 May 2006 12:37:19 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2006/05/20/oh-yeah-theres-more/</guid>
		<description><![CDATA[I forgot, there&#8217;s more stuff I need to do: Get a CVS source control solution that works with Visual Studio I believe this will consist of either a local cvs server, or sourceforge projects (and their cvs server). Hopefully I&#8217;ll get something like http://www.jalindi.com/igloo/ to work so I can connect Visual Studio to cvs and <a href='http://blog.killfly.com/index.php/2006/05/20/oh-yeah-theres-more/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I forgot, there&#8217;s more stuff I need to do:</p>
<ol>
<li>Get a CVS source control solution that works with Visual Studio I believe this will consist of either a local cvs server, or sourceforge projects (and their cvs server). Hopefully I&#8217;ll get something like <a  title="http://www.jalindi.com/igloo/" href="http://www.jalindi.com/igloo/" target="_blank">http://www.jalindi.com/igloo/</a> to work so I can connect Visual Studio to cvs and feel like I&#8217;m working with VSS.</li>
<li>Finish varnishing my boat&#8217;s wood pieces. Also maybe fill the inner cabin with epoxy / filler to make it look nice inside, then I can paint it too.</li>
<li>Change the oil in my truck.</li>
<li>Delete this crappy linux OS.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2006/05/20/oh-yeah-theres-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bowling Rocks!</title>
		<link>http://blog.killfly.com/index.php/2006/05/20/bowling-rocks/</link>
		<comments>http://blog.killfly.com/index.php/2006/05/20/bowling-rocks/#comments</comments>
		<pubDate>Sat, 20 May 2006 12:05:00 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2006/05/20/bowling-rocks/</guid>
		<description><![CDATA[I went bowling last night for the first time in&#8230;15 years?&#8230;my first game really sucked, I even had a couple gutter balls, but my second game was really good.  I had a few strikes, and one set of three strikes in a row.  Don&#8217;t tell anyone, but I&#8217;m pretty sure it was all luck. I <a href='http://blog.killfly.com/index.php/2006/05/20/bowling-rocks/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I went bowling last night for the first time in&#8230;15 years?&#8230;my first game really sucked, I even had a couple gutter balls, but my second game was really good.  I had a few strikes, and one set of three strikes in a row.  Don&#8217;t tell anyone, but I&#8217;m pretty sure it was all luck.</p>
<p>I was starting to feel bad for the guys I was playing against until we played Halo later on in the night (around 1:00am).  They took their bowling frustrations out on me by completly kicking my ass.  Even with major handicaps on their part I was still only getting 8 kills out of 20 or whatever.</p>
<p><strong>Programming</strong></p>
<p>I&#8217;ve still got my homework list of programming chores for home.  With the nice weather it&#8217;s hard to motivate myself to do any programming at home, but the current list is:</p>
<ul>
<li>Fix some of the problems with ADAL</li>
<li>Start work on MASS (Multi Author Story System)</li>
<li>Start work on Mage (.NET port of coppermine&#8230;sort of)</li>
<li>Start work on the AGI Application Gateway Interface</li>
<li>Maye install an open source CMS on the killfly root (http://www.killfly.com).</li>
<li>Delete this shitty Linux OS from my laptop and put XP back on.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2006/05/20/bowling-rocks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ADAL v0.2</title>
		<link>http://blog.killfly.com/index.php/2006/04/05/adal-v01/</link>
		<comments>http://blog.killfly.com/index.php/2006/04/05/adal-v01/#comments</comments>
		<pubDate>Wed, 05 Apr 2006 05:10:35 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2006/04/05/adal-v01/</guid>
		<description><![CDATA[ADAL v0.2 ADAL (Auto Data Access Layer) is a utility to generate the stored procedures and .NET classes needed to get up and running with a basic Data Access Layer. License Currently ADAL may be used for free by: Students Government Agencies Educational Institutions ADAL may not be used: For Commercial purposes By BFFs v0.2 <a href='http://blog.killfly.com/index.php/2006/04/05/adal-v01/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<h3>ADAL v0.2</h3>
<p>ADAL (Auto Data Access Layer) is a utility to generate the stored procedures and .NET classes needed to get up and running with a basic Data Access Layer.</p>
<h3>License</h3>
<p>Currently ADAL may be used for free by:</p>
<ul>
<li>Students</li>
<li>Government Agencies</li>
<li>Educational Institutions</li>
</ul>
<p>ADAL may not be used:</p>
<ul>
<li>For Commercial purposes</li>
<li>By BFFs</li>
</ul>
<h3>v0.2 Means Not Ready for Production</h3>
<p>The code that ADAL generates has been tested by me for a total of about 10 minutes.  As such I <strong>would not</strong> recommend running the tool against a production database.</p>
<p>ADAL does not encrypt its communication with the server, so unless you know the connection between you and the database server is reasonably secure, I wouldn&#8217;t use it for databases or data that you are really attached to.  You never know who&#8217;s listening to your wire looking for a database username and password to go flying by.</p>
<p>ADAL also has trouble with some datatypes right now, it can generate the Stored Procedures all right, but translating some SQL server datatypes to .NET data types gives it a headache.</p>
<h3>Is it Really That Dangerous?</h3>
<p>No, but i&#8217;m covering my ass.  ADAL itself only issues SELECT statements against the database, you can actually run ADAL with a very low-priviliage account.  It seems that as long as the account is a data-reader, it can get the information it needs.</p>
<p>Of course, ADAL does generate the CREATE statements to DELETE information from your tables.  So if you were careless, you could run one of these stored procedures and delete a row of data.  That&#8217;s about the worst that can happen.</p>
<h3>How do I use it?</h3>
<ul>
<li>Download the ADAL .zip file below, and unzip the .exe inside.</li>
<li>Run the .exe.</li>
<li>Fill in the server, username, and password.</li>
<li>Click Connect</li>
<li>Select the database you want to generate a DAL for.</li>
<li>Check the tables you want to generate a DAL for</li>
<li>Click &#8220;Make A DAL!&#8221;.</li>
<li>Copy the SQL from the &#8220;SQL Output&#8221; tab into query Analyzer and run it.  <strong>Make sure to select the correct database first!</strong></li>
<li>Copy the VB code from the &#8220;VB Output&#8221; tab into a new vb class file in your project.</li>
<li>Compile.</li>
<li>Have fun.  Enjoy not writing that crap by hand.</li>
</ul>
<h3>How Do I Download?</h3>
<p><strike>ADAL v.01</strike></p>
<p><a  onmousedown="selectLink(50);" id="p50" href="http://blog.killfly.com/wp-content/uploads/2006/04/ADAL_0.2.zip">ADAL 0.2</a></p>
<h3>Changes</h3>
<h4>ADAL 0.2</h4>
<ul>
<li>Added color highlighting to VB tab.  Only bug is that you have to click in the VB textbox and hit a key to trigger the color highlighting.</li>
<li>The account you use to connect with used to require that it have &#8220;master&#8221; as the default database.  This has been fixed.</li>
<li>There is a bug that was introduced as well, there is tome text (&#8220;test&#8221;)included at the end of each of the VB and SQL code windows.  You&#8217;ll have to delete this text before or after you use it.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2006/04/05/adal-v01/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mage &#8211; a .NET Image Gallery</title>
		<link>http://blog.killfly.com/index.php/2006/03/27/mage-a-net-image-gallery/</link>
		<comments>http://blog.killfly.com/index.php/2006/03/27/mage-a-net-image-gallery/#comments</comments>
		<pubDate>Mon, 27 Mar 2006 15:24:16 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2006/03/27/mage-a-net-image-gallery/</guid>
		<description><![CDATA[This is a call for features&#8230;.what are the critical / nice to haves for an online image gallery?   ]]></description>
			<content:encoded><![CDATA[<p>This is a call for features&#8230;.what are the critical / nice to haves for an online image gallery?</p>
<p> </p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2006/03/27/mage-a-net-image-gallery/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Creating Custom Collections and Binding Them</title>
		<link>http://blog.killfly.com/index.php/2006/01/19/creating-custom-collections-and-binding-them/</link>
		<comments>http://blog.killfly.com/index.php/2006/01/19/creating-custom-collections-and-binding-them/#comments</comments>
		<pubDate>Thu, 19 Jan 2006 22:45:58 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2006/01/19/creating-custom-collections-and-binding-them/</guid>
		<description><![CDATA[I thought this was too cool so I decided to post an example on it.  First Create A Class We need to create a class the items of which we will add to our custom collection.  This one&#8217;s pretty simple, it&#8217;s a car: &#8216;  Quick class to give us some properties Public Class CarItem    Public <a href='http://blog.killfly.com/index.php/2006/01/19/creating-custom-collections-and-binding-them/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I thought this was too cool so I decided to post an example on it. </p>
<p><strong>First Create A Class<br />
</strong>We need to create a class the items of which we will add to our custom collection.  This one&#8217;s pretty simple, it&#8217;s a car:</p>
<div style="padding-right: 0pt; padding-left: 0pt; font-size: 10pt; background: white; padding-bottom: 0pt; color: black; padding-top: 0pt; font-family: Courier New; border: windowtext 1pt solid">
<p style="margin: 0px"><span style="color: silver">&#8216;  Quick class to give us some properties</span></p>
<p style="margin: 0px"><span style="color: blue">Public</span> <span style="color: blue">Class</span> CarItem</p>
<p style="margin: 0px">   <span style="color: blue">Public</span> _Make <span style="color: blue">As</span> <span style="color: blue">String</span></p>
<p style="margin: 0px">   <span style="color: blue">Public</span> _Model <span style="color: blue">As</span> <span style="color: blue">String</span></p>
<p style="margin: 0px"> </p>
<p style="margin: 0px">   <span style="color: silver">&#8216;you have to implement the properties to be able to bind it later on</span></p>
<p style="margin: 0px">   <span style="color: silver">&#8216; (i.e. declaring the variables as Public won&#8217;t work)</span></p>
<p style="margin: 0px">   <span style="color: blue">Public</span> <span style="color: blue">Property</span> Make() <span style="color: blue">As</span> <span style="color: blue">String</span></p>
<p style="margin: 0px">      <span style="color: blue">Get</span></p>
<p style="margin: 0px">         <span style="color: blue">Return</span> _Make</p>
<p style="margin: 0px">      <span style="color: blue">End</span> <span style="color: blue">Get</span></p>
<p style="margin: 0px">      <span style="color: blue">Set</span>(<span style="color: blue">ByVal</span> Value <span style="color: blue">As</span> <span style="color: blue">String</span>)</p>
<p style="margin: 0px">         _Make = Value</p>
<p style="margin: 0px">      <span style="color: blue">End</span> <span style="color: blue">Set</span></p>
<p style="margin: 0px">   <span style="color: blue">End</span> <span style="color: blue">Property</span></p>
<p style="margin: 0px"> </p>
<p style="margin: 0px">   <span style="color: blue">Public</span> <span style="color: blue">Property</span> Model() <span style="color: blue">As</span> <span style="color: blue">String</span></p>
<p style="margin: 0px">      <span style="color: blue">Get</span></p>
<p style="margin: 0px">         <span style="color: blue">Return</span> _Model</p>
<p style="margin: 0px">      <span style="color: blue">End</span> <span style="color: blue">Get</span></p>
<p style="margin: 0px">      <span style="color: blue">Set</span>(<span style="color: blue">ByVal</span> Value <span style="color: blue">As</span> <span style="color: blue">String</span>)</p>
<p style="margin: 0px">         _Model = Value</p>
<p style="margin: 0px">      <span style="color: blue">End</span> <span style="color: blue">Set</span></p>
<p style="margin: 0px">   <span style="color: blue">End</span> <span style="color: blue">Property</span></p>
<p style="margin: 0px"><span style="color: blue">End</span> <span style="color: blue">Class</span></p>
</div>
<p><!--EndFragment--> </p>
<p><strong>Create The Custom Collection<br />
</strong>The important parts to note are the first line where we inherit from System.Collections.CollectionBase.  This provides all the basic functionality of the collection to us.</p>
<p>The next thing we do is to re-implement the Add and Item properties.  This is what makes it so cool.  Later on when you access these properties the intellisense knows that your adding a &#8220;CarItem&#8221; object and you have all the properties of the &#8220;CarItem&#8221; available.</p>
<p>The Microsoft article made the Item property ReadOnly.  I&#8217;m not sure why, I decided to implement the Item property just like the Base object&#8217;s Item Property (allowing Get and Set).</p>
<p> </p>
<div style="padding-right: 0pt; padding-left: 0pt; font-size: 10pt; background: white; padding-bottom: 0pt; color: black; padding-top: 0pt; font-family: Courier New; border: windowtext 1pt solid">
<p style="margin: 0px"><span style="color: silver">&#8216;This is the custom collection that we can populate and do things like bind to .NET controls</span></p>
<p style="margin: 0px"><span style="color: blue">Public</span> <span style="color: blue">Class</span> Cars</p>
<p style="margin: 0px">   <span style="color: blue">Inherits</span> System.Collections.CollectionBase</p>
<p style="margin: 0px"> </p>
<p style="margin: 0px"> </p>
<p style="margin: 0px">   <span style="color: silver">&#8216;Re-implement the Add method, but type it to our object</span></p>
<p style="margin: 0px">   <span style="color: blue">Public</span> <span style="color: blue">Sub</span> Add(<span style="color: blue">ByVal</span> Car <span style="color: blue">As</span> CarItem)</p>
<p style="margin: 0px">      list.Add(Car)</p>
<p style="margin: 0px">   <span style="color: blue">End</span> <span style="color: blue">Sub</span></p>
<p style="margin: 0px"> </p>
<p style="margin: 0px">   <span style="color: silver">&#8216;Reimplement the Item property but type it</span></p>
<p style="margin: 0px">   <span style="color: blue">Public</span> <span style="color: blue">Property</span> Item(<span style="color: blue">ByVal</span> index <span style="color: blue">As</span> <span style="color: blue">Integer</span>) <span style="color: blue">As</span> CarItem</p>
<p style="margin: 0px">      <span style="color: blue">Get</span></p>
<p style="margin: 0px">         <span style="color: blue">Return</span> <span style="color: blue">CType</span>(list.Item(index), CarItem)</p>
<p style="margin: 0px">      <span style="color: blue">End</span> <span style="color: blue">Get</span></p>
<p style="margin: 0px">      <span style="color: blue">Set</span>(<span style="color: blue">ByVal</span> Value <span style="color: blue">As</span> CarItem)</p>
<p style="margin: 0px">         list.Item(index) = Value</p>
<p style="margin: 0px">      <span style="color: blue">End</span> <span style="color: blue">Set</span></p>
<p style="margin: 0px">   <span style="color: blue">End</span> <span style="color: blue">Property</span></p>
<p style="margin: 0px"><span style="color: blue">End</span> <span style="color: blue">Class</span></p>
</div>
<p><!--EndFragment--> </p>
<p><strong>Using The New Collection<br />
</strong>Now that we&#8217;ve created our new collection we can use it.  The code below shows an example of how you might bind the collection to a datagrid.  Obviously you&#8217;d probably be adding the data from a database and not manually, but this is good enough for example.  The last line also shows how you can use the item property to inspect the items within the collection.</p>
<div style="padding-right: 0pt; padding-left: 0pt; font-size: 10pt; background: white; padding-bottom: 0pt; color: black; padding-top: 0pt; font-family: Courier New; border: windowtext 1pt solid">
<p style="margin: 0px"><span style="color: blue">Dim</span> MyCarCollection <span style="color: blue">As</span> <span style="color: blue">New</span> Cars</p>
<p style="margin: 0px"> </p>
<p style="margin: 0px"><span style="color: silver">&#8216;This would be better done through a database  <img src='http://blog.killfly.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </span></p>
<p style="margin: 0px"><span style="color: blue">Dim</span> Car1 <span style="color: blue">As</span> <span style="color: blue">New</span> CarItem</p>
<p style="margin: 0px"><span style="color: blue">With</span> Car1</p>
<p style="margin: 0px">   ._Make = <span style="color: teal">&#8220;Ford&#8221;</span></p>
<p style="margin: 0px">   ._Model = <span style="color: teal">&#8220;Ranger&#8221;</span></p>
<p style="margin: 0px"><span style="color: blue">End</span> <span style="color: blue">With</span></p>
<p style="margin: 0px">MyCarCollection.Add(Car1)</p>
<p style="margin: 0px"> </p>
<p style="margin: 0px"><span style="color: blue">Dim</span> Car2 <span style="color: blue">As</span> <span style="color: blue">New</span> CarItem</p>
<p style="margin: 0px"><span style="color: blue">With</span> Car2</p>
<p style="margin: 0px">   ._Make = <span style="color: teal">&#8220;Jeep&#8221;</span></p>
<p style="margin: 0px">   ._Model = <span style="color: teal">&#8220;Wrangler&#8221;</span></p>
<p style="margin: 0px"><span style="color: blue">End</span> <span style="color: blue">With</span></p>
<p style="margin: 0px">MyCarCollection.Add(Car2)</p>
<p style="margin: 0px"> </p>
<p style="margin: 0px"><span style="color: silver">&#8216;Assign our custom car collection to the cars datagrid and bind it</span></p>
<p style="margin: 0px">dgCars.DataSource = MyCarCollection</p>
<p style="margin: 0px">dgCars.DataBind()</p>
<p style="margin: 0px"> </p>
<p style="margin: 0px">Response.Write(MyCarCollection.Item(0).Make)</p>
</div>
<p><!--EndFragment--><!--EndFragment--><strong>Here&#8217;s an Example of The DataGrid After Being Bound</strong></p>
<p><img id="image42" height="76" alt="Datagrid after it's bound to a custom collection" src="http://blog.killfly.com/wp-content/uploads/2006/01/DataGrid%20Example1.GIF" width="128" /></p>
<p><strong>Pretty cool eh?</strong></p>
<p>Here&#8217;s the original Microsoft Article which I basically re-implemented here <img src='http://blog.killfly.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p><a  href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vaconCreatingYourOwnCollectionClass.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vaconCreatingYourOwnCollectionClass.asp</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2006/01/19/creating-custom-collections-and-binding-them/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Upgrade to WordPress 2.0</title>
		<link>http://blog.killfly.com/index.php/2006/01/03/upgrade-to-wordpress-20/</link>
		<comments>http://blog.killfly.com/index.php/2006/01/03/upgrade-to-wordpress-20/#comments</comments>
		<pubDate>Tue, 03 Jan 2006 15:51:26 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2006/01/03/upgrade-to-wordpress-20/</guid>
		<description><![CDATA[Hey there everyone. Just thought I&#8217;d tell everyone that I&#8217;ve upgraded http://blog.killfly.com to WordPress 2.0. On yourside I suppose it doesn&#8217;t look a whole lot different, but there&#8217;s all kinds of new things for me to play with&#8230;.that&#8217;s the real reason I had to write this post&#8230; For those technical people out there, here&#8217;s what <a href='http://blog.killfly.com/index.php/2006/01/03/upgrade-to-wordpress-20/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Hey there everyone.  Just thought I&#8217;d tell everyone that I&#8217;ve upgraded <a  href="http://blog.killfly.com/">http://blog.killfly.com</a> to WordPress 2.0.  On yourside I suppose it doesn&#8217;t look a whole lot different, but there&#8217;s all kinds of new things for me to play with&#8230;.that&#8217;s the real reason I had to write this post&#8230;</p>
<p>For those technical people out there, here&#8217;s what I did:</p>
<p><strong>Backup Current Site</strong></p>
<ul>
<li>Exported database from MyPhpAdmin as SQL file in case I needed to restore.</li>
<li>Downloaded all the files from the blog.killfly.com subdomain to my local hard drive.</li>
</ul>
<p><strong>Get New Files And Prepare Upload</strong></p>
<ul>
<li>Downloaded and extracted the new WordPress2 ZIP file to my desktop.</li>
<li>Copied the config.php and php.ini from my local backup to my downloaded copy (so I can upload one big folder).</li>
</ul>
<p><strong>Do Actual Upload and Update</strong></p>
<ul>
<li>Deleted all the wordpress files from the blog.killfly.com server (made sure to leave my stats folders).</li>
<li>Upload new files.</li>
<li>Ran the /wp-admin/upgrade.php file as per the instructions.</li>
<li>Opened http://blog.killfly.com/ in my browser.</li>
</ul>
<p>I realzed my custom banner was missing (my fault)&#8230;</p>
<p><strong>Fix Missing Banner</strong></p>
<ul>
<li>Uploladed my personalHeader.jpg file from my local backup at wp-content\themes\default\images</li>
<li>Uncommented the line in header.php using theme editor to re-display the custom header.</li>
</ul>
<p>Done!</p>
<p>Granted, my blog is fairly small, and I didn&#8217;t have any uploaded images.  But I was very happy at how easy the upgrade was.</p>
<p>-Andrew</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2006/01/03/upgrade-to-wordpress-20/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Largest Garlic Clove</title>
		<link>http://blog.killfly.com/index.php/2005/12/26/largest_garlic_clove/</link>
		<comments>http://blog.killfly.com/index.php/2005/12/26/largest_garlic_clove/#comments</comments>
		<pubDate>Tue, 27 Dec 2005 00:52:47 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2005/12/26/largest_garlic_clove/</guid>
		<description><![CDATA[A young chef attacks a clove of garlic as large as his hand.]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-bottom: 10px; margin-left: 10px"><a  title="photo sharing" href="http://www.flickr.com/photos/killfly/77784160/"><img style="border: #000000 2px solid" src="http://static.flickr.com/42/77784160_3037509c1c_m.jpg" /></a></p>
<p><span style="margin-top: 0px; font-size: 0.9em"><br />
<a  href="http://www.flickr.com/photos/killfly/77784160/">largest_garlic_clove</a></p>
<p>Originally uploaded by <a  href="http://www.flickr.com/people/killfly/">firstdivision</a>.<br />
</span></div>
<p>The largest clove of garlic I have ever cut into. Keep in mind, this is just one clove of an entire head!</p>
<p>This was actually a clove of garlic tha was inside a gift basket that we recieved. Since we were cooking up some chicken that was also in the gift basket, I decided to take on the garlic.</p>
<p>I minced about 3/4 of this clove and quickly fried it in butter,making sure not to burn or even brown it. This was added to a pan of fettucini with fresh-cut tomatoes and the garlic. This pasta/garlic mixture served as a bed for the chicken.</p>
<p>Yummy! Almost (but not quite) as good as Chicken Cordon Blue from Mama T&#8217;s.<br />
<br clear="all" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2005/12/26/largest_garlic_clove/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Hate GotDotNet Workspaces</title>
		<link>http://blog.killfly.com/index.php/2005/11/23/fuck-gotdotnet/</link>
		<comments>http://blog.killfly.com/index.php/2005/11/23/fuck-gotdotnet/#comments</comments>
		<pubDate>Thu, 24 Nov 2005 00:37:46 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2005/11/23/fuck-gotdotnet/</guid>
		<description><![CDATA[Argrggggg. I tried using their stupid service and couldn&#8217;t get any of the source control options to work. Now it&#8217;s stuck on one of the Source Control options and I can&#8217;t find a way to change it&#8230;..]]></description>
			<content:encoded><![CDATA[<p>Argrggggg.  I tried using their stupid service and couldn&#8217;t get any of the source control options to work.  Now it&#8217;s stuck on one of the Source Control options and I can&#8217;t find a way to change it&#8230;..</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2005/11/23/fuck-gotdotnet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>File System Permissions with ASP.NET</title>
		<link>http://blog.killfly.com/index.php/2005/10/27/file-system-permissions-with-aspnet/</link>
		<comments>http://blog.killfly.com/index.php/2005/10/27/file-system-permissions-with-aspnet/#comments</comments>
		<pubDate>Thu, 27 Oct 2005 20:42:11 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/index.php/2005/10/27/file-system-permissions-with-aspnet/</guid>
		<description><![CDATA[Give permissions to the correct user to alter application permisisons.]]></description>
			<content:encoded><![CDATA[<p>When managing permissions for an ASP.NET application, make sure to set the permissions for the user that the application will be running under.  This account is different depending on what version of IIS is running (which you can likely extend to the operating system in use).</p>
<p>To find the user that the application runs under, insert the following code into a page of your application:</p>
<p>Response.Write(Environment.UserName)</p>
<p>The user that Windows XP uses (in my tests) is: ASPNET<br />
The user that Windows Server 2003 uses (also in my tests) is: NETWORK SERVICE</p>
<p>Another factor to consider is that the above accounts were found with the application running with &#8220;IMPERSONATE IDENTITY&#8221; = False.    If it were set to true, the account would either be IUSER_MACHINENAME or the domain user if IIS has authenticated them.</p>
<p>Keep these issues in mind if you need to allow the end users elevated permissions (such as uploading files).  You will have to give permissions to different accounts depending on what version of IIS you are using.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2005/10/27/file-system-permissions-with-aspnet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VSS Reporter and XSLT</title>
		<link>http://blog.killfly.com/index.php/2005/10/04/vss-reporter-and-xslt/</link>
		<comments>http://blog.killfly.com/index.php/2005/10/04/vss-reporter-and-xslt/#comments</comments>
		<pubDate>Tue, 04 Oct 2005 04:03:28 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/?p=14</guid>
		<description><![CDATA[Using XSLT and CSS to transform the XML file from VSS Reporter into something prettier.]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong><br />
A while ago we started using Microsoft&#8217;s Visual SourceSafe at work with Visual Studio .NET 2003.  One of the first things we realized when we began working with it was that the reporting capabilities were lacking to say the least.  Another problem we faced was the ability to tie together changes in SourceSafe with issues in our issue tracker.  By using the free tool <a  href="http://www.codeproject.com/tools/VssReporter.asp">VssReporter</a> to find the files that changed since a label or date, we were able to accomplish both of these goals.</p>
<p>The only drawback about VSS Reporter is that the generated files aren&#8217;t very pretty.  Fortunatly one of the output options is XML which we can make to look pretty using XSLT and CSS.  And then, as long as we&#8217;re in there, let&#8217;s add some functionality to integrate a home-grown issue tracker with changes made in SourceSafe.  Then we can answer the question, &#8220;What bug or feature required that this file be changed?&#8221;</p>
<p><strong>XSLT</strong><br />
The <a  href="http://www.killfly.com/uploads/Technology/SourceSafe_XSLT/changes.xsl">XSLT file</a> essentially builds an HTML page out of a supplied XML file.  It was a little tedious to get working a first, but after a little bit of trial and error I was able to get the layout I wanted.</p>
<p>Another thing that the XSL does it to look for an occurence of  &#8220;ID=&#8221; in the comment field.  When files are checked into SourceSafe, we have to make sure that we use a comment that includes this string.  Without it there will be no way to correspond changes made to files with the issues submitted in the issue tracker.   This part is optioal to you, in fact if you don&#8217;t have &#8220;ID=&#8221; in your comment, the XSL will just ignore it and not try to build a link to the issue tracker.  This brings up the first modification you have to make.  </p>
<p>If you want to use the functionality to integrate your issue tracking system with SourceSafe, you&#8217;ll have to use a comment like the one I describe above.  In addition, you&#8217;ll have to change the line in the XSL file that builds the link to the issue tracker, since I&#8217;m going to guess that your URL to your issue tracker is not the same as the one I made up for the example.</p>
<p>Look for the line that looks like:<br />
<code></p>
<p>http://myIssueTracker/LookupIssue.aspx?Comment=</p>
<p></code><br />
and replace it with the URL to your own issue tracker.   The comment itself is appended to the end of whatever you specify here, so keep that in mind.  Either your issue tracker will have to be smart enough to extract the identifier for the issue from the comment&#8230;.or you&#8217;ll have to get fancier with the XSL to have it pass in only the ID number of the issue.  Since my VB.NET skills are much better than my XSL, I chose to make the IssueTracker page the smart one.  <img src='http://blog.killfly.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><strong>CSS</strong><br />
The <a  href="http://www.killfly.com/uploads/Technology/SourceSafe_XSLT/style.css">CSS file</a> is nothing special, it just makes the display a little easier to look at.</p>
<p><strong>The Final Product</strong><br />
An <a  href="http://www.killfly.com/uploads/Technology/SourceSafe_XSLT/sample.xml">example VSS Reporter XML file</a> shows how the three files work together to produce something that both looks nice (I think), and is useful.  </p>
<p>If you look at the source for the XML file,  you will see a line at the top that is not included in the XML file that is originally generated from VssReporter.  This is a line that tell the XML processor where to find a XSL document to use (I hope I&#8217;m not lying about what is going on).  In any case, you&#8217;ll need to add this line to the top of the XML file.  </p>
<p>There&#8217;s also a <a  href="http://www.killfly.com/uploads/Technology/SourceSafe_XSLT/VSS_XSLT.zip">ZIP file</a> that contains the three files mentioned in this article.  Just unzip all theee to the same directory.</p>
<p><strong>Conclusion</strong><br />
Hopefully someone will find this useful.  VssReporter is a really powerful (and free!) tool.  I think Visual Studio 2005 Team System might make this unnecesarry in the future, but probably not for a while.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2005/10/04/vss-reporter-and-xslt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two cool tools</title>
		<link>http://blog.killfly.com/index.php/2005/09/17/two-cool-tools/</link>
		<comments>http://blog.killfly.com/index.php/2005/09/17/two-cool-tools/#comments</comments>
		<pubDate>Sat, 17 Sep 2005 13:21:51 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/?p=13</guid>
		<description><![CDATA[Two cool tools to use, BCWipe and Daemon Tools]]></description>
			<content:encoded><![CDATA[<p>Just want to post links to two cool tools that I&#8217;ve come upon:</p>
<p>The first is BCWipe which allows you to securly delete files, or entire drives.    I haven&#8217;t used it, but I&#8217;ve talked to someone who has and they say it&#8217;s pretty cool.<br />
<a  href="http://www.jetico.com/">http://www.jetico.com/</a></p>
<p>The second tool is Daemon Tools.  This is a nice utility that allows you to mount ISO images as drives in Windows.  I&#8217;ve got an ISO mounted right now, took a few seconds to click the icon in the tray, select my ISO image and then navigate to to my new &#8220;F&#8221; drive.  Pretty slick.<br />
<a  href="http://www.daemon-tools.cc">http://www.daemon-tools.cc</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2005/09/17/two-cool-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MSDN Event &#8211; Visual Studio 2005</title>
		<link>http://blog.killfly.com/index.php/2005/09/14/msdn-event-visual-studio-2005/</link>
		<comments>http://blog.killfly.com/index.php/2005/09/14/msdn-event-visual-studio-2005/#comments</comments>
		<pubDate>Wed, 14 Sep 2005 17:48:02 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/?p=12</guid>
		<description><![CDATA[Short Overview of what I learned at the MSDN Event I attended in Providence RI]]></description>
			<content:encoded><![CDATA[<p>It was pretty good.  Basically what I expected it to be, which was an overview of the new features available in Visual Studio 2005.  One of the biggest advancements seems to be better data access, and more flexibility with how data is presented and bound to controls.</p>
<p>The DataSource wizard has been expanded too.  You can now specify an external URL to fetch an XML file for a datasource, that was pretty neat.  I&#8217;m not sure, but it also seemed that all the &#8220;auto-generated&#8221; connection strings were maintained in the web.config file auto-magically, even though the presenter was generating a new datasource on each page.  There&#8217;s also a way to specify a stored procedure to use as the datasource.  If this option is chosen, Visual Studio will read the parameters required and prompt you for where to get them (querystring, control, object, etc).  Also pretty cool.</p>
<p>The other major feature is something called master pages which lets you specify a template-file for the entire site and control the layout with that file instead of having to keep track of includes all over the place.  There&#8217;s also &#8220;skin&#8221; support that lets you define how each control should appear (i.e. all calendar controls should have a grey background, 12 pixel font, etc&#8230;).  Unfortunately, the skin support doesn&#8217;t extend to regular HTML controls, so you can&#8217;t use it for things like an H1 tag&#8230;I don&#8217;t understand why not.  This means that CSS is still required for these.</p>
<p>It will also validate the HTML for a particular browser, and will do it for section 508 compatibility if that&#8217;s required.</p>
<p>They didn&#8217;t cover much about Team System, which I was interested in, but they did give us a DVD of Team Foundation Server that we can install to check out the new features.  They also gave us a DVD with all the presentation details on it, you are welcome to borrow mine if you want.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2005/09/14/msdn-event-visual-studio-2005/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visible</title>
		<link>http://blog.killfly.com/index.php/2005/08/26/visible/</link>
		<comments>http://blog.killfly.com/index.php/2005/08/26/visible/#comments</comments>
		<pubDate>Fri, 26 Aug 2005 13:59:00 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/?p=11</guid>
		<description><![CDATA[Repetition is good?]]></description>
			<content:encoded><![CDATA[<p>I think I never learned how to spell &#8220;visible&#8221; until I started programming.  I probably always spelled it &#8220;visable.&#8221;  Now, after setting the &#8220;visible&#8221; property of so many controls I&#8217;ve become pretty good at typing out &#8220;visible&#8221;.</p>
<p>Just thought I&#8217;d mention that.  lol</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2005/08/26/visible/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IIS &#8211; Visual Studio 2003 &#8211; .NET</title>
		<link>http://blog.killfly.com/index.php/2005/08/18/iis-visual-studio-2003-net/</link>
		<comments>http://blog.killfly.com/index.php/2005/08/18/iis-visual-studio-2003-net/#comments</comments>
		<pubDate>Thu, 18 Aug 2005 22:21:18 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/?p=9</guid>
		<description><![CDATA[Classic ASP stops working durinig installation of Visual Studio 2003 and .NET]]></description>
			<content:encoded><![CDATA[<p>Well, I&#8217;m not sure exactly what happened, but I recently worked on a Windows XP laptop that was freshly rebuilt.  Classic ASP pages worked fine, as did .NET aspx pages.  </p>
<p>However, suddenly IIS stopped being able to serve classic ASP pages (.NET still worked fine).  It just returned a &#8220;500 Internal Server Error&#8221; The symptoms were exactly the same as an article on <a  href="http://support.microsoft.com/kb/297989/EN-US/">MSDN</a>, (two events in Event Viewer, one for W3SVC and one for DCOM) but we couldn&#8217;t get the suggested fix of making the passwords the same in both the IIS metebase and Windows.</p>
<p>It turned out, the easiest solution was to uninstall and reinstall IIS.  It takes about 20 min and you&#8217;re done.   Take lunch between the two and you barely notice what&#8217;s going on.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2005/08/18/iis-visual-studio-2003-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SourceSafe &#8211; Visual Studio &#8211; Integration</title>
		<link>http://blog.killfly.com/index.php/2005/08/17/sourcesafe-visual-studio-integration/</link>
		<comments>http://blog.killfly.com/index.php/2005/08/17/sourcesafe-visual-studio-integration/#comments</comments>
		<pubDate>Thu, 18 Aug 2005 02:56:51 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/?p=6</guid>
		<description><![CDATA[How to intstall the integration between Visual SourceSafe and Visual Studio 2003 without using the SourceSafe CD.]]></description>
			<content:encoded><![CDATA[<p>A while back at work I needed to install the SourceSafe client onto a desktop that had Visual Studio 2003, but not the SourceSafe integration.  After a few posts back and forth here at the <a  href="http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=71881">Microsoft SourceSafe Forum</a>, I was able to come up with a solution.</p>
<p>1) Copied VSS\Win32 directory from sourcesafe server to local client machine in C:\Program Files\Microsoft Visual Studio\VSS\Win32.</p>
<p>2) Ran SSINT.exe</p>
<p>3) Opened Visual Studio 2003, opened a project from source control.  It works.</p>
<p>4) Deleted everything from the local C:\Program Files\Microsoft Visual Studio\VSS\Win32 except: ssint.exe, mfc70.dll, msvcr70.dll, ssscc.dll, and ssus.dll.  This is the same file list that is present on a workstation that had the integration installed from the SourceSafe CD.</p>
<p>5) Opened Visual Studio 2003, checked out a file, checked it back in.  Works!</p>
<p>One comment that both the posters stressed is to make sure you have SourceSafe licenses for the machines the machines that you install the integration onto.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2005/08/17/sourcesafe-visual-studio-integration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A somewhat more normal entry</title>
		<link>http://blog.killfly.com/index.php/2005/08/17/a-somewhat-more-normal-entry/</link>
		<comments>http://blog.killfly.com/index.php/2005/08/17/a-somewhat-more-normal-entry/#comments</comments>
		<pubDate>Thu, 18 Aug 2005 02:35:41 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/?p=5</guid>
		<description><![CDATA[Something a little more normal for a blog entry. ]]></description>
			<content:encoded><![CDATA[<p><img alt="Book Worm" src="http://photo.killfly.com/albums/userpics/10001/normal_b%2Bwcanoe.jpg" /></p>
<p>Actually, this was a test to see how hard it would be to get a picture from <a  href="http://photo.killfly.com/">http://photo.killfly.com/</a> to show up. I always like this pic, I guess that&#8217;s why it&#8217;s in the <a  href="http://photo.killfly.com/thumbnails.php?album=17">Nikon d70</a> category.</p>
<p>Eventually I&#8217;ll get some posts up in the technology section&#8230;..hmmm, maybe I&#8217;ll do that right now.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2005/08/17/a-somewhat-more-normal-entry/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First Post</title>
		<link>http://blog.killfly.com/index.php/2005/08/17/first-post/</link>
		<comments>http://blog.killfly.com/index.php/2005/08/17/first-post/#comments</comments>
		<pubDate>Wed, 17 Aug 2005 22:38:09 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.killfly.com/?p=3</guid>
		<description><![CDATA[The first post]]></description>
			<content:encoded><![CDATA[<p><img src='/wp-content/thumb_mist.jpg' alt='mist' /><br />
This is the first post on the killfly.com blogs.  Who knows if this&#8217;ll get used or not.  If not, that&#8217;s why they make delete keys.</p>
<p>Here&#8217;s a backed-up post from earlyer in the month.  I had set up another blog but deleted it in favor of this one.  Anyway, here&#8217;s theold posts:</p>
<p><em>Friday &#8211; Saturday &#8211; Sunday: River Rafting</em><br />
This was an awesome trip. I drove up to Millinocket Maine and spent the night at a campground. In the morning we headed over to the rafting place to gather our synthetic jackets, life preservers and paddles.<br />
The day starts off with a 13 foot waterfall. The waterfall empties into a large area so the consequences for falling out are pretty low. That&#8217;s why I think the company uses this spot to get almost every boat to flip at least once. You might as well see what it&#8217;s like now.</p>
<p>The rafting itself is strange. The rapids are unavoidable, you know you&#8217;re going through it and there&#8217;s nothing you can do to stop it. The horizon line gets closer and the noise from the rushing water gets louder. Then (for me anyway) something strange happens. You go into super concentration mode and before you realize it the rapid is behind you and you can&#8217;t remember exactly what it looked like. At least this is what it is like from the perspective of a couple days. Of course the one highlight that will stay fresh in everyone&#8217;s minds for a while is Exterminator.</p>
<p>Almost everyone in our raft fell off in the Exterminator Class 5 rapid. Not exactly the goal in a huge boiling cauldren of bron water. Everyone except for one person made it back into the raft, he was forced to navigate the majority of the rapid using only his life jacket. He said later that he thought to himself, &#8220;There&#8217;s a pretty good chance I could die.&#8221; This was absolutely true.</p>
<p><em>Monday (today): Vacation Day (Victory Day)</em><br />
Helped install some speakers on Mike&#8217;s boat.<br />
RROL practice at Indy &#8211; Wrecked out. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.killfly.com/index.php/2005/08/17/first-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

