All of the things labelled as Posts, so that crawlers have a place to find them.

Programming won’t be automated, or it already has been
I’m afraid of a robot taking my job. I don’t care about the job part much, I’m afraid of the actual robot. To replace my

The meta-field dilemma: `a.size` or `size(a)`
I can’t decide whether a.size or size(a) is more correct when getting the length of an array. While writing Leaf I have a recurrent feeling

Importing Blender object normal maps with permutations
We used a lot of object normal maps in RadialBlitz. Figuring out how Blender encoded these was part of the challenge. It didn’t seem to

A game of what’d they press? Hit testing in a 2d/3d layout
A simple tap of the screen invokes a staggering amount of calculations. That screen is actually big tree of UI elements, and we need to

The bitwise complement, or not operator, is unsafe
I came upon a problem with bitwise complement (logical not): it isn’t safe. It’s nothing new, but it really registered while implementing the logical operations

Stuffing curves into boxes: calculating the bounds
Now that we’ve drawn beziers and arcs there’s only one piece missing in the vector API. We need to calculate the bounds of the curve:

Rendering an SVG elliptical arc as bezier curves
I needed to draw ellipses and arcs. A vector API just wouldn’t be complete without them. Though opinions seem to differ as Apple’s Core Graphics

Porting Leaf from Linux to OSX
I recently ported Leaf from Linux to OSX. I figured it was about time to start making it cross-platform. The goal is to get it

The smooth sexy curves of a bezier spline
I’ve been dreaming and coding curves lately. They play an integral role in a vector drawing API, which I’m writing for Fuse now. “Bezier curves”

Ride the carousel of folly with a Python migration
I wanted to migrate my shelljob module from Python 2 to 3. I use this as part of the Leaf unit test setup. What I

Optional Types and Leaf: Removing automatic dereference
Optional values are one of the fundamental extrinsic types in Leaf, as are shared values. Originally optional values were used just like regular values, dereferenced

Smoothing 3d geometry, like a tunnel, with Catmull-Rom splines
An endless tunnel is the centerpiece of my game Radial Blitz. Flying smoothly through this tunnel was important to me. That required both a smooth

What is a normal map? An object normal map?
Normal maps preserve the lighting fidelity of a high polygon count model when it is reduced to a lower polygon count. Model designers tend to

Glowing graphics for that futuristic sci-fi feeling
Glow is a relatively simple effect that gives life to the graphics in Radial Blitz. It blends well into the sci-fi theme. Creating the glow

Radial Blitz – A rough journey from new technology to app store release
Finally, I managed to release my 3d action game “Radial Blitz” on iTunes yesterday. I encountered many obstacles along the way, but am quite happy

Are we forever cursed with buggy software?
Despite continuous advancements in programming it never feels like software is actually getting any better. It can certainly do more things, but it remains buggy

The unfortunate world of boilerplate code
Redundancy is one of the biggest sources of defects in programming. Boilerplate is highly redundant. While it may be easy to implement, and often necessary,

A pattern bandage for messy virtual functions
In my previous article the mess of virtual functions, I show how easily they introduce bugs and propose language extensions to fix it. Several comments

The very real mess of virtual functions
Virtual functions, though generally a blessing, have a defect-prone dark side. No language, that I know of, provides a way to encode when the base

The simple things I want in a text editor
A good text editor is the most important tool for me. My favourite text editor, Kate is unfortunately broken after upgrading from Kubuntu 12.04 to

Is reference counting slower than GC?
“Reference counting is slower than garbage collection”, a claim often made in the discussion of memory management. I heard it again recently when discussing Leaf;

What is the cost of reference counting?
Reference counting is a common form of memory management. In some languages, like Python, it’s the natural way objects are tracked, and in others it’s