Author Archives: Graham

About Graham

I make it faster and easier for you to create high-quality code.

Is privacy a security feature?

I’ve spoken a lot about privacy recently: mainly because it’s an important problem. Important enough to hit the headlines; important enough for trade associations and independent developers alike to make a priority. Whether it’s talks at conferences, or guiding people … Continue reading

Posted in Privacy, software-engineering | Leave a comment

Thoughts on Tech Conferences

This post is being, um, posted from the venue for GOTO Copenhagen 2012. It’s the end result of a few months of reflection on what I get out of conferences, what I want to get out of conferences, what I … Continue reading

Posted in advancement of the self, books, Business, NSConf, Talk, WWDC | Leave a comment

BrowseOverflow as a Code Kata

This article was originally posted over at InformIT. My goal in writing Test-Driven iOS Development was to take readers from not knowing how to write a test for their iOS apps, to understanding the TDD workflow and how it could … Continue reading

Posted in advancement of the self, books, code-level, TDD, TDiOSD | Comments Off on BrowseOverflow as a Code Kata

Using GNUstep libraries with Xcode

I was recently asked about building projects that use GNUstep from Xcode. The fact is, it’s incredibly easy. By default, GNUstep on Mac OS X installs its libraries to /usr/local/lib and its frameworks to /Library/Frameworks. Therefore if you want to … Continue reading

Posted in code-level, gnustep, tool-support | 1 Comment

Building a unit test target with GNUstep make

Just a quick note on how I build my test tools (they run separately, either by manual invocation or via CI) when I’m working in GNUstep. Firstly, you’ll need Catch. Then given test files that look like this: test_class.mm #define … Continue reading

Posted in TDD | Comments Off on Building a unit test target with GNUstep make

So you’re off to WWDC

Jeff has updated his excellent WWDC first-timer’s guide, and I thought I’d augment that with some things I’ve noticed. The easiest and cheapest way to get from SFO to San Francisco is via BART. Once you get to the arrivals … Continue reading

Posted in WWDC | Comments Off on So you’re off to WWDC

Metacognition-driven development

To find out what techniques work for you in a field of practice, you often need to think about how you think. To decide what it is that drives your learning processes, and then adapt your practices to suit that. … Continue reading

Posted in advancement of the self, software-engineering, TDD | Comments Off on Metacognition-driven development

Messing about with Clang

I’ve been reading the Smalltalk-80 blue book (pdf) recently, and started to wonder what a Smalltalk style object browser for Objective-C would look like. Not just from the perspective of presenting the information that makes up Objective-C classes in novel … Continue reading

Posted in code-level, Mac, software-engineering, tool-support | 5 Comments

Classes are globals, too

Software engineers are used to the notion that global variables are a bad idea. Globals are usually accessed by asking, not by telling. They introduce tight coupling between any module that uses the global and the one that declares it, … Continue reading

Posted in code-level, software-engineering, TDD | Comments Off on Classes are globals, too

Software-ICs and a component marketplace

In the previous post, I was talking about Object-Oriented Programming, an Evolutionary Approach. What follows is a thought experiment based on that. Chapter 6 of Brad Cox’s book, once he’s finished explaining how ObjC works (and who to buy it … Continue reading

Posted in Business, code-level, OOP | Comments Off on Software-ICs and a component marketplace