Meet the Pill-minder

Mon Feb 20, 2017

Many of my projects are not born of necessity, but out of amusement or curiosity. Well, here’s one that does both. Without tools, I can be pretty forgetful, especially of mundane things. Fortunately, I’m pretty good at knowing this about myself and coming up with solutions. This is the first physical solution I’ve built, though. Meet the Pill-minder. I’m pretty terrible at remembering to take pills, even worse on weekends when I don’t follow my normal morning routine.

Cards Against Deqmandity

Fri Jun 20, 2014

My two very good friends Amanda and Declan are getting married, and to celebrate, Janice and I throwing them a pre-wedding party. (No “bachelor” party tropes here!) By the time this post is published by Blogger, the party should just be wrapping up, and my favorite surprise should already be out of the bag. Declan and Amanda love games, and Janice and I wanted to have a game-themed part to the party.

Building a Custom Chorded Keyboard, Part 1

Mon Jun 24, 2013

As some of you might know already, I like to nerd out about input devices. I’ve had the desire to build and try out a chorded keyboard ever since I first watched The Mother of all Demos. Chorded keyboards have had some popularity with wearable computing enthusiasts due to their one-handed use, but I thought they might also be interesting for ergonomic reasons. Building a chorded keyboard would also be a great learning experience as a deep dive into the workings of USB HID devices.

On Journey and Destiny

Sun Feb 17, 2013

There’s a strange contradiction that I’ve been wrestling with for a little while. I thought that Journey was an absolutely beautiful and wonderful game. It even won eight awards at DICE this year, including “Game of the Year” and “Outstanding Achievement in Online Gameplay”. But here’s the thing: I think I might somehow be the only person in the world that absolutely hated Journey’s multiplayer system. If you haven’t played Journey, the multiplayer system works like this: you start playing the game as if you were playing a single-player game, and the game matches you with someone else who’s playing where you are.

Java and Game Development

Fri Jan 11, 2013

It seems like at least once every few days, someone is asking whether Java is an acceptable language for game development over on /r/gamedev. I’m going say something potentially unpopular: please don’t use Java. A lot of people will tell you that the only way to do real game development is in C or C++. I’m not one of them. Honestly, I love high level languages. And, for the most part, I’m a firm believer in saying “use what you already know”.

Now Playing: Anno 2070

Sun Jan 6, 2013

Janice and I have been playing a lot of Anno 2070 lately. Getting into it is a bit rough, as there’s really no tutorial to speak of, and it’s a little on the complex side. But you get the hang of it soon enough. It’s worth it once you do - it’s a combination of supply chain management, SimCity-style building, and RTS-style combat with diplomacy and goods trading… all in one game.

GnuPG Dice!

Fri Jan 4, 2013

Many months ago, I wrote a little GnuPG-verified dice CGI page for myself and my gaming group to use when resolving gaming situations over email. (Feel free to use it yourself, you can check it out here.) It’s inspired by other verified dice web applications out there. But while other scripts require you check a roll on the site itself, either by cut and pasting into a form, or by finding the roll in a list, I wanted something I could verify easily by looking at the message in my mail reader.

Symmetric NAT

Mon Aug 20, 2012

I almost titled this post “Symmetric NAT considered harmful", except I promised myself I’d never title something “considered harmful." It seems like the number of consumer-level routers on the market that implement symmetric NAT (endpoint-dependent mapping) has been rising in recent years. This paper puts it as high as 16% in 2010 (with another 14% blocking UDP traffic, which, while tangential to this post, is really disappointing). RFC 4787 (Network Address Translation (NAT) Behavioral Requirements for Unicast UDP) is the “Best Common Practices” document regarding developing NAT devices and how they should behave.

Now playing: Neptune's Pride

Sat Feb 11, 2012

It’s been a while since I’ve done a “Now Playing” post. I haven’t had much time to actually play games lately, but one game I do have time to fit in is Neptune’s Pride. It’s a 4X strategy game of galactic conquest written in flash, and played in “real time”. Turns are generally a day long, but ships move and combat happens between turns as well. I’ve been quite enjoying it, and it only takes a couple minutes of my time here and there.

Multi-processor compilation in older Visual Studios

Thu Jan 19, 2012

I’m working from home today due to Seattle’s OMGSNOWPOCALYPSE2012. Lamenting the lack of IncrediBuild here at home, I decided to parallelize my builds - if only across four cores instead of across the entire office. Visual Studio 2010 has an option for parallelizing C++ builds within a single project (as opposed to parallelizing the building of multiple projects, which has long been supported) in the project configuration properties under C/C++ → General → Multi-processor Compilation.

About Justin

Hi, I’m Justin. I live in the San Francisco Bay Area, and work on video games. Currently, I’m one of the co-founders at Echtra Games, working on Torchlight 3.

In my spare time, I live-stream my work on my side projects, build and/or fry electronics projects, study 日本語, code a little bit of everything, and occasionally find time to actually play games.