Wake Me Up When September Ends

I’m sick again. Same thing as last time — which wasn’t even 2 months ago. Feels like there’s a tear up my throat all the way over to my right ear. I went to the doctor, and guess what they gave me? Lortabs.
Lortabs are a serious narcotic, but I swear every time I go to the doctor they prescribe them for me…
Skin your knee? Have a Lortab!
Sore throat? That’s a Lortab!
Rip the skin off your arm? You’d better believe that’s a Lortab!
No wonder so many people get addicted to prescription pain medication.
I’m not taking it. I’ll take a couple Advil, eat chicken soup, drink Gatorade, play lots of Zelda on my SNES emulator, read and sleep. That’s my prescription. I fail to see how narcotics are going to make me healthy.
I can’t wait for this month to be over. The last 2 have not been good, but October is gonna be fun!

Time for a Branch?

So Apple’s update is in the wild, and its become clear that they’re forcing a choice — at least for the time being. Either you run the latest and greatest, but disappointingly useless Apple firmware v.1.1.1, or you use what the community has to offer based on 1.0.2. Here’s a nice chart that might make the decision easier…
wired-iphone-diagram.jpg
On the “Official” side, you can add a few new shortcuts, and the ability to disable GPRS.
On the “Hacked” side, you can add Assisted GPS, a customizable Home Screen, remote access to your iPhone, and hundreds of games through emulation.
In my opinion, not a tough choice. If Apple so badly wants to eliminate the 3rd party development market, maybe they should give us some decent software for our very expensive phones. I frankly consider their new firmware to be a downgrade.
I think it’s time to spin off a new branch. Apple can do their thing, and continue to release boring, pointless updates that do nothing but offer us a new way to spend money on their DRM-laden music store. The community can continue to develop the software people actually want. Maybe someday they can merge the branch back with Apple’s trunk, but for the foreseeable future, I can find no reason to let iTunes helpfully “update” my phone.

Dream October

I love to travel. Its one of the things I enjoy most in life. You might not think it if you’ve ever been in an airport with me — I may appear to be very stressed or pressured, but neither would be true. I really just have my game face on. Travelling is not something to be taken lightly, and an airport is like a battleground. You have to conquer it! An airport requires a combination of skills… In fact, far be it from me to draw a sports analogy, but I imagine it must be like a football game…
You need strength and a quick wit to push through the lines of defense (in this case, retarded travellers, milling around and bumping into each other, trying to block your path to the goal line).
Composure and charisma to present yourself well to the critical audience (the TSA and other security officials, who are only too happy to turn on you if you make one false move (like trying to bring a bottle of water onto the plane, or reading a potentially inflammatory book.))
And of course, strategy and planning to make sure the whole game day comes together in your favor.
postcard60.jpgIts fitting then, that my almost 2 year hiatus from air travel ends in October with a trip to Wisconsin, the home of the Green Bay Packers. I’ve heard that, aside from the football (if you’re into such things), there’s not that much else that’s exciting about Green Bay, but I don’t care. I get to board a plane, rent a car, and discover a new part of the world. Plus, I get to meet some of my colleagues who I work with every day, but have never actually seen in person.
And literally as soon as I get back from that trip, we hope to be off on vacation. This flight, rental car, and hotel at our own expense — but infinitely more valuable. We’re $200 away from booking our trip, with a full 10% of the cost having been covered by the wonderful people who hit the Donate button to send us on our first vacation in 6 years. We’re staying in a 4 star hotel, on a beach and with 2 pools, renting a convertible, and driving it to a day at Universal Studios. And its just gonna be the two of us (well, us plus the baby in the belly — we were unable to find anyone who would be willing to host our fetus while we went away).
I’m very much looking forward to traveling again (by plane, that is — a little sick of the 8 hour drives)! October is gonna be a FUN month!

Not Gonna Update

I’m not updating my iPhone to 1.1.1 until it gets hacked. A quick feature comparison shows that the 3rd party community’s software is much cooler than anything Apple released today.
In fact, the only truly compelling feature in this much-anticipated update is the ability to turn off GPRS while roaming. But I won’t be roaming any time soon, so I think I’ll keep playing my NES games and chatting on AIM and MSN (with audio notifications)… Thanks anyway, WiFi music store which I will never use.

Benjamin Update

