<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>occasionally useful</title>
	
	<link>http://blog.maxaller.name</link>
	<description>ruby, ubuntu, etc</description>
	<lastBuildDate>Sun, 30 Oct 2011 18:00:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/OccasionallyUseful" /><feedburner:info uri="occasionallyuseful" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>47.66747</geo:lat><geo:long>-122.374688</geo:long><item>
		<title>Sharing session state in Node.js between your HTTP server and websockets server</title>
		<link>http://feedproxy.google.com/~r/OccasionallyUseful/~3/GEoprDZzrac/</link>
		<comments>http://blog.maxaller.name/2011/10/sharing-session-state-in-node-js-between-your-http-server-and-websockets-server/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 18:00:36 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[coffeescript]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[connect]]></category>
		<category><![CDATA[express]]></category>
		<category><![CDATA[nowjs]]></category>
		<category><![CDATA[sessions]]></category>
		<category><![CDATA[socket.io]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=543</guid>
		<description>At first, sharing your session state between your Node.js HTTP server and websockets server might seem difficult. However, if you're using Express and NowJS (or the technologies they're built on, Connect and Socket.IO, respectively), most of the work has already been done for you -- it's just a matter of connecting the right pieces together. [...]&lt;img src="http://feeds.feedburner.com/~r/OccasionallyUseful/~4/GEoprDZzrac" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.maxaller.name/2011/10/sharing-session-state-in-node-js-between-your-http-server-and-websockets-server/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.maxaller.name/2011/10/sharing-session-state-in-node-js-between-your-http-server-and-websockets-server/</feedburner:origLink></item>
		<item>
		<title>CoffeeScript in Node.js</title>
		<link>http://feedproxy.google.com/~r/OccasionallyUseful/~3/Sa5yrdi81tw/</link>
		<comments>http://blog.maxaller.name/2011/10/coffeescript-in-node-js/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 17:00:28 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[coffeescript]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=539</guid>
		<description>Here's a couple common development patterns I've come across in Node.JS+CoffeeScript. Requiring Coffeescripts without compiling So for the last couple weeks I've been doing Node.js development while using CoffeeScript, but I've been using `coffee -cwb .` in one console (which compiles, watches, and "bare bones"-style on the current directory) while running `node app.js` in another [...]&lt;img src="http://feeds.feedburner.com/~r/OccasionallyUseful/~4/Sa5yrdi81tw" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.maxaller.name/2011/10/coffeescript-in-node-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.maxaller.name/2011/10/coffeescript-in-node-js/</feedburner:origLink></item>
		<item>
		<title>Recovering your submitted form data in Chrome</title>
		<link>http://feedproxy.google.com/~r/OccasionallyUseful/~3/MqAjps5Nt1w/</link>
		<comments>http://blog.maxaller.name/2011/08/recovering-your-submitted-form-data-in-chrome/#comments</comments>
		<pubDate>Sat, 20 Aug 2011 14:11:37 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[musing]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=536</guid>
		<description>Have you ever submitted form on a website after filling in a lot of text (maybe a comment), only to get an error on the other side? And when you hit back, your nice long response is gone? There's a (sort of easy) way of retrieving it, if you don't stray from the landing page [...]&lt;img src="http://feeds.feedburner.com/~r/OccasionallyUseful/~4/MqAjps5Nt1w" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.maxaller.name/2011/08/recovering-your-submitted-form-data-in-chrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.maxaller.name/2011/08/recovering-your-submitted-form-data-in-chrome/</feedburner:origLink></item>
		<item>
		<title>ACID Cloud databases to keep an eye on</title>
		<link>http://feedproxy.google.com/~r/OccasionallyUseful/~3/SJXnx05o8Ro/</link>
		<comments>http://blog.maxaller.name/2011/03/acid-cloud-databases-to-keep-an-eye-on/#comments</comments>
		<pubDate>Mon, 21 Mar 2011 04:39:23 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=493</guid>
		<description>So far, "database in the cloud" options have been pretty limited. You have Amazon's SimpleDB, which is slow, eventually consistent, and not really a database except in the loosest sense of the word; there's Amazon RDS, which is a managed MySQL instance and scales up, but not out; and of course you can run database [...]&lt;img src="http://feeds.feedburner.com/~r/OccasionallyUseful/~4/SJXnx05o8Ro" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.maxaller.name/2011/03/acid-cloud-databases-to-keep-an-eye-on/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://blog.maxaller.name/2011/03/acid-cloud-databases-to-keep-an-eye-on/</feedburner:origLink></item>
		<item>
		<title>Quasi-turn-based game design: movement</title>
		<link>http://feedproxy.google.com/~r/OccasionallyUseful/~3/wFwWK6K19EY/</link>
		<comments>http://blog.maxaller.name/2011/03/quasi-turn-based-game-design-movement/#comments</comments>
		<pubDate>Sun, 20 Mar 2011 02:15:49 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[just for fun]]></category>
		<category><![CDATA[musing]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=478</guid>
		<description>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 [...]&lt;img src="http://feeds.feedburner.com/~r/OccasionallyUseful/~4/wFwWK6K19EY" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.maxaller.name/2011/03/quasi-turn-based-game-design-movement/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.maxaller.name/2011/03/quasi-turn-based-game-design-movement/</feedburner:origLink></item>
		<item>
		<title>Ye Olde Key-Value Store: BerkeleyDB</title>
		<link>http://feedproxy.google.com/~r/OccasionallyUseful/~3/Hzxsmz4hvsE/</link>
		<comments>http://blog.maxaller.name/2011/02/ye-olde-key-value-store-berkeleydb/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 03:08:58 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=466</guid>
		<description>This weekend I explored the possibility of implementing something resembling Redis but on top of an existing, mature database engine.  It's a key-value store, it has transactions, it supports locks and concurrent writes, replication, etc.  While it ultimately didn't end up panning out (trying to get sets to work efficiently just wasn't working out), it [...]&lt;img src="http://feeds.feedburner.com/~r/OccasionallyUseful/~4/Hzxsmz4hvsE" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.maxaller.name/2011/02/ye-olde-key-value-store-berkeleydb/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.maxaller.name/2011/02/ye-olde-key-value-store-berkeleydb/</feedburner:origLink></item>
		<item>
		<title>AutoPull: you push, it pulls</title>
		<link>http://feedproxy.google.com/~r/OccasionallyUseful/~3/W96zSE2lNrw/</link>
		<comments>http://blog.maxaller.name/2011/01/autopull-you-push-it-pulls/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 22:07:03 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=461</guid>
		<description>So you use GitHub and some compiled language, but not everyone can or wants to compile the source, they just want the artifacts. I made a tiny app that aids in this sort of thing. If you have ever wanted to execute an event in Ruby in response to a push to a repo via [...]&lt;img src="http://feeds.feedburner.com/~r/OccasionallyUseful/~4/W96zSE2lNrw" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.maxaller.name/2011/01/autopull-you-push-it-pulls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.maxaller.name/2011/01/autopull-you-push-it-pulls/</feedburner:origLink></item>
		<item>
		<title>HydrateJS: Smarter Javascript Serialization</title>
		<link>http://feedproxy.google.com/~r/OccasionallyUseful/~3/5PYdrn3Gnxk/</link>
		<comments>http://blog.maxaller.name/2011/01/hydratejs-smarter-javascript-serialization/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 19:30:57 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[coffeescript]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=455</guid>
		<description>Finally, here it is: HydrateJS. It's a library that helps you serialize proper Javascript objects, more than just hash-like objects like JSON.stringify can handle. Anyway, I put a lot of time into the documentation inside the library as well as on the Github Pages link, so check those out! There is also a full suite [...]&lt;img src="http://feeds.feedburner.com/~r/OccasionallyUseful/~4/5PYdrn3Gnxk" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.maxaller.name/2011/01/hydratejs-smarter-javascript-serialization/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.maxaller.name/2011/01/hydratejs-smarter-javascript-serialization/</feedburner:origLink></item>
		<item>
		<title>Javascript Serialization</title>
		<link>http://feedproxy.google.com/~r/OccasionallyUseful/~3/De1cx2zCXNo/</link>
		<comments>http://blog.maxaller.name/2011/01/javascript-serialization/#comments</comments>
		<pubDate>Mon, 03 Jan 2011 05:15:08 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=413</guid>
		<description>Note: RSS subscribers, I've (finally) enabled summary-only feed entries, so you will have to click through to see the full post. Have you ever wanted to serialize entire Javascript objects? When I say objects here, I don't mean the simple hashes that you get by saying {foo: "bar"} -- I mean instances of your User, [...]&lt;img src="http://feeds.feedburner.com/~r/OccasionallyUseful/~4/De1cx2zCXNo" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.maxaller.name/2011/01/javascript-serialization/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://blog.maxaller.name/2011/01/javascript-serialization/</feedburner:origLink></item>
		<item>
		<title>MVC, Games, and a message bus</title>
		<link>http://feedproxy.google.com/~r/OccasionallyUseful/~3/wbOEoWNL_Ag/</link>
		<comments>http://blog.maxaller.name/2010/12/mvc-games-and-a-message-bus/#comments</comments>
		<pubDate>Sun, 12 Dec 2010 20:55:06 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=405</guid>
		<description>It seems to me that many approach the use of MVC in games with skepticism, but the more I develop a game in MVC, the more I am reassured in my decision to do so. I operate by the principle that models should absolutely not know about their view(s) (or controllers) -- models should be [...]&lt;img src="http://feeds.feedburner.com/~r/OccasionallyUseful/~4/wbOEoWNL_Ag" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.maxaller.name/2010/12/mvc-games-and-a-message-bus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.maxaller.name/2010/12/mvc-games-and-a-message-bus/</feedburner:origLink></item>
	</channel>
</rss>

