March 2007 - Posts

Code Name: "Wee Leonard"

I had been looking forward to this Friday for a long time. It was the day I was going to get to take a look at our son - via ultrasound - who's due in August. And I got to see him!

I've been calling him "Wee" until we settle on a name. He looks a lot like his older sisters Emma and Penny, who also look a lot alike.

This isn't a great picture but it's the best one we got:

Click for larger view

"Hi there Wee! Dada can't wait to hold you!"

:{> Andy

Technorati Tags: About Andy Life Children Expecting Wee Leonard

It's called "Iterative" for a reason...

Iterative development has many strengths and a few weaknesses. But one thing is not in dispute: iterative means you make more than one pass through the code.

The major weakness of iterative development is its unpredictability. It's definitely time and material project work. This can be very frustrating to the folks trying to budget the project.

One strength of iterative development is the quality of the code and final product. Combined with test-driven development practices like Test-First Development, iterative development completes a project and leaves a suite of regression tests in place. This increases the development cycle for version 1.0, but pays for itself many times over with each subsequent iteration.

I was asked for an estimated delivery time once by a project manager. I'd been given time to do a thorough analysis (sometimes I miss those days) and had an answer: "6 months."

"Unacceptable, you have three months." the PM responded.

Undaunted I replied "Ok. You can have the application in six months, or you can have a three-month project - three months late."

They didn't like either option so they moved me off the project and hired new people. Last I heard, they're still working on it...

:{> Andy

Technorati Tags:

Cool Scripting Tutorials

is a cool site to learn scripting - from the Microsoft Scripting Guys!

Definitely worth a click for us old-timers too. I learned something, and I've been writing code since the days we had to carve our own chips out of wood.

:{> Andy

Technorati Tags:

When to Test

All software is tested. Some of it is tested before it's deployed, some immediately thereafter.

;)

It's always good to test before deployment. It's even better to test deployment itself.

I'm honored to be part of a really cool team of Test Engineers / Authors writing (Wrox). I'm not sure about similar books in the marketplace (one bad thing about writing is it consumes all my reading time!). This book is written for individuals and teams developing software using Visual Studio Team System. And it will help you understand when and why to test (before deploying, even!).

I know this is a great book - I've been reading the chapters as they're turned in! The other three authors are testing gurus. Not only are these guys very good Test Engineers, they're also cool people. It's been an honor to work with Tom, Dominic, and Mike.

This has been a fun writing project!

:{> Andy

Technorati Tags:

A Green Box

It's been way too long since I posted a blog post - my apologies! I've started a bunch of posts (mainly so I wouldn't forget the idea on the top of my noggin), but nothing complete enough to turn into the wild.

I've been swamped on a consulting gig. It's a good gig - just intense. Since I started doing lots of SSIS training for Solid Quality, I had this idea it would be good to do a few weeks of consulting every now and then - just to stay sharp.

After battling a particularly "interesting" requirement, I finally got this:

Most of you reading this are developers. You know why I'm posting - it's the 11th hour of a 12-hour day. And yesterday was a 12-hour day too. But tomorrow is a really long day, but it's travel-home day and Stevie Ray's P.E. and Show-and-Tell day. His teacher tells us that for the past six weeks, Stevie's Show-and-Tell item has been the same: "Dada's coming home tonight!" Heart-warming and -breaking, all at the same time.

So this is a celebration. Houston, we have a green box.

:{> Andy

How do you say "SSIS" in Mandarin?

This is cool - Professional SQL Server 2005 Integration Services has been translated into Mandarin!

:{> Andy

Technorati Tags: SSIS Integration Services Mandarin Chinese

Applying SQL Server Service Packs and HotFixes

Some notes about the SQL Server Service Pack Installation Engine. I like it - a lot. The new engine goes to great lengths to prevent my having to bounce a physical server to apply a service pack. No matter how you slice it, it takes less time to stop and restart a service than restart the server.

You will reach a point in the installation where the following dialog displays:

If I were to suggest one change for the SQL Server Service Pack installer, I would suggest disabling the Next button until the check is complete on this "Checking for locked files" screen. A lot of people have been conditioned by disabled buttons to click-if-it's-enabled. So they see the Next button available and just click through this step. The step allows you to do this and stops the check for locked files. However...

  • Some Service Pack (or hotfix) patches may not be applied as a result.
  • You may be required to reboot the server to complete the Service Pack (or hotfix) installation.

So for now, no blindly clicking the Next button!

When locked files are discovered the dialog displays something like the following:

My advice: Stop here, open Services and stop each of the identified services manually. After each has been stopped, click the Refesh button and you should see the next screenshot:

If you do not see this screenshot, you haven't stopped all the impacted services. Rinse and repeat until you get a "No locked files found" message. Then click the Next button.

As installation progresses you will see a screen similar to the following:

This screen shows you what's being updated and gives an indication of progress. Progress indications good.

When the Installation Progress indicates all is complete, click the Next button to proceed. A summary displays all SQL Server-related services and their Service Pack / HotFix disposition:

Be sure to restart the services you manually stopped before proceeding!

This explains why some service pack installations don't "take." If you believe you've installed an SSIS SP, for instance, but are still seeing that pesky issue that was supposedly resolved, this could be why.

:{> Andy

Technorati Tags: SQL Server 2005 Applying Hotfixes Applying Service Packs SP2

posted Friday, March 09, 2007 9:01 PM by andy with 0 Comments

SQL Server 2005 SP2

There was a bug in the initial release of SQL Server 2005 SP2. One of the fixes added the "Hours" unit of measure to the enumeration of Maintenance Plan scheduling intervals. Something happened when adding the new item. Since "days" was previously the lowest unit of measure and "hours" was now the lowest unit of measure, days were converted into hours (kind of like the "by the book" scene in Star Trek 2: The Wrath of Kahn).

This was bad because stuff scheduled to run every day before applying the service pack was now running every hour after application.

Microsoft fixed the bug and re-released SP2. There's been some discussion about the manner in which they went about it but I will not delve into that here. It's fixed - let's apply the fix and move forward.

You can see information about the bugs fixed by reading . If you downloaded and applied SP2 before 5 Mar 2007, you only need to apply the . Read for details.

SQL Server 2005 SP2 RTM took several components to version 9.00.3042.00. The Ciritcal Update takes them to 9.00.3050.00.

Thanks to fellow Solid Quality Mentor Ashton Hobbs for pointing this out.

:{> Andy

Technorati Tags: SQL Server 2005 SP2 Hours Days Maintenance Plans

posted Friday, March 09, 2007 8:20 PM by andy with 0 Comments

Philadelphia Airport Blog

Philadelphia Airport Blog - begins 12:50 AM 9 Mar 2007

So the past few weeks we've heard about Jet Blue alternating between stranding passengers in planes on the tarmac for 6 to 10 hours and cancelling flights at the last minute. I don't think I've ever taken Jet Blue so I wasn't too worried about their issues impacting my travels.

Monday morning, I flew out of Richmond to Boston for an on-going project - taking US Airways. Since the merger with America West, US Airways has been working to merge their IT systems. The merged result went live Sunday, and the results were immediately evident to me Monday morning.

As I am apt to do when working on a writing project, I got up at 3:00 AM and left Farmville around 3:30 thinking I could get to the airport a little early and write for an hour or so before the flight. Internet access at the Richmond International Airport is free (as in beer) - how cool is that? When I arrived around 4:45, however, there was a long line of people waiting for human interaction - and notes hastily taped to kiosks explaining they were broken.

Not a good sign.

I made my 7:00 AM flight with minutes to spare. Fast forward to Thursday afternoon.

My flight leaves Boston at 5:00 PM, a stop in Philly, and then off to Richmond and home. At least that was the original plan. A funny thing happened on the way home.

To remain as objective as possible, I will begin describing the events as they happened to the best of my recollection:

  • US Airways flight 1109 fom Boston to Philadelphia was delayed from 5:00 until around 7:20 PM.
  • Around 6:30 PM, we boarded the plane with plenty of time to fly to Philadelphia and make the 8:40 PM Richmond connector.
  • Around 6:45 PM, someone announced over the airplane sound system "If you are connecting to a flight in Philly, get off this airplane! We have a mechanical problem and this flight will not be leaving for a long, long time."
  • A lot of us deplane.
  • The gate agent motions for us to continue back to the US Airways Ticketing Counter to get new tickets.
  • A nice lady at the Ticketing Counter in Boston informs us that we need to move to the back of a line roughly (remember, no exaggerations) three hours long.
  • I laugh to myself and get in line to return to the damaged plane and take my chances.
  • Security stops me and immediately asks for the remainder of my ticket. They won't let me into the gate area with my remaining portion of a boarding pass.
  • I tell my story to a sympathetic TSA person. The security manager comes over and walks me to the counter, where a nice lady gives my a new boarding pass.
  • I go back through security and make it back to the gate just in time to watch the door close. I am unable to board the plane that was going to be under maintenance too long to make my connector.
  • The gate people will not open the door. I think this is a good thing for security, even though it is keeping me from my family.
  • I book the next flight to Philly, hoping it will take off on time and the Richmond connector will also be late.
  • The Boston - Philly flight leaves later, the Richmond flight is not late enough, and I miss the connector.
  • I get off the plane in Philly and go to the ticket counter here. They tell me I can stay in the airport tonight until a 7:40 AM flight tomorrow.
  • I ask for a hotel room. The lady behind the counter tells me I qualify for a Distress Rate ($69) at the Quality Inn in New Jersey.
  • I ask to speak to the manager. The manager appears and asks which flight I was on. Upon learning I came in from Boston he informs the ticket agent "Give him a room."
  • I receive a voucher for the Quality Inn in a bordering state and go wait for the shuttle. The shuttle never comes.
  • Fortunately.
  • I couldn't raise them on the phone until I let it ring (again not exaggerating) about five minutes.
  • When the lady answers, she tells me they're not accepting vouchers.
  • I return to the ticket counter in Philly and wait until I am tired of waiting.
  • No hotels are accepting vouchers.
  • I stay in the Philadelphia Airport tonight.

It is now 1:30 AM. My flight leaves at 7:40 AM.

And now for some subjective observations:

When I arrived at the ticket counter in Philly, there were two people out front and five people in line. I overheard a conversation between two agents - complaining about the people filing in. One of them was the person who tried to send me out of state to a Quality Inn for my hotel stay, while the couple one counter over was offered a voucher for a Ramada right up the road.

Being a data person, I notice patterns. As we passed through security this morning, everyone in the lines for those complaining agents was "randomly selected by their airline for a security screening." The lady at the front of the security line even commented "what's up with all the screenings?"

Now I am all for the Patriot Act and for empowering officials to do what is necessary to protect our nation and us individually from the threat of terror. Ask anyone who knows me, they'll vouch for this.

But this was clearly a case of two agents who were upset at having to work later than expected taking out their frustration on the public they are entrusted (and paid) to serve.

This was just wrong. It undermines the integrity of every effort to protect the nation. And it should be corrected immediately.

Can you guess which airline I will never fly again?

I have this theory: Perhaps this is a self-correcting problem. It should certainly take care of all those long lines at the US Airways ticket counter.

At least I made some cool young friends in line. We're camped out in front of security, waiting for our morning flights.

:{> Andy

Technorati Tags: US Airways delays new system merger spend the night at an airport near you!

posted Friday, March 09, 2007 8:24 AM by andy with 0 Comments

Code Camps

Roanoke Code Camp was a rousing success! Congratulations to Robin Edwards, Harold Buckner, and the entire Roanoke Valley User Groups organization!

Richmond Code Camp 3! April 28, 2007

You can .

Richmond Code Camp 3 will be held 28 Apr 2007 from 8:30 AM until 6:00 PM with Welcome Time starting at 8:00 AM. The location of RCC3 is ECPI-Innsbrook - the same location we used for RCC2.

The call for presentations is now closed and the Code Camp Steering Committee is in the process of finalizing the schedule. We have some awesome presenters and presentations to sort through, and really cool contributors for this event contributing some awesome stuff to give away! This is going to be a blast!

:{> Andy

Technorati Tags: Richmond Code Camp RCC3 MSDN Code Camp

Roanoke Code Camp - Time for me to present!

Well, I have to go prepare to present!

I may blog more later - if I don't, Robin Edwards and the Roanoke Code Camp team really did a great job!

:{> Andy

Technorati Tags:

Roanoke Code Camp - Rob Ericsson - SQL Server 2005 XML Datatype

Rob Ericsson is presenting on the xml Data Type in SQL Server 2005.

As I arrive, Rob is explaining xml data type conversions: you can convert from text to xml, but it's very difficult to convert back.

Rob dives into a comparison between SQL Server 2000 and SQL Server 2005 xml functionality. It's nice that SQL Server 2005 gives us the option of formatting the XML into elements - where we were limited in SQL Server 2000 to an attribute-based format. By adding ",xmlschema" to the query, we can generate a schema along with the data - how cool!

Rob is a great speaker!

:{> Andy

Technorati Tags: Roanoke Code Camp Rob Ericsson XML data type SQL Server

Roanoke Code Camp - Geoff Snowman - BizTalk

After a tasty lunch (thanks !) Geoff Snowman is presenting on BizTalk.

If you've never heard Geoff talk about his passion, you've missed out.

Geoff is walking through BizTalk Adapter for Host Apps - explaining how BizTalk communicates with CICS on an IBM mainframe.

His demo is building a BizTalk message using Visual Studio 2005. When BizTalk installs, VS project templates are added to the IDE. Geoff is demonstrating defining a Context Property for use in routing BizTalk messages. He accomplished this by promoting a property in an XSD - which was auto-generated by a BizTalk plug-in (which, Geoff explains, is not installed by default).

Good info! And, as always, another stellar Geoff Snowman presentation!

:{> Andy

Technorati Tags: Roanoke Code Camp Geoff Snowman BizTalk

Roanoke Code Camp - Chris Love - Search Engine in ASP.Net

Chris Love, a fellow mentor at Solid Quality Learning, is creating a search engine in ASP.Net.

I'm digging the way he's approaching the topic: He mixes "war stories" into his presentation, and the demo consists of Chris building, debugging, and optimizing the application!

Chris is great in front of an audience. He's very intelligent, but breaks things down very nicely. The crowd here today is really enjoying Chris' highly interactive delivery style.

Chris did a great job presenting to Richmond Code Camp 2 last October (three sessions!). Since he didn't volunteer to present at RCC3 maybe I can guilt him into presenting to the Richmond .Net Users Group...

:{> Andy

Technorati Tags: Roanoke Code Camp Chris Love Search Engine ASP.Net

Roanoke Code Camp - Tim Tatum - T-SQL

Tim Tatum of Core Consulting is presenting Transact-SQL.

I met Tim and his lovely wife Sharon at the Speaker Dinner last night - they're good people.

Tim's a former school teacher who went back to school to obtain and MBA with an IT focus. I've met a lot of top IT professionals who were once in other careers and later moved to IT. In my opinion, these folks bring a diversity to the field like nothing else.

I learned Tim lives just up the road, so I've already bugged him (last night) about speaking at the Richmond UG meetings.

Tim is speaking on the fundamentals of SQL Server development and design. This is so very important. Why? Whenever I go to a new client who is experiencing performance trouble, inevitably they have designed something in violation of some fundamental.

Tim is, probably because of his teaching background, an excellent speaker! He breaks things down very well and has a soothing delivery style.

Good job, Tim.

:{> Andy

Technorati Tags: Roanoke Code Camp Tim Tatum Core Consulting

Roanoke Code Camp I - Omri Bahat - Best SQL Server Practices

Dr. Omri Bahat, SQL Farms guru, is sharing some serious knowledge about the internal workings of SQL Server as I type - focusing on the differences between SQL Server 2000 and SQL Server 2005.

Omri is a perennial favorite at Richmond Code Camps, speaking at all our events to date. His commitment to the regional developer community is obvious - and appreciated by all developer community leaders I know - and I know a few ;).

Right now, he's focusing on the impact indices have on insert statements. Indices are always good, right? Well... good for Select statements. Omri is laying out the difference between Unique Indices and Unique Constraints - hey, I learned something, but I always learn things when Omri presents!. :)

Did you know the statblob column in sysindexes in SQL Server 2000 contains a histogram of the indices? Thanks Omri!

:{> Andy

Technorati Tags: Roanoke Code Camp Omri Bahat SQLFarms

posted Saturday, March 03, 2007 12:20 PM by andy with 0 Comments

Notes From Roanoke Code Camp I

Robin Edwards, president of the Roanoke Valley .Net Users Group and, according to the staff of volunteers here, the heart and soul of Roanoke Code Camp I, did a fantastic job on the morning keynote.

I am typing this from Ashton Hobbs' presentation on .Net 2.0 Tips and Tricks. Although Ashton is a fellow Solid Quality Learning mentor, this iiis the first time we've met. He's drilling into creating a custom control in C# using the .Net 2.0 framework. He's doing such a good job even I can follow along! :)

I am missing Omri Bahat's (SQL Farms guru) presentation on Best Practices with SQL Server, but I may mosey over in a few minutes to check that presentation out.

The team here has done a great job! It's been obvious since I hit the door - the planning and execution of this code camp is outstanding!

Great job, team! Great job, Robin!

:{> Andy

Technorati Tags: Roanoke Code Camp Robin Edwards Harold Buckner Roanoke Valley SQL Server .Net User Group

posted Saturday, March 03, 2007 11:55 AM by andy with 0 Comments

Roanoke Code Camp is Tomorrow!

I just got back from the Roanoke Code Camp Speakers Social - what a blast!

I met several of the speakers tonight and I am very impressed with the line-up!

If you haven't signed up yet there's still time! You can and show up tomorrow! It's going to be a beautiful day in the Star City tomorrow, and some serious knowledge will be shared by a stellar group of speakers!

I will be there, and hope to see you there as well!

:{> Andy

Technorati Tags: Roanoke Code Camp Developer Community Roanoke Valley SQL Server User Group Roanoke Valley .Net User Group

posted Saturday, March 03, 2007 12:15 AM by andy with 0 Comments