<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
    <channel>
        <title>malloc();</title>
        <link>http://geekswithblogs.net/malloc/Default.aspx</link>
        <description>taking up more space on the interweb</description>
        <language>en-US</language>
        <copyright>malloc();</copyright>
        <managingEditor>malloc@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>malloc();</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/malloc/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Malloc" type="application/rss+xml" /><item>
            <title>Silicon Valley Code Camp October 27-28</title>
            <category>.net</category>
            <category>mobile</category>
            <category>TDD</category>
            <category>tech</category>
            <category>wcf</category>
            <category>web2.0</category>
            <category>webservices</category>
            <link>http://feedproxy.google.com/~r/Malloc/~3/zYbIJ9se_8s/Silicon-Valley-Code-Camp-October-27-28.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://www.SiliconValley-Codecamp.com/Home.aspx"&gt;&lt;img alt="CodeCamp at FootHill College.  Click Here for Details and Registration" src="http://www.siliconvalley-codecamp.com/DisplayAd.ashx?ImageType=4" border="0" longdesc="" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Time to register again for this years Code Camp.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:7798a33d-996b-40cc-9c29-5a2d6eba440e" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/.net" rel="tag"&gt;.net&lt;/a&gt;, &lt;a href="http://technorati.com/tags/code%20camp" rel="tag"&gt;code camp&lt;/a&gt;, &lt;a href="http://technorati.com/tags/silicon%20valley" rel="tag"&gt;silicon valley&lt;/a&gt;, &lt;a href="http://technorati.com/tags/programming" rel="tag"&gt;programming&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114831"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114831" 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/malloc/aggbug/114831.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>malloc();</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/malloc/archive/2007/08/20/Silicon-Valley-Code-Camp-October-27-28.aspx</guid>
            <pubDate>Tue, 21 Aug 2007 02:20:01 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/malloc/comments/114831.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/malloc/archive/2007/08/20/Silicon-Valley-Code-Camp-October-27-28.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/malloc/comments/commentRss/114831.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/malloc/services/trackbacks/114831.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/malloc/archive/2007/08/20/Silicon-Valley-Code-Camp-October-27-28.aspx</feedburner:origLink></item>
        <item>
            <title>Picking a great project codename</title>
            <category>.net</category>
            <category>TDD</category>
            <category>tech</category>
            <category>webservices</category>
            <link>http://feedproxy.google.com/~r/Malloc/~3/hWGI7wzoVvE/Picking-a-great-project-codename.aspx</link>
            <description>&lt;p&gt;Back in February we (me and one other co-worker) started on a new project. We were both very excited about the project (and still are) so we &lt;strong&gt;needed&lt;/strong&gt; to come up with a great codename.&lt;/p&gt; &lt;p&gt;Since we were both Transformers fans as kids we named all the different components after &lt;a href="http://en.wikipedia.org/wiki/The_Transformers_%28animated_series%29_characters"&gt;Transformers characters&lt;/a&gt;. And now in July we are almost done with the project, so today we all went to the noon showing of the Transformers movie.&lt;/p&gt; &lt;p&gt;Mini-movie-review: if you can get passed the GM advertising, it is an excellent summer action blockbuster movie.&lt;/p&gt; &lt;p&gt;Was a great break from work, and also great to know your work is appreciated. But now that the project is coming to the end, the worst part is approaching. We will have to start calling it by its "public" name and can no longer complain about bugs in &lt;a href="http://en.wikipedia.org/wiki/Snarl_%28Transformers%29"&gt;Snarl&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Grimlock"&gt;Grimlock&lt;/a&gt;, or &lt;a href="http://en.wikipedia.org/wiki/Unicron"&gt;Unicron&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;If your in the Bay Area and looking for a new job and like .NET, TDD, Transformers, and wants to work with web services and/or financial data you should get in &lt;a href="http://geekswithblogs.net/malloc/contact.aspx"&gt;contact with me&lt;/a&gt;.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;EOF&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:57851bd4-3126-4f39-8cc8-4036401481b9" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/transformers%20codename%20projects" rel="tag"&gt;transformers codename projects&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113814"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113814" 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/malloc/aggbug/113814.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>malloc();</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/malloc/archive/2007/07/09/Picking-a-great-project-codename.aspx</guid>
            <pubDate>Tue, 10 Jul 2007 02:12:48 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/malloc/comments/113814.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/malloc/archive/2007/07/09/Picking-a-great-project-codename.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/malloc/comments/commentRss/113814.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/malloc/services/trackbacks/113814.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/malloc/archive/2007/07/09/Picking-a-great-project-codename.aspx</feedburner:origLink></item>
        <item>
            <title>xUnit Test Patterns: Refactoring Test Code</title>
            <category>MbUnit</category>
            <category>TDD</category>
            <category>tech</category>
            <link>http://feedproxy.google.com/~r/Malloc/~3/xJmpxNC1xMo/xUnit-Test-Patterns-Refactoring-Test-Code.aspx</link>
            <description>&lt;p&gt;I already had the book &lt;a href="http://www.amazon.com/xUnit-Test-Patterns-Refactoring-Addison-Wesley/dp/0131495054"&gt;xUnit Test Patterns: Refactoring Test Code&lt;/a&gt;  on my Amazon wishlist. But after reading Sam Gentile's &lt;a href="http://codebetter.com/blogs/sam.gentile/archive/2007/06/10/xunit-test-patterns-and-evolving-tdd-and-test-automation.aspx"&gt;xUnit Test Patterns and evolving TDD and test automation&lt;/a&gt; post today about the book and its topics I've decided to go ahead and order it now. I still have 3 books that I am currently reading ( &lt;a href="http://www.amazon.com/Inside-Microsoft-Server-2005-Pro-Developer/dp/0735621977/ref=pd_bbs_sr_2/103-6386287-3321406?ie=UTF8&amp;amp;s=books&amp;amp;qid=1181525924&amp;amp;sr=8-2"&gt;1&lt;/a&gt;, &lt;a href="http://www.amazon.com/Complete-Book-Long-Distance-Cycling-Confidence/dp/1579541992/ref=pd_bbs_sr_1/103-6386287-3321406?ie=UTF8&amp;amp;s=books&amp;amp;qid=1181525966&amp;amp;sr=8-1"&gt;2&lt;/a&gt;, &lt;a href="http://www.amazon.com/gp/product/1590597028/ref=wl_it_dp/103-6386287-3321406?ie=UTF8&amp;amp;coliid=I2E5IZKGCVQ92A&amp;amp;colid=3BN83CDTJFRN9"&gt;3&lt;/a&gt; ) but this will jump to the front of the line when it arrives. &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;EOF&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:51582366-ce08-44f9-83b0-e00478a4666f" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/TDD" rel="tag"&gt;TDD&lt;/a&gt;, &lt;a href="http://technorati.com/tags/xUnit" rel="tag"&gt;xUnit&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Test%20Patterns" rel="tag"&gt;Test Patterns&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113139"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113139" 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/malloc/aggbug/113139.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>malloc();</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/malloc/archive/2007/06/10/xUnit-Test-Patterns-Refactoring-Test-Code.aspx</guid>
            <pubDate>Sun, 10 Jun 2007 23:46:03 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/malloc/comments/113139.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/malloc/archive/2007/06/10/xUnit-Test-Patterns-Refactoring-Test-Code.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/malloc/comments/commentRss/113139.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/malloc/services/trackbacks/113139.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/malloc/archive/2007/06/10/xUnit-Test-Patterns-Refactoring-Test-Code.aspx</feedburner:origLink></item>
        <item>
            <title>Why do people think Google maps is the best?</title>
            <category>tech</category>
            <category>web2.0</category>
            <link>http://feedproxy.google.com/~r/Malloc/~3/a1JmPQYZk5M/Why-do-people-think-Google-maps-is-the-best.aspx</link>
            <description>&lt;p&gt;Here is a simple example, lets try and find the following address: 240 St. Joseph Ave, 94115.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://maps.live.com/?s=240%20St.%20Joseph%20Ave,%2094115"&gt;Live Maps / Live Local / Local Live / Virtual Earth&lt;/a&gt; finds it with no errors or warnings.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://maps.yahoo.com/broadband#mvt=m&amp;amp;q1=240%20St.%20Joseph%20Ave,%2094115&amp;amp;trf=0&amp;amp;lon=-122.441275&amp;amp;lat=37.781671&amp;amp;mag=3&amp;amp;env=a"&gt;Yahoo Local&lt;/a&gt; Gets the right location after using the closest match "240 Saint Josephs Ave, San Francisco, CA 94115".&lt;/p&gt;
