Recently, I've been working on what is probably the "Ultimate" legacy/Brownfield application. It's a VERY important application for our business, or WAS, but the users are starting to find other ways to do their job. The problem is that the application in question is VERY hard to maintain, and management does not want to risk making any "non critical" changes. It's the classic "Big Ball of Mud" design.
Now no matter HOW many time's I've read Michael Feather's Working Effectively with Legacy Code, I can can never quite figure out how to make it work in this case. There are almost no seams to exploit. We have numerious routines that have a Maintenance Complexity in the 2000 to 3000 range. Of course these routines have no REASON to be that complex, it's just that previous programmers had a tendency to lump all sorts of things together that had nothing in common except that they needed to execute at the same time.
DRY? They never heard of it
The classes are just mirrors of database tables, and if a calculation needs to be done on a class or collection, the routine is usually inline in a form event, with "other" code mixed in.
I do find RefactorPro! to be a very useful tool, but even with automated tools, I have to take huge risks, just to get the code to the point I can start putting test harnesses on it.
Anyone else have to maintain a probram like this? The goal here is to get the application maintainable enough that I can start to add features to retain/regain our internal user base
Tuesday, April 22, 2008
Monday, April 21, 2008
Friday, April 18, 2008
Bummed
About 15 years ago, Mary and I went on vacation to New Mexico, and stayed at a place called Starhill Inn. It was the BEST vacation we ever went on. We always said that when the kids got old enough, we would go back. Last week, we decided "This summer is the time"
I just called them. They are closing June 30th. No more Starhill Inn. I'm seriously bummed. I was REALLY looking forward to it.
Oh well. Now comes the question. Do we want it to be a "Northeastern New Mexico" Vacation, or an "Astronomy" vacation? Any readers have any good ideas?
I just called them. They are closing June 30th. No more Starhill Inn. I'm seriously bummed. I was REALLY looking forward to it.
Oh well. Now comes the question. Do we want it to be a "Northeastern New Mexico" Vacation, or an "Astronomy" vacation? Any readers have any good ideas?
Wednesday, April 16, 2008
Vista SP1 out..
I see that Vista SP1 is offically out. I guess all those folks who said "I'll wait until SP1 to try it" can now go out and well, Try it.
Want MY Honest opinion of Vista? By now, you've probably seen my posts. I LIKE Vista, BUT you have to do things "The Vista Way". If you try and do things the "XP Way" you will often end up in a "Boy is Vista Annoying" mode.
BTW It turns out Vista was designed to be annoying to try and force small software vendors to change their software to work with Vista. That backfired on Microsoft, and folks complain about Vista instead of the small programs. I think this is because > 50% of the small vendor programs become 'naggy', and people blame Vista instead of the program running under Vista - fair enough. I won't go into the reason WHY Microsoft wants these changes (see previous posts), but...
Want MY Honest opinion of Vista? By now, you've probably seen my posts. I LIKE Vista, BUT you have to do things "The Vista Way". If you try and do things the "XP Way" you will often end up in a "Boy is Vista Annoying" mode.
BTW It turns out Vista was designed to be annoying to try and force small software vendors to change their software to work with Vista. That backfired on Microsoft, and folks complain about Vista instead of the small programs. I think this is because > 50% of the small vendor programs become 'naggy', and people blame Vista instead of the program running under Vista - fair enough. I won't go into the reason WHY Microsoft wants these changes (see previous posts), but...
Tuesday, April 15, 2008
A Basic Class Design Lesson
Hi Gang,
I'm going through some OLD code today, probably written before classes, but looking at it, I realized it might be a good class design lesson for those not used to writing classes.
The code was in a form, and was actually used multiple times - which by itself says the code should be in a function - code has been changed slightly to obscure the exact nature for my blog, and is in Visual Basic 6.0, but the lesson works for any Object based language
OK (again, VB6 syntax) you could say:
and put that in the form
Which would make the call in the form
- it's ok, and a heck of a LOT better than it was (remember, it's used multiple places - the Don't Repeat Yourself (DRY) concept comes in here)
BUT - that's NOT where the function should really be. What we do is add a Property to the class
Now, this reduces the code in the form to:
Isn't that better? The class is taking care of itself. Ahhhh
I'm going through some OLD code today, probably written before classes, but looking at it, I realized it might be a good class design lesson for those not used to writing classes.
The code was in a form, and was actually used multiple times - which by itself says the code should be in a function - code has been changed slightly to obscure the exact nature for my blog, and is in Visual Basic 6.0, but the lesson works for any Object based language
If Left(instanceOfClass.pollclose, 2) > 12 Then
objGrid.Text = (CInt(Left(instanceOfClass.closingTime, 2)) - 12) & ":" & Right(instanceOfClass.closingTime, 2)
Else
objGrid.Text = Left(instanceOfClass.closingTime, 2) & ":" & Right(instanceOfClass.closingTime, 2)
End If
OK (again, VB6 syntax) you could say:
Private Function formatClosingTime(byval theTime as string) as string
If Left(theTime, 2) > 12 Then
formatClosingTime = (CInt(Left(theTime, 2)) - 12) & ":" & Right(theTime, 2)
Else
formatClosingTime = Left(theTime, 2) & ":" & Right(theTime, 2)
End If
end Function
and put that in the form
Which would make the call in the form
objGrid.Text = formatClosingTime(instanceOfClass.closingTime)
- it's ok, and a heck of a LOT better than it was (remember, it's used multiple places - the Don't Repeat Yourself (DRY) concept comes in here)
BUT - that's NOT where the function should really be. What we do is add a Property to the class
Public Function formattedClosingTime() as string
If Left(me.closingTime, 2) > 12 Then
formattedClosingTime = (CInt(Left(me.closingTime, 2)) - 12) & ":" & Right(me.closingTime, 2)
Else
formattedClosingTime = Left(me.closingTime, 2) & ":" & Right(me.closingTime, 2)
End If
End Function
Now, this reduces the code in the form to:
objGrid.Text = instanceOfClass.formattedClosingTime
Isn't that better? The class is taking care of itself. Ahhhh
Thursday, April 10, 2008
Agile/XP programming and the OODA loop
Today, over at Inc.Com, Joel Spolsky of Pragmatic Programmer had an article called Fire and Motion, where he talks about getting your competition responding to YOU. It's a really good post that I think you should read.
When I was reading it, I was reminded of
John Boyd's OODA Loop, and all of a sudden, I realized WHY Agile/XP works. It's NOT the Agile Manifesto. It's NOT Pair Programming, or any of the OTHER tools. Agile/XP is a Tool to speed up your development teams OODA loop massively. One of the tenants of the OODA loop is that a GOOD decision, quickly implemented, beats a PERFECT solution delivered later.
Let's think of what XP/Agile has you do - Short iterations. Observe at what the client needs, and quickly fill that need. Not necessarily with a perfect answer, but something. Then ask the client "OK, Now decide how it needs to change", and then add that. Quick loops
Why I never thought of Agile/XP in terms of OODA before, I don't know, but it was a light bulb going off
When I was reading it, I was reminded of
John Boyd's OODA Loop, and all of a sudden, I realized WHY Agile/XP works. It's NOT the Agile Manifesto. It's NOT Pair Programming, or any of the OTHER tools. Agile/XP is a Tool to speed up your development teams OODA loop massively. One of the tenants of the OODA loop is that a GOOD decision, quickly implemented, beats a PERFECT solution delivered later.
Let's think of what XP/Agile has you do - Short iterations. Observe at what the client needs, and quickly fill that need. Not necessarily with a perfect answer, but something. Then ask the client "OK, Now decide how it needs to change", and then add that. Quick loops
Why I never thought of Agile/XP in terms of OODA before, I don't know, but it was a light bulb going off
Labels:
Agile,
John Boyd,
Lightbulb Moment,
OODA,
Programming,
XP
Tuesday, April 08, 2008
How to Compress Virtual PC Hard Disks
As more and more of us use Virtual Hard Drives to test/develop different software, here is a great HowTo: Compress Virtual PC Virtual Hard Disks over at Kurt Shintaku's Blog - HT to Kirk Allen Evans - via Jason Haley
Tuesday, April 01, 2008
ALT.NET Leadership to suppliment the traditional .NET leadership
Jeremy Miller has (as usual) and interesting post on The need ALT.NET to supplement the traditional >NET leadership
I can't agree more. Right now, I think some of the best REAL WORLD developemnt stuff is coming out of ALT.NET. It seems Microsoft IS listening to a point (Unit tests in VS2008 etc) but...
I can't agree more. Right now, I think some of the best REAL WORLD developemnt stuff is coming out of ALT.NET. It seems Microsoft IS listening to a point (Unit tests in VS2008 etc) but...
Monday, March 17, 2008
Links - March 17th, 2008
First - Happy St Patty's day!
What is Alt.NET
This may be subscriber only - but Taming Software Dependencies
What is Alt.NET
This may be subscriber only - but Taming Software Dependencies
Friday, March 14, 2008
Links for March 14th, 2007
5 ways to Engage Employees
The Ribbon He seems to like them - I think they are the worst thing I've seen in years. I can never find what I want
Linq2SQL, thoughts after a few hours of leaning
Some observations from Jeremy D. Miller
Link to Everything: A List of LINQ Providers
The Ribbon He seems to like them - I think they are the worst thing I've seen in years. I can never find what I want
Linq2SQL, thoughts after a few hours of leaning
Some observations from Jeremy D. Miller
Link to Everything: A List of LINQ Providers
Friday, March 07, 2008
Developer Tools
I don't think I've ever made a list of MY favorite developer tools.
First some background. I've been at least a part time developer since 1982. Since the late 80s, I have been pretty much a full time developer. Yes, during part of that time I did operational stuff with the software I wrote, but I probably spent 75% of the time coding/designing, and 25% as my own end user. Anyway, here is a list of tools I use all the time:
Microsoft MSDN Team developer ($5469) or Visual Studio Professional with MSDN Premium ($2,499)
Textpad I see lots of other editors mentioned - but I like Textpad
Cygwin Being able to use most UNIX command line tools in windows is great. I regularly have to parse 30+ meg files here at the office, and the tools in Cygwin do it faster than any windows based product I've found
RefactorPro! A totally amazing tool for refatoring your code. I'd say most C# programmers feel the same way about ReSharper. At one time, ReSharper didn't do VB.NET, so...
Microsoft Virtual PC The ability to have clean build boxes, and test boxes, plus being able to test my software under various OSes. Great
Paint.NET Free Photo Editor
First some background. I've been at least a part time developer since 1982. Since the late 80s, I have been pretty much a full time developer. Yes, during part of that time I did operational stuff with the software I wrote, but I probably spent 75% of the time coding/designing, and 25% as my own end user. Anyway, here is a list of tools I use all the time:
Microsoft MSDN Team developer ($5469) or Visual Studio Professional with MSDN Premium ($2,499)
Textpad I see lots of other editors mentioned - but I like Textpad
Cygwin Being able to use most UNIX command line tools in windows is great. I regularly have to parse 30+ meg files here at the office, and the tools in Cygwin do it faster than any windows based product I've found
RefactorPro! A totally amazing tool for refatoring your code. I'd say most C# programmers feel the same way about ReSharper. At one time, ReSharper didn't do VB.NET, so...
Microsoft Virtual PC The ability to have clean build boxes, and test boxes, plus being able to test my software under various OSes. Great
Paint.NET Free Photo Editor
Thursday, March 06, 2008
Feeling Frustrated
Today, I'm working on a VB 6.0 application. After a couple of years of working almost exclusively in .NET, boy is it driving me nuts
The WORST part? I'm adding a form and some classes to an application that is about 90% done being ported to .NET
The WORST part? I'm adding a form and some classes to an application that is about 90% done being ported to .NET
Vista, and what went wrong...
First, let me say I use and LIKE Vista. I designed the PC It's on to well exceed what turns out were political and not technical minimums. I also chose (wisely IMHO) to run the 32 bit version of Vista. Part of my reasoning for all of this is that by trade, I'm a software developer for the Microsoft platform. I figured I'd BETTER be able to make my software work correctly under XP and Vista. The changes you need to make, IF you have been following the Microsoft coding guidelines are NOT that hard. The biggest tips are probably in their book Writing Secure Code.
And that's both the GOOD and the BAD thing.
There is a LOT of software out there, mostly from smaller niche market vendors that "Doesn't Work" or "Doesn't Work Right" under Vista. Now, I won't address the problems of Drivers under Vista 64. Let's face it, you don't have a driver, you have problems, but let's look at some of the OTHER issues that I hear about.
Help Files: One of the big complaints that hit the day Vista shipped was "I'm getting a message my help file won't work". Back around 1995 (yes, 12-13 years ago) Microsoft said "Stop using the *.hlp file format, in the future we will drop support for it". At that same time, they came out with html based help files, and compiled html help files. Over a decade later, Microsoft actually dropped support, and people yelled. Now the question is, why didn't the developers update to the new format? I'll give you part of the answer. The old stuff continued to work, PLUS most of the best tools for making help files, well, still made *.HLP files...
The Annoying Security Popups:
Believe it or not, this problem has been around since XP Service Pack 2, but only in the Corporate Environment, and if it was turned on.
Microsoft told developers "DON'T write to 'random' spots on the hard drive, you should make the API call to find out were the Users/All Users (I'll just use the term Users for short from now on) directory is, and install the program under that, and use a DIFFERENT API call to find out were the users data and settings should be stored" Anyway, to make a long story short - if an application tries to write outside the returned data directory, you are going to get prompted. In addition, if you "assumed" it was going to be "C:\program files\etc etc etc" or "C:\documents and Settings\ etc etc etc", the app WILL continue to work, but it's actually going to stuff the data in a virtual directory that is almost hidden, it's buried so deep
So, it sounds like I'm blaming the developers, right? WRONG
Tyner Blaine had an interesting Post about Microsoft ignoring the customer the other day. I posted a long comment, but it basically was "Microsoft is not only ignoring the customer, they are ignoring the small developer"
Back, oh, say 15 years ago (maybe even a bit more), Microsoft was in a pitched battle with IBM on "Windows VS OS/2". One of the reasons Windows (which was a technically inferior product) won that battle was that there was a LOT of small developer shops, developing small applications in a tool called Visual Basic. There was no small cheap simple tool for OS/2. I'd bet that 90% of the applications that people used were programs that Microsoft never heard of, BUT they were the small things that the user wanted
As windows took off, Microsoft really shifted their developer support from support the 1-4 man shop to "let's take care of the Fortune 500 developers". Lets face it, in many ways, this makes a lot of sense. Examples of this are thing like - .NET produces a P-code that can be decompiled. Who cares, if you are a developer for Megagcorp. The thing is, if you're a 1 man shop selling your product, giving your competitors a way to look at your code is not such a good thing. Look at what the cost of a full up copy of Visual Studio now costs. Yeah, you can get a 'lite' version for free, but to go and get one with source control, and all the stuff you really need? Figure on a $3000+ MSDN subscription (oh, and this way you get the news of 'don't write to the application directory'). Microsoft has also said "The web is the future, and our development efforts will be on developing web application". They really are NOT working on the "I install the application, and I don't need to write the data back to Corp HQ". Again, why? Because 90% of their users are big companies, where they can give you a slick UI, and you are talking to say, Amazon's order entry system, of the CBS Olympic site. Of course, this doesn't do much good say, for a Ham Radio Logging Program, but then again, we no longer are even a blip on the radar.
The thing is: OK, you install Vista, You install Office, You install Money. They all work Great. You install Quicken - and it almost works great (don't try to run the updater unless you tell it to run with Admin Privs)
But then you go to install DxBase, or N1MM, or CWGet, or some other niche program. And you have problems. The developers come up with a way to get it to work, and there becomes a FAQ on how to make the program work under Vista. And you know what? People say "Vista sucks, because look what I have to do to make XXX program work" (or even worse, I can't get XXX to work, because they haven't looked around for how to make it work)
Microsoft blew it - BIG time, and left a BAD taste in a lot of peoples mouth. How? By not helping the small one man shop, that MIGHT sell $10-20K a year in software (and maybe less) get their products ready for Vista - at a reasonable cost
And that's both the GOOD and the BAD thing.
There is a LOT of software out there, mostly from smaller niche market vendors that "Doesn't Work" or "Doesn't Work Right" under Vista. Now, I won't address the problems of Drivers under Vista 64. Let's face it, you don't have a driver, you have problems, but let's look at some of the OTHER issues that I hear about.
Help Files: One of the big complaints that hit the day Vista shipped was "I'm getting a message my help file won't work". Back around 1995 (yes, 12-13 years ago) Microsoft said "Stop using the *.hlp file format, in the future we will drop support for it". At that same time, they came out with html based help files, and compiled html help files. Over a decade later, Microsoft actually dropped support, and people yelled. Now the question is, why didn't the developers update to the new format? I'll give you part of the answer. The old stuff continued to work, PLUS most of the best tools for making help files, well, still made *.HLP files...
The Annoying Security Popups:
Believe it or not, this problem has been around since XP Service Pack 2, but only in the Corporate Environment, and if it was turned on.
Microsoft told developers "DON'T write to 'random' spots on the hard drive, you should make the API call to find out were the Users/All Users (I'll just use the term Users for short from now on) directory is, and install the program under that, and use a DIFFERENT API call to find out were the users data and settings should be stored" Anyway, to make a long story short - if an application tries to write outside the returned data directory, you are going to get prompted. In addition, if you "assumed" it was going to be "C:\program files\etc etc etc" or "C:\documents and Settings\ etc etc etc", the app WILL continue to work, but it's actually going to stuff the data in a virtual directory that is almost hidden, it's buried so deep
So, it sounds like I'm blaming the developers, right? WRONG
Tyner Blaine had an interesting Post about Microsoft ignoring the customer the other day. I posted a long comment, but it basically was "Microsoft is not only ignoring the customer, they are ignoring the small developer"
Back, oh, say 15 years ago (maybe even a bit more), Microsoft was in a pitched battle with IBM on "Windows VS OS/2". One of the reasons Windows (which was a technically inferior product) won that battle was that there was a LOT of small developer shops, developing small applications in a tool called Visual Basic. There was no small cheap simple tool for OS/2. I'd bet that 90% of the applications that people used were programs that Microsoft never heard of, BUT they were the small things that the user wanted
As windows took off, Microsoft really shifted their developer support from support the 1-4 man shop to "let's take care of the Fortune 500 developers". Lets face it, in many ways, this makes a lot of sense. Examples of this are thing like - .NET produces a P-code that can be decompiled. Who cares, if you are a developer for Megagcorp. The thing is, if you're a 1 man shop selling your product, giving your competitors a way to look at your code is not such a good thing. Look at what the cost of a full up copy of Visual Studio now costs. Yeah, you can get a 'lite' version for free, but to go and get one with source control, and all the stuff you really need? Figure on a $3000+ MSDN subscription (oh, and this way you get the news of 'don't write to the application directory'). Microsoft has also said "The web is the future, and our development efforts will be on developing web application". They really are NOT working on the "I install the application, and I don't need to write the data back to Corp HQ". Again, why? Because 90% of their users are big companies, where they can give you a slick UI, and you are talking to say, Amazon's order entry system, of the CBS Olympic site. Of course, this doesn't do much good say, for a Ham Radio Logging Program, but then again, we no longer are even a blip on the radar.
The thing is: OK, you install Vista, You install Office, You install Money. They all work Great. You install Quicken - and it almost works great (don't try to run the updater unless you tell it to run with Admin Privs)
But then you go to install DxBase, or N1MM, or CWGet, or some other niche program. And you have problems. The developers come up with a way to get it to work, and there becomes a FAQ on how to make the program work under Vista. And you know what? People say "Vista sucks, because look what I have to do to make XXX program work" (or even worse, I can't get XXX to work, because they haven't looked around for how to make it work)
Microsoft blew it - BIG time, and left a BAD taste in a lot of peoples mouth. How? By not helping the small one man shop, that MIGHT sell $10-20K a year in software (and maybe less) get their products ready for Vista - at a reasonable cost
Thursday, September 13, 2007
Kitchenaid Lemon
My wife and I closed on our home back in August 2001, and the dishwasher that was there failed before Thanksgiving.
Buying a new dishwasher was a "no brain" decision. My parents had 2 kitchenaids at that point (they are still on the 2nd), and in my old house, I had a Kitchenaid the last 4-5 years I lived there. None of them ever gave us a problem - not a moment.
We went to the store, ordered the top of the line Kitchenaid, without a thought of buying a "lesser" unit
Well I'll tell you, the thing has been a lemon since day 1. When the unit showed up, a lead had fallen off the starter cap on the motor. The door seals kept falling off the unit. About 2 years in, the clips holding the top rack in place started failing. Last year, the disposer inside the unit clogged, requiring the unit to be taken apart. Then about 6 months later (still in warrantie) the pump failed altogether - this is with pre rinsing every dish going into the unit. Well, on Thursday, the control panel started blinking - yep it needs to be replaced, a $300 dollar job. Now as the soap dispenser latch requires fiddling, the top basket still is falling apart, you can guess what we chose to do. Yep, buy a new dishwasher - and you can BET it's not a Kitchenaid/Whirlpool/Kenmore (all the same dishwasher).
Open note to Kitchenaid - you had serious brand loyalty in my family. We never even thought of buying anything else. Now we will never think of buying one again...
Buying a new dishwasher was a "no brain" decision. My parents had 2 kitchenaids at that point (they are still on the 2nd), and in my old house, I had a Kitchenaid the last 4-5 years I lived there. None of them ever gave us a problem - not a moment.
We went to the store, ordered the top of the line Kitchenaid, without a thought of buying a "lesser" unit
Well I'll tell you, the thing has been a lemon since day 1. When the unit showed up, a lead had fallen off the starter cap on the motor. The door seals kept falling off the unit. About 2 years in, the clips holding the top rack in place started failing. Last year, the disposer inside the unit clogged, requiring the unit to be taken apart. Then about 6 months later (still in warrantie) the pump failed altogether - this is with pre rinsing every dish going into the unit. Well, on Thursday, the control panel started blinking - yep it needs to be replaced, a $300 dollar job. Now as the soap dispenser latch requires fiddling, the top basket still is falling apart, you can guess what we chose to do. Yep, buy a new dishwasher - and you can BET it's not a Kitchenaid/Whirlpool/Kenmore (all the same dishwasher).
Open note to Kitchenaid - you had serious brand loyalty in my family. We never even thought of buying anything else. Now we will never think of buying one again...
Tuesday, September 11, 2007
9/11
Today, on another blog, they were asking about what you remember most about 9/11
To me, it's a long answer. I work in IT supporting the News Division of one of the "big 3" networks. I was at my desk, and is usual for ME, the TV in my office was off. A co-worker called down the hall "Hey Charlie, a plane just hit the World Trade Center". Like most people, I figured it was some small plane. I reached over, and turned on the TV. One glance, and I KNEW this was not a small plane.
By the time the 2nd plane hit, the whole department was in the main conference room, with the bank of TV sets on various channels
Things I remember... Not necessarly in order, from the next 2-3 days
My son's Nanny calling - her Future Father-in-Law worked in 2 WTC - and she had not heard from him (he got lucky - he was on the 48th floor getting a cup of coffee - if he had been at his desk, he would have been killed) - it was 2pm before he was able to get through to say he was OK.
Me being sent home fairly early, to come back in by 6:00am the next day for a 24 hour shift, and my wife (who worked in Port Washington and was also sent home early) asking me "what's that smell?" and telling her "that's the smell of the WTC burning" (we live about 12 miles away from ground zero)
An out of town firefighter on the 12th - walking past our office - in his gear, carrying a Scott pack, walking north away from ground zero - and EVERYONE offering to help him carry his gear - he refused, but...
Getting a black car home on either the 12th or 13th, and going past one of the Missions to the UN here in NYC, and there being a Humvee outside, with a M2 mounted - and yeah - it was locked and loaded.
Did I mention the smell? (yeah I did) - the smell went on a LONG time - it changed over time, and after the first month or so, you could no longer smell the burning flesh as much.
The silence of no airplanes (except for the fighters) overhead
I remember the 3 ex-coworkers I lost that day
I remember being really thankful that I had NOT taken that job in the WTC
I remember going home, and hugging my family.
AND I remember the people who did this to us - and I won't forget - they are dammed lucky I was not in charge of the Nuclear football that day...
(edited May 23rd, 2008 to fix some spelling errors, and one or two grammer errors)
To me, it's a long answer. I work in IT supporting the News Division of one of the "big 3" networks. I was at my desk, and is usual for ME, the TV in my office was off. A co-worker called down the hall "Hey Charlie, a plane just hit the World Trade Center". Like most people, I figured it was some small plane. I reached over, and turned on the TV. One glance, and I KNEW this was not a small plane.
By the time the 2nd plane hit, the whole department was in the main conference room, with the bank of TV sets on various channels
Things I remember... Not necessarly in order, from the next 2-3 days
My son's Nanny calling - her Future Father-in-Law worked in 2 WTC - and she had not heard from him (he got lucky - he was on the 48th floor getting a cup of coffee - if he had been at his desk, he would have been killed) - it was 2pm before he was able to get through to say he was OK.
Me being sent home fairly early, to come back in by 6:00am the next day for a 24 hour shift, and my wife (who worked in Port Washington and was also sent home early) asking me "what's that smell?" and telling her "that's the smell of the WTC burning" (we live about 12 miles away from ground zero)
An out of town firefighter on the 12th - walking past our office - in his gear, carrying a Scott pack, walking north away from ground zero - and EVERYONE offering to help him carry his gear - he refused, but...
Getting a black car home on either the 12th or 13th, and going past one of the Missions to the UN here in NYC, and there being a Humvee outside, with a M2 mounted - and yeah - it was locked and loaded.
Did I mention the smell? (yeah I did) - the smell went on a LONG time - it changed over time, and after the first month or so, you could no longer smell the burning flesh as much.
The silence of no airplanes (except for the fighters) overhead
I remember the 3 ex-coworkers I lost that day
I remember being really thankful that I had NOT taken that job in the WTC
I remember going home, and hugging my family.
AND I remember the people who did this to us - and I won't forget - they are dammed lucky I was not in charge of the Nuclear football that day...
(edited May 23rd, 2008 to fix some spelling errors, and one or two grammer errors)
Friday, August 24, 2007
Equipped to Survive: A trip to the ER
With all apologies to the folks over at Equipped, here are some thoughts on "surviving" a trip to your hospitals Emergency Room. Not necessarily YOUR trip, but a trip of a loved one.
As many of you know, my Mom just died after a long illness (lung cancer), and my Dad is not in the greatest of health. Over the last 18 months or so, I've probably been in the ER with one or the other nearly a dozen times. (Latest was yesterday - Dad is OK).
First - BE PREPARED to take them to the ER, or have them taken to the ER. By prepared, the Ambulance crew is going to want a few things: Their Name, Birth date (age), what medications they are taking, and known illnesses. Having this information written down ahead of time is going to save the crew a LOT of time, and they will be real happy to get it. Also, on the list - put down the names and phone numbers of their doctors (BTW, do this for yourself, your spouse and kids too).
Sometimes a simple "Oh - he has a pacemaker" can prevent them from scheduling an MRI. Or a "Hey, he has Paget's syndrome" can prevent days of worry over shadows found on his bones during a cat scan (No - it's NOT bone cancer)
So, where do you KEEP this information? Mom's Hospice folks as well as the NYC EMS crews ALL have said the same thing - put it in an envelope, and stick it to their refrigerator - with BIG letters. If they call 911, and can't tell the crew what is going on, the crew is going to check the kitchen for medicines - particularly the refrigerator for drugs that need to be kept cold. When they see the envelope - they WILL check it. It's SOP for the crews. IF there is a DNR - keep it outside the envelope, in plain site. (BTW in NY state, DNR orders have to be renewed I think it's every 30 days, and approved by an MD)
You should also keep a copy of this information where YOU can get at it. Towards the end with Mom, I actually kept copies with me at ALL times. You could get the call that they need you at the ER when you're NOT at home.
I hope all of you keep your basic medical information with you - in your wallet - your MD, your drug list, and any known problems. It can save some real problems if YOU end up in the hospital, and can make life easier even if it's just a visit to a new MD - just hand him the paper.
As many of you know, my Mom just died after a long illness (lung cancer), and my Dad is not in the greatest of health. Over the last 18 months or so, I've probably been in the ER with one or the other nearly a dozen times. (Latest was yesterday - Dad is OK).
First - BE PREPARED to take them to the ER, or have them taken to the ER. By prepared, the Ambulance crew is going to want a few things: Their Name, Birth date (age), what medications they are taking, and known illnesses. Having this information written down ahead of time is going to save the crew a LOT of time, and they will be real happy to get it. Also, on the list - put down the names and phone numbers of their doctors (BTW, do this for yourself, your spouse and kids too).
Sometimes a simple "Oh - he has a pacemaker" can prevent them from scheduling an MRI. Or a "Hey, he has Paget's syndrome" can prevent days of worry over shadows found on his bones during a cat scan (No - it's NOT bone cancer)
So, where do you KEEP this information? Mom's Hospice folks as well as the NYC EMS crews ALL have said the same thing - put it in an envelope, and stick it to their refrigerator - with BIG letters. If they call 911, and can't tell the crew what is going on, the crew is going to check the kitchen for medicines - particularly the refrigerator for drugs that need to be kept cold. When they see the envelope - they WILL check it. It's SOP for the crews. IF there is a DNR - keep it outside the envelope, in plain site. (BTW in NY state, DNR orders have to be renewed I think it's every 30 days, and approved by an MD)
You should also keep a copy of this information where YOU can get at it. Towards the end with Mom, I actually kept copies with me at ALL times. You could get the call that they need you at the ER when you're NOT at home.
I hope all of you keep your basic medical information with you - in your wallet - your MD, your drug list, and any known problems. It can save some real problems if YOU end up in the hospital, and can make life easier even if it's just a visit to a new MD - just hand him the paper.
Friday, August 10, 2007
mbUnitForms
Today, mbUnitForms was announced. It's a port of nUnitForms. Might be a reason to switch to mbUnit
Thursday, August 09, 2007
SQL Server Monitor Gadget
Conchango today has released a SQL Server Sidebar widget. That should be fairly cool
Now if they would only let us use Vista at work
Now if they would only let us use Vista at work
Wednesday, August 08, 2007
New Software - Get them while they're hot
Oooh - some new software for the development world:
NUint 2.4.2 - the defacto standard in .NET unit testing software
Code-Rush and Refactor! Pro
NUint 2.4.2 - the defacto standard in .NET unit testing software
Code-Rush and Refactor! Pro
Subscribe to:
Comments (Atom)