<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Development</title>
        <link>http://geekswithblogs.net/flanakin/category/199.aspx</link>
        <description>Development</description>
        <language>en-US</language>
        <copyright>Michael Flanakin</copyright>
        <managingEditor>public@michaelflanakin.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Google Brings AJAX to Java</title>
            <link>http://geekswithblogs.net/flanakin/archive/2006/05/17/78689.aspx</link>
            <description>&lt;p&gt;
As &lt;a href="http://googleblog.blogspot.com/2006/05/making-ajax-development-easier.html"&gt;Google announced&lt;/a&gt;, they will be releasing &lt;a href="http://code.google.com/webtoolkit/"&gt;Google Web Toolkit&lt;/a&gt; to support building AJAX-ian web applications with Java. I just wish it were available for .NET as well. Not that I don't have faith in &lt;a title="" href="http://www.microsoft.com" &gt;Microsoft&lt;/a&gt;'s &lt;a href="http://atlas.asp.net"&gt;Atlas&lt;/a&gt;, but I would like to see and play with &lt;a title="" href="http://www.google.com" &gt;Google&lt;/a&gt;'s approach.
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=78689"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=78689" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/flanakin/aggbug/78689.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michael Flanakin</dc:creator>
            <guid>http://geekswithblogs.net/flanakin/archive/2006/05/17/78689.aspx</guid>
            <pubDate>Wed, 17 May 2006 08:50:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/flanakin/comments/78689.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/flanakin/archive/2006/05/17/78689.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/flanakin/comments/commentRss/78689.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/flanakin/services/trackbacks/78689.aspx</trackback:ping>
        </item>
        <item>
            <title>UpdateVersion 1.3 Available for Download (...finally)</title>
            <link>http://geekswithblogs.net/flanakin/archive/2006/01/18/66286.aspx</link>
            <description>&lt;p&gt;I was finally able to get &lt;a href="http://geekswithblogs.net/flanakin/archive/2004/08/16/9763.aspx"&gt;UpdateVersion 1.3&lt;/a&gt; &lt;a href="http://www.codeplex.com/UpdateVersion"&gt;available to the public&lt;/a&gt;. If anyone does any work on it, please let me know. I thought about setting up a project for it, but there haven't been any big feature requests, so I decided against it. Hope you all find it useful! &lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Update (4/4/2008): &lt;/strong&gt;Switched to new link on CodePlex.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=66286"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=66286" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/flanakin/aggbug/66286.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michael Flanakin</dc:creator>
            <guid>http://geekswithblogs.net/flanakin/archive/2006/01/18/66286.aspx</guid>
            <pubDate>Wed, 18 Jan 2006 15:49:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/flanakin/comments/66286.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/flanakin/archive/2006/01/18/66286.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/flanakin/comments/commentRss/66286.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/flanakin/services/trackbacks/66286.aspx</trackback:ping>
        </item>
        <item>
            <title>Generating Empty Alternate Text for asp:Image Controls</title>
            <link>http://geekswithblogs.net/flanakin/archive/2006/01/06/65097.aspx</link>
            <description>&lt;p&gt;
