<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blue Sky On Mars</title>
	<atom:link href="http://www.blueskyonmars.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blueskyonmars.com</link>
	<description>The Nuts and Bolts of Creating Great Software Products</description>
	<lastBuildDate>Wed, 24 Feb 2010 01:44:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ending SlowNews Experiment #1</title>
		<link>http://www.blueskyonmars.com/2010/02/23/ending-slownews-experiment-1/</link>
		<comments>http://www.blueskyonmars.com/2010/02/23/ending-slownews-experiment-1/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 14:01:00 +0000</pubDate>
		<dc:creator>Kevin Dangoor</dc:creator>
				<category><![CDATA[SlowNews]]></category>

		<guid isPermaLink="false">http://www.blueskyonmars.com/2010/02/23/ending-slownews-experiment-1/</guid>
		<description><![CDATA[The great thing about experiments is that they teach you things. Trying something and having it not work is not a failure. It&#8217;s information.
I still believe in what I said in my &#8220;What is SlowNews?&#8221; post: the move toward real-time random links and news is a bad move, in general. That basic part of the [...]]]></description>
			<content:encoded><![CDATA[<p>The great thing about experiments is that they teach you things. Trying something and having it not work is not a failure. It&#8217;s <i>information.</i></p>
<p>I still believe in what I said in my <a href="http://www.blueskyonmars.com/2010/01/26/what-is-slownews/">&#8220;What is SlowNews?&#8221;</a> post: the move toward real-time random links and news is a bad move, in general. That basic part of the experiment is not why I&#8217;m dropping my weekly SlowNews posts.</p>
<p>This blog is more than 8 years old, and I&#8217;ve always posted to it <i>for myself</i>. I&#8217;ve posted thoughts that I wanted to work out in writing. I&#8217;ve posted things that I wanted to share because I thought they could help people. I&#8217;ve posted about things that I thought were interesting and worthy of additional commentary. I thought these SlowNews postings would fit in that latter category.</p>
<p>But, I haven&#8217;t particularly enjoyed putting those posts together in the format I&#8217;ve been doing. While it is a chance to reflect on the happenings of the week, what I&#8217;ve done so far has felt too random. There&#8217;s too little narrative. So, for now, SlowNews goes back onto the idea shelf, waiting for a better implementation.</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=01bbc9c6-054c-85e5-9586-95e5726b45b3" /></div>
]]></content:encoded>
			<wfw:commentRss>http://www.blueskyonmars.com/2010/02/23/ending-slownews-experiment-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SlowNews: Declarative Events in JS, Redis, Mono, Facebook x2</title>
		<link>http://www.blueskyonmars.com/2010/02/23/slownews-declarative-events-in-js-redis-mono-facebook-x2/</link>
		<comments>http://www.blueskyonmars.com/2010/02/23/slownews-declarative-events-in-js-redis-mono-facebook-x2/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 14:00:37 +0000</pubDate>
		<dc:creator>Kevin Dangoor</dc:creator>
				<category><![CDATA[SlowNews]]></category>

		<guid isPermaLink="false">http://www.blueskyonmars.com/?p=2722</guid>
		<description><![CDATA[Ending This SlowNews Experiment
This is the last issue of this SlowNews format. I may or may not try a new format. I&#8217;ve written a bit more about why.
Reactive JavaScript: Declarative Programming for Events
When a problem space is well understood, adding declarative forms can really save on a lot of work. Here&#8217;s an interesting look at [...]]]></description>
			<content:encoded><![CDATA[<h2>Ending <em>This</em> SlowNews Experiment</h2>
<p>This is the last issue of this SlowNews format. I may or may not try a new format. I&#8217;ve written <a href="http://www.blueskyonmars.com/2010/02/23/ending-slownews-experiment-1/">a bit more about why</a>.</p>
<h2>Reactive JavaScript: Declarative Programming for Events</h2>
<p>When a problem space is well understood, adding declarative forms can really save on a lot of work. Here&#8217;s an <a href="http://codebetter.com/blogs/matthew.podwysocki/archive/2010/02/16/introduction-to-the-reactive-extensions-to-javascript.aspx">interesting look at the Reactive Extensions to JavaScript</a>, created by the team at Microsoft that creative the <a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx">Reactive Extensions for .NET</a>. I didn&#8217;t find the syntax there appealing, but the ideas are interesting. The <a href="http://www.flapjax-lang.org/">Flapjax</a> project provides a nicer looking syntax, but requires a compilation step to pure JS (the compiler is written in JS and can run in the browser). I like the Flapjax tutorial reference to spreadsheets, because spreadsheets provide a great model for certain kinds of declarative work and tying declarative structures with additional imperative programming is very powerful. One of the reasons we chose <a href="http://sproutcore.com/">SproutCore</a> for Bespin is the ability to bind views directly to data so that the two automatically stay in sync.</p>
<h2>A Collection of Redis Use Cases</h2>
<p>Mathias Meyer&#8217;s <a href="http://www.paperplanes.de/2010/2/16/a_collection_of_redis_use_cases.html">Collection of Redis Use Cases</a> provides a great collection of examples to give you an idea of where you might apply <a href="http://code.google.com/p/redis/">Redis</a> in your own applications. In the &#8220;Not Only SQL&#8221; movement, Redis is a good tool to have in your toolbox.</p>
<h2>Using node.js To Bootstrap a Server from Client Code</h2>
<p>Dion Almaer wrote up the experience he and Ben Galbraith had <a href="http://almaer.com/blog/building-an-web-application-from-the-inside-out-using-node-js-to-bootstrap-a-server-from-client-js?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+dion+%28techno.blog%28%22Dion%22%29%29">in creating</a> the <a href="http://projectappetite.com/">Project Appetite</a> site for Palm WebOS developers. Following the modern style of having the client do presentation and the web server just providing an API, they could work on client and server independently. It turns out that a quick way to get a server up and running was just to reuse client-side code on the server (in this case, using <a href="http://nodejs.org/">node.js</a>).</p>
<h2>Harmony: JavaScript Testing in Ruby</h2>
<p><a href="http://github.com/mynyml/harmony">Harmony</a> takes advantage of <a href="http://github.com/jbarnette/johnson/">Johnson</a>, a Ruby to JavaScript bridge and lets you write unit tests for your JavaScript code in Ruby. It&#8217;s not unreasonable to ask <em>why</em>, given that you can write the tests for your JavaScript code in, say, JavaScript&#8230; but, on first glance to me, the benefit here would seem to be that you can test server and client bits together conveniently.</p>
<h2>Making Facebook 2x Faster</h2>
<p>Jason Sobel gives the rundown on a 2009 project to <a href="http://www.facebook.com/note.php?note_id=307069903919">make Facebook&#8217;s pages load twice as fast</a>. This is a good account of what it can take to make a speedy site.</p>
<h2>Thoughtworkers Subjective Impressions of VCS</h2>
<p>Having trouble picking a version control system (VCS) for your next project? Martin Fowler has posted <a href="http://martinfowler.com/bliki/VersionControlTools.html">some general impressions</a> that Thoughtworks people have picked up while working on client projects. I&#8217;ve worked on a variety of projects using a variety of tools (RCS, CVS, ClearCase, Subversion, Bazaar-NG, Mercurial, Git) and Martin&#8217;s roundup meshes pretty well with my own impressions.</p>
<h2>Canviz: graphviz on Canvas</h2>
<p>Need to produce a directed graph? Only care about the <a href="http://code.google.com/p/canviz/wiki/Browsers">&#8220;modern&#8221; browsers</a>? Then <a href="http://www.ryandesign.com/canviz/">canviz</a> is for you! <a href="http://code.google.com/p/canviz/">Canviz is open source</a> (MIT license) and lets you create a variety of graphs just as you can with the <a href="http://www.graphviz.org/">graphviz</a> project, but entirely client side.</p>
<h2>HTML5 Web Sockets Spec Reimagined</h2>
<p>Tim Bray <a href="http://www.tbray.org/ongoing/When/201x/2010/02/15/HTML5">dove into the HTML5 spec</a> and found a number of new features that he liked. He also went deep on the Web Sockets spec in particular, going so far as to produce an <a href="http://www.tbray.org/drafts/wsock-00">alternate version of the spec</a> to make things clearer. Looking at Tim&#8217;s alternate, there&#8217;s a lot that he left alone.</p>
<h2>State of Mono</h2>
<p>Miguel de Icaza has written up an overview of <a href="http://tirania.org/blog/archive/2010/Feb-17.html">what&#8217;s been going on with the Mono project</a>. It looks to me like the Mono platform is still evolving quite nicely. If you happen to be near Ann Arbor on Thursday, February 25th, you can learn about the state of .NET web development at the <a href="http://a2div.com/">a2 </a></p>
<div>meeting.</p>
<h2>10 Online Code Editors</h2>
<p>There has been a lot of development in web-based code editors, and I think this space will just get busier as time goes on. Here&#8217;s a roundup of <a href="http://www.catswhocode.com/blog/10-useful-online-code-editors">10 online code editors</a>, including screenshots. ObDisclaimer: I&#8217;m the project lead for <a href="https://mozillalabs.com/bespin/">Bespin</a>.</p>
<h2>Interesting Releases</h2>
<ul>
<li><a href="http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.7.0.txt">git 1.7</a></li>
<li><a href="http://razorjack.net/quicksand/">jQuery Quicksand plugin</a> &#8211; nice visual effect for filtering and sorting</li>
<li><a href="http://code.google.com/p/zen-coding/wiki/Changelog">Zen Coding 0.6</a> &#8211; adds filters, new editor support and a bunch of other features</li>
</ul>
<h2>&gt; list<br />
11 goto 11</h2>
<p>Top 11 ways to deploy a website</p>
<p>11. <a href="http://samba.anu.edu.au/rsync/">rsync</a><br />
10. <a href="http://labs.peritor.com/webistrano">Webistrano</a><br />
1. <a href="http://renesd.blogspot.com/2010/02/secret-to-my-web-development.html">Your foot!</a></p>
</div>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=c026fe09-9c9f-877e-b199-90661aba1f68" alt="" /></div>
]]></content:encoded>
			<wfw:commentRss>http://www.blueskyonmars.com/2010/02/23/slownews-declarative-events-in-js-redis-mono-facebook-x2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SlowNews: IM in JS, XHP, ePub</title>
		<link>http://www.blueskyonmars.com/2010/02/16/slownews-im-in-js-xhp-epub/</link>
		<comments>http://www.blueskyonmars.com/2010/02/16/slownews-im-in-js-xhp-epub/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 14:00:43 +0000</pubDate>
		<dc:creator>Kevin Dangoor</dc:creator>
				<category><![CDATA[SlowNews]]></category>

		<guid isPermaLink="false">http://www.blueskyonmars.com/?p=2717</guid>
		<description><![CDATA[Ajax IM: Open Source IM, Totally JavaScript
The MIT-licensed Ajax IM library lets you add instant messaging to your site and features a new node.js server side. This is certainly a good use for an async framework like node! The one thing I noticed while sitting on their site is that it has an unpleasant way [...]]]></description>
			<content:encoded><![CDATA[<h2>Ajax IM: Open Source IM, Totally JavaScript</h2>
<p>The MIT-licensed <a href="http://ajaxim.com/">Ajax IM</a> library lets you add instant messaging to your site and features a new <a href="http://nodejs.org/">node.js</a> server side. This is certainly a good use for an async framework like node! The one thing I noticed while sitting on their site is that it has an unpleasant way of tacking things onto your browser&#8217;s history without actually going anywhere. Should you want to roll your own messaging, you could fire up <a href="http://github.com/jcoglan/faye">Faye</a> on node.js and use your favorite <a href="http://api.dojotoolkit.org/jsdoc/1.3.2/dojox.cometd">Bayeux client side library</a>.</p>
<h2>XHP: E4X for PHP</h2>
<p>Did you know that some implementations of ECMAScript allow you to <a href="http://en.wikipedia.org/wiki/ECMAScript_for_XML">embed XML right in your JavaScript</a>? I&#8217;d imagine many people don&#8217;t, because folks in the &#8220;real world&#8221; need to make sites that run on IE. Well, if you&#8217;ve been pining for the ability to embed XML right there in your code, or if you&#8217;ve been looking for a chance to turn PHP inside out, you&#8217;re going to love <a href="http://www.facebook.com/notes/facebook-engineering/xhp-a-new-way-to-write-php/294003943919">XHP</a>, which Facebook recently open sourced. At the very least, you&#8217;ll go read about it and then <a href="http://toys.lerdorf.com/archives/54-A-quick-look-at-XHP.html">learn about XHP&#8217;s implementation performance characteristics</a> from none other than Rasmus himself.</p>
<h2>wtfjs</h2>
<p>OK, so I&#8217;m a well-known booster of JavaScript. But, you&#8217;ll never hear me say that it&#8217;s perfect. <em>Every</em> language has its warts, and <a href="http://wtfjs.com/">wtfjs</a> has an enjoyable collection of JavaScript&#8217;s.</p>
<h2>LESS.app Now With Automatically More Less</h2>
<p><a href="http://incident57.com/less/">LESS.app</a> lets Mac users write their CSS in <a href="http://lesscss.org/">LESS</a> and have that LESS automatically turned into valid CSS as they work. Languages like LESS are cool, because they have an opportunity to influence how the actual standards will evolve.</p>
<h2>ePub in JavaScript</h2>
<p>The ePub standard looks to be gaining serious momentum as an ebook format, albeit without the support of the <a href="http://www.amazon.com/gp/product/B0015T963C?ie=UTF8&amp;tag=blueskyonmars-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B0015T963C">top selling ebook reader</a> to date. There has been a good bit of work done to create usable ePub readers in JavaScript, and Michael Mahemoff has <a href="http://ajaxian.com/archives/javascript-epub-readers">a good roundup</a> over at Ajaxian.</p>
<h2>&gt; list<br />
11 goto 11</h2>
<p>Top 11 JavaScript Features (from wtfjs)</p>
<p>11. <code>"string" instanceof String; // false.</code><br />
10. <code>typeof NaN // number, of course.</code><br />
1.</p>
<pre>(function(){
  var x = y = 1;
})();
alert(x); // undefined
alert(y); // 1 -- oops, auto-global!
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.blueskyonmars.com/2010/02/16/slownews-im-in-js-xhp-epub/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SlowNews: HipHop, Redis, Riak, Weave, Homebrew</title>
		<link>http://www.blueskyonmars.com/2010/02/09/slownews3/</link>
		<comments>http://www.blueskyonmars.com/2010/02/09/slownews3/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 14:00:28 +0000</pubDate>
		<dc:creator>Kevin Dangoor</dc:creator>
				<category><![CDATA[SlowNews]]></category>

		<guid isPermaLink="false">http://www.blueskyonmars.com/?p=2710</guid>
		<description><![CDATA[HipHop Compiles PHP to C++
What do you do if you have to serve up 400 billion PHP page views a month? You don&#8217;t, because you&#8217;re not Facebook. But, for Facebook speeding things up can make a real difference on their compute costs. Their newly open sourced tool HipHop translates PHP to C++ and then compiles [...]]]></description>
			<content:encoded><![CDATA[<h2>HipHop Compiles PHP to C++</h2>
<p>What do you do if you have to serve up 400 billion PHP page views a month? <em>You don&#8217;t</em>, because you&#8217;re not Facebook. But, for Facebook speeding things up can make a real difference on their compute costs. Their <a href="http://developers.facebook.com/news.php?blog=1&amp;story=358">newly open sourced tool</a> <a href="http://github.com/facebook/hiphop-php/wikis">HipHop</a> translates PHP to C++ and then compiles the result with g++. Net benefit? Apparently 50% less CPU usage. Nice!</p>
<p>Also, check out Paul Biggar&#8217;s take on PHP compilation and <a href="http://blog.paulbiggar.com/archive/a-rant-about-php-compilers-in-general-and-hiphop-in-particular/">how HipHop impacts the phc project</a>.</p>
<h2>Mozilla Weave Hits 1.0, Adds Developer APIs</h2>
<p>The Mozilla Weave project recently <a href="http://mozillalabs.com/weave/2010/01/28/synchronize-your-firefox-experience-across-desktop-and-mobile/">shipped 1.0</a> of their Firefox extension that synchronizes information (securely and privately) between your browsers. This week, the Weave team has <a href="http://mozillalabs.com/weave/2010/02/05/weave-sync-new-apis-and-resources-for-developers/">announced Python and JavaScript client libraries and APIs in general </a>for accessing this data. They have web-based and iPhone clients as prototypes, which is really cool. Personally, I find the identity aspects to Weave very interesting and hope to see more experimentation and implementation of identity directly in the browser (how many more username and password systems do <em>you</em> want to implement?)</p>
<p>Disclaimer: I work for Mozilla Labs.</p>
<h2>Redis Goes Beyond RAM</h2>
<p>Redis is a very useful disk-backed key/value store with lots of interesting atomic operations. It&#8217;s always had the limitation that the entire dataset needed to fit in memory. antirez explains how <a href="http://antirez.com/post/redis-virtual-memory-story.html">that limitation is removed in Redis 2.0</a>. The <em>concept</em> of virtual memory is lifted straight from OS theory and practice, but the application-level implementation is a better fit for Redis&#8217; needs.</p>
<h2>Homebrew: OS X&#8217;s Missing Package Manager</h2>
<p><a href="http://github.com/mxcl/homebrew">Homebrew</a> continues to be a fairly stealth project, I think. If you&#8217;re a Mac user, though, it&#8217;s worth looking at. It&#8217;s a super simple package management system that makes it easy to install many common packages and even makes it easy to manage packages that you download and build yourself. Andre Arko posted <a href="http://www.engineyard.com/blog/2010/homebrew-os-xs-missing-package-manager/">a nice introduction</a>.</p>
<h2>Removing Features</h2>
<p>Lukas Mathis has written one of the best articles about <a href="http://ignorethecode.net/blog/2010/02/02/removing-features/">removing features</a> that I&#8217;ve seen. It&#8217;s always tempting to keep adding more, when really adding <em>better</em> is really what&#8217;s required.</p>
<h2>More On The Use of h.264</h2>
<p>The hubbub around h.264 that I talked about in the first SlowNews issue has a <a href="http://bemasc.net/wordpress/2010/02/02/no-you-cant-do-that-with-h264/">great new summary</a> courtesy of Ben Schwartz. Ben took the actual license text from various pieces of software that produce h.264 videos, making it plain as day that people creating videos and posting them online are quite often in violation of the patents. Whatever people may think of <a href="http://theora.org/">Theora&#8217;s</a> quality, at least it is unencumbered.</p>
<h2>Mugtug Sketchpad: Fast Painting with Canvas</h2>
<p>If you&#8217;ve doubted the growing ability of standards-based webapps to fully replace <em>many</em> desktop apps, <a href="http://mugtug.com/sketchpad/">Sketchpad</a> should sway you. As long as you&#8217;re not using IE.</p>
<h2>Detailed Riak Overview</h2>
<p>Sean Cribbs insists that you should <a href="http://seancribbs.com/tech/2010/02/06/why-riak-should-power-your-next-rails-app/">use Riak for your next Rails app</a>. I&#8217;m not likely to be created a Rails app any time soon, but this was still a good overview of <a href="http://riak.basho.com/">Riak</a>. I&#8217;ve personally had a lot more exposure to MongoDB and Redis than Riak, so it&#8217;s nice to get a feel for what Riak&#8217;s all about. Also worth a look: Riak now supports <a href="http://blog.basho.com/2010/02/03/the-release-riak-0.8-and-javascript-map/reduce/">JavaScript-based map/reduce jobs</a>.</p>
<h2>Rails 3 Beta Release</h2>
<p>I don&#8217;t intend to include beta releases or vaporware here in general, but Rails 3 has been in development for a long time and is coming out from under its merger with Merb. So, in case you missed it, here&#8217;s <a href="http://weblog.rubyonrails.org/2010/2/5/rails-3-0-beta-release">DHH&#8217;s post about Rails 3.0&#8217;s beta</a>.</p>
<h2>Free F# Book</h2>
<p>I&#8217;ve been impressed by some of the directions in which Microsoft has taken their development tools. The F# programming language, a functional language, seems like the kind of thing you wouldn&#8217;t see coming out of Microsoft (or, at least, beyond the research prototype stage). But, it&#8217;s certainly well beyond research prototype and now you can even get a feel for F# from <a href="http://www.ctocorner.com/fsharp/book/default.aspx">a new, free book</a> by John Puopolo<em> with </em>Sandy Squires.</p>
<h2>&gt; list<br />
11 goto 11</h2>
<h3>Top 11 Reasons Why There Was No List Last Week</h3>
<p>11. Perhaps every other SlowNews issue has no list?</p>
<p>10. There was no list?</p>
<p>1. I forgot.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blueskyonmars.com/2010/02/09/slownews3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SlowNews: iPad, zeromq, open source, toppcloud</title>
		<link>http://www.blueskyonmars.com/2010/02/02/slownews2/</link>
		<comments>http://www.blueskyonmars.com/2010/02/02/slownews2/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 14:00:46 +0000</pubDate>
		<dc:creator>Kevin Dangoor</dc:creator>
				<category><![CDATA[SlowNews]]></category>

		<guid isPermaLink="false">http://www.blueskyonmars.com/?p=2693</guid>
		<description><![CDATA[Apple iPad: Open and Closed
Obviously, the iPad was introduced this past weekend and probably a million words or more about it have spilled out onto the net. Here&#8217;s just a few of those words.
Yehuda Katz takes the open side in &#8220;A GREAT Day for Open Technologies&#8221;. Actually, Yehuda takes both sides. Apple has created a [...]]]></description>
			<content:encoded><![CDATA[<h2>Apple iPad: Open <em>and</em> Closed</h2>
<p>Obviously, the iPad was introduced this past weekend and probably a million words or more about it have spilled out onto the net. Here&#8217;s just a few of those words.</p>
<p>Yehuda Katz takes the open side in <a href="http://yehudakatz.com/2010/01/27/the-irony-of-the-ipad-a-great-day-for-open-technologies/">&#8220;A GREAT Day for Open Technologies&#8221;</a>. Actually, Yehuda takes <em>both</em> sides. Apple has created a closed platform while at the same time creating a very powerful platform for the Open Web. The trouble is that if you view the iPad as the future of computing, it is a scary thought as a geek to work on a platform that is so closed off. That&#8217;s more of <a href="http://createdigitalmusic.com/2010/01/27/how-a-great-product-can-be-bad-news-apple-ipad-and-the-closed-mac/">Peter Kim&#8217;s take</a>.</p>
<p>Personally, I agree with stevenf&#8217;s take that <a href="http://stevenf.tumblr.com/post/359224392/i-need-to-talk-to-you-about-computers-ive-been">the iPad is the &#8220;new world&#8221; of computing</a>, and it&#8217;s really a better world for most users. But, it&#8217;s only &#8220;new world 1.0&#8243;. It requires another computer. It can&#8217;t print. I believe that Apple is going to create a Time Capsule sort of device to which you can dock iPhones and iPads without needing a full computer, because an iPad is a full-enough computer for most people. For now, though, iPad is going to start making its way in the world as that &#8220;third device&#8221; that Steve Jobs referred to upon introducing it.</p>
<p>Mark Pilgrim and I apparently had similar tracks to learning computers (though mine was a TRS-80 Model III, not an Apple ][). He worries that <a href="http://diveintomark.org/archives/2010/01/29/tinkerers-sunset">future tinkerers will be left in the cold</a> because of devices like iPads. There&#8217;s a huge difference between now and a couple decades ago. Computers were <em>all</em> for tinkerers then. Computers are for everyone now. I think there will remain ways for people to tinker.</p>
<h2>iPad SDK: No Multitasking, New Shared Files</h2>
<p>MacRumors has a <a href="http://www.macrumors.com/2010/01/27/ipad-sdk-3-2-details-external-display-file-sharing-system-no-multitasking/">quick rundown of the new iPad SDK</a>. It has support for external displays (for Keynote, I&#8217;d imagine). No multitasking is supported. There&#8217;s a new shared filesystem, which is presumed to be the way to get iWork documents onto the tablet. There&#8217;s also said to be support for apps that support both iPad and iPhone, which should be interesting.</p>
<h2>zeromq: Very Lightweight Messaging</h2>
<p>Martin Sustrik and Martin Lucina have written an article about zeromq (<a href="http://lwn.net/Articles/370307/">&#8220;a new approach to messaging&#8221;</a>), which looks to be about as minimal a messaging system as you can imagine. It&#8217;s got an API that&#8217;s patterned after BSD sockets. The comments that follow the article are quite interesting and useful as well. There&#8217;s a comparison of zeromq, AMQP and <a href="http://www.restms.org/">RestMS</a> and the different kinds of things those are good at. RestMS actually sounds quite interesting to me. I&#8217;ll need to read a bit more about <a href="http://www.zyre.com/">Zyre</a>, which is a RestMS implementation.</p>
<h2>ScriptCommunicator: Long Polling for Every Browser</h2>
<p>Amir from Plurk has created a small (80 lines) module (<a href="http://amix.dk/blog/post/19489">ScriptCommunicator</a>) for doing long polling, regardless of the browser. Even if real time isn&#8217;t right for everything (this is SlowNews after all), Comet is quite important and this little library deals with some of the tricky bits for one style of Comet.</p>
<h2>(fab): A DSL for async coding with node.js</h2>
<p><a href="http://www.fabjs.org/">fab</a> will likely remind people of Lisp, because of all of the parentheses. Look more closely, and you&#8217;ll notice that the parens are not nested&#8230; because this is proper JS, and fab is working through function call chaining. The goal of fab was to provide a nice way to define how URLs get handled in a node.js-powered web app. It&#8217;s a neat idea and the result is reasonably clean.</p>
<h2>gccgo is Official</h2>
<p>GCC 4.5 is slated to include Go. It will be interesting to see when Go-based projects actually start appearing, and when the first Go-based &#8220;killer app&#8221; arrives on the scene (think of what CouchDB and RabbitMQ have done for Erlang, for example).</p>
<h2>75% of Linux Code is Written by Paid People</h2>
<p>Over the years, I have seen a number of people characterize open source as <a href="http://www.h-online.com/open/features/Hams-hackers-hobbyists-and-model-railways-746601.html">written by &#8220;hobbyists&#8221;</a>. That isn&#8217;t actually a derogatory thing to say, because people volunteering their time to a project that they believe in and love will likely do it well and with gusto. But, I&#8217;ve always thought that the view of hobbyist-driven open source is not the likely picture for large and successful open source projects. Jonathan Corbet analyzed Linux kernel contributions across 2009 and found that <a href="http://apcmag.com/linux-now-75-corporate.htm">75% of the code came from people who were being paid</a> to write that code.</p>
<p>Creating a significant open source project can be at least a full time job. For something like Linux, it&#8217;s obviously <em>many</em> full time jobs.</p>
<h2>toppcloud: Easy, Reliable Cloud Deployment</h2>
<p>The prolific Ian Bicking has just <a href="http://blog.ianbicking.org/2010/01/29/new-way-to-deploy-web-apps/">spread word of toppcloud</a>. He&#8217;s been mentioning it on twitter for a while, but now he gives the full story. If you have to deploy server side code (and don&#8217;t mind using Ubuntu on your VPS), check out toppcloud as a way to potentially make things easier.</p>
<h2>Hot Code Reloading for node.js</h2>
<p>Blaine Cook has a branch of node.js that can <a href="http://romeda.org/blog/2010/01/hot-code-loading-in-nodejs.html">hot reload modules</a>. This is obviously great in both development and production, when implemented well.</p>
<h2>A zsh Prompt That Understands Hg, Git, Mac Batteries</h2>
<p>Steve Losh has created a seriously <a href="http://stevelosh.com/blog/2010/02/my-extravagant-zsh-prompt/">tricked out zsh prompt</a>.</p>
<h2>CommonJS: The First Year</h2>
<p>CommonJS turned a year old this past week, and I wrote a <a href="http://www.blueskyonmars.com/2010/01/29/commonjs-the-first-year/">retrospective on that first year</a>. Short form: JavaScript is growing fast!</p>
<h2>Geek Conversation Killers</h2>
<p>Philip Guo has an interesting article about <a href="http://www.stanford.edu/~pgbovine/geek-behaviors.htm">awkwardness of &#8220;geeks&#8221; in conversation</a>. I have definitely both witnessed this and caught myself doing some of these things. If you&#8217;re a geek like me, put a few brain cells onto the task of watching for these things during your next conversation. Calley Soukup has an <a href="http://groups.google.com/group/rec.arts.sf.fandom/msg/1e5a957c26a3ce37?hl=en&amp;pli=1">interesting collection of observations</a> about how sci-fi fans communicate, dating back to 1999.</p>
<h2>Feedback for SlowNews #1</h2>
<p><a href="http://twitter.com/uhop/status/8247358173">&#8220;very promising debut!!!&#8221;</a> @uhop</p>
<p>&#8220;<a href="http://www.reddit.com/r/programming/comments/aujkd/slownews_the_move_toward_realtime_everything_is/">Hypocrite.</a> The article was posted <em>today</em>. Let&#8217;s see if it&#8217;s  still here 24 months from now in the same form.&#8221; lutusp on reddit. <em>Ed: this is odd, everyone has to start with a thought sometime. I&#8217;m pretty sure that in two years I&#8217;m still going to think that real time flow of random news is a bad thing.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blueskyonmars.com/2010/02/02/slownews2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CommonJS: the First Year</title>
		<link>http://www.blueskyonmars.com/2010/01/29/commonjs-the-first-year/</link>
		<comments>http://www.blueskyonmars.com/2010/01/29/commonjs-the-first-year/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 14:53:34 +0000</pubDate>
		<dc:creator>Kevin Dangoor</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[CommonJS]]></category>

		<guid isPermaLink="false">http://www.blueskyonmars.com/?p=2702</guid>
		<description><![CDATA[A year ago today, I posted &#8220;What Server Side JavaScript Needs&#8221;, inviting people to come and turn JavaScript into a competitive platform for applications on the server. Quite a few people answered the call. While the focus of the group has been on JavaScript in non-browser contexts, we&#8217;re ultimately shooting for as much of a [...]]]></description>
			<content:encoded><![CDATA[<p>A year ago today, I posted <a href="http://www.blueskyonmars.com/2009/01/29/what-server-side-javascript-needs/">&#8220;What Server Side JavaScript Needs&#8221;</a>, inviting people to come and turn JavaScript into a competitive platform for applications on the server. Quite a few people answered the call. While the focus of the group has been on JavaScript in non-browser contexts, we&#8217;re ultimately shooting for as much of a standard that can cross between server, browser, GUI and command line applications as possible. That&#8217;s why we changed the name to <a href="http://commonjs.org/">CommonJS</a> in the second half of the year. Ironically, most of my own personal use of CommonJS so far has been in the browser. I&#8217;ll come back to the personal perspective, though.</p>
<h2>The Original Goals</h2>
<p>As laid out in my original blog post, we were seeking to create:</p>
<ul>
<li>A module system,</li>
<li>A cross-interpreter standard library,</li>
<li>A few standard interfaces,</li>
<li>A package system, and</li>
<li>A package repository</li>
</ul>
<p>Note that the idea here is that this group creates specs, which will have multiple implementations.</p>
<p>The goal is to have these things working across as many operating systems and interpreters as possible. There are three major operating systems (Windows, Mac, Linux) and four major interpreters (SpiderMonkey, Rhino, v8, JavaScriptCore). Plus there&#8217;s &#8220;the browser&#8221;, which is a unique environment unto itself. That&#8217;s a fair bit of surface area to cover.</p>
<p>Oddly, I think the one of those eight &#8220;platforms&#8221; with the poorest implementation support is Windows. Most of the CommonJS developers are using Macs or Linux machines, so I&#8217;m not sure how much time has really been spent on Windows. I would imagine that JavaScriptCore on Windows is probably the least supported combination.</p>
<p>The good news, however, is that there are projects using <em>all</em> of those JavaScript interpreters and platform compatibility issues will ultimately be ironed out.</p>
<h2>CommonJS and the ECMAScript Standard</h2>
<p>The CommonJS group is a grassroots effort, and not some formal standards body. In some ways, however, it works like a standards body in that the people working on the standard are also implementing the standard-in-progress and using it to build real applications.</p>
<p>We have no control over the ECMAScript language, which is managed by the TC39 working group. However, there are a few people involved in CommonJS who are part of TC39, and I have firsthand knowledge of others who are keeping an eye on how things are going with CommonJS.</p>
<p>The CommonJS standard-in-progress is designed to work on a subset of ECMAScript 5 that can be made to work on today&#8217;s ECMAScript 3 interpreters. ECMAScript 3 is the standard that is running in all of the browsers. In other words, in a CommonJS application you can count on Array.prototype.forEach to be implemented. Obviously, applications can do whatever they want (array destructuring? knock yourself out, but your app will only work on SpiderMonkey and Rhino).</p>
<p>One certainty about CommonJS is that inventing new language syntax is out of scope.</p>
<h2>The Module System</h2>
<p>The CommonJS group has been remarkably good at avoiding bikeshedding. While there is discussion about names of things, there isn&#8217;t <em>heated</em> discussion about it. People are far more interested in issues of functionality and ease-of-use. This is a very good thing, and it allowed us to get <a href="http://wiki.commonjs.org/wiki/Modules/1.1">modules</a> out of the way early on.</p>
<p>Of course, the lack of bikeshedding doesn&#8217;t mean that everyone agrees on things. The CommonJS module system has its controversial aspects, but I think it does well given the constraints:</p>
<ol>
<li>must work with ES3 syntax (destructuring could actually be useful, but we&#8217;re not going to do it)</li>
<li>modules should have self-contained namespaces and be explicit about data the want to export</li>
<li>it should be possible to make modules tamper-proof, though this is not a requirement</li>
<li>using a module should be competitive with using modules in languages like Python and Ruby</li>
</ol>
<p>TC39 had considered adding modules to ECMAScript 4 and there are module proposals on the table for ECMAScript Harmony that would add some syntax to JavaScript that would look similar to CommonJS modules. Here&#8217;s a short module to give you an idea of what CommonJS modules look like:</p>
<pre>var sillymath = require("extramath/silly");

exports.addTwo = function(num) {
    return sillymath.add(num, 2);
};
</pre>
<p>Personally, I find this to be reasonably concise with a nice level of explicitness. Some syntax sugar would be good, and I hope we get that in ES-Harmony. But, this syntax works fine today.</p>
<p>Of course, this syntax is not without controversy. The biggest controversy has been that require() is synchronous – the &#8220;extramath/silly&#8221; module has to be available as the module above is loaded. However, there are a couple of reasonable ways to deal with this problem and I am happily working with CommonJS modules in the browser which is the environment that is least tolerant to synchronous loading.</p>
<p>Controversy or not, this basic module system was ratified last winter and has been implemented on all target environments of CommonJS.</p>
<p>Discussion is ongoing for a tie-in to the module standard: the <a href="http://wiki.commonjs.org/wiki/Modules/Transport">module transport</a> standard. Without additional help from the browser or some additional scaffolding running in the page, the module syntax above doesn&#8217;t work via a &lt;script&gt; tag. By standardizing what that scaffolding would look like, it is possible for a variety of build tools, servers and client side libraries to come into existence to provide many options for loading modules in the browser. There have already been several implementations of CommonJS module loading in the browser, but a standard will make it much easier to mix-and-match client and server.</p>
<h2>The Standard Library</h2>
<p>I had hoped we&#8217;d get farther on the standard library than we have, but it can indeed be a long process. <a href="http://wiki.commonjs.org/wiki/System/1.0">system</a> and <a href="http://wiki.commonjs.org/wiki/Unit_Testing/1.0">unit testing</a> are the only ones that have been ratified at this point. We have come a long way on file access.</p>
<p>&#8220;What!?!?&#8221;, I hear you say, &#8220;there&#8217;s no standard for accessing files yet?&#8221; That&#8217;s right. And there are a couple of reasons that it&#8217;s been challenging to get there.</p>
<p>Consider that JavaScript does not even have a standard object to deal with <em>binary data</em>. That is a basic prerequisite to working with files. JavaScript strings are not the same as a binary data container. So, there&#8217;s binary data to handle, streams to figure out and then file functionality built on top of that. There&#8217;s also the consideration of whether file access is synchronous or asynchronous. We&#8217;ve made tons of headway on this, and there are certainly implementations of some of the specs. It&#8217;s just a matter of finishing them.</p>
<p>I&#8217;m hoping to see <a href="http://wiki.commonjs.org/wiki/Promises">promises</a> become a part of the standard, because some form of that interface is very convenient to use for asynchronous operations.</p>
<h2>Standard Interfaces</h2>
<p>We do have a very useful interface with implementations and people actively using it: the <a href="http://wiki.commonjs.org/wiki/JSGI/Level0/A/Draft2">JavaScript Gateway Interface (JSGI)</a>. That spec has not yet been ratified, but it is getting closer and there are apps being built against it today.</p>
<p>Database access has not yet been standardized. It will be interesting to see if we can come up with a good interface that can usefully target SQL and NoSQL databases alike.</p>
<h2>Package System</h2>
<p>We have a recently ratified spec for <a href="http://wiki.commonjs.org/wiki/Packages/1.0">packages of CommonJS code</a>. I hope this will bring about a collection of good package managers with different focuses and targeting different environments. There have already been a couple of attempts to create package management systems, and the most fleshed out one that I&#8217;ve seen is Tusk, which is bundled with <a href="http://narwhaljs.org/">Narwhal</a>. Once a few more specs are ratified, Tusk should be able to run on other CommonJS implementations.</p>
<h2>Package Repository</h2>
<p>Tusk is using <a href="http://github.com/">GitHub</a> as a package repository, and that is working okay for the time being. A couple weeks back, we got word that the <a href="http://groups.google.com/group/commonjs/browse_thread/thread/39dcdede35edcddd">jQuery plugin repository is going to provide a CommonJS package.json file</a> for the ~5000 plugins in their database. This is exciting, because this infrastructure could prove to be very useful to us going forward.</p>
<h2>JavaScript: Bubbling Up</h2>
<p>2009 was a terrific year for JavaScript. In the browser, we&#8217;ve obviously seen tons of growth in increasingly sophisticated applications. I think the interest is steadily building to use JavaScript more and more outside of the browser. The two JSConf conferences (in <a href="http://jsconf.us/">Washington DC</a> and <a href="http://jsconf.eu/">Berlin</a>) were great successes by all accounts I&#8217;ve seen. <a href="http://phonegap.com/">PhoneGap</a>, <a href="http://www.appcelerator.com/">Titanium</a> and Palm&#8217;s <a href="http://developer.palm.com/">WebOS</a> have created ways for people to use web tech to create installable apps for mobile phones. <a href="http://nodejs.org/">node.js</a> has been a huge driver for people to check out building scalable, asynchronous JavaScript apps on the server. And, of course, CommonJS is finding its way into more and more applications.</p>
<h2>My Personal View</h2>
<p>I had hoped to personally have more time to devote to CommonJS in 2009, but I am delighted at how a great collection of people have stepped in and carried the specifications and implementations forward through a lot of hard work and force of will. More than 5,100 messages have gone across the mailing list, and more than 10% of those have been from <a href="http://askawizard.blogspot.com/">Kris Kowal</a>. Kris has done a ton of work in ironing out many of the specs and deserves a good deal of credit for where CommonJS is today. He and <a href="http://tlrobinson.net/">Tom Robinson</a> even stood in for me when I had to cancel my trip to JSConf.eu (thanks, guys!).</p>
<p>Taking a look at the <a href="http://groups.google.com/group/commonjs/about">top posters on the googlegroup</a>, you can see how many people have put so much into CommonJS. More than 10 people have contributed more than 100 messages a piece and, for many of those people, there was a lot of time spent in the email discussions, IRC chats, spec writing and implementation of those specs. Plus, as early adopters, they have the joy of tweaking things as the specs have changed over time. Thanks to all of you for the dedication and the will to get it done.</p>
<p><a href="http://mozillalabs.com/bespin/">Bespin</a>&#8217;s client side JavaScript code is all CommonJS modules now, partly thanks to the efforts of <a href="http://www.okito.net/">Charles Jolley</a> to migrate the <a href="http://sproutcore.com/">SproutCore</a> framework to CommonJS and creating the Tiki module loader. From that standpoint, I&#8217;m already using more CommonJS now than I did in 2009. I&#8217;m also hoping that 2010 will bring a Bespin server &#8220;reboot&#8221;, where we start migrating server functionality to CommonJS.</p>
<p>On the whole, I think that 2009 was a great year for JavaScript and CommonJS and I think 2010 is going to be even bigger. I hope to meet more enthusiastic JavaScript hackers at JSConf.us in April!</p>
<h3>Comments?</h3>
<p>You can direct them to the <a href="http://groups.google.com/group/commonjs/browse_thread/thread/53c59828899ffcd9">thread on the CommonJS googlegroup</a> or email to <a href="mailto:editor@blueskyonmars.com">editor@blueskyonmars.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blueskyonmars.com/2010/01/29/commonjs-the-first-year/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is SlowNews?</title>
		<link>http://www.blueskyonmars.com/2010/01/26/what-is-slownews/</link>
		<comments>http://www.blueskyonmars.com/2010/01/26/what-is-slownews/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 14:00:00 +0000</pubDate>
		<dc:creator>Kevin Dangoor</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://www.blueskyonmars.com/2010/01/26/what-is-slownews/</guid>
		<description><![CDATA[The move toward real-time everything is wrong. We have enough  interruptions in our days without having random links and news sprayed  at us 24&#215;7. Not to mention that there&#8217;s no real thought that goes into real  time, and generally very little thought that gets compressed into 140  characters. Length also does [...]]]></description>
			<content:encoded><![CDATA[<p>The move toward real-time everything is <em>wrong</em>. We have enough  interruptions in our days without having random links and news sprayed  at us 24&#215;7. Not to mention that there&#8217;s no real thought that goes into real  time, and generally very little thought that gets compressed into 140  characters. Length also does not guarantee quality, and too  much text can be a waste of time. The trick is to be concise.</p>
<p>I&#8217;ve adopted my SlowNews newsletter-like format for sharing and commenting on what&#8217;s going on in the software world. A weekly post for software developers and technically minded product managers. This is a way to keep up with interesting things that are happening, but through the lens of a weekly view where the  uninteresting is edited away, the more interesting is promoted to the  top and a bit of commentary ties it all together.</p>
<p>SlowNews is a chance for me to gather my thoughts and to review the truly interesting things that are going on in software product creation.</p>
<p>Blue Sky On Mars SlowNews is published on <strong>Tuesday mornings at 9am Eastern time</strong>.</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=2f013a4f-0dc0-8dab-9c38-b1f3197ab62b" alt="" /></div>
]]></content:encoded>
			<wfw:commentRss>http://www.blueskyonmars.com/2010/01/26/what-is-slownews/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SlowNews: Sikuli, Letters.app, Pintura, Firefox 3.6</title>
		<link>http://www.blueskyonmars.com/2010/01/26/slownews/</link>
		<comments>http://www.blueskyonmars.com/2010/01/26/slownews/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 14:00:00 +0000</pubDate>
		<dc:creator>Kevin Dangoor</dc:creator>
				<category><![CDATA[SlowNews]]></category>

		<guid isPermaLink="false">http://www.blueskyonmars.com/?p=2657</guid>
		<description><![CDATA[SlowNews on BSOM: An Experiment
This is my first SlowNews issue. Read What is SlowNews?, if you&#8217;re curious about it.
Sikuli: Picture-Driven Scripting
The Sikuli project out of MIT has to be seen to really get a feel for it. The short of it is that it&#8217;s a scripting language for controlling applications that works by taking screenshots [...]]]></description>
			<content:encoded><![CDATA[<h2>SlowNews on BSOM: An Experiment</h2>
<p>This is my first SlowNews issue. Read <a href="http://www.blueskyonmars.com/2010/01/26/what-is-slownews/">What is SlowNews?</a>, if you&#8217;re curious about it.</p>
<h2>Sikuli: Picture-Driven Scripting</h2>
<div class="wp-caption alignright" style="width: 203px"><img title="Sikuli script screen shot" src="http://groups.csail.mit.edu/uid/sikuli/images/logo.png" alt="" width="193" height="117" /><p class="wp-caption-text">Sikuli</p></div>
<p>The <a href="http://sikuli.org/">Sikuli project</a> out of MIT has to be seen to really get a feel for it. The short of it is that it&#8217;s a scripting language for controlling applications that works by taking screenshots of the various controls that need to be clicked on or otherwise manipulated. Sikuli uses computer vision techniques to find a matching part of the screen at that point in the script. This is seriously cool.</p>
<h2>Firefox 3.6: Speed, Personas and Video Controversy</h2>
<p>Disclosure: I work for Mozilla. My opinions are my own.</p>
<p>Firefox 3.6 was released last week, representing a lot of work from a whole lot of people. <a href="http://hacks.mozilla.org/2010/01/javascript-speedups-in-firefox-3-6/">JavaScript performance</a> is faster still than the already fast 3.5 and there have been a number of other areas of the UI that tightened up, performance-wise. <a href="http://getpersonas.com/">Personas</a> made it into the main product (before they were available only as an add-on).</p>
<p>Unrelated to the 3.6 launch, there was some controversy as YouTube and Vimeo both announced support for HTML5&#8217;s video tag. Firefox supports the &lt;video&gt; tag, but not the H.264 codec used by both YouTube and Vimeo. There are some very good reasons for this, which <a href="http://shaver.off.net/diary/2010/01/23/html5-video-and-codecs/">Mozilla&#8217;s Mike Shaver went into detail on</a>. Chris Blizzard went into even more detail, and <a href="http://www.0xdeadbeef.com/weblog/2010/01/html5-video-and-h-264-what-history-tells-us-and-why-were-standing-with-the-web/">provided an interesting historical comparison with gif</a>. Those are worth reading if you produce any videos for consumption on the net, because the issue extends not just to browser manufacturers and sites like YouTube. Even people producing videos encoded with h.264 may find themselves with a bill to pay come 2011.</p>
<h2>Pintura: CommonJS/JSGI Server-Side JS Framework</h2>
<p>Kris Zyp <a href="http://www.sitepen.com/blog/2010/01/22/introducing-pintura/">introduces</a> <a href="http://github.com/kriszyp/pintura">Pintura</a>, a server-side JavaScript framework that keeps the presentation on the client side where it belongs. Kris also wrote a <a href="http://www.sitepen.com/blog/2010/01/25/getting-started-with-pintura/">Getting Started with Pintura</a> article that&#8217;s worth a read. Pintura wins bonus points for running on <a href="http://nodejs.org/">node.js</a>, <a href="http://narwhaljs.org/">Narwhal</a> and <a href="http://github.com/ashb/Zest">Flusspferd</a>. For those keeping score at home, that means that Pintura can run on SpiderMonkey, v8, Rhino and JavaScriptCore. That&#8217;s what CommonJS is all about!</p>
<h2>Amazon Kindle: There&#8217;s An Active Content For That?</h2>
<p>Amazon has announced a <a href="http://www.pcmag.com/article2/0,2817,2358262,00.asp">development kit for the Kindle</a>, coming in February. The SDK will allow developers to create &#8220;active content&#8221;. Active content will certainly be different from iPhone apps, if for no reason other than the refresh rate of the eInk screen. Still, it&#8217;s an interesting development. Amazon has never said how many Kindles they&#8217;ve sold, but you can bet it&#8217;s less than the tens of millions of iPhone OS devices out there. You can <a href="http://www.amazon.com/gp/feature.html/?ie=UTF8&amp;docId=1000476231">sign up for the beta</a> now.</p>
<h2>Letters.app: Concept-driven Open Source</h2>
<div class="wp-caption alignleft" style="width: 109px"><img title="Letters.app" src="http://github.com/ccgus/letters/raw/master/resources/images/Letters.png" alt="" width="99" height="99" /><p class="wp-caption-text">The Letters Icon</p></div>
<p>Most open source software begins its public life with code. It obviously started out as an idea and was built up following some need or desire, but by the time it&#8217;s public there&#8217;s some code. The currently-vaporous Mac mail client &#8220;Letters.app&#8221; started off with NetNewsWire developer Brent Simmons saying he wanted a better mail client. Macworld <a href="http://www.macworld.com/article/145815/2010/01/letters.html">commented</a> on the literally <em>hundreds</em> of email messages that followed. <a href="http://daringfireball.net/">John Gruber</a> was elected president for the 1.0 release, and <a href="http://shapeof.com/">Gus Mueller</a> has taken on the technical leadership. Gus has also started a <a href="http://github.com/ccgus/letters">GitHub repository for Letters.app</a>.</p>
<p>This is a really interesting way to start an open source project, and I wish them well. As has been pointed out on the mailing list, creating a better mail client has been tried before and failed. But, the leadership of the project is encouraging and this is certainly one to watch.</p>
<h2>Fusebox Gives You Safely Extendable JS &#8220;Natives&#8221;</h2>
<p>JavaScript is cool in that you can extend String or Array to add many conveniences. It&#8217;s not so cool in that others may do it for you, and in ways that are not quite what you want. If you&#8217;re willing to suffer through a bit of inconvenience (like declaring an array by calling fb.Array() rather than just []), <a href="http://github.com/jdalton/fusebox">Fusebox</a> lets you extend native objects without impacting any other JavaScript code.</p>
<h2>LuaJIT Gets Funded</h2>
<p>It&#8217;s news to me that Google uses Lua internally, but they apparently do count Lua among the languages they use. Enough so that <a href="http://google-opensource.blogspot.com/2010/01/love-for-luajit.html">Google has pitched € 8,000 into the development of LuaJIT</a>. Add to that Athena Capital Research&#8217;s € 12,000 and a couple of smaller donations, and you&#8217;ve got a successful funding drive. It&#8217;s great to see open source development <a href="http://clojure.org/funders">supported so directly</a>.</p>
<h2>Realism In UI Design</h2>
<p><a href="http://ignorethecode.net/blog/2010/01/21/realism_in_ui_design/">Realism in UI Design</a> is an excellent article for anyone who might be contemplating just using photos from iStockPhoto for their icons rather than having a custom icon set designed for their app. For everyone else, it&#8217;s a good read with some nice visual reinforcement about striking a balance in realism in your user interfaces. Also worth checking out is Mike Rundle&#8217;s article from December which provides some <a href="http://flyosity.com/tutorial/crafting-subtle-realistic-user-interfaces.php">tips for getting subtly realistic user interfaces</a>.</p>
<h2>Bill Gates Joins the Internet World</h2>
<p><img style="max-width: 800px; float: left; padding-right: 5px;" src="http://a3.twimg.com/profile_images/486782671/Picture_18_bigger.png" alt="" />BillG seems to be going all-in with <a href="http://twitter.com/billgates">a new Twitter account</a> and a bloggy sort of site (<a href="http://www.thegatesnotes.com/">The Gates Notes</a>). Whatever you may think of Microsoft and Gates&#8217; driving of Microsoft, it&#8217;s impossible to deny that he&#8217;s a big thinker and one worth following. Speaking of following, after just a day on Twitter he has nearly 250,000 followers. The welcome from Ashton Kutcher (4.4 million followers) no doubt helped, though it&#8217;s unclear to me just how much overlap there is between Ashton Kutcher fans and BillG devotees.</p>
<h2>Notable Releases</h2>
<ul>
<li><a href="http://getfirebug.com/">Firebug</a> 1.5 was released ahead of Firefox 3.6 with <a href="http://blog.getfirebug.com/2010/01/15/firebug-1-5-0/">a bunch of new features</a>. This is notable, because Firebug would always lag Firefox releases in the past.</li>
<li><a href="http://incubator.apache.org/cassandra/">Cassandra</a> 0.5 includes <a href="https://svn.apache.org/repos/asf/incubator/cassandra/tags/cassandra-0.5.0/CHANGES.txt">improvements</a> to multicore performance, the bootstrap process and adds the ability to decommission a live node.</li>
</ul>
<h2>&gt; list<br />
11 goto 11</h2>
<h3>Top 11 Most Anticipated Product Introductions This Week</h3>
<p>11. <a href="http://www.officelabs.com/Lists/Posts/Post.aspx?ID=88">Microsoft Ribbon Hero</a> for the Xbox360.</p>
<p>10. Google Sock Search</p>
<p>1. CrunchPhone</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=9f2466d4-1c18-8c4d-97c9-0646f35b9602" alt="" /></div>
]]></content:encoded>
			<wfw:commentRss>http://www.blueskyonmars.com/2010/01/26/slownews/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Watch this space.</title>
		<link>http://www.blueskyonmars.com/2010/01/24/watch-this-space/</link>
		<comments>http://www.blueskyonmars.com/2010/01/24/watch-this-space/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 02:26:30 +0000</pubDate>
		<dc:creator>Kevin Dangoor</dc:creator>
				<category><![CDATA[SlowNews]]></category>

		<guid isPermaLink="false">http://www.blueskyonmars.com/?p=2667</guid>
		<description><![CDATA[This is just a test post while I&#8217;m setting things up.
]]></description>
			<content:encoded><![CDATA[<p>This is just a test post while I&#8217;m setting things up.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blueskyonmars.com/2010/01/24/watch-this-space/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Heroku at a2div</title>
		<link>http://www.blueskyonmars.com/2009/12/15/heroku-at-a2div/</link>
		<comments>http://www.blueskyonmars.com/2009/12/15/heroku-at-a2div/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 01:53:29 +0000</pubDate>
		<dc:creator>Kevin Dangoor</dc:creator>
				<category><![CDATA[a2div]]></category>
		<category><![CDATA[heroku]]></category>
		<category><![CDATA[nodejs]]></category>

		<guid isPermaLink="false">http://www.blueskyonmars.com/?p=2653</guid>
		<description><![CDATA[Last night was the third a2div meeting. Majd Taby spoke about SproutCore at the inaugural meeting in September, and I spoke about CommonJS in October. November&#8217;s meeting, which was to be about Google&#8217;s Closure library, was canceled because of a confluence of factors&#8230; Three JS talks in a row led Trek Glowacki to declare that
so [...]]]></description>
			<content:encoded><![CDATA[<p>Last night was the third <a href="http://a2div.com">a2div</a> meeting. <a href="http://twitter.com/Jtaby">Majd Taby</a> spoke about <a href="http://sproutcore.com/">SproutCore</a> at the inaugural meeting in September, and I spoke about <a href="http://commonjs.org/">CommonJS</a> in October. November&#8217;s meeting, which was to be about <a href="http://code.google.com/closure/">Google&#8217;s Closure</a> library, was canceled because of a confluence of factors&#8230; Three JS talks in a row led <a href="http://twitter.com/trek">Trek Glowacki</a> <a href="http://twitter.com/trek/status/5621014562">to declare that</a></p>
<blockquote><p>so far a2 &lt;div&gt; has turned out to be &#8220;A2 Javascript Lovefest&#8221;</p></blockquote>
<p>While I certainly like JavaScript, that wasn&#8217;t intentional. We have to run with what people want to hear and are willing to talk about. Luckily for us, Trek himself was prepared to do something about it and gave a great talk last night about <a href="http://heroku.com">Heroku</a>.</p>
<p>Trek had a demo ready to go, involving getting the <a href="http://github.com/Sutto/rubyflow">open source code</a> for <a href="http://rubyflow.com">RubyFlow</a> running and customized. He had a neat way of doing the demo without resorting to live coding: he had the demo code in a git repository with separate branches for each step of the demo. It worked quite well and Heroku looks awesome. <a href="http://vimeo.com/8202824">Video of the demo</a> is available online.</p>
<p>In the loosely structured part of the meeting that followed, we had bits of discussion about a few different things, including a quick demo of <a href="http://nodejs.org">Node.js</a> by Majd. We also talked about what topics we&#8217;d like to hear more about in future meetings. Here&#8217;s the list that came up:</p>
<ul>
<li>Comparison of NoSQL engines</li>
<li>Node.js or other Comet serving technologies</li>
<li>The Microsoft stack for web development (<a href="http://www.cptloadtest.com/">Jay Harris</a> offered to talk on this topic)</li>
<li>Something involving designers + programmers (maybe even a &#8220;basic principles of design&#8221; intro to help us avoid creating designs with misaligned bits and eye bleed inducing colors)</li>
</ul>
<p>The January meeting will be at its usual time and place (January 28th, 7PM, <a href="http://srtsolutions.com/">SRT Solutions</a>). Topic to be decided.</p>
<p>Thanks to Trek for a great meeting at the spiffy <a href="http://www.workantileexchange.com/">Workantile Exchange</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blueskyonmars.com/2009/12/15/heroku-at-a2div/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.826 seconds -->
<!-- Cached page served by WP-Cache -->
