Guys usually get the shorter end of the stick when it comes to Valentine’s Day gift-giving. The best we can usually hope for is to be allowed to sneak a couple chocolates from the heart shaped box we overpaid for. But if the Techo-Universe at large wanted to be my Valentine, here are some thoughtful, if not realistic gift suggestions.

I would like Time Machine to not start up right away as soon as I log on. Please, please allow me to fire up Outlook, start a Terminal session, and fetch the latest from subversion before you start monopolizing the disk I/O.

Non-silent ‘everything’s OK’ compile output. Some compilers and linkers do a decent job of this. Some report useful things like “All files up to date”. It’d be great if all command line tools did this.

Some helpful hints when it’s time to create a new password. Every couple months I am forced to dream up a new password, something sufficiently secure but easy and fast to type. Perhaps an interface similar to Captcha prompts? Give me a couple suggestions that already meet the password complexity criteria.

Rechargeable batteries for my Magic Mouse that actually hold a charge for more than 1 week.

A release of Java that is free of Zero Day security flaws.

Ditto for Flash…

…and Internet Explorer

An e-mail client feature that automatically truncates replies. All we really need are the most recent 3 or 4 responses of a long-running back-and-forth e-mail thread when composing yet another reply. I can’t remember if it was web-based gmail or the Mail app on my iPad that did this for me recently. I sure wish this was everywhere.

Selective Bookmark Syncing. There are some links I’d like to have everywhere, and there are some links I have at the office that I’d like to show up on my home devices (and vice-versa). But it seems that most current implementations are an “all or nothing” affair.

A Seat Belt detector for my phone. I can’t count the number of times I’ve gotten to the first traffic light on my way home and remembered that I’ve left my mobile phone in my front pants pocket. Perhaps a clever trick could be done with the accelerometer to detect the motion of getting into the driver’s seat.

A big red reset button. When you’ve got a runaway process that’s hogging all your system resources, how do you stop it? Right, by invoking the Task Manager or Force Quit dialog, which itself requires resources. It’s a huge chicken/egg problem. In my grade school days there was this awesome red button on the TRS-80 (complete with ergonomic recessed finger tip dimple) that would reset the system. How about something similar that would would kill everything except kernel and OS processes?

Stretchy Cables. Ok, so this one’s a little bit strange. But it sure would be convenient to be able to stretch a cable to exactly the length you need. Right now on my desk I have a headphone cable that is much longer than needed to reach from my speakers to my head and a power cable on my MacMini that is just a teensy bit too short for where I’d prefer to position it relative to my UPS. The only perfectly sized cable is the USB cord that reaches from my keyboard to the back of the computer.

The only proper way to finish the title sentence is “… I don’t write code”. The way that it absolutely not be finished is “…I just use vi”. Here are the reasons people seem to claim for using vi most often:

It’s always there.

It’s always the same.

But there’s more to it than just that. Insisting on relying on vi for your editing needs is a pride thing. The pride of walking into the wilderness with nothing but a knife.

That’s right. We all want to believe we’re able to rush out into the wilderness with nothing but a knife, able to survive for days like John “Yes, I do have a first name” Rambo. After all, it’s not just a blade. It also has a compass, a couple of waterproof matches, and a needle and thread in case we need to stitch a large gash up ourselves. You picture yourself, looking rugged with a headband and makeshift burlap shirt, running through a rocky ravine and stopping to check the compass built into the end cap of the handle (an image which I looked for for literally hours, impeded by copyright police and the fact that I can’t remember which Rambo movie it was in – so please take a second to paint the mental picture). The truth is you look more like Michael Scott out in the woods wearing his pants on his head (an image I spent absolutely no time looking for – if you’ve never seen The Office (the U.S. version), Michael Scott is a man who is far too dumb to breathe, and he tries to prove he is clever enough to walk into the woods wearing just what he has on and survive. He’s not, and somehow he winds up wearing his pants on his head. It is marginally funnier than it sounds).

So, we’ve established that vi is like a survival knife with a blade and little else except a compass and some waterproof matches and enough needle and thread to stitch up a cut yourself.

A slightly more acceptable answer for why you don’t need SlickEdit is that you use whatever editor is included in your modern IDE. The IDE editor tends to be sort of like a Leatherman tool.

(Leatherman is a trademark, but I think they were first in this space, I’ve used their products for over 20 years. Although I am not a paid spokesperson, I am completely willing to be. Just contact me here by leaving a comment below). The Leatherman type multi-tool is sort of like a Swiss Army knife that is actually usable. It has usable screwdrivers (different types and sizes), pliers, wire cutters, scissors, a saw, and of course a knife. They have different models that have different types and numbers of tools, and any knife maker worth their salt has their own version. And these can be used for more reasonable tasks. I’ve never had to stitch myself up, but I have found myself needing pliers, a screwdriver, file, saw, etc. You could actually use one to perform an emergency car repair. Pliers are not ideal for this sort of thing, but in a pinch, you could probably use this to change a belt, and certainly use it to replace a hose. But you can’t use it to rebuild an engine. There are a number of reasons why. But here’s a big one:

This is a piston ring compressor. It is a specialized tool used to compress the rings on a piston when you put them back in an engine. And there is probably a way to get a piston into the cylinder without one. It probably involves cutting up a beer can and using a strap wrench, getting a really nasty cut, and making it worse trying to stitch yourself up with the thread in your survival knife, then going to the doctor who informs you that you should never, ever try to stitch yourself up again unless you’d like to lose your hand, and finally going to an auto parts store on the way home to buy a piston ring compressor. You could probably do something like that. But I wouldn’t try it. If I were doing serious work on engines day in and day out, I would try to have the right tools on hand.

And that’s the thing. If you’re reading this, odds are you’re not a guy who is not making emergency code repairs on the side of the road. Odds are you are a guy who is building and rebuilding engines (race car engines, right?), or at least maintaining them, every day. You won’t do your job effectively with a survival knife or a multi-tool. You need a tool box. A big one.

And this tool box is SlickEdit. A great deal of it is stocked when you get it. There are other tools that you have to put in the box, but it leaves a nice drawer there for you. It’s customizable, so you can cut a piece of foam out to fit your special tools.

Quit trying to build engines with a pocket knife. Get the tools that will best help you do your job. Some of my best friends are mechanics. They have to buy their own tools and move them from job to job. They don’t buy cheap ones.

The third installment of my version control manifesto is a short story made long with a simple moral at the end. If you’d rather skip the story, just read the title and take that to heart.

Recently what started as a lovely afternoon at Guitar Center ended with me changing a car battery in a parking lot after dark. On New Year’s Eve. I’m not really complaining. I’m not that handy, so when I can fix a car and look manly in front of my family, I’m pretty happy to do so.

Fortunate as I am to have a good job, I can drive cars that are just new enough I don’t carry tools in the trunk anymore. Just emergency reflectors and jumper cables. This is fine because:

As acknowledged above, I’m not that handy.

You can’t do anything to cars yourself anymore. Changing spark plugs on one of my cars requires removing the intake manifold.

Despite my best efforts with jumper cables, I could not get the car to start. So, I found myself at Walmart buying a battery and asking if I might borrow a wrench, because even though I went home and picked up tools, I couldn’t fit a ratchet and socket into the space I needed. The gentleman went to the back and got me a side-post battery terminal wrench:

This is a 1/4″ ratcheting box end wrench. The handle is short, so if you slip, it should not be long enough short between the two terminals of a car battery (yes, I have done this with a ratchet before). Also, the handle is insulated so were you to do that, hopefully it still won’t short anything out. It is flimsy (as wrenches go). It says right on it not to use it on anything except a battery terminal. And that flimsiness serves a purpose. Car battery terminals are made of lead, so you don’t want to over-torque them. Also, because it’s flimsy they sell for about $5, which means I was happy to just buy one so I could throw it in the trunk when I was done.

This little tool is genius. Why? It does not try to do too much. It is an affordable solution for a niche use.

So, if you’re at home in your basement writing the next big version control system:

There are larger systems out there have their own file systems and work well when developers are distributed across multiple sites. That’s fine. This doesn’t mean that to win my seal of approval (which I know is all the rage in the version control world) your system needs to scale things back to the features of RCS. It means that the interface should be straight forward enough that a user can figure out the basic features common to all version control systems without trying too hard. Diffing a single file, viewing a version of a single file, viewing the history for a file, checking in a file – these should be easy.

Have I overlapped another episode of the manifesto? Perhaps. But

In general, manifestos are supposed to be long rambling documents written by the semi-crazy, and it seems like it’s OK to repeat myself.

This particular issue is this important.

Don’t believe me? You can’t figure out how I could possibly be right, and you be wrong, given that I’m toiling away in a cubicle filled with years of so much junk my desk is nearly unusable, while you are on the precipice of taking over the version control world? OK, let’s take a look at what happens when you try to do too much. A great idea, years ahead of it’s time that just didn’t catch on. And still hasn’t. Ladies and gentleman, I give you Aerocar:

What are the most important methods of travel in our modern world? The automobile, and the airplane. The automobile, an amazing invention that let’s us live 30 miles from our office, or go to the store when we need something, even if it’s dark already. I am told before the automobile was invented people got along somehow. Personally I don’t even like to think about it. And don’t even get me started on the airplane. Without the airplane, my children would never have seen Disney-world – because I could never handle that drive (not with my kids anyway). It’s just like a big, fast, car in the sky. And like an automobile, practically anybody can drive one – provided you have hundreds of hours of training and understand that in an airplane when you have a “fender bender”, everybody dies.

But what happens when you get where you’re flying? If you left home, you probably left your beloved automobile there. Well not if your airplane is a car. A car that is an airplane. An airplane that is a car. It’s like peanut butter and jelly. No, it’s even better than that. It’s like peanut butter and chocolate. So why did I embed a video from when people got their news from movie theaters because 24-hour television news channels did not exist? More recent films of Aerocar exist. But the truth is they don’t matter. Why? Because it’s a car that is an airplane. It’s not just a chance crash into another car on the highway at 70 miles per hour. It’s a chance to hurdle out of the sky at terminal velocity into cars on the highway that are doing 70 miles per hour. It’s not like peanut butter and chocolate. It’s like alcohol and power tools. Let’s put safety aside for a moment. As a car, it makes the Edsel look attractive. And to be effective as an airplane, you have to bring a small trailer (just about the size of an airplane wing) wherever you go. It tried to do too much. So you can go see one of the six that were built at various museums around the United States.

I’m a guy. I love tools, whether I need them or not. I love a lot of things that don’t make sense. I love sledgehammers. I love drag racing – because I can think of no pursuit more ridiculous pursuit than going 1/4 mile in a straight line as fast as possible. Naturally, I love this thing. If I have to check out of this world, I can’t think of a better way than crashing a flying car. There would be no terminally ill men in this country if crashing a flying car were offered as a method of euthanasia. But it was the best thing I could come up with to make my point. A tiny motorcycle that fits in your plane is a more practical idea.