<?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; News</title>
	<atom:link href="http://jsmag.com/blog/category/news/feed/" rel="self" type="application/rss+xml" />
	<link>http://jsmag.com/blog</link>
	<description>Javascript Magazine for Javascript developers</description>
	<lastBuildDate>Fri, 30 Jul 2010 02:49:57 +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: Canto, Unveil, DailyJS on Mobile</title>
		<link>http://jsmag.com/blog/2010/07/news-roundup-canto-unveil/</link>
		<comments>http://jsmag.com/blog/2010/07/news-roundup-canto-unveil/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 02:46:29 +0000</pubDate>
		<dc:creator>matthenry</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://jsmag.com/blog/?p=284</guid>
		<description><![CDATA[Canto
Canvas is one of the most exciting features of HTML5, but it&#8217;s not necessarily an easy tool to use. Even once you&#8217;ve gotten the hang of it, the code written in service of the API can be extremely verbose, and not very pleasant to look at. No less than David Flanagan, author of the Rhino [...]]]></description>
			<content:encoded><![CDATA[<h3>Canto</h3>
<p>Canvas is one of the most exciting features of HTML5, but it&#8217;s not necessarily an easy tool to use. Even once you&#8217;ve gotten the hang of it, the code written in service of the API can be extremely verbose, and not very pleasant to look at. No less than David Flanagan, author of the <a href="http://oreilly.com/catalog/9780596805531">Rhino book</a>, has written a very handy wrapper library around Canvas. <a href="http://www.davidflanagan.com/2010/07/cantojs-an-impr.html">Canto</a> offers several huge improvements on the API. One of the simplest but most impactful improvements is the ability to chain method calls. Additionally, Canto extends the existing Canvas methods, such as <code>lineTo()</code>, to let you specify more than two arguments. Doing so will invoke the same methods multiple times. Additionally, Canto includes methods that mimic the behavior of the <code>path</code> attribute of the SVG element, allowing you to do SVG-like drawing within a Canvas element.</p>
<p>Note that Canto doesn&#8217;t include any major abstractions on top of the existing Canvas API, so if you don&#8217;t understand the basics of Canvas, it isn&#8217;t going to write your drawing code for you. However, it will save you a heck of a lot of typing and probably make your drawing code more readable and maintainable. If you&#8217;re doing any Canvas work, it&#8217;s definitely worth giving Canto a look.</p>
<h3>Unveil</h3>
<p>Speaking of Canvas, <a href="http://github.com/michael/unveil">Unveil</a> is a very promising new data visualization library that draws its graphs using Canvas. Unveil creates rich, interactive graphs using JSON datasets. It has lots of common graph types built in (histograms, scatter plots, and some others), and also has an intuitive API for creating new chart types.</p>
<p>One of the ways in which Unveil differs from other, similar libraries is in the ability to specify different framerates for different stages in an animation. This allows you to increase the framerate when there&#8217;s a lot of movement in the graph, but then to lower the framerate again between major actions. This helps keep CPU utilization to a minimum.</p>
<p>Unveil is in the fairly early stages, so the library&#8217;s author recommends not using it outside of WebKit browsers yet. But once the cross-browser bugs are squashed, it&#8217;s going to be extremely useful. If you&#8217;re curious to learn more, check out the (very good) <a href="http://docs.quasipartikel.at/#/unveil">documentation</a>.</p>
<p>On the whole, Unveil gives you a lot of very Flash-like interactivity in Canvas. This is exactly the kind of tool we need more of if Canvas is going to make inroads in creating animations in the browser without plugins.</p>
<h3>DailyJS on Touch Devices</h3>
<p>I&#8217;ve called attention to DailyJS&#8217;s &#8220;Let&#8217;s Make a Framework&#8221; series on a few occasions. This week, they&#8217;ve started a new &#8220;chapter&#8221; in the series that covers touch devices (e.g. mobile devices &#038; tablets). The <a href="http://dailyjs.com/2010/07/29/framework-part-23/">first installment</a> covers device orientation. There&#8217;s not a whole lot in this first post, but orientation isn&#8217;t exactly the most complicated topic in mobile development. I&#8217;m mostly mentioning it because they&#8217;re sure to give some great coverage of the twistier areas of mobile javascript in future posts. The whole &#8220;Let&#8217;s Make a Framework&#8221; series has been great so far, so keep your eyes peeled.</p>
]]></content:encoded>
			<wfw:commentRss>http://jsmag.com/blog/2010/07/news-roundup-canto-unveil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>News Roundup: Dojo 1.5, Google Style Guide, and Tutorials &amp; Articles</title>
		<link>http://jsmag.com/blog/2010/07/news-roundup-dojo-1-5-google-style-guide-and-tutorials-articles/</link>
		<comments>http://jsmag.com/blog/2010/07/news-roundup-dojo-1-5-google-style-guide-and-tutorials-articles/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 18:58:49 +0000</pubDate>
		<dc:creator>matthenry</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[dojo]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[paulirish]]></category>
		<category><![CDATA[souders]]></category>

		<guid isPermaLink="false">http://jsmag.com/blog/?p=280</guid>
		<description><![CDATA[Dojo 1.5 Released
Dojo 1.5 is out, and there&#8217;s a heck of a lot of new stuff in this release. In addition to improvements to the core codebase, there are scads of extremely useful feature additions. For instance, Dojo now shows how forward-looking it is with its excellent cross-browser support for HTML5 &#038; CSS3 features, such [...]]]></description>
			<content:encoded><![CDATA[<h3>Dojo 1.5 Released</h3>
<p>Dojo 1.5 is out, and there&#8217;s a heck of a lot of <a href="https://www.dojotoolkit.org/reference-guide/releasenotes/1.5.html">new stuff in this release</a>. In addition to improvements to the core codebase, there are scads of extremely useful feature additions. For instance, Dojo now shows how forward-looking it is with its excellent cross-browser support for HTML5 &#038; CSS3 features, such as CSS animations, local storage, Canvas, among others.</p>
<p>Additionally, the new release has a whole slew of mobile-specific features many of which are geared toward providing native-like experiences in the browser. Once such feature is the inclusion of the <a href="http://static.uxebu.com/~david/touchscroll/">TouchScroll</a> library for simulating native scroll mechanics. This is one of the few areas in mobile development where a library is truly necessary, so kudos to Dojo for going that route. Additionally, they&#8217;ve provided a stripped-down version of the library to reduce the load time.</p>
<p>The other change I&#8217;d like to call out is the improved UI. Form inputs in Dojo widgets now have a standard height, which makes a huge difference. The one-or-two pixel differences you previously saw in some widgets were often annoying, so this is a very welcome improvement. The new Claro theme is also very handsome, if you&#8217;re using Dijit.</p>
<p>If you haven&#8217;t checked out Dojo, now would be a great time to do so. With this new release, the Dojo team has made the most compelling argument yet that their framework deserves your attention.</p>
<h3>Google Javascript Style Guide</h3>
<p>Google has done the community a huge favor and published their <a href="http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml">style guide for Javascript code</a>. This should be a huge boon to any large Javascript project that is looking to standardize on a coding format. In addition to making code more readable and (in my opinion) cosmetically appealing, many of the rules contained in the guide will help you avoid quirks of Javascript interpreters.</p>
<p>Of course, in addition to the formatting rules, there are several recommendations on best practices as well. For instance, the document has a recommendation regarding how to create closures while avoiding memory leaks. And finally, the document closes with a handful of tips on writing idiomatic Javascript, such as using the ternary operator and short-circuit booleans.</p>
<p>All in all, it&#8217;s a highly recommended read.</p>
<h3>A few articles worth your attention</h3>
<p>This week there have been a fair number of compelling articles that are worth a look. I wanted to call out a few here, just in case you missed them.</p>
<ul>
<li><a href="http://msdn.microsoft.com/en-us/scriptjunkie/ff852808.aspx">Prototypes and Inheritance in JavaScript</a> &#8211; One of the central features of Javascript, and also one of the least understood, is the system of prototypal inheritance. More often than not, if this features is used, it&#8217;s in an attempt to shoehorn something like classical (Java-like) inheritance into Javascript. In this article, Scott Allen does a great job of introducing the topic of prototypes and makes a good case for adding them to your utility belt.</li>
<li><a href="http://paulirish.com/2010/10-things-i-learned-from-the-jquery-source/">10 Things I Learned from the jQuery Source</a> &#8211; Okay, this isn&#8217;t from this week, but it&#8217;s a great video, and one I can&#8217;t believe I haven&#8217;t linked to before. In it, the intrepid Paul Irish calls out 10 interesting Javacript techniques he learned by reading the jQuery source. In addition to teaching you some new things about Javascript and jQuery, it&#8217;s a great argument for the idea that one of the best ways to learn about the craft of programming is to read other people&#8217;s source.</li>
<li><a href="http://www.stevesouders.com/blog/2010/07/23/redirect-caching-deep-dive/">Redirect caching deep dive</a> &#8211; Souders has some sobering news about how bad a job browsers do with caching redirects.
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://jsmag.com/blog/2010/07/news-roundup-dojo-1-5-google-style-guide-and-tutorials-articles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>News Roundup: Diffable, Def.js, Node servers, and more</title>
		<link>http://jsmag.com/blog/2010/07/news-roundup-diffable-def-js-node-servers-and-more/</link>
		<comments>http://jsmag.com/blog/2010/07/news-roundup-diffable-def-js-node-servers-and-more/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 06:39:16 +0000</pubDate>
		<dc:creator>matthenry</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[coffeescript]]></category>
		<category><![CDATA[def]]></category>
		<category><![CDATA[defer]]></category>
		<category><![CDATA[diffable]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[multi-node]]></category>
		<category><![CDATA[nodejs]]></category>
		<category><![CDATA[nodeload]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://jsmag.com/blog/?p=275</guid>
		<description><![CDATA[Diffable
Diffable is a new project from a scrappy little web firm called Google. Here&#8217;s the idea behind Diffable: If a user has a version of your page&#8217;s Javascripts cached, the next time that user visits your page, they&#8217;ll only have to download any changes to those scripts. 
Diffable was initially developed by members of the [...]]]></description>
			<content:encoded><![CDATA[<h3>Diffable</h3>
<p><a href="http://googlediffable.blogspot.com/">Diffable</a> is a new project from a scrappy little web firm called Google. Here&#8217;s the idea behind Diffable: If a user has a version of your page&#8217;s Javascripts cached, the next time that user visits your page, they&#8217;ll only have to download any changes to those scripts. </p>
<p>Diffable was initially developed by members of the Google Maps team who have reduced their page-load times by ~1200ms for users who have the older versions of the Maps scripts in their cache. Granted, they get those kinds of results because they&#8217;ve got 300k worth of scripts, so you&#8217;re not likely to see that kind of a jump unless you&#8217;ve got a similar payload. That said, this is a great utility and one that&#8217;s certainly going to get a lot of attention.</p>
<h3>Def.js</h3>
<p>There are any number of libraries out there that build something like classical inheritance into Javascript. Most of them give you something that looks like Java or C++ classes. <a href="http://github.com/tobeytailor/def.js">Def.js</a> is a new library which implements classical inheritance using something a lot like Ruby&#8217;s syntax and object model, complete with automatically-invoked initialization methods.</p>
<p>As much as I love Ruby, I also really love Javascript, so I&#8217;m not necessarily keen to mix up their syntaxes (I&#8217;m also not in any particular hurry to forsake prototypal inheritance). That said, this is a clever hack, and I&#8217;m sure there are plenty of folks out there who will put it to good use. </p>
<p>(Hat tip to <a href="http://dailyjs.com/2010/07/14/def-pie/">DailyJS</a>)</p>
<h3>Nodeload and Multi-Node</h3>
<p>This week, a couple of awesome new Node.js server projects were unveiled. The first of these is Github&#8217;s <a href="http://github.com/blog/678-meet-nodeload-the-new-download-server">Nodeload</a>. Nodeload is now responsible for serving tarballs and zipped archives of code in Github repositories. The old system used multiple Sinatra &#038; Resque instances to do the same task, but new(-ish) Githubber, Rick Olson, saw the opportunity to apply Node&#8217;s non-blocking I/O to replace all of those resources.</p>
<p>Another cool new Node server project is <a href="http://www.sitepen.com/blog/2010/07/14/multi-node-concurrent-nodejs-http-server/">Multi-Node</a>. Multi-Node lets you specify a number of node server instances to be created, along with a port to listen on, and then defers to the OS kernel to handle load-balancing between the nodes. Even better, rather than operating independently of each other, the nodes can communicate with each other allowing for Comet-like interactions between servers. Great stuff.</p>
<h3>Defer</h3>
<p><a href="http://gfxmonk.net/2010/07/04/defer-taming-asynchronous-javascript-with-coffeescript.html">Defer</a> is a new <a href="http://jashkenas.github.com/coffee-script/">CoffeeScript</a> extension that gives you a super-simple way to handle data from asynchronous processes (such as Ajax requests, HTML5 database access, etc.). Normally, in order to get data back from an asynchronous method, you&#8217;d need to do so through a callback that executed when the method returned. This is a common pattern, but it&#8217;s one that isn&#8217;t always terribly readable, and is fairly tough for new Javascripters to wrap their brains around. Defer gives you some CoffeeScript sugar (no pun intended, I assure you) to let you write familiar looking method calls and assign their return values to a variable, just like you&#8217;d do with a synchronous method. Very handy stuff, especially if you&#8217;re already using CoffeeScript.</p>
<p>(Hat tip: <a href="http://badassjs.com/post/789762355/defer-taming-asynchronous-javascript-with-coffeescript">Badass Javascript</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://jsmag.com/blog/2010/07/news-roundup-diffable-def-js-node-servers-and-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>News Roundup: Data URIs, Knockout, Mobile Browsers</title>
		<link>http://jsmag.com/blog/2010/07/news-roundup-data-uris-knockout/</link>
		<comments>http://jsmag.com/blog/2010/07/news-roundup-data-uris-knockout/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 21:16:08 +0000</pubDate>
		<dc:creator>matthenry</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[ajaxian]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[datauri]]></category>
		<category><![CDATA[knockout]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[sprites]]></category>

		<guid isPermaLink="false">http://jsmag.com/blog/?p=267</guid>
		<description><![CDATA[Are people taking summer vacations out there, or what? It&#8217;s been a bit of a slow news week on the Javascript front, but don&#8217;t worry, we&#8217;ve got plenty of great stuff to keep you busy.
Data URIs make CSS sprites obsolete
The always prolific Nicholas Zakas has a great post up on his blog titled Data URIs [...]]]></description>
			<content:encoded><![CDATA[<p>Are people taking summer vacations out there, or what? It&#8217;s been a bit of a slow news week on the Javascript front, but don&#8217;t worry, we&#8217;ve got plenty of great stuff to keep you busy.</p>
<h3>Data URIs make CSS sprites obsolete</h3>
<p>The always prolific Nicholas Zakas has a great post up on his blog titled <a href="http://www.nczonline.net/blog/2010/07/06/data-uris-make-css-sprites-obsolete/">Data URIs make CSS sprites obsolete</a>. The main argument he makes goes like this: We want to reduce the number of HTTP requests we make, so we put all (or at least a lot) of our background images together in on image file (a technique known as &#8220;spriting&#8221;). However, CSS sprites are a pain to work with. What we need is a way to cut down on HTTP requests without having to perform the CSS positioning acrobatics normally required with CSS sprites. Zakas&#8217;s solution is to use <a href="http://en.wikipedia.org/wiki/Data_URI_scheme">data URIs</a> to put the image data directly in your stylesheets. It makes the CSS significantly larger, but that will cause less of a performance hit than issuing the additional HTTP requests for the sprited images.</p>
<p>Unfortunately, data URIs aren&#8217;t supported in IE &lt; 8, so you&#8217;ll still need to fall back to sprites if you need to support IE 6 &amp; 7. Still, Zakas&#8217;s solution is a great one, especially if you use his <a href="http://github.com/nzakas/cssembed">CSSEmbed</a> tool, which automatically creates the data URIs and puts them in your CSS for you. Make it part of your build process, and you&#8217;re good to go!</p>
<h3>Knockout</h3>
<p><a href="http://knockoutjs.com/">Knockout</a>is a new framework for connecting your HTML views to your model data. Primarily, it observes some data object, and when that object changes, it will update the corresponding view with the new data. Additionally, it has its own templating capabilities. The framework&#8217;s author, <a href="http://twitter.com/stevensanderson">Steven Sanderson</a> compares Knockout usage to the patterns you&#8217;d employ in Silverlight, so its something that .Net developers might want to check out.</p>
<h3>Mobile Browser Cache Limits</h3>
<p>Figuring out just how much data can be stored in mobile browser caches and under what circumstances those caches persist. <a href=http://www.yuiblog.com/blog/2010/06/28/mobile-browser-cache-limits/">A new post on the YUI blog</a> features a ton of new research into the current state of these limits. Rather than summarizing their results, I suggest reading (and bookmarking!) the article. The data are indispensible.</p>
<h3>Dion &#038; Ben step down as Ajaxian editors</h3>
<p>Lastly, as you probably all know already, Dion Almaer and Ben Galbraith have <a href="http://ajaxian.com/archives/ben-and-dion-step-down-as-editors-of-ajaxian-com">stepped down as editors of Ajaxian</a>. The site will continue, and Dion &#038; Ben will continue to contribute occasionally, but they&#8217;re handing the editorial reins over to TechTarget, the company that actually owns the Ajaxian.com domain. Ajaxian has done a ton of good for us Javascripters during Dion&#8217;s &#038; Ben&#8217;s tenure, so I want to personally extend my thanks to them.</p>
]]></content:encoded>
			<wfw:commentRss>http://jsmag.com/blog/2010/07/news-roundup-data-uris-knockout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>News Roundup:  Boomerang, IE9, Bespin Updates</title>
		<link>http://jsmag.com/blog/2010/07/news-roundup-boomerang-ie9-bespin-updates/</link>
		<comments>http://jsmag.com/blog/2010/07/news-roundup-boomerang-ie9-bespin-updates/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 00:56:49 +0000</pubDate>
		<dc:creator>matthenry</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[bespin]]></category>
		<category><![CDATA[boomerang]]></category>
		<category><![CDATA[es5]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[ie9]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[sproutcore]]></category>
		<category><![CDATA[yahoo]]></category>
		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://jsmag.com/blog/?p=257</guid>
		<description><![CDATA[A lot of this week&#8217;s news this week is from some of the big shots (Yahoo!, Microsoft, and Mozilla), but it&#8217;s still pretty cool stuff so read on for the latest.
ES5 support in IE9
The Internet Explorer team has been hard at work on building as much ECMAScript5 (ES5) support as possible into IE9.
Kangax has updated [...]]]></description>
			<content:encoded><![CDATA[<p>A lot of this week&#8217;s news this week is from some of the big shots (Yahoo!, Microsoft, and Mozilla), but it&#8217;s still pretty cool stuff so read on for the latest.</p>
<h3>ES5 support in IE9</h3>
<p>The Internet Explorer team has been hard at work on building as much ECMAScript5 (ES5) support as possible into IE9.<br />
Kangax has updated his <a href="http://kangax.github.com/es5-compat-table/">ES5 implementation table</a> to reflect the new ES5 features, and has a <a href="http://perfectionkills.com/jscript-and-dom-changes-in-ie9-preview-3/">nice blog post</a> detailing what&#8217;s been done and what still needs work. There are certainly still a few head-scratchers in there, as Kangax points out, such as host objects not inheriting from <code>Object.prototype</code>. Still, the IE team&#8217;s work is really impressive, and IE9 has at least a partial implementation of everything in ES5 except for strict mode. You can check out their progress by running the most recent <a href="http://blogs.msdn.com/b/ie/archive/2010/06/23/html5-native-third-ie9-platform-preview-available-for-developers.aspx">platform preview</a>.</p>
<p>Another sign of Microsoft&#8217;s commitment to the ES5 standard is the <a href="http://blogs.msdn.com/b/ie/archive/2010/06/25/javascript-same-code-and-a-standardized-test-suite.aspx">test suite they&#8217;ve created to check for ES5 feature support</a>. ECMA currently doesn&#8217;t have an official suite to check for ES5 conformance, and Microsoft is leading the charge to put one in place to help ensure interoperability between different Javascript interpreters.</p>
<p>This is great stuff, and it&#8217;s extremely encouraging to see the commitment that Microsoft is making to supporting web standards.</p>
<h3>Yahoo!&#8217;s Boomerang</h3>
<p><a href="http://github.com/yahoo/boomerang">Boomerang</a> is a new utility for measuring website performance as it is actually experienced by your users. Tools like Page Speed and YSlow can give you an idea of how long it takes for various parts of your sites to load. But by virtue of their being installed in your browser, the data you&#8217;ll get will only represent performance on your local network or from whatever off-site locations from which you happen to test, and only in your browser of choice. </p>
<p>Boomerang remedies this deficiency by using a new approach to collecting performance data. It&#8217;s just a small snippet of Javascript that you include in your pages. It collects some data about page load times (among other things) and sends it back to your server. That way, you get data from as many different locations and OS/browser combinations as your site has visitors.</p>
<h3>Bespin 0.9a1</h3>
<p>Mozilla has just updated their <a href="http://mozillalabs.com/bespin/">Bespin</a> in-browser IDE with some impressive new features. One big new feature is code completion based on <a href="http://ctags.sourceforge.net/">Ctags</a> (a format that should be familiar to Vim and Emacs users). At the moment, it looks like Javascript is the only language for which code completion is supported.</p>
<p>The other big feature for this release is pretty impressive from an implementation perspective. Now users of Embedded Bespin can have multiple Bespin editors on a single page. As the engineers point out in their <a href="http://mozillalabs.com/bespin/2010/06/29/bespin-0-9a1-released-multiple-bespins-code-completion/">blog post announcing the release</a>, Bespin&#8217;s plugin system made it particularly challenging to sandbox completely separate instances of the editor on one page. Incidentally, this problem is very similar to the one that motivated a lot of the core design decisions that went into building YUI3. I haven&#8217;t dug into the <a href="http://hg.mozilla.org/labs/bespinclient/">Bespin source</a>, but it would be a good exercise to compare and contrast their solution to YUI&#8217;s.</p>
<h3>SproutCore lead leaves Apple</h3>
<p>Charles Jolley, the lead developer of SproutCore, has announced that <a href="http://blog.sproutcore.com/post/756343010/the-next-revolution">he&#8217;s leaving his job at Apple to start his own company</a>. This is particularly interesting, since in his blog post about the transition, he implies that SproutCore was being hindered by its being developed under Apple&#8217;s roof. As this won&#8217;t be the case any longer, Jolley promises lots of new stuff coming to the framework. </p>
]]></content:encoded>
			<wfw:commentRss>http://jsmag.com/blog/2010/07/news-roundup-boomerang-ie9-bespin-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>News Roundup: ChromeKit, PlaceFinder, and HTML5 Rocks!</title>
		<link>http://jsmag.com/blog/2010/06/news-roundup-chromekit-placefinder-and-html5-rocks/</link>
		<comments>http://jsmag.com/blog/2010/06/news-roundup-chromekit-placefinder-and-html5-rocks/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 23:31:55 +0000</pubDate>
		<dc:creator>matthenry</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[chromekit]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://jsmag.com/blog/?p=247</guid>
		<description><![CDATA[Okay, the news this week leans pretty heavily towards general web development stuff rather than Javascript specifically, but it&#8217;s good stuff. I promise.
ChromeKit
ChromeKit is a new library for creating desktop-like UI elements in the browser. It allows you to create windows with full chrome that allow you to do all of the things you&#8217;d expect [...]]]></description>
			<content:encoded><![CDATA[<p>Okay, the news this week leans pretty heavily towards general web development stuff rather than Javascript specifically, but it&#8217;s good stuff. I promise.</p>
<h3>ChromeKit</h3>
<p><a href="http://github.com/guille/chromekit">ChromeKit</a> is a new library for creating desktop-like UI elements in the browser. It allows you to create windows with full chrome that allow you to do all of the things you&#8217;d expect to be able to do with windows in your main OS (i.e. drag, resize, minimize, etc.). It does this using pure HTML/CSS/JS (okay, it uses images too in a couple of spots).</p>
<p>ChromeKit does a pretty decent job of progressively enhancing its windows in order to give an impressive degree of cross-browser and legacy browser support. In newer browsers, there is also plenty of sexy CSS3 &#038; vendor-prefixed goodness to make the windows look extremely slick.</p>
<p>Probably the coolest features of ChromeKit are the experimental Mac-like (Exposé) and Windows-like (Aero flip) window management effects. Even if you can&#8217;t imagine ever having to use ChromeKit, you might still want to take a look at the Exposé implementation as an example of some pretty heavy Computer Science stuff being brought to bear in Javascript (The library author attributes his solution to the Exposé window packing/arrangement problem to a paper called &#8220;Guided Local Search for the Three-Dimensional Bin-Packing Problem&#8221;).</p>
<h3>PlaceFinder</h3>
<p><a href="http://developer.yahoo.com/geo/placefinder/">PlaceFinder</a> is a sweet new REST API from Yahoo! that gives you dead easy geocoding and reverse geocoding information all with a simple GET request. If you send PlaceFinder a street address or a place name that it knows about, it will give you the latitude and longitude for that address or place. Conversely, if you give it coordinates, it will return the address (among other data about the location). With <a href="http://dev.w3.org/geo/api/spec-source.html">HTML5 geolocation</a> getting to be ubiquitous, it&#8217;s trivial to get a user&#8217;s geographic coordinates, but with PlaceFinder it&#8217;s just as easy now to take those data and turn them into a representation of the location that&#8217;s actually <em>useful</em>.</p>
<p>If you take a look at the <a href="http://developer.yahoo.com/geo/placefinder/guide/examples.html">examples</a> in the PlaceFinder <a href="http://developer.yahoo.com/geo/placefinder/guide/">documentation</a>, you can see a few of the hard problems that the API solves for you for free, such as localized place names and bounding boxes from a point. And of course, since PlaceFinder is just a REST API, you can easily query it through <a href="http://developer.yahoo.com/yql/console/">YQL</a>, so if you&#8217;ve already got any YQL features in your application, it should be pretty trivial to start consuming PlaceFinder data.</p>
<h3>HTML5 Rocks!</h3>
<p>The Google Developer Relations team is publishing a new site called <a href="http://www.html5rocks.com/">HTML5Rocks</a> that contains demos and tutorials about all of the cool things you can&#8217;t do in Internet Explorer (I kid. Although they do feature <a href="http://code.google.com/chrome/chromeframe/">Chrome Frame</a> pretty prominently on the main page). So far the content is (unsurprisingly) absolutely top drawer. The tutorial on <a href="html5, yahoo, google, chromekit">speeding up your webapp with HTML5</a> contains a ton of pearls for optimizing a forward-looking app.</p>
<p>HTML5Rocks is brand new, but there&#8217;s already a lot to love there, and it&#8217;s sure to only get more and more useful. So you&#8217;ll definitely want to bookmark it or stick it in your feed reader.</p>
]]></content:encoded>
			<wfw:commentRss>http://jsmag.com/blog/2010/06/news-roundup-chromekit-placefinder-and-html5-rocks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>News: Ext JS is now Sencha, Cohorts, and PDF.js</title>
		<link>http://jsmag.com/blog/2010/06/news-ext-js-is-now-sencha-cohorts-and-pdf-js/</link>
		<comments>http://jsmag.com/blog/2010/06/news-ext-js-is-now-sencha-cohorts-and-pdf-js/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 07:04:32 +0000</pubDate>
		<dc:creator>matthenry</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[cohorts]]></category>
		<category><![CDATA[extjs]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[pdf.js]]></category>
		<category><![CDATA[sencha]]></category>

		<guid isPermaLink="false">http://jsmag.com/blog/?p=240</guid>
		<description><![CDATA[Another week is on its way out, so it&#8217;s time to look back at some of the cool stuff you folks have been working on in the week that was.
Ext JS is now Sencha
Ext JS, the company behind the Ext JS Javascript libraries and tools, has changed its name to Sencha. To go along with [...]]]></description>
			<content:encoded><![CDATA[<p>Another week is on its way out, so it&#8217;s time to look back at some of the cool stuff you folks have been working on in the week that was.</p>
<h3>Ext JS is now Sencha</h3>
<p>Ext JS, the company behind the Ext JS Javascript libraries and tools, has changed its name to <a href="http://sencha.com">Sencha</a>. To go along with the name change, they&#8217;ve also brought two open source projects, jQTouch, and Raphaël, into the fold. It&#8217;s worth pointing out that jQTouch &amp; Raphaël will remain MIT licensed, although their project leads have both come on board with Sencha.</p>
<p>Between the name change and last week&#8217;s exciting release of the <a href="http://github.com/extjs/connect">Connect middleware framework for NodeJS</a>, you&#8217;d think the Sencha folks wouldn&#8217;t have any other big announcements lined up. You&#8217;d be wrong though, since they&#8217;ve also announced the new <a href="http://www.sencha.com/products/touch/">Sencha Touch</a> framework for developing native-like apps for iOS &amp; Android devices. Sencha Touch gives you a ton of handy tools to make developing mobile web apps easier. It gives you enhanced support for touch events as well as providing a library of custom gesture events. Additionally, it comes with a lot of common mobile UI widgets as well as icons and graphics.</p>
<p>One note of caution: Sencha says that the main Sencha Touch library weighs in at around 80k, which is pretty hefty for a mobile framework. This might cause you some performance headaches since the <a href="http://www.yuiblog.com/blog/2008/02/06/iphone-cacheability/">iPhone won&#8217;t cache any single page component that weighs in over 25k</a>. However, you can work around this by using the <a href="http://www.w3.org/TR/offline-webapps/">offline application cache</a> (i.e., declare the asset in a cache manifest).</p>
<p>All in all, it&#8217;s been a very productive week for the newly minted Sencha team, so congratulations to them.</p>
<h3>Cohorts</h3>
<p><a href="http://github.com/jamesyu/cohorts">Cohorts</a> is a pretty sweet library for doing multivariate tests on your site. In the context of web design/development, multivariate testing is usually used to determine which design elements generate the most clicks or conversions. So imagine you wanted to test whether a red or a green &#8220;Buy it Now&#8221; button would get more clicks. Just add the Cohorts code, set up two cohorts (one that will get the green button and one that would get the red). After you run the tests for a while, you&#8217;ll get results telling you the number of people who saw each of the different colored buttons, and of those, how many went ahead and clicked. By default, the events it tracks will be reported in your Google Analytics, although you can roll your own reporting solution. That&#8217;s pretty slick.</p>
<h3>PDF.js</h3>
<p><a href="http://www.maraksquires.com/pdf.js/">PDF.js</a> is a new library for generating PDFs in Javascript. It provides a handful of methods for adding and formatting text and other document components (e.g. fonts, images). You then use those methods to build a PDF document that can then be output as a data URI (if you&#8217;re running the code in a browser), or directly to the filesystem (if you&#8217;re running the code in NodeJS).</p>
<p>The browser implementation looks to be fairly buggy, based on the developer&#8217;s comments, but it&#8217;s still a noteworthy achievement, and the Node version works pretty well.</p>
]]></content:encoded>
			<wfw:commentRss>http://jsmag.com/blog/2010/06/news-ext-js-is-now-sencha-cohorts-and-pdf-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSonduit: make a feed from almost anything</title>
		<link>http://jsmag.com/blog/2010/06/jsonduit-make-a-feed-from-almost-anything/</link>
		<comments>http://jsmag.com/blog/2010/06/jsonduit-make-a-feed-from-almost-anything/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 11:55:08 +0000</pubDate>
		<dc:creator>mgkimsal</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://jsmag.com/blog/?p=237</guid>
		<description><![CDATA[I just played with JSonduit, and was able to make a data feed from the JSMag blog feed in about 6 minutes.
http://jsonduit.com/feedinfo.html?id=7q6 takes you to the feed info, with the ability to create a custom widget for display on a site.
With some slightly stronger authoring tools, this would allow &#8216;common folk&#8217; to identify parts of [...]]]></description>
			<content:encoded><![CDATA[<p>I just played with <a href="http://jsonduit.com/" target="_blank">JSonduit</a>, and was able to make a data feed from the JSMag blog feed in about 6 minutes.</p>
<p><a href="http://jsonduit.com/feedinfo.html?id=7q6" target="_blank">http://jsonduit.com/feedinfo.html?id=7q6</a> takes you to the feed info, with the ability to create a custom widget for display on a site.</p>
<p>With some slightly stronger authoring tools, this would allow &#8216;common folk&#8217; to identify parts of a page they&#8217;d like to be accessed, create a &#8216;feed&#8217; from them, then pass just the feed to developers for processing.  As it stands, it&#8217;s still a bit more of a geeky tool, but useful nonetheless.  It&#8217;ll be interesting to see what people use this for.</p>
]]></content:encoded>
			<wfw:commentRss>http://jsmag.com/blog/2010/06/jsonduit-make-a-feed-from-almost-anything/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>News Roundup: Traits, Scriptsrc.net, and more</title>
		<link>http://jsmag.com/blog/2010/05/news-roundup-traits-scriptsrc-net-and-more/</link>
		<comments>http://jsmag.com/blog/2010/05/news-roundup-traits-scriptsrc-net-and-more/#comments</comments>
		<pubDate>Fri, 07 May 2010 02:52:27 +0000</pubDate>
		<dc:creator>matthenry</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://jsmag.com/blog/?p=172</guid>
		<description><![CDATA[We&#8217;re trying something new here at JSMag: in addition to the monthly news column in the magazine, we&#8217;ll be featuring a weekly roundup of news here on the blog. We&#8217;ve got some great stuff to talk about this week, so let&#8217;s dive in.
Traits.js
Traits.js is a library that allows you to use traits in Javascript. In [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re trying something new here at JSMag: in addition to the monthly news column in the magazine, we&#8217;ll be featuring a weekly roundup of news here on the blog. We&#8217;ve got some great stuff to talk about this week, so let&#8217;s dive in.</p>
<h3>Traits.js</h3>
<p><a title="Traits.js" href="http://traitsjs.org">Traits.js</a> is a library that allows you to use traits in Javascript. In case you&#8217;re not familiar with the idea of a trait, it&#8217;s something like a mixin (though traits are more flexible) or an abstract class (less apt, but maybe a more familiar concept given its use in PHP &amp; Java). The idea first popped up in Squeak and PLT Scheme, and most recently has become a big part of Scala (along with several other languages). A trait is essentially a collection of methods that can be imported into an object. The Traits.js library allows you to compose traits (i.e. make a new trait by combining other traits), overwrite trait methods, and even provides a way to resolve conflicts among trait methods with the same name. It&#8217;s a very clear but powerful API.</p>
<p>The library uses a lot of the awesome new ECMAScript 5 object-manipulation API (a good discussion of which you can find <a title="ES5 getters &amp; setters api" href="http://google-caja.googlecode.com/svn/trunk/doc/html/es5-talk/img6.html">here</a>) Better still, it works with both ECMAScript 3 as well as ES5, so while it conforms to the new standard, it is still fully functional in older ES implementations.</p>
<p>If you&#8217;re interested in this stuff, you can see a very in-depth tech talk (<a title="tech talk video" href="http://www.youtube.com/watch?v=A1R8KGKkDjU">video</a>, <a title="tech talk slides" href="http://es-lab.googlecode.com/files/harmony_highlights_techtalk.pdf">slides</a>) that goes into a fair bit of detail about Traits.js. Also, there was a lengthy discussion of traits this week on the <a title="es-discuss traits thread" href="https://mail.mozilla.org/pipermail/es-discuss/2010-May/011060.html">es-discuss mailing list</a>.</p>
<h3>ES5 Implementation Tracker</h3>
<p>Speaking of ECMAScript 5, here&#8217;s a quick pointer to a <a title="ecmascript5 implementations" href="http://wiki.ecmascript.org/doku.php?id=es3.1:es3.1">list of ES5 implementations</a>. It&#8217;s pretty much just a roundup of bug tracking tickets for several Javascript engines that follows those engines&#8217; progress in adding ES5 features. If you want up-to-the-minute news about when you can use a particular part of ES5 in a given browser, this is the place to look.</p>
<h3>Scriptsrc.net</h3>
<p><a title="Scriptsrc.net" href="http://scriptsrc.net/">Scriptsrc.net</a> provides a simple way to get links to several popular Javascript libraries hosted on Google&#8217;s CDN. Just tap a button, and the script tag containing the link to the library is copied to your clipboard. As a side note, I&#8217;d be curious to hear why the site&#8217;s authors omitted YUI3, when they included YUI2. Other than that, it looks like a handy resource.</p>
<p>Well, that&#8217;s it, folks. The first weekly roundup of Javascript news here on the JSMag blog. Did I overlook something of epic importance? Let me know in the comments. Or just <a title="@greenideas on twitter" href="http://twitter.com/greenideas">@ me on Twitter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jsmag.com/blog/2010/05/news-roundup-traits-scriptsrc-net-and-more/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>More amazing JavaScript demos</title>
		<link>http://jsmag.com/blog/2010/02/more-amazing-javascript-demos/</link>
		<comments>http://jsmag.com/blog/2010/02/more-amazing-javascript-demos/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 22:30:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://jsmag.com/blog/?p=145</guid>
		<description><![CDATA[On the heels of my recent find, I stumbled on this collection of multiple JavaScript demos.  I&#8217;m both blown away by many of these, and yet, at the same time, becoming slightly jaded by all the JavaScript goodness being realized these days.  On one level, I *know* this stuff is possible, so it doesn&#8217;t feel [...]]]></description>
			<content:encoded><![CDATA[<p>On the heels of my recent <a href="http://jsmag.com/blog/2010/01/html5-demo-cloth-simulation-in-javascript/" target="_blank">find</a>, I stumbled on this collection of <a href="http://blog.insicdesigns.com/2010/02/mind-blowing-javascript-experiments/" target="_blank">multiple JavaScript demos</a>.  I&#8217;m both blown away by many of these, and yet, at the same time, becoming slightly jaded by all the JavaScript goodness being realized these days.  On one level, I *know* this stuff is possible, so it doesn&#8217;t feel like &#8216;magic&#8217; like these sorts of things did years ago.  On the other hand, these are just so darn *cool*, it&#8217;s hard not to think that JavaScript frameworks will continue to improve and rival &#8216;traditional&#8217; RIA tools (Flash, Flex, Silverlight, etc).</p>
<p>Have a look at these couple demos:</p>
<p><a href="http://mugtug.com/sketchpad/" target="_blank">http://mugtug.com/sketchpad/</a></p>
<p><a href="http://js-fireworks.appspot.com/" target="_blank">http://js-fireworks.appspot.com/</a></p>
<p>Do these sorts of things continue to carry the same feeling of &#8216;magic&#8217; for you that they did when you first saw them?</p>
]]></content:encoded>
			<wfw:commentRss>http://jsmag.com/blog/2010/02/more-amazing-javascript-demos/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
