Skip to content

{ Category Archives } Uncategorized

git index explained like a magic trick

Square uses git for version control. Prior to joining I had used Perforce extensively and lightly used Subversion for home projects. Like a lot of people I struggled with git‘s steep learning curve – confusing terminology and commands with similar names to Subversion but an entirely different function (hello git checkout!). It was a rough [...]

New job!

February 2nd was my final day as a Google employee. That same day my wife and I left for a brief vacation in Costa Rica, and on my return I started as an engineer at Square. One month in and I’m loving it, very happy that I made the change.

Indoor Street View

This morning Google announced it’s Google Art Project (launch blog post). This is a really exciting project, utilizing Google’s Street View technology to bring art in front of a world-wide audience. For a while I was working on a 20% project with the team to store and render the building floor plans. On the surface [...]

A game in HTML5

[It's been a while since I updated my blog, and even though I have low readership I should blog more to improve my writing skills. Write that one down as a New Year's resolution.] In October of last year Google held an HTML5 Game Jam to spur game development in HTML5. I decided to attend [...]

Raytracer source code

I’ve put the source to my JavaScript raytracer up on GitHub. The version up there is more recent that the published demo, but most of the differences are not visible. I grew up using more traditional SCM software – Microsoft’s Visual SourceSafe [1], CVS and Perforce – so I find myself on unfamiliar ground with [...]

Correction: JavaScript logical XOR and parity

In an earlier post (which I’ve since deleted to prevent incorrect knowledge from spreading) I claimed that JavaScript did not have a logical XOR operator and explained how to compute the parity of numbers. Turns out I was wrong on the XOR operator, and there is a simpler way to compute parity. Nathan Lucash pointed [...]

A raytracer in JavaScript

I’ve spent a little time on and off over the last few weeks implementing a simple raytracer in JavaScript. The implementation of the floor inspired the post about JavaScript’s lack of a logical xor. I wrote the raytracer to explore HTML5′s canvas capabilities and the computation performance of browser’s JavaScript engines (such as Chrome’s V8 [...]

JavaScript logical XOR and parity

[UPDATE: 10/13] The information in this blog is incorrect and mis-leading. I have written a new post with corrections. Apologies. I recently had the need for a logical XOR (eXclusive-OR) function in JavaScript. Unfortunately JavaScript doesn’t provide one, but from the operator’s truth table it’s pretty easy to implement: My use case required me to [...]

Ahead of the Curve

I recently came across a video for a new Ubisoft game called From Dust. It was co-announced at the recent GDC Europe by the lead designer and engineer who gave presentations on it. I’ve embedded the tech demo video below: What struck me as I watched this video was how similar it was to a [...]

My demos could beat up your demos

In the mid 90′s I used to be fairly active in the PC demoscene. It was a heady mix of images, sound and impressive technical chops. There was something fun about working within the tight constraints of then current PC hardware – an 8-bit image display measuring 320×200 pixels (or 320×240 if you cared about [...]