&lt;p&gt;Web 1.0 &lt;a href="http://www.mapquest.com/maps/map.adp?formtype=address&amp;amp;country=US&amp;amp;popflag=0&amp;amp;latitude=&amp;amp;longitude=&amp;amp;name=&amp;amp;phone=&amp;amp;level=&amp;amp;addtohistory=&amp;amp;cat=&amp;amp;address=240+St.+Joseph+Ave.&amp;amp;city=&amp;amp;state=&amp;amp;zipcode=94115"&gt;Mapquest&lt;/a&gt; can't find the address but it does suggests the correct location.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://maps.ask.com/maps?a=240+St.+Joseph+Ave.,+94115"&gt;Ask Maps &amp;amp; Directions&lt;/a&gt; can't find the address but focuses the map on the correct zip code.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://maps.google.com/maps?q=240+St.+Joseph+Ave.,+94115"&gt;Google Maps&lt;/a&gt; can't find the address, the closest possible match is someplace in Missouri.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;I believe that all these mapping sites get their data from the same place, &lt;a href="http://www.navteq.com/"&gt;NAVTEQ&lt;/a&gt;, but some are better than others at using that data. &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;EOF&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:19817001-3a61-495d-8900-258e4aa54b2a" contenteditable="false" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati tags: &lt;a rel="tag" href="http://technorati.com/tags/maps"&gt;maps&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/mapping"&gt;mapping&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/directions"&gt;directions&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/Google%20Maps"&gt;Google Maps&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/Google"&gt;Google&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/Microsoft"&gt;Microsoft&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/Virtual%20Earth"&gt;Virtual Earth&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/Live"&gt;Live&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/Yahoo%20Local"&gt;Yahoo Local&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/Mapquest"&gt;Mapquest&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/NAVTEQ"&gt;NAVTEQ&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113136"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113136" 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/malloc/aggbug/113136.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>malloc();</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/malloc/archive/2007/06/10/Why-do-people-think-Google-maps-is-the-best.aspx</guid>
            <pubDate>Sun, 10 Jun 2007 18:54:03 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/malloc/comments/113136.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/malloc/archive/2007/06/10/Why-do-people-think-Google-maps-is-the-best.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/malloc/comments/commentRss/113136.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/malloc/services/trackbacks/113136.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/malloc/archive/2007/06/10/Why-do-people-think-Google-maps-is-the-best.aspx</feedburner:origLink></item>
        <item>
            <title>MbUnit 2.4</title>
            <category>.net</category>
            <category>MbUnit</category>
            <category>TDD</category>
            <link>http://feedproxy.google.com/~r/Malloc/~3/HHLY3T_lteI/MbUnit-2.4.aspx</link>
            <description>&lt;p&gt;Thanks to &lt;a href="http://weblogs.asp.net/astopford/"&gt;Andrew Stopford&lt;/a&gt; and everyone else who works on MbUnit development. &lt;a href="http://weblogs.asp.net/astopford/archive/2007/05/24/mbunit-2-4-rtm.aspx"&gt;MbUnit 2.4 was just released&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;If you are not unit testing or practicing TDD in your projects, I don't know how you could choose plain old NUnit over MbUnit. If you are using regular NUnit it is very simple to convert your projects MbUnit, they use the same [Test] attribute. &lt;/p&gt; &lt;p&gt;MbUnit has:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Row Testing:  &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;[RowTest]
