Havenjark Color Theme for Xcode 4

I've been experimenting with low-contrast color themes in my source-code editors. For a while, I thought I had settled on Zenburn. However, I recently ran across Havenjark in the Eclipse Color Themes plugin, and I decided it is perfection.

The only problem was that, while I could find Havenjark theme files for Eclipse and Textmate/Sublime Text 2, I could not find one for Xcode. So I converted the Eclipse color theme to Xcode 4's color theme format by hand.

If you'd like to try Havenjark in Xcode 4 yourself, download Havenjark.dvtcolortheme and copy it to your ~/Library/Developer/Xcode/UserData/FontAndColorThemes/ directory. Then, in Xcode, go to Preferences -> Fonts & Colors and select it.

My theme uses the Bitstream Vera Sans Mono font, which you can download for free from various locations on the Internet, or you can just change the font to something of your liking.

I'm not going to bother converting this to Visual Studio's color-theme format. There is no point in trying to make Windows development look nice.


I got fed up with the complexities of the various iPhone flashlight apps I've tried, so I whipped up my own dead-simple flashlight app.

It has three buttons that control the LED on the back of the phone:

  • On
  • Off
  • Flash (once per second)

That's it.

My hope is that keeping it as simple as possible means it will load quickly and stay resident in memory, so I can have light instantly whenever I want it. This is a lot more important to me than all the controls and "features" provided by other flashlight apps.

You may want to build your own dead-simple flashlight app, or maybe you want to see some code that controls the LED light. The source code is on GitHub: https://github.com/kristopherjohnson/KJFlashlight

Apple Product Names

Correct: iPod, iPhone, iPad, iTunes, Mac, MacBook, Apple

Incorrect: IPOD, Iphone, I-Phone, IFone, i-PAD, EyePad, Ipadd, I-Toons, MAC, MAC Book, McIntosh, APPLE, AAPL

(Don't be an idiot. This isn't complicated.)

Re-attaching an iMac Stand After VESA Mount Use

We recently purchased a new iMac to replace a old iMac. The old iMac was attached to a wall mount using Apple's VESA Mount Adapter, so I had to remove the old iMac from that adapter and attach the new iMac to it. That went fine, but then I had problems re-connecting the original stand to the old iMac. What follows is what I learned, and I hope it helps others who have the same problem.

Downloading an Image from Gravatar Using the Command Line

I am signed up for the app.net alpha, and wanted to upload my avatar picture. Unfortunately, I can't find my avatar picture anywhere on my computer.

Gravatar is a free service that allows you to save your avatar (picture) for use by multiple websites. Gravatar has a copy of the avatar I wanted, so I hoped I could just download it via the same user interface you use to upload images. It turns out that you can't do that: the user interface lets you upload pictures, but does not provide a download option. So I had to figure out how to retrieve my image the way that a Gravatar web client would.

According to the Gravatar documentation, one can get a image for a user by doing an HTTP GET with a URL of this form:


where HASH is the MD5 hash of the user's email address. You can calculate this using the md5 command-line utility.

So, here is the complete command line that will calculate my MD5 hash and the retrieve the image using the curl utility:

Job Title: Architect

What follows is from an actual job opportunity that was presented to me. It has been edited for brevity and to remove identifying information. I also cleaned up typos and broken grammar (recruiters apparently never read these things before sending them to candidates).

Job Title: Architect


  • Drive Solution Architectures for high performance and very highly scalable platforms.
  • Collaborate with key Telecommunication Architecture on definition of delivery of solution.
  • Participate in Joint Application Design/Requirements sessions
  • Create and present PowerPoints to leadership describing architectural approaches and solutions

Seeking Enterprise Architecture related type candidates. Not seeking a candidate with developer, project manager, or solution architect experience.

Skills & Experience Needed:

  • UML 2 3-5 years Required
  • Visio 5 years Required
  • MS Word 5 years Required
  • Agile Methodology Intermediate Desired
  • OAuth Intermediate Desired
  • Cloud computing Intermediate Desired

Note what is not required of an Architect: Any knowledge of how to actually produce working software. All you need to know is how to use Visio and PowerPoint.

Distributing a Custom iOS B2B App

I recently went through the process of distributing a free custom B2B app in the App Store. I hit a few snags, and I found very little information about the process, or help in online forums, and Apple Support assistance was very slow. So I'm documenting what I learned here. I hope it helps someone.

Entity Framework Cheatsheet

This is my cheatsheet for using Microsoft's Entity Framework API.

(The existence of this page should not be taken as an endorsement of Entity Framework. It's not something you should learn more about if you don't have to. It's just another complicated ORM framework with its own quirks and annoyances.)

What Siri Is Good For

A recent study indicates that Apple's Siri doesn't perform very well when searching for information. I think most people who use Siri would agree, but "searching" is only one thing that Siri does.

I don't use Siri much for general question-asking. ("Siri, is it raining?") Instead, I use Siri as a quick way to perform operations on my phone. For example:

  • "Add eggs to my groceries list"
  • "Text my wife I'm on my way home."
  • "What is 345 times 843?"
  • "Set timer for five minutes."
  • "Set alarm for 6 AM"
  • "When I get home, remind me to take the trash out."
  • "Give me directions to Mall of Georgia."

Siri works almost perfectly for these types of requests. I can do all of these things without unlocking my phone, typing anything, or navigating through user interfaces, saving time and minimizing interruption of whatever I'm doing.

There was a period a few months ago when Siri was offline/unavailable a lot, but it is pretty reliable now.

Apple hasn't done a good job in educating people about Siri's capabilities. Anyone who tries to do what the celebrities do in the TV commercials will be disappointed. Instead, I'd recommend reading something like Talking to Siri: Learning the Language of Apple's Intelligent Assistant which can give you all the necessary instructions and tips.

Siri is far from perfect, but it is a really nice feature, and every other phone and computer maker is adding similar features. I'd recommend learning how to use the features effectively, rather than dismissing them due to their imperfections and limitations. Or you can just keep typing everything, like an old person.

HTML Man pages

If you've used UNIX-based systems, you're probably aware of man pages. And you know that they suck.

To make them a little less sucky, I wrote a little shell script called hman which displays a man page as HTML in the browser, rather than forcing you to use less. Here it is, if you'd like such a thing. (You'll need to install man2html via Homebrew).

So, with this, you can run hman bash and get something halfway usable.

Syndicate content