Wednesday, December 16, 2009

Download stuck at 99%

It was a strange issue. Intermittent internet problem. A download would start and then, either in the middle of a download or worse, as the last packet was received, the download would freeze.

Stuck at 99%. Restarting the download wouldn't fix it. The problem would occur on a Mac as well as on a PC. This was especially infuriating with the Windows 7 Beta as we were never able to get a good version of it. As with many other things, the ISP was the likely culprit. We decided to change ISP. First test we ran was trying to download a file whose download we know was failing.

The download stuck at 99%.

Cursing and swearing ensued. We then did the logical thing to do: connect a PC directly on the modem to try to isolate the problem. We finally found the issue:
A firmware update of the Linksys WRT54GS fixed the whole thing. In the release note, Linksys noted among other things:
Firmware 4.50.6
- Adds SecureEasySetup push button support
- Resolves large file transfer issues

Yes! I will now be able to run lots and lots of things!

Monday, March 2, 2009

Software construction metaphors

"No! It's not going to work" said Pete. "This has been tried several times on various software projects. Adding people to a project that is running late will make it later. It's called the Brook's law!" he added. Dave, his project manager, was not impressed: "If you get a few more people on the project, it sure is going to help. If you double the staff, it will get done twice as fast". "Not quite, said pete, software construction is more complicated than that"

Unfortunately, software construction is actually more complicated than that. Pete could have replied: "A pregnant woman needs 9 months to give birth to a healthy baby, no matter how much help she has. Giving birth to software is the same thing."

It's often very difficult to communicate to peoples that are not involved in software construction some fundamental intricacies of our trade. As such, we often use what I call Software Contruction Metaphors - even though that is a metaphor as well. Here are a few of those metaphors:

The Omelette: You need about 10 minutes to properly cook an omelette. Sure, you can probably raise the heat and finish quicker. Unfortunately, that would probably yield barely edible burnt eggs. The same is true with software construction: trying to shorten the schedule under a certain threshold will probably result in a broken, unusable, instable piece of software.

House contruction
This one has been in use for many years, and is usually related to waterfall software development life cycle. It usually goes as follow: When you construct a house, it is always cheaper to do changes early in the process (while the house is just a few lines on a blueprint) than later on, once the concrete for the foundations has been poured and is fully cured. It basically outlines the complexity of changing software later in a project. However, that metaphor is flawed because many people can visualize a home looking at a blueprint, but have a very hard time figuring out a software system by reading at a requirement specification.

Because using proper images is key in our communications with non-technical staff, I will continue to try to find and document other metaphors as I find them.

Friday, November 7, 2008

About the author

The title sounds pompous, it is exactly what this post is about. One of the few posts where I will write about me, myself and I.

My name is Vincent Hubert, I am a software developer living in Montreal, Canada.
I currently have a Senior Developer position within a small technology company that ships highly interactive touchless systems ( My current professional interests are multiple and varied: WPF, .Net framework internals, new languages (F#), team dynamics, small business management and marketing, classic software engineering and agile methodologies. I am also very interested in the small form factor platforms, either the MID or UMPC. Outside of work and technology, I am very interested in aviation. I have my student pilot permit, yet no time slot available in my schedule to fly. It’s fall now, so I guess flying will have to wait until next year. I am a pretty good cook, and enjoy wine, beer (specially micro-breweries) and pretty much everything with alcohol in it.

My blog posts will cover mostly my professional interests, and some of my hobbies. I will try to post regularly on the following topics: Book reviews, blog roll review, tool reviews, development and architecture topics and a few Montreal related posts as well.

As a father of 3 young children, my week-ends are busy, and week nights, overwhelming. Yet, being a father is so wonderful. So I will also try to share a few stories about us, while keeping the focus on programming. Because every programmer is also a human being with its own family and aspiration.
One last note: My first language is French. Even though I am quite fluent in English, I might sometime make some English mistakes. Please pardon them.

Tuesday, November 4, 2008

Da Vincent's Code Lauches

That's it!

I've made the leap. I launched my blog. On November 4th 2008. Today.

The biggest challenge I will face will be maintaining a regular posting schedule. I will do my best to post at least once a week, and maybe twice.

The launch date, however, was not randomly chosen.

November 4th is a day that resonates with me both historically, personally and professionally.

Historically, today is U.S. election day. And surprisingly enough, one candidate was "endorsed" both by the Wall Street Journal and Hugo Chavez. Which, in itself, is quite a feat, no matter what the result of the election is.

Personally, today is the birthday of my wife.

And professionally, November 4th is a day that I came to name "diem horribilis". The kind of stuff that could show up in The Daily WTF. A few years ago, I was working for a small company that was selling QoS (Quality of Service) solutions to Voice-over-Ip (VoIP) providers. On that day, while the lead developer was on vacations, *ALL* our current customers called with *differrent* *critical* issues. All three of them. All different countries, all different isuues, all different versions of the software. I was expected home early, with a dinner to cook. Stressfull day. We made everyone happy, but this day is still known today as The Horrible day.

So the blog is launched.

Over the next few weeks, I will try to cover a little more of my profile, interest and current work.

If you are in the US, enjoy election day!