Archives / 2004 / January
  • Love and Admiration...

    …to the first person to tell me how to make Visual Studio run like it is really running on my supper-ultra-fast PC rather than my old 286 sitting in the garage. I swear, this thing takes longer to display that O/S2 took too boot.

  • .NET Rocks Live

    Rory Blyth is just too damn funny for a show that runs during working hours. It is a little hard to call anything “work related” when one spends the entire time bursting into laughter.

    And my thoughts on what Microsoft does with the hackers people turn in? They drag them into the basement of Building 6 (why 6? because why not 6…) and force them to listen to Steve Ballmer shout “Developers, Developers, Developers, Developers” for 48 hours (or until Mr. Ballmer collapses due to lack of oxygen).

    UPDATE: It just occurred to me that Seems that Steve Ballmer and Howard Dean must share the same speech writer.

  • Apple Product

    I have to agree with Peter Rysavy on the overall quality of Apple’s products. They make very nice equipment that just seems to work.

    I should disclose that my first home PC was an Apple (Apple ][ Forever) and my first real career in computers was as an Apple Macintosh technician. So I obviously hold a bias towards them (and an unnatural distain for John Sculley, but that is another topic altogether).

    There are plenty of things I dislike about their products. But compared to what comes out of Hewlett Packard/Compaq/DEC/We-Buy-Everyone, Gateway, and Dell? Those bozos are enough to drive even Saint Peter to curse for a month.

    But alas, I’m far to infatuated with .NET to ever make the switch. C# is literally the most fun I’ve had in years. And a developer I really appreciate the effort Microsoft puts into support us. Apple can’t hold a candle to Microsoft in this regard.

    The real question is what to do if Microsoft decides to support .NET on the Macintosh platform. Dare I dream?

  • .NET Logging Framework

    A few days ago I made mention of a .NET Logging Framework I had been using (and still am, and still loving). 

    There was one small change that needed to be made to the source in order to compile it under .NET 1.1. There is a warning generated by LogSocketReader.cs about an obsolete TcpListener method call (@line 164).  I figured I’d just post the code fix here and save someone 10 minutes looking for the solution.

    The fix is to change the call to:

    System.Net.IPAddress ipAddress = System.Net.Dns.Resolve("localhost").AddressList[0];

    TcpListener = new TcpListener(ipAddress, Port);


  • Logging

    I was poking around for a logging framework today. I wanted something very easy to use. Anything too difficult and people would just revert to Debug.WriteLine and MessageBox debugging pretty quickly. The idea here is to make it so painless that using the logging framework would be every easier than the normal methods.

    I looked at log4net but my head began hurting within moments. It looked very flexible, but it was just too much work to implement and use. I’m not saying it was insurmountable, but it was more complex than I wanted.

    What I ended up using is the .NET Logging Framework from TheObjectGuy. It was very simple to setup, even easier to use. I don’t think it is quite as flexible as log4net, but it does everything I needed (and more). Within minutes I had it logging my application to the Event Log, Email, and outputting a .log file.

    The documentation on the other hand was a bit sparse. Nothing too bad, but it could/should be a lot better than it is. And there isn’t a single sample of how to use it (the only sample is a log reader, not something I really care about). It is simple enough however that these two issues don’t really impede very much.

  • Install on Demand

    Can we please put a stop to this Install on Demand madness? I know it is very cool that it will install some template only when I need it. I understand that this is very slick. I get it. But please stop it!


    Every time I start Visio 2003 it asks me for the CD-ROM. I have no idea why, but it wants it. The problem isn’t that I lack the CD, it is that I have too many of them (MSDN, Action Pack, Retail…). And not one of them has the damn file this thing wants. The best part is that if I click “Cancel” it loads Visio anyway. If this file is so damn important than how does it run at all? It acts like my 2 year old, passionately demanding something that it has absolutely no need for. And sometimes, also like my 2 year old, it needs to be told “no” (or in this case, “cancel”) multiple times before it gets the point.


    Hard drive space is cheep guys. This technology may be cool but you are 5 years late bringing it to the table. With the price of disk space these days, just let me install the whole damn thing and leave me be already!


    I need to find a wall to bang my head against…

  • Vault 2.0 Beta Released

    I tossed on my “Reckless Early Adopter” hat today and put up the beta release of Vault 2.0 into our live environment.

    The biggest change from my perspective is the much improved Diff/Merge utility. Within an hour we had a merge issue that under the old version would have produced immense headaches. It had really reached a point around here that the term “Needs Merge” would strike terror though our collective hearts. But with 2.0 we were able to merge the files together in seconds. It was so easy in fact that it almost felt like I was cheating.

    The other notable change is web based access to the repository. This isn’t much of an issue for us as we are still in development. But once we release we expect our top-tear support staff will really get a lot of use out of it. And it also gives non-developers access to design documents that we keep under source code control.

    Overall, I’m extremely pleased with the new version. If you don’t have source code control, or are looking to change SCC providers, then you really should check out Vault. The only negative thing I can say about SourceGear is they are destroying my perfectly good and strongly held cynical view of development tool companies.

    If you’re interested in trying out Vault 2.0, read this post on Vault’s support forum. One word of caution however; even though I have had no issues so far, it is still very much in beta. Use in production with extreme caution.

  • Patriots Sold Out

    -7 degrees Fahrenheit and the Patriots still sell out? Man, I live around crazy people up here!

    Oh course if anyone has a ticket to spare I'll be more than happy to be insane along with them.

  • Usability Professionals' Association

    If you are interested in usability then UPA is worth a look. It is full of valuable information on why usability matters in software design and how to improve it.

    The UPA supports those who promote and advance the development of usable products, reaching out to people who act as advocates for usability and the user experience. Members come from across the broad family of disciplines that create the user experience. We invite you to network in our community.
    [from UPA's web site]

    There is a lot of information there. I'm still going though it myself.

  • Usability FAQ

    There is a pretty well written FAQ on software usability and its benefits over at UserDesign. Oddly enough I find the site to be pretty difficult to navigate.

  • Uprooting Trees

    There was an interesting post to a thread over at Joel on Software today.

    Software must be one of the few endeavors where the art of creative destruction is neglected.

    Landscapers uproot dead trees; architects remove walls; civil engineers tear down old bridges.  Even acorns have to rot before they can germinate and grow into a trees.  But programmers are loathe to clean up after themselves.  They'll rarely remove an old, obsolete, or wrong feature because, Lord forbid, a customer may complain.  After all, it doesn't hurt to leave it in, does it?

    Well, no, it wreaks havoc on your UI.  New users will reject your clunky old app. "What's with all this cruft?  This app makes no sense!"

    Friday, January 09, 2004

    I think Alyosha is quite right. Too often we find features lingering in software (specifically commercial software and even more so in vertical software) that should be either rolled into other functions (i.e. feature consolidation) or removed entirely.   

    This is something we have struggled with ourselves for the last few years. And while I’m proud to say we have uprooted our share of trees, not all of them were good decisions. Determining how much use any one feature gets from end-users is very difficult and near impossible with widely distributed commercial applications. And lets just say I’ve had my fair share of rude awakenings when a version goes into beta.

  • Even slower coming out?

    Somewhere along the lines I damaged my Visual Studio install and tonight I decided to just uninstall and reinstall. I planned on a few hours as we all know what a bear it can to be installing this bugger.

    Well I didn’t think it was possible, but Visual Studio takes even longer to uninstall than install. Plan on seeing a log of postings tonight, I’m going to have some free time…. Ug.


  • Playoffs

    So we are looking at something around -5 with wind-chill for Sunday’s Patriots vs. Titans game. The real question isn’t who will win (Patriots naturally) but rather how many fans will stick around to see it happen. :) 

  • One More Wish-List Item

    As of today I need to add another item to my 2004 Technology Wish-List:

    To get the old RichTextBox back

    Anyone who has to work with the RichTextBox for more than hour will start to wonder how this control ever made it though a review. Aside from the rather laughable fact that it doesn’t inform the designer that the RTF property is bindable (only plain text is listed) there are a number of changes from the old ActiveX version that make it nearly impossible to use.

    For example, the following code will set the selected text to bold in the ActiveX version:


    Nice and simple isn’t it? Well, there is the C# equivalent:

    RichTextBox.SelectionFont = new Font(RichTextBox.SelectionFont, FontStyle.Bold);

    Did they really need to make it so much more difficult?

    And too add even more pain, the old method would simply bold the text and leave any other formatting alone (i.e. underline, italic, font face, etc). Not so any more. That C# code above will blow away anything previously set.

    So if someone could please find the big red undo button over there, I would appreciate it.

  • New Years Wish-List

    Happy New Year Everyone!  Ok, so I’m a bit late… shoot me<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p>

    While everyone is still trying to keep up with their New Year resolutions I decided to forgo the entire process this year and instead focus on my technology wish list for 2004. I’ll accept that I’m as likely to see my wish-list come true as you are to stop eating the chocolate you resolved to give up. But as that didn’t stop you from making your resolutions, I’m not about to allow it to stop me from wishing away. :)

    ·         To have the C# team come to the realization that Edit & Continue is in fact not the devils playground. Maybe they don’t make typos but I sure do (some 10 in the post alone I bet). Having to restart the entire application to fix a single letter is a massive productivity killer. Edit & Continue, it is your friend.

    ·         For someone to finally unseal the ImageList component. Or at least implement the ImageList as an interface so we can develop our own. For those of us who build commercial apps with hundreds of windows this is a huge issue. Someone decides that the “New” icon should be changed and we spend the next week changing it in 99 places (yes, 99. Because we always forget to change one someplace).  Hell, think of the memory savings that could be had by only having a single global ImageList rather than 100 separate ones with 99% of the same images in them.

    ·         A real source code control system API. See that one that you have now? Give it too Frodo and send him to Mt. Doom right away. It is evil and needs to be destroyed. Source Code Control is the most overlooked aspect of software development and the poor API support provided by Visual Studio is doing nothing to help correct it.

    ·         Yukon by Q2

    ·         Someone to confirm that there will in fact be an MSDE version of Yukon. I always assumed so but someone pointed out that this has never been explicitly stated.

    ·         A [Replaced] attribute that goes one step beyond [Obsolete] in that it causes Visual Studio to automatically replace the old reference with the new reference. The best example is with property values persisted in the InitializeComponent method. When you
    ”Obsolete” a property Visual Studio doesn’t remove the old reference so you get a slew of compiler warnings that you must then delve into generated code to fix. This is even worse if you actually remove the property all together. It would be nice if the system could handle this automatically and use [Replaced(NewFunctionName)] to point to the new property.

    Any others I should add to my list?

  • Categories

    Sorry for the massive re-posting but I wanted to start using categories and it looks like the only way to do so it to repost everything.