<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>Techie .Net Stuff</title>
        <link>http://geekswithblogs.net/davenet/category/5908.aspx</link>
        <description>Anything thats related to pure .net technologies, implementation of .net or features of .Net it'self</description>
        <language>en-US</language>
        <copyright>Dave Redding</copyright>
        <managingEditor>DavidARedding@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>My traveling talk begins with CODODN!</title>
            <link>http://geekswithblogs.net/davenet/archive/2008/04/22/121517.aspx</link>
            <description>&lt;p&gt;    The C# variety Show began on Thursday with my trip to &lt;a target="_blank" href="http://www.glugnet.org/"&gt;GLUG.net in Lansing&lt;/a&gt;, (&lt;em&gt;this is a great group of guys and gals, and if your free, I highly recommend you to attend, they even have a user group in Flint now!&lt;/em&gt;) and didn't stop until yesterday when I got home from CODODN.&lt;/p&gt;
&lt;p&gt;     At about 6:30 on Friday, &lt;a target="_blank" href="http://www.mcwherter.net/blog/"&gt;Mr. McWherter&lt;/a&gt; shows up at my house and the road trip begins.  After about 4.5 hours, stopping only for necessities we arrive in Wilmington Ohio around.  After checking in at the hotel adjoined to the conference center we started twittering to find out if anyone else had made it down yet, and got no love.  Now...for those of you who have never visited Wilmington, this picture should illustrate what it's like...&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/davenet/WindowsLiveWriter/Mytravelingtalkbegins_BB8/wilmington_2.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border="0" alt="wilmington" align="left" width="244" height="244" src="http://geekswithblogs.net/images/geekswithblogs_net/davenet/WindowsLiveWriter/Mytravelingtalkbegins_BB8/wilmington_thumb.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;    Right...almost the middle of nowhere...However the &lt;a target="_blank" href="http://www.robertscentre.com/"&gt;Roberts Conference Center&lt;/a&gt; is conveniently located between the 3 major user groups in the area: &lt;a target="_blank" href="http://cinnug.org/"&gt;Cincinnati&lt;/a&gt;, &lt;a target="_blank" href="http://daytondevgroup.net/"&gt;Dayton&lt;/a&gt; and &lt;a target="_blank" href="http://condg.org/"&gt;Columbus&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;    Unfortunately, I didn't get the opportunity to visit any of the sessions because I had to polish up the demos for my presentation.  I did however get to hang with some of the best speakers around in the speakers lounge.  It was great to be surrounded by folk who knew what they were doing and were able to throw this newbie speaker some great hints (&lt;em&gt;Like, write your demos before you show up to the conference&lt;/em&gt;).  Also, with three user groups involved I was able to meet A lot of great folks.  All in all, the venue was a perfect fit for the conference. &lt;/p&gt;
&lt;p&gt;    I had just finished up my Demos when it was my turn to present.  At first, there were only a handful of people in the room, but within a span of just a few minutes, there were people standing in the back.  I was nervous as hell, but managed to get through the presentation, even with my funky new presentation mouse constantly wanting to zoom in on everything (&lt;em&gt;Kudos to Mr. Prince for the presenter mouse&lt;/em&gt;).  I had a lot of good questions throughout the presentation and most of the folk seemed to respond well to the "bite-sized-pieces-of-information" format.  I even managed to get a few laughs out of my crude since of humor. One of the best pieces of feedback I received was that my talk was "..Like the man show meets the Nerd show"...so maybe "Girls on trampolines" isn't to racy for my talk after all :)&lt;/p&gt;
&lt;p&gt;   &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/davenet/WindowsLiveWriter/Mytravelingtalkbegins_BB8/100_0077.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border="0" alt="100_0077" align="right" width="244" height="184" src="http://geekswithblogs.net/images/geekswithblogs_net/davenet/WindowsLiveWriter/Mytravelingtalkbegins_BB8/100_0077_thumb.jpg" /&gt;&lt;/a&gt; After my presentation, I had the chance to hang out with &lt;a target="_blank" href="http://www.joshholmes.com/"&gt;Josh Holmes&lt;/a&gt; and &lt;a target="_blank" href="http://objo.com/"&gt;Joe O'Brian&lt;/a&gt; where we talked about presentation styles and they regaled presenting war stories (&lt;em&gt;I especially like how Joe was trying to make a point and almost fell of the stage...priceless!&lt;/em&gt;).  After the final presentations let out, we all ventured into the main ballroom for the swag give away.  Some folks walked away with great gear, including licenses to Infragistics controls, Refactor and a host of other fantastic developer tools.  &lt;/p&gt;
&lt;p&gt;    Once the conference was declared closed, most of us headed over to Max and Erma's, which was attached to the hotel/conference center.  Due to a mis-communication, the restaurant had no idea that we were coming.  Eventually we wound up with a party of 30, which the Hostess' and wait staff handled very elegantly.  The service was top notch, however, most of us never received our appetizers (&lt;em&gt;those of us back in the restaurant..there were quite a few of us still in the bar&lt;/em&gt;).  So dinner went GREAT and the food was fantastic (&lt;em&gt;Loved my heartattack-on-a-bun-pulling-over-in-Toledo-on-the-way- back-to-blow-up-a-restroom burger...thanks Mr. Hawley and Mr. Prince&lt;/em&gt;).  &lt;/p&gt;
&lt;p&gt;    After things quieted down at the dinner table, about half (&lt;em&gt;if not more&lt;/em&gt;) of us ventured up the Mr. &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/davenet/WindowsLiveWriter/Mytravelingtalkbegins_BB8/100_0118.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border="0" alt="100_0118" align="left" width="333" height="251" src="http://geekswithblogs.net/images/geekswithblogs_net/davenet/WindowsLiveWriter/Mytravelingtalkbegins_BB8/100_0118_thumb.jpg" /&gt;&lt;/a&gt;Blankenburgs room for a little poker party.  things got off to a great start, at my table was Dave Smith, &lt;a target="_blank" href="http://www.codinggeekette.com/"&gt;Sarah Dutkiewicz&lt;/a&gt;, &lt;a target="_blank" href="http://programwith.net/"&gt;Matt Casto&lt;/a&gt;, &lt;a target="_blank" href="http://jamescbender.com/bendersblog/Default.aspx"&gt;James Bender&lt;/a&gt;, Monish (Mo) Nagisetty, Phil (&lt;em&gt;Can't remember your last name chief&lt;/em&gt;) and &lt;a target="_blank" href="http://www.danrigsby.com/blog/"&gt;Dan Rigsby&lt;/a&gt;.  I had never had a chance to sit and hang out with most of these guys so it was great, drinking &lt;strong&gt;Sam Adams&lt;/strong&gt; (&lt;em&gt;even though Blankenburg got Miller and Coors just to f with me&lt;/em&gt;) and talking a combination of smack and tech.&lt;/p&gt;
&lt;p&gt;    A couple of hours later, we combined tables where it was Me (&lt;em&gt;I made it woot!&lt;/em&gt;), Dave, Phil, &lt;a target="_blank" href="http://www.jeffblankenburg.com/index.html"&gt;Jeff Blankenburg&lt;/a&gt;, &lt;a target="_blank" href="http://www.mcwherter.net/blog/"&gt;Jeff McWherter&lt;/a&gt; Kevin (&lt;em&gt;blanking on your last name to bud&lt;/em&gt;) &lt;a target="_blank" href="http://www.coreyhaines.com/coreysramblings/"&gt;Cory Haines&lt;/a&gt;, and I think &lt;a target="_blank" href="http://www.darrellhawley.com/"&gt;Darrell Hawley&lt;/a&gt; (&lt;em&gt;I had a bit of whisky in me by this point so I'm a little fuzzy on the details&lt;/em&gt;).  I ended up going out on the second hand where I called Kevin, thought he was bluffing...but he ended up having a flush and taking me out.  Was a great game and I walked away with "Extreme programming adventures in c#" as a consolation prize.  I do remember that at one point, Amanda Laucher Took all my chips while I was ordering Pizza and made them all pink...I immediately grabbed one of Dave Smiths chip racks and exchanged it for the pink one.  The night continued on in due form with lots of great tech talk and a whole lot of drunk humor.  Mad props go out to Blankenburg and the rest of the MS guys that made this happen.  It was a great way to end a fantastic conference.  &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/davenet/WindowsLiveWriter/Mytravelingtalkbegins_BB8/100_0151.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border="0" alt="100_0151" align="right" width="373" height="281" src="http://geekswithblogs.net/images/geekswithblogs_net/davenet/WindowsLiveWriter/Mytravelingtalkbegins_BB8/100_0151_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;    The Next morning,  those of us who had survived the night of poker ventured down to Max and Ermas once again for a fantastic breakfast.  Shortly thereafter, we all headed back home.&lt;/p&gt;
&lt;p&gt;    This was my first overnight stay for a conference and I enjoyed every last minute of it.  A perfect way to bring many people who are passionate about what they do together.  I had the opportunity to meet and talk with a fantastic group of professionals who are dedicated to the community.  I can't wait till the &lt;a target="_blank" href="http://www.wmdotnet.org/dodn08/"&gt;Western Michigan day of .net&lt;/a&gt; where we can all meet up again.  After that, who knows, maybe the &lt;a target="_blank" href="http://www.clevelanddodn.org/"&gt;Cleveland Day of .net&lt;/a&gt;? or even the upcoming &lt;a target="_blank" href="http://portal.artemis-solutions.com/glugnet/"&gt;Lansing Day of .net&lt;/a&gt;!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=121517"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=121517" 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/davenet/aggbug/121517.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dave Redding</dc:creator>
            <guid>http://geekswithblogs.net/davenet/archive/2008/04/22/121517.aspx</guid>
            <pubDate>Wed, 23 Apr 2008 02:23:36 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/davenet/comments/121517.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/davenet/archive/2008/04/22/121517.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/davenet/comments/commentRss/121517.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/davenet/services/trackbacks/121517.aspx</trackback:ping>
        </item>
        <item>
            <title>Watashi no "IL Code" seksu desu</title>
            <link>http://geekswithblogs.net/davenet/archive/2008/03/31/120885.aspx</link>
            <description>&lt;p&gt;    So, I may not be entirely up on my un-couth Japanese sayings, but one thing is for sure, IL code, to the average developer (&lt;em&gt;Read: Me&lt;/em&gt;) might as well be written in the same Romaji thats in the title.  That is, it's hard to make heads or tails of, and since you most likely never, or only rarely look at it, you get very little opportunity to actually study it.  I've been the same way for the past few years, acknowledging that IL exists, and just like that ugly friend, I don't actually acknowledge there being a relationship between "It" and I in public.&lt;/p&gt;
&lt;p&gt;    That all changed for me last Friday when my buddy Joshua Haynes dropped me a note abut my "&lt;a href="http://blog.mrdaveredding.net/archive/2008/03/11/120462.aspx"&gt;Unloved Operators&lt;/a&gt;" Tech in 5 minutes post .  He was interested enough in how the ?? operator stacks up against the if(x==null) else structure that, he compiled an example and then sent me the IL code, looking for my opinion.  &lt;/p&gt;
&lt;p&gt;    So I was stuck.  I could not admit defeat because of my ignorance of IL.  So I leapt into action, quickly throwing out all the &lt;a href="http://www.urbandictionary.com/define.php?term=TLA"&gt;TLA&lt;/a&gt;'s I could in an attempt to undermine my friends intelligence.  He quickly blocked, pivoted and swatted away my attack.  Before he could completely recover I attempted the Clinton-Dodge-the-issue move I had learned from CNN, but Joshuah quickly saw through funny analogy's and interesting tangents and held his ground firmly, so....I gave in and made a trip to the &lt;strike&gt;oracle &lt;/strike&gt;&lt;a href="http://www.google.com/search?hl=en&amp;amp;q=IL+Code+%2B+Monkeys+are+Sexy"&gt;Google&lt;/a&gt;.  Come to find out, it can be difficult to research an answer, as compared to just pulling out of god knows where.  But I think that I figured out how do answer Josh's imposing "&lt;em&gt;What do you think?&lt;/em&gt;" question.  below is the code and the IL that he sent me.&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Person myself = null;&lt;br /&gt;
Person myFriend = new Person("Johhny", "Cash");&lt;br /&gt;
Person newFriend = myself ?? myFriend;&lt;br /&gt;
Console.WriteLine("The new Friend likes: {0}", newFriend.FullName());&lt;br /&gt;
&lt;br /&gt;
if (myself != null)&lt;br /&gt;
   newFriend = myself;&lt;br /&gt;
else&lt;br /&gt;
   newFriend = myFriend;&lt;br /&gt;
Console.WriteLine("The new Friend likes: {0}", newFriend.FullName());&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;IL_0012:  stloc.1&lt;br /&gt;
  IL_0013:  ldloc.0&lt;br /&gt;
  IL_0014:  dup&lt;br /&gt;
  IL_0015:  brtrue.s   IL_0019&lt;br /&gt;
  IL_0017:  pop&lt;br /&gt;
  IL_0018:  ldloc.1&lt;br /&gt;
  IL_0019:  stloc.2&lt;br /&gt;
  IL_001a:  ldstr      "The new Friend likes: {0}"&lt;br /&gt;
  IL_001f:  ldloc.2&lt;br /&gt;
  IL_0020:  callvirt   instance string Test.Person::FullName()&lt;br /&gt;
  IL_0025:  call       void [mscorlib]System.Console::WriteLine(string,&lt;br /&gt;
                                                                object)&lt;br /&gt;
  IL_002a:  nop&lt;br /&gt;
  IL_002b:  ldloc.0&lt;br /&gt;
  IL_002c:  ldnull&lt;br /&gt;
  IL_002d:  ceq&lt;br /&gt;
  IL_002f:  stloc.3&lt;br /&gt;
  IL_0030:  ldloc.3&lt;br /&gt;
  IL_0031:  brtrue.s   IL_0037&lt;br /&gt;
  IL_0033:  ldloc.0&lt;br /&gt;
  IL_0034:  stloc.2&lt;br /&gt;
  IL_0035:  br.s       IL_0039&lt;br /&gt;
  IL_0037:  ldloc.1&lt;br /&gt;
  IL_0038:  stloc.2&lt;br /&gt;
  IL_0039:  ldstr      "The new Friend likes: {0}"&lt;br /&gt;
  IL_003e:  ldloc.2&lt;br /&gt;
  IL_003f:  callvirt   instance string Test.Person::FullName()&lt;br /&gt;
  IL_0044:  call       void [mscorlib]System.Console::WriteLine(string,&lt;br /&gt;
                                                                object)&lt;br /&gt;
The top is the ?? test and below is if statements. What do you think?&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;   So, starting from the top, I began to investigate what each call was.&lt;/p&gt;
&lt;p&gt;    The first thing i needed to figure out was, what was the "IL_xxx" marker? simple, line numbers, easy enough.  Next up, what does this mean:&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p&gt;brtrue.s   IL_0037&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;a little googling and i found that "&lt;em&gt;br&lt;/em&gt;" means "&lt;em&gt;Branch&lt;/em&gt;" so "&lt;em&gt;brtrue"&lt;/em&gt; must mean "&lt;em&gt;True branch from a decision&lt;/em&gt;" (&lt;em&gt;the .s seems to indicate Short form, or something of that nature&lt;/em&gt;).  So combine that with a line number and we have a basic go-to statement of&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr"&gt;IF True GoTo: IL_0037&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;Ok, so that tackles the low hanging fruit.  The next thing on the list was these&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr"&gt;stloc.x&lt;br /&gt;
ldloc.x&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;To google for these, i had to rack my brain for a bit.  I discovered that there is an &lt;a href="http://msdn2.microsoft.com/en-us/library/system.reflection.emit.opcodes_fields.aspx"&gt;OpCodes &lt;/a&gt;object that lives in the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.reflection.emit.aspx"&gt;system.refelction.emit namespace&lt;/a&gt;.  And surprisingly enough, it has codes that match what I'm seeing the the IL.  So I quickly discovered the following entries.&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr"&gt; &lt;/p&gt;
&lt;table id="memberList" frame="lhs" class="members"&gt;
    &lt;tbody&gt;
        &lt;tr data="public;static;declared;"&gt;
            &lt;td&gt;&lt;a id="ctl00_rs1_mainContentContainer_ctl481" onclick="javascript:Track('ctl00_rs1_mainContentContainer_cpe170774_c|ctl00_rs1_mainContentContainer_ctl481',this);" href="http://msdn2.microsoft.com/en-us/library/system.reflection.emit.opcodes.stloc_0.aspx"&gt;Stloc_0&lt;/a&gt;&lt;/td&gt;
            &lt;td&gt;Pops the current value from the top of the evaluation stack and stores it in a the local variable list at index 0.&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;p dir="ltr"&gt; &lt;/p&gt;
&lt;table id="memberList" frame="lhs" class="members"&gt;
    &lt;tbody&gt;
        &lt;tr data="public;static;declared;"&gt;
            &lt;td&gt;&lt;a id="ctl00_rs1_mainContentContainer_ctl413" onclick="javascript:Track('ctl00_rs1_mainContentContainer_cpe170774_c|ctl00_rs1_mainContentContainer_ctl413',this);" href="http://msdn2.microsoft.com/en-us/library/system.reflection.emit.opcodes.ldloc_0.aspx"&gt;Ldloc_0&lt;/a&gt;&lt;/td&gt;
            &lt;td&gt;Loads the local variable at index 0 onto the evaluation stack.&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;Alright, so basically, both of these commands manipulate the Stack (&lt;em&gt;more on "The stack vs The Heap" in another post&lt;/em&gt;).  &lt;img style="FLOAT: right" height="140" alt="Stack, from wikipedia" width="164" src="http://upload.wikimedia.org/wikipedia/commons/thumb/2/29/Data_stack.svg/391px-Data_stack.svg.png" /&gt; For now, lets just call the Stack = Fast memory but limited The Heap =Slow Memory, but massive.  Think of the stack as a tower of single bricks.  Each brick represents a single amount of data.  When you "Pop" an item of the stack you grab the top most item and remove it (&lt;em&gt;in our case, we also "Pop" from an indexed item&lt;/em&gt;), when you Push (&lt;em&gt;again, in our situation "Load into"CEQ Compares&lt;/em&gt;) your putting something. &lt;/p&gt;
&lt;p dir="ltr"&gt;There were a few other things to check out before I could move on.  For instance, what does ldnull and ceq do?&lt;/p&gt;
&lt;blockquote dir="ltr"&gt;
&lt;table id="memberList" frame="lhs" class="members"&gt;
    &lt;tbody&gt;
        &lt;tr data="public;static;declared;"&gt;
            &lt;td&gt;&lt;a id="ctl00_rs1_mainContentContainer_ctl420" onclick="javascript:Track('ctl00_rs1_mainContentContainer_cpe170774_c|ctl00_rs1_mainContentContainer_ctl420',this);" href="http://msdn2.microsoft.com/en-us/library/system.reflection.emit.opcodes.ldnull.aspx"&gt;Ldnull&lt;/a&gt;&lt;/td&gt;
            &lt;td&gt;Pushes a null reference (type &lt;span class="keyword"&gt;O&lt;/span&gt;) onto the evaluation stack.&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;table id="memberList" frame="lhs" class="members"&gt;
    &lt;tbody&gt;
        &lt;tr data="public;static;declared;"&gt;
            &lt;td&gt;&lt;a id="ctl00_rs1_mainContentContainer_ctl289" onclick="javascript:Track('ctl00_rs1_mainContentContainer_cpe170774_c|ctl00_rs1_mainContentContainer_ctl289',this);" href="http://msdn2.microsoft.com/en-us/library/system.reflection.emit.opcodes.ceq.aspx"&gt;Ceq&lt;/a&gt;&lt;/td&gt;
            &lt;td&gt;Compares two values. If they are equal, the integer value 1 &lt;span class="keyword"&gt;(int32&lt;/span&gt;) is pushed onto the evaluation stack; otherwise 0 (&lt;span class="keyword"&gt;int32&lt;/span&gt;) is pushed onto the evaluation stack.&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;    Ok, simple enough. LdNull puts a &lt;strong&gt;Null Reference Type&lt;/strong&gt; onto my stack, and Ceq checks for equality.  This will become important later on.&lt;/p&gt;
&lt;p dir="ltr"&gt;    Ok, so I'm armed with some basic implements of the trade, time to start interpreting.  The second section seems a bit more straight forward, so lets start there.&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr"&gt;  &lt;strong&gt;IL_002a:  nop&lt;/strong&gt; &lt;br /&gt;
                    means no-operation, do nothing, waste time, etc...&lt;br /&gt;
  &lt;strong&gt;IL_002b:  ldloc.0&lt;br /&gt;
&lt;/strong&gt;                    Load into a local var whatever is in location 0 on the stack (&lt;em&gt;object "MySelf"&lt;/em&gt;)&lt;br /&gt;
  &lt;strong&gt;IL_002c:  ldnull&lt;/strong&gt;&lt;br /&gt;
                    Load a reference to a value on the heap, into my stack...&lt;br /&gt;
 &lt;strong&gt; IL_002d:  ceq&lt;br /&gt;
&lt;/strong&gt;                    Compare the last two values to each other and stuff them into the stack (&lt;em&gt;if x == null&lt;/em&gt;)&lt;br /&gt;
  &lt;strong&gt;IL_002f:  stloc.3&lt;br /&gt;
&lt;/strong&gt;                     Pop item at index 3 of the stack and into the local variable&lt;br /&gt;
  &lt;strong&gt;IL_0030:  ldloc.3&lt;/strong&gt;&lt;br /&gt;
                    Load the value stored in index 3 of the stack to the local variable stack (&lt;em&gt;the result of ceq&lt;/em&gt;)&lt;br /&gt;
  &lt;strong&gt;IL_0031:  brtrue.s   IL_0037&lt;br /&gt;
&lt;/strong&gt;                    if that value is 1, skip to line 37&lt;br /&gt;
  &lt;strong&gt;IL_0033:  ldloc.0&lt;br /&gt;
&lt;/strong&gt;                    Load the value stored at index 0 of variables into the stack (remember, the person "&lt;em&gt;MySelf&lt;/em&gt;")&lt;br /&gt;
 &lt;strong&gt; IL_0034:  stloc.2&lt;br /&gt;
&lt;/strong&gt;                    Pop the item at index 0 of the stack into the local variables (&lt;em&gt;what we just loaded);&lt;/em&gt;&lt;br /&gt;
  &lt;strong&gt;IL_0035:  br.s       IL_0039&lt;br /&gt;
&lt;/strong&gt;                    Branches us directly to line 39. do not pass go, do not collect $200&lt;br /&gt;
 &lt;strong&gt; IL_0037:  ldloc.1&lt;br /&gt;
&lt;/strong&gt;                    in our else statement, Load item at index 1 into the stack (&lt;em&gt;remember, make x = y if null , essentially)&lt;/em&gt;&lt;br /&gt;
&lt;strong&gt;  IL_0038:  stloc.2&lt;br /&gt;
                    &lt;/strong&gt;pop off item 2 from the stack into the local variable (&lt;em&gt;the actual variable getting assigned)&lt;/em&gt;&lt;br /&gt;
 &lt;strong&gt; IL_0039:  ldstr      "The new Friend likes: {0}"&lt;br /&gt;
                     &lt;/strong&gt;load  this string into the stack&lt;br /&gt;
  &lt;strong&gt;IL_003e:  ldloc.2&lt;br /&gt;
                    &lt;/strong&gt; load variable 2 into the stack (&lt;em&gt;the "NewFriend" object&lt;/em&gt;)&lt;br /&gt;
  &lt;strong&gt;IL_003f:  callvirt   instance string Test.Person::FullName()&lt;br /&gt;
                     &lt;/strong&gt;call the following method and load it's value&lt;br /&gt;
 &lt;strong&gt; IL_0044:  call       void [mscorlib]System.Console::WriteLine(string,&lt;br /&gt;
                                                                object)&lt;br /&gt;
                      &lt;/strong&gt;call this method, which has full access to the stack, so were passing it, in this order, the string "&lt;em&gt;The New Friend Likes:{0}&lt;/em&gt;" and then stack item[1] which = the return of Test.Person.FullName property.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;    Well, that was quite a bit.  So the simple rundown is....it does exactly what our code tells it to.  Interesting to note though, is were newing up an object of type "Null" and doing an object comparison between it and "Myself".  This isn't bad, but it's a tad slow.  You also have to load up every property and variable to see if they do actually equate.  Find in most situations, but like in the previous post, if you make a comparison of Type B to Null from Type A, when Type B Has references Type A doesn't, your going to error out...because your loading values in Type B, that Type A is ignorant of....GetItGotItGood.&lt;/p&gt;
&lt;p dir="ltr"&gt;     Ok, so we've seen what the commands do, lets take the short route examining how the ?? works in IL.&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr"&gt;&lt;font face="Arial"&gt;  &lt;strong&gt;IL_0012:  stloc.1&lt;br /&gt;
  IL_0013:  ldloc.0&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;  IL_0014:  dup&lt;br /&gt;
                    &lt;/strong&gt;Duplicate the item on top of the stack and pushes the duplicate into the stack&lt;br /&gt;
&lt;strong&gt;  IL_0015:  brtrue.s   IL_0019&lt;br /&gt;
&lt;/strong&gt;                    If the values are the same (if the value of the object is empty like the first register) jump to 19&lt;br /&gt;
&lt;strong&gt;  IL_0017:  pop&lt;br /&gt;
&lt;/strong&gt;                    Else pop the first item off the stack and get rid of it&lt;br /&gt;
&lt;strong&gt;  IL_0018:  ldloc.1&lt;br /&gt;
  IL_0019:  stloc.2&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;  IL_001a:  ldstr      "The new Friend likes: {0}"&lt;br /&gt;
  IL_001f:  ldloc.2&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;  IL_0020:  callvirt   instance string Test.Person::FullName()&lt;br /&gt;
  IL_0025:  call       void [mscorlib]System.Console::WriteLine(string,&lt;br /&gt;
                                                                object)&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;&lt;font face="Arial"&gt;    First off, we have obviously fewer instructions. Secondly, and most important, notice that were not doing any object comparisons or loading any objects from the heap.  so the breakdown after examining the two IL statements is this&lt;/font&gt;&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr"&gt;&lt;font face="Arial"&gt;If(x == Null) is like saying (If object x is the same as object Null)&lt;br /&gt;
and&lt;br /&gt;
x??y is like saying (If object x is as empty as Brittney Spears head)&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;&lt;font face="Arial"&gt;    So in short, ?? is faster, and easier to evaluate because were only comparing it to an empty value in the stack, not a reference type.  Obviously the speed gain is minuscule, but it's still there.&lt;/font&gt;&lt;/p&gt;
&lt;p dir="ltr"&gt;&lt;font face="Arial"&gt;    Ok, so IL probably will only help you gain geek cred and debug issues that you'd rather not be debugging.  But understanding IL code is worth serious geek cred, and helps you prove (or dis-prove) your theories on how your .net code works.   And hey, chicks dig the serious geek ;)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=120885"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=120885" 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/davenet/aggbug/120885.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dave Redding</dc:creator>
            <guid>http://geekswithblogs.net/davenet/archive/2008/03/31/120885.aspx</guid>
            <pubDate>Mon, 31 Mar 2008 15:52:29 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/davenet/comments/120885.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/davenet/archive/2008/03/31/120885.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/davenet/comments/commentRss/120885.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/davenet/services/trackbacks/120885.aspx</trackback:ping>
        </item>
        <item>
            <title>Tech in 5 Minutes: Nifty C# operators that don't get much love</title>
            <link>http://geekswithblogs.net/davenet/archive/2008/03/11/120462.aspx</link>
            <description>&lt;p dir="ltr" style="MARGIN-RIGHT: 0px"&gt;    In my travels around  .Net land, I've come to know, love and exploit several denizens of the tribe of C#.  Some of these have already been written about, such as Yield return and the =&amp;gt; operator.  But more recently, I've had the opportunity to educate some fellow travelers on two of the most useful, but least used operator.  Those being the Comparison Operator (&lt;strong&gt;?:&lt;/strong&gt;) and the Null Coalescing Operator (&lt;strong&gt;??&lt;/strong&gt;).&lt;/p&gt;
&lt;p&gt;    Lets start our adventure by watching the Comparison Operator in it's natural environment.  If you watch closely, it'll show you it's syntax...&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p&gt;bool statement &lt;strong&gt;? &lt;/strong&gt;true &lt;strong&gt;:&lt;/strong&gt; false &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;    Due to it's nature, this operator is sometimes called the Ternary operator. The reason being is that it takes 3 operands.  In normal use, here is what it looks like:&lt;img style="FLOAT: right; WIDTH: 129px; HEIGHT: 179px" height="358" width="247" alt="" src="http://www.zillowblog.com/wp-content/uploads/2007/07/beer.jpg" /&gt;&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr"&gt;CurrentBeer.Empty==True &lt;strong&gt;?&lt;/strong&gt; CurrentBeer = Wife.GetMebeer() &lt;strong&gt;: &lt;/strong&gt;Me.TakeDrink(CurrentBeer);&lt;br /&gt;
(&lt;em&gt;this can be shortened further by taking out the ==True, since .Empty is most likely a bool property&lt;/em&gt;)&lt;br /&gt;
CurrentBeer.Empty&lt;strong&gt;?&lt;/strong&gt;CurrentBeer=Wife.GetMeBeer()&lt;strong&gt;:&lt;/strong&gt;Me.TakeDrink(CurrentBeer);&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;    You can see how this replaces the overly verbose syntax of :&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr"&gt;If(CurrentBeer.Empty)&lt;br /&gt;
    CurrentBeer = Wife.GetMeBeer();&lt;br /&gt;
else&lt;br /&gt;
     Me.TakeDrink(CurrentBeer);&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;    Syntax sugar? Maybe.  But it's definitely useful as a quick way to get things done. Elegant, Efficient and Desirable, three features my first girlfriend was lacking in.&lt;/p&gt;
&lt;p dir="ltr"&gt;    But wait! Theres more!  Just send me three easy payments of $29.95!&lt;/p&gt;
&lt;p dir="ltr"&gt;  So now, lets check out the &lt;strong&gt;?? &lt;/strong&gt;operator.&lt;/p&gt;
&lt;p dir="ltr"&gt;    The ?? operator has saved me boat loads of finger_impact_on_keyboard stress ever since the advent of C# 2.0.  It's easiest to think of this operator working similar to the comparison operator above.  Lets lift it's skirt real quick and have a peek at how it functions&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr"&gt;x = ValueThatMightBeNull ?? DifferentValue;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;    Ok, much like the first time you played doctor, things might be confusing, but it's really simple.  Basically the &lt;strong&gt;??&lt;/strong&gt; will evaluate whether or not the thing to the left of it is null, if it is, it will evaluate and return the thing on the right.  Lets just see it in action, it's easier that way...&lt;em&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;Dear "Usually offended by my posts": &lt;strong&gt;Please&lt;/strong&gt; &lt;strong&gt;Insert vulgar joke of your choice here&amp;gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr"&gt;&lt;em&gt; //This is how my wife found me&lt;br /&gt;
&lt;/em&gt;Mate SuitableMate = Mate.Get(GoodLooking)??&lt;br /&gt;
                                      Mate.Get(AverageLooking)??&lt;br /&gt;
                                      Mate.Get(DoesntHaveAnAssForAFace)??&lt;br /&gt;
                                      Mate.Get(AtleastHeHasAJob)??&lt;br /&gt;
                                      Mate.Get(Dave)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;    If your confused, let me lighten things up for you hear.  Each A = B??C statement is the equivalent of saying&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr"&gt;If(B != null)&lt;br /&gt;
    A = B;&lt;br /&gt;
else&lt;br /&gt;
    A = C;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;    So when we string them together like that, it's just like saying &lt;em&gt;If = null else if = null else if = null&lt;/em&gt;  etc etc etc...  So, obviously, based on our previous statement, everything up to &lt;em&gt;Mate.Get(Dave)&lt;/em&gt; must have returned null if my wife wound up with me.  I do have a job now though....so I wonder if i still would have made the cut.&lt;/p&gt;
&lt;p dir="ltr"&gt;    There is one more benefit of using the ?? operator that I actually stumbled across.  Take this code as an example:&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr"&gt;public class DataObject&lt;br /&gt;
{&lt;br /&gt;
    public NullableObject a = 1... etc&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class BO&lt;br /&gt;
{&lt;br /&gt;
 public NullableObject  Stinks= 0;&lt;br /&gt;
&lt;br /&gt;
  public static implicit operator BO(DataObject e)&lt;br /&gt;
  {&lt;br /&gt;
      return new DataObject{Stinks= e.a};&lt;br /&gt;
  }&lt;br /&gt;
}&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;now...later on in the UI of the app &lt;em&gt;(which should NOT have ANY reference to the DataObject class)&lt;/em&gt; if we write this code:&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr"&gt;If(MyBo==null){Console.WriteLine("WOO HOO, You have no BO!!");}&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;..were going to get a compiler error.  The reason being, as far as I understand (&lt;em&gt;hopefully commenter's can expand on this&lt;/em&gt;) is that when you compile that statement, the compiler is doing type checking against the objects used in the class your checking for null in.  In other words it checks to see if anything is returning null from within the class.  Now, since the operator takes a type of DataObject, the complier expect you to have a reference to that class...if you don't, then *Poof* no compile.&lt;/p&gt;
&lt;p dir="ltr"&gt;    Now, to get around this, we can write...&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr"&gt;SomeoneElsesBo = MyBo??(MyBo = new BO());&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;   ....And the compiler is happy.&lt;/p&gt;
&lt;p dir="ltr"&gt;Hell, we can even put these two operators together, check this out:&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr"&gt;Mate SuitableMate;&lt;br /&gt;
Step Next_Step_In_Life = ((SuitableMate = Mate.Get(GoodLooking)??&lt;br /&gt;
                                                                                Mate.Get(AverageLooking)??&lt;br /&gt;
                                                                                Mate.Get(DoesntHaveAnAssForAFace)??&lt;br /&gt;
                                                                                Mate.Get(AtleastHeHasAJob)??&lt;br /&gt;
                                                                                Mate.Get(Dave)) == Dave?SobQuietly():null)??(Step)PartyItUpWOOT();&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;  I'll leave you with this.  The best places I've found to use the ?? operator is in returning data base fields where the value might be null, here is a quick example and the best way I've found to implement the ?? solution&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr"&gt;//&lt;em&gt;First i check to see if the value from the db is DBNull.value&lt;br /&gt;
//Dr = DataReader&lt;br /&gt;
//Do = Data Object with nullable Types&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
DO.ValX == DBNull.Value?null:(Int32?)dr[0]&lt;br /&gt;
//&lt;em&gt;If you don't get the ? reference after the Int32, no worries, It's a nullable type, and I'll post about it soon.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;    The reason I do this, is so I can keep the actual DB value in my DataObject, which is supposed to be a true reflection of my data.  Later on, in the actual business object, where I don't accept Nullable types I can say this.&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr"&gt;BO.ActualValX = DO.ValX??-1;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;      And Bada-Bing, I'm good to go.  Later on, i can pass either -1 or even null back into the DB and repeat this cycle when retrieving my data, it works, and i don't have any logic, other than conversions from DBNull, in my Data Object class.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=120462"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=120462" 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/davenet/aggbug/120462.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dave Redding</dc:creator>
            <guid>http://geekswithblogs.net/davenet/archive/2008/03/11/120462.aspx</guid>
            <pubDate>Tue, 11 Mar 2008 16:31:43 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/davenet/comments/120462.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/davenet/archive/2008/03/11/120462.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/davenet/comments/commentRss/120462.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/davenet/services/trackbacks/120462.aspx</trackback:ping>
        </item>
        <item>
            <title>Microsoft announces Open Protocol Specfication</title>
            <link>http://geekswithblogs.net/davenet/archive/2008/02/21/119858.aspx</link>
            <description>&lt;p&gt;The link explains it all&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/cc203350.aspx"&gt;http://msdn2.microsoft.com/en-us/library/cc203350.aspx&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p&gt;As a developer, you now have full access to the information about Open Application Programming Interfaces (APIs) and Open Protocols. All Windows client operating system API documentation is now available on this MSDN website.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;Wow!!!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=119858"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=119858" 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/davenet/aggbug/119858.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dave Redding</dc:creator>
            <guid>http://geekswithblogs.net/davenet/archive/2008/02/21/119858.aspx</guid>
            <pubDate>Thu, 21 Feb 2008 19:15:06 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/davenet/comments/119858.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/davenet/archive/2008/02/21/119858.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/davenet/comments/commentRss/119858.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/davenet/services/trackbacks/119858.aspx</trackback:ping>
        </item>
        <item>
            <title>Good Times</title>
            <link>http://geekswithblogs.net/davenet/archive/2008/01/15/118569.aspx</link>
            <description>&lt;p&gt;&lt;font face="Arial"&gt;    Well, that time of the year has come and gone again.  By that I mean Code mash.&lt;/font&gt;&lt;/p&gt;
&lt;font face="Arial"&gt;
&lt;p&gt;&lt;br /&gt;
    I didn’t get a chance to make it to codemash this year, but waking up to find 76 twitterings on my phone (Over half were most likely Dwitters -Drunken Twittering-) is a clear indication that it was both a fun and exciting time for all who attended.&lt;/p&gt;
&lt;p&gt;    In other news, apparently my blog posts (&lt;em&gt;the most recent one about the '=&amp;gt;' specifically&lt;/em&gt;) was the issue of some conversations at code mash.  And in the process I managed to offend a few of my friends.  Hence you will notice it's no longer published.  I took it down as soon as I found out that it had offended a friend; that’s not something I’d ever intentionally do.  &lt;/p&gt;
&lt;p&gt;    I’m still grappling with the "&lt;em&gt;Do I take out the bits that offended my friend and republish it, damn the common idea of a non offensive/vulgar blog post, don't conform, be my own man&lt;/em&gt;"  or, do  I suck it up, go more vanilla.  The post itself has had almost 900 unique web views, and an extra 230 subscriber views,  my most popular post yet,  I can't imagine all those people were deeply offended by what I had to say.  So I guess what it comes down to is, should I conform and not risk offending a contingent of people to entertain another, or should I just say "Damn the torpedoes, full speed ahead!!”  Honestly, it's a rhetorical question, since I’m going to do whatever in the hell I want anyway, but it does feel good to write it down.&lt;/p&gt;
&lt;p&gt;    A friend once said that to enjoy blogging you have to do it for yourself and no one else, but since I’m even asking these questions, am I really blogging for myself?&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
That being said, I have a PG rated Tech in 5 min about extension methods Then I think we’re going to get into exception handling. &lt;/p&gt;
&lt;p&gt;Till next time.&lt;br /&gt;
&lt;/p&gt;
&lt;/font&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=118569"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=118569" 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/davenet/aggbug/118569.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dave Redding</dc:creator>
            <guid>http://geekswithblogs.net/davenet/archive/2008/01/15/118569.aspx</guid>
            <pubDate>Tue, 15 Jan 2008 18:04:02 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/davenet/comments/118569.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/davenet/archive/2008/01/15/118569.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/davenet/comments/commentRss/118569.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/davenet/services/trackbacks/118569.aspx</trackback:ping>
        </item>
        <item>
            <title>Extension Methods</title>
            <link>http://geekswithblogs.net/davenet/archive/2007/12/18/117801.aspx</link>
            <description>My friend &lt;a href="http://jaychapman.blogspot.com/"&gt;J. Chapman &lt;/a&gt;has a great demonstration of how &lt;a href="http://en.wikipedia.org/wiki/Extension_method"&gt;extension methods &lt;/a&gt;can help to &lt;a href="http://jaychapman.blogspot.com/2007/12/ui-good-use-for-extension-methods.html"&gt;further de-couple UI elements from BL&lt;/a&gt;.  Good stuff.  I like the approach.  This is a good post that i would say to you "Hand out to all the hethens who preach heresy against the church of C#"!!&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117801"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117801" 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/davenet/aggbug/117801.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dave Redding</dc:creator>
            <guid>http://geekswithblogs.net/davenet/archive/2007/12/18/117801.aspx</guid>
            <pubDate>Tue, 18 Dec 2007 16:59:33 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/davenet/comments/117801.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/davenet/archive/2007/12/18/117801.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/davenet/comments/commentRss/117801.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/davenet/services/trackbacks/117801.aspx</trackback:ping>
        </item>
        <item>
            <title>Tech in 5 minutes: Overloading Operators is Nifty!</title>
            <link>http://geekswithblogs.net/davenet/archive/2007/11/05/116605.aspx</link>
            <description>&lt;p&gt;    Welcome back to our newest installment of Tech in 5 minutes.  Today were going to discuss the age old question that every modern family has to confront:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/davenet/WindowsLiveWriter/OpOverloading_FCA/CartoonOne_2.png"&gt;&lt;img width="469" height="160" border="0" id="id" style="border-width: 0px;" alt="CartoonOne" src="http://geekswithblogs.net/images/geekswithblogs_net/davenet/WindowsLiveWriter/OpOverloading_FCA/CartoonOne_thumb.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;   Excellent point...however, not today, I meant this one.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/davenet/WindowsLiveWriter/OpOverloading_FCA/CartoonTwo_2.png"&gt;&lt;img width="468" height="160" border="0" id="id" style="border-width: 0px;" alt="CartoonTwo" src="http://geekswithblogs.net/images/geekswithblogs_net/davenet/WindowsLiveWriter/OpOverloading_FCA/CartoonTwo_thumb.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Special Huggings...yeah in my  world that means:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font color="#0000ff"&gt;Kid&lt;/font&gt; k = mom + dad;&lt;/p&gt;
&lt;/blockquote&gt;OR Kid k = (mom + alcohol) + (dad+ alcohol)&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/davenet/WindowsLiveWriter/OpOverloading_FCA/beer5_2.jpg"&gt;&lt;img width="175" height="262" border="0" align="right" id="id" style="border-width: 0px;" alt="beer5" src="http://geekswithblogs.net/images/geekswithblogs_net/davenet/WindowsLiveWriter/OpOverloading_FCA/beer5_thumb.jpg" /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;p&gt;    So now I will be your doctor of love and teach you to make kids.  Not only that, but we can illustrate all the major aspects of life via operator overloading,  Like The first job, The first Beer Bong, Getting 80% notes on Guitar Hero 2, How to make Peanut Butter-Saltine-Jalapeno pepper snacks, And of course...Puberty (&lt;em&gt;If that rant doesn't seed the search engines, I don't know what will&lt;/em&gt;).  Hell! we can even calculate the chances of &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Murphy's_law"&gt;toast falling on the carpet butter side down&lt;/a&gt;, and give it a score on the triple half gainer it does on the way down.&lt;/p&gt;
&lt;p&gt;    Lets get started with the whoopie:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;Man&lt;/span&gt; stud = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Man&lt;/span&gt;(); &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;Woman&lt;/span&gt; chick = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Woman&lt;/span&gt;(); &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;Alcohol&lt;/span&gt; a = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Alcohol&lt;/span&gt;();&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;Whoopie&lt;/span&gt; whoopie = &lt;span style="color: blue;"&gt;null&lt;/span&gt;; &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color: blue;"&gt;while&lt;/span&gt; (whoopie == &lt;span style="color: blue;"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; !stud.IsPassedOut) &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;            &lt;/span&gt;{ &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;                &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (stud.studlyness &amp;gt; chick.standards) &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;                &lt;/span&gt;{ &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;                    &lt;/span&gt;whoopie = stud + chick; &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;                    &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;Kid&lt;/span&gt; k = (&lt;span style="color: rgb(43, 145, 175);"&gt;Kid&lt;/span&gt;)whoopie; &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;                    &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (k != &lt;span style="color: blue;"&gt;null&lt;/span&gt;) &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;                    &lt;/span&gt;{ &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;                        &lt;/span&gt;stud.studlyness.Huavos = 0; &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;span style=""&gt;              &lt;/span&gt;} &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;                &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;                    &lt;/span&gt;stud += &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Beer&lt;/span&gt;(); &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;                    &lt;/span&gt;chick += &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Daquiri&lt;/span&gt;(); &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt; line-height: 115%;" courier="courier"&gt;&lt;span style=""&gt;            &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pretty accurate eh?  So how does it work? Simple.  Operators are just basically methods with a single character (&lt;em&gt;Read: Lazy Developer&lt;/em&gt;) name.  They give us that convenient syntax, but there really is no fundamental difference between&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Whoopie whoopie = stud + chick;&lt;/p&gt;
&lt;p&gt;And&lt;/p&gt;
&lt;p&gt;Whoopie whoopie = stud.Addchick(chick);&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Alright, enough alredy, here is how you'd overload that Binary operator:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/davenet/WindowsLiveWriter/OpOverloading_FCA/whoopiegoldburg_2.jpg"&gt;&lt;img width="95" height="129" border="0" align="left" style="border-width: 0px; margin: 0px 15px 0px 0px;" alt="whoopiegoldburg" src="http://geekswithblogs.net/images/geekswithblogs_net/davenet/WindowsLiveWriter/OpOverloading_FCA/whoopiegoldburg_thumb.jpg" /&gt;&lt;/a&gt;public static Whoopie operator +(Stud s, Chick c)&lt;/p&gt;
&lt;p&gt;//since the + operator shouldn't (but does, remember it is basically JUST a static method) &lt;br /&gt;
//care about order of values to be operated on go ahead and overload the reverse method signature&lt;/p&gt;
&lt;p&gt;public static Whoopie operator +(Chick c, Stud s);&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;    Now, you can stick either of these methods in either the Chick or Stud class, or one in each.  if you try to do both, you'll wind up with an &lt;strong&gt;ambiguous reference&lt;/strong&gt;, since the operator won't know which classes method to call.  This is handy since it's a compiler error instead of catching it at runtime.  I mean, how embarrasing would it be for &lt;strong&gt;Your&lt;/strong&gt; app to say "Cannot add Man and Woman".  It would probably bring up questions about your *ahem* preferences.  And if you worked with the same guys I do, you'd hide under your desk,behind the computer.  On the flipside, you'd learn how to write code without a monitor. But I digress.&lt;/p&gt;
&lt;p&gt;     Ok so we can make whoopie, But how do we know to make whoopie? Well simple.  The studs studlyness hast to exceed the woman's *Standards*.  But, since that will most likely NEVER happen off the bat, you have to get some Alcohol involved.  so lets check out the '+='  which actually ends up just being a Binary + operator (Meaning it takes 2 parameters) the '=' part of the operator means we Have to return the same type that were operating on.  so this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;stud += new Beer();&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;can be read as:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;stud is = to stud + a new beer in him();&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;or&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;GET THIS MAN A BEER!!!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;which ever one gets the point across to you. &lt;/p&gt;
&lt;p&gt;we overload this one just like we did with Whoopie:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;public static Stud operator +(Stud s, Alcohol a); &lt;br /&gt;
{ &lt;br /&gt;
    s.Studlyness ++; //Same rules as the += &lt;br /&gt;
    return s; &lt;br /&gt;
} &lt;br /&gt;
public static Stud operator +(Alcohol a, Stud s){return s+a;} &lt;br /&gt;
&lt;br /&gt;
public static Woman operator +(Woman w, Alcohol a) &lt;br /&gt;
{ &lt;br /&gt;
    w.Standards --; &lt;br /&gt;
    return w; &lt;br /&gt;
} &lt;br /&gt;
public static Woman operator +(Alcohol a, Woman w){return w+a;} &lt;br /&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In my code, I overloaded these operators in the Alcohol class,  It really doesn't matter where you do it, so long as you do it in one of the classes being operated on.&lt;/p&gt;
&lt;p&gt;    So, standards are lowering, "Confidence" is growing, so how do we know when enough is enough? Well, one of two things have to happen, the guy passes out from drinking to much liquid courage, or they finally his Studlyness surpasses her standards and they find a quite spot in the back of someone's car and act like teenage rabbits on spring break.  So, it's easy to check for passed out-y-ness, but what about checking to see if the liquor is working and through a thick set of beer goggles "&lt;strong&gt;He could be the one...&lt;/strong&gt;".  Well, we simply check. overloading the '&amp;gt;' operator is just like overloading the '+' operator, with the caveat that, when you overload an operator like '&amp;gt;' or '&amp;lt;=' you HAVE to have the complementing '&amp;lt;' and '=&amp;gt;'.  this makes sense right?  You cant have a &amp;gt; without a &amp;lt;, that would be fricking crazy!! I mean, it's almost like a 'WT' without the trailing 'F'. The overload looks almost identical to the one for the '+' except you HAVE to return bool (&lt;em&gt;it is a boolean operator afterall&lt;/em&gt;).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;public static bool operator &amp;gt;(Studlyness studfactor, Standards impossabledream) &lt;br /&gt;
{ &lt;br /&gt;
         &lt;font color="#00ff40"&gt;   &lt;font color="#008040"&gt;//I'm reading on functional programming so i'm TOTALLY in the mood to use &lt;br /&gt;
            //these logical operators instead of a standard if/else statement. &lt;br /&gt;
            //the &amp;amp; is a logical AND.  Meaning that Both sides of the operator have to &lt;br /&gt;
            //evaluate to true. to return true (True,True = true, True,False = False, False,False = false)&lt;/font&gt; &lt;br /&gt;
&lt;/font&gt;            return (studfactor.StudFactor &amp;gt; impossabledream.reqStudFactor) &amp;amp; (studfactor.IncomeFactor &amp;gt; impossabledream.reqIncomeFactor);&lt;/p&gt;
&lt;p&gt;} &lt;br /&gt;
public static bool operator &amp;gt;(Standards impossabledream, Studlyness studfactor){return studfactor&amp;gt;impossabledream;}&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;then just do the same for the '&amp;lt;' operator:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;public static bool operator &amp;lt;(Studlyness studlyness, Standards standard) &lt;br /&gt;
{ &lt;br /&gt;
            //Same as above, this is the Logical OR operator, this retuns true if either &lt;br /&gt;
            //side of the operator is true &lt;br /&gt;
            //so True, False = True, True,True = true, False,False = false; &lt;br /&gt;
            return (studlyness.StudFactor &amp;lt; standard.reqStudFactor) | (studlyness.IncomeFactor &amp;lt; standard.reqIncomeFactor); &lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
public static bool operator &amp;gt;(Standards standards, Studlyness studlyness){return studlyness&amp;lt;standards;}&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ok...so now that our beloved, drunk couple can make Whoopie,  we need to see what the outcome is.  Quite simply, we need to see if the guy is going to loose his Huavos.  So, lets just cast.  Overloading the implicit casting operator is similar to overloading the other operators.  The difference is that this is a Urinary operator (Meaning it only takes one parameter) and either the return type or the parameter have to match the enclosing type (&lt;em&gt;IE if your overloading the casting operator &lt;strong&gt;inside&lt;/strong&gt; the whoopie class either the parameter or the return value &lt;strong&gt;have&lt;/strong&gt; to be of type whoopie&lt;/em&gt;).  You also have to state that this is an Implicit operator:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: blue;" courier="courier"&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Whoopie &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style=""&gt;  &lt;/span&gt;{ &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;implicit&lt;/span&gt; &lt;span style="color: blue;"&gt;operator&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Kid&lt;/span&gt;(&lt;span style="color: rgb(43, 145, 175);"&gt;Whoopie&lt;/span&gt; e) &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;        &lt;/span&gt;{ &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;Random&lt;/span&gt; TimeForKid = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Random&lt;/span&gt;(); &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color: blue;"&gt;int&lt;/span&gt; i = TimeForKid.Next(0, 100); &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (i &amp;gt;= 50) &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;                &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Kid&lt;/span&gt;(); &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color: blue;"&gt;else &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;                &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: blue;"&gt;null&lt;/span&gt;; &lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;&lt;span style=""&gt;        &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt 0.5in; line-height: normal;"&gt;&lt;span style="font-size: 10pt;" courier="courier"&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;    As you can see, the "Operator" is essentially the return type.  Now, I did something here that you may not want to do without implementing a tryCast() &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/davenet/WindowsLiveWriter/OpOverloading_FCA/whoopiegoldburg_4.jpg"&gt;&lt;img width="39" height="53" border="0" align="right" style="border-width: 0px;" alt="whoopiegoldburg" src="http://geekswithblogs.net/images/geekswithblogs_net/davenet/WindowsLiveWriter/OpOverloading_FCA/whoopiegoldburg_thumb_1.jpg" /&gt;&lt;/a&gt;method that may return null.  But for the sake so simplicity (&lt;em&gt;read: Lazy Developer)&lt;/em&gt; I didn't.  &lt;/p&gt;
&lt;p&gt;That's all there is to making whoopie.  I suggest you check out the &lt;a href="http://msdn2.microsoft.com/en-us/library/6a71f45d(VS.80).aspx"&gt;MSDN Article on&lt;/a&gt; operators to see what's available to override and what's not.  If you would like my source code let me know. I have a little console app that I wrote to demonstrate all that stuff up there.   &lt;/p&gt;
&lt;p&gt;    So, now that your well equipped for both the developer world, and the real world.  Why not stop by our next &lt;a href="http://www.aadnd.org/"&gt;AADND&lt;/a&gt; meeting at the SRT world headquarters in  Ann Arbor and give me your feedback face to face.  If anything you'll get some &lt;a href="http://www.aadnd.org/Meetings/2007/November/tabid/567/Default.aspx"&gt;valuable FREE training in ASP.Net Caching&lt;/a&gt; from the one and only &lt;a href="http://www.aadnd.org/Meetings/SpeakerBios/StevenSmith/tabid/568/Default.aspx"&gt;Steven Smith&lt;/a&gt; of &lt;a href="http://www.AspAlliance.com"&gt;AspAlliance.com&lt;/a&gt; fame and fortune.&lt;/p&gt;
&lt;p&gt;    Join me for the next time when we discuss how to make Beer Bongs out of bits of a garden hose and F# or something else equally as interesting.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=116605"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=116605" 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/davenet/aggbug/116605.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dave Redding</dc:creator>
            <guid>http://geekswithblogs.net/davenet/archive/2007/11/05/116605.aspx</guid>
            <pubDate>Mon, 05 Nov 2007 18:36:33 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/davenet/comments/116605.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/davenet/archive/2007/11/05/116605.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/davenet/comments/commentRss/116605.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/davenet/services/trackbacks/116605.aspx</trackback:ping>
        </item>
        <item>
            <title>Macs being targeted by virus's ... no way</title>
            <link>http://geekswithblogs.net/davenet/archive/2007/11/01/116521.aspx</link>
            <description>This might come off a little mean but....&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.securityfocus.com/archive/1/483115/30/0/threaded"&gt;&lt;span style="FONT-WEIGHT: bold"&gt;&lt;/span&gt;HA HA! All you pretentious mac Zealots out there!&lt;/a&gt;&lt;!--Fixed link--&gt; &lt;br /&gt;
&lt;br /&gt;
This is aimed at all those people who said &lt;em&gt;"&lt;span style="FONT-STYLE: italic"&gt;Go to apples home page and type 'Windows' in the search bar! Haha, so true so true, Mac's don't get viruses because [Insert why mac pcs are better than windows based pc's]&lt;/span&gt;"&lt;br /&gt;
&lt;br /&gt;
&lt;/em&gt;&lt;blockquote&gt;&lt;em&gt;This means one thing: Apple's day has finally come and Apple users are &lt;br /&gt;
going to get hit hard. All those unpatched vulnerabilities from years past &lt;br /&gt;
are going to bite them in the behind.&lt;br /&gt;
&lt;br /&gt;
I can sum it up in one sentence: OS X is the new Windows 98. Investing in&lt;br /&gt;
security ONLY as a last resort losses money, but everyone has to learn it &lt;br /&gt;
for themselves.&lt;/em&gt;&lt;/blockquote&gt;&lt;em&gt;&lt;br /&gt;
&lt;/em&gt;Now as one buddy pointed out,  &lt;em&gt;&lt;br /&gt;
&lt;/em&gt;&lt;blockquote&gt;&lt;em&gt;"I don't see how you get from trojan-horse-media-codec to "OS X is the new Windows 98" &lt;/em&gt;&lt;/blockquote&gt;&lt;em&gt;&lt;br /&gt;
&lt;/em&gt;I think the answer to that is, much in the same way of Windows 98, it's a new OS, that a lot of people have taken in and enjoyed, but it's also new , and fairly pervasive.  Which means, of course, it's going to be a target for a lot of nasty maliciousness&lt;br /&gt;
&lt;br /&gt;
Ok...so I'm sure I'm going to get lambasted for this post ... but it was worth it.  Fire away&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=116521"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=116521" 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/davenet/aggbug/116521.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dave Redding</dc:creator>
            <guid>http://geekswithblogs.net/davenet/archive/2007/11/01/116521.aspx</guid>
            <pubDate>Thu, 01 Nov 2007 18:47:53 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/davenet/comments/116521.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/davenet/archive/2007/11/01/116521.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/davenet/comments/commentRss/116521.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/davenet/services/trackbacks/116521.aspx</trackback:ping>
        </item>
        <item>
            <title>New Code to Live... BOO!</title>
            <link>http://geekswithblogs.net/davenet/archive/2007/10/31/116492.aspx</link>
            <description>   Buddy &lt;a href="http://jrwren.wrenfam.com/blog/"&gt;Jay Wren&lt;/a&gt; has an interview on &lt;a href="http://www.JoshHolmes.com"&gt;Josh Holmes&lt;/a&gt; Channel 9 show "&lt;a href="http://www.codetolive.net"&gt;Code to Live&lt;/a&gt;".  Jay is being interviewed about "BOO: &lt;a href="http://boo.codehaus.org/"&gt;The wrist friendly language for the CLI&lt;/a&gt;".  When you get a chance, check it out.  Josh also has a great challenge and that is ".&lt;a href="http://www.joshholmes.com/2007/10/31/CodeToLiveJayWrenOnTheBooProgrammingLanguage.aspx"&gt;..each of you to investigate a new language...&lt;/a&gt;" and I couldn't agree more.&lt;br /&gt;
&lt;br /&gt;
So, Get out there and CODE!&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=116492"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=116492" 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/davenet/aggbug/116492.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dave Redding</dc:creator>
            <guid>http://geekswithblogs.net/davenet/archive/2007/10/31/116492.aspx</guid>
            <pubDate>Wed, 31 Oct 2007 20:37:37 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/davenet/comments/116492.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/davenet/archive/2007/10/31/116492.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/davenet/comments/commentRss/116492.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/davenet/services/trackbacks/116492.aspx</trackback:ping>
        </item>
        <item>
            <title>One month to the day...</title>
            <link>http://geekswithblogs.net/davenet/archive/2007/02/26/107323.aspx</link>
            <description>&lt;p&gt;And I have'nt made a post?  In all honesty, the trip to Japan really knocked the wind out of me.  So now it's pressing deadlines and fenagling conference calls.  I'm also in the process of learning some Japanese.  Its an interesting language, and as a developer, I thik it is constructed in a logical way thats easy to break down.  Easier in some ways than English, and harder in others.&lt;/p&gt;
&lt;p&gt;I'm looking at doing another tech in 5 min soon, but i want to get your feeback first.  I'm kicking around these ideas for the next one, let me know which you guys would prefer.&lt;/p&gt;
&lt;p&gt;1.Reflection&lt;br /&gt;
2.Workflow Foundation (An Overview)&lt;br /&gt;
3.Multithreading&lt;br /&gt;
4.WPF (An Overview)&lt;/p&gt;
&lt;p&gt;&lt;img style="FLOAT: right" height="80" alt="" width="110" src="http://www.fm107.com/sports/Nextel%20Cup%20logo.jpg" /&gt; How many of your guys are all geared up for the Nextel Cup season?  Anyone watch the Daytona 500?  it was an AMAZING race, so expect my next tech in 5 min to relate ;)&lt;/p&gt;
&lt;p&gt;I've also got some great news about Day of Dot Net.  We've got the gears turning on the conference and it'll be comming very soon.  We are getting some great speakers lined up, including several Ineta guys, some excellent local talent and perhaps a special guest speaker or two.  In addition, we will be giving away tons of swag.  Recently i just read that last year we gave away around $40,000 worth of the stuff and this year were looking to top that!&lt;/p&gt;
&lt;p&gt;So there you have it.  Alot of fantastic stuff comming up in the near future, and an excellent way to kick off spring.  &lt;/p&gt;
&lt;p&gt;Don't forget to drop a comment to let me know what you'd like to see in the next Tech in 5 min.&lt;/p&gt;
&lt;p&gt;Dave.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=107323"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=107323" 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/davenet/aggbug/107323.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dave Redding</dc:creator>
            <guid>http://geekswithblogs.net/davenet/archive/2007/02/26/107323.aspx</guid>
            <pubDate>Mon, 26 Feb 2007 15:33:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/davenet/comments/107323.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/davenet/archive/2007/02/26/107323.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/davenet/comments/commentRss/107323.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/davenet/services/trackbacks/107323.aspx</trackback:ping>
        </item>
    </channel>
</rss>