Tuesday, April 17, 2007

This blog is on the Move!

My apologies to everyone for the black out period, but "I'M BACK!". And to make it even better, this blog is moving! I'll keep this older blog here for the archives, but the new site will be http://jmarkhowell.spaces.live.com

It's going to be even bigger and better than before. And for everyone who ribbed me about not having RSS on the site, well, now I do. I'm going to continue to cover .Net, programming, architecture, testing as well as all the other exciting developments coming out of Microsoft.

And for the dude who asked if I got the blue MS underwear, no but I did drink the koolaid! Hang on, it's going to be a wild ride!!!


Tuesday, October 17, 2006

Atomicity in Unit Tests

Unit tests can be a touchy subject for some developers.  For some, they dispise doing them at all, while others go completely overboard with them.  I'm in the middle.  I don't believe that they're a cure-all for bad code, but I do feel that whether you call them unit tests or test harnesses, you have to do them to provide a repeatable way to check the stability of your build.

One thing I do have a snit about is the atomicity of those unit tests.  Many developers build unit tests that build upon each other.  It reduces the development time for unit tests but it makes debugging and troubleshooting pure misery for anyone but the original developers.  Also, if you have 100 unit tests and they are all interdependent, then if test # 99 breaks, you still have to run the first 98 just to get to the point where you need to debug.  Again, I don't say that you can't build these types of tests.  For complex systems such as O&E, payroll, D&C type systems, you can't avoid it.  But most systems can have many small standalone unit tests and only 2 or 3 large complex tests like these.

So to make your live easier, try to make your tests as atomic as possible.  That is, make them stand alone and singularly repeatable.  You'll thank yourself later!

Monday, October 09, 2006

Is Google Java's dark horse?

 I was around when Java first came out and lived through the sometimes nightmarish stability problems in the early releases.  Java was out before .Net was even alphaware and it brought a great deal to the table.  But something went wrong or better yet, nothing went right.  Advances were slow, the VM was a hog and was slow and the UI was a hack.  We were all waiting thinking, "Wow, this will be great when they finish it!".  But that never happened.

Now, with C# we got everything we wanted and a fantastic IDE to boot.  Everyone I know has gotten out of the Java space and it feels like Java is going the way of Cobol (there but not talked about, just maintained).

Enter Google, stage left.  Google does quite a bit with the Java VM.  Google is enormous and is like an octopus with thousands of arms in every direction.  Could Google's shear weight be enough to keep Java alive?  Possibly.  But there are now new ferocious competitors (Ruby for one) that are viable alternatives with an army of avid (if not a bit misdirected) developers fighting for it.  I feel Google has the future of Java in it's hands.  It has used the Java VM without promoting it.  If it decides to change horses, Java would vanish into the mist with Cobol.  And where is Sun?  Sun still can't decide if it's a hardware or software company.

I'm not promoting Java, I'm diehard Microsoft.  But everyone needs competition.  And I'm a technologist first.  I hate to see good technical effort and ideas go to waste.

Tuesday, September 12, 2006

Off-line for a bit

