January 2004 - Posts
I saw an essay on Rewrites Considered Harmful referenced recently on Slashdot. It reminded me of an article I read a long time ago from Joel Spolsky called Things You Should Never Do, Part I. Both have similar points and both cite the rewrite of Navigator/Mozilla as an example. (Note: I noticed in revisiting the Rewrites Considered Harmful article that he also has added a reference to Joel's original article). This is something I struggle with because 1) it can be so hard to read other people's code, and 2) I can always do it better ( :-) )
I have really noticed this urge to start over when dealing with NAnt scripts. Obviously I should start with a well constructed build script that is successfully building someone else's project right? Well maybe it is a flaw with the NAnt/XML format, but I find this virtually impossible. I've tried, but I end up stripping it down to an empty build script and building it up from scratch again. Is Fowler right, is XML a bad language for builds or am I just incompetent?
I plan on experimenting with NAnt's <include...> task to see if things can be encapsulated for re-use a little more. MSBuild's target files do a great job of this. Of course whenever you design things for reuse and flexibility you end up making them more complex and harder to use, causing the next person to want to start over again...sigh...will it ever end?
I'm new to Blogging, but am quickly getting hooked. I started with SharpReader, but recently tried intraVnews which is a free (for personal use) addin for viewing feeds right within Outlook (which I run all day anyway). I finally got it configured in a way I like...I set it to single folder mode and use Outlook's grouping to view them. Then I can have a shortcut to the blogging folder. I find it much easier to manage than the default separate folder mode. Of course your mileage may vary. I really like this aggregator though and highly recommend it.
I've always been intrigued by the Windows Media Center Edition, but never bought one because the computer is in the den and the TV is in the living room. Looks like the new extender will solve this dilemma. http://www.microsoft.com/windowsxp/mediacenter/evaluation/devices/extender.asp
I'm looking forward to these hitting the market. Anyone have any idea when they will show up and how much they'll cost?
OK, I live where it can get very cold in the winter, and I've always wondered something whenever I see an outdoor pop machine.
In the summer they obviously have refrigerators to keep the pop cold, but in the winter they must have heaters to keep the pop from freezing.
Does it seem strange to anyone else that in the winter you are getting pop that is warmed up above air temperature?
Anyone know the inner workings of pop machines well enough to know how this is actually done?
We had been looking for a new build tool to build our VS.NET products for a while now. I came from the J2EE world and was delighted to run across NAnt a year or so ago. Then I went to the PDC in Los Angeles and got a glimpse of MSBuild. MSBuild looks really nice. It's a no brainer that MSBuild will immediately become popular when Whidbey releases, so you know it has a bright future. If only MSBuild ran under .NET framework 1.1 we could start using it now instead of NAnt...hmmm...if only...
I did some experimentation with the Whidbey version we got at PDC and was thrilled when I got it to run under 1.1 by pulling out just the MSBuild related bits and target files and added a config file. It is important to point out that this is completely unsupported, and that it wasn't quite that easy, but with the help of Jamie Cansdale (of NUnitAddIn fame) who discovered a few more tricks we were able to actually get it to be fairly functional. There are some missing features in the PDC version, but it can compile a Hello World app beautifully.
Now before you go digging for your PDC DVD, there is something you should know. Starting with the upcoming Whidbey beta Microsoft has apparently changed the metadata format output by their compilers so .NET framework 2.0 (yes, it's now known as 2.0 instead of 1.2) compiled binaries are no longer able to be run under older frameworks. Bottom line is the MSBuild binaries distributed with Whidbey beta and forward will not be able to run under 1.1 any more. Since there are many features that weren't complete yet in the PDC version, this meant the end of the road for an early (albeit unsupported) adoption of MSBuild for us...hello again NAnt.
I'm not complaining, the new release of NAnt 0.84 looks really nice, and when coupled with NAntContrib it's a powerful build arsenal. There is amazing value in an active open source community like NAnt has. Also continuous integration tools like CruiseControl.NET and Draco.NET are built around NAnt.
I just wish Microsoft could continue to give us a 1.1 compatible version of MSBuild rather than tying it to 2.0. It would jump start their add-on task and tool community. Tools like CruiseControl.NET would undoubtedly provide a choice of MSBuild or NAnt.
It is likely to be a long time before Whidbey is actually adopted in our shop...and therefore it's going to be a long time before I get to actually use MSBuild again for real. So long friend, it was fun while it lasted <snif>.
Every blog has to start somewhere. Today is the first day of the rest of your blog.