<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>The Wayward WebLog : Humor</title><link>http://blogs.msdn.com/mattwar/archive/tags/Humor/default.aspx</link><description>Tags: Humor</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Primal Development Methodology</title><link>http://blogs.msdn.com/mattwar/archive/2007/10/17/primal-development-methodology.aspx</link><pubDate>Thu, 18 Oct 2007 02:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5501160</guid><dc:creator>mattwar</dc:creator><slash:comments>35</slash:comments><comments>http://blogs.msdn.com/mattwar/comments/5501160.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattwar/commentrss.aspx?PostID=5501160</wfw:commentRss><description>I am going to tell you something that will disturb you. You might laugh, but it will be a cold uncertain laugh that will haunt you as you read on, because somewhere deep down you'll know it to be true. You might brush it off, get on with your day, yet sometime later, a week or a year, it will seep back in and unsettle you to the core. From that moment on you will be changed. You will think different, act different and will fundamentally be different. So take a moment to prepare yourself now, breath deeply, clear your mind and open up to the possibility that building software is hard.
...(&lt;a href="http://blogs.msdn.com/mattwar/archive/2007/10/17/primal-development-methodology.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5501160" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattwar/archive/tags/Humor/default.aspx">Humor</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Lunacy/default.aspx">Lunacy</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Musings/default.aspx">Musings</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Ramblings/default.aspx">Ramblings</category></item><item><title>Agile at Microsoft</title><link>http://blogs.msdn.com/mattwar/archive/2007/06/04/agile-at-microsoft.aspx</link><pubDate>Mon, 04 Jun 2007 18:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3082338</guid><dc:creator>mattwar</dc:creator><slash:comments>8</slash:comments><comments>http://blogs.msdn.com/mattwar/comments/3082338.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattwar/commentrss.aspx?PostID=3082338</wfw:commentRss><description>I wasn’t always a proponent of Agile development practices. To tell you the truth, I didn’t even know what they were. Before I came to Microsoft I used to just do what I was told and simply worked the way everyone else worked....(&lt;a href="http://blogs.msdn.com/mattwar/archive/2007/06/04/agile-at-microsoft.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3082338" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattwar/archive/tags/Humor/default.aspx">Humor</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Life/default.aspx">Life</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Lunacy/default.aspx">Lunacy</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Fiction/default.aspx">Fiction</category></item><item><title>Code Hurts</title><link>http://blogs.msdn.com/mattwar/archive/2007/05/08/code-hurts.aspx</link><pubDate>Wed, 09 May 2007 01:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2488794</guid><dc:creator>mattwar</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/mattwar/comments/2488794.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattwar/commentrss.aspx?PostID=2488794</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;I use email a lot.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I seem to be sending questions or replies to my co-workers constantly throughout the day, so you’d think I’d be very good at it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Yet even with all my years of experience communicating through this high-tech medium I still find it difficult to get an idea across without inadvertently sending the wrong message.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You’ve seen it yourself, of course.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Probably more so on online forums or chats where it’s easy to be misunderstood; people flaming each other over imagined slights, reading innuendos and insults into even the most innocuous comments. I used to chalk it up to problems with the medium itself, plain text.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;After all, it doesn’t convey the subtleties of how we normally express ourselves, it lacks gestures and inflections and so forth.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Now I’m starting to see that answer as a bit too simplistic.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Because I know it’s not true.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Words alone can be as expressive as any other form of communication.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;How else can you explain the works of great authors?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Surely, you’ve been exposed to passages of prose that evoked deep emotion, or described so richly and accurately something that made you feel as if you’ve been there.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Surely, you’ve read something that for you just rang true, where the author got it just right; it made perfect sense. All that understood through just words. Well chosen words can evoke a range of responses from the reader; sadness, glee even anger. Sure, most of us are not great authors, but our words do leave lasting impressions. This might explain why so much that is read is reacted to with hostility, because we aren’t great authors and don’t do a good job of it. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;So if we are not great writers of words, why do we think we can be great writers of code? Programs are written in languages, as plain text. Why do they not suffer from the same malady as the rest of our daily writing? Elegant code often evokes a sense of rightness; it instills confidence in us that overall programs are correct.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Inelegant code does just the opposite; it deflates us with confusion and despair. Yet it’s likely that these emotions are unintended side effects of the writing.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;The code needed to be elegant because it was the right/best solution; or was inelegant because the problem was mired in complexity or was accumulated over time. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;It’s obvious that what we write and what we read have a real effect on us, as we are emotional beasts and are wired to respond. Code with unwieldy structure, unnecessary complexity or simply with poorly chosen names can have negative mental influences on the programmers that must read and interpret all the work that has come before.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Yet this is exactly the kind of source code found in large projects that have either accumulated over time or been designed by committee. This is the real cost of maintainability of source code, the undue consequence of shepherding large bodies of antiquated text.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It explains why morale suffers on legacy projects. Reading old code is just depressing.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;It also explains why the open source movement is so popular with the self-deprecating crowd.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Some people are just drawn to that stuff.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;Or is that just insulting?&amp;nbsp; I can never tell.&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2488794" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattwar/archive/tags/Humor/default.aspx">Humor</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Code/default.aspx">Code</category></item><item><title>Titans of Transparency</title><link>http://blogs.msdn.com/mattwar/archive/2007/04/02/titans-of-transparency.aspx</link><pubDate>Tue, 03 Apr 2007 07:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2015846</guid><dc:creator>mattwar</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mattwar/comments/2015846.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattwar/commentrss.aspx?PostID=2015846</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;There seems to be a lot of controversy over the degree or level of transparency shown by internet era corporations.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The discussion is over more than just the sound-bites of corporate big-wigs on top of the financial food-chain, it’s about the amount of communication in general from the troops at the bottom.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Since the technology today makes it possible, it’s just become expected that everyone open up and start chiming in to the meta-chant that is the modern day blogosphere. The media and its flock tend to ruminate about who posted what when and which audio interview offered the latest tidbit of nauseating insight to some favorite fan-boy product X.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Somewhere, out in the ether is a group think that judges just how transparent any given company is. Are the posts sincere or are they just market-speak? How many bloggers are there? Does the encompassing entity promote the speech or do they surreptitiously squelch it?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Are they really trying to be transparent or is it just some overtly ornate orchestration by which the public is periodically pushed into partaking from the pitcher of presweetened Popsicle punch?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Would I really have just written that if I were under the thumb of some conspiratorial conglomerate? Would I have written it if I were lucid at all? &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Of course not! &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;And now you have proof that not only is the Wayward the genuine article, the article is in fact genuine. For me Transparency is everything. If you need more proof just take a look at my post count. You can’t get more transparent than that. I’m so transparent, I’m nearly invisible.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;With Wayward, what you see is what you get.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Literally.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;I could go on, but you’re probably speechless already.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I know I am.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2015846" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattwar/archive/tags/Humor/default.aspx">Humor</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Lunacy/default.aspx">Lunacy</category></item><item><title>Earth Renamed 'Hades'</title><link>http://blogs.msdn.com/mattwar/archive/2006/09/14/754181.aspx</link><pubDate>Thu, 14 Sep 2006 18:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:754181</guid><dc:creator>mattwar</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mattwar/comments/754181.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattwar/commentrss.aspx?PostID=754181</wfw:commentRss><description>&lt;P&gt;Apparently Xena was not the only solar body renamed this week by the International Astronomical Union.&amp;nbsp; In an attempt to align all planet and dwarf planet names along the Greek pantheon theme, a group of rather overzealous and somewhat tipsy astronomers packed into the conference's overflow area within the hotel's cocktail lounge agreed unaminously last night that yet another solar body should be renamed, reclassified, and remarketted.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;You see, all those silly star-gazers&amp;nbsp;thousands of years ago, too busy to be distracted from watching the sky simply forgot about the one mass of rock beneath their feet.&lt;/P&gt;
&lt;P&gt;When asked how they came up with that particular name one recovering astronomer&amp;nbsp;said, "We were having a hell of a time.&amp;nbsp;&amp;nbsp;Do you always lean like that when you ...?"&lt;/P&gt;
&lt;P&gt;More on this after we wake someone else up.&lt;/P&gt;
&lt;P&gt;But I digress&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=754181" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattwar/archive/tags/Humor/default.aspx">Humor</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Lunacy/default.aspx">Lunacy</category></item><item><title>Wayward's Replacement</title><link>http://blogs.msdn.com/mattwar/archive/2006/07/14/666024.aspx</link><pubDate>Fri, 14 Jul 2006 22:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:666024</guid><dc:creator>mattwar</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mattwar/comments/666024.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattwar/commentrss.aspx?PostID=666024</wfw:commentRss><description>&lt;P&gt;I know I've not been attentive for a while.&amp;nbsp; However, is that any reason to try and steal my crown?&amp;nbsp; It looks like Charles Petzold is trying to be funnier than me.&lt;/P&gt;
&lt;P&gt;Check out his plan for a new book. He claims it's an '&lt;A href="http://www.charlespetzold.com/etc/CSAML.html"&gt;Evolutionary Leap&lt;/A&gt;'.&lt;/P&gt;
&lt;P&gt;I'll gladly give him the crown if he publishes it.&lt;/P&gt;
&lt;P&gt;However, it seems&amp;nbsp;the &lt;A href="http://www.intentsoft.com/"&gt;Intentional Software&lt;/A&gt; guys are taking&amp;nbsp;him seriously.&amp;nbsp; I wonder if there is something to it.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=666024" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattwar/archive/tags/Humor/default.aspx">Humor</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Code/default.aspx">Code</category></item><item><title>Beyond Dynamic Languages</title><link>http://blogs.msdn.com/mattwar/archive/2006/04/28/585910.aspx</link><pubDate>Fri, 28 Apr 2006 19:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:585910</guid><dc:creator>mattwar</dc:creator><slash:comments>27</slash:comments><comments>http://blogs.msdn.com/mattwar/comments/585910.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattwar/commentrss.aspx?PostID=585910</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Everywhere I turn, all I read about is dynamic languages. Apparently, there is a small yet growing contingent of programmers that think dynamic is the only way to go. These guys are frustrated with the shackles of static type systems that force them to write clean code. And apparently, there is also a small and growing contingent of media types that think “hey, there’s a buzzword I haven’t heard before, let’s use it until we wear it out.” And they have. Believe me, its paper thin and about to be ripped through like a rubber eraser pulling double duty.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;However, I’m not here to debate the virtues of dynamic languages. Some of these languages have really cool features, but that’s beside the point. It’s the dynamism that’s at issue and for some purposes dynamism is simply the better model. When you are dynamic you don’t have to know upfront the correctness of any particular thing. You just do what feels right and let the runtime figure out the rest.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;That’s why I’m here today advocating the next logical step. It’s not enough to simply have dynamic languages. Sure, they make some of your programming tasks a bit easier to perform, but how much time do you spend programming anyway? Most developers produce on average one line of quality code per week. It’s not that they are lazy; it’s just that the ‘coding time’ turns out to be a small fraction of the overall product cycle.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;So as you can see,&amp;nbsp;what we really need to do is to take the advancements that dynamism brings to programming languages and apply them to those other things that busy your day.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;STRONG&gt;Dynamic Meetings&lt;/STRONG&gt; – Don’t plan specific meetings with agendas.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Just show up in a meeting room at the same time everyday.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It doesn’t have to be the same room, just pick one at random. At five after the hour, go around the room and ask each person that happened to show up in the same room as you what they’d like to talk about, write it down on a whiteboard in some order and then have at it. It doesn’t matter if you don’t have enough context to have a meaningful discussion. No one is listening anyway. It’s a good meeting if someone spontaneously decided to bring donuts.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;STRONG&gt;Dynamic Design&lt;/STRONG&gt; – This works best as part of a dynamic meeting. Take notes, but not too many. You wouldn’t want to fence your ideas in too soon.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Doodling helps the creativity flow; be sure to use multiple colors. Don’t worry about getting agreement or buy-in from others, they aren’t paying attention anyway. They are working on their own ideas and drawing their own cartoon stick figures. When you think you’ve got a good concept, go away and write some code. Eventually, everyone will figure out something to do and will be busy writing code too. Don’t worry about integrating it all together. Its all just code, ones and zeros, adds, shifts and branches. The runtime knows what to do with it.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;STRONG&gt;Dynamic Testing&lt;/STRONG&gt; – Don’t make a plan. Don’t do code coverage, write unit tests or abide by any particular testing methodology. Let the runtime do it for you. Just load the program in ‘Test Mode’ and execute. The runtime will proceed to apply a series of random tire-kicking algorithms that will give the dynamic code a good workout.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Believe me; you couldn’t have planned it anyway. With dynamic code you’re never quite sure what it does until you run it.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;STRONG&gt;Dynamic Debugging&lt;/STRONG&gt; – Yes, even dynamic programs will have bugs, though you might not ever know for sure. If you think the code is acting flaky, you may want to do something to fix it. It will probably mean looking at the code or some facsimile of it in some tool that will help you understand it. The old-school way would have been to use a debugger, set some breakpoints and walk through it, observing the behavior, looking at variables, etc. But that would require too much static knowledge about the code, things like specific variables, types, and ‘lines’. Since we’ve done away with these antiquated notions we’ll need a new style debugger that will help us deduce the problem without actually using any particular facts, a precognition engine if you will that uses advanced artificial intelligence techniques to divine the future. It’s either that or printing out text.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;You see, if we take dynamism just one step further, we can vastly simplify the work we do now, by offsetting the part about doing a good job and getting it right until sometime later when hopefully we've moved on to another project.&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;But I digress&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Matt&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=585910" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattwar/archive/tags/Humor/default.aspx">Humor</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Language/default.aspx">Language</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Code/default.aspx">Code</category></item><item><title>Citizen Statistics</title><link>http://blogs.msdn.com/mattwar/archive/2006/01/31/521719.aspx</link><pubDate>Wed, 01 Feb 2006 10:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:521719</guid><dc:creator>mattwar</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mattwar/comments/521719.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattwar/commentrss.aspx?PostID=521719</wfw:commentRss><description>&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;I was on my way to post that my site had not actually been blocked by a foreign government, aside from all the rumors spread recently, that the truth was I had just been&amp;nbsp;incredibly negligent at forming any coherent thoughts or communicating in general beyond my regular guest appearances on several late night talk shows, when to what to my wondering eyes did appear, but a survey popup for MSN. &lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;What had I done to deserve this? Was it some crime in another life, a karmic imbalance on my metaphysical spreadsheet? The appearance had been dramatically tied to my subconscious desire to post. Was there actually a connection? Had the angst of a disillusioned technorati, spurned by my inattentiveness, an undercurrent of outrage simmering for the last few months as the euphoria of the Yoda post was left to wane, whither, and finally die, leaving only the deep unavoidable depression, a vacuous hole unable to be filled by the inadequacies of the surrogate posters, the trivial news bits, the mindless slash-dot like debates, could all of this negativity have possibly culminated into a single psychic backlash, a lightning arc of loathing striking out across the electric ether and manifesting itself upon the screen of this singular purveyor of punditry, alone, at his desk, at midnight, a gruesome request to please answer a few questions, fill in a few blanks like a good sample citizen of our target-market society?&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;I suppose I’ll never know. However, rest assured the message has been received, loud, clear and in stylized markup. For back to the grindstone I go, feverously cranking out follow on posts with clever and witty humor, enlisting all sorts of Star Wars euphemisms and characterizations in an attempt to bring peace to the cosmos of our disenfranchised, though somewhat wayward, community. &lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;And fear not from where I shall draw forth such an abundance&amp;nbsp;of interesting topics for my specialized editorials. With Ruby on Rails on the loose, finding something to take pot shots at has never been easier. &lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Still, though, with all the other options available to you the reader, and with a blogroll share dipping into the low zero-percentile, it has come to my attention that I need to offer a more targeted and customized service if I want to find a true niche and a loyal reader base. So if you could take a few moments to fill out the following questionnaire it would be much appreciated. Your answers will be tallied, tabulated, scored, scorched, indexed, cross-indexed, pivoted, hot-keyed and your phone numbers placed on my speed dial, all in conformance with our standard, substandard, privacy and security policies. &lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Your personal anonymous input is highly valued.&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;How do you feel about filling out questionnaires?&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;[ ] S’okay, S’alright.&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;[ ] Don’t bug me, I bite&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;[ ] I’ve got a loaded gun and know how to use it.&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;Which sort of sarcasm do you prefer?&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;[ ] Dark&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;[ ] Semisweet&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;[ ] Milk&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;[ ] Candy coated&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;How many readers made it this far?&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;[ ] All of them&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;[ ] None of them&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;[ ] Dang, it’s just me again, isn’t it?&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;Which sign off do you prefer?&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;[ ] But I digress&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=521719" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattwar/archive/tags/Humor/default.aspx">Humor</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/PDC/default.aspx">PDC</category></item><item><title>YODA the Programming Language</title><link>http://blogs.msdn.com/mattwar/archive/2005/10/09/yoda-the-programming-language.aspx</link><pubDate>Mon, 10 Oct 2005 08:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:479008</guid><dc:creator>mattwar</dc:creator><slash:comments>41</slash:comments><comments>http://blogs.msdn.com/mattwar/comments/479008.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattwar/commentrss.aspx?PostID=479008</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Now that LINQ is out the door, so to speak, I can start focusing my efforts on the next next technology here at Microsoft. Ever since I joined up with the C# team nearly two years ago I’ve been frustrated by my inability to wax poetic about all the goodness we were working on. I was sworn to secrecy. Mum was the word. Perhaps if you were paying attention to the work in C# 2.0 and C-Omega, you may have guessed what was to come. Looking back, it’s easy enough to recognize it in the design of Generics, Iterators and Anonymous methods. The existence of Nullables in there as well should have made it obvious. We were planning ahead for the big pay off, language integrated query.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;You may be amazed that so much planning goes on in the features that we roll out version to version. Sometimes big ideas and far-reaching visions take many releases to come to fruition. You cannot always do them in one release. Sometimes you have to take a risk and dole them out piece by piece. This may cause a bit of confusion at first, when no one can truly understand why a particular feature was included and not others, or why one design was chosen. Yet once all the pieces are together you can finally make sense of it all, and then as if by magic it all just seems right.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Of course, this time is no different than the last. We planned ahead and baked in features into C# 3.0 that will lay the foundation for the next big thing. LINQ is only the start of the revolution. Yet, unlike last time, the features we added now make it rather obvious what is&amp;nbsp;coming next. If you connect the dots in your mind and extrapolate just a bit you’ll see what I’m getting at. You’ll begin to notice that’s its not just about query in the language, or first order functions or everything else that seems to be borrowed from languages of yore.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;No, these pieces are just stepping stones for what is yet to come, something truly original; a next generation programming language.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;The evidence is there right now, plain to see. The query expression exhibits it quite clearly. Yet, that’s just for starters. Eventually, the same degree of innovation will influence the rest of the language, and then you’ll have something quite different, a language the likes of which you have not seen before, one that is simple and elegant, yet secretly powerful: a YODA-like programming language.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;You see, putting the ‘from’ ahead of the ‘select’ was not by accident. Soon the whole language will be re-arranged in an effort to make expressing intent easier and more logical.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Instead of the cryptic c-like syntax below:&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 4pt; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 1pt; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 1pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:place&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;Main&lt;/SPAN&gt;&lt;/st1:place&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;(&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;[] args) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 3.5in"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: teal"&gt;Console&lt;/SPAN&gt;.WriteLine(“Hello World”);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;We will now have eloquent YODA-like syntax:&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 4pt; BACKGROUND: #e0e0e0; PADDING-BOTTOM: 1pt; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 1pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; BACKGROUND: #e0e0e0; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; BACKGROUND: #e0e0e0; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;(args of &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; many are they) &lt;/SPAN&gt;&lt;st1:place&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;Main&lt;/SPAN&gt;&lt;/st1:place&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt; is what they seek yet &lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; they do not. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; BACKGROUND: #e0e0e0; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; BACKGROUND: #e0e0e0; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;Brace&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt; you must &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; BACKGROUND: #e0e0e0; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Written it is, the &lt;SPAN style="COLOR: teal"&gt;Console&lt;/SPAN&gt;. “Hello World”&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; BACKGROUND: #e0e0e0; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;I know it’s difficult to believe, as strange as it seems. Yet, sometime in the future, everyone will be writing software this way. Knowing this, it makes my work so much more invigorating. I can literally feel the electricity in the air around here. It’s like some queer energetic force. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;But I digress&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Matt&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=479008" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattwar/archive/tags/Humor/default.aspx">Humor</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Language/default.aspx">Language</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/PDC/default.aspx">PDC</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/LINQ/default.aspx">LINQ</category></item><item><title>What the World is saying about LINQ</title><link>http://blogs.msdn.com/mattwar/archive/2005/09/21/what-the-world-is-saying-about-linq.aspx</link><pubDate>Thu, 22 Sep 2005 04:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:472590</guid><dc:creator>mattwar</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/mattwar/comments/472590.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattwar/commentrss.aspx?PostID=472590</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;“LINQ is totally awesome. It’s like this thing that you use to condense your entire application into one line of demo code. Sweet!” - &lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:City w:st="on"&gt;&lt;st1:place w:st="on"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;Stanley&lt;/I&gt;&lt;/st1:place&gt;&lt;/st1:City&gt;&lt;I style="mso-bidi-font-style: normal"&gt; Morgan&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;“LINQ is divine but DLINQ is a delinquent. It gives programmers too much power and makes programming against data way too easy. Is nothing sacred anymore?” – &lt;I style="mso-bidi-font-style: normal"&gt;Ned Flanders&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;“Lambdas are old school. LISP had these decades ago. If all you want to do is be a sheep then go right ahead. I prefer ACME.” – &lt;I style="mso-bidi-font-style: normal"&gt;Wyle E Coyote&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;“I can’t remember what they are called, but those things you make to build up a result out of a bunch of braces and stuff are really cool.” - &lt;I style="mso-bidi-font-style: normal"&gt;Anonymous&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;“LINQ will change the way we think about thinking about programs without requiring us to actually think about them.” – &lt;I style="mso-bidi-font-style: normal"&gt;National Research Council&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;“LINQ puts the 3GL back in the 4GLs, together making a 7GL!” – &lt;I style="mso-bidi-font-style: normal"&gt;Guy Steele&lt;o:p&gt;&lt;/o:p&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;“LINQ is the next best thing since sliced bread. Before LINQ we had to cut those database loaves up ourselves. It was a mess. Now programming against data is as easy as simply selecting the slices we want. Anyone seen that plastic doodad that holds the bag closed?” – &lt;I style="mso-bidi-font-style: normal"&gt;Heimlich&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;“LINQ is the best party game I’ve played in a long time.”&lt;EM&gt; – Jeff Bezos&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/EM&gt;&lt;A href="http://www.amazon.com/exec/obidos/tg/detail/-/B0002TGC38/ref=pd_cps_t_1/102-2997619-1491357?v=glance&amp;amp;s=toys" mce_href="http://www.amazon.com/exec/obidos/tg/detail/-/B0002TGC38/ref=pd_cps_t_1/102-2997619-1491357?v=glance&amp;amp;s=toys"&gt;&lt;EM&gt;&lt;IMG src="http://images.amazon.com/images/P/B0002TGC38.01._SCMZZZZZZZ_.jpg" width=32 mce_src="http://images.amazon.com/images/P/B0002TGC38.01._SCMZZZZZZZ_.jpg"&gt;&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;EM&gt;&lt;/EM&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=472590" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattwar/archive/tags/Humor/default.aspx">Humor</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Object+Relational/default.aspx">Object Relational</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Language/default.aspx">Language</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Code/default.aspx">Code</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Data/default.aspx">Data</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/PDC/default.aspx">PDC</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/LINQ/default.aspx">LINQ</category></item><item><title>XML Generics</title><link>http://blogs.msdn.com/mattwar/archive/2005/07/24/xml-generics.aspx</link><pubDate>Sun, 24 Jul 2005 11:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:442611</guid><dc:creator>mattwar</dc:creator><slash:comments>15</slash:comments><comments>http://blogs.msdn.com/mattwar/comments/442611.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattwar/commentrss.aspx?PostID=442611</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;Designing a programming language is like inventing a metaphor for thought.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Most of the time you struggle to find just the right metaphor, hoping the one you eventually choose will be the best at communicating the idea it is meant to represent.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;So you can imagine the process of language design leaves a lot of dead ideas on the floor as it refines itself toward the ultimate goal of intuitive expression.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This can happen for many reasons, but often it turns out to be just that some representations are better than others due to the way they evoke immediate recognition, understanding and emotional attachment.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Often the best representations have nothing to do with logic or consistency.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Sometimes they are just better. 
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;That's why we got so much immediate flak internally when we first introduced XML Generics. It was hard to understand the logic in them, but the emotional draw was undeniable.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;They just seemed to be the right thing.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It's not that we did not care to hear the feedback from others, it was just that we knew going in that those closest to us were too tainted/attached to the current design.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Developers and most other logically minded folk have a difficult time detaching from what they know, stepping back and taking in the bigger picture.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;And believe me the design for XML generics was going to be a big change, one that would be very difficult to understand without a deep appreciation for where we were going with the language.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Likewise, it was anticipated that many in the blogging community would have a similar reaction, so we decided early on that we would need to reach out to the community directly, explain our approach, and gather what feedback we could before launching into a full scale marketing push on the unification of XML and Generics.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Some of the more touchy-feely readers out there might start to see it already.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The intuitive leap needed to bridge the two ideas together is one that must be made emotionally not logically.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;On the surface, the two might seem to have nothing to do with each other, but if you dig deeper you soon realize that the two are fundamentally linked,&amp;nbsp;both concepts actually compliments of one another.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;To bring the rest of you up to speed, let’s first take a look at &lt;EM&gt;generics&lt;/EM&gt;, a new feature in C# 2.0 that allows you to define parameterized types. A &lt;EM&gt;generic&lt;/EM&gt; type is defined using the syntax below.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The name ‘T’ refers to the type that parameterizes Foo.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Generic types can have one or more parameters that are substituted on use with actual types.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Courier New"&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;public &lt;FONT style="BACKGROUND-COLOR: #0000ff"&gt;&lt;FONT style="BACKGROUND-COLOR: #ffffff"&gt;class&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT style="BACKGROUND-COLOR: #ffffff"&gt; &lt;/FONT&gt;Foo&amp;lt;T&amp;gt; { … }&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;When you refer to a &lt;EM&gt;generic&lt;/EM&gt; type, you do so in a similar way, replacing the parameter with the type you would like to use instead, such as in the variable declaration below.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Courier New"&gt;Foo&amp;lt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;int&lt;/FONT&gt;&lt;/STRONG&gt;&amp;gt; x;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;As anyone can clearly see &lt;EM&gt;generic&lt;/EM&gt; types have a striking resemblance to XML.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Both represent parameterized data.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Both are descriptive and declarative.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Courier New"&gt;&amp;lt;Foo x=”…” /&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;We realized intuitively that a greater generalization could exist that tied the two together.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Since this is a quality we strive for when&amp;nbsp;designing the language we knew we were on to something if we just could find the right metaphor to bring the two together in the syntax.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;And that’s when it hit me.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The solution was right there, obvious all along.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;As it turns out, it was the reason that the whole thing was intuitive in the first place.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It was the brackets, the angle-brackets.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;They were the key. So you can understand how the syntax had to change, to evolve, to make the two into one.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Courier New"&gt;Foo&amp;lt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;int &lt;/FONT&gt;&lt;/STRONG&gt;x = “…” /&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;It was beautiful.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;That’s why I’m so annoyed that it got dropped for something better.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I mean really, do you think pure genius like this grows on trees?&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;But I digress&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Matt&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=1&gt;This post rated: &lt;STRONG&gt;AH&amp;nbsp;-&lt;/STRONG&gt; Attempt at Humor&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=442611" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattwar/archive/tags/Humor/default.aspx">Humor</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Language/default.aspx">Language</category></item><item><title>N-Tier development with C# 4.0</title><link>http://blogs.msdn.com/mattwar/archive/2005/07/18/440254.aspx</link><pubDate>Tue, 19 Jul 2005 06:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:440254</guid><dc:creator>mattwar</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/mattwar/comments/440254.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattwar/commentrss.aspx?PostID=440254</wfw:commentRss><description>&lt;P&gt;Now that the PDC announcement has been made revealing&amp;nbsp;sessions covering the new C# 3.0 features causing speculation to run rampant, I figured it was time to go ahead and start outlining features of the next product.&amp;nbsp; No reason to be stay focused on the past.&amp;nbsp; It's time to move on and discover what lies ahead.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Too soon, you say?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Are you kidding?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Of course not.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Look, the design staff here has to keep planning far in advance of the development juggernaut.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If we were not constantly leaping ahead into product plans n-versions out, the developers might start to think that the ship was drifting off course and that everyone was asleep at the helm. If that ever happened, the negative impact to employee morale would be devastating, sending productivity into the toilet, initiating a downward spiral of fear, uncertainty and drunken binge programming that we might never recover from.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Sure, we’ve squeaked by before without a clear progression of product visions, attempting to ship fledgling one-off’s anyway. You’ve seen the aftermath; tons of ill phrased dialogs, oodles of incoherent error messages, menu items haphazardly placed and the invention of the tool-bar. Fortunately, as a company, we eventually came to our senses. To rectify the problem we instituted a process whereby planning for the next version commenced while the current version was still in production.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Put into practice, this seemed to quell the fears emanating from the developers cubbies.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It kept them productive and happy; and the products tended to ship more or less on time.&lt;/P&gt;
&lt;P&gt;Yet even with that improvement, the company still had a long way to go to perfect the process.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You see, while the developers were now content to continue churning out bits, bugs and brochures by the bucket-loads, the designers were quick to point out that they too were consumed by a similar dread; no one was looking ahead to the next, next version.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Even as the current next version was successfully congealing in their minds, the lack of a plan for the follow on to the next version caused substantial despair.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Design meetings quickly turned into squabbling.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If a designer’s favorite feature was not on the table for the next release, then it obviously was never to going happen and we all might as well pack up and go home, or at least go into research. The inability to see beyond the next, next horizon was corrupting the very process by which the morale of the development teams hinged.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It did not take a genius to realize that implosion was imminent.&lt;/P&gt;
&lt;P&gt;Of course, that’s why we revised the process to include the n-tier development cycle.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It requires that design teams stay n-versions ahead of the actual product, usually by dividing up into multiple tiers of overlapping forward-thinking units. Of course, it would be silly to consider staffing up n-teams of thinkers constantly thinking beyond each other.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Any team left in the nth position would invariably begin to feel the angst of future uncertainty, the creeping anxiety of doom.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;So naturally, we would need to devise a structure that would avoid identifying any particular ‘n’.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In the end, we chose to form ourselves into a ring of buddy-teams&amp;nbsp;each dedicated to working one version beyond the buddy team to the left. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;I’m so giddy to be part of this process. I can hardly imagine working under the old regime.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;How does the rest of the industry manage to limp along without a clear roadmap ahead?&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;But I digress&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Matt&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=440254" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattwar/archive/tags/Humor/default.aspx">Humor</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Lunacy/default.aspx">Lunacy</category></item><item><title>No Cowboy Haiku For You</title><link>http://blogs.msdn.com/mattwar/archive/2005/04/21/410603.aspx</link><pubDate>Fri, 22 Apr 2005 03:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:410603</guid><dc:creator>mattwar</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/mattwar/comments/410603.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattwar/commentrss.aspx?PostID=410603</wfw:commentRss><description>&lt;P&gt;Everything always happens when I'm on vacation.&amp;nbsp; I can't take a&amp;nbsp;few weeks off to go snorkelling in&amp;nbsp;the tropics without whidbey beta 2&amp;nbsp;sneaking&amp;nbsp;out the door and into the eager hands of thousands of awaiting customers, end-users, pointy-haired managers&amp;nbsp;and a flock of P2P traders that have seemingly confused the download as a pirate&amp;nbsp;Doctor Who episode.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;And then there's all this pent up interest flooding out onto the&amp;nbsp;net; questions, answers, intellectual debate, goofy anecdotes and cowboy haiku all over this wee little product and a programming language that could.&amp;nbsp; Flooding everywhere, it seems, except here.&amp;nbsp; That's right.&amp;nbsp; The Wayward had been missing the boat.&amp;nbsp; While the rest of the world sailed away on the luxury liner of current events, the Wayward weblog has been completely mum.&lt;/P&gt;
&lt;P&gt;I could not believe it either.&amp;nbsp; So I looked into it.&lt;/P&gt;
&lt;P&gt;It took a while.&amp;nbsp; The switch over to the new hosting site had me confused for a bit.&amp;nbsp; What I found out scared me to the bone.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;All the&amp;nbsp;posts where gone.&amp;nbsp; Nothing was left except posts predating the Mouse competition.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;I was shocked.&lt;/P&gt;
&lt;P&gt;Needless to say I became panicked.&amp;nbsp; I sent emails out to everyone I could think of.&amp;nbsp; "Where did my posts go?"&amp;nbsp; Not many replied.&amp;nbsp;&amp;nbsp;Most denied the problem.&amp;nbsp; Some put the blame&amp;nbsp;on others.&amp;nbsp; One mistook me for a&amp;nbsp;Peruvian ballet dancer and&amp;nbsp;wanted my phone number.&amp;nbsp;&amp;nbsp; I was getting nowhere.&lt;/P&gt;
&lt;P&gt;So I hacked the system.&amp;nbsp; I developed a program that would allow me to send anonymous communications anywhere on the net by taking advantage of&amp;nbsp;the 'unused' bits of undersized packets.&amp;nbsp; This let me transmit commands, bouncing them off compromised gophers sites (there are still a few), and attack the very servers that host this blog.&amp;nbsp; I broke in using a technique not used since the 70's.&amp;nbsp; No one imagined it ever&amp;nbsp;would ever come back into fashion and so no one thought to protect against it; not unlike bell bottom pants.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;For days I searched the archives.&amp;nbsp; They had to be there somewhere.&amp;nbsp; They just couldn't vanish could they?&amp;nbsp; Then I had a flashback.&amp;nbsp; It was the 80's and I was into crazy hobbies like stop-motion clay animation.&amp;nbsp; I had spent two days working out a fan-film variation of Mr. Bill.&amp;nbsp; He was on Safari in the jungles of my backyard and unfortunetly got eaten by a giant yellow boa.&amp;nbsp; It was a masterpiece.&amp;nbsp; I imagined the accolades I would receive after sending it out to all the amateur film festivals.&amp;nbsp; But to my chagrin, after getting the developed&amp;nbsp;8mm reel back from the K-Mart photo desk,&amp;nbsp;I found&amp;nbsp;the segment&amp;nbsp;missing.&lt;/P&gt;
&lt;P&gt;Yes, there was the bit with dancing dinosaurs and the scene with the improvised mannequin falling off the roof, splattering all over the pavement.&amp;nbsp; But the segment inbetween, the entire Mr. Bill on Safari, was missing, apparrently clipped out as if&amp;nbsp;the minute and a half&amp;nbsp;never existed.&lt;/P&gt;
&lt;P&gt;I didn't even need to guess. I knew the truth.&amp;nbsp; Somewhere there was a K-Mart employee with a 8mm strip of my blood and sweat, showing it to all his friends, wooing women, receiving the awards and being invited to the whitehouse.&amp;nbsp; And somewhere out there is a blogger with my posts, somewhere.&lt;/P&gt;
&lt;P&gt;I eventually found an encrypted file with an incriminating title:&amp;nbsp; wayward_posts.xor.&amp;nbsp;&amp;nbsp;I&amp;nbsp;couldn't break the encryption.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Still I was left with some satisfaction.&amp;nbsp; I knew the truth.&amp;nbsp; The only thing left to do was to decide what to do next.&amp;nbsp; For a moment I toyed with the idea of rewriting the posts, each and every one of them.&amp;nbsp; Then reality flooded back.&amp;nbsp; No, not this time.&amp;nbsp; I was not going to relive the past.&amp;nbsp; The future,&amp;nbsp;I realized, was all that&amp;nbsp;really mattered.&amp;nbsp;&amp;nbsp;I decided that I would press on.&amp;nbsp; Invent new topics and post new posts.&amp;nbsp; I would be better than before.&amp;nbsp; More eloquent.&amp;nbsp; More incisive.&amp;nbsp; More legible.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;And there wouldn't be any cowboy haiku.&lt;/P&gt;
&lt;P&gt;But I digress&lt;/P&gt;
&lt;P&gt;Matt 'Wayward' Warren&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=410603" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattwar/archive/tags/Humor/default.aspx">Humor</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Lunacy/default.aspx">Lunacy</category></item><item><title>Windows: Reduced to Tears</title><link>http://blogs.msdn.com/mattwar/archive/2005/02/02/365929.aspx</link><pubDate>Thu, 03 Feb 2005 00:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:365929</guid><dc:creator>mattwar</dc:creator><slash:comments>23</slash:comments><comments>http://blogs.msdn.com/mattwar/comments/365929.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattwar/commentrss.aspx?PostID=365929</wfw:commentRss><description>&lt;p&gt;In the wake of the&amp;nbsp;EU rulings against Microsoft, in which&amp;nbsp;the company has been&amp;nbsp;ordered to remove&amp;nbsp;from the windows operating system superfluous&amp;nbsp;features that by their mere existence prohibit competitive products from flourishing,&amp;nbsp;I believe that it is now crucial that all employees of&amp;nbsp;the company&amp;nbsp;take the time and effort&amp;nbsp;to re-examine&amp;nbsp;our&amp;nbsp;current product offerings&amp;nbsp;and purge&amp;nbsp;them of any&amp;nbsp;and all&amp;nbsp;components that may be deemed&amp;nbsp;anti-competitive toward fledgling markets.&amp;nbsp; After all, who wants to be caught off guard like that again?&amp;nbsp; We're not out to be the bad-guys here.&amp;nbsp; We want to do the right thing.&amp;nbsp; Don't we?&lt;/p&gt; &lt;p&gt;Yet, there are still products and components out there today, packaged and bundled inside shrink-wrapped boxes,&amp;nbsp;that are&amp;nbsp;being forced upon the consumers without regard to their personal preferences, software packages&amp;nbsp;which by themselves are little more than variants on a particular theme, where by markets might one day exist for the potential alternatives, but are hamstrung now by our predatory behaviors.&lt;/p&gt; &lt;p&gt;Not so, you say?&amp;nbsp; Would not the courts and&amp;nbsp;judges, prosecutors and plaintiffs have already uncovered all the dirty little secrets of our untidy bundle of bits?&amp;nbsp; Of course not.&amp;nbsp; For they have missed the very one which I will reveal to you.&amp;nbsp; One that is so superfluous and yet so integral to our offerings that by merely mentioning it I am bound to raise the eyebrows and&amp;nbsp;hackles of many.&amp;nbsp; &lt;/p&gt; &lt;p&gt;The item of which I speak is a fundamental portion of many an operating system,&amp;nbsp;&amp;nbsp;It defines a platform for development of applications and once a variation has been adopted, it rarely is abandoned, resulting in consumer lock-in.&amp;nbsp; Of the variants, many of which are used interchangeably on systems such as Unix and Linux, only one is available with Windows, a propriety version that is incompatible with all others.&amp;nbsp; Its ubiquity due to bundling has cut off the air-supply of all potential challengers.&amp;nbsp; The variant products exist for Windows, but are rarely used.&amp;nbsp;&amp;nbsp;General consumers don't care.&amp;nbsp; They use whatever is most convenient, and tedious downloading and&amp;nbsp;extensive re-education is&amp;nbsp;simply beyond reason.&lt;/p&gt; &lt;p&gt;This is why Microsoft should offer a version of Windows free of&amp;nbsp;its anti-competitive&amp;nbsp;command line interpreter, or&amp;nbsp;'DOS box' if you will.&amp;nbsp; It's mere existence is anathema to a free market that would infuse widespread adoption of the&amp;nbsp;C and Bourne shell, not to mention Rexx and others. &lt;/p&gt; &lt;p&gt;And that's just the tip of the iceberg.&amp;nbsp; What's this notepad stuff, or WordPad for that matter?&amp;nbsp;&amp;nbsp;They are just the latest rendition of a market stifling practice that started long ago with EDLIN.&amp;nbsp; Has&amp;nbsp;their existence shut out a huge potential market for vi or emacs?&amp;nbsp; &lt;/p&gt; &lt;p&gt;I would have to say that they have.&lt;/p&gt; &lt;p&gt;But I digress. ;-)&lt;/p&gt; &lt;p&gt;Matt&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=365929" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattwar/archive/tags/Humor/default.aspx">Humor</category></item><item><title>Seeking Wayward</title><link>http://blogs.msdn.com/mattwar/archive/2005/01/31/364035.aspx</link><pubDate>Mon, 31 Jan 2005 21:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:364035</guid><dc:creator>mattwar</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/mattwar/comments/364035.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattwar/commentrss.aspx?PostID=364035</wfw:commentRss><description>&lt;p&gt;I thought I'd let you all know about the project I've been working on for the last few months that has unfortunately kept me away from what I like to do best.&amp;nbsp; It's the eve of the MSN Search engine release and soon all the world will know what I've been up to.&amp;nbsp; Yes, the engine has been improved, and all that, but there are a few features you most certainly have not read about.&amp;nbsp; There will be extensions, add ons to the main product that will allow you to refine your search beyond anything you've seen before.&amp;nbsp; And yes, as you might have guessed by now,&amp;nbsp;there will be a 'Wayward Search' feature.&amp;nbsp; &lt;/p&gt; &lt;p&gt;The Wayward Weblog is now part of the combined Microsoft Megabase of Knowledge (tm), and it is only searchable by MSN.&amp;nbsp; No other engine may feast upon its delicacies, bath in its brilliance or be lead astray by its&amp;nbsp;vacuous headlines.&lt;/p&gt; &lt;p&gt;In addition, the Wayward Search Engine (tm) will offer a new, innovative&amp;nbsp;way to find the information you're looking for.&amp;nbsp; Years of &lt;strike&gt;long lunches&lt;/strike&gt; analysis have uncovered a method by which even a novice can succeed at expert level queries.&amp;nbsp; The interface is so simple, even an Orangutan could use it.&amp;nbsp; In fact, one did just yesterday during the beta.&amp;nbsp; Instead of text boxes requiring you to type and spell out actual words and such, or even point-and-click links used to refine your area of interest, the Wayward Search Engine (tm) operates off a different principle.&lt;/p&gt; &lt;p&gt;You see, most questions that you'll ever ask have already been asked before,&amp;nbsp;by someone else.&amp;nbsp; In deed, any question of any merit has been asked before by someone more qualified to ask it than you.&amp;nbsp; So it should make you feel rather silly to be sitting at your machine tip-tapping into laughingly small input boxes.&amp;nbsp; In fact, you'd be better off not asking any of your own tedious questions, and be better served by educating yourself on the nature of questions asked by those who actually know what they are doing.&amp;nbsp;&amp;nbsp; &lt;/p&gt; &lt;p&gt;So instead of allowing you to waste your time and ours, we at Wayward have spent a few lucid moments compiling an exhaustive list of&amp;nbsp;the exact bits of information you ought to know.&amp;nbsp; No need to spend any time at all thinking of an intelligent question to ask.&amp;nbsp; We've already thought of it for you.&amp;nbsp; No need to type, point, click or scroll.&amp;nbsp; The answers are presented on the main page of the site, in small print just below the flashing ad for diet pills.&lt;/p&gt; &lt;p&gt;At Wayward, we know what's good for you!&lt;/p&gt; &lt;p&gt;Matt&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=364035" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattwar/archive/tags/Humor/default.aspx">Humor</category><category domain="http://blogs.msdn.com/mattwar/archive/tags/Lunacy/default.aspx">Lunacy</category></item></channel></rss>