<?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>JavaScript Magazine Blog for JSMag &#187; Uncategorized</title>
	<atom:link href="http://jsmag.com/blog/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://jsmag.com/blog</link>
	<description>Javascript Magazine for Javascript developers</description>
	<lastBuildDate>Fri, 03 Sep 2010 11:34:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>News Roundup: HTML5 Boilerplate, Choco, and Smoothie</title>
		<link>http://jsmag.com/blog/2010/08/news-roundup-html5-boilerplate-choco-and-smoothie/</link>
		<comments>http://jsmag.com/blog/2010/08/news-roundup-html5-boilerplate-choco-and-smoothie/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 11:55:18 +0000</pubDate>
		<dc:creator>matthenry</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[choco]]></category>
		<category><![CDATA[dataviz]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[smoothie]]></category>

		<guid isPermaLink="false">http://jsmag.com/blog/?p=298</guid>
		<description><![CDATA[HTML5 Boilerplate &#038; HTML5 Reset
HTML5 Reset (by Monkeydo) and HTML5 Boilerplate (Paul Irish &#038; Divya Manian) are new HTML5 project skeletons. If you&#8217;re about to start a new HTML5 site, you can reach for one of these all-in-one kits that include everything you need to write great, forward-looking code, while still maintaining support for legacy [...]]]></description>
			<content:encoded><![CDATA[<h3>HTML5 Boilerplate &#038; HTML5 Reset</h3>
<p><a href="http://html5reset.org/">HTML5 Reset</a> (by <a href="http://monkeydo.biz/">Monkeydo</a>) and <a href="http://html5boilerplate.com/">HTML5 Boilerplate</a> (Paul Irish &#038; Divya Manian) are new HTML5 project skeletons. If you&#8217;re about to start a new HTML5 site, you can reach for one of these all-in-one kits that include everything you need to write great, forward-looking code, while still maintaining support for legacy browsers.</p>
<p>HTML5 Reset and HTML5 Boilerplate have a heck of a lot in common. To name just a few: Both tools give you a standard directory structure for your project assets; Both include <a href="http://www.modernizr.com/">Modernizr</a> to add support for HTML5 elements in browsers that don&#8217;t support them natively; And both have reset stylesheets to zero out browser differences.</p>
<p>Of the two offerings, HTML5 Reset is the more stripped down. Indeed, it even comes in both &#8220;bare bones&#8221; and &#8220;kitchen sink&#8221; flavors.</p>
<p>Both libraries do include jQuery by default, which strikes me as a little unnecessary, even though I understand the reasoning behind its inclusion. However, there&#8217;s nothing preventing you from using your library of choice (or no library at all) in either case.</p>
<p>Still, there are some interesting things in HTML5 Boilerplate that aren&#8217;t in HTML5 Reset. Boilerplate&#8217;s .htaccess file has some handy tricks for correctly serving SVG &#038; webfonts, as well as ensuring that newer IEs won&#8217;t default to the older rendering engine. Also, the script that adds PNG support to IE6 is a new one to me. It&#8217;s very ingenious, and one I&#8217;ll probably use outside of the Boilerplate.</p>
<p>Even if you don&#8217;t end up using either of these project skeletons as-is, or at all, you should definitely take a look at both of them to see what you can steal from them.</p>
<h3>Choco</h3>
<p><a href="http://github.com/ahe/choco">Choco</a> is a new client-side MVC framework. Unlike other such frameworks like Sproutcore or Cappuccino that have robust DSLs or even whole languages baked in to them, Choco lets you develop with, more or less, the same old HTML/CSS/Javascript you&#8217;ve been using all along. A lot of Choco looks fairly Rails-y (the directory structure, the command-line generators, among other features) but the overall experience still strives to be that of plain old web development.</p>
<p>Under the hood, Choco uses <a href="http://github.com/benpickles/js-model">JS-Model</a> for its model layer which is very cool, though it still doesn&#8217;t handle persistence. Also, <a href="http://github.com/quirkey/sammy">Sammy</a> does a lot of the heavy lifting in the controllers and on routing.</p>
<p>As awesome as Sproutcore &#038; Cappuccino are, it&#8217;s pretty refreshing to see an approach that still looks a lot like the kind of web development we&#8217;re all used to. Kudos to the Choco team for a nice little tool.</p>
<h3>Smoothie</h3>
<p><a href="http://smoothiecharts.org/">Smoothie</a> is a very slick new data visualization tool. However, Smoothie differs from the host of charting &#038; graphing tools out there in that it&#8217;s built to handle live streaming data. It smoothly animates its graphs in real-time when new data arrives. Very cool stuff, and well worth taking a look at.</p>
]]></content:encoded>
			<wfw:commentRss>http://jsmag.com/blog/2010/08/news-roundup-html5-boilerplate-choco-and-smoothie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>News: Connect, Wu, Badass Javascript</title>
		<link>http://jsmag.com/blog/2010/06/news-connect-wu-badass-javascript/</link>
		<comments>http://jsmag.com/blog/2010/06/news-connect-wu-badass-javascript/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 23:29:46 +0000</pubDate>
		<dc:creator>matthenry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[connect]]></category>
		<category><![CDATA[functional]]></category>
		<category><![CDATA[middleware]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[nodejs]]></category>
		<category><![CDATA[wu.js]]></category>

		<guid isPermaLink="false">http://jsmag.com/blog/?p=229</guid>
		<description><![CDATA[Connect
Tim Caswell and TJ Holowaychuck, both of whom are members of the ExtJS team, have just released Connect: a middleware framework for NodeJS. In his blog post announcing Connect, Caswell cites Ruby&#8217;s Rack as an inspiration for the project.
A Connect server runs a set of middleware modules, each of which performs a specific action when [...]]]></description>
			<content:encoded><![CDATA[<h3>Connect</h3>
<p>Tim Caswell and TJ Holowaychuck, both of whom are members of the <a href="http://www.extjs.com/">ExtJS</a> team, have just released <a href="http://github.com/extjs/Connect">Connect</a>: a middleware framework for NodeJS. In his <a href="http://howtonode.org/connect-it">blog post announcing Connect</a>, Caswell cites Ruby&#8217;s <a href="http://rack.rubyforge.org/">Rack</a> as an inspiration for the project.</p>
<p>A Connect server runs a set of middleware modules, each of which performs a specific action when it receives a particular type of message. When a request comes in to the server, each module in turn will see if it can do anything with the request and then pass it to the next module in the stack. The process is repeated in reverse with the server&#8217;s response on the way out.</p>
<p>Connect ships with a several stock modules that handle tasks such as authentication, logging, routing, serving static files, and even automatically generating CSS from SaSS stylesheets.</p>
<p>An important thing to understand about Connect is that it is not a web application framework in the traditional sense. You might, however, think of Connect as being a toolkit on which to base a web application framework. I&#8217;d wager that we&#8217;ll see several such frameworks built for Node using Connect in the coming months.</p>
<p>This is a really exciting project, and it has the potential to really change how the Node community builds applications. Big congratulations to Tim and TJ on this release.</p>
<h3>Wu.js</h3>
<p>Another functional programming-inspired Javascript library? Heck yeah! <a href="http://fitzgen.github.com/wu.js/ ">Wu.js</a> takes the ball from other functional libraries (such as <a href="http://documentcloud.github.com/underscore/">underscore.js</a> and <a href="http://osteele.com/sources/javascript/functional/">Functional.js</a>) and carries it even further in following the functional paradigm.</p>
<p>In addition to all of the tropes that many of the functional libraries implement (currying, map/reduce, etc.), Wu has a rich set of iterator methods that give you several interesting permutations on the standard map/reduce patterns. Even better, Wu&#8217;s iterators are lazy, so you can go ahead and create one, but any code that it contains will only be executed when you want a value from it.</p>
<p>Seriously, I love this stuff. As long as people keep writing libraries like this, I&#8217;ll keep writing about them.</p>
<h3>New blogs!</h3>
<p>A couple of new blogs have popped up recently that should be of interest to JSMag readers. <a href="http://badassjs.com/">Badass Javascript</a> showcases the kind of over-the-top awesome work that you&#8217;d expect to see on a blog with that name. Personally, I&#8217;m pretty partial to <a href="http://badassjs.com/post/681180037/typeset-an-implementation-of-the-tex-line-breaking">the post on the line-breaking algorithm</a>.</p>
<p>Another great new resource is Microsoft&#8217;s <a href="http://msdn.microsoft.com/en-us/scriptjunkie/default.aspx">ScriptJunkie</a>. This site focuses more on tutorials &amp; exposition than news, <em>per se</em>. They&#8217;ve already got some great content up, so definitely head over and check it out.</p>
<h3>TXJS</h3>
<p>Lastly, just a quick note of congratulation to Rebecca Murphey and the YayQuery team for putting on <a href="http://texasjavascript.com/">TXJS</a> last weekend. I wasn&#8217;t able to go, but based on the tweets I was jealously reading, it seems like it was a great event. A lot of the speakers have posted their slides, so even if you weren&#8217;t there, you can still get something from the event. I&#8217;m saying this from experience, since Connect &amp; Wu.js were both announced and/or promoted at TXJS.</p>
]]></content:encoded>
			<wfw:commentRss>http://jsmag.com/blog/2010/06/news-connect-wu-badass-javascript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>News: AppengineJS, Node.Net, Tracer</title>
		<link>http://jsmag.com/blog/2010/06/news-appenginejs-node-net-tracer/</link>
		<comments>http://jsmag.com/blog/2010/06/news-appenginejs-node-net-tracer/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 22:20:59 +0000</pubDate>
		<dc:creator>matthenry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[appenginejs]]></category>
		<category><![CDATA[nodejs]]></category>
		<category><![CDATA[souders]]></category>
		<category><![CDATA[sqlike]]></category>
		<category><![CDATA[tracer]]></category>

		<guid isPermaLink="false">http://jsmag.com/blog/?p=214</guid>
		<description><![CDATA[AppengineJS
Yes, it&#8217;s true! You can now run Javascript applications on Google&#8217;s App Engine platform thanks to the new AppengineJS project. The project is based on Rhino, the Java-based Javascript runtime, which is why it can run on Google&#8217;s Java- and Python-only platform. Of course, since Rhino has been around forever, simply executing Javascript on App [...]]]></description>
			<content:encoded><![CDATA[<h3>AppengineJS</h3>
<p>Yes, it&#8217;s true! You can now run Javascript applications on Google&#8217;s <a href="http://code.google.com/appengine/">App Engine</a> platform thanks to the new <a href="http://www.appenginejs.org/">AppengineJS</a> project. The project is based on Rhino, the Java-based Javascript runtime, which is why it can run on Google&#8217;s Java- and Python-only platform. Of course, since Rhino has been around forever, simply executing Javascript on App Engine&#8217;s servers isn&#8217;t a new idea (<a href="http://www.ringojs.org/wiki/">RingoJS</a> is server-side Javascript platform that runs on App Engine). Where AppengineJS stands out is in giving you easy access to many of the App Engine API&#8217;s (e.g. storage, memcache, OAuth, etc.). The library wraps the Python APIs to make them more friendly to Javascript developers.</p>
<p>Under the hood, AppengineJS uses the <a href="http://www.nitrojs.org/">NitroJS</a> library, which brings support for JSGI and CommonJS modules along with it. This gives you a huge amount of power &#038; flexibility in how you build your server applications.</p>
<p>This is a really great set of tools. If you&#8217;ve been looking into ways of hosting server-side Javascript applications in the cloud, you really owe it to yourself to check out AppengineJS.</p>
<h3>Tracer</h3>
<p>Angus Croll of the <a href="http://javascriptweblog.wordpress.com/">javascript, Javascript</a> blog has created a small but impressive <a href="http://javascriptweblog.wordpress.com/2010/06/01/a-tracer-utility-in-2kb/">tracer utility</a> that tracks when a method is called and how long that method takes to execute. Just provide an object to the utility&#8217;s <code>traceAll</code> method, and whenever one of that object&#8217;s methods is called, the method name will be printed to the console along with its execution time. It&#8217;s a small (~50 lines) but ingenious bit of Javascript metaprogramming that feels like it could have all sorts of uses.</p>
<h3>Souders on Frontend SPOF</h3>
<p>Steve Souders, the frontend performance guru posted an extremely useful article on his blog regarding <a href="http://www.stevesouders.com/blog/2010/06/01/frontend-spof/">frontend SPOF</a> (single point of failure). He looks at several kinds of resources that can interrupt pages loading and/or rendering, as well as workarounds to prevent such blocking. For instance, we all know that scripts should be loaded asynchronously so as to allow the page to render. However, Souders also looks into less-well-known points of failure, such as embedded fonts (Souders says it&#8217;s best to declare your <code>@font-face</code> rules inline).</p>
<p>As with everything Souders writes, this article is definitely worth a read.</p>
<h3>SQLike</h3>
<p><a href="http://www.thomasfrank.se/sqlike.html">SQLike</a> is a new library for creating SQL-like in-memory datastores in Javascript. Once you create a SQLike table (with data from the client or from the server via Ajax), you execute queries on it that return Javascript objects. As an added bonus, the code works just as well in ActionScript (if you happen to swing that way).</p>
<p>Of course, besides the ActionScript support, there&#8217;s nothing you can do with SQLike that you can&#8217;t do with native HTML5 SQL databases, but those aren&#8217;t universally supported yet. So rather than falling back on Google Gears, which has been mothballed, for SQL storage, you could fall back on SQLike. You would lose the real persistence you get from the native database, but in some cases that might be acceptable.</p>
<h3>Node.Net</h3>
<p>Hey, you know what&#8217;s awesome? NodeJS. Unfortunately, developers on WIndows machines have just had to take *nix-users&#8217; word for it&#8230; until now! The new <a href="http://github.com/dnewcome/Node.net">Node.Net</a> project is a new NodeJS implementation that runs (perhaps unsuprisingly) on the .Net platform. The implementation is a long way from complete, but Windows users who have been itching to see what all of the fuss is about regarding Node might not care. </p>
]]></content:encoded>
			<wfw:commentRss>http://jsmag.com/blog/2010/06/news-appenginejs-node-net-tracer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>News Roundup: Great Tutorial Resources, Akshell, and Web Audio Manipulation</title>
		<link>http://jsmag.com/blog/2010/05/news-roundup-great-tutorial-resources-akshell-and-web-audio-manipulation/</link>
		<comments>http://jsmag.com/blog/2010/05/news-roundup-great-tutorial-resources-akshell-and-web-audio-manipulation/#comments</comments>
		<pubDate>Fri, 28 May 2010 05:13:07 +0000</pubDate>
		<dc:creator>matthenry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jsmag.com/blog/?p=203</guid>
		<description><![CDATA[New Tutorials
There have been several handy tutorials released lately, and I thought it might be useful to collect a few of them here.

Ben Lister&#8217;s blog post, Getting Started with HTML5 Local Databases, is a clear, thorough introduction to client-side SQLite databases. The definitive resource is still Apple&#8217;s client-side storage reference, but Lister&#8217;s article is probably [...]]]></description>
			<content:encoded><![CDATA[<h3>New Tutorials</h3>
<p>There have been several handy tutorials released lately, and I thought it might be useful to collect a few of them here.</p>
<ul>
<li>Ben Lister&#8217;s blog post, <a href="http://blog.darkcrimson.com/2010/05/local-databases/">Getting Started with HTML5 Local Databases</a>, is a clear, thorough introduction to client-side SQLite databases. The definitive resource is still Apple&#8217;s <a href="http://developer.apple.com/safari/library/documentation/iphone/conceptual/safarijsdatabaseguide/UsingtheJavascriptDatabase/UsingtheJavascriptDatabase.html#//apple_ref/doc/uid/TP40007256-CH3-SW1">client-side storage</a> reference, but Lister&#8217;s article is probably an easier place to start, if you&#8217;re completely new to client-side databases.</li>
<li><a href="http://css3.bradshawenterprises.com/">Using CSS3 Transitions, Transforms and Animation</a> is a truly fantastic roundup of all of the various animation and transformation properties and functions that are available in CSS3. The site features tons of examples that should be a tremendous help while you sort out the reasonably complicated syntax of some of these properties. This one is definitely worth a bookmark.</li>
<li><a href="http://www.railsinside.com/tips/451-howto-unobtrusive-javascript-with-rails-3.html">HOWTO: Unobtrusive JavaScript with Rails 3</a> is a great article on the <a href="http://www.railsinside.com/">Rails Inside</a> blog on  how to swap out the Prototype-based unobtrusive Javascript helpers for the official jQuery version managed by the Rails team.</li>
<li>It was just a couple of weeks ago that we last <a href="http://jsmag.com/blog/2010/05/news-roundup-gc-desktop-apps-with-cappuccino-and-more/">checked in</a> on <a href="http://dailyjs.com/">DailyJS</a>&#8217;s &#8220;Let&#8217;s Make a Framework&#8221; series. This week, they&#8217;ve got <a href="http://dailyjs.com/2010/05/27/framework-part-14">another handy post</a> on how to handle cross-domain Ajax requests with JSON-P. JSON-P is technique that&#8217;s usually used for consuming JSON data from APIs on a different domain from the one issuing the request. If this tool isn&#8217;t in your utility belt, definitely check out this article.</li>
<li>Speaking of cross-domain Ajax, the intrepid Nicholas Zakas has a super-handy introduction to browser-native cross-domain Ajax via <a href="http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/">Cross-Origin Resource Sharing</a> (CORS). CORS is actually pretty well supported among modern browsers, but for whatever reason, it hasn&#8217;t seen a lot of discussion or use by the web development community. Here&#8217;s hoping Zakas&#8217;s introduction can go towards changing that.</li>
</ul>
<h3>Akshell</h3>
<p><a href="http://www.akshell.com/">Akshell</a> is a nifty new tool for creating and hosting Javascript applications. It&#8217;s a lot like Heroku&#8217;s recently announced support for Node.js, although instead of Node, you build apps in a scratch-built Javascript MVC framework. </p>
<p>Akshell provides a number of useful resources for building web apps. It includes its own template library, and even offers database support. Further, it uses CommonJS-like modules for organizing code (the Akshell core engine is such a module).</p>
<p>Honestly, there might not be a ton of practical uses for a site like Akshell, where you have to learn yet another server-side Javascript framework (and one that&#8217;s only usable on the Akshell site). However, a lot of really solid work went into building this impressive tool, and it&#8217;s totally worth taking a minute to poke around the admin interface and read through the documentation.</p>
<h3>Experiments with Audio</h3>
<p><a href="http://vocamus.net/dave/?cat=25">Experiments with Audio</a> is a series of articles on the <a href="http://vocamus.net/dave/">Bread and Circuits</a> blog that covers innovations in web audio. The <a href="http://vocamus.net/dave/?p=1092">most recent post</a> in the series covers some truly amazing work being done in processing audio in the browser. There are tons of mind-blowingly cool examples, but the thing that really floored me was the Javascript text-to-speech implementation. Imagine if sites were able to offer full, custom text-to-speech rendering of their content to any user-agent without needing a screen reader. Just great stuff.</p>
]]></content:encoded>
			<wfw:commentRss>http://jsmag.com/blog/2010/05/news-roundup-great-tutorial-resources-akshell-and-web-audio-manipulation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>News Roundup: Fab, RequireJS, and Node, Node, Node</title>
		<link>http://jsmag.com/blog/2010/05/news-roundup-fab-requirejs-and-node-node-node/</link>
		<comments>http://jsmag.com/blog/2010/05/news-roundup-fab-requirejs-and-node-node-node/#comments</comments>
		<pubDate>Fri, 21 May 2010 17:20:52 +0000</pubDate>
		<dc:creator>matthenry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jsmag.com/blog/?p=194</guid>
		<description><![CDATA[Exciting stuff this week&#8212;a lot of it Node.js-related. Node is reaching a critical mass, and now is a great time to get on board. With that, here&#8217;s the news:
RequireJS 0.11.0
It&#8217;s no secret that I&#8217;m a big fan of RequireJS, the non-blocking, asynchronous dependency manager/build tool for Javascript. Well, with the brand new 0.11.0 release, it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Exciting stuff this week&mdash;a lot of it Node.js-related. Node is reaching a critical mass, and now is a great time to get on board. With that, here&#8217;s the news:</p>
<h3>RequireJS 0.11.0</h3>
<p>It&#8217;s no secret that I&#8217;m a big fan of <a href="http://requirejs.org/">RequireJS</a>, the non-blocking, asynchronous dependency manager/build tool for Javascript. Well, with the <a href="http://tagneto.blogspot.com/2010/05/requirejs-0110-released.html">brand new 0.11.0 release</a>, it&#8217;s even better. It&#8217;s now totally Caja compliant, so the security should be airtight, and you can now even name a JSON-P source as a dependency (I&#8217;m in love with this feature). There are more new goodies, so take a look a the <a href="http://requirejs.org/docs/download.html">release notes</a> if you&#8217;re interested.</p>
<p>Probably the most notable aspect of the new release though, is that the the tool&#8217;s creator, James Burke, now feels Require meets the requirements that John Resig outlined for <a href="http://tagneto.blogspot.com/2010/04/require-for-jquery.html">a .require() method in jQuery</a>. Burke is making a strong case for integrating Require with jQuery.</p>
<p>Require was already a great tool, and it keeps getting better with every release. If you haven&#8217;t yet looked into it, now is the time to do so.</p>
<h3>Understanding Node.js</h3>
<p>There&#8217;s a growing consensus that <a href="http://nodejs.org">Node.js</a> is going to be huge (if it isn&#8217;t already). Unfortunately, some of the concepts on which Node is built aren&#8217;t the most straightforward (at least not at first glance). If you want to write great Node apps, you really have to get its conceptual underpinnings straight in your head. Fortunately, the Debuggable blog has an excellent post on <a href="http://debuggable.com/posts/understanding-node-js:4bd98440-45e4-4a9a-8ef7-0f7ecbdd56cb">understanding Node</a>. The post takes a very high level look at what Node does and explains its fundamental concepts (evented programming, queues, etc.) in an extremely accessible fashion. If you&#8217;re an old hand at Node, it probably comes off as basic. But if you&#8217;ve been struggling to wrap you brain around Node, or just haven&#8217;t yet had time to dive in, I highly recommend giving this piece a read-through.</p>
<p>Speaking of Node, <a href="http://heroku.com">Heroku</a> just <a href="http://blog.heroku.com/archives/2010/4/28/node_js_support_experimental/">announced experimental support for Node deployments on their servers</a>. I haven&#8217;t looked into this yet, but if it&#8217;s as awesome as their Rails &#038; Sinatra hosting, it&#8217;s going to be a tremendous resource.</p>
<p>Also, while we&#8217;re on the subject of learning Node, the YUI blog just posted the <a href="http://www.yuiblog.com/blog/2010/05/20/video-dahl/">video of Node creator Ryan Dahl&#8217;s talk at the most recent Bayjax.</a></p>
<h3>Fab</h3>
<p>Okay, more Node stuff. Sue me. <a href="http://github.com/jed/fab/">Fab</a> is a new web framework for Node, but it&#8217;s wholly unlike any of the others that are currently available. Just take a look at Fab&#8217;s &#8220;Hello, world&#8221;:</p>
<pre class="code">
<code>
with ( require( "fab" ) ) 

( fab )

  ( listen, 0xFAB )

  ( /^\/hello/ )

    ( tmpl )
      ( "Hello, &lt;%= this %&gt;!" )

    ( /^\/(\w+)$/ )
      ( capture.at, 0 )
      ( "world" )

  ( 404 );
</code>
</pre>
<p>The first thing everyone notices is all of the parentheses. Still, there&#8217;s nothing especially Lisp-y about Fab (at least no more than there is with vanilla Javascript). This example just listens on port 4011 (0xFAB). The regex (<code>( /^\/(\w+)$/ )</code>) is the catch-all route for the application.</p>
<p>There&#8217;s a heck of a lot you can learn about functional programming in Javascript by studying how fab works. Check out the <a href="http://www.flickr.com/photos/tr4nslator/sets/72157623883700702/">slides</a> from Fab&#8217;s creator Jed Schmidt&#8217;s talk at this year&#8217;s JSConf for a thorough introduction to the concepts Fab employs.</p>
]]></content:encoded>
			<wfw:commentRss>http://jsmag.com/blog/2010/05/news-roundup-fab-requirejs-and-node-node-node/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>News Roundup: GC, desktop apps with Cappuccino, and more</title>
		<link>http://jsmag.com/blog/2010/05/news-roundup-gc-desktop-apps-with-cappuccino-and-more/</link>
		<comments>http://jsmag.com/blog/2010/05/news-roundup-gc-desktop-apps-with-cappuccino-and-more/#comments</comments>
		<pubDate>Fri, 14 May 2010 17:44:04 +0000</pubDate>
		<dc:creator>matthenry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jsmag.com/blog/?p=189</guid>
		<description><![CDATA[Well folks, I&#8217;ve got to admit, it was a bit of a slow news week in the Javascript world. But rest assured, I didn&#8217;t come to write this post empty-handed.
Garbage Collection
This week, the Ajaxian/WebOS Developer Relations guys linked to a great in-depth article on Palm&#8217;s website about garbage collection in Javascript. It goes into a [...]]]></description>
			<content:encoded><![CDATA[<p>Well folks, I&#8217;ve got to admit, it was a bit of a slow news week in the Javascript world. But rest assured, I didn&#8217;t come to write this post empty-handed.</p>
<h3>Garbage Collection</h3>
<p>This week, the Ajaxian/WebOS Developer Relations guys linked to a great in-depth article on Palm&#8217;s website about <a href="http://developer.palm.com/index.php?option=com_content&amp;view=article&amp;id=2064">garbage collection in Javascript</a>. It goes into a fair amount of detail about how and when GC runs, and also gives some good advice on how to keep GC from running at inopportune times and bogging down your UI.</p>
<p>Historically, Javascript developers have been able to get away with not worrying too much about GC. However, applications are getting more complex and at the same time as they&#8217;re running on less capable hardware (read: mobile devices). So as we increasingly ask our Javascript to do more with less, it&#8217;s becoming more important to become aware of what&#8217;s going on under the hood.</p>
<h3>Let&#8217;s make a framework</h3>
<p>For the last couple of months, the <a href="http://dailyjs.com">DailyJS</a> blog has been running a series on how to build a Javascript framework from start to finish. Along the way, they&#8217;ve covered topics like API design and building a selector engine, along with more process-oriented topics like the most recent post on <a href="http://dailyjs.com/2010/05/13/framework-part-12/">how to package your library</a>.</p>
<p>There&#8217;s a lot of great info in those posts, so you should definitely head over to DailyJS and check out all of their <a href="http://dailyjs.com/tags.html#lmaf">&#8220;Let&#8217;s make a framework&#8221;</a> posts.</p>
<h3>Go native with Cappuccino</h3>
<p>Recent betas of Atlas, the web-based IDE for Cappuccino development, have included a new feature called <a href="http://cappuccino.org/discuss/2010/05/13/nativehost-run-your-cappuccino-applications-on-the-desktop/">NativeHost</a>, that allows you to export your application as a web app or as a cross-platform desktop application.</p>
<p>If you want to actually see what a Cappuccino/NativeHost app looks like, you can check out the brand new interface to Github Issues that was built with Cappuccino <a href="http://githubissues.heroku.com/">on the web</a> or <a href="http://download.cappuccino.org/Issues-1.0.zip">download the native version</a>. Of course, you should also check out <a href="http://cappuccino.org/discuss/2010/05/13/github-issues-cappuccino-app-desktop-and-web/">what the Cappuccino team has to say about the project</a>, as well.</p>
<h3>How to detect everything</h3>
<p>Last night/this morning, Mark Pilgrim posted Appendix A of his <em>Dive into HTML5</em> book. The appendix, titled: <a href="http://diveintohtml5.org/everything.html">THE ALL-IN-ONE ALMOST-ALPHABETICAL NO-BULLSHIT GUIDE TO DETECTING EVERYTHING</a> is an exhaustive list of methods for detecting browser support for HTML5 features with Javascript. Should you be inclined to roll your own feature detection instead of incorporating a library like <a href="http://www.modernizr.com/">Modernizr</a> to do it for you, It&#8217;s an extremely valuable resource, and well worth bookmarking.</p>
]]></content:encoded>
			<wfw:commentRss>http://jsmag.com/blog/2010/05/news-roundup-gc-desktop-apps-with-cappuccino-and-more/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google Checkout issues</title>
		<link>http://jsmag.com/blog/2009/12/google-checkout-issues/</link>
		<comments>http://jsmag.com/blog/2009/12/google-checkout-issues/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 14:52:42 +0000</pubDate>
		<dc:creator>mgkimsal</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jsmag.com/blog/?p=94</guid>
		<description><![CDATA[We&#8217;ve had an increasing number of problems related to Google Checkout over the past 2 weeks.  If you have an issue receiving your PDFs after paying with Google Checkout, please contact editor@jsmag.com and include the email address you registered with and your Google Checkout receipt and we&#8217;ll take care of it ASAP &#8211; typically within [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve had an increasing number of problems related to Google Checkout over the past 2 weeks.  If you have an issue receiving your PDFs after paying with Google Checkout, please contact editor@jsmag.com and include the email address you registered with and your Google Checkout receipt and we&#8217;ll take care of it ASAP &#8211; typically within 2 hours in most cases.  We&#8217;re working to get to the bottom of this as quickly as possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://jsmag.com/blog/2009/12/google-checkout-issues/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSMag and similar magazine efforts</title>
		<link>http://jsmag.com/blog/2009/03/jsmag-and-similar-magazine-efforts/</link>
		<comments>http://jsmag.com/blog/2009/03/jsmag-and-similar-magazine-efforts/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 13:27:40 +0000</pubDate>
		<dc:creator>mgkimsal</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jsmag.com/blog/2009/03/jsmag-and-similar-magazine-efforts/</guid>
		<description><![CDATA[There seems to be a growing number of magazine-style PDF publications out there.&#160; This is a short list of some of the ones I&#8217;m aware of.&#160; What other ones do you know of?

PHP Architect &#8211; http://phparch.com
MySQL Magazine &#8211; http://www.paragon-cs.com/mag/
GroovyMag &#8211; http://groovymag.com
Python Magazine &#8211; http://pythonmagazine.com
JSMag &#8211; http://jsmag.com
Rails Magazine &#8211; http://railsmagazine.com
The Rubyist &#8211; http://therubyist.com
Java Express &#8211; http://dworld.pl/javaexpress [...]]]></description>
			<content:encoded><![CDATA[<p>There seems to be a growing number of magazine-style PDF publications out there.&nbsp; <br />This is a short list of some of the ones I&#8217;m aware of.&nbsp; What other ones do you know of?
<ul>
<li>PHP Architect &#8211; <a href="http://phparch.com">http://phparch.com</a></li>
<li>MySQL Magazine &#8211; <a href="http://www.paragon-cs.com/mag/">http://www.paragon-cs.com/mag/</a></li>
<li>GroovyMag &#8211; <a href="http://groovymag.com">http://groovymag.com</a></li>
<li>Python Magazine &#8211; <a href="http://pythonmagazine.com">http://pythonmagazine.com</a></li>
<li>JSMag &#8211; <a href="http://jsmag.com">http://jsmag.com</a></li>
<li>Rails Magazine &#8211; <a href="http://railsmagazine.com">http://railsmagazine.com</a></li>
<li>The Rubyist &#8211; <a href="http://therubyist.com">http://therubyist.com</a></li>
<li>Java Express &#8211; <a href="http://dworld.pl/javaexpress">http://dworld.pl/javaexpress</a> (Polish)</li>
<li>RailsWays &#8211; <a href="http://it-republik.de/railsway/magazin-ausgaben/Ruby-on-Rails-000281.html">http://it-republik.de/railsway/magazin-ausgaben/Ruby-on-Rails-000281.html</a> (German)</li>
<li>Rubyist Magazine &#8211; <a href="http://jp.rubyist.net/magazine/">http://jp.rubyist.net/magazine/</a> (Japanese)</li>
</ul>
<p>I know I have to be missing some other good ones.&nbsp; What are your favorites?</p>
<p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=cd0b3845-62fd-4ce5-a8e6-a5a4d4df1fbd" /></div>
]]></content:encoded>
			<wfw:commentRss>http://jsmag.com/blog/2009/03/jsmag-and-similar-magazine-efforts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSMag now available</title>
		<link>http://jsmag.com/blog/2009/03/jsmag-now-available/</link>
		<comments>http://jsmag.com/blog/2009/03/jsmag-now-available/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 18:02:29 +0000</pubDate>
		<dc:creator>mgkimsal</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jsmag.com/blog/?p=13</guid>
		<description><![CDATA[Our first issue is now available!  Articles include:

What&#8217;s new in jQuery 1.3
Don&#8217;t be Alert!
Unit Testing in JavaScript
Functional Programming inJavaScript
Introduction to ExtJS
and more!

Visit http://jsmag.com/latest for more information
]]></description>
			<content:encoded><![CDATA[<p>Our first issue is now available!  Articles include:</p>
<ul>
<li>What&#8217;s new in jQuery 1.3</li>
<li>Don&#8217;t be Alert!</li>
<li>Unit Testing in JavaScript</li>
<li>Functional Programming inJavaScript</li>
<li>Introduction to ExtJS</li>
<li>and more!</li>
</ul>
<p>Visit <a href="http://jsmag.com/latest" target="_blank">http://jsmag.com/latest</a> for more information</p>
]]></content:encoded>
			<wfw:commentRss>http://jsmag.com/blog/2009/03/jsmag-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
