jwatte's picture

Cross-shard transactional integrity

I've been looking at NoSQL data stores for online transaction processing lately. Yes, related to work :-)

The basic model of a key/value store, where the value is a JSON object or similar, only gets you so far. The bonus with it is that it is very, very easy to horizontally partition ("shard" or "federate"). The draw-back is that you really can't do any online queries on anything other than primary key values. If you're trying to do a query on, say, "any foobar created between 2011-01-05 and 211-01-06" then you're screwed -- you have to traverse the entire data store to find that.

jwatte's picture

Node.js Mersenne Twister random number generator module

I made a Node.js module. It's a packaging and slight update of the JavaScript implementation of the Mersenne Twister random number generator (which is a really high quality generator, as well as pretty fast).

I'm hoping you can soon get it with npm:

$ npm install mersenne
$

Usage is simple:

r = require('mersenne');

jwatte's picture

Things that are broken in California -- a k a "If I were Governor..."

There are a bunch of things that are systemically broken in California, and the state would do a lot better if these could be fixed. The problem is, the far left and far right aren't much in agreement about how to fix it, or even what it is that is broken.

ProceduralPlanet for XNA 4.0

/* jwatte's ProceduralPlanet sample working on XNA 4.0!  Although I do see 
some small jaggy edges near the polls of the planet that was not a problem 
in the original.  It may have something to do with the fact that I changed the 
heightTexture from SurfaceFormat.Single to SurfaceFormat.Color because I 
was getting the following runtime error in XNA4 that did not occur on XNA3:  
"XNA Framework HiDef profile requires TextureFilter to be Point when using 
texture format Single."
*/
jwatte's picture

Two product ideas

I've been thinking about two separate products that I'd want to purchase if they existed, but they don't. For an enterprising entrepreneur, this might be the point where you MAKE one of those products, and see if there's a market. However, I'm already enterprising within IMVU, and as they say -- ideas are a dime a dozen, it's execution that counts.

jwatte's picture

In a browser

I'm taking some time to learn how to actually use Unity3d.

Here's a screen shot of my initial set-up for "space invaders in a browser" (or probably more like "galaga" or "galaxians" or something). Btw: I'm sure those are all trademarked names of games, and they are only used for comparison in this article.

jwatte's picture

Dealing with noise and off-center in joystick input

A joystick is a nice input device for certain kinds of games, like flight simulators, space games, etc. A mini-version of the joystick is the gamepad, ubiquitous in console games.

jwatte's picture

MUD/Telnet terminal emulation

Now and then, someone will say "hey, I want to write a MUD (or some other text-based program), and I want the text to be in color -- how do I do this?"

The answer actually requires a little bit of understanding of pre-Internet computer arcana, so here we go:

jwatte's picture

A texture of grass!

Here's a texture of a grassy field.
I made it by customizing a downloadable filter for the wonderful FilterForge application (which now comes in version 2!)
I hereby grant this texture into the public domain.
jwatte's picture

Digging through older code

In my career, I've dug through a number of scene graph renderer internals. Almost always, they claim to be "hardware independent" by abstracting the hardware, and then they go ahead and expose functions like "bindSecondTexture()" and "setAlphaBlendFunc()" to objects, and have objects "render" themselves by calling those functions.

Syndicate content