As I'm sure you already know, one of the accessibility standards Section 508 covers is specifying alternate text for all images. Not a big deal, right? Well, what about images that are purely used for formatting, such as spacers? Well, just give it an empty string: &lt;code&gt;&amp;lt;img src="spacer.gif" alt="" /&amp;gt;&lt;/code&gt;. Ok, still not a big deal. Unfortunately, the &lt;code&gt;Image&lt;/code&gt; control in ASP.NET 1.x only outputs alternate text if it contains a value. For instance, &lt;code&gt;&amp;lt;asp:Image id="spacer1" ImageUrl="spacer.gif" AlternateText="" runat="server" /&amp;gt;&lt;/code&gt; does not render the alternate text. Instead, this is the output: &lt;code&gt;&amp;lt;img src="spacer.gif" /&amp;gt;&lt;/code&gt;. The only way to add an empty alternate text string is to do it programmatically: &lt;code&gt;spacer1.Attributes.Add("alt", "")&lt;/code&gt;.
&lt;/p&gt;
&lt;p&gt;
ASP.NET 2.0 hit the streets with a new lease on life. The goal was to be more standards compliant. Every control has been changed to support XHTML standards in three modes: legacy (HTML 4.0), transitional (XHTML 1.0 Transitional), and strict (XHTML 1.0 Strict). Apparently, using legacy conformance will not render your tags in an XHTML-compliant manner, which I think is kind of stupid, but oh well. Anyway, back to the matter at hand... The new &lt;code&gt;Image&lt;/code&gt; control adds a &lt;code&gt;GenerateEmptyAlternateText&lt;/code&gt; property. As the name implies, this will give you the empty alternate text, but only if you set it to &lt;code&gt;true&lt;/code&gt;. What's up with that!? Ok, I realize that this is kind of a small issue; but if you're so stuck on standards compliance - which I'm happy about, by the way - why not just automatically output empty alternate text if no alternate text is specified? I don't really have a problem with the &lt;code&gt;GenerateEmptyAlternateText&lt;/code&gt; property, just give it a default of &lt;code&gt;true&lt;/code&gt;. Heck, even if you only do it for transitional and strict modes, it'd still be nice - not that this has anything to do with XHTML conformance.
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=65097"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=65097" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/flanakin/aggbug/65097.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michael Flanakin</dc:creator>
            <guid>http://geekswithblogs.net/flanakin/archive/2006/01/06/65097.aspx</guid>
            <pubDate>Fri, 06 Jan 2006 12:45:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/flanakin/comments/65097.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/flanakin/archive/2006/01/06/65097.aspx#feedback</comments>
            <slash:comments>8</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/flanakin/comments/commentRss/65097.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/flanakin/services/trackbacks/65097.aspx</trackback:ping>
        </item>
        <item>
            <title>DNN and the Lovely "Multiple controls with the same ID" Error</title>
            <link>http://geekswithblogs.net/flanakin/archive/2005/11/25/61188.aspx</link>
            <description>&lt;p&gt;
After having this problem several times and continually forgetting the fix, I figured I'd go ahead and make a post about it. Hopefully, it'll save someone time in the future. Let me know if you have a different fix.
&lt;/p&gt;


&lt;p&gt;&lt;p&gt;&lt;b&gt;Symptoms&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;
When you browse to a DNN page after adding a new module to the page, you receive an error message that is similar to the following:
&lt;blockquote style="color:#ff0000;"&gt;
Multiple controls with the same ID 'ctr123_DD' were found. FindControl requires that controls have unique IDs.
&lt;/blockquote&gt;
&lt;/p&gt;


&lt;p&gt;&lt;b&gt;Cause&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;
DNN dynamically loads modules to the page when it loads and references them using the &lt;code&gt;Control.FindControl()&lt;/code&gt; method. As the error specifies, &lt;code&gt;FindControl()&lt;/code&gt; can only be used when all IDs are unique. This usually happens when a module definition has been recently modified. DNN modules are identified using a combination of the &lt;code&gt;key&lt;/code&gt; and &lt;code&gt;type&lt;/code&gt; properties. To specify the control that should be loaded when a user browses to a page with the module, the &lt;code&gt;key&lt;/code&gt; should be blank and the &lt;code&gt;type&lt;/code&gt; should be "View". The default edit control (i.e. Add content) and the settings controls should have &lt;code&gt;key&lt;/code&gt; values of "Edit" and "Settings", respectively. All other controls need to have unique &lt;code&gt;key&lt;/code&gt; values. When non-unique &lt;code&gt;key&lt;/code&gt; values are used, DNN loads all of the controls with the same ID, which is the true culprit.
&lt;/p&gt;


