Author Archives: Graham

About Graham

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

Fun and games (with rewritten rules) in Objective-C

An object-oriented programming environment is not a set of rules. Programs do not need to be constructed according to the rules supplied by the environment. An object-oriented environment includes tools for constructing new rules, and programs can use these to … Continue reading

Posted in code-level, OOP | Leave a comment

Objective-Curry

Sadly it’s not called Schoenfinkeling, but that’s the name of the person who noticed that there’s no reason to ever have a function with more than one argument. What you think is a function with two arguments is actually a … Continue reading

Posted in code-level, Foundation, OOP | 1 Comment

A subtle [mis]understanding of monads

As I said when talking about Learning Phases, one of the things that happens when I’m trying to learn a new thing is that I build an analogy in terms of something I do understand. This can be dangerous when … Continue reading

Posted in FP, OOP | Leave a comment

Today I learned that I don’t even know how to Unix. I discovered that it’s possible for a POSIX system to leave PATH_MAX and similar variables undefined if it truly has no restrictions on their length.

Posted on by Graham | Leave a comment

About 10 years ago, we decided that the performance gains in single-core processors that come “for free” with advancing semiconductor processes were slowing down. Many chip makers switched to scaling the number of cores on a die, and promoted parallel … Continue reading

Posted on by Graham | 4 Comments

Like Java, only functional

An idea that clarified itself to me in discussion today is that Swift is to Functional Programming as Java is to Object-Oriented Programming: it is the thing that lets you write C and pretend you’ve adopted some posh-sounding “paradigmatic” non-imperative … Continue reading

Posted in code-level, Java | Leave a comment

Learning phases

I’ve been trying to learn things this week (specifically Haskell). So far I’ve been through a lot of different moods, and I thought it’d be handy to write them down so that next time I’m the teacher I can remember … Continue reading

Posted in advancement of the self, edjercashun | 3 Comments

I’ve realised that when I read that a tool or framework is “opinionated”, I interpret that as meaning that I’m going to have to spend time on working out how to express my solution in its terms. I have enough … Continue reading

Posted on by Graham | 1 Comment

The Tankard Brigade

I have a guideline that seems to apply to many pursuits and hobbies: any activity can be fun until there’s too high a density of men with beards and tankards. Of course, they aren’t all men (though many are) and … Continue reading

Posted in whatevs | Leave a comment

Some people like to refer to OS X as UNIX-like when it’s actually a UNIX. There was a time when it was UNIX-like and some people liked to refer to it as a UNIX, but it’s not now.

Posted on by Graham | Leave a comment