occasionally useful ruby, ubuntu, etc


Discovering a Good Site Name with Mechanical Turk and AYTM.com

Inspired by a post from Software by Rob [1] and in turn this Pixlin [2] post from 2007, I decided to give Mechanical Turk a whirl to help me come up with a product name. I'm going to talk about my experience and how I actually went about doing this.


Quasi-turn-based game design: movement

I'm fiddling around with building an online browser-based game right now, but am having some trouble trying to figure out how and when different units should move (since they can move at different speeds). The game is turn-based, i.e. actions happen in fixed time intervals, but it has real-time elements, since each unit is on its own clock -- actions that happen every 5 minutes for one unit don't necessarily coincide with actions for another unit that also has a 5-minute tick interval. In my mind, these are the requirements:

  • No unit should move multiple tiles in a single turn -- in a given turn/tick/whatever, they move at most one tile.
  • Some units can move faster than others -- namely, cavalry can move 3x as fast as infantry, for example.
  • Units that have varying movements speeds could have the same attack speed -- just because they move faster, doesn't mean they do everything else faster.
  • The speed of units can change dynamically -- if they are Haste'd by magic spell, or Slow'd by a bog, then...they do what you'd expect.

So far I've come up with three strategies for how one might implement these in a game.


ReReplay: Replay production traffic

Ever wonder if your change is going to slow down the website? "Performance impact will probably be negligible", you might say. Well, now you can know for sure. First, take a slice of your production logs and transform it into a particular format. Then run ReReplay with this snapshot to generate a baseline. Next apply your change, rerun ReReplay (sorry, too many re's?) and measure the difference!


Announcing Crow, a path-finding library in Javascript

Over the past few weeks I've been building out a clean and fast path-finding library in Javascript with a particular gaming site in mind, and I'm pretty happy with where it's at right now. If you're interested in at least one of: API design, Google Closure library, Google Closure compiler, or QUnit, then hit the jump for more. In the future, I'll cover Javascript (and object-oriented patterns), path-finding (breadth-first search, Dijkstra's algorithm, and A*), rake, games, and the embedded Sinatra+Bundler.


Banks and OAuth support

For fun, I decided to ping all of my financial companies (Bank Of America, CapitalOne, Chase, EmigrantDirect, INGDirect, Vanguard) about their plans for OAuth support. I don't know how many of you use the wonderful service known as Mint, but I like it a lot. Unfortunately, a part of me died when I gave them my username/password for my banking sites. And INGDirect is secure enough that Mint can't even interface with them! Sorta cool.

Anyway, here's what the institutions said:


XSLT is a giant pain

Some of you may be aware that XML+XSLT 1.0 can be rendered directly by modern browsers (even IE6!), which led me to thinking that it may be a good idea to give it a try and see how good or bad it was.

Tagged as: , Continue reading

Nifty easy screencast software

Not necessarily the easiest or the best, but it certainly looks cool and could very much have a niche to call its own. It's called uTIPu.

Check it out. Someday I'll create a screencast for something useful.


Google Reader Commenter script

At Esther's request, I wrote a script that lets you comment on blogs that are in your Google Reader list. Right now it only works on Blogger and WordPress blogs, but that's actually a fair number of blogs.

Requirements: Firefox, Greasemonkey Plugin

Check it out here: GitHub repository

Here's a picture: Picture


DEPRECATED: Announcing: jQuery optimization races

Note...this site is down for now...

You don't have to understand it to see that it's at least a bit interesting, so check it out:


It documents a bunch of different ways of doing similar things, and compares them in terms of performance. How much are you really losing by using the jQuery convenience method?


jquery_merb continued

So...I think, for now, I'm done with jquery_merb.