Lately Ben has been getting up earlier in the morning. This isn’t so great for mom or dad, but you’d never know it from talking to him. He loves waking up in the morning! He’ll usually play by himself in his crib, and work on a bottle for a half hour or so, but after that someone needs to come get him now.
bentrees.jpg This morning I let him roll around the bathroom in his walker while I showered and shaved. He was very interested in the shaving part, and stared at me with this WTF? face until all the shaving cream was off my face.
He’s not making much progress on talking — although he’ll often make noises in response to noises we make, and sometimes he babbles and squeals to himself while he plays. He’s very interested in his surroundings, and when we go for walks, he pulls himself to the edge of his stroller seat so he doesn’t miss anything. This weekend we went to the park for a picnic lunch, and he was brave enough to crawl off the blanket and onto the grass so he could check things out.
There is still no sign of a single tooth, despite the fact that most of his younger friends have two or more already. There has been copious amounts of drool lately, and whenever that happens we speculate that a tooth can’t be far behind… The lack of teeth doesn’t really slow him down though. benpark.jpgHe’ll eat anything you give him (or that he finds on the ground) and really likes chewing on apples — once you take a bite out of it for him. On the other hand, he’s getting a little more frustrating when it comes to actual meals — he’s got an attention span like his dad, and although he loves food, doesn’t have much patience for meal time, and getting him to finish a bottle when he’s not in bed is a daily battle.
His greatest achievement so far, though, happened on my way to work this morning. I got a call from an excited Nicole who let me know that Benjamin had taken his first step. We knew this couldn’t be long in coming, because he can walk, and even run, quite confidently when holding on to something. He frequently runs laps around the coffee table, squealing with glee. And he’s definitely ready to graduate from crawling — you should see him go! When he sees something he wants, he tucks his head down and charges for it. You have to run to catch him!
It’s absolutely terrifying how fast he’s growing up. Someone came over the other day and commented that he doesn’t look like a baby any more — he looks like a little boy. And its true! Despite his limited ability to communicate, and get around, he’s very much a little person now, and very much a wonderful little person too.

How I want to design software

…provided by Albert Einstein
Any intelligent fool can make things bigger [and] more complex… It takes a touch of genius, and a lot of courage to move in the opposite direction. 

This is how you get old

One day you realise your feet feel better if you wear slippers while at home. Shortly after that, your wife decides that wearing an apron while doing house work is a sensible idea. Then before you know it, you’ve become your parents…

Generating RSA Keypairs on Mac OS X for a *nix web-server

I’m sure there are many of you who have long been comfortable with RSA keypairs, so I post this as much for my own reference, as for those like me who stumble around the Internet trying to find coherent instructions on how to do this. These instructions work for OS X 10.4 — not sure about other versions or *nixes. I plan to apply them to securing SSH on my iPhone for easier file transfers though.
Step 1: Open Terminal
Usually found in the Utilities folder of Applications (but if you didn’t know that already, this might not be the right topic for you!)
Step 2: Create your public/private key pair on your local computer

  • At the command prompt type: ssh-keygen -t rsa
  • Hit enter to accept the default file name and location

Step 3: Copy your public key contents into the “authorized_keys2” file on the remote server

  • Type: ssh username@remoteserver.com 'cat >> ~/.ssh/authorized_keys2' < /Users/Youruser/.ssh/id_rsa.pub
  • Enter your FTP password for the remote server when prompted
    • If the file didn’t already exist on the remote server, it will be created, don’t worry.

Step 4: SSH at will!
You will never need a password from your account on your local computer again! Note that you’ll need a public key provided for each client computer/computer account you want to use to connect to the server.

Address Book vCard Publishing with AppleScript and SCP

The one piece of my .Mac replacement I’ve been missing is a way to publish our address book to the web. Every different web mail app has its own address book, and none of them sync with each other, with Outlook or, for me, Address Book.app — rendering all of them useless. So I needed my own way to, in a pinch, get addresses online. vCard PHP provides the parser and renderer, but I, obviously, needed to provide the group vCard for it to show me. Enter AppleScript again.
The goal of this script was to invoke Address Book.app’s Export command on all of the contacts in its database. I found a script online that exported individual vCards, so with a little modification I was able to get it to dump out a single group vCard. The next challenge was getting it up to my webserver.
I’m learning UNIX as well as AppleScript, so I was quite happy to put SCP to work. However, I hit a brick wall when trying to get AppleScript to pass in my server password. It can’t do it. I searched all over the Internets, but apparently once AppleScript invokes SCP, it loses control. And SCP obviously doesn’t have an AppleScript dictionary of commands. This behaviour is quite different from SSH, with which you do not lose control.
This sucked for a long time, until I finally broke down and decided to learn about RSA key pairs for authentication. I’ve been avoiding this for quite awhile now, because I frankly like just using a password, and I was scared of learning such an obscure new topic. But I finally figured it out — although that’s a topic for another post…
Anyway, assuming you have key pairs set up with your server, this script will do the trick. As I mentioned, it exports your Address Book to a group vCard in a given folder on your local hard machine, then SCPs the file up to a given folder on your web server. Point vCard PHP to that file, and schedule the AppleScript to run at a specific time using iCal, and you have an updated Address Book online!
Download the Script Here

With a heavy sigh of relief…

Part 2 of my increasingly long project is handed off to QA. 3 months of bug fixes, here we come! It’s OK though, cause I’m finally going to be allowed to travel to meet the people I work with…