[Row(&lt;span style="color: #006080"&gt;"Hello"&lt;/span&gt;)]
[Row(&lt;span style="color: #006080"&gt;"Goodbye"&lt;/span&gt;)]
&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; TestString( &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; myString )
{
    &lt;span style="color: #008000"&gt;// do your tests in here...&lt;/span&gt;
}&lt;/pre&gt;&lt;/div&gt;More row testing details &lt;a href="http://haacked.com/archive/2004/10/20/Row_Based_Testing.aspx"&gt;here&lt;/a&gt;. 
&lt;/li&gt;&lt;li&gt;&lt;a href="http://haacked.com/archive/2007/05/10/productive-unit-testing-with-specialized-assertion-classes-in-mbunit.aspx"&gt;Specialized Assertions&lt;/a&gt; 
&lt;/li&gt;&lt;li&gt;Database rollback. The unit testing gods say that there should be absolutly no DB access in unit tests, but there are some times when I cannot avoid it. With the rollback attribute I don't have to worry about cleaning up the database after my test runs 
&lt;/li&gt;&lt;li&gt;Being able to test private methods. (see Vadim Kreynin's articles &lt;a href="http://vadim-net.blogspot.com/2007/04/testing-non-public-members-with-mbunit.html"&gt;here&lt;/a&gt; and &lt;a href="http://vadim-net.blogspot.com/2007/04/testing-non-public-members-with-mbunit_29.html"&gt;here&lt;/a&gt;). *
&lt;/li&gt;&lt;li&gt;&lt;a href="http://haacked.com/archive/2007/04/27/extract-embedded-resources-with-an-attribute-in-mbunit.aspx"&gt;Extract Embedded Resources With An Attribute In MbUnit&lt;/a&gt;. No more dealing with test file directories or setting the correct path in the [SetUp] methods!
&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.mertner.com/confluence/display/MbUnit/RepeatAttribute"&gt;RepeatAttribute&lt;/a&gt;. Run a specific test multiple times in a row.
&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.mertner.com/confluence/display/MbUnit/ThreadedRepeatAttribute"&gt;ThreadedRepeatAttribute&lt;/a&gt;. Run a specific test on multiple threads.
&lt;/li&gt;&lt;li&gt;etc. &lt;a title="http://www.mbunit.com/" href="http://www.mbunit.com/"&gt;http://www.mbunit.com/&lt;/a&gt; for all the details.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; * I have been using the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute.aspx"&gt;InternalsVisibleTo&lt;/a&gt; assembly attribute to accomplish this for a little while now. It gets the job done nicely and has allowed complete separation of our unit tests into a separate assembly. It does require you to change method signatures to &lt;font color="#0000ff"&gt;internal&lt;/font&gt; instead of &lt;font color="#0000ff"&gt;private&lt;/font&gt;, OO purists might feel dirty doing this. Derik Whittaker had a good &lt;a href="http://devlicio.us/blogs/derik_whittaker/archive/2007/04/09/internalsvisibleto-testing-internal-methods-in-net-2-0.aspx"&gt;example&lt;/a&gt; on how the attribute should be used.&lt;/p&gt;
&lt;p&gt;EOF&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:12c7f14b-dc95-4613-bc41-8c6f65f86adb" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/MbUnit" rel="tag"&gt;MbUnit&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Unit%20Testing" rel="tag"&gt;Unit Testing&lt;/a&gt;, &lt;a href="http://technorati.com/tags/TDD" rel="tag"&gt;TDD&lt;/a&gt;, &lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112783"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112783" 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/malloc/aggbug/112783.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>malloc();</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/malloc/archive/2007/05/26/MbUnit-2.4.aspx</guid>
            <pubDate>Sun, 27 May 2007 00:13:41 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/malloc/comments/112783.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/malloc/archive/2007/05/26/MbUnit-2.4.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/malloc/comments/commentRss/112783.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/malloc/services/trackbacks/112783.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/malloc/archive/2007/05/26/MbUnit-2.4.aspx</feedburner:origLink></item>
        <item>
            <title>No confidence in Farecast.com</title>
            <category>tech</category>
            <category>web2.0</category>
            <link>http://feedproxy.google.com/~r/Malloc/~3/TPf9B6jnMLY/No-confidence-in-Farecast.com.aspx</link>
            <description>&lt;p&gt;More than a month ago I wrote a &lt;a href="http://geekswithblogs.net/malloc/archive/2007/04/09/111241.aspx"&gt;post&lt;/a&gt; about trusting software and what it tells you. I ended the post on a tangent about &lt;a href="http://www.farecast.com/"&gt;farecast.com&lt;/a&gt; and if I was going to trust it with its prediction.&lt;/p&gt; &lt;p&gt;I have been keeping track of the prices listed for a flight from San Francisco, CA to Newark, NJ and their confidence value since then. You can check out my graphs below, Blue == Confidence, Orange == Price. You can click &lt;a href="http://www.farecast.com/flightSearch.do?unique=817572r5&amp;amp;viewMode=list&amp;amp;datelimit=05%2F24%2F2007&amp;amp;searchType=mainpage&amp;amp;depPortText=San+Francisco%2C+CA+%28SFO%29+-+San+Francisco+International+Airport&amp;amp;o=SFO&amp;amp;depPortText=Newark%2C+NJ+%28EWR%29+-+Newark+Liberty+International+Airport&amp;amp;e=EWR&amp;amp;d1=06%2F15%2F2007&amp;amp;r1=06%2F17%2F2007&amp;amp;p=2&amp;amp;b=COACH&amp;amp;submitBtn.x=54&amp;amp;submitBtn.y=14"&gt;here&lt;/a&gt; to view the price graph on their site, but they do not show their past confidence levels.&lt;/p&gt; &lt;p&gt;&lt;img alt="confidence" src="http://geekswithblogs.net/images/geekswithblogs_net/malloc/6478/o_farecast_confidence.png" /&gt;&lt;img alt="price" src="http://geekswithblogs.net/images/geekswithblogs_net/malloc/6478/o_farecast_price.png" /&gt;&lt;/p&gt; &lt;p&gt;Well it looks like distrust (untrustingness? disgustingness?) seems to have paid off. On 4/9 the price was $348 and a confidence of 80%+, and as of today the price is $443 with a confidence of 58%.  A $100 price increase in a month, and all the time their confidence is pretty high telling you that the price will be dropping. &lt;/p&gt; &lt;p&gt;On 4/22 I bought my tickets, for $373.80 after taxes and fees. I did not use Farecast to buy the tickets, I used &lt;a href="http://www.priceline.com"&gt;Priceline&lt;/a&gt;, and I am happy with decision to buy then. I will continue to follow the standard advice: buy plane tickets as early as possible for the cheapest tickets. Hope this information helps some people out there.&lt;/p&gt; &lt;p&gt;EOF&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112741"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112741" 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/malloc/aggbug/112741.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>malloc();</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/malloc/archive/2007/05/24/No-confidence-in-Farecast.com.aspx</guid>
            <pubDate>Fri, 25 May 2007 03:23:41 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/malloc/comments/112741.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/malloc/archive/2007/05/24/No-confidence-in-Farecast.com.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/malloc/comments/commentRss/112741.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/malloc/services/trackbacks/112741.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/malloc/archive/2007/05/24/No-confidence-in-Farecast.com.aspx</feedburner:origLink></item>
        <item>
            <title>05-01-2007 - &amp;quot;HD-DVD Night&amp;quot; and Digg</title>
            <category>tech</category>
            <category>web2.0</category>
            <link>http://feedproxy.google.com/~r/Malloc/~3/p0piwyG-UsU/05-01-2007---quotHD-DVD-Nightquot-and-Digg.aspx</link>
            <description>&lt;table cellspacing="0" cellpadding="0" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top"&gt; &lt;p&gt; Anyone visiting &lt;a href="http://www.digg.com/"&gt;digg&lt;/a&gt; tonight was definitely in for a surprise. There are a few (hundreds? thousands? tens of thousands?) users that are angry with digg and their decision to take down a post earlier today. The post that was taken down contained the HD-DVD decryption key that can be used in Linux to watch HD-DVD movies. The original submitter has his story in more details &lt;a href="http://www.cjmillisock.com/2007/05/how-i-got-banned-from-digg.html"&gt;here&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;The users have now flooded digg with fake stories, each one attacking &lt;a href="http://blog.digg.com/?p=73"&gt;digg's decision&lt;/a&gt; to remove the story/key, and also publishing the key hundreds of times in the story and comments.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Is this the beginning of the end for digg?  &lt;ul&gt; &lt;li&gt;I doubt that. If you remember digg really became popular when Pairs Hilton's cell phone address book and pictures were released onto the web. That drew a lot of hits to their site, this will do the same.&lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;Do I agree with what the digg admin did?  &lt;ul&gt; &lt;li&gt;Sad to say, but yes and no.  &lt;/li&gt;&lt;li&gt;One part of me knows that it is digg's site, the content of the posts are on their servers using their bandwidth, they have a right to restrict it how ever they want. They have to worry about being sued and losing their funding from investors.  &lt;/li&gt;&lt;li&gt;Then the other part of me wants stick it to DRM and the MPAA and go write some script that will auto digg up and post that contains that HD-DVD key in it.  &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;Will the users really leave?  &lt;ul&gt; &lt;li&gt;This is the hard one (which is why I left it for last).  My guess is that some will stop posting, digging stories, and being as active on the comments; but they will still read the stories as they come in on their rss feed.  &lt;/li&gt;&lt;li&gt;Others will not change their digging at all, they were just along for the ride. Mob mentality is always fun.  &lt;/li&gt;&lt;li&gt;There will be a very small number that never return to digg again. If only because there is still no good competitor or rival where you can get the broad range of news that is 'AMAZING', or 'GREATEST * EVER', &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/malloc/6478/o_digg_sidebar_05-01-07.gif" /&gt;  &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;Tomorrow will be an important day, lets hope that digg does not do a &lt;br /&gt;DELETE FROM stories WHERE text LIKE '%09 F9 % 88 C0%' or text LIKE '%09-F9-%-88-C0%'&lt;br /&gt;I hope they leave every single post up there, with the number of diggs they received, as a reminder that their site is dependant on their users. That this can easily happen again, and that if they anger enough users, the site will suffer.&lt;/p&gt; &lt;p&gt;EOF&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112172"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112172" 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/malloc/aggbug/112172.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>malloc();</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/malloc/archive/2007/05/01/05-01-2007---quotHD-DVD-Nightquot-and-Digg.aspx</guid>
            <pubDate>Wed, 02 May 2007 03:37:02 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/malloc/comments/112172.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/malloc/archive/2007/05/01/05-01-2007---quotHD-DVD-Nightquot-and-Digg.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/malloc/comments/commentRss/112172.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/malloc/services/trackbacks/112172.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/malloc/archive/2007/05/01/05-01-2007---quotHD-DVD-Nightquot-and-Digg.aspx</feedburner:origLink></item>
        <item>
            <title>Subtext-ed</title>
            <category>tech</category>
            <link>http://feedproxy.google.com/~r/Malloc/~3/JjZtJOD1v1w/Subtext-ed.aspx</link>
            <description>&lt;p&gt;Thanks everyone at GWB for the free hosting, and for dealing with a long &lt;a href="http://geekswithblogs.net/jjulian/archive/2007/04/13/111638.aspx"&gt;6 hour upgrade&lt;/a&gt; to the subtext blog engine!&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;EOF&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111657"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111657" 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/malloc/aggbug/111657.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>malloc();</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/malloc/archive/2007/04/14/Subtext-ed.aspx</guid>
            <pubDate>Sat, 14 Apr 2007 15:19:30 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/malloc/comments/111657.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/malloc/archive/2007/04/14/Subtext-ed.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/malloc/comments/commentRss/111657.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/malloc/services/trackbacks/111657.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/malloc/archive/2007/04/14/Subtext-ed.aspx</feedburner:origLink></item>
        <item>
            <title>Trusting your software</title>
            <category>tech</category>
            <category>web2.0</category>
            <link>http://feedproxy.google.com/~r/Malloc/~3/Sz24QmUgzzY/111241.aspx</link>
            <description>&lt;p&gt;When you first use a new piece of software do you trust it right away, or does it need to earn your trust? The same goes for the code you write, are the kind of person who just re-reads some code and says "it will work" or do you doubt yourself until your unit tests are complete and all passing?&lt;/p&gt; &lt;p&gt;I'm the untrusting type, and when it comes to my code I rarely trust my unit tests at first. If I can't write perfect code on the first attempt (like all people), how can I think that my first attempt at testing that code would be perfect?  &lt;p&gt;Some software I trust: &lt;a href="http://www.microsoft.com/money/default.mspx"&gt;Money&lt;/a&gt;, &lt;a href="http://turbotax.intuit.com/"&gt;TurboTax&lt;/a&gt;, and &lt;a href="http://www.microsoft.com/outlook/"&gt;Outlook&lt;/a&gt;. There are some things that these three apps have in common: they are desktop apps, they handle sensitive data, and they work both online and offline. When it comes to trusting web apps, I am must less trusting. There are still too many possible problems that happen with web:  &lt;ul&gt; &lt;li&gt;when you have their email &lt;a href="http://www.techcrunch.com/2006/12/28/gmail-disaster-reports-of-mass-email-deletions/"&gt;lost&lt;/a&gt; or &lt;a href="http://news.com.com/2061-10811_3-6174503.html?part=rss&amp;amp;tag=2547-1_3-0-5&amp;amp;subj=news"&gt;deleted&lt;/a&gt;  &lt;li&gt;when you get the &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/malloc/6478/o_gmail_down.png" border="0"&gt;very helpful 404 error message&lt;/a&gt;  &lt;li&gt;when you try and visit any &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/malloc/6478/o_wordpress-error.png" border="0"&gt;WordPress&lt;/a&gt; site that has just made it on the front page of &lt;a href="http://www.digg.com/"&gt;Digg&lt;/a&gt;  &lt;li&gt;when a website gets hacked to &lt;a href="http://www.theregister.co.uk/2007/04/06/asus_website_viruses/"&gt;distribute a virus&lt;/a&gt;  &lt;li&gt;when the server’s datacenter’s network goes down  &lt;li&gt;when your cable/dsl does down  &lt;li&gt;etc.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;This brings me to &lt;a href="http://www.farecast.com/"&gt;Farecast&lt;/a&gt;. A relatively new website that claims that it can tell you the best time to buy airline tickets be studying historic price fluctuations in ticket prices to and from certain locations. As someone who has to make 5 trips back to NY this year (3 weddings, a graduation, and Christmas), I am visiting this website daily. Here is a screenshot of Farecast from today's search.&lt;/p&gt; &lt;p&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/malloc/6478/o_farecast_prediction.gif"&gt;&lt;/p&gt; &lt;p&gt;It wants me to wait for these tickets, but should I trust it? It does have the very popular 'Beta' tag on its logo, so that gives it free reign to make mistakes and say "It is Beta software, what do you expect". I will continue to check the site for these tickets for another week or so. Who knows, maybe after that week I can add another piece of trusted software to my list.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;EOF&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111241"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111241" 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/malloc/aggbug/111241.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>malloc();</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/malloc/archive/2007/04/09/111241.aspx</guid>
            <pubDate>Tue, 10 Apr 2007 01:00:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/malloc/comments/111241.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/malloc/archive/2007/04/09/111241.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/malloc/comments/commentRss/111241.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/malloc/services/trackbacks/111241.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/malloc/archive/2007/04/09/111241.aspx</feedburner:origLink></item>
        <item>
            <title>Why I don't mind catching the type Exception</title>
            <category>.net</category>
            <link>http://feedproxy.google.com/~r/Malloc/~3/rfC0TduBGcU/110966.aspx</link>
            <description>&lt;p&gt;My team has been working on and off all week trying to find out why one of our windows services was crashing at the same time every day with a very unhelpful eventlog message.&lt;/p&gt; &lt;p&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/malloc/6478/o_eventlog_ivoe.gif"&gt;&lt;/p&gt; &lt;p&gt;Like all good errors, a &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=clr20r3+invalidoperationexception"&gt;search&lt;/a&gt; on the error message returns many results where people get the same message but for a bunch of different reasons and where many of the search result threads are left unanswered.&lt;/p&gt; &lt;p&gt;This service was first developed in .NET 1.1 way before I joined the company (only 5 months ago). It had been running without crashes on a Windows 2k machine for years. Now that we are finally throwing out our 2k systems we have migrated all our 1.1 code to 2.0 and running them on Win2k3.&lt;/p&gt; &lt;p&gt;So what does this service do? It is the final step in a data stream processing system. Here is a quick graphic to display the flow:&lt;br&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/malloc/6478/o_flow.gif"&gt;&lt;br&gt;As you can see, this service does the easy part of the process. Read from the MSMQ, spawn a&amp;nbsp;new thread (thread pooled) for each message to take the SQL string value, connect to the DB, and execute the SQL. The thread does those simple steps and then dies off. The main thread continues to wait for new MSMQ messages and spawn new threads as they come in. &lt;/p&gt; &lt;p&gt;At first look of the code there was nothing obvious wrong. No "important" code missing try's or catch's. And all of the try/catches has logging code to tell us (using the eventlog) if anything goes wrong. However, the eventlog would only have the '.NET Runtime 2.0 Error Reporting' message after the crash and none of our messages.&lt;/p&gt; &lt;p&gt;After looking closer at all of the code, we found the problem. Here is a snippet of what ended up being the problem code. It is code that runs on the worker threads from the thread pool. &lt;/p&gt; &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt; &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Class&lt;/span&gt; DumpInThread&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; Query &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; System.&lt;span style="color: #0000ff"&gt;String&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; Message &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; System.Messaging.Message&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;Private&lt;/span&gt; objConnection &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; System.Data.SqlClient.SqlConnection&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;     &lt;span style="color: #008000"&gt;'======================================================================================&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; Dump(&lt;span style="color: #0000ff"&gt;ByVal&lt;/span&gt; StateInfo &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; System.&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;Do&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Until&lt;/span&gt; GetNewConnection() = &lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;Loop&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;         InsertMessage(Query)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;     &lt;span style="color: #008000"&gt;'======================================================================================&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Function&lt;/span&gt; GetNewConnection() &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; System.&lt;span style="color: #0000ff"&gt;Boolean&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;Try&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;             objConnection = &lt;span style="color: #0000ff"&gt;New&lt;/span&gt; System.Data.SqlClient.SqlConnection(&lt;span style="color: #006080"&gt;"SqlServer"&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;             objConnection.Open()&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;Return&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;Catch&lt;/span&gt; Exception &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; System.Data.SqlClient.SqlException&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;             SharedEventLog.WriteEntry(&lt;span style="color: #006080"&gt;"Could not obtain connection "&lt;/span&gt; &amp;amp; Connection &amp;amp; &lt;span style="color: #006080"&gt;":"&lt;/span&gt; &amp;amp; Exception.Message, System.Diagnostics.EventLogEntryType.&lt;span style="color: #0000ff"&gt;Error&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;             objMessageQueue.Send(Message)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;Return&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;False&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Try&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; Function&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Look &lt;a href="http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.open(vs.80).aspx"&gt;here&lt;/a&gt; (or just continue reading) to find out what we first realized. SqlConnection.Open() can throw either a a &lt;a href="http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlexception(vs.80).aspx"&gt;SqlException&lt;/a&gt;&amp;nbsp;or an &lt;a href="http://msdn2.microsoft.com/en-us/library/system.invalidoperationexception(vs.80).aspx"&gt;InvalidOperationException&lt;/a&gt;. To me, it makes more sense for a SqlConnection to throw a SqlException if it cannot connect to a DB, not a generic exception like InvalidOperationException. We changed the catch so it will also catch the InvalidOperationException. This stops the threads and therefor the process from crashing.&lt;/p&gt;
&lt;p&gt;The second thing to realize is that this InvalidOperationException is not new to .NET 2.0. The .NET 1.1 api docs say that the SqlConnection.Open() throws an InvalidOperationException. This code has been incorrect since the day it was written. One thing that has changes between 1.1 and 2.0 has been the handling of threads. In 2.0 if a thread has an uncaught exception it will crash the entire process instead of being quietly swallowed.&lt;/p&gt;
&lt;p&gt;"But didn't you say the process crashed at the same time every day, how does that factor into the fix?" Yes this process would crash daily at 2:14pm, and after all of this I still have no idea why :-). We could not find any jobs using the same DB at this time that may have caused a connection to timeout. There is not a large burst of messages at that time, it is actually one of the more quieter times in the day. But I know that the new catch block fixes the crash, and makes the code much more reliable then it has been since it was born. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;EOF&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:a878a834-4c42-4596-b680-6b698ea95d93" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;, &lt;a href="http://technorati.com/tags/exception" rel="tag"&gt;exception&lt;/a&gt;, &lt;a href="http://technorati.com/tags/threads" rel="tag"&gt;threads&lt;/a&gt;, &lt;a href="http://technorati.com/tags/windows%20service" rel="tag"&gt;windows service&lt;/a&gt;, &lt;a href="http://technorati.com/tags/clr20r3" rel="tag"&gt;clr20r3&lt;/a&gt;, &lt;a href="http://technorati.com/tags/debugging" rel="tag"&gt;debugging&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=110966"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=110966" 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/malloc/aggbug/110966.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>malloc();</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/malloc/archive/2007/04/05/110966.aspx</guid>
            <pubDate>Fri, 06 Apr 2007 02:41:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/malloc/comments/110966.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/malloc/archive/2007/04/05/110966.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/malloc/comments/commentRss/110966.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/malloc/services/trackbacks/110966.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/malloc/archive/2007/04/05/110966.aspx</feedburner:origLink></item>
        <item>
            <title>and Yahoo gets better in my book</title>
            <category>mobile</category>
            <category>tech</category>
            <category>web2.0</category>
            <category>webservices</category>
            <link>http://feedproxy.google.com/~r/Malloc/~3/19igDA2iMrM/110215.aspx</link>
            <description>&lt;P&gt;Like most people I have multiple accounts with the big three email services (Hotmail/live, gmail, yahoo). For my older Hotmail accounts, I still have the ability to use Outlook to connect to&amp;nbsp;them for free. Gmail gives POP access, and reads everyone’s email, so my gmail accounts are setup in Outlook. Yahoo gives me nothing. 
