<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CE8MRnk4cSp7ImA9WhFSEUg.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171</id><updated>2013-06-13T13:48:07.739-06:00</updated><title>CoffeeScript Love</title><subtitle type="html">A fan blog dedicated to the "little language that compiles into JavaScript"</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.coffeescriptlove.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>39</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/coffeescriptlove" /><feedburner:info uri="coffeescriptlove" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CE8MRnk_fyp7ImA9WhFSEUg.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-5938466342959659375</id><published>2013-06-13T13:43:00.000-06:00</published><updated>2013-06-13T13:48:07.747-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-06-13T13:48:07.747-06:00</app:edited><title>CoffeeScript in a Chrome DevTools Workspace</title><content type="html">In case you didn't hear, &lt;a href="https://plus.google.com/+AddyOsmani/posts/CYXzDfg3jhC" target="_blank"&gt;Chrome DevTools Workspaces&lt;/a&gt; let you edit local CoffeeScript source files directly from your browser. For a thorough overview of the feature, watch Addy Osmani's &lt;a href="https://www.youtube.com/watch?v=kVSo4buDAEE" target="_blank"&gt;video tour&lt;/a&gt;. Paul Irish showed it off as well a couple weeks ago in his fabulous FluentConf talk, &lt;a href="http://www.youtube.com/watch?v=f7AU2Ozu8eo" target="_blank"&gt;"JavaScript Development Workflow of 2013"&lt;/a&gt;. At this time, you need &lt;a href="https://www.google.com/intl/en/chrome/browser/canary.html" target="_blank"&gt;Chrome Canary&lt;/a&gt; to use Workspaces.&lt;br /&gt;
&lt;br /&gt;
While Workspaces is handy for any front-end project, a truly CoffeeScript-friendly dev environment also includes &lt;a href="http://www.coffeescriptlove.com/2012/04/source-maps-for-coffeescript.html"&gt;Source Maps&lt;/a&gt; for debugging. Today I came across &lt;a href="https://github.com/latentflip/browserify-grunt-workspaces-demo" target="_blank"&gt;github.com/latentflip/browserify-grunt-workspaces-demo&lt;/a&gt;, a handy &lt;a href="http://gruntjs.com/" target="_blank"&gt;Grunt&lt;/a&gt;-based demo project by &lt;a href="https://twitter.com/philip_roberts" target="_blank"&gt;Philip Roberts&lt;/a&gt; that uses &lt;a href="http://browserify.org/" target="_blank"&gt;Browserify&lt;/a&gt; to build the necessary Source Maps metadata.&lt;br /&gt;
&lt;br /&gt;
When you successfully run the default Grunt task in Philip's project, you should see some very important output, shown below. This is configuration that is essential for Source Maps to work correctly with your local CoffeeScript files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-KldpL8SrLoo/UbogDQ5Xy1I/AAAAAAAAAI4/sJ4S1aLIHTk/s1600/cs_maps_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="161" src="http://3.bp.blogspot.com/-KldpL8SrLoo/UbogDQ5Xy1I/AAAAAAAAAI4/sJ4S1aLIHTk/s640/cs_maps_3.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Copy and paste the values from the build output into the Chrome DevTools Workspaces pane.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-dlexQkvOUOU/UbogPJxPvxI/AAAAAAAAAJA/46j4m1Y2I8M/s1600/cs_maps_4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="426" src="http://3.bp.blogspot.com/-dlexQkvOUOU/UbogPJxPvxI/AAAAAAAAAJA/46j4m1Y2I8M/s640/cs_maps_4.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
If you get things working correctly, you should be able to edit a local CoffeeScript file from within DevTools. For some Source Maps action, add an error as shown, then refresh the page and navigate back to the CoffeeScript source of the error.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-30In6__ZsZ0/UbogoU3qEQI/AAAAAAAAAJI/niKvtj3BJA4/s1600/cs_maps_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="426" src="http://3.bp.blogspot.com/-30In6__ZsZ0/UbogoU3qEQI/AAAAAAAAAJI/niKvtj3BJA4/s640/cs_maps_1.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
Very cool stuff! If you have any trouble, ping me&amp;nbsp;&lt;a href="https://twitter.com/quartzmo"&gt;@quartzmo&lt;/a&gt;, and I'll see if I can help!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/woRJaBYUZR4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/5938466342959659375/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2013/06/coffeescript-in-chrome-devtools.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/5938466342959659375?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/5938466342959659375?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/woRJaBYUZR4/coffeescript-in-chrome-devtools.html" title="CoffeeScript in a Chrome DevTools Workspace" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-KldpL8SrLoo/UbogDQ5Xy1I/AAAAAAAAAI4/sJ4S1aLIHTk/s72-c/cs_maps_3.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2013/06/coffeescript-in-chrome-devtools.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYDQ3Y8fSp7ImA9WhBaGE4.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-5960015353670622019</id><published>2013-05-28T16:23:00.000-06:00</published><updated>2013-05-29T08:02:52.875-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-29T08:02:52.875-06:00</app:edited><title>Static Site Generation with Node.js and CoffeeScript</title><content type="html">&lt;div&gt;
&lt;p&gt;As I discussed in &lt;a href="http://blog.scriptybooks.com/interactive-static-sites-with-jekyll-backbone-js-and-firebase/"&gt;"Interactive Static Sites With Jekyll, Backbone.js, and Firebase"&lt;/a&gt;, static sites built using powerful Ruby-based tools such as &lt;a href="https://github.com/mojombo/jekyll"&gt;Jekyll&lt;/a&gt; and &lt;a href="https://github.com/middleman/middleman"&gt;Middleman&lt;/a&gt; are surging in popularity based on their benefits: low hosting costs, speed, stability, and security. Jekyll has powered &lt;a href="http://kylerush.net/blog/meet-the-obama-campaigns-250-million-fundraising-platform/"&gt;the Obama campaign's $250 million fundraising platform&lt;/a&gt; as well as a &lt;a href="http://developmentseed.org/blog/new-healthcare-gov-is-open-and-cms-free/"&gt;new version of healthcare.gov&lt;/a&gt;. Several months ago GitHub Co-Founder and CEO Tom Preston-Werner &lt;a href="https://github.com/mojombo/jekyll/issues/578#issuecomment-11414645"&gt;renewed his commitment to Jekyll&lt;/a&gt;, writing, "Sorry for not keeping this thing moving faster. 2013 is gonna kick ass. Wake up, go to war."&lt;/p&gt;
&lt;p&gt;So, this certainly sounds like good news for rubyists. But is there a tool for creating static sites using Node.js and CoffeeScript?&lt;/p&gt;
&lt;p&gt;Say hello to &lt;a href="http://docpad.org/"&gt;DocPad&lt;/a&gt;.&lt;/p&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-nWz3GS_kknU/UaUtHDm9-SI/AAAAAAAAAH0/pwpCF3TJzDc/s1600/docpad-benefits.jpg" imageanchor="1" style="margin-bottom: 1em; margin-left: 1em;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-nWz3GS_kknU/UaUtHDm9-SI/AAAAAAAAAH0/pwpCF3TJzDc/s1600/docpad-benefits.jpg" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;DocPad embraces CoffeeScript in a big way. &lt;/p&gt;
&lt;p&gt;For starters, let's take a look at a typical &lt;a href="https://github.com/docpad/kitchensink.docpad/blob/master/docpad.coffee"&gt;DocPad configuration file&lt;/a&gt;. Whoa! Not only is it in CoffeeScript, it even contains functions! Used judiciously, the ability to include short, readable CoffeeScript functions in your configuration is quite handy. For an interesting example, check out the instructions for using &lt;a href="https://gist.github.com/balupton/5519403"&gt;DocPad, GitHub and Prose as a Wiki&lt;/a&gt;. (Aside: After publishing this post, I will use &lt;a href="http://prose.io"&gt;Prose&lt;/a&gt; and GitHub as described to add a link to my post to the official DocPad &lt;a href="http://docpad.org/docs/showcase"&gt;showcase&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://github.com/bevry/docpad"&gt;DocPad core&lt;/a&gt; and almost all of its &lt;a href="https://github.com/docpad"&gt;community plugins&lt;/a&gt; are written in CoffeeScript, but that's not all. Although DocPad supports &lt;a href="http://docpad.org/docs/plugins#renderers"&gt;a long list of renderers&lt;/a&gt; that includes Handlebars and Jade in addition to PHP and Ruby, the project's &lt;a href="http://docpad.org/docs/skeletons"&gt;skeletons&lt;/a&gt; have a strong preference for &lt;a href="https://github.com/sstephenson/eco"&gt;Eco (Embedded CoffeeScript)&lt;/a&gt; templates. For an example of a typical Eco template, check out &lt;a href="https://github.com/docpad/kitchensink.docpad/blob/master/src/documents/pages/getting-started.html.eco"&gt;getting-started.html.eco&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you enjoy CoffeeScript and Eco (it also uses Backbone.js), I encourage you to jump in and give DocPad a try. I have posted &lt;a href="http://blog.scriptybooks.com/from-jekyll-octopress-to-docpad/"&gt;my notes&lt;/a&gt; about porting &lt;a href="http://blog.scriptybooks.com"&gt;blog.scriptybooks.com&lt;/a&gt; from Jekyll to DocPad, in case they might be of use.&lt;/p&gt;
&lt;p&gt;Finally, no discussion of CoffeeScript and static site generators is complete without mentioning Jeremy Ashkenas' small but delightful &lt;a href="https://github.com/jashkenas/journo"&gt;Journo&lt;/a&gt;. In just a single file of code-within-documentation &lt;a href="http://www.coffeescriptlove.com/2013/02/literate-coffeescript.html"&gt;Literate CoffeeScript&lt;/a&gt;, Journo provides a everything you need for a minimalist tool, including deploys via rsync.&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/bwmwcoHSaN0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/5960015353670622019/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2013/05/static-site-generation-with-nodejs-and.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/5960015353670622019?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/5960015353670622019?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/bwmwcoHSaN0/static-site-generation-with-nodejs-and.html" title="Static Site Generation with Node.js and CoffeeScript" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-nWz3GS_kknU/UaUtHDm9-SI/AAAAAAAAAH0/pwpCF3TJzDc/s72-c/docpad-benefits.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2013/05/static-site-generation-with-nodejs-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4ERnc-cCp7ImA9WhBRFUw.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-7966786879423116210</id><published>2013-03-05T14:25:00.000-07:00</published><updated>2013-03-05T14:28:27.958-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-05T14:28:27.958-07:00</app:edited><title>CoffeeScript 1.6 Source Maps</title><content type="html">&lt;span style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px;"&gt;Almost a year after CoffeeScript Love's &lt;a href="http://www.coffeescriptlove.com/2012/04/source-maps-for-coffeescript.html"&gt;original post&lt;/a&gt;, CoffeeScript 1.6.1 now&amp;nbsp;&lt;/span&gt;&lt;a href="http://coffeescript.org/#source-maps" style="background-color: white; color: #771100; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px; text-decoration: none;" target="_blank"&gt;supports source maps&lt;/a&gt;&lt;span style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px;"&gt;&amp;nbsp;via the --map compiler option!&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px;"&gt;Jeremy Ashkenas &lt;a href="http://news.ycombinator.com/item?id=5320221" target="_blank"&gt;comments&lt;/a&gt;:&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="background-color: white; font-size: 15px; line-height: 20px;"&gt;&lt;span style="color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;Please direct all thanks for this over to &lt;a href="http://github.com/jwalton" target="_blank"&gt;http://github.com/jwalton&lt;/a&gt;. He's been toiling away on these for a couple of months now, originally as a bit of a skunkworks. Managing to get them merged in cleanly to an oft-changing code generation codebase was no small feat.&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style="color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;span style="font-size: 15px; line-height: 20px;"&gt;Currently, the only browsers reported to support source maps are Chrome and the &lt;a href="http://nightly.webkit.org/" target="_blank"&gt;WebKit Nightly Builds&lt;/a&gt;. (Source maps in Node.js are &lt;a href="http://badassjs.com/post/42588937391/node-js-source-map-support-for-better-compiled" target="_blank"&gt;covered in this recent post&lt;/a&gt;.) To enable Source Maps in Chrome, select View -&amp;gt; Developer -&amp;gt; Developer Tools, then click on the &lt;b&gt;gear icon&lt;/b&gt; in the lower right corner to open Settings. In the Settings dialog, check "Enable source maps" as shown below.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;span style="font-size: 15px; line-height: 20px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-6hvYx-WxRjw/UTZhi09ZZOI/AAAAAAAAAHI/3wFm2veqJCg/s1600/chrome_source_maps.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="185" src="http://1.bp.blogspot.com/-6hvYx-WxRjw/UTZhi09ZZOI/AAAAAAAAAHI/3wFm2veqJCg/s640/chrome_source_maps.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;span style="color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px; text-align: start;"&gt;&amp;nbsp;Happy debugging!&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;span style="color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px; text-align: start;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;span style="color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px; text-align: start;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;span style="color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px; text-align: start;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;span style="font-size: 15px; line-height: 20px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/iY4HyBnU9bk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/7966786879423116210/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2013/03/coffeescript-16-source-maps.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/7966786879423116210?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/7966786879423116210?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/iY4HyBnU9bk/coffeescript-16-source-maps.html" title="CoffeeScript 1.6 Source Maps" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-6hvYx-WxRjw/UTZhi09ZZOI/AAAAAAAAAHI/3wFm2veqJCg/s72-c/chrome_source_maps.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2013/03/coffeescript-16-source-maps.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IFQnk8eip7ImA9WhBRFEw.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-7836247860776160313</id><published>2013-02-25T16:34:00.000-07:00</published><updated>2013-03-04T10:51:53.772-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-04T10:51:53.772-07:00</app:edited><title>Literate CoffeeScript</title><content type="html">CoffeeScript 1.5.0 was released today! Although &lt;a href="http://www.coffeescriptlove.com/2012/04/source-maps-for-coffeescript.html"&gt;CoffeeScript Love&lt;/a&gt; is still anxiously awaiting support for &lt;a href="http://www.coffeescriptlove.com/2012/04/source-maps-for-coffeescript.html"&gt;source maps&lt;/a&gt;, this release contains something really cool.&lt;br /&gt;
&lt;br /&gt;
Version 1.5 introduces&amp;nbsp;&lt;a href="http://coffeescript.org/#literate" target="_blank"&gt;Literate CoffeeScript&lt;/a&gt;, an implementation of &lt;a href="http://en.wikipedia.org/wiki/Literate_programming" target="_blank"&gt;literate programming&lt;/a&gt;, which now enables you to generate plush, &lt;a href="http://daringfireball.net/projects/markdown/" target="_blank"&gt;Markdown&lt;/a&gt;-based documentation from your CoffeeScript programming code. That CoffeeScript creator Jeremy Ashkenas enthusiastically pushed through this feature should come as no surprise. It is a natural extension of his earlier &lt;a href="https://github.com/jashkenas/docco" target="_blank"&gt;Docco&lt;/a&gt; project. Docco uses a side-by-side layout for commentary and code, whereas Literate CoffeeScript appears to be inline, but they both look fabulous. I really admire Jeremy's attention to aesthetics in these projects.&lt;br /&gt;
&lt;br /&gt;
Just take a look at this initial example from the CoffeeScript compiler.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-YPMmNxDU-64/USvz6wysNjI/AAAAAAAAAFc/EqqMMgS4BxY/s1600/literate_coffeescript.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="436" src="http://4.bp.blogspot.com/-YPMmNxDU-64/USvz6wysNjI/AAAAAAAAAFc/EqqMMgS4BxY/s640/literate_coffeescript.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
This is how the source for the same output looks in a text editor with syntax highlighting.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-NuWvtqdiYk4/USv0zuRQfmI/AAAAAAAAAFo/tEq2Hmcc6BY/s1600/literate_coffeescript_src.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://1.bp.blogspot.com/-NuWvtqdiYk4/USv0zuRQfmI/AAAAAAAAAFo/tEq2Hmcc6BY/s640/literate_coffeescript_src.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
So, if you're writing a library in CoffeeScript, consider doing it literate-style. And if that isn't enough excitement for one day,&amp;nbsp;&lt;span style="background-color: white; color: #115555; font-family: Monaco, Consolas, 'Lucida Console', monospace; font-size: 12px; line-height: 18px; white-space: pre-wrap;"&gt;for item in list by -1&lt;/span&gt;&amp;nbsp;now enables you to iterate backwards!&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Update&lt;/i&gt;: Jeremy Ashkenas has written this &lt;a href="http://ashkenas.com/literate-coffeescript/" target="_blank"&gt;blog post about Literate CoffeeScript&lt;/a&gt; and his own programming workflow.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/iqK27JwD3lw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/7836247860776160313/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2013/02/literate-coffeescript.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/7836247860776160313?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/7836247860776160313?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/iqK27JwD3lw/literate-coffeescript.html" title="Literate CoffeeScript" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-YPMmNxDU-64/USvz6wysNjI/AAAAAAAAAFc/EqqMMgS4BxY/s72-c/literate_coffeescript.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2013/02/literate-coffeescript.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04GQns8fyp7ImA9WhBTE0g.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-7768826568059071403</id><published>2013-02-08T12:32:00.000-07:00</published><updated>2013-02-08T12:32:03.577-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-08T12:32:03.577-07:00</app:edited><title>CoffeeScript Debugger in RubyMine</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-DH_gK8yaHKM/URVSS9tjdpI/AAAAAAAAAFE/R34AfK_CnZY/s1600/rubymine_coffeescript_debugger.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-DH_gK8yaHKM/URVSS9tjdpI/AAAAAAAAAFE/R34AfK_CnZY/s1600/rubymine_coffeescript_debugger.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.coffeescriptlove.com/"&gt;CoffeeScript Love&lt;/a&gt; is so happy to see JetBrains including support for CoffeeScript debugging in the latest version of &lt;a href="http://www.jetbrains.com/ruby/" target="_blank"&gt;RubyMine&lt;/a&gt;, released yesterday. However, &lt;a href="http://confluence.jetbrains.com/display/RUBYDEV/Debugging+CoffeeScript+Code" target="_blank"&gt;the setup instructions&lt;/a&gt; are not trivial, and involve &lt;a href="http://www.coffeescriptlove.com/2012/04/source-maps-for-coffeescript.html"&gt;source maps&lt;/a&gt;, CoffeeScriptRedux, and a JetBrains extension for Chrome. In order to help with the onerous setup, JetBrains has published an &lt;a href="https://github.com/JetBrains/coffee-script-debug-example" target="_blank"&gt;example project&lt;/a&gt; on GitHub, but it is a full Rails application, and probably not useful for developers who want a simple configuration for pure CoffeeScript projects.&lt;br /&gt;
&lt;br /&gt;
Personally, although I use RubyMine, I won't be tackling this at the moment, as I haven't had any trouble so far debugging CoffeeScript using only the browser. However, as CoffeeScript continues to grow in popularity and the projects using it expand and mature, I can imagine IDE-based debugging may be very helpful while trying to come to grips with large-scale legacy projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-KaK0lThoSzg/URVSZzM6zrI/AAAAAAAAAFM/Uf9YIMaMAIk/s1600/coffeescript_debugger.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="371" src="http://4.bp.blogspot.com/-KaK0lThoSzg/URVSZzM6zrI/AAAAAAAAAFM/Uf9YIMaMAIk/s640/coffeescript_debugger.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/2X2JtVuUuAE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/7768826568059071403/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2013/02/coffeescript-debugger-in-rubymine.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/7768826568059071403?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/7768826568059071403?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/2X2JtVuUuAE/coffeescript-debugger-in-rubymine.html" title="CoffeeScript Debugger in RubyMine" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-DH_gK8yaHKM/URVSS9tjdpI/AAAAAAAAAFE/R34AfK_CnZY/s72-c/rubymine_coffeescript_debugger.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2013/02/coffeescript-debugger-in-rubymine.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MAR38zfCp7ImA9WhNXF04.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-8835463225339782901</id><published>2012-12-05T09:55:00.000-07:00</published><updated>2012-12-05T11:17:26.184-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-12-05T11:17:26.184-07:00</app:edited><title>Ember.js and CoffeeScript</title><content type="html">Of all my &lt;a href="http://www.coffeescriptlove.com/"&gt;favorite things about CoffeeScript&lt;/a&gt;,&amp;nbsp;one of the less obvious is the way it has encouraged and inspired people to write their own &lt;a href="http://altjs.org/" target="_blank"&gt;AltJS&lt;/a&gt; languages. Naturally, many of these build upon CoffeeScript itself, in some cases extending it with just a feature or two. One well-known example is&amp;nbsp;&lt;a href="http://maxtaco.github.com/coffee-script/" target="_blank"&gt;IcedCoffeeScript&lt;/a&gt;, but there are many others.&lt;br /&gt;
&lt;br /&gt;
This week I came across one that I feel is worth a special mention: &lt;a href="https://github.com/ghempton/ember-script" target="_blank"&gt;EmberScript&lt;/a&gt;, an extension of CoffeeScript created by Gordon Hempton, who &lt;a href="http://codebrief.com/" target="_blank"&gt;blogs regularly&lt;/a&gt; about Ember.js.&lt;br /&gt;
&lt;br /&gt;
I've been floating the idea of writing &lt;a href="http://www.embercoffeescript.com/"&gt;a book teaching Ember.js in CoffeeScript&lt;/a&gt; on the same interactive platform as &lt;a href="http://www.scriptybooks.com/books/backbone-coffeescript"&gt;my Backbone + CoffeeScript book&lt;/a&gt;. But it hadn't occurred to me to extend CoffeeScript for a better fit with Ember.js. I wrote Gordon to ask how he got the idea, and this was his reply:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="background-color: white; color: #222222;"&gt;&lt;span style="font-family: Times, Times New Roman, serif;"&gt;As far as EmberScript is concerned, the idea started with an interest in Ember.js itself. Ember.js is divided into multiple modules, including what is essentially its own javascript-based object model and language runtime. I have also always been a big fan of CoffeeScript, but CoffeeScript has never been a perfect fit with Ember (e.g. CoffeeScript also has its notion of classes). EmberScript is an attempt to give Ember.js constructs first-class language support. Things like property bindings, observers, classes, and mixins are all supported directly within the language itself. Because EmberScript is also a compiled language, really cool things like property dependency inference are also possible! EmberScript is ember-infused CoffeeScript.&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;br class="Apple-interchange-newline" /&gt;
You can read more about how Gordon modified the &lt;a href="https://github.com/michaelficarra/CoffeeScriptRedux" target="_blank"&gt;CoffeeScript Redux&lt;/a&gt; compiler in &lt;a href="http://codebrief.com/2012/08/hacking-the-coffeescript-compiler/" target="_blank"&gt;his blog post&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Is this the first time a programming language has been forked to support the features of an application framework? Like everything else, I suspect it's been done before. Please &lt;a href="http://www.coffeescriptlove.com/2012/12/emberjs-and-coffeescript.html"&gt;leave a comment&lt;/a&gt; if you have an example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/3JaaSVGsqI8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/8835463225339782901/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2012/12/emberjs-and-coffeescript.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/8835463225339782901?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/8835463225339782901?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/3JaaSVGsqI8/emberjs-and-coffeescript.html" title="Ember.js and CoffeeScript" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2012/12/emberjs-and-coffeescript.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEACQHo8eyp7ImA9WhNSEE8.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-3474431050303439215</id><published>2012-10-23T15:12:00.002-06:00</published><updated>2012-10-23T15:12:41.473-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-10-23T15:12:41.473-06:00</app:edited><title>CoffeeScript 1.4.0 Released, No Sign of Source Maps</title><content type="html">CoffeeScript 1.4 has arrived! There is not a whole lot to get excited about unless you're using CoffeeScript with Node.js and are tired of deprecation warnings. You can compare the new version with 1.3.3 on this &lt;a href="https://github.com/jashkenas/coffee-script/compare/1.3.3...1.4.0" target="_blank"&gt;GitHub compare view&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
After writing about &lt;a href="http://www.coffeescriptlove.com/2012/04/source-maps-for-coffeescript.html" target=""&gt;source maps for CoffeeScript&lt;/a&gt; back in April 2012, I felt fairly sure that the 1.4 release would usher in a new era of easier debugging for CoffeeScript. It will certainly come.&lt;br /&gt;
&lt;br /&gt;
Meanwhile, the &lt;a href="http://jashkenas.github.com/coffee-script/#changelog" target="_blank"&gt;change log&lt;/a&gt; for 1.4.0 on the official CoffeeScript site looks like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="background-color: #f6f6f6; color: #333333; font-family: 'Helvetica Neue', 'Lucida Grande', 'Lucida Sans Unicode', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px; padding-left: 20px;"&gt;
&lt;li style="margin-bottom: 10px; width: 625px;"&gt;The CoffeeScript compiler now strips Microsoft's UTF-8 BOM if it exists, allowing you to compile BOM-borked source files.&lt;/li&gt;
&lt;li style="margin-bottom: 10px; width: 625px;"&gt;Fix Node/compiler deprecation warnings by removing&amp;nbsp;&lt;tt style="background-color: white; background-position: initial initial; background-repeat: initial initial; border: 1px solid rgb(222, 222, 222); color: #115555; display: inline-block; font-family: Monaco, Consolas, 'Lucida Console', monospace; font-size: 12px; line-height: 18px; padding: 0px 0.2em; white-space: pre-wrap; word-wrap: break-word;"&gt;registerExtension&lt;/tt&gt;, and moving from&amp;nbsp;&lt;tt style="background-color: white; background-position: initial initial; background-repeat: initial initial; border: 1px solid rgb(222, 222, 222); color: #115555; display: inline-block; font-family: Monaco, Consolas, 'Lucida Console', monospace; font-size: 12px; line-height: 18px; padding: 0px 0.2em; white-space: pre-wrap; word-wrap: break-word;"&gt;path.exists&lt;/tt&gt;&amp;nbsp;to&amp;nbsp;&lt;tt style="background-color: white; background-position: initial initial; background-repeat: initial initial; border: 1px solid rgb(222, 222, 222); color: #115555; display: inline-block; font-family: Monaco, Consolas, 'Lucida Console', monospace; font-size: 12px; line-height: 18px; padding: 0px 0.2em; white-space: pre-wrap; word-wrap: break-word;"&gt;fs.exists&lt;/tt&gt;.&lt;/li&gt;
&lt;li style="margin-bottom: 10px; width: 625px;"&gt;Small tweaks to splat compilation, backticks, slicing, and the error for duplicate keys in object literals.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/GbkpEMG0Now" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/3474431050303439215/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2012/10/coffeescript-140-released-no-sign-of.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/3474431050303439215?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/3474431050303439215?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/GbkpEMG0Now/coffeescript-140-released-no-sign-of.html" title="CoffeeScript 1.4.0 Released, No Sign of Source Maps" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2012/10/coffeescript-140-released-no-sign-of.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcBQHs-cCp7ImA9WhJVEko.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-3424493113875994995</id><published>2012-08-29T14:43:00.004-06:00</published><updated>2012-08-29T14:44:11.558-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-08-29T14:44:11.558-06:00</app:edited><title>CoffeeScript and jQuery</title><content type="html">The &lt;a href="http://jashkenas.github.com/coffee-script/" target="_blank"&gt;CoffeeScript project page&lt;/a&gt; is overflowing with great examples of the little language used in a clean, uncluttered, academic context. However, when you're ready to see how CoffeeScript works with &lt;a href="http://jquery.com/" target="_blank"&gt;jQuery&lt;/a&gt;, where do you go? Here is a list of blog post, tutorials, and code examples showing the two together, in rough order of difficulty.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.yelotofu.com/2012/02/first-steps-to-using-jquery-with-coffeescript/" target="_blank"&gt;First steps to using jQuery with CoffeeScript | Yelotofu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://aaronrussell.co.uk/articles/using-coffeescript-with-jquery/" target="_blank"&gt;Using jQuery with CoffeeScript - Aaron Russell&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coffeescriptcookbook.com/chapters/jquery/plugin" target="_blank"&gt;CoffeeScript Cookbook » Create a jQuery Plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coffeescriptcookbook.com/chapters/jquery/ajax" target="_blank"&gt;CoffeeScript Cookbook » AJAX&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coffeequery.blogspot.com/2012/01/lesson-1-jquery-animations-are.html" target="_blank"&gt;CoffeeScript + jQuery tutorials: Lesson 1: jQuery animations are simultaneous&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://buhrmi.tumblr.com/post/5371876452/how-coffeescript-makes-jquery-more-fun-than-ever" target="_blank"&gt;How CoffeeScript makes jQuery more fun than ever - buhrmi's Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://javascriptplayground.com/blog/2012/05/a-jquery-plugin-in-coffeescript" target="_blank"&gt;A jQuery Plugin in CoffeeScript | Blog :: The JavaScript Playground&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sixrevisions.com/javascript/coffeescript-basics/" target="_blank"&gt;Writing Better JavaScript with CoffeeScript: The Basics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://engineering.freeagent.com/2012/03/23/coffeescript-with-jquery-sprinkles/" target="_blank"&gt;CoffeeScript with jQuery sprinkles | Grinding Gears&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.artima.com/weblogs/viewpost.jsp?thread=335011" target="_blank"&gt;User Interface Programming in the (Near) Future&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://jquerybyexample.blogspot.com/2012/08/jquery-plugin-suites-written-in-coffee.html" target="_blank"&gt;jQuery Plugin Suites Written in Coffee Script | jQuery By Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bloggemdano.blogspot.com/2011/07/jquery-ui-examples-in-coffeescript.html" target="_blank"&gt;Random Ravings of a Red Headed Code Monkey: jQuery UI Examples in CoffeeScript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://h3manth.com/notes/jq-cs.html" target="_blank"&gt;JavaScript vs Jquery+CoffeeScript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://philipthrasher.com/2011/09/26/Coffee-Script-jQuery-Boilerplate-Coffee-Plate.html" target="_blank"&gt;Coffee Script jQuery Boilerplate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/Articles/363677/Dynamically-creating-input-fields-on-tab-via-Coffe" target="_blank"&gt;Dynamically creating input fields on tab via CoffeeScript and jQuery - CodeProject&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://agiliq.com/blog/2012/01/writing-jquery-plugins-using-coffeescript/" target="_blank"&gt;Writing jQuery plugins using Coffeescript - Agiliq Blog | Django web app development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bililite.com/blog/understanding-jquery-ui-widgets-a-tutorial/" target="_blank"&gt;Hacking at 0300 : Understanding jQuery UI widgets: A tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/alanhogan/Coffeescript-jQuery-Plugin-Template" target="_blank"&gt;alanhogan/Coffeescript-jQuery-Plugin-Template&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/spacekat/CoffeeScript-jQuery-demo-on-rails" target="_blank"&gt;spacekat/CoffeeScript-jQuery-demo-on-rails&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/utgarda/coffeequery" target="_blank"&gt;utgarda/coffeequery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
I hope that after completing a tour of these posts you agree with&amp;nbsp;Alex MacCaw's words in The Little Book on CoffeeScript: "Using CoffeeScript with jQuery is especially elegant."&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/ToFgwIo_s2s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/3424493113875994995/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2012/08/coffeescript-and-jquery.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/3424493113875994995?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/3424493113875994995?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/ToFgwIo_s2s/coffeescript-and-jquery.html" title="CoffeeScript and jQuery" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2012/08/coffeescript-and-jquery.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEFSHc9fip7ImA9WhJTF0g.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-6293619905019841235</id><published>2012-06-21T16:30:00.003-06:00</published><updated>2012-06-26T16:43:39.966-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-06-26T16:43:39.966-06:00</app:edited><title>Backbone.js Tutorials in CoffeeScript</title><content type="html">Backbone.js and CoffeeScript are a great match. I'm so excited about using them together that I'm writing an online book that &lt;a href="http://www.scriptybooks.com/books/backbone-coffeescript"&gt;teaches Backbone.js in CoffeeScript&lt;/a&gt;. It is hardly a unique idea: There are a many people writing blog posts, tutorials, and even screencasts about Backbone.js with the examples in CoffeeScript.&lt;br /&gt;
&lt;br /&gt;
I have a list of these resources that I've been intending to publish since quite a while. It just has this tendency to keep growing longer!&lt;br /&gt;
&lt;br /&gt;
Entries are listed in my best effort at reverse chronological order, from&amp;nbsp;newest&amp;nbsp;(top) to&amp;nbsp;oldest&amp;nbsp;(bottom):&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://blog.artlogic.com/2012/06/06/fun-with-coffeescript-and-backbone-js-part-1/" target="_blank"&gt;Fun with CoffeeScript and Backbone.js&lt;/a&gt;&amp;nbsp;(2012/6/6)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://www.scriptybooks.com/books/backbone-coffeescript/chapters/quick-tour" target="_blank"&gt;Backbone + CoffeeScript: Quick Tour chapter&lt;/a&gt;&amp;nbsp;(2012/5/8, interactive)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://www.ihid.co.uk/blog/backbone-js-coffeescript-jasmine-haml-and-rails-working-together" target="_blank"&gt;iHiD: Backbone.js, CoffeeScript, Jasmine, HAML and Rails working together&lt;/a&gt;&amp;nbsp;(2012/4/28)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://freshbrewedcode.com/jonathancreamer/2012/04/03/backbone-contacts-with-coffeescript-mvc4-and-web-api/" target="_blank"&gt;Backbone Contacts with CoffeeScript, MVC4, and Web API&lt;/a&gt;&amp;nbsp;(2012/4/3)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://readthedocs.org/docs/coffeetodo/en/latest/" target="_blank"&gt;CoffeeTodo - CoffeeScript and Backbone.js tutorial&lt;/a&gt;&amp;nbsp;(2012/2/6)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="https://peepcode.com/products/backbone-iii" target="_blank"&gt;PeepCode: Backbone.js Persistence&lt;/a&gt;&amp;nbsp;(2011/11/23, screencast)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://taurenmills.wordpress.com/2011/10/08/backbone-js-with-class-properties/" target="_blank"&gt;Simplify using static class properties in Backbone.js with Coffeescript&lt;/a&gt;&amp;nbsp;(2011/10/8)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://srackham.wordpress.com/2011/09/22/routeless-backbone-contacts/" target="_blank"&gt;Routeless Backbone Contacts&lt;/a&gt;&amp;nbsp;(2011/10/3)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://www.elfsternberg.com/2011/08/22/backbone-store-version-20-backbonejs-coffeescript-haml-stylus-edition/" target="_blank"&gt;The Backbone Store, version 2.0 – Backbone.js with Coffeescript, HAML, and Stylus edition!&lt;/a&gt;&amp;nbsp;(2011/8/22)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://www.slideshare.net/pirelenito/single-page-web-applications-with-coffeescript-backbone-and-jasmine" target="_blank"&gt;Single Page Web Applications with CoffeeScript, Backbone and Jasmine&lt;/a&gt;&amp;nbsp;(2011/8/21, slides)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://jasongiedymin.github.com/backbone-todojs-coffeescript/" target="_blank"&gt;jasongiedymin/backbone-todojs-coffeescript&lt;/a&gt;&amp;nbsp;(2011/7/11, example app)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://terse-words.blogspot.com/2011/06/binding-updates-to-model-changes-in.html" target="_blank"&gt;Binding Updates to Model Changes in Backbone/CoffeeScript&lt;/a&gt;&amp;nbsp;(2011/6/27)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://terse-words.blogspot.com/2011/06/simplest-ever-backbonejscoffeescript.html" target="_blank"&gt;Simplest Ever Backbone.js/CoffeeScript Example&lt;/a&gt;&amp;nbsp;(2011/6/26)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://adamjspooner.github.com/coffeescript-meet-backbonejs/" target="_blank"&gt;CoffeeScript, Meet Backbone.js&lt;/a&gt;&amp;nbsp;(2011/6/12)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://www.holychao.com/2011/05/23/kicking-butt-with-coffeescript-underscore-and-backbone" target="_blank"&gt;Kicking butt with CoffeeScript, Underscore, and Backbone&lt;/a&gt;&amp;nbsp;(2011/5/23)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://spin.atomicobject.com/2011/05/06/using-backbone-js-with-coffeescript/" target="_blank"&gt;Atomic Spin: Using Backbone.js with CoffeeScript&lt;/a&gt;&amp;nbsp;(2011/5/6)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://sunilarora.org/coffeescript-with-backbonejs-example" target="_blank"&gt;Violet Hill: CoffeeScript with Backbone.js Example&lt;/a&gt;&amp;nbsp;(2011/4/6)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://mattmccray.blogspot.com/2010/10/using-backbonejs-in-coffeescript.html" target="_blank"&gt;Using Backbone.js in CoffeeScript&lt;/a&gt;&amp;nbsp;(2010/10/15)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;
No doubt I have missed a few, and I am certain there will more to come. If you would like me to update this post with your tutorial/screencast/example, please link to it in a comment, with the publication date if it's not prominently displayed.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;(For a wider list of Backbone resources, see&amp;nbsp;the&amp;nbsp;&lt;a href="https://github.com/documentcloud/backbone/wiki/Tutorials,-blog-posts-and-example-sites" target="_blank"&gt;Backbone project wiki&lt;/a&gt;.)&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/rg1GgKNw4II" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/6293619905019841235/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2012/06/backbonejs-tutorials-in-coffeescript.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/6293619905019841235?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/6293619905019841235?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/rg1GgKNw4II/backbonejs-tutorials-in-coffeescript.html" title="Backbone.js Tutorials in CoffeeScript" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2012/06/backbonejs-tutorials-in-coffeescript.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIASHs7eip7ImA9WhVVFEQ.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-6765896527915065341</id><published>2012-05-08T11:19:00.000-06:00</published><updated>2012-05-08T11:19:09.502-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-08T11:19:09.502-06:00</app:edited><title>CoffeeScript Style Guide</title><content type="html">You may have come across the GitHub &lt;i&gt;JavaScript&lt;/i&gt; &lt;a href="https://github.com/styleguide/javascript" target="_blank"&gt;Styleguide&lt;/a&gt;, which tells us to:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
"Write new JS in CoffeeScript."&amp;nbsp;&lt;/blockquote&gt;
That alone is an awesome endorsement of the "little language", but there is more good advice:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
"Follow @jashkenas's style. See the documentation for good examples."&amp;nbsp;&lt;/blockquote&gt;
Without doubt, this is correct. The &lt;a href="http://jashkenas.github.com/coffee-script/" target="_blank"&gt;CoffeeScript home page&lt;/a&gt; should be your first stop for style. However, it's not strictly a style guide, so for a more dedicated resource I recommend&amp;nbsp;&lt;a href="https://github.com/polarmobile/coffeescript-style-guide" target="_blank"&gt;polarmobile/coffeescript-style-guide&lt;/a&gt;. It answers questions such as "tabs or spaces?", and I expect it will continue to grow, becoming a very comprehensive resource.&lt;br /&gt;
&lt;br /&gt;
Of course, you could argue that in the age of computer automation, the best style guides are &lt;a href="http://en.wikipedia.org/wiki/Lint_(software)" target="_blank"&gt;linters&lt;/a&gt;. &lt;a href="http://www.coffeelint.org/" target="_blank"&gt;CoffeeLint&lt;/a&gt; is described as "a style checker that helps keep CoffeeScript code clean and consistent." For style consistency across a team, it's likely to be a great choice.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
Finally, as an example of good CoffeeScript style in the context of hairy, real-world programming, Jeremy Ashkenas recommends&amp;nbsp;&lt;a href="https://github.com/37signals/pow/tree/master/src" target="_blank"&gt;the source code for the Pow server&lt;/a&gt;.&lt;/div&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
This list is by no means complete and is open for your contributions. Where do you go for great CoffeeScript style?&lt;/div&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/Ru2tzLAwqTk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/6765896527915065341/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2012/05/coffeescript-style-guide.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/6765896527915065341?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/6765896527915065341?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/Ru2tzLAwqTk/coffeescript-style-guide.html" title="CoffeeScript Style Guide" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2012/05/coffeescript-style-guide.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YCRXY8eyp7ImA9WhVWGEQ.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-952417691806098588</id><published>2012-04-30T17:06:00.000-06:00</published><updated>2012-05-01T10:52:44.873-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-01T10:52:44.873-06:00</app:edited><title>The CoffeeScript Compiler</title><content type="html">The CoffeeScript compiler is written in what? CoffeeScript?&lt;br /&gt;
&lt;br /&gt;
I just love this recent exchange on the #coffeescript IRC channel between CoffeeScript creator Jeremy Ashkenas and an unnamed visitor.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;13:14 S: Hi, I have just a little question : In what language is written CoffeScript ? (I have see the GitHub but... I don't see a answer)&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;13:17 S: In src/ they have some .coffee script but CoffeeScript can be write in CoffeeScript :D&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;13:18 jashkenas: yes, yes it can.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;13:18 jashkenas: It's written in CoffeeScript.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;13:18 S: What ? I don't understand...&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;13:19 jashkenas: It was originally written in Ruby.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;13:19 S: CoffeeScript can't be compileted by itselft ...&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;13:19 jashkenas: When that version of the compiler was complete enough.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;13:19 jashkenas: It was ported over to CoffeeScript&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;13:19 S: Ok, I understand&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;13:20 jashkenas: Then that CoffeeScript source was passed through the Ruby compiler, producing JavaScript&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;13:20 jashkenas: Then that JavaScript recompiled the CoffeeScript&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;13:20 jashkenas: and now it recompiles itself.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;13:20 S: Ok, nice :D&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;13:20 S: I little strange but why not :D&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;13:21 S: And by the way thx jashkenas for this :D I Love ! &amp;lt;3&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;13:21 jashkenas: cheers.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Meanwhile,&amp;nbsp;&lt;a href="http://www.kickstarter.com/projects/michaelficarra/make-a-better-coffeescript-compiler" target="_blank"&gt;Make a Better CoffeeScript Compiler&lt;/a&gt;&amp;nbsp;on Kickstarter just reached its goal of $12,000, making it possible for &lt;a href="https://github.com/jashkenas/coffee-script/commits/master?author=michaelficarra" target="_blank"&gt;heavyweight committer&lt;/a&gt; &lt;a href="https://github.com/michaelficarra" target="_blank"&gt;Michael Ficarra&lt;/a&gt; to devote four months of full-time work to the project.&lt;br /&gt;
&lt;br /&gt;
If you haven't noticed, we appear to be entering a new era of fan-supported open-source software (OSS) development projects. The first such project to catch my attention was Yehuda Katz's &lt;a href="http://www.kickstarter.com/projects/1397300529/railsapp" target="_blank"&gt;rails.app&lt;/a&gt;, which is currently funded at almost 2x its initial goal. I think this is a welcome and healthy turn of events for open source, and will result in an explosion of activity as more and more contributors find it possible to carve out serious time without needing to reach the threshold of full-time, salaried employment with a corporate sponsor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/yqlH2XerYDg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/952417691806098588/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2012/04/coffeescript-compiler.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/952417691806098588?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/952417691806098588?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/yqlH2XerYDg/coffeescript-compiler.html" title="The CoffeeScript Compiler" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2012/04/coffeescript-compiler.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQAQHg7eip7ImA9WhVXE0s.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-4952966819071426</id><published>2012-04-13T17:33:00.000-06:00</published><updated>2012-04-13T17:39:01.602-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-13T17:39:01.602-06:00</app:edited><title>CoffeeScript Gets Strict Mode</title><content type="html">What's strict mode? And more importantly, how does it work in CoffeeScript 1.3.x?&lt;br /&gt;
&lt;br /&gt;
Mozilla Developer Network (MDN) &lt;a href="https://developer.mozilla.org/en/JavaScript/Strict_mode" target="_blank"&gt;defines ECMAScript 5 strict mode&lt;/a&gt; as &lt;span class="Apple-style-span" style="font-family: inherit;"&gt;"&lt;span class="Apple-style-span" style="color: #333333; line-height: 22px;"&gt;a way to&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 22px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 22px;"&gt;&lt;em&gt;opt in&lt;/em&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 22px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 22px;"&gt;to a restricted variant of JavaScript." It basically provides a syntax error system to prevent you from creating trouble with JavaScript in a number of areas, ranging from the commonplace (global variable leaks) to the arcane (numeric octal literals). It also signals security issues. For further reading about strict mode and JavaScript, check out John Resig's &lt;a href="http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/" target="_blank"&gt;post on strict mode&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 22px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 22px;"&gt;C&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 22px;"&gt;offeeScript already does quite a bit to guard us from JavaScript pitfalls, so what additional help do we get from strict mode? Alex MacCaw has written this up nicely in the "Strict mode" section of&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 22px;"&gt;&lt;a href="http://arcturo.github.com/library/coffeescript/07_the_bad_parts.html" target="_blank"&gt;The Little Book on CoffeeScript, Chapter 7, The Bad Parts&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 22px;"&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 22px;"&gt;For the final word on the feature, read the CoffeeScript &lt;a href="https://github.com/jashkenas/coffee-script/issues/1547" target="_blank"&gt;project issue on GitHub&lt;/a&gt;. Jeremy Ashkenas' comment on the issue is noteworthy:&lt;span class="Apple-style-span" style="font-family: inherit;"&gt; "&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 20px;"&gt;I think if we do this, we enforce our static strict mode restrictions everywhere, but we do&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 20px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 20px;"&gt;&lt;em style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-style: italic; font: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;not&lt;/em&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 20px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 20px;"&gt;put any&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 20px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 20px;"&gt;&lt;code style="background-color: #f8f8f8; border-bottom-color: rgb(234, 234, 234); border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(234, 234, 234); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(234, 234, 234); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(234, 234, 234); border-top-left-radius: 3px; border-top-right-radius: 3px; border-top-style: solid; border-top-width: 1px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; margin-bottom: 0px; margin-left: 2px; margin-right: 2px; margin-top: 0px; padding-bottom: 0px; padding-left: 5px; padding-right: 5px; padding-top: 0px; white-space: nowrap;"&gt;"use strict"&lt;/code&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 20px;"&gt;directives into your code for you." In other words, the CoffeeScript compiler does the strict mode syntax checks itself, at compile time. This is good. You don't want to wait until you run the generated JavaScript output to discover your errors.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 22px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/4_lhnCY8IP4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/4952966819071426/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2012/04/coffeescript-gets-strict-mode.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/4952966819071426?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/4952966819071426?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/4_lhnCY8IP4/coffeescript-gets-strict-mode.html" title="CoffeeScript Gets Strict Mode" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2012/04/coffeescript-gets-strict-mode.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMAQng9eCp7ImA9WhBRFUw.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-4345234168815993990</id><published>2012-04-03T14:25:00.001-06:00</published><updated>2013-03-05T14:04:03.660-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-05T14:04:03.660-07:00</app:edited><title>Source Maps for CoffeeScript</title><content type="html">One of the more serious&amp;nbsp;&lt;a href="http://ryanflorence.com/2011/2012/case-against-coffeescript/" target="_blank"&gt;concerns&lt;/a&gt; about CoffeeScript is that it lacks a first-class debugging environment. The code that you see in a browser debugger is the compiled JavaScript, not the CoffeeScript source. Thanks to JavaScript Source Maps, however, this &lt;a href="https://github.com/jashkenas/coffee-script/issues/558" target="_blank"&gt;long-running issue&lt;/a&gt; will likely be solved in the very near future.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
JavaScript Source Maps is a system of references from JavaScript executing in the browser to original source files that have been minified, concatenated, compiled, or otherwise transformed. Chrome dev tools evangelist&amp;nbsp;&lt;a href="https://twitter.com/#!/paul_irish/statuses/182851687269154816" target="_blank"&gt;Paul Irish&lt;/a&gt;&amp;nbsp;called Source Maps "the biggest thing to happen to JavaScript debugging in years." The Google Chrome team is pushing aggressively toward the release of Source Maps support (you can preview the feature in &lt;a href="http://tools.google.com/dlpage/chromesxs" target="_blank"&gt;Chrome Canary&lt;/a&gt;).&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
You can read more about Source Maps in&amp;nbsp;&lt;a href="https://wiki.mozilla.org/DevTools/Features/SourceMap" target="_blank"&gt;MozillaWiki&lt;/a&gt;&amp;nbsp;feature page, in&amp;nbsp;&lt;a href="http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/" target="_blank"&gt;this tutorial&lt;/a&gt;, and in &lt;a href="https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit" target="_blank"&gt;the formal proposal&lt;/a&gt;&amp;nbsp;co-authored by Mozilla and Google. There is a &lt;a href="https://groups.google.com/forum/#!topic/coffeescript/19EIrK5q9f8/discussion" target="_blank"&gt;Source map support plan&lt;/a&gt; discussion on the CoffeeScript Google Group.&lt;br /&gt;
&lt;br /&gt;
Finally, Mozilla intern Nick Fitzgerald has produced a great&amp;nbsp;&lt;a href="http://youtu.be/2aQw1dSIYko" target="_blank"&gt;what-I-did-this-summer video&lt;/a&gt; explaining the importance of Source Maps and of languages such as CoffeeScript. I recommend watching all 15 minutes of it, but for the TL;DR crowd, start around minute 11 for the sequence in which he demos an actual JavaScript console error with a link back to CoffeeScript source. Woo Hoo!&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Update (2012/4/13)&lt;/i&gt;&lt;br /&gt;
Now that &lt;a href="http://www.coffeescriptlove.com/2012/04/coffeescript-gets-strict-mode.html"&gt;CoffeeScript 1.3 has shipped&lt;/a&gt;, Jeremy Ashkenas says that &lt;a href="http://news.ycombinator.com/item?id=3824024" target="_blank"&gt;Source Maps support will be the focus&lt;/a&gt; of the next release of CoffeeScript.&amp;nbsp;One &lt;a href="http://news.ycombinator.com/item?id=3824692" target="_blank"&gt;comment&lt;/a&gt; on the announcment reads:&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;"&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;Source maps in Firefox and Chrome will be one of the most important pieces of software infrastructure since Javascript itself. It will be the realization of Stallman's 'one script to unite them all' vision for GNU GUILE from the 'Tcl wars.' A pity that it isn't Lisp, but there is enough goodness in Javascript (and Coffeescript) to make me very optimistic."&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;Hyperbole? We'll see.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Update (2013/3/5)&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
Almost a year after my original post, CoffeeScript 1.6.1 now &lt;a href="http://coffeescript.org/#source-maps" target="_blank"&gt;supports Source Maps&lt;/a&gt; via the --map compiler option!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/1StG8-Py6N0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/4345234168815993990/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2012/04/source-maps-for-coffeescript.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/4345234168815993990?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/4345234168815993990?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/1StG8-Py6N0/source-maps-for-coffeescript.html" title="Source Maps for CoffeeScript" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2012/04/source-maps-for-coffeescript.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUEQnszeCp7ImA9WhVREko.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-3831725353784933458</id><published>2012-03-20T14:08:00.002-06:00</published><updated>2012-03-20T14:10:03.580-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-20T14:10:03.580-06:00</app:edited><title>BackboneConf Schedule Includes Ember.js and Knockout.js</title><content type="html">The lineup for the first &lt;a href="http://backboneconf.com/" target="_blank"&gt;BackboneConf&lt;/a&gt; has been released, and delivering on an implicit promise made in the call for papers, the schedule includes presentations on alternative JavaScript MV* projects: &lt;a href="http://emberjs.com/" target="_blank"&gt;Ember.js&lt;/a&gt; will be covered by &lt;a href="https://github.com/wycats" target="_blank"&gt;Yehuda Katz&lt;/a&gt;, and &lt;a href="http://knockoutjs.com/" target="_blank"&gt;Knockout.js&lt;/a&gt; by creator &lt;a href="https://github.com/SteveSanderson" target="_blank"&gt;Steven Sanderson&lt;/a&gt;. It would be amazing if someone could get these two to engage in dialogue contrasting Ember and Knockout, which seem more similar than they are different in their value proposition of data binding with support for computed properties. If you attend BackboneConf, do not miss that particular hallway conversation.&lt;br /&gt;
&lt;br /&gt;
At a reasonable $349, the two-day, single-track conference is a very welcome addition to the growing JavaScript conference scene. The May 30, 2012 keynote will be delivered by &lt;a href="https://github.com/jashkenas" target="_blank"&gt;Jeremy Ashkenas&lt;/a&gt;, creator of both Backbone and CoffeeScript. Sadly, CoffeeScript is nowhere to be seen on the BackboneConf schedule. But if you're wondering, we at &lt;a href="http://www.coffeescriptlove.com/" target=""&gt;CoffeeScript Love&lt;/a&gt; can tell you: Writing your &lt;a href="http://backbonecoffeescript.com/"&gt;Backbone applications in CoffeeScript&lt;/a&gt; is a great way to go.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/g2WPW_cuYjM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/3831725353784933458/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2012/03/backboneconf-schedule-includes-emberjs.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/3831725353784933458?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/3831725353784933458?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/g2WPW_cuYjM/backboneconf-schedule-includes-emberjs.html" title="BackboneConf Schedule Includes Ember.js and Knockout.js" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2012/03/backboneconf-schedule-includes-emberjs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUASXozeSp7ImA9WhVSF0k.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-1930442323083666780</id><published>2012-03-08T13:53:00.004-07:00</published><updated>2012-03-14T11:30:48.481-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-14T11:30:48.481-06:00</app:edited><title>Testing CoffeeScript in Rails</title><content type="html">As I mentioned in an earlier &lt;a href="http://www.coffeescriptlove.com/2012/02/testing-coffeescript-with-mocha.html"&gt;post on testing CoffeeScript&lt;/a&gt; in Node.js,&amp;nbsp;&lt;a href="http://visionmedia.github.com/mocha/" target="_blank"&gt;Mocha&lt;/a&gt;&amp;nbsp;is a flexible and feature-rich test framework for JavaScript. It is elegant, powerful, and a joy to use. But how do you use Mocha with Rails? Faced with this obstacle, I created &lt;a href="https://github.com/quartzmo/mocha_rails"&gt;MochaRails&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://github.com/quartzmo/mocha_rails"&gt;MochaRails&lt;/a&gt; is a mountable Rails engine that serves a browser-based Mocha test suite, along with your development JavaScript files, via the Asset Pipeline. It loads&amp;nbsp;&lt;a href="http://chaijs.com/" target="_blank"&gt;Chai&lt;/a&gt; for both should- and expect-style assertions, although since Mocha is decoupled from the assertion library, you can use another assertion library if you choose (or even write your own.)&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
Using should-style assertions and CoffeeScript, Mocha tests are the best-looking implementation of BDD that I have ever seen in any language. For example, here are some simple tests for a Backbone.js View.&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
describe 'ItemView', -&amp;gt;

  before -&amp;gt;
    @itemView = new Backbone.View
      tagName: 'li'
      className: 'item'

  describe "el", -&amp;gt;

    it 'should return a value', -&amp;gt;
      expect(@itemView.el).to.exist

    it "should return an 'li' element", -&amp;gt;
      @itemView.el.tagName.should.equal "LI"

  describe '$el', -&amp;gt;

    it "should have class 'item'", -&amp;gt;
      @itemView.$el.hasClass('item').should.be.true
