Programming

warning: Creating default object from empty value in /home/hplus/enchantedage.com/modules/taxonomy/taxonomy.pages.inc on line 33.
Telling computers to do things.
jwatte's picture

Outline of a Scalable Web Backend

Here's a common question for newcomers to mobile game development, web game development, and similar systems:

How shall I design my application for scalability? And what do you mean by application, for that matter? Do you mean the whole iOS app/PHP/mySql system, or something else?

jwatte's picture

How do I dependency?

So, if I were to build a brand new OS, not based on Linux kernel necessarily, what should packaging look like?

jwatte's picture

Look what I came across

In the distant past, I made an effort to get various virtual world vendors to attempt to interoperate, such that various virtual worlds could be interconnected.
That would have been cool! Unfortunately, the competetive landscape ended up not supporting such an effort.

Here's a copy of the IETF draft that I posted at the time:

jwatte's picture

Arduino ICSP programming header pinout

I've been wanting to put the ICSP 6-pin header onto a soldered Arduino circuit.

This is so that I can make "emergency" fixes even if I've removed the Atmega MCU from the USB-powered board I normally use to prototype and program. Also, even if I socket it on the destination board, moving it too many times back and forth risks significant damage to the pins!

jwatte's picture

boost::asio async_read_until may read more than the specified data!

This took me a while to track down. I figured I'd document it for posterity, and anyone else trying to do asynchronous networking in C++ using boost::asio. I'm using Ubuntu Server 10.04 LTS with gcc/g++, which uses boost version 1.40. The reason is that the "bytes transferred" argument to the callback is the number of bytes until the separator is found, but more bytes than that are decoded from the socket into the input stream.

Building interactive games on top of a web/HTTP technology stack

I recently answered question on the gamedev.net multiplayer and networking forum, that I feel warrants further distribution. The question dealt with trying to use MySQL eventing and MySQL data as the "server" for a large-scale multi-player web-based game.

jwatte's picture

What can I do with music, really? FFT and the XNA content pipeline

I was unhappy with the low resolution of the visualization data that you get out of the XNA framework MediaPlayer. If you want to synchronize gameplay to music, the data you get is not sufficient.

jwatte's picture

A very large number

Here's a number. Anyone care to guess what it is?

2003529930406846464979072351560255750447825475569751419265016973710894059556311
4530895061308809333481010382343429072631818229493821188126688695063647615470291
6504187191635158796634721944293092798208430910485599057015931895963952486337236
7203002916969592156108764948889254090805911457037675208500206671563702366126359

jwatte's picture

Range queries in key/value stores, part two

In my previous blog entry, I talked about cross-shard transactional integrity for key/value stores, and how SQL databases have solved this problem. I also poked fun at some of the best known key/value stores for not quite solving all of my problems for me, for free. Go read it, it's fun times!

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.

Syndicate content