This blog has moved. Please update your bookmarks.

The Smell of Victory

As I mentioned briefly in a previous post, I have a new job. Technically I'm not working there yet; I'll be starting the 19th of June running full focus on development in C++ and C#, which will be a difference for me personally, having worked with Delphi the past five years. We'll see how it turns out... I'm pretty confident I'll get up to speed quickly. I have a policy of usually not mentioning the company I work for, although it slips out from time to time - the main reason for that is that I don't want to associate that company with my blog. This is me, Mats, writing on my own.

Leaving my old job isn't easy. I'll be leaving a bunch of terrific guys and girls that I've worked with for years now.

In one sense, I feel like I've been in the army. I look back on this successful campaign and I realize that we've worked miracles. So much of effort, enthusiasm, hard labor and engineering went into our products. Not all code is as good as I wish it was, and looking back I see how we could have made things differently (like, more objects); but we made it work.

A few things stand out: That early morning in January 2002, when we came back from the holidays and thinking it'll be an easy start, and the first thing I see in the mail is that my boss has sold a new system (not existing yet) to this large hospital in Sweden. Gulp. So much for slow starts. The next months were frantic.

The first installation, 30th of May 2002, nearly five months later. Monday morning after installation weekend, thirty-something operators come in and put the system to maximum use. If it hadn't worked, it would have severely affected about ten thousand employees in this hospital. But it worked. We ran into a problem with MySQL connections, which forced us to take down the system briefly at about 0815 hours: Five minutes downtime, all clients discovered the server was down and idled until a reconnect could be made. Not one program needed to be restarted. The line held, the battle was fought and we came out victorious.

After that, it was one battle after another. Fierce competition, tough market, even lawsuits... New versions came out: 1.3, 1.4, 1.4.1... It was a continual struggle to stay ahead, keeping our heads above the water as we built and built and built. We produced software like maniacs, and somewhere in the midst of it all we managed to find time to look over and update our software processes too. The company grew, new organizations, tears, sweat and blood... But the line held. And we reaped victory after victory.

The software worked, too. Sure, there were bugs, there were complications. But somehow we hit it just right; we built a reputation for ourselves, which our partners and customers noticed too. The darn things worked! If they didn't, we went back, fixed them, and then they worked! And on top of it all it looked good - much better than anyone elses; the user interface was clean, efficient, easy to use and shined in front of our competition. For that I give all credit to my boss and our graphics designer.

And prestige customers started to drop in. We even snatched some from our competitors; big corporations which you would instantly recognize if I printed their names - which I won't. Today, I don't know how many people get in touch with our systems, but depending on how you count, it might affect over one hundred thousand people here in Sweden.

Along the way, I fell in love with Borland Delphi. I've been a Borland fan since the eighties, but Delphi has been my tool of choice for quite a few years now. I notice with a smirk how others talk about these great features of .NET, and I think to myself that we've been doing some of those a long time in Delphi now. And that's on Win32, with zero libraries deployed.

Our company is big now. One of the big guys in this niche of our market, though we're only about twenty guys, and four developers.

So, I feel like we've been through North Africa, Sicily, Italy, England, Normandy and France, Holland and Belgium, and now we're standing in the heap and rubble of defeated Germany. We did it. We won. And now the time has come to leave my squad and be reassigned to new theaters of war.

I never got paid as much as I'd hoped for (my friends will be the first to tell you that), but it doesn't bother me much; because I'm thinking, maybe I took something with me that was worth more. My favorite quote from Apocalypse Now tells it right: "I love the smell of napalm in the morning... Smells like - victory."

I Have A New Job

I will from the 19th of June be working at TietoEnator. Who-hoo!

It'll be lots of fun. Can't wait. :)

Privacy: A Human Right

In a world that's increasingly being watched, monitored and put under surveillance, it's important to remember the basic right to privacy.

Bruche Schneier sums it up in a very good article: "The Value of Privacy". Quis custodiet custodes ipsos? Who's watching the watchers?

Go, Cabbie, Go!

The BBC made a wonderful blunder (Daily Mail article, video feed) yesterday when they tried to interview technology expert Guy Kewney and instead got hold of his cab driver.

The poor cab driver, waiting to pick up his next fare (probably the technology expert in question?) raised his hand when the studio executive asked for Mr. Kewney, and he was quickly rushed in to the studio, put in front of a camera and asked questions about the ramifications of the verdict in the legal battle between the Beatles' Apple Corps and Apple Computer.

But he made it through, answering questions through the 90-second interview as good as he could; but the look of horror on his face as he realized he was on live TV is... priceless.

Kill Da Zeeba

I'm following a comic strip called Pearls Before Swine. I haven't quite figured it out completely yet, but it's a crazy strip about a rat, a pig, a zebra; and a couple of crocodiles who are intent on eating "da zeeba".

The crocodiles way of talking is the killer. "Hullooo, zeeba neighba."

It's sick, but I love it.

We're Now Running Vault

Last weekend, we completed the switch over to SourceGear Vault. Not being able to stand the abysmal VSS any longer (we threw out the 2005 update as quickly as it came in), we bought five licenses for Vault and migrated the entire VSS during the May 1st long weekend.

Apart from a few strange quirks, the import worked very well. The entire database of 10-15 GB was imported straight into Vault with complete history, although it took almost four days to complete.

I must say, Vault has exceeded my expectations. It is super-fast, allows you to see exactly what's in the repository and how it matches your local files in the same view, it's a breeze to work with and it's powerful. I'm sure there's a lot of features to learn, but so far, it's a large step up from VSS and it performs almost exactly the same - just blazingly fast (allowing us poor developers working remote to breathe again). In my view, everyone should be running Vault instead of VSS.

The Vault API is also powerful. The command line client is provided as open source, meaning that you use the same .NET assemblies as the client does. No more buggy VSS automation.

The only side-effect so far is that we had to upgrade to FinalBuilder 4, otherwise we couldn't check out entire projects in one go for our build scripts.

Ruby, .NET and IronPython

A while ago, I said that I had made up my mind to learn Ruby. Alas, it did not happen. Instead, I find myself learning C# for the .NET platform. Obviously, a lot of what you learn these days is based on the requirements of your profession which guides you gently (or by brute force, in the case of the Novell Groupwise APIs) into new fields of learning and computation.

The book I bought, .NET Framework Essentials, by Thuan Thai and Hoang Q. Lam, goes deep into the inner guts of the .NET system; and I must say, I am becoming intrigued. It seems like .NET is taking the best of Java, Delphi and COM and combining it into a system that I'm finding myself rather anxious to lay my hands on. I don't think I've felt this way for quite some time; it's like opening the hood and surprisingly finding a totally new and complex machine to play with. All the nuisances of old systems are gone, now there remains only a fully object-oriented Virtual Machine, ripe for hacking around with.

While C# is on the table, I've also gotten an interest in IronPython (Wikipedia article, download). I've always meant to look into Python; it seems like a very interesting scripting language. With the advent of Python for .NET - namely, IronPython, a port headed by Jim Hugunin (now a recent MS employee) - I have a fully qualified scripting tool with which I can explore the inner guts of .NET from a command line. And perhaps the most interesting thing is that IronPython can, with a few lines of code, be embedded into .NET programs.

My only fear now is that I may be crossing over into MS-land for good - I'm rapidly becoming a .NET junkie. My friend and Java proponent Markus may never look at me the same way again. :)

P.S. I wonder if there's a Ruby.NET port?


Blog contents copyright © 2005 Mats Gefvert. All rights reserved.