<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>occasionally useful &#187; javascript</title>
	<atom:link href="http://blog.maxaller.name/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<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>
		<item>
		<title>Sharing session state in Node.js between your HTTP server and websockets server</title>
		<link>http://blog.maxaller.name/2011/10/sharing-session-state-in-node-js-between-your-http-server-and-websockets-server/</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><![CDATA[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. [...]]]></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>
		</item>
		<item>
		<title>HydrateJS: Smarter Javascript Serialization</title>
		<link>http://blog.maxaller.name/2011/01/hydratejs-smarter-javascript-serialization/</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><![CDATA[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 [...]]]></description>
		<wfw:commentRss>http://blog.maxaller.name/2011/01/hydratejs-smarter-javascript-serialization/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Javascript Serialization</title>
		<link>http://blog.maxaller.name/2011/01/javascript-serialization/</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><![CDATA[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, [...]]]></description>
		<wfw:commentRss>http://blog.maxaller.name/2011/01/javascript-serialization/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>MVC, Games, and a message bus</title>
		<link>http://blog.maxaller.name/2010/12/mvc-games-and-a-message-bus/</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><![CDATA[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 [...]]]></description>
		<wfw:commentRss>http://blog.maxaller.name/2010/12/mvc-games-and-a-message-bus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing Crow, a path-finding library in Javascript</title>
		<link>http://blog.maxaller.name/2010/09/announcing-crow-a-path-finding-library-in-javascript/</link>
		<comments>http://blog.maxaller.name/2010/09/announcing-crow-a-path-finding-library-in-javascript/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 07:00:37 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[crow]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[just for fun]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=304</guid>
		<description><![CDATA[Announcing Crow, a path-finding library in javascript.  I also describe some of the basic API design, my experience with Google Closure, and QUnit.]]></description>
		<wfw:commentRss>http://blog.maxaller.name/2010/09/announcing-crow-a-path-finding-library-in-javascript/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>LockNLoad is&#8230;locked and loaded?</title>
		<link>http://blog.maxaller.name/2009/12/locknload-is-locked-and-loaded/</link>
		<comments>http://blog.maxaller.name/2009/12/locknload-is-locked-and-loaded/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 22:37:30 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[inversion of control]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[locknload]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[titanium]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=236</guid>
		<description><![CDATA[I've just completed and pushed the initial version of LockNLoad, a Spring-like Inversion of Control container for Javascript, which follows the dependency inversion principle (I think I'm getting all these terms right...). Given the proper configuration, you can simply say LNL.$("my_id") and get a prototype or singleton object or function. Read on for more information. [...]]]></description>
		<wfw:commentRss>http://blog.maxaller.name/2009/12/locknload-is-locked-and-loaded/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Debugging unobtrusive javascript in jQuery</title>
		<link>http://blog.maxaller.name/2009/09/debugging-unobtrusive-javascript-in-jquery/</link>
		<comments>http://blog.maxaller.name/2009/09/debugging-unobtrusive-javascript-in-jquery/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 03:49:34 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[jquery]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[unobtrusive]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=194</guid>
		<description><![CDATA[So if you work for a large enterprise website like I do, where each page loads dozens or hundreds of kilobytes of javascript, it can be hard to figure out exactly what happens when you click that div and something magically happens, due to the wonders of unobtrusive javascript. Or, to rephrase the question, "I [...]]]></description>
		<wfw:commentRss>http://blog.maxaller.name/2009/09/debugging-unobtrusive-javascript-in-jquery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Accessing GM_xmlhttprequest from event handlers bound by jQuery</title>
		<link>http://blog.maxaller.name/2009/01/accessing-gm_xmlhttprequest-from-event-handlers-bound-by-jquery/</link>
		<comments>http://blog.maxaller.name/2009/01/accessing-gm_xmlhttprequest-from-event-handlers-bound-by-jquery/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 05:42:05 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[jquery]]></category>
		<category><![CDATA[musing]]></category>
		<category><![CDATA[scripts]]></category>

		<guid isPermaLink="false">http://giftswappo.com/wordpress/?p=58</guid>
		<description><![CDATA[So I like jQuery. And I like Greasemonkey. I especially like the ability of Greasemonkey's ajax calls to go cross-domain. But how do I get access to this functionality in my event handlers? Calling GM_xmlhttprequest in a method that doesn't execute while the Greasemonkey sandbox is still alive doesn't work. At first I didn't think [...]]]></description>
		<wfw:commentRss>http://blog.maxaller.name/2009/01/accessing-gm_xmlhttprequest-from-event-handlers-bound-by-jquery/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>DEPRECATED: Announcing: jQuery optimization races</title>
		<link>http://blog.maxaller.name/2008/12/announcing-jquery-optimization-races/</link>
		<comments>http://blog.maxaller.name/2008/12/announcing-jquery-optimization-races/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 02:07:48 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[just for fun]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://giftswappo.com/wordpress/?p=49</guid>
		<description><![CDATA[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: http://www.nutriscan.org/jquery_optimization/ 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 [...]]]></description>
		<wfw:commentRss>http://blog.maxaller.name/2008/12/announcing-jquery-optimization-races/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Visualization API + jQuery</title>
		<link>http://blog.maxaller.name/2008/12/google-visualization-api-jquery/</link>
		<comments>http://blog.maxaller.name/2008/12/google-visualization-api-jquery/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 21:46:52 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://giftswappo.com/wordpress/?p=48</guid>
		<description><![CDATA[TODO: bring animations to charts in the Google Visualization API via jQuery to illustrate performance described in previous post. Relevant link.]]></description>
		<wfw:commentRss>http://blog.maxaller.name/2008/12/google-visualization-api-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