&lt;p&gt;&lt;b&gt;Resolution&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;
First, you'll have to know what module is causing the problem. If you are unsure of which module is causing the problem, there are three ways to figure it out:
&lt;ol&gt;
    &lt;li&gt;If a module was just added to the page before the error occurred, the module that was added is most likely the problem. (Cause you needed me to tell you that, right?)&lt;/li&gt;
    &lt;li&gt;If a module on the page that's giving you the error was just added, that module is most likely causing the error. (Another great hint!)&lt;/li&gt;
    &lt;li&gt;If neither of the previous identification methods work, the module ID is listed in the error. "ctr123_DD" refers to module 123. Take a look in the &lt;code&gt;dnn_Modules&lt;/code&gt; table and the row with that &lt;code&gt;ModuleId&lt;/code&gt; is definitely the problem.&lt;/li&gt;
&lt;/ol&gt;
&lt;/p&gt;
&lt;p&gt;
After finding the offending module, browse to the module definitions page (&lt;b&gt;Host &gt; Module Definitions&lt;/b&gt;) and check to ensure all module controls have unique &lt;code&gt;key&lt;/code&gt; values. Remember: default view is blank, default edit is "Edit", settings is "Settings", and all others can be whatever makes your little heart go pitter-patter. Once the &lt;code&gt;key&lt;/code&gt; values are corrected, you will most likely have to restart IIS. The quickest way to do this is to use &lt;b&gt;iisreset&lt;/b&gt; (&lt;b&gt;Start &amp;gt; Run&lt;/b&gt;, type &lt;b&gt;iisreset&lt;/b&gt;, click &lt;b&gt;OK&lt;/b&gt;).
&lt;/p&gt;


