I wanted to check out OpenMRS trunk and a couple branches from the subversion repository within the same local copy so that I could apply a set of changes to trunk and backport it to a couple prior versions in a single commit. Typically, when you check out a directory, you get everything underneath. But OpenMRS trunk and the branches I wanted are only a few of the bazillion folders and files underneath http://svn.openmrs.org/openmrs/. Checking out all of those folders would take a long time, place an unnecessary tax on the OpenMRS repository, and end up transferring a bazillion files that I didn’t need. While it’s not obvious, there is a way to do this with Subversion. The answer is in Subversions sparse directories feature. Thank you, stackoverflow! Here’s how I checked out only a subset of folders (trunk and a couple branches) from subversion:
$ svn co --depth empty http://svn.openmrs.org/openmrs
$ svn update --set-depth infinity openmrs/trunk
$ svn update --set-depth empty openmrs/branches
$ svn update --set-depth infinity openmrs/branches/1.8.x
$ svn update --set-depth infinity openmrs/branches/1.9.x
It appears that the folks at Shapiro’s Deli are almost as proud of Dad as I am…

I’ve seen some amazing TED Talks, but Dad does it better. Do I sound biased? I’m not sure he could do it justice in only 18 minutes, but I’d rate this presentation over most of the TED Talks I’ve seen to date.

On occasion it’s helpful to be able to pass both SSL and non-SSL requests through the same Apache configuration file. Using mod_write‘s RewriteCond and RewriteRule, you can perform URL rewriting differently depending on whether or not the connection is via HTTPS:
# For SSL connections %{HTTPS} is "on" -- the following will
# permanently redirect all non-SSL requests from remote sites to SSL
RewriteCond %{HTTPS} !on
RewriteCond %{REMOTE_ADDR} !127.0.0.1
RewriteRule (.*) https://example.com$1 [L,R=301]
The first condition is true if HTTPS is not on (the exclamation mark negates the condition). The second condition is true for any remote address other than 127.0.0.1. Since consecutive RewriteCond statements are AND’ed, the RewriteRule will only be applied to remote non-SSL requests and will permanently redirect (with HTTP code 301) all requests to an https address.
When Lorrie offered to get me a Colts jersey last year, I had to pick a player. That’s when I saw Freddy Keiaho single-handedly (literally, since one hand was in a cast at the time) tackle both the blocker and the ball carrier in one fell swoop. I saw his passion and I knew that I could proudly wear a #54 jersey. Now every time Keiaho makes a tackle, we shout out “Keiahoooooo!” And by the end of a game, my voice is hoarse!
After sitting in our basement watching the Colts on the big screen break the curse of Lucas Oil Stadium with an awesome 31-3 win over Baltimore, Lorrie and I decided to go for a walk in our neighborhood. Lorrie said it was too hot to wear a jersey and took her Harrison jersey off, but I insisted, “I’m not wearing it for warmth, I’m a fan!”
Just as we rounded the corner of our neighborhood clubhouse, a car pulled up and a young guy leaned out of the window. “Hey there. I’m Freddy Keiaho!” It was really Freddy Keiaho, his wife, and a bunch of her sisters. They saw my jersey and pulled over to say hi.
Freddy asked if we have a pen… of course, we didn’t. So, they invited us to climb into the back of the car and they drove us to our house to get a pen. Unbelievable! Lorrie and I were very impressed with him. An incredibly polite young gentleman.


Freddy Keiaho and a Freddy Keiaho fan

Traci, Freddy, Traci’s sisters and me
I noticed that jEdit would no longer start on my MacBook Pro with OS X 10.5.5. I’d try to run jEdit via Quicksilver as usual, but it wouldn’t open. Double-clicking on the jEdit application icon was just as useless. Nothing happened. I checked for anything that could be blocking it and restarted my laptop with no change. I upgraded to the latest version of jEdit but it still wouldn’t run.
It turns out that the latest Java update from Apple managed to break jEdit’s launch. After a decent amount of Googling, I ran into the solution. Basically, it involves replacing a symlink with its target.
rm /Applications/jEdit.app/Contents/MacOS/jedit cp /System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub /Applications/jEdit.app/Contents/MacOS/jedit
And it even came with an explanation:
The basic problem has to do with symlinks to the latest java application stub. It used to be that you could symlink to the stub, so that you could use whatever was installed on the user’s system. Now it seems that there are some problems with the launcher looking for files in the wrong directory, and using the actual stub instead of a symlink is required.
I decided to copy it here just to improve the odds of finding a solution for the next person. Thanks to those folks who discovered & reported the solution.

I’m enjoying my new iPhone 3G, though I haven’t gotten much time on a 3G network with it yet (at the summer cottage this weekend). Had to get a white one to get 16 gig (even though I was about 30th in line, the AT&T store had already sold out of black). It has noticeably worse battery life when 3G is turned on. Not a big surprise, but increasing the need for certain accessories. Rather than wondering what phone he used before the iPhone, I’m very curious if Steve Jobs is going to use an iPhone 3G as his day-to-day cell phone. That might be our best chance of finally getting a replaceable battery.
So far, Paul has been holding out for an Android phone. I’m too much of an early adopter. Steve Jobs has already milked me out of about five iPods, a MacBook Pro, and two iPhones. It won’t take much for me to switch to an Android phone if it can compete (or improve…can you say “cut and paste?”) on the iPhone.
Burkeware™ brings you Kidometer, a simple grep for Windows®, the Regular Expression Playground, and a long proud history of buggy code that often requires reboots of your computer.