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

Essential facts about floating point calculations
Floating point numbers are everywhere. It’s hard to find software that doesn’t use any. For something so essential to writing software you’d think we take

Be a good mentor, not a dickhead
I’ve worked with a lot of people of varying skill levels, from superstar programmers to not-sure-how-they-got-the-job types. Integrating and working with new people is always

Antialiasing with a signed distance field
When drawing basic primitives we want nice smooth edges. This means both pixel correctness and antialiasing. In my previous article about drawing a rectangle I

Get rid of those boolean function parameters
I need to make a quick variation of a function. The calculation, or behaviour, differs slightly on the needs of the caller. I throw in

Combining several GL draw calls into one: a rounded rectangle
My previous article explains how I draw a rounded rectangle using a shader instead of tesselation. The biggest remaining issue is using eight calls to

Quickly drawing a rounded rectangle with a GL shader
Rectangles appear everywhere in user interfaces, from the backgrounds of elements to rounded border decorations. It’s helpful to be able to draw these fast. I

Where the wild code grows
Sometimes I just like to sit back and code something. Free from deadlines. Free from requirements. Free from issue systems and planning teams. It’s so

Blocking and asynchronous operations without timeout are broken
Any time we are waiting for something to happen, from reading the disk to locking a mutex, we need to have a timeout. Without a

Debugging by binary searching through code revisions
What do you do when all normal debugging means fail? You can reproduce a bug, but the debugger just doesn’t seem to pinpoint it. Print

A bug, an error, or fault, and the irrelevance of classification
There’s a lot of confusion about how to classify software issues. Is something a programmer error, or is it an design defect? Is a misbehaviour

A swipingly good time with edge gestures
I’ve been working a lot lately on gestures and am currently working on a swipe-in panel class. Mostly we take these controls and behaviours for

How HTTP cache headers betray your privacy
I recently implemented Etag caching support only to learn its a privacy breach. Internet scum have coopted yet another technology to track us as we

Fast build turnaround time is essential
Being able to make a code change and quickly see the result is critical. The longer we have to wait, the more code quality suffers,

Cohesion and coupling: good measures of quality
What is good code? Even if I say nobody cares about your code the quality nonetheless does influence a project. Functional correctness reigns supreme, but

Nobody cares about your code
Nobody cares about your code. It was quite a shocking moment when I learned this in my programming career. I would take great care in

Using a hack, stifling the perfectionist, and moving on
The code works, but it smells funny. A simple if statement makes the bug go away, but we know somehow we’re just masking a bigger

Measuring finger / mouse velocity at release time
Any interface involving touch will inevitably need to know how fast the user is moving their finger. They touch the screen, drag their finger, release

Complexity theory isn’t required to be a programmer
Complexity is sometimes portrayed as a corner stone to the theory of computation. What good would algorithm analysis be if we had no way to

Visions of generics and templates: How parametrics are compiled
In the world of parametric programming our languages often seem quite varied and unique. At the core however are two primary approaches, let’s call them

What a compiler does: Parsing
Parsing is where the story of compilation begins. While it may mean something wonderful to us, our source code is merely a stream of character

Bringing blurry device independent pixels into focus
Device independent pixels, or points, are a convenient way to design for multiple devices. They allow a consistent layout without worrying about exact pixel densities.

Quelling the floating point demon in my line rendering code
A floating point demon had attacked my rendering code. Instead of drawing a nice straight line I’d get a devil’s tail flurried with barbs. It