Zombie Zen

Zombie Zen Blog

New Go Stable Release

Posted

Go gopher

Yesterday, the Go programming language announced their second stable release, introducing language changes, better packages, and general speed-ups. I’m proud to say that I helped out in a small part by contributing a patch to the zlib package.

For those of you who haven’t heard me talk about Go, it’s a programming language that brings all of the pleasant features from scripting languages and mixes it with the simplicity of C. Its syntax and feel is unlike any other language, but after a week, it begins to feel like second nature, and it’s now one of the first languages I grab to solve a problem. I can’t say enough good things about it, and if you haven’t already, download it and try the tutorial. (And yes, it will feel weird at first. Give it a week if you’re coming in fresh.)

I’m also excited that the next weekly will include my implementation of the SPDY protocol — Google’s improvement to the HTTP protocol — as one of the standard packages! The Go development team is exceptionally friendly and open to contributions, and I must say, this is the most fun open source project I’ve worked on. If you want a fun open source project to help out with, start hanging out on the go-nuts mailing list.

Congratulations to Russ and everyone involved on a successful release!

Texture Mapping!

Posted

Tree texture-mapped onto cube

It’s been a while since I’ve posted because of some events that required my attention, but I’m back with yet another goray rendered image! A lot has changed in the rendering infrastructure (refactoring and such), and now it supports spot lights and texture mapping! Texture mapping and Blender export have not been merged to the trunk yet, but they’re coming soon.

The other exciting news is, if you’re bold enough, you can play with goray, too! Check out the Sourceforge project!

After fixing my ray/triangle intersection code, I’ve moved to working on the material system for my raytracer. I’m starting on the simple material first: Lambert shading with recursive raytracing for reflection.

For those who don’t know that much about raytracing, the Wikipedia article is surprisingly informative. The cool part is that the same code that you use to compute the normal scene just gets called recursively to create the reflection. It also makes physics class fun when you can readily see that just by applying the Law of Reflection, you can make cool effects. Next stop, Snell’s law!

When you have a bug in an enterprise program, money is lost.  When you have a bug in a graphics program, art is created.

I’ve been working on rewriting parts of the raytracer I wrote in Go in x86-64 assembly.  The test model I’ve been using is Suzanne, one of the primitives in Blender.  Needless to say, something in the assembly code is not right, but it’s the first actual image the raytracer has spit back since I removed the pure Go implementation of the ray/triangle intersection code.

When you have a bug in an enterprise program, money is lost. When you have a bug in a graphics program, art is created.

I’ve been working on rewriting parts of the raytracer I wrote in Go in x86-64 assembly. The test model I’ve been using is Suzanne, one of the primitives in Blender. Needless to say, something in the assembly code is not right, but it’s the first actual image the raytracer has spit back since I removed the pure Go implementation of the ray/triangle intersection code.

FIRST Experiences with MongoDB

Posted

I’m currently working on a FIRST scouting data management project in my spare time. The requirements I’m working with are fairly well-defined, but the statistics collected change from year to year. I want to be able to use the same software year after year and keep historical data intact. I’m using Django for the front-end, but instead of using a traditional SQL database, I’m experimenting with using MongoDB, one of those new, fancy No-SQL databases.