&lt;/code&gt;
&lt;/pre&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
I would argue that even if you can't or don't want to write your production code in CoffeeScript, you should write your tests in CoffeeScript. By eliminating so much visual noise, CoffeeScripts syntax helps bring the goal of BDD--specs that anyone can read to understand the intended behavior of your system--so much closer to reality.&lt;/div&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;br /&gt;
Once you've installed MochaRails and added the test above (simple to do, and explained in the project's Readme), open &lt;code&gt;localhost:3000/mocha&lt;/code&gt; to execute your test suite. If you've never seen Mocha's clean and elegant report for browser tests, prepare to be impressed.&lt;/div&gt;
&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/pre&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/--ckkgYX3AZ0/T1kWZeJsatI/AAAAAAAAADY/gOC_q9M-AHg/s1600/mocha_rails_pass_simple.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="334" src="http://1.bp.blogspot.com/--ckkgYX3AZ0/T1kWZeJsatI/AAAAAAAAADY/gOC_q9M-AHg/s640/mocha_rails_pass_simple.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
Now that's clean! It may seem almost too clean with just three tests, but once you have scores of contexts and hundreds of tests, you'll appreciate the aesthetic. Errors are colored red of course, but Mocha errors do not light up the page like a garish billboard.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-J0qIM0S2564/T1kaEqAhg_I/AAAAAAAAADo/OGd0AtOqpnk/s1600/mocha_rails_fail.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="406" src="http://4.bp.blogspot.com/-J0qIM0S2564/T1kaEqAhg_I/AAAAAAAAADo/OGd0AtOqpnk/s640/mocha_rails_fail.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
Mocha also supports asynchronous code with a simple callback mechanism. I highly recommend you browse &lt;a href="http://visionmedia.github.com/mocha/" target="_blank"&gt;Mocha's features&lt;/a&gt; and give MochaRails a try.&lt;br /&gt;
&lt;br /&gt;
Update: Since I first looked into using Mocha with Rails, a project very similar to MochaRails has appeared: &lt;a href="https://github.com/jfirebaugh/konacha" target="_blank"&gt;Konacha&lt;/a&gt;. It looks like momentum is building behind Mocha and Chai!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/gpNz0dHQnfU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/1930442323083666780/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2012/03/testing-coffeescript-in-rails.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/1930442323083666780?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/1930442323083666780?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/gpNz0dHQnfU/testing-coffeescript-in-rails.html" title="Testing CoffeeScript in Rails" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/--ckkgYX3AZ0/T1kWZeJsatI/AAAAAAAAADY/gOC_q9M-AHg/s72-c/mocha_rails_pass_simple.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2012/03/testing-coffeescript-in-rails.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEADRncyeip7ImA9WhVTEE4.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-144143213750343131</id><published>2012-02-23T12:03:00.000-07:00</published><updated>2012-02-23T15:39:37.992-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-23T15:39:37.992-07:00</app:edited><title>Interactive CoffeeScript Books</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-Rk7acbD1eKw/TymEXWe-xfI/AAAAAAAAADM/Rj5uMbkBP_I/s1600/interactive_coffeescript_reference.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="238" src="http://4.bp.blogspot.com/-Rk7acbD1eKw/TymEXWe-xfI/AAAAAAAAADM/Rj5uMbkBP_I/s320/interactive_coffeescript_reference.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
If you own an iPad and enjoy the format of the interactive HTML book&amp;nbsp;&lt;a href="http://autotelicum.github.com/Smooth-CoffeeScript/interactive/interactive-coffeescript.html" target="_blank"&gt;Smooth CoffeeScript&lt;/a&gt;, you might take a look at&amp;nbsp;&lt;a href="http://itunes.apple.com/us/book/coffeescript/id498532763" target="_blank"&gt;CoffeeScript: An Interactive Reference&lt;/a&gt;&amp;nbsp;by Trevor Burnham. At just 15 pages, it is priced at $4.99. The thing that excites me is that it encourages you to code while you read.&lt;br /&gt;
&lt;br /&gt;
In my mind, there is no good reason why every digital book on JavaScript programming should not be interactive. Typically, programming books make their example source code available for download, or somewhat better, cloning from GitHub. I usually do this and keep the code open in an editing environment while reading. When the code fragment I am studying is not too difficult to locate (mostly the case), as well as not too difficult to execute (sadly, not often the case), I love to do so, at a minimum just to see that it actually works. Often I go beyond just running the example and get into some experimentation, leading to much deeper learning. I do all of my technical reading on an 11" MacBook Air in order to lower the barrier to "coding along with the text" as much as possible.&lt;br /&gt;
&lt;br /&gt;
For my upcoming &lt;a href="http://backbonecoffeescript.com/" target="_blank"&gt;book on Backbone.js and CoffeeScript&lt;/a&gt;, I am working on a subtle approach to interactivity that does not disrupt the flow of normal reading. Most readers say that they do not even notice at first that the code listings are embedded CoffeeScript editors. You can experience a prototype in this tutorial on&amp;nbsp;&lt;a href="http://backbonecoffeescript.com/eco-helpers-tutorial" target="_blank"&gt;helper functions with Eco (Embedded CoffeeScript templates)&lt;/a&gt;. The current version of the format now uses wonderfully readable assertions from &lt;a href="http://chaijs.com/"&gt;chai.js&lt;/a&gt; instead of browser alerts.&lt;br /&gt;
&lt;br /&gt;
Please let me know what you think. Does interactivity in HTML books outweigh the disadvantages of reading in a browser? What do you think of iBooks? Any thoughts about executable JavaScript in PDF or other digital formats?&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/iM8-KGAuhmM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/144143213750343131/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2012/02/interactive-coffeescript-books.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/144143213750343131?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/144143213750343131?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/iM8-KGAuhmM/interactive-coffeescript-books.html" title="Interactive CoffeeScript Books" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-Rk7acbD1eKw/TymEXWe-xfI/AAAAAAAAADM/Rj5uMbkBP_I/s72-c/interactive_coffeescript_reference.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2012/02/interactive-coffeescript-books.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EGQnY7eCp7ImA9WhRaE0k.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-6973254992864008784</id><published>2012-02-15T14:26:00.000-07:00</published><updated>2012-02-15T14:33:43.800-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-15T14:33:43.800-07:00</app:edited><title>Backbone and Ember with Ashkenas and Katz</title><content type="html">The team at the &lt;a href="http://javascriptjabber.com/" target="_blank"&gt;JavaScript Jabber&lt;/a&gt; podcast have really pulled together an amazing show this week, bringing &lt;a href="http://javascriptjabber.com/004-jsj-backbone-js-with-jeremy-ashkenas/" target="_blank"&gt;Jeremy Ashkenas and Yehuda Katz together&lt;/a&gt; for a riveting live discussion of Backbone.js and Ember.js. This is a fantastic followup to &lt;a href="http://www.coffeescriptlove.com/2012/02/backbonejs-vs-emberjs.html" target="_blank"&gt;the IRC discussion&lt;/a&gt;&amp;nbsp;about Backbone and Ember that I covered on &lt;a href="http://www.coffeescriptlove.com/" target="_blank"&gt;CoffeeScript Love&lt;/a&gt;&amp;nbsp;a couple weeks ago.&lt;br /&gt;
&lt;br /&gt;
In the 54-minute podcast, Katz talks at length about the design philosophy behind Ember, as well as the lessons he learned about convention over configuration while working on jQuery and Merb. He also talks about "the pipe dream" of using the same Mustache.js templates on both client and server. But don't assume it's &lt;a href="http://thechangelog.com/post/2155333557/episode-0-4-2-rails-3-1-and-sproutcore-with-yehuda-katz" target="_blank"&gt;just Katz lecturing&lt;/a&gt; (which I will listen to any day, by the way.) With Ashkenas and four other panelists on the line, the discourse is multi-sided, rapid, and forceful. Admittedly, there isn't much about CoffeeScript. But if you follow trends in JavaScript, these are the guys shaping the future, engaged in frank conversation. You shouldn't miss it.&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/GnD5iLLYuTU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/6973254992864008784/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2012/02/backbone-and-ember-with-ashkenas-and.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/6973254992864008784?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/6973254992864008784?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/GnD5iLLYuTU/backbone-and-ember-with-ashkenas-and.html" title="Backbone and Ember with Ashkenas and Katz" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2012/02/backbone-and-ember-with-ashkenas-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUHRHs7eip7ImA9WhVSEkk.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-2406564335368932505</id><published>2012-02-09T11:09:00.000-07:00</published><updated>2012-03-08T13:57:15.502-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-08T13:57:15.502-07:00</app:edited><title>Testing CoffeeScript with Mocha</title><content type="html">&lt;a href="http://visionmedia.github.com/mocha/" target="_blank"&gt;Mocha&lt;/a&gt; is a flexible and feature-rich test framework for JavaScript created by the insanely prolific open-source developer &lt;a href="https://github.com/visionmedia" target="_blank"&gt;TJ Holowaychuk&lt;/a&gt;. It's used to test some prominent projects in the Node.js ecosystem, including &lt;a href="http://www.senchalabs.org/connect/" target="_blank"&gt;Connect&lt;/a&gt; and &lt;a href="http://expressjs.com/" target="_blank"&gt;Express&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
If you already have CoffeeScript installed (you do, don't you!? if not &lt;a href="http://jashkenas.github.com/coffee-script/#installation" target="_blank"&gt;get it now&lt;/a&gt;), giving Mocha a try couldn't be easier. The clean, elegant look of nested callback functions in CoffeeScript, combined with Holowaychuk's awesome&amp;nbsp;&lt;a href="https://github.com/visionmedia/should.js" target="_blank"&gt;Should&lt;/a&gt;&amp;nbsp;assertions, make CoffeeScript + Mocha the best-looking implementation of BDD that I have ever seen. Now, good looks aren't everything, but if they make you want to write a lot more tests, they can't be bad. (A word of caution: While Mocha works beautifully in the browser,&amp;nbsp;Should&amp;nbsp;does not, so for browser tests you'll need to use an alternate assertion library, such as &lt;a href="https://github.com/LearnBoost/expect.js" target="_blank"&gt;Expect&lt;/a&gt;. &lt;i&gt;Update: &lt;a href="http://chaijs.com/" target="_blank"&gt;Chai&lt;/a&gt; provides an implementation of should assertions that works in the browser.&lt;/i&gt;)&lt;br /&gt;
&lt;br /&gt;
Enough talk, let's look at a simple Mocha test in the BDD style.
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
describe 'Array', -&amp;gt;
  describe '#indexOf()', -&amp;gt;
    it 'should return -1 when not present', -&amp;gt;
      [1,2,3].indexOf(4).should.equal -1