&lt;P&gt;Can you guess from the previous paragraph which accounts I use more? I like Outlook, I use it more than any other app. It holds my to-do list, my shopping lists, my current tasks, calendar, contacts, etc. Always syncing with my &lt;A href="http://en.wikipedia.org/wiki/Htc_apache"&gt;HTC Apache&lt;/A&gt;, always syncing with the exchange server, always having its PST's and OST's backed up to both the &lt;A href="http://www.stopdigitalamnesia.com/"&gt;Windows Home Server&lt;/A&gt; (on-site) and to &lt;A href="http://mozy.com/"&gt;Mozy&lt;/A&gt;&amp;nbsp;(off-site). 
&lt;P&gt;For me to use an email account seriously&amp;nbsp;I need to be able to have it show up in Outlook. That lets me have my emails backed up and archived with the rest of my emails. It lets me search over them using Windows Desktop Search. It&amp;nbsp;lets them get pushed to my phone. It lets me easily forward them to other people using different email accounts, which is key when you have certain emails for certain tasks. Bringing these emails into Outlook makes them truly exist to me. 
&lt;P&gt;Yesterday Yahoo &lt;A href="http://yodel.yahoo.com/2007/03/27/yahoo-mail-goes-to-infinity-and-beyond/"&gt;announced&lt;/A&gt;&amp;nbsp;that it will soon offer unlimited email storage, excellent news for all people who use Yahoo mail. But today the news that the &lt;A href="http://developer.yahoo.com/mail/"&gt;Yahoo Mail APIs&lt;/A&gt;, both SOAP and JSON will be free and available to all developers. This is very cool good news. First because Yahoo is still supporting SOAP web services, &lt;A href="http://radar.oreilly.com/archives/2006/12/google_depreciates_SOAP_API.html"&gt;unlike others&lt;/A&gt;,&amp;nbsp;and hasn't been completely overrun with web 2.0 madness. But secondly because this can (and hopefully will) bring in a lot of new developers to code against their API. T 
&lt;P&gt;I can't wait until someone writes a nice little .NET Outlook add-in that can connect to Yahoo and make it seem like&amp;nbsp;Yahoo mail&amp;nbsp;is being accessed through POP or IMAP. Have access to the storage of unlimited emails through Outlook and Desktop Search. I hope I&amp;nbsp;don't have to wait for too long, because that is the kind of project that I might add to my list after my current one is completed. 
&lt;P&gt; 
&lt;P&gt;Related URL: &lt;A title=http://jeremy.zawodny.com/blog/archives/008785.html href="http://jeremy.zawodny.com/blog/archives/008785.html"&gt;http://jeremy.zawodny.com/blog/archives/008785.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;EOF&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=110215"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=110215" 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/malloc/aggbug/110215.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>malloc();</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/malloc/archive/2007/03/28/110215.aspx</guid>
            <pubDate>Thu, 29 Mar 2007 02:41:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/malloc/comments/110215.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/malloc/archive/2007/03/28/110215.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/malloc/comments/commentRss/110215.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/malloc/services/trackbacks/110215.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/malloc/archive/2007/03/28/110215.aspx</feedburner:origLink></item>
        <item>
            <title>Greg the Architect - SOA This. SOA That.</title>
            <category>wcf</category>
            <category>web2.0</category>
            <category>webservices</category>
            <link>http://feedproxy.google.com/~r/Malloc/~3/xDQULAQGVL8/110206.aspx</link>
            <description>&lt;p&gt;&lt;font face="v" size="2"&gt;&lt;embed src="http://www.youtube.com/v/uOQcjvUHZ0k" width="425" height="350" type="application/x-shockwave-flash" wmode="transparent"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="v" size="2"&gt;Saw this at the latest &lt;a href="http://www.baynetug.org/"&gt;Bay.NET user group&lt;/a&gt; meeting. Might as well start this blog off with something already popular.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;EOF&lt;/font&gt;&lt;/p&gt;&lt;/embed&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=110206"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=110206" 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/malloc/aggbug/110206.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>malloc();</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/malloc/archive/2007/03/28/110206.aspx</guid>
            <pubDate>Thu, 29 Mar 2007 00:33:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/malloc/comments/110206.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/malloc/archive/2007/03/28/110206.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/malloc/comments/commentRss/110206.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/malloc/services/trackbacks/110206.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/malloc/archive/2007/03/28/110206.aspx</feedburner:origLink></item>
        <item>
            <title>intro</title>
            <link>http://feedproxy.google.com/~r/Malloc/~3/V37LOY-YAy8/110205.aspx</link>
            <description>&lt;p&gt;&lt;font face="v" size="2"&gt;They all have to start someplace. So as I sit here watching &lt;/font&gt;&lt;a title="Lost" href="http://en.wikipedia.org/wiki/Lost_%28TV_series%29" target="_blank"&gt;&lt;font face="v" size="2"&gt;Lost&lt;/font&gt;&lt;/a&gt;&lt;font face="v" size="2"&gt; I finally decided to start blogging after reading thousands and thousands of blogs over the past 3 or 4 or more years&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="v" size="2"&gt;Living in the &lt;/font&gt;&lt;a title="Bay Area" href="http://en.wikipedia.org/wiki/Bay_area" target="_blank"&gt;&lt;font face="v" size="2"&gt;Bay Area&lt;/font&gt;&lt;/a&gt;&lt;font face="v" size="2"&gt; means I'm currently in the center of the web 2.0 bubble. It was great when I was searching for a new job 4 months ago. I currently work for a startup ( I'm employee #6 ).&amp;nbsp;We are doing a lot of cool things with .NET, web services, SOA and SaaS. There might even be a developer community around the things we've built soon. I like working on developer tools/APIs, because it is one of the few places I can say I understand the audience.&amp;nbsp; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="v" size="2"&gt;If this blog doesn't end up an abandoned blog I hope to write about some of the following:&lt;/font&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;font face="v" size="2"&gt;.NET (C# and VB) &lt;/font&gt; &lt;li&gt;&lt;font face="v" size="2"&gt;mobile devices and .NET CF programming &lt;/font&gt; &lt;li&gt;&lt;font face="v" size="2"&gt;Web services &lt;/font&gt; &lt;li&gt;&lt;font face="v" size="2"&gt;WCF &lt;/font&gt; &lt;li&gt;&lt;font face="v" size="2"&gt;WPF and/or WPF/e &lt;/font&gt; &lt;li&gt;&lt;font face="v" size="2"&gt;Unit testing / TDD &lt;/font&gt; &lt;li&gt;&lt;font face="v" size="2"&gt;CI with ccnet &lt;/font&gt; &lt;li&gt;&lt;font face="v" size="2"&gt;source control with subversion &lt;/font&gt; &lt;li&gt;&lt;font face="v" size="2"&gt;bug tracking with Trac &lt;/font&gt; &lt;li&gt;&lt;font face="v" size="2"&gt;general tech stuff &lt;/font&gt; &lt;li&gt;&lt;font face="v" size="2"&gt;general web 2.0 hype&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt; &lt;table border="0"&gt; &lt;tbody&gt; &lt;tr border="0"&gt; &lt;td valign="top"&gt;&lt;font face="v" size="2"&gt;&amp;nbsp;I'm not a big gamer, as I'm sure my gamerscore shows, but I'll throw my gamer tag up her anyway. My favorite game still remains the original &lt;/font&gt;&lt;a title="ToeJam &amp;amp; Earl" href="http://en.wikipedia.org/wiki/Toe_Jam_and_Earl" target="_blank"&gt;&lt;font face="v" size="2"&gt;ToeJam &amp;amp; Earl&lt;/font&gt;&lt;/a&gt;&lt;font face="v" size="2"&gt;&amp;nbsp;for Genesis.&lt;/font&gt;&lt;/td&gt; &lt;td valign="top"&gt;&lt;iframe src="http://gamercard.xbox.com/nobodylovesUs.card" frameborder="0" width="204" scrolling="no" height="140"&gt;Put your gamertag here too.&lt;/iframe&gt;&lt;font face="v" size="2"&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;EOF&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=110205"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=110205" 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/malloc/aggbug/110205.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris B</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/malloc/archive/2007/03/28/110205.aspx</guid>
            <pubDate>Thu, 29 Mar 2007 00:28:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/malloc/comments/110205.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/malloc/archive/2007/03/28/110205.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/malloc/comments/commentRss/110205.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/malloc/services/trackbacks/110205.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/malloc/archive/2007/03/28/110205.aspx</feedburner:origLink></item>
    </channel>
</rss>