As most of you have seen, I've been OOF from blogging lately.  The deal is that the transition from AL to WA and everything that it has entailed has been, shall we way, overwhelming.  I'll share some of the tribulations with you later (when it's all over), but for now, be patient.  We'll get back to the code.

As for a little catch up, you've seen that Vista is on the horizon, VS Orcas is in RC1 with support for wpf (xaml), wcf, and even includes a preview of Cider!  Time to go rock the coding world again!

OK, I might be the only one...

OK, I'll admit, I might be the only one to get excited over this, but:

Orcas for Vista RC1 Available

Wednesday, August 02, 2006

The death of the legend

Recently, Borland announced that it was getting out of the Software Development Tools market and was going to concentrate on Software Delivery Optimization (SDO) and Application Lifecycle Management (ALM). Last month, they ‘restructured to more closely align to this new corporate direction’. With all of my recent turmoil, it really didn’t sink in. We all new that Borland as a company has been almost dead for a decade but it still just kept going and kept its foot in the development community. Now, it’s completely out of the development pond.

I was around when Turbo C v1.0 was introduced. This move means more to us old timers than the current crop of developers because they don’t remember the pain of hours long compiles in MS C (yes there was a time when there was no ‘Visual’) and the completely useless compiler error messages (that took hours to resolve) and even when there wasn’t really a debugger (just something that thought it was). Then Borland steps in with a tool that compiled 150K lines per second and had a real-time interactive debugging tool! Oh, my! We were in heaven! At that time we didn’t realize that Borland was actually starting the explosion of growth and advancement in the development tools arena. MS had MSC and it had been pretty much static, then Borland Turbo C came along and MS ‘woke up’ and realized that software dev tools held a treasure of potential that was still unrealized. There were a few years of blindingly rapid releases that brought MSVC v6 into being. Borland had made some advancement with Turbo C ending with Turbo C++, but had somehow stalled. They bought a windowing library to allow for ‘true’ windows development, but they bought it incomplete and shipped it as complete. They were firing from the hip, living on the name Borland and spending lavishly without reinvesting into what the name Borland actually meant to developers. They ran in a dozen different directions: application server, word processors, networking, other languages, and so many others it’s hard to remember. They made decisions at the top to make sure that their menus and hot keys were ‘different from Microsoft’s’. They hired Hejlsberg and created Delphi that could have taken them back into the game, but key fumbles and a the unerring mindset of ‘being Borland is good enough’ stabbed Delphi in the stomach even as it launched. And all this time, MS was concentrating on tools, developers and marketing and was doing it very well. By getting caught off guard by Turbo C and getting burned (yes, burned) by it, they learned quickly and focused an unbelievable amount of money, time and mindshare on making sure it never happened again. MS was focused and determined. Anyone who knows MS at all knows that when MS sets their minds on it, it WILL happen.

With that in mind, now remember that MS hired Hejlsberg to create C#. They knew his talent and they knew the potential that Delphi had that was lost. Now we enjoy the outcome of this explosion and there are even more amazing things to come. But for now, we need to pay our respects to the final death of what was once a bright star in our development world.

Tuesday, August 01, 2006

In the midst of the chaos

Sorry to have the blog so quiet lately, but I've flown over 7,000 miles, moved over half a ton from attic, basement and shed and shredded an unimaginable amount paper over the past few weeks. I'm preparing for relocation. Strangely the movers would not go into the attic nor under the house to get anything, so I had to move everything into the garage that they couldn't or wouldn't go get.

Before we put our house on the market, it seemed like everyone wanted it. Now, strangely, it didn’t sell immediately. Fumbles by the realtor only add to my frustration in this key piece of the puzzle. If this piece was done, the rest would be much easier to deal with.

Now I’m back in Redmond, my two sons are wreaking havoc on my wife back in the home state and there are obstacles popping up at every turn. Things that should be simple and almost automatic are taking days to work out and are so overly complicated as to make your hair fall out.

Add to the pile of problems, the project I left to come here could not find some documentation that I had left for them so to help them I’m trying to recreate it from memory. Yet another frustration, but unbelievably, this work is giving me a little bit of an outlet.

The work and team here are good, but due to an upcoming deadline this week, I’m pretty much on my own until then. So I’m fumbling around like a totally green bean. This is not comforting and actually is totally frustrating. I’m used to hitting the ground running and jumping immediately into the fire. Still, this place is unbelievable and the opportunity that I’ve come into has all the potential you could want.

I do want to say that the Microsoft back office and support crew, the relocation crew, the car shipper crew and the temporary housing crew are the best I’ve ever dealt with. I’ve worked with many different companies in and around these areas and the team that Microsoft has put together really has it together. Out of half a dozen trips, car shipments, stays and everything else, there have been only a couple of hiccups that I can recall and they have worked very hard to work those out as well.

So, having little sleep, enough frustrations to last a year and painfully slow progress I can still say it is progress none the less. Be patient, we’ll get back to the wonderful world of software development soon.

Tuesday, July 18, 2006

Ready, Set, ... wait

I'm a blue badge! I'm official! This is a little overwhelming and I think I'm not quite sure what to think or how to feel. For the past two weeks I've been immersed in impatience waiting for when I could get started. For the past day and a half I’ve been doing orientation and then this afternoon configuring my workstation. I’m at the end of the day looking at my shiny new blue badge and I guess I should feel some relief, but I don’t. I’m still in a holding pattern. I’m still not doing what I do best. When I’m not slinging thousands of lines of code or refactoring hundreds of classes or architecting huge frameworks or solving the unbelievably complex problems, I feel like I’m holding my breath. I’m like a fighter pilot waiting for the next sortie. I’m like a NASCAR driver waiting for the next race. I usually vent this energy in after hours work or study but I’m completely focused on pouring all of my energies into this experience and this opportunity. So I wait. My new team mates are reassuring me that it will all come and I will get my chance to contribute. But they can’t see the pent up energy building just underneath. I’ve been given the opportunity of a lifetime and one that fits not only my talents but my beliefs and my goals and my drive. So I wait. Just a little longer…