&lt;p&gt;&lt;b&gt;More Information&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;
&lt;ul&gt;
    &lt;li&gt;Applies to:  DotNetNuke 1.0 - 3.1 (I don't think it's been fixed in newer releases, yet; but I haven't confirmed anything newer than 3.1)&lt;/li&gt;
    &lt;li&gt;There is another error that does not specify the module ID, "Multiple controls with the same ID 'ctr' were found." This fix does not apply to those. If/when I run into that one again, I'll try to post a fix on that, too.
        &lt;div style="font-style:italic;"&gt;
            I may have found the cause of the 'ctr' error. It seems that this is caused with malformed HTML within the ASCX and/or mis-matched assembly (I didn't notice there was a build error because VS was saying it built successfully, for some reason.) This happened right after editing a module control, so I just opened the ASCX file in the designer and solved the problem pretty easily. I'm pretty sure this also happened when I wasn't customizing a control, but I can't really remember. That's all I really have right now. Hope it helps someone.
        &lt;/div&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=61188"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=61188" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/flanakin/aggbug/61188.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michael Flanakin</dc:creator>
            <guid>http://geekswithblogs.net/flanakin/archive/2005/11/25/61188.aspx</guid>
            <pubDate>Fri, 25 Nov 2005 15:58:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/flanakin/comments/61188.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/flanakin/archive/2005/11/25/61188.aspx#feedback</comments>
            <slash:comments>15</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/flanakin/comments/commentRss/61188.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/flanakin/services/trackbacks/61188.aspx</trackback:ping>
        </item>
        <item>
            <title>VB Angst</title>
            <link>http://geekswithblogs.net/flanakin/archive/2005/09/15/53937.aspx</link>
            <description>&lt;/p&gt;
&lt;p&gt;
Ya know, I'm not trying to start any holy wars or anything, but I keep getting aggravated with some VB code I have to maintain. 
&lt;/p&gt;
&lt;p&gt;
First off, my biggest complaint is the way VB handles imports. A lot are assumed, but some aren't. I've even seen the same code transition to another machine and have it not work. I don't really know the rules behind it, but it sucks.
&lt;/p&gt;
&lt;p&gt;
Second, the &lt;a title="" href="http://www.microsoft.com" &gt;Microsoft&lt;/a&gt;.VisualBasic namespace needs to just die a horrible death. Do VB-ers not understand that it simply exists for backwards compatability and shouldn't be used? Sure, you may have the old VB6 functions around, but should you use them? NO! There's a reason it's in Microsoft.VisualBasic and not in the core .NET base class library! 
&lt;/p&gt;
&lt;p&gt;
While we're on "functions," let me gripe about the naming conventions. I understand the difference between a subroutine and a function - who doesn't? I just don't like the fact that they are different from the .NET standard of "method." Yeah, yeah, backwards compatibility, whatever. Backwards compatibility is the root of a lot of evils in the software world. Look at Java. One of the primary reasons it sucks so bad and doesn't go thru a major overhaul is because of backwards compatibility. Other things I don't like as far as standard naming goes are the keywords Shared, Nothing, Me, and so on.
&lt;/p&gt;
&lt;p&gt;
This is a small one, but I hate the fact that Visual Studio doesn't tab regions in for VB. I like my regions to be tabbed in at the same level as the code. This is just a preference, but I think the code seems harder to read when the left edge of the code jumps back to the first character position every so often. As a matter of fact, &lt;a title="" href="http://msdn.microsoft.com/vstudio" &gt;Visual Studio&lt;/a&gt;'s auto-formatting for VB drives me crazy altogether. Most of it works fine; but occasionally, I want something to look different for readability concerns. I'm sure there might be options for this, but I don't care enough to look. It's just annoying.
&lt;/p&gt;
&lt;p&gt;
Speaking of readability, OMG!!! Nobody can argue that VB is more wordy. One thing I learned in a high school desktop publishing class was that white space is good. White space actually helps the brain process what's on the screen and separate code easier. It's a LOT harder to do that with VB because the lines can get so long and seem to jumble together. Granted, this only happens in lines with a lot of keywords, but that doesn't mean I like it any more.
&lt;/p&gt;
&lt;p&gt;
Oh, great, now it's time for my favorite (well, for the past two days, anyway): modules. I've been working on .NET since its inception. I cheered on C# and revelled in its birth. Because of that, I ignored VB and its features (in part, that's why I'm getting so aggravated). Well, for the past few days, I copied some VB code and was modifying it. I kept looking for what seemed to be local methods, but couldn't find them anywhere. I searched through class after class to no avail. Finally, I was looking at an assembly and noticed that a class was using the Module keyword. "Hmm... That's odd. I wonder what that is. Oh well," I thought. A little later, I ran into another method I couldn't find anywhere. Then I made the connection and found it. This has got to be the most retarded feature. I can understand and appreciate it's worth, but I just don't like it. It obviously decreases readability and maintainability. Oh, and before you say that I should've used the "Go to Definition" context menu option, I didn't have the source loaded in a VS project, so I couldn't.
&lt;/p&gt;
&lt;p&gt;
I don't even need to get into the obvious ones like case-insensitivity and Option Strict/Explicit. Hell, I think I've complained enough for today. There are a ton of other things I don't like about it, but this'll suffice. Also, I must say that I am merely pointing out my angst with VB. I am not saying that C# or any other language is perfect. There are aspects of VB I'd love to see in C#.
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=53937"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=53937" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/flanakin/aggbug/53937.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michael Flanakin</dc:creator>
            <guid>http://geekswithblogs.net/flanakin/archive/2005/09/15/53937.aspx</guid>
            <pubDate>Thu, 15 Sep 2005 12:22:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/flanakin/comments/53937.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/flanakin/archive/2005/09/15/53937.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/flanakin/comments/commentRss/53937.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/flanakin/services/trackbacks/53937.aspx</trackback:ping>
        </item>
        <item>
            <title>IBM Commissions IBM vs. Microsoft Tools Review</title>
            <link>http://geekswithblogs.net/flanakin/archive/2005/08/01/48790.aspx</link>
            <description>I probably shouldn't even be propagating &lt;a href="http://www.branhamgroup.com/article.php?cat=general&amp;id=38"&gt;this crap&lt;/a&gt;, but I thought it was a ridiculous attempt to make the .NET plastform look worse than Java. IBM hired someone to evaluate IBM and &lt;a title="" href="http://www.microsoft.com" &gt;Microsoft&lt;/a&gt; tools for productivity. I have no problem with the fact that IBM hired the evaluators. What I have a problem with is the fact that the tools they chose to implement (and not implement, for that matter) don't give a true picture to the appropriate level of effort for the Microsoft side of the picture. Two examples are that (a) BizTalk wasn't needed; and, (b) SharePoint Services could've been used for portal functionality. I have to say that this is a horribly lopsided evaluation. I just hope others realize it before taking it to heart.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=48790"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=48790" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/flanakin/aggbug/48790.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michael Flanakin</dc:creator>
            <guid>http://geekswithblogs.net/flanakin/archive/2005/08/01/48790.aspx</guid>
            <pubDate>Mon, 01 Aug 2005 11:35:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/flanakin/comments/48790.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/flanakin/archive/2005/08/01/48790.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/flanakin/comments/commentRss/48790.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/flanakin/services/trackbacks/48790.aspx</trackback:ping>
        </item>
        <item>
            <title>null == annoyance</title>
            <link>http://geekswithblogs.net/flanakin/archive/2004/08/17/9827.aspx</link>
            <description>&lt;P&gt;What the hell is up with people putting the value you're checking for first in a comparison expression? I freakin' hate that!!! Is there some sort of advantage? Arrrgh...&lt;/P&gt;
&lt;P&gt;Maybe it's just me, but I think, &amp;#8220;is &amp;lt;my variable&amp;gt; equal to &amp;lt;some value&amp;gt;?&amp;#8221; That just makes sense to me. For instance, &amp;#8220;Is your name Michael?&amp;#8221; sounds so much better than, &amp;#8220;Is Michael your name?&amp;#8221; Granted, they both make grammatical sense. Maybe I'm just stuck in a latin-based society that reads (and thinks) left-to-right, but why the hell do people insist on writing expressions backwards (in my opinion, at least)?&lt;/P&gt;
&lt;P&gt;If someone could point out a good reason (or ten) as to why this approach is preferred, I would appreciate it. I get stuck in my ways sometimes, but that's only because my way is the &lt;EM&gt;best&lt;/EM&gt; way :-) ...well, until someone convinces me otherwise - and then, I just get a new way. So, in the end, my way is the best way, again. You gotta love my logic...well, I do, anyway.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=9827"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=9827" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/flanakin/aggbug/9827.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michael Flanakin</dc:creator>
            <guid>http://geekswithblogs.net/flanakin/archive/2004/08/17/9827.aspx</guid>
            <pubDate>Tue, 17 Aug 2004 14:59:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/flanakin/comments/9827.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/flanakin/archive/2004/08/17/9827.aspx#feedback</comments>
            <slash:comments>7</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/flanakin/comments/commentRss/9827.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/flanakin/services/trackbacks/9827.aspx</trackback:ping>
        </item>
        <item>
            <title>Versioning with NAnt</title>
            <link>http://geekswithblogs.net/flanakin/archive/2004/08/16/9763.aspx</link>
            <description>&lt;p style="FONT-WEIGHT: bold; TEXT-ALIGN: center"&gt;&lt;a href="http://www.codeplex.com/UpdateVersion"&gt;Download UpdateVersion&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I've been looking at &lt;a href="http://nant.sf.net/"&gt;NAnt&lt;/a&gt; pretty hard lately. The biggest problem that I've had so far is creating and updating version numbers. &lt;a href="http://nantcontrib.sf.net/"&gt;NAntContrib&lt;/a&gt; has a &lt;code&gt;&amp;lt;version&amp;gt;&lt;/code&gt; task that will read in and update a version number specified in a text file, but that doesn't quite give me what I'm looking for. NAnt 0.85 is supposed to come with a method for reading assembly the version, but again, this falls pretty short of what I'm looking for.&lt;/p&gt;
&lt;p&gt;After looking around, I found a pretty good solution: &lt;a href="http://code.mattgriffith.net/UpdateVersion"&gt;UpdateVersion&lt;/a&gt;. Currently in version 1.2, this tool will read through your AssemblyInfo.cs (or .vb) file and update the version number based on specified criteria. The tool was pretty nice. I didn't quite like the code, but it got the job done. It can read through any input file (or stream) and write output to the same or another file or even the output stream. There was a “pinning” option (-p or --pin) to specify a particular version number, but that didn't work. I fixed that and extended it a little bit. I modified the code to allow any pinned version (i.e. 1.0, 1.0.0, or 1.0.0.0). Whatever you don't specify will be generated based on the other options you specify. I also added a write version (-w or --write) option to write the version number (and only the version number) to the output stream. This allows a user to catch the new version that updates the AssemblyInfo.cs file(s).&lt;/p&gt;
&lt;p&gt;I didn't end up using the -w option that I setup because of the order of events that needed to happen in my build script. So, I just decided to update the version manually and use the pinning option to update the project assemblies. I probably could've used the &lt;code&gt;&amp;lt;version&amp;gt;&lt;/code&gt; task included in the NAntContrib project, but there were two reasons I didn't: (1) I'm using one separate properties file and don't want to have to deal with another one for the version number; and, more importantly, (2) when I updated to a 0.85 nightly build (8/12/2004), NAnt wouldn't recognize my NAntContrib tasks.&lt;/p&gt;
&lt;p&gt;First, I've specified a “startdate” and “build.version” property to represent the project start date and custom major.minor version number. Second, I run the following build script to update the “build.version” property.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;pre&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;font color="#990000"&gt;script&lt;/font&gt; &lt;font color="#ff0000"&gt;language&lt;/font&gt;="C#"&amp;gt;
  &amp;lt;&lt;font color="#990000"&gt;imports&lt;/font&gt;&amp;gt;
    &amp;lt;&lt;font color="#990000"&gt;import &lt;/font&gt;&lt;font color="#ff0000"&gt;name&lt;/font&gt;="System.Globalization" /&amp;gt;
    &amp;lt;&lt;font color="#990000"&gt;import &lt;/font&gt;&lt;font color="#ff0000"&gt;name&lt;/font&gt;="System.Threading" /&amp;gt;
  &amp;lt;/&lt;font color="#990000"&gt;imports&lt;/font&gt;&amp;gt;
  &amp;lt;&lt;font color="#990000"&gt;code&lt;/font&gt;&amp;gt;&amp;lt;![&lt;/font&gt;&lt;font color="#000000"&gt;&lt;font color="#990000"&gt;CDATA&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;[&lt;/font&gt;
    &lt;font color="#0000ff"&gt;public static void&lt;/font&gt; ScriptMain(Project project) {
      Version version = &lt;font color="#0000ff"&gt;new&lt;/font&gt; Version(project.Properties["build.version"]);
      &lt;font color="#0000ff"&gt;int&lt;/font&gt; major = version.Major;
      &lt;font color="#0000ff"&gt;int&lt;/font&gt; minor = version.Minor;
      &lt;font color="#0000ff"&gt;int&lt;/font&gt; build = version.Build;
      &lt;font color="#0000ff"&gt;int&lt;/font&gt; revision = version.Revision;
      &lt;font color="#0000ff"&gt;if&lt;/font&gt; (build == -1) {
        DateTime start = Convert.ToDateTime(project.Properties["startdate"]);
        Calendar calendar = Thread.CurrentThread.CurrentCulture.Calendar;
        &lt;font color="#0000ff"&gt;int&lt;/font&gt; months = ((calendar.GetYear(DateTime.Today) 
          - calendar.GetYear(start)) * 12) 
          + calendar.GetMonth(DateTime.Today) 
          - calendar.GetMonth(start);
        &lt;font color="#0000ff"&gt;int&lt;/font&gt; day = DateTime.Now.Day;
        build = (months * 100) + day;
      }
      &lt;font color="#0000ff"&gt;if&lt;/font&gt; (revision == -1) {
        TimeSpan difference = DateTime.Now.Subtract(DateTime.Today);
        revision = (&lt;font color="#0000ff"&gt;int&lt;/font&gt;)(difference.TotalSeconds / 10);
      }
      version = &lt;font color="#0000ff"&gt;new&lt;/font&gt; Version(major, minor, build, revision);
      project.Properties["build.version"] = version.ToString();
    }
  &lt;font color="#0000ff"&gt;]]&amp;gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#990000"&gt;code&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;
&amp;lt;/&lt;font color="#990000"&gt;script&lt;/font&gt;&amp;gt;&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;I hope this helps anyone else looking for a version numbering system for NAnt. After I updated the version number, everything else was pretty easy - I looped thru each AssemblyInfo.cs file in the solution directory and updated the versions using my modified UpdateVersion.&lt;/p&gt;
&lt;p&gt;If anyone is interested in the UpdateVersion code, let me know. I sent an email to Matt about getting it updated, but haven't heard from him. I'll give it a few days.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Update (4/4/2008): &lt;/strong&gt;Changed download link to CodePlex project&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=9763"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=9763" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/flanakin/aggbug/9763.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michael Flanakin</dc:creator>
            <guid>http://geekswithblogs.net/flanakin/archive/2004/08/16/9763.aspx</guid>
            <pubDate>Mon, 16 Aug 2004 06:04:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/flanakin/comments/9763.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/flanakin/archive/2004/08/16/9763.aspx#feedback</comments>
            <slash:comments>53</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/flanakin/comments/commentRss/9763.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/flanakin/services/trackbacks/9763.aspx</trackback:ping>
        </item>
        <item>
            <title>Implementing HTTP Handlers</title>
            <link>http://geekswithblogs.net/flanakin/archive/2004/08/04/9300.aspx</link>
            <description>&lt;P&gt;Well, I finally finished my &lt;A href="http://geekswithblogs.net/flanakin/articles/HttpHandlers.aspx"&gt;HTTP handler article&lt;/A&gt;. Check it out and let me know what you think. I had to leave some stuff out that I would have liked to have included, but will see about adding that later. For now, I'm just glad that I'm done.&lt;/P&gt;
&lt;P&gt;For anyone that has sent me emails or commented on &lt;A href="http://geekswithblogs.net/flanakin/archive/2004/02/01/1668.aspx"&gt;my last post about HTTP handlers&lt;/A&gt;, I will respond to those soon. Thank you, and sorry for the delay.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=9300"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=9300" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/flanakin/aggbug/9300.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michael Flanakin</dc:creator>
            <guid>http://geekswithblogs.net/flanakin/archive/2004/08/04/9300.aspx</guid>
            <pubDate>Wed, 04 Aug 2004 05:36:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/flanakin/comments/9300.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/flanakin/archive/2004/08/04/9300.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/flanakin/comments/commentRss/9300.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/flanakin/services/trackbacks/9300.aspx</trackback:ping>
        </item>
        <item>
            <title>What's [VB] got, that [C#] ain't got...</title>
            <link>http://geekswithblogs.net/flanakin/archive/2004/07/31/9145.aspx</link>
            <description>&lt;P&gt;I just ran across this &lt;A href="http://www.lhotka.net/WeBlog/CommentView.aspx?guid=ec218e39-9136-442c-98f8-cff081b80ccd"&gt;pretty good post&lt;/A&gt; on a number of things VB has that C# doesn't. I don't agree with most of them (considering some are mired with bad coding practices) and there are some that I would like to see on there, but overall, it's a good post. &lt;/P&gt;
&lt;P&gt;I'd like to see a similar list for C#. I'm sure the article has, or will, spark a response, tho.&lt;/P&gt;
&lt;P&gt;This gives me an idea... I think I'll start a few wish lists of my own. I'll update them as I run into features that I'd like to see in the respective products.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://geekswithblogs.net/flanakin/articles/cswishlist.aspx"&gt;C# Wish List&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://geekswithblogs.net/flanakin/articles/vswishlist.aspx"&gt;Visual Studio Wish List&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=9145"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=9145" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/flanakin/aggbug/9145.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michael Flanakin</dc:creator>
            <guid>http://geekswithblogs.net/flanakin/archive/2004/07/31/9145.aspx</guid>
            <pubDate>Sat, 31 Jul 2004 15:39:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/flanakin/comments/9145.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/flanakin/archive/2004/07/31/9145.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/flanakin/comments/commentRss/9145.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/flanakin/services/trackbacks/9145.aspx</trackback:ping>
        </item>
    </channel>
</rss>