<?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, 06 May 2012 17:47:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.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>How to configure a Zyxel router behind an Actiontec DSL Modem (Centurylink, Qwest)</title>
		<link>http://feedproxy.google.com/~r/OccasionallyUseful/~3/uB5PFKK0YjM/</link>
		<comments>http://blog.maxaller.name/2012/05/how-to-configure-a-zyxel-router-behind-an-actiontec-dsl-modem-centurylink-qwest/#comments</comments>
		<pubDate>Sun, 06 May 2012 17:47:20 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[tips]]></category>
		<category><![CDATA[actiontec]]></category>
		<category><![CDATA[centurylink]]></category>
		<category><![CDATA[dsl]]></category>
		<category><![CDATA[modem]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[zyxel]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=579</guid>
		<description>For many weekends (5?) over the past couple years I've spent hours trying to get my Zyxel NBG-419N to work in "Router Mode" instead of "Access Point Mode" when operating behind our (old) DSL modem, the Actiontec M1000. From juggling DHCP settings, to NAT-enabled settings, to Transparent Bridging, to attempting to configure PPPoE authentication and [...]&lt;img src="http://feeds.feedburner.com/~r/OccasionallyUseful/~4/uB5PFKK0YjM" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.maxaller.name/2012/05/how-to-configure-a-zyxel-router-behind-an-actiontec-dsl-modem-centurylink-qwest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.maxaller.name/2012/05/how-to-configure-a-zyxel-router-behind-an-actiontec-dsl-modem-centurylink-qwest/</feedburner:origLink></item>
		<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>1</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>
	</channel>
</rss>

