[Job] Design focused Cocoa developer for Espionage 3

Espionage is a highly rated personal data encryption app for Mac OS X. It currently follows a “source code available” policy, but we think the right thing to do is to completely open source the product. However, this comes with two significant challenges: If we open source Espionage improperly, there is an extremely significant risk […]

Better Objective-C through Clojure Philosophy

EDIT June 2, 2014: The TERecord implementation described here is not how the current TERecord implementation works. I updated the README on GitHub to show how it currently works. Ever since discovering Lisp, I’ve felt an almost… loathing for other languages. They make things too complicated. You feel that other languages encourage code that ends […]

The Ultimate Test Machine Saga

So, you want to quad-boot your Mac? What could possibly go wrong? This post explores that question. Motivation After upgrading to the latest Unibody, I decided to turn my old MacBook Pro into the ultimate testing environment. My goal was to be able to test and develop software for Tiger, Leopard, Snow Leopard, Windows XP, […]

Easy Cocoa Setup Assistants with TESetupAssistant

Setup assistants can be a great tool when you need to guide users through a series of steps. TESetupAssistant was born during my work on the 2.0 update to Espionage, when I discovered that many of its UI elements could stand to benefit from a generic setup assistant class. The gallery below shows some of […]

Error handling conventions in C programming languages

EDIT February 22, 2014: You’ll find the code for the functions mentioned in this post (and related ones) in TECommon Programmers have many options available to them when it comes to error handling.  A very common convention among C programmers is to make a function return a non-zero value if an error has occurred.  This […]