Matt Hackmann

MattHackmann

The thoughts and goings-on of some programmer dad.

Kirino Kousaka

Kirino Kousaka of "My Little Sister Can't Be This Cute" fame, drawn for the ANN Go to Japan contest. Sadly, I have not actually begun to watch this show (was busy finishing out Toradora!), but it certainly is high on my list.

I'd say that this is, to date, the fanciest piece I've attempted over all (color, background, pose, etc). Arguably, I think I may have missed on the pose, but moving out of one's comfort zone is how one improves.

Made with Illustrator and Photoshop CS4

Rise From Your Grave - Chainploder

I was poking around my giant hard drive a couple days ago, looking at a bunch of old programming projects I'd done. Some of these had some pretty cool concepts behind them but, for whatever reason, I never completed them. So, in a series of blog posts shamelessly ripping a line of dialog from Altered Beast, I will present to you some of the cooler of these projects - complete with all their original source code. Today's highlight is Chainploder.

Continue Reading

Another Code Battle Royale

My brother and I are programmers. This must be discreetly understood or no good will come of the story I am about to regale. Every once and again, we'll embark on a coding competition. Last time was a game, this time a chat client. My weapon of choice was various web languages (PHP and JS for the programatic stuff) and his was C++. Arguably, I had an advantage.

Even though I was able to bypass the whole sockets layer, I did set a rule for myself: I could not resort to using a transactional database (i.e. MySQL). Granted, I didn't foresee any issues as I had the power of APC caching on my side. It turned out that this would be what I fought with most and, eventually, just give up on.

For whatever reason, despite the fact that apc_store was returning success on caching an object, it would not persist. A quick call to apc_exists immediately after the store command with the same cache key confirmed this. I went round and round with this issue. Sometimes the object would persist for one or two sessions but ultimately would up be dropped. I read somewhere that storing an array of objects could cause issues (which I was doing), so I serialized the bitch before caching. No dice.

In the end I said "screw it" and just created my own disk-based caching model. I decided to take the whole thing a little further and account for cache collisions (two instances accessing the cache at the same time) which may or may not work. The only reason I even bothered was because I have an ID variable that needs to iterate for every single chat posted and sought to avoid two scripts running simultaneously and writing an erroneous value (a point that was raised in some fashion during my Digg interview.

So, two hours after the initial one we'd allotted for the competition, I wound up victorious. While not glamorous, my chat client does indeed work: Live Demo - Source

What of my brother's program? Well, let's just say the computers weren't talking too nice and the program kept crashing.

Victory is mine!

Hanako in Winter

A picture that evolved from something I sketched during a long meeting at work.

So, this is the second time Hanako has made an appearance in a completed picture. And, lucky me, she decided to bundle up all nice to prevent me from having to draw limbs and digits. Arigatou, Hanako! Sadly, she did forget her hat and now the snow is piling up atop her head.

Inked in Sai and colored in Photoshop.