OOP the Easy Way
Object-Oriented Programming the Easy Way: a manifesto for reclaiming OOP from three decades of confusion and needless complexity.APPropriate Behaviour
APPosite Concerns
FSF
Author Archives: Graham
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
Comparing Objective-C and Objective-C with Objective-C
A while back, I wrote an object-oriented dispatch system for Objective-C. It defines only three things: an object type (the BlockObject), a way to create new objects (the BlockConstructor), and a way to message objects (the dispatch mechanism). That’s all … Continue reading
Posted in code-level, OOP, software-engineering
Comments Off on Comparing Objective-C and Objective-C with Objective-C
The debugger of royalty
We’ve all got little libraries of code or scripts that help us with debugging. Often these are for logging information in a particular way, or wrapping logs/tests such that they’re only invoked in Debug builds but not in production. Or … Continue reading
Posted in code-level, iPad, iPhone, Mac, TDiOSD
11 Comments
TDD and crypto in one place
Well, I suppose if I’ve written two books, it’s about time I wrote a contorted blog post that references both of the worlds. I recently wrote an encryption module for an app, and thought it’d be useful to share something … Continue reading
Posted in code-level, Crypto, TDD
Comments Off on TDD and crypto in one place
Culture, heritage and apps
I said earlier on Twitter that I’m disappointed with the state of apps produced for museums and libraries. I’d better explain what I mean. Here’s what I said: Disappointed to find that many museum apps (British Library, Bodleian, Concorde etc) … Continue reading
Posted in Business
2 Comments
Test-Driven iOS Development
Here it is, after more than a year in the making, the book that they really did want you to read! Test-driven IOS Development (Developer’s Library) (affiliate link) has finally hit the stores[*]. I wrote this book for the simple … Continue reading
Posted in books, PCAS, software-engineering, TDD, TDiOSD
6 Comments
On the magic of key agreement
Imagine that you want to implement AirDrop, or something like it. Two computers that have (possibly) never communicated before are going to share a file. Now you know that you want to encrypt the file in transit so that only … Continue reading
Posted in Crypto
Comments Off on On the magic of key agreement