That’s what I’m doing today thanks to a relatively freak accident with a staple gun yesterday. I won’t bore you with the details (that would confirm what a bonehead I can be sometimes). Just suffice it to say that, it could have been a lot worse.
For the last few months, I’ve had this idea that I wanted to try a linux desktop machine as my main development computer for a while. With the release of Ubuntu 9.04 in April, I decided to put together a machine and give it a try. Unfortunately, I had to wait a while in order to get a large project completed so I’d have time to do the testing an building.
Finally, in July, the project was completed and I ordered a few hundred dollars worth of new gear to update a desktop machine that I had sitting idle and installed Ubuntu 9.04 64-bit. There are a lot of great things about Ubuntu linux and I was very impressed with the performance of the OS on a quad-core processor with a pile of RAM.
Unfortunately, it wasn’t a Mac. Let me explain what I mean by that. Read more…
The title alone may offend some folks that read this post, but, please, hear me out before you close the browser window and go away muttering “this guy has no idea what he’s talking about”. I was talking to a developer friend of mine today and he made the statement “there is no such thing as perfect code”. The statement kind of took me by surprise but as we talked through it, I came to see his particular point.
How many times have you written an application or feature that solved a particular problem and then gone back to look at it later and thought to yourself “this is some really crappy code that I wrote–I wish I could redo this and do it ‘right’”? I know I have had that thought countless times looking at things I’ve written over the last 11 years of my professional development career. Did we think the code was “crappy” when we launched the application? Chances are the answer at that time was no. So, what changed?
Read more…
I dodged a very large (metaphorical) bullet yesterday. I’m not in the habit of trying to find bullets to dodge, but this one found me because it tuns out I didn’t plan as well as I thought I had.
It all started yesterday morning when a client asked me to make some batch updates to the data in his MySQL database. So, I wrote a script to make the required updates. Before running the script, I made a backup of the database in case something went wrong. Everything was good so far. I ran the script, checked the database to see if anything looked amiss and called it a night (oh yeah, this was like 11:00pm last night). This morning, I get an urgent text message from the client saying that the data didn’t look quite right. No problem I think, I made a backup copy of the database last night, I can fix this. But nooooo, that database backup wasn’t around any more. Why, you ask? Oh yeah, that. I saved it to the same location that the regular, nightly backup saves to. So by the time I needed the backup this morning, it was already gone. Luckily, the eventual fix was very simple once I figured out where my script had gone wrong. It could have been really ugly though.
Read more…
One of the things that I’ve missed greatly since moving to using a laptop as my primary machine just over 3 years ago is the ability to run multiple monitors. My old tower machine had a pretty hefty video card (for the time) in it that had both DVI and VGA connectors built in. At the time, I ran twin Dell 17″ LCDs off that card and loved the advantages that having twice the screen space gave me.
That all changed when I bought a Dell 17″ laptop and started using that as my primary machine. While you can leave the laptop open and use the internal LCD screen with an external monitor attached to the monitor connector, that configuration has never suited me well. I have this “condition” that things I deal with on a regular basis need to be symetrical (my wife thinks I should be in therapy for it, I think it’s just a matter of wanting things to look “right”), so having a laptop open next to an external monitor just never appealed to me.
Read more…