&lt;/code&gt;
&lt;/pre&gt;
Here is how to run the example:
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Install Mocha (globally for convenience): &lt;code&gt;$ sudo npm install -g mocha should&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Copy the code above to &lt;code&gt;array-test.coffee&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$ mocha array-test.coffee --require should&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
As you can see, Mocha can compile and execute CoffeeScript directly when run in Node.js (browser usage requires compilation to JavaScript.) Even your production files can be in CoffeeScript. I created a simple &lt;a href="https://github.com/quartzmo/mocha-coffeescript-boilerplate" target="_blank"&gt;mocha-coffeescript-boilerplate&lt;/a&gt; project on GitHub to illustrate this and get you started.&lt;br /&gt;
&lt;br /&gt;
Coming soon on &lt;a href="http://coffeescriptlove.com/" target="_blank"&gt;CoffeeScript Love&lt;/a&gt;: How to integrate Mocha browser tests with the Rails (&amp;gt;= 3.1) Asset Pipeline. Update: Read &lt;a href="http://www.coffeescriptlove.com/2012/03/testing-coffeescript-in-rails.html"&gt;Testing CoffeeScript in Rails&lt;/a&gt;.&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/vOWEqboQunQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/2406564335368932505/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2012/02/testing-coffeescript-with-mocha.html#comment-form" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/2406564335368932505?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/2406564335368932505?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/vOWEqboQunQ/testing-coffeescript-with-mocha.html" title="Testing CoffeeScript with Mocha" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><thr:total>8</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2012/02/testing-coffeescript-with-mocha.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AMQXc8cCp7ImA9WhVTEUQ.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-8502150953210619907</id><published>2012-02-03T10:15:00.000-07:00</published><updated>2012-02-25T12:56:20.978-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-25T12:56:20.978-07:00</app:edited><title>Backbone.js vs Ember.js</title><content type="html">&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;In&amp;nbsp;&lt;/span&gt;the #documentcloud IRC channel on January 31, 2012, &lt;a href="https://github.com/jashkenas" target="_blank"&gt;Jeremy Ashkenas&lt;/a&gt; (jashkenas) and&amp;nbsp;&lt;a href="http://yehudakatz.com/" target="_blank"&gt;Yehuda Katz&lt;/a&gt; (wycats)&amp;nbsp;were asked by &lt;a href="http://www.travisswicegood.com/" target="_blank"&gt;Travis Swicegood&lt;/a&gt; to contrast &lt;a href="http://backbonejs.org/" target="_blank"&gt;Backbone.js&lt;/a&gt; and &lt;a href="http://emberjs.com/" target="_blank"&gt;Ember.js&lt;/a&gt;. (I have removed some IRC noise and unrelated conversations for clarity.)&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
09:56 tswicegood: so here's a loaded question since both of you are here...&lt;br /&gt;
09:56 tswicegood: what's the main differences between the backbone and ember?&lt;br /&gt;
09:56 tswicegood: I have some ideas, but I'm curious to hear from your perspectives :-)&lt;br /&gt;
09:58 wycats: tswicegood: Ember focuses heavily on bindings as the core abstraction, backbone focuses on raw events&lt;br /&gt;
09:58 wycats: Ember supports events&lt;br /&gt;
09:58 jashkenas: tswicegood: as with all of this stuff -- very different approaches to the same thing: building JS apps.&lt;br /&gt;
09:58 wycats: but Ember users tend to prefer bindings&lt;br /&gt;
09:58 wycats: jashkenas: does ^ seem correct?&lt;br /&gt;
09:58 jashkenas: eh, I think there's more than just that ;)&lt;br /&gt;
09:59 wycats: :p&lt;br /&gt;
09:59 jashkenas: from a user's perspective.&lt;br /&gt;
09:59 wycats: tswicegood: also, Ember's scope is larger -- for instance, we have a bundled template engine that is binding-aware&lt;br /&gt;
09:59 wycats: backbone is template-engine agnostic&lt;br /&gt;
...&lt;br /&gt;
10:01 jashkenas: tswicegood: but how to put it concisely ... Ember is an (IMO) more experimental attack at the end-to-end problem, by introducing new concepts to JavaScript, like the aforementioned Ember.meta bindings on objects ... Backbone is simply the lowest-common denominator set of functions and patterns to be productive.&lt;/blockquote&gt;
This small discussion hardly scratches the surface in assessing either of these excellent&amp;nbsp;JavaScript application&amp;nbsp;frameworks. To make an informed decision about which to use in your own projects, you should: a) try them for yourself, b) read their source code, c) review their real-world adoption, and d) learn more about the philosophy and commitment of their core teams.&lt;br /&gt;
&lt;br /&gt;
Update: Jeremy Ashkenas has published &lt;a href="https://gist.github.com/1732351" target="_blank"&gt;a much longer portion of the conversation&lt;/a&gt; about Backbone and Ember that continued on IRC. Also, the February 13, 2012 episode of JavaScript Jabber brought &lt;a href="http://www.coffeescriptlove.com/2012/02/backbone-and-ember-with-ashkenas-and.html"&gt;Ashkenas and Katz together for a live discussion&lt;/a&gt; on Backbone and Ember.&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/drN02gauhgU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/8502150953210619907/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2012/02/backbonejs-vs-emberjs.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/8502150953210619907?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/8502150953210619907?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/drN02gauhgU/backbonejs-vs-emberjs.html" title="Backbone.js vs Ember.js" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><thr:total>4</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2012/02/backbonejs-vs-emberjs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEMSHczeyp7ImA9WhRbEE4.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-5908185959751714688</id><published>2012-01-31T11:14:00.002-07:00</published><updated>2012-01-31T11:14:49.983-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-31T11:14:49.983-07:00</app:edited><title>CoffeeScript Love Selected as DZone MVB</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-ayMVjSTGQ2g/TygvfhfBP1I/AAAAAAAAADE/JLGcmusEbj0/s1600/big-mvbbutton.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-ayMVjSTGQ2g/TygvfhfBP1I/AAAAAAAAADE/JLGcmusEbj0/s1600/big-mvbbutton.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://coffeescriptlove.com/" target="_blank"&gt;CoffeeScript Love&lt;/a&gt; has been chosen for &lt;a href="http://www.dzone.com/" target="_blank"&gt;DZone&lt;/a&gt;'s MVB (Most Valuable Blogger) program! Yes, I know the name says &lt;i&gt;Blogger&lt;/i&gt;&amp;nbsp;not &lt;i&gt;Blog&lt;/i&gt;, but let's be honest: As happy as I am to see &lt;a href="http://www.dzone.com/page/mvbs" target="_blank"&gt;my picture in a grid with Martin Fowler&lt;/a&gt;, all the props go to the real hero, the "little language."&lt;br /&gt;
&lt;br /&gt;
The editors at DZone have clearly figured out what we already know, namely that CoffeeScript is seriously great. Hopefully, syndication of this blog will help CoffeeScript build even more momentum. Congrats, CoffeeScript!&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/IDJ842L89mk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/5908185959751714688/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2012/01/coffeescript-love-selected-as-dzone-mvb.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/5908185959751714688?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/5908185959751714688?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/IDJ842L89mk/coffeescript-love-selected-as-dzone-mvb.html" title="CoffeeScript Love Selected as DZone MVB" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-ayMVjSTGQ2g/TygvfhfBP1I/AAAAAAAAADE/JLGcmusEbj0/s72-c/big-mvbbutton.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2012/01/coffeescript-love-selected-as-dzone-mvb.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ABR347cCp7ImA9WhRUGUg.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-9123589977042729029</id><published>2012-01-30T12:29:00.000-07:00</published><updated>2012-01-30T12:29:16.008-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-30T12:29:16.008-07:00</app:edited><title>CoffeeScript in Basecamp Next</title><content type="html">&lt;span class="Apple-style-span"&gt;37Signals &lt;a href="http://37signals.com/svn/posts/3094-code-statistics-for-basecamp-next" target="_blank"&gt;published details today&lt;/a&gt; about the next generation of its flagship Basecamp product, with impressive statistics revealing that its codebase is almost as much CoffeeScript as Ruby. Astonishingly, this seems not to be even as high a percentage as it might be. DHH (&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #222222; line-height: 16px;"&gt;&lt;em style="color: black; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;David Heinemeier Hansson, creator of Ruby on Rails)&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&amp;nbsp;says in the post's comments that he is not a heavy user of client-side MVC frameworks such as Backbone.js:&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span class="Apple-style-span" style="color: #333333; line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;I still don’t like client-side MVC from a developer’s standpoint, which is why - comparably speaking - there’s only a tiny amount of it in Basecamp Next. But there are indeed places where it makes a lot of sense, such as a calendar, for example.&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&amp;nbsp;He also reveals that the vast majority of view rendering is still server-side Ruby:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span class="Apple-style-span" style="color: #333333; line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;... we use Eco for our client-side templates, but we only have 24 of those versus hundreds of regular ERB templates. Half the client-side templates relate to our new calendar.&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
Very interesting stuff. &lt;a href="http://coffeescriptlove.com/" target="_blank"&gt;CoffeeScript Love&lt;/a&gt; can't wait to hear more about CoffeeScript and the internals of Basecamp Next.&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/6IPClUI3yms" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/9123589977042729029/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2012/01/coffeescript-in-basecamp-next.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/9123589977042729029?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/9123589977042729029?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/6IPClUI3yms/coffeescript-in-basecamp-next.html" title="CoffeeScript in Basecamp Next" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2012/01/coffeescript-in-basecamp-next.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8CRXo_cCp7ImA9WhRUFU0.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-1314047299357785886</id><published>2012-01-24T23:36:00.000-07:00</published><updated>2012-01-25T08:54:24.448-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-25T08:54:24.448-07:00</app:edited><title>"I Never Want to Write Plain JavaScript Again"</title><content type="html">These are the words of legendary open-source JavaScript developer Sam Stephenson in a &lt;a href="http://vimeo.com/35258313" target="_blank"&gt;recent talk&lt;/a&gt;&amp;nbsp;on CoffeeScript at FOWA 2011. The 45-minute presentation (video is &lt;a href="http://vimeo.com/35258313" target="_blank"&gt;here&lt;/a&gt;, slides are &lt;a href="http://speakerdeck.com/u/sstephenson/p/coffeescript-is-beautiful-i-never-want-to-write-plain-javascript-again" target="_blank"&gt;here&lt;/a&gt;) chronicles the evolution of higher-level approaches to JavaScript, including GWT, Pyjamas, Objective-J, and finally CoffeeScript. If you've been on the fence with CoffeeScript, this could be the one to tip you. If you're just learning CoffeeScript, it is a great, thoughtful, well-paced introduction to the language. Sam structures the rest of the talk around "10 Things I Love About CoffeeScript."&lt;br /&gt;
&lt;br /&gt;
Here are Sam's top ten favorite things about CoffeeScript:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Function Syntax&lt;/li&gt;
&lt;li&gt;Significant Whitespace&lt;/li&gt;
&lt;li&gt;Bare Objects&lt;/li&gt;
&lt;li&gt;Everything's an Expression&lt;/li&gt;
&lt;li&gt;Comprehensions&lt;/li&gt;
&lt;li&gt;Classes &amp;amp; Inheritance&lt;/li&gt;
&lt;li&gt;Bound Functions&lt;/li&gt;
&lt;li&gt;Conditionals&lt;/li&gt;
&lt;li&gt;Destructuring Assignment&lt;/li&gt;
&lt;li&gt;String Syntax&lt;/li&gt;
&lt;/ol&gt;&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/zgez3MNFdBo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/1314047299357785886/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2012/01/i-never-want-to-write-plain-javascript.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/1314047299357785886?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/1314047299357785886?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/zgez3MNFdBo/i-never-want-to-write-plain-javascript.html" title="&quot;I Never Want to Write Plain JavaScript Again&quot;" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><thr:total>3</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2012/01/i-never-want-to-write-plain-javascript.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQFQXY8eCp7ImA9WhRVFkg.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-4133413642465286831</id><published>2012-01-15T11:31:00.002-07:00</published><updated>2012-01-15T11:31:50.870-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-15T11:31:50.870-07:00</app:edited><title>Alex MacCaw Interview on The Changelog</title><content type="html">Even if you follow Spine.js and Alex MacCaw closely (as I do), &lt;a href="http://thechangelog.com/post/14517970749/episode-0-7-1-spine-and-client-side-mvc-with-alex-maccaw" target="_blank"&gt;this recent interview&lt;/a&gt; with him on The Changelog is a good opportunity to hear the backstory on many of his design decisions. He discusses Spine and Backbone, Eco and Mustache, and weighs in on the debate about emulating native look-and-feel in mobile Web apps. Naturally he doesn't fail to mention how much he values CoffeeScript and admires Jeremy Ashkenas. It's fairly short (20 minutes), but definitely worth a listen.&lt;br /&gt;
&lt;br /&gt;
Also at The Changelog is this epic interview with &lt;a href="http://thechangelog.com/post/9123518427/episode-0-6-7-html5-boilerplate-modernizr-and-more-with" target="_blank"&gt;HTML5 Boilerplate creator Paul Irish&lt;/a&gt;. I consider it an overflowing grab-bag of goodies for anyone who develops for the browser.&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/f3Ks-WZWKBg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/4133413642465286831/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2012/01/alex-maccaw-interview-on-changelog.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/4133413642465286831?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/4133413642465286831?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/f3Ks-WZWKBg/alex-maccaw-interview-on-changelog.html" title="Alex MacCaw Interview on The Changelog" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2012/01/alex-maccaw-interview-on-changelog.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUANR348cCp7ImA9WhRWFEk.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-3830156475406248657</id><published>2012-01-01T12:56:00.002-07:00</published><updated>2012-01-01T12:56:36.078-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-01T12:56:36.078-07:00</app:edited><title>CodeMirror CoffeeScript Mode</title><content type="html">&lt;a href="http://codemirror.net/" target="_blank"&gt;CodeMirror&lt;/a&gt; is an open-source, extensible, full-featured code editor library for the browser that supports a number of different languages--including CoffeeScript!&lt;br /&gt;
&lt;br /&gt;
The &lt;a href="http://autotelicum.github.com/Smooth-CoffeeScript/literate/underscore.html" target="_blank"&gt;Underscore.js Reference&lt;/a&gt; in the online book &lt;a href="http://autotelicum.github.com/Smooth-CoffeeScript/" target="_blank"&gt;Smooth CoffeeScript&lt;/a&gt; uses CodeMirror for its interactive code listings. Another nice example is this&amp;nbsp;demo of&amp;nbsp;&lt;a href="http://calculize.com/pickhardt/standard_example" target="_blank"&gt;Calculize in CoffeeScript&lt;/a&gt; by Jeff Pickhardt, who created the CoffeeScript mode for CodeMirror.&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/ZZDj69Ca1ec" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/3830156475406248657/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2012/01/codemirror-coffeescript-mode.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/3830156475406248657?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/3830156475406248657?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/ZZDj69Ca1ec/codemirror-coffeescript-mode.html" title="CodeMirror CoffeeScript Mode" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2012/01/codemirror-coffeescript-mode.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUDQHk5eSp7ImA9WhRXE0k.&quot;"><id>tag:blogger.com,1999:blog-3728237926407785171.post-7238966436205569759</id><published>2011-12-19T17:17:00.003-07:00</published><updated>2011-12-19T17:17:51.721-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-19T17:17:51.721-07:00</app:edited><title>Don't Be A CoffeeScriptster</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-OJoZVDPyPko/Tu_Qb8omMzI/AAAAAAAAACs/GR_A4WCXT4k/s1600/vimeo_33246634.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="237" src="http://4.bp.blogspot.com/-OJoZVDPyPko/Tu_Qb8omMzI/AAAAAAAAACs/GR_A4WCXT4k/s320/vimeo_33246634.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Brandon Satrom takes a thoughtful look at CoffeeScript in &lt;a href="http://vimeo.com/33246634" target="_blank"&gt;CoffeeScript is for Closers&lt;/a&gt;, a recent video recorded for the RedDirtJS Conference. He makes a number of great points, including:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
CoffeeScript is not a replacement for learning JavaScript.&lt;/blockquote&gt;
I couldn't agree more. However, I'd like to add my own rejoinder:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
CoffeeScript is a wonderful &lt;i&gt;inspiration&lt;/i&gt;&amp;nbsp;for learning JavaScript.&amp;nbsp;&lt;/blockquote&gt;
Programming CoffeeScript is so much fun, it makes diving deep into JavaScript all the more worthwhile.&lt;img src="http://feeds.feedburner.com/~r/coffeescriptlove/~4/vxuTdfktDbY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.coffeescriptlove.com/feeds/7238966436205569759/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.coffeescriptlove.com/2011/12/dont-be-coffeescriptster.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/7238966436205569759?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3728237926407785171/posts/default/7238966436205569759?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/coffeescriptlove/~3/vxuTdfktDbY/dont-be-coffeescriptster.html" title="Don't Be A CoffeeScriptster" /><author><name>@quartzmo</name><uri>http://www.blogger.com/profile/15222755899473111565</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_vUYwu2sP9BA/TIQIZ0px-_I/AAAAAAAAAAM/AMxOjHSzdVE/S220/chris_avatar_photo_facebook.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-OJoZVDPyPko/Tu_Qb8omMzI/AAAAAAAAACs/GR_A4WCXT4k/s72-c/vimeo_33246634.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.coffeescriptlove.com/2011/12/dont-be-coffeescriptster.html</feedburner:origLink></entry></feed>
