CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Grant Killian's Blog

No, this has nothing to do with beer -- but maybe it should?

September 2004 - Posts

  • Blood from the bleeding edge

    I've spent a lot of time lately around I95 and I93, running around the Atlantic coast; I haven't stayed as up to date on the software development world as I would like, but I feel obligated to mention that I saw where Longhorn will lose WinFS and Avalon is getting the boot too. 

    I know some guys who have invested a lot of time messing around with Avalon, hoping to stay ahead of the next windows development trend (one even thinking of doing an Avalon book), but it looks like they've gotten too far ahead with this Avalon thing.  Too bad for them (and probably for the rest of us, too!).  This is why they call it the bleeding edge!

    I guess that leaves Indigo and . . . well . . . Indigo for us to look forward to.  I understand 2006 is the target delivery date for the stripped down Longhorn, but I'm not nearly as excited about it as I was a few months back.  I guess expectations have come back down to earth; even Microsoft is subject to immutable laws like gravity and “quality, schedule, price; pick two”. 

  • Yes, I'll be at that Nerd dinner

    We've got a nerd dinner in Hampton Roads next week.  Darrell is so on the ball that we've even got a NerdDinner blog just for our area . . .

    It's a shame there's no place to get a beer inside the food court.  My “Nerds to buy a beer“ list may never get any shorter.

    We'll have the inevitable Dairy Queen vs Orange Julius and China Max vs. Little Tokyo debates, I'm sure. 

    Just to stir the pot, I'll probably wear my freshly acquired Sun Java “No I Can't Fix Your Computer” developer shirt -- a friend of mine handles some of the Sun Microsystems PR  -- on the storage side and not the Java side -- and he got a kick out of setting me up with the latest in Java developer fashion.  Java is nice and all, but I drank the .Net kool-aid years ago and haven't set a Java classpath or wrestled with an AWT layoutmanager in years.  This same friend's company also does some PR for Giant bikes, now there's something he should look into setting me up with!  Are you reading this Dan? 

  • Spam Calculator

    A Spam Calculator from CommTouch . . . interesting methodology, but you have to consider the source! 
  • Top-Notch WebChart Control

    I think I need to add Carlos Aguilar Mares to my list of computer-related “people I'd like to buy a beer.”  I'm evaluating some reporting/charting options and his .Net WebChart control may be just what I needed.  Yes, SQL Reporting Services is very nice, but it may be overkill for my particular task.  Plus, I'm not real happy with using IFrames or other page parsing methods to get the charts out of Reporting Services1.  I may be missing something (I'm far from a Reporting Services Expert), but CarlosAg's web control is light weight and ready to roll.  The sample code mostly works on the site, and he even includes a step by step tutorial for the less adventurous users, so it was easy to get up and running. 

    For the record, my computer-related “people I'd like to buy a beer“ list includes:

    1. Bob Reselman (of CodingSlave fame); when I caught up with him at TechEd he was abstaining for a variety of reasons.  He's still on the list.
    2. Anybody involved with WeProgram.Net; I think the one thing our user group misses is more social stuff -- including a beer or two.  We had a nerd dinner cooked up a long while back, but it fizzled.
    3. Brendan Tompkins (since he has yet to attend a WeProgram.Net event, he doesn't fall under item 2).  We haven't caught up since June.
    4. John Robbins from Wintellect -- as Darrell is fond of pointing out my non-sexual nerd crush on Johnnie R, and no list such as this is complete without it.

    1 To clinch my decision, the customer isn't 100% certain on Sql Server as the back-end so I can't bet the farm on having a SQL Server available to report with.

  • Don't hate the player, hate the game

    Peter takes issue with FireFox, but I have to defend it.  I think a little modification to the ClientTarget on the page would remedy this particular situation (although it might not -- I need to test it). 

    More generally, FireFox is compliant to a fault while IE lets developers get away with non-standards based HTML.  This was par for the course back in 1999, but is it still acceptable in 2004?  We should be beyond the browser-detection nonsense of the 90s, but we're only part way there.

    I feel Peter's pain, though, as I notice many websites render oddly in FireFox -- although none that my organization works with as we've started designing to the same standards as FireFox (and occassionally having to bend over backwards for IE compatibility).  Personally, I don't mind finding these “FireFox Failures” -- it tells me a little about the owners of the site and their sophistication and/or attention to detail.  Of course, I do end up using IE in some cases to get at the internet content (Microsoft sites in particular).

    At least with .Net the whole browser detection thing has gotten better, even if IE really hasn't.

  • A good N-Ight of WeProgram.Netting (NUnit, NCover, NAnt)

    Paul Laudeman and Darrell Norton did a fine job on their hands-on WeProgram.Net presentation last evening.  They covered some of the “N” family of tools like:

    • NUnit
      • Darrel did this, of course, as he's the 4th resource (out of 6, I think) listed on the NUnit.org website (http://www.nunit.org/resources.html).  He's really earned a reputation as an NUnit authority, so we were fortunate to have him!
    • NCover
      • Darrel did this one too; I messed around with NCover a while back, but I think it was the sourceforge NCover.  The GotDotNet Workspaces NCover tool is preferred, they tell me, so I think I'll revisit the code coverage tool with this NCover instance.  I think NCover is a great tool and will impress the pants off the customer when we deliver the coverage analysis along with our bill!  Seriously, it's analysis like that can be a sign of professionalism and real craftsmanship.
        • On a side note, I don't think the presentation mentioned NCoverViewer that, as advertised, ties into Visual Studio .Net.
    • NAnt
      • Paul handled this area as he's the NAnt expert on his project team.  We had minor trouble with the version of NAnt (we installed a newer release than Paul was expecting), but everyone got the gist of it. 

    In a 1-2 hour presentation, it's tough to do everything justice but I think they did great.  They left us wanting more (like NDoc, NMock, the list goes on . . .).  These hands-on sessions are very popular and everyone seems to get a lot out of them . . . it takes more effort from the presenter(s), but the audience appreciates it.  To sum up:

    PowerPoint = OK

    but

    PowerPoint + Samples + Hands_on_time = GREAT

    On a final note, I should point out that I paired up with local Bridge sensation Brian Lamprecht during the hands-on exercises and we played with FxCop during the NUnit material (we already have NUnit in the blood).  FxCop was on the agenda, but we didn't have time to cover it so maybe next time.  Anyway, FxCop could've done itself a favor by making extensibility a tad easier -- maybe with an FxCop project template included with the install or a more terse API.  You see, we were messing around with creating our own FxCop rules and realized it's a bit of a pain to implement the interfaces because of how many methods there are; the future of FxCop shows some promise in this regard, and there are some sample rules on line, but it's still more difficult than it needs to be.

    Anyway, thanks Paul and Darrel for a great session!

  • Set SQL Server Back 4 Years

    My company drafted me to participate in some Great Plains / SQL Server tuning training.  It's been mostly dreadful (taking one for the team), but the SQL Server stuff is sometimes interesting.

    For example, the material just reviewed how setting SQL Server's Min and Max memory equal to each other is not a good thing.  To quote the presentation, “If you set them equal, you've just set SQL Server back about 4 years -- practically into SQL Server 6.5 mode.” 

    While this wasn't news to me, I appreciated the comedic tone of the training -- learning through laughter can be a powerful device!

  • Beware The ColdFusion Strangler

    Martin Fowler coins the term StranglerApplication to describe one approach to rewriting an important application.  You slowly introduce rewritten code in with the existing code until one happy deployment months (or years!) later you realize: you're no longer using the old code.  The new code has strangled the old code like Australian strangler vines.  Some of the huge benefits include:

    • no long periods of “down time“ while an enormous migration takes place
    • gentle introduction of new/modified features so no mass user retraining is required
    • the developers can start simple and gradually, as their understanding of the application grows, take on tougher tasks

    I've found this metaphor very useful and we've successfully “strangled” and “are strangling” applications for . . . let me count . . . 3 major customers at the moment.  In our business we're often confronted with a customer who has invested a lot in a functioning program but needs it to do more.  Usually, that more can be accomplished easier with .Net, and we present a compelling case for it.

    One downside with this approach is your technical team may need to get down and dirty with the existing code base.  It's not glamourous, but weeding through the application code that you intend to strangle is a must if you're going to interoperate and really pull this off.  We've made use of guides such as these to help get up to speed on Cold Fusion and PHP:

    For the record, I'm not in favor of just rewriting an application so it's in a programming flavor (language) you prefer.  C'mon!  Slight modifications may not warrant a strangler approach.  Larger feature additions, however, and full rewrites are strong candidates especially when you can user Web Services, ADO.Net, and all that .Net has to offer. 

    I've been doing a lot of strangling lately on a ColdFusion application.  I had never done much with ColdFusion before this, so it's been eye opening.  I rolled my eyes when this first came across my desk: oh God, I thought to myself, this is going to suck.  It's turned out to be quite different.  I can see the appeal of CF: it's very simple and easy to learn.  I can also see where Microsoft and .Net might have borrowed from ColdFusion (with the ASP.Net template tag approach and databinding in general).  I still don't consider myself a ColdFusion expert by any stretch, but I am turning in to a pretty darn good ColdFusion strangler.

  • It's all MSIL in the end anyway

    Came across an oldie but goodie from Sam Gentile's blog: It's the Runtime Stupid.  It's a departure from the old days where VB folks didn't play nice with C++ folks, etc.  As Gentile writes:

    Now, here's the drill. Forget about learning C#. Forget about learning VB.NET. Learn about the CLR and the BCL FIRST. That's the real .NET. The languages are just syntactic sugar.

    I've been thinking about this again lately as I start to tackle a few projects with VB.Net folks.  I'm sure the code base will be in VB.Net and it just isn't that big a deal.  Newer .Net developers always seem to get hung up about VB.Net or C#.

    Taking things a step further, I'm on a project where the customer has requested VB.Net source code, but the app is built on top of our company's framework which is all C#.  Mind blowing?  Hardly.  It happens all the time.  We can just reference the framework assemblies written in C# from the VB.Net tier, and off we go.  If the customer has bought the whole framework source (not sure on this part), we can run the c# components through a conversion tool and we'll have VB.Net.

    It's all MSIL (Microsoft Intermediate Language) in the end anyway! 

More Posts