As a Canadian, eating potato chips is part of my DNA. I was understandably alarmed when I moved to Munich and was greeted with a paltry chip selection. I could choose from […]
Over 20 years of programming. From video games to communications; science to finance; compilers to business processes. Too many languages to even track anymore.
Here's looking to another 20 years towards mastery of the craft.
The flexibility and usefulness of an API relate directly to its orthogonality. But what does “orthogonal” mean? It’s a term that’s tossed around a lot in programming, with varying degrees of clarity. […]
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 job it’d need to exhibit human level […]
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 that perhaps a.size is wrong. What is […]
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 be documented anywhere, nor was I able […]
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 navigate it quickly to find the right […]
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 in Leaf. The issue is the result […]
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: the minimum/maximum points where it will draw. […]
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 lacks anything but an axis aligned circular […]
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 compiling useful libraries for iOS and Android […]
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” are so common we might think it’s […]
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 thought would be relatively straight forward has […]
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 automatically. I was always uncertain of that. […]
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 tunnel and a smooth camera. In this […]