The Tao of Mac http://the.taoofmac.com Tech Made Simple CC Attribution-NonCommercial-NoDerivs 3.0 30 Thu, 18 Dec 2014 03:50:08 GMT Thu, 18 Dec 2014 03:50:08 GMT http://blogs.law.harvard.edu/tech/rss yaki Farewell, Dr. Dobb's http://the.taoofmac.com/space/links/2014/12/16/2039 <div class="quicklook_holder drop-shadow lifted"><a title="" href="http://the.taoofmac.com/media/links/2014/12/16/2039/large.jpg" class="quicklook"><img alt="Click on the image to zoom in" src="http://the.taoofmac.com/pagethumb/links/2014/12/16/2039/large.jpg" class="thumb" /></a></div> <p>I still have a handful of old issues I refuse to part with, simply because the stuff on them is <em>so good</em>. And timeless, to boot. Very sad to see it end.</p><br/><small><a href="http://the.taoofmac.com/space/links/2014/12/16/2039#farewell--dr--dobb-s" title="link to http://the.taoofmac.com/space/links/2014/12/16/2039#farewell--dr--dobb-s">&#x262F;</a></small> Tue, 16 Dec 2014 20:39:40 GMT Rui Carmo The Tao of Mac http://the.taoofmac.com/space/links/2014/12/16/2039#farewell--dr--dobb-s wiki How BlackBerry blew it: The inside story http://the.taoofmac.com/space/links/2014/12/16/1815 <div class="quicklook_holder drop-shadow lifted"><a title="" href="http://the.taoofmac.com/media/links/2014/12/16/1815/large.jpg" class="quicklook"><img alt="Click on the image to zoom in" src="http://the.taoofmac.com/pagethumb/links/2014/12/16/1815/large.jpg" class="thumb" /></a></div> <p>There’s so much more one could write about <span class="caps">RIM</span>, and yet this seems quite enough.</p><br/><small><a href="http://the.taoofmac.com/space/links/2014/12/16/1815#how-blackberry-blew-it--the-inside-story" title="link to http://the.taoofmac.com/space/links/2014/12/16/1815#how-blackberry-blew-it--the-inside-story">&#x262F;</a></small> Tue, 16 Dec 2014 18:15:25 GMT Rui Carmo The Tao of Mac http://the.taoofmac.com/space/links/2014/12/16/1815#how-blackberry-blew-it--the-inside-story wiki Nobody expects! http://the.taoofmac.com/space/links/2014/12/16/1122 <div class="quicklook_holder drop-shadow lifted"><a title="" href="http://the.taoofmac.com/media/links/2014/12/16/1122/large.jpg" class="quicklook"><img alt="Click on the image to zoom in" src="http://the.taoofmac.com/pagethumb/links/2014/12/16/1122/large.jpg" class="thumb" /></a></div> <p>Apropos the Google News fracas in Spain, my colleague <a href="http://www.macacos.com" title="external link to http://www.macacos.com" class="http" rel="http://www.macacos.com">Pedro</a> whipped up this utterly brilliant cartoon.</p><br/><small><a href="http://the.taoofmac.com/space/links/2014/12/16/1122#nobody-expects-" title="link to http://the.taoofmac.com/space/links/2014/12/16/1122#nobody-expects-">&#x262F;</a></small> Tue, 16 Dec 2014 11:22:52 GMT Rui Carmo The Tao of Mac http://the.taoofmac.com/space/links/2014/12/16/1122#nobody-expects- wiki A funny thing happened... http://the.taoofmac.com/space/blog/2014/12/14/2015 <p>Not having a dog, I’m deprived of the excuse of saying it ate my homework.</p> <p>In truth, last-minute affairs tangentially related to the holiday season have taken up most of my free time, so this week’s draft never made it through.</p> <p>Instead, I spent a fair amount of time fiddling with my (since repaired) 3D printer, churning out a variety of holiday decorations (some of which I’ve posted on <a href="https://www.flickr.com/photos/ruicarmo/" title="secure link to https://www.flickr.com/photos/ruicarmo/" class="https" rel="https://www.flickr.com/photos/ruicarmo/">Flickr</a>) and little plastic containers for electronics that so dismally lacking in aesthetics only I could possibly love them.</p> <p>But I also had a couple of nice surprises in the mail this week from Sami Lempinen and Alexis Iglauer, who <a href="http://the.taoofmac.com/space/site/Donate" class="wiki" title="site/Donate was updated 3 years, 5 months ago">donated</a> gadgetry and funds — and whom I’d like to thank for their support, given that this site is mostly driven by random bouts of inspiration, occasional insomnia and a large dollop of stubbornness, but never for profit.</p> <p>So my sincere thanks to both — it’s always nice to know what I write is useful, entertaining or (at the very least) thought provoking, and I’ll make good use of your gifts.</p><br/><small><a href="http://the.taoofmac.com/space/blog/2014/12/14/2015#a-funny-thing-happened---" title="link to http://the.taoofmac.com/space/blog/2014/12/14/2015#a-funny-thing-happened---">&#x262F;</a></small><p> <div style="-webkit-border-radius: 8px; font-size: small; background-color: #ccc; color: #000; border: 1px solid #aaa; margin: 0; padding: 3px; overflow: hidden;"><p style="padding; 2px; margin: 2px;"><a title="" href="http://the.taoofmac.com/"><img align="left" alt="Tao of Mac Icon" src="http://the.taoofmac.com/img/pavatar48.png"/></a> "<a href="http://the.taoofmac.com/space/blog/2014/12/14/2015#a-funny-thing-happened---"><strong>A funny thing happened...</strong></a>" was written by <a href="http://the.taoofmac.com/RuiCarmo">Rui Carmo</a> for <a href="http://the.taoofmac.com">The Tao of Mac</a> and was originally posted on Sunday, Dec 14<sup>th</sup> 2014. Except as noted, it's &copy;2014 Rui Carmo and licensed for reuse under <a href="http://creativecommons.org/licenses/by-nc-nd/3.0/">CC BY-NC-ND 3.0</a>.</p> <p>As usual, please consider <a href="http://the.taoofmac.com/space/site/Donate">donating</a> towards hosting and bandwidth costs.</p> </div> </p> Sun, 14 Dec 2014 20:15:00 GMT Rui Carmo The Tao of Mac http://the.taoofmac.com/space/blog/2014/12/14/2015#a-funny-thing-happened--- wiki C# http://the.taoofmac.com/space/dev/Csharp <div style="-webkit-border-radius: 8px; background-color: #ccf; color: #000; border: 1px solid #aaf; margin: 0; padding: 3px; overflow: hidden;"><i>This is an update to an item originally published on Friday, Aug 13<sup>th</sup> 2004.</i></div><br clear="all"/><p>Pronounced “C Sharp”, and used as the main idiom in <a href="http://the.taoofmac.com/space/dev/Mono" class="wiki" title="dev/Mono was updated 9 years, 8 months ago">Mono</a> and <a href="http://the.taoofmac.com/space/dev/dotNET" class="wiki" title="dev/dotNET was updated 6 years, 8 months ago">.NET</a>, it is a <a href="http://the.taoofmac.com/space/dev/Java" class="wiki" title="dev/Java was updated 1 year, 5 months ago">Java</a>-like language that got generics, lambdas and other aspects right the first time around.</p> <h2 id="resources">Resources:</h2> <ul> <li><a href="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf" title="external link to http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf" class="http" rel="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf">ECMA-334</a> - C# Language Specification</li> <li><a href="http://www.codeproject.com/Articles/375166/Functional-programming-in-Csharp" title="external link to http://www.codeproject.com/Articles/375166/Functional-programming-in-Csharp" class="http" rel="http://www.codeproject.com/Articles/375166/Functional-programming-in-Csharp">Functional Programming in C#</a></li> <li><a href="http://www.codeproject.com/script/Articles/ArticleVersion.aspx?aid=397627&amp;av=575743" title="external link to http://www.codeproject.com/script/Articles/ArticleVersion.aspx?aid=397627&amp;av=575743" class="http" rel="http://www.codeproject.com/script/Articles/ArticleVersion.aspx?aid=397627&amp;av=575743">Data-Driven Programming Combined with Functional Programming in C#</a></li> <li><a href="http://hangfire.io" title="external link to http://hangfire.io" class="http" rel="http://hangfire.io">HangFire</a>, a task queue for ASP.NET</li> <li><a href="https://code.google.com/p/dapper-dot-net/" title="secure link to https://code.google.com/p/dapper-dot-net/" class="https" rel="https://code.google.com/p/dapper-dot-net/">Dapper</a>, a micro-ORM</li> <li><a href="https://github.com/zeromq/netmq" title="secure link to https://github.com/zeromq/netmq" class="https" rel="https://github.com/zeromq/netmq">NetMQ</a>, a port of ZermoMQ to .NET </li> </ul><br/><small><a href="http://the.taoofmac.com/space/dev/Csharp" title="link to http://the.taoofmac.com/space/dev/Csharp">&#x262F;</a></small><p> <div style="-webkit-border-radius: 8px; font-size: small; background-color: #ccc; color: #000; border: 1px solid #aaa; margin: 0; padding: 3px; overflow: hidden;"><p style="padding; 2px; margin: 2px;"><a title="" href="http://the.taoofmac.com/"><img align="left" alt="Tao of Mac Icon" src="http://the.taoofmac.com/img/pavatar48.png"/></a> "<a href="http://the.taoofmac.com/space/dev/Csharp"><strong>C#</strong></a>" was written by <a href="http://the.taoofmac.com/RuiCarmo">Rui Carmo</a> for <a href="http://the.taoofmac.com">The Tao of Mac</a> and was originally posted on Friday, Aug 13<sup>th</sup> 2004. Except as noted, it's &copy;2014 Rui Carmo and licensed for reuse under <a href="http://creativecommons.org/licenses/by-nc-nd/3.0/">CC BY-NC-ND 3.0</a>.</p> <p>As usual, please consider <a href="http://the.taoofmac.com/space/site/Donate">donating</a> towards hosting and bandwidth costs.</p> </div> </p> Sat, 13 Dec 2014 10:10:00 GMT Rui Carmo The Tao of Mac http://the.taoofmac.com/space/dev/Csharp wiki Clojure(Script) http://the.taoofmac.com/space/dev/Clojure <div style="-webkit-border-radius: 8px; background-color: #ccf; color: #000; border: 1px solid #aaf; margin: 0; padding: 3px; overflow: hidden;"><i>This is an update to an item originally published on Tuesday, Aug 20<sup>th</sup> 2013.</i></div><br clear="all"/><p>Clojure is a <a href="http://the.taoofmac.com/space/dev/LISP" class="wiki" title="dev/LISP was updated 3 months, 6 days ago"><span class="caps">LISP</span></a> dialect that targets the <a href="http://the.taoofmac.com/space/dev/Java" class="wiki" title="dev/Java was updated 1 year, 5 months ago">Java</a> VM – but that also happens to have a number of other back-ends, including a <a href="http://the.taoofmac.com/space/dev/Python" class="wiki" title="dev/Python was updated 1 week, 5 days ago">Python</a> one.</p> <p>This page will list resources for it and ClojureScript, its “scripting” cousin.</p> <table class="compact" style="background:transparent; margin: 0px; padding: 0px; border-collapse: collapse;"> <thead> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <th style="border-bottom: 1px solid black; border-top: 2px solid black; padding: 4px; font-weight: bold;">Category</th> <th style="border-bottom: 1px solid black; border-top: 2px solid black; padding: 4px; font-weight: bold;">Date</th> <th style="border-bottom: 1px solid black; border-top: 2px solid black; padding: 4px; font-weight: bold;">Link</th> <th style="border-bottom: 1px solid black; border-top: 2px solid black; padding: 4px; font-weight: bold;">Notes</th> </tr> </thead> <tbody> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="4" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Web UI</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Dec’14</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://holmsand.github.io/reagent/" title="external link to http://holmsand.github.io/reagent/" class="http" rel="http://holmsand.github.io/reagent/">Reagent</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A <a href="http://facebook.github.io/react/" title="external link to http://facebook.github.io/react/" class="http" rel="http://facebook.github.io/react/">React</a> wrapper that is less trendy (but arguably more pragmatic) than <a href="https://github.com/swannodette/om" title="secure link to https://github.com/swannodette/om" class="https" rel="https://github.com/swannodette/om">Om</a></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="2" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Jan’13</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/holmsand/cloact" title="secure link to https://github.com/holmsand/cloact" class="https" rel="https://github.com/holmsand/cloact">Cloact</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">a simple ClojureScript interface to React</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://fluentsoftware.github.io/cljs-binding/" title="external link to http://fluentsoftware.github.io/cljs-binding/" class="http" rel="http://fluentsoftware.github.io/cljs-binding/">cljs-binding</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">a native data binding library</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Nov 5</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/pangloss/clang" title="secure link to https://github.com/pangloss/clang" class="https" rel="https://github.com/pangloss/clang">clang</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Bindings to AngularJS</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="2" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Resources</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Jul’14</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://grimoire.arrdem.com/" title="external link to http://grimoire.arrdem.com/" class="http" rel="http://grimoire.arrdem.com/">Grimoire</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A handy reference</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Aug’13</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.clojure-toolbox.com" title="external link to http://www.clojure-toolbox.com" class="http" rel="http://www.clojure-toolbox.com">Clojure Toolbox</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A compilation of useful libraries</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Graphics</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Jan 4</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/karls/collage" title="secure link to https://github.com/karls/collage" class="https" rel="https://github.com/karls/collage">collage</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A high-level image processing library</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="2" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Infoviz</td> <td rowspan="2" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Oct 20</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/dribnet/strokes" title="secure link to https://github.com/dribnet/strokes" class="https" rel="https://github.com/dribnet/strokes">strokes</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">An interop library for using D3, with <a href="http://s.trokes.org/dribnet" title="external link to http://s.trokes.org/dribnet" class="http" rel="http://s.trokes.org/dribnet">samples</a></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/lynaghk/c2" title="secure link to https://github.com/lynaghk/c2" class="https" rel="https://github.com/lynaghk/c2">C2</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A D3-like visualization library with a standalone bundle</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="6" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Tools</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Sep 5</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://leiningen.org/grench.html" title="external link to http://leiningen.org/grench.html" class="http" rel="http://leiningen.org/grench.html">Grenchman</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A simple, straightforward nREPL client</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Oct 27</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/zcaudate/lein-midje-doc" title="secure link to https://github.com/zcaudate/lein-midje-doc" class="https" rel="https://github.com/zcaudate/lein-midje-doc">lein-midje-doc</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A clever way to generate documentation from tests</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Oct 23</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/weavejester/codox" title="secure link to https://github.com/weavejester/codox" class="https" rel="https://github.com/weavejester/codox">Codox</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A documentation generator that relies on function metadata</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Oct 20</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/oakes/lein-fruit" title="secure link to https://github.com/oakes/lein-fruit" class="https" rel="https://github.com/oakes/lein-fruit">lein-fruit</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A Leiningen plugin to develop iOS apps (using <a href="http://www.robovm.org/" title="external link to http://www.robovm.org/" class="http" rel="http://www.robovm.org/">RoboVM</a>)</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Sep 27</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://nightcode.info/" title="secure link to https://nightcode.info/" class="https" rel="https://nightcode.info/">Nightcode</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">An integrated <span class="caps">IDE</span></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Aug 20</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/cemerick/austin" title="secure link to https://github.com/cemerick/austin" class="https" rel="https://github.com/cemerick/austin">Austin</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A ClojureScript <span class="caps">REPL</span></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Job Management</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Sep 16</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/jxa/resque-clojure" title="secure link to https://github.com/jxa/resque-clojure" class="https" rel="https://github.com/jxa/resque-clojure">resque-clojure</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A Resque clone.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="4" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Parsers</td> <td rowspan="2" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Oct 20</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/Engelberg/instaparse" title="secure link to https://github.com/Engelberg/instaparse" class="https" rel="https://github.com/Engelberg/instaparse">Instaparse</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A generic parser library</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/cgrand/parsley" title="secure link to https://github.com/cgrand/parsley" class="https" rel="https://github.com/cgrand/parsley">Parsley</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">a <span class="caps">DSL</span> for creating total and truly incremental parsers in Clojure</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Sep 9</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/ztellman/gloss" title="secure link to https://github.com/ztellman/gloss" class="https" rel="https://github.com/ztellman/gloss">gloss</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A byte-format <span class="caps">DSL</span> especially suited to handling raw binary protocols</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Sep 16</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/yogthos/markdown-clj" title="secure link to https://github.com/yogthos/markdown-clj" class="https" rel="https://github.com/yogthos/markdown-clj">markdown-clj</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A limited <a href="http://the.taoofmac.com/space/markup/Markdown" class="wiki" title="markup/Markdown was updated 2 years, 2 weeks ago">Markdown</a> parser</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="6" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Networking</td> <td rowspan="2" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Sep 29</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/amitrathore/swarmiji" title="secure link to https://github.com/amitrathore/swarmiji" class="https" rel="https://github.com/amitrathore/swarmiji">swarmiji</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A simple distributed computing framework using RabbitMQ</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://avout.io" title="external link to http://avout.io" class="http" rel="http://avout.io">Avout</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Distributed state in Clojure, via ZooKeeper</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="2" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Sep 17</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/flatland/clojure-protobuf" title="secure link to https://github.com/flatland/clojure-protobuf" class="https" rel="https://github.com/flatland/clojure-protobuf">clojure-protobuf</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Protocol buffers support</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://riemann.io" title="external link to http://riemann.io" class="http" rel="http://riemann.io">Riemann</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">An event stream processor</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="2" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Aug 20</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://http-kit.org" title="external link to http://http-kit.org" class="http" rel="http://http-kit.org">http-kit</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">High-performance event-driven <span class="caps" title="HyperText Transfer Protocol">HTTP</span> client/server for Clojure (see <a href="https://github.com/ptaoussanis/clojure-web-server-benchmarks" title="secure link to https://github.com/ptaoussanis/clojure-web-server-benchmarks" class="https" rel="https://github.com/ptaoussanis/clojure-web-server-benchmarks">benchmarks</a> and <a href="https://github.com/http-kit/lein-template" title="secure link to https://github.com/http-kit/lein-template" class="https" rel="https://github.com/http-kit/lein-template">this leiningen template</a>)</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/isaiah/vertx-clj" title="secure link to https://github.com/isaiah/vertx-clj" class="https" rel="https://github.com/isaiah/vertx-clj">vertx-clj</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://vertx.io" title="external link to http://vertx.io" class="http" rel="http://vertx.io">vert.x</a> adapter</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="5" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Back-ends</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Sep 27</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/greghendershott/rackjure" title="secure link to https://github.com/greghendershott/rackjure" class="https" rel="https://github.com/greghendershott/rackjure">rackjure</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A set of Clojure semantics ported to Racket</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="4" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Aug 20</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/raph-amiard/clojurescript-lua" title="secure link to https://github.com/raph-amiard/clojurescript-lua" class="https" rel="https://github.com/raph-amiard/clojurescript-lua">clojurescript-lua</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A <a href="http://the.taoofmac.com/space/dev/Lua" class="wiki" title="dev/Lua was updated 2 months, 1 week ago">Lua</a> back-end</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/halgari/clojure-py" title="secure link to https://github.com/halgari/clojure-py" class="https" rel="https://github.com/halgari/clojure-py">clojure-py</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A <a href="http://the.taoofmac.com/space/dev/Python" class="wiki" title="dev/Python was updated 1 week, 5 days ago">Python</a> implementation that compiles down to bytecode (project is stalled, but may be useful as reference)</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/schani/clojurec" title="secure link to https://github.com/schani/clojurec" class="https" rel="https://github.com/schani/clojurec">clojurec</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">This one targets both <a href="http://the.taoofmac.com/space/dev/C" class="wiki" title="dev/C was updated 1 year, 4 months ago">C</a> and Objective-C</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="h://github.com/joshaber/clojurem" title="link to h://github.com/joshaber/clojurem on another Wiki" class="interwiki" rel="h://github.com/joshaber/clojurem">ClojureM</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Another Objective-C compiler</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="7" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Web Frameworks</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Dec 13</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://let-caribou.in" title="external link to http://let-caribou.in" class="http" rel="http://let-caribou.in">Caribou</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Pretty decent back-office.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Sep 29</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://pedestal.io" title="external link to http://pedestal.io" class="http" rel="http://pedestal.io">Pedestal</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A more complete framework</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="5" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Aug 20</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.luminusweb.net" title="external link to http://www.luminusweb.net" class="http" rel="http://www.luminusweb.net">Luminus</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Another similar framework.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.webnoir.org" title="external link to http://www.webnoir.org" class="http" rel="http://www.webnoir.org">Noir</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Nice (but, alas, deprecated) framework atop Ring and Compojure</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/weavejester/compojure" title="secure link to https://github.com/weavejester/compojure" class="https" rel="https://github.com/weavejester/compojure">Compojure</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><span class="caps" title="HyperText Transfer Protocol">HTTP</span> routing middleware</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/ring-clojure/ring" title="secure link to https://github.com/ring-clojure/ring" class="https" rel="https://github.com/ring-clojure/ring">Ring</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><span class="caps" title="HyperText Transfer Protocol">HTTP</span> abstractions</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://immutant.org" title="external link to http://immutant.org" class="http" rel="http://immutant.org">Immutant</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A full-blown application server</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Mobile</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Aug 20</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/clojure-android/clojure" title="secure link to https://github.com/clojure-android/clojure" class="https" rel="https://github.com/clojure-android/clojure">clojure-android</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Debugging</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Aug 20</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/dgrnbrg/spyscope" title="secure link to https://github.com/dgrnbrg/spyscope" class="https" rel="https://github.com/dgrnbrg/spyscope">spyscope</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">trace-oriented debugging tools</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Databases</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Aug 20</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/jkk/honeysql" title="secure link to https://github.com/jkk/honeysql" class="https" rel="https://github.com/jkk/honeysql">honeysql</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A <span class="caps">SQL</span> statement generator</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="2" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Text Processing</td> <td rowspan="2" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Aug 20</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/weavejester/clucy" title="secure link to https://github.com/weavejester/clucy" class="https" rel="https://github.com/weavejester/clucy">clucy</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Lucene bindings</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/jackschultz/classify" title="secure link to https://github.com/jackschultz/classify" class="https" rel="https://github.com/jackschultz/classify">classify</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A small text classifier using OpenNLP</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="4" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Big Data</td> <td rowspan="2" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Jan 4’14</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/damballa/parkour" title="secure link to https://github.com/damballa/parkour" class="https" rel="https://github.com/damballa/parkour">Parkour</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Clojure integration layer written directly against Hadoop</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/Netflix/PigPen" title="secure link to https://github.com/Netflix/PigPen" class="https" rel="https://github.com/Netflix/PigPen">PigPen</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A <span class="caps">DSL</span> that compiles down to Apache Pig</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Sep 27</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://incanter.org/" title="external link to http://incanter.org/" class="http" rel="http://incanter.org/">Incanter</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A set of statistical and graphical tools</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Aug 20</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://cascalog.org" title="external link to http://cascalog.org" class="http" rel="http://cascalog.org">Cascalog</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A querying library for <a href="http://the.taoofmac.com/space/dev/Hadoop" class="wiki" title="dev/Hadoop was updated 3 years, 11 months ago">Hadoop</a> inspired by Datalog</td> </tr> </tbody> </table><br/><small><a href="http://the.taoofmac.com/space/dev/Clojure" title="link to http://the.taoofmac.com/space/dev/Clojure">&#x262F;</a></small><p> <div style="-webkit-border-radius: 8px; font-size: small; background-color: #ccc; color: #000; border: 1px solid #aaa; margin: 0; padding: 3px; overflow: hidden;"><p style="padding; 2px; margin: 2px;"><a title="" href="http://the.taoofmac.com/"><img align="left" alt="Tao of Mac Icon" src="http://the.taoofmac.com/img/pavatar48.png"/></a> "<a href="http://the.taoofmac.com/space/dev/Clojure"><strong>Clojure(Script)</strong></a>" was written by <a href="http://the.taoofmac.com/RuiCarmo">Rui Carmo</a> for <a href="http://the.taoofmac.com">The Tao of Mac</a> and was originally posted on Tuesday, Aug 20<sup>th</sup> 2013. Except as noted, it's &copy;2014 Rui Carmo and licensed for reuse under <a href="http://creativecommons.org/licenses/by-nc-nd/3.0/">CC BY-NC-ND 3.0</a>.</p> <p>As usual, please consider <a href="http://the.taoofmac.com/space/site/Donate">donating</a> towards hosting and bandwidth costs.</p> </div> </p> Sat, 13 Dec 2014 09:41:00 GMT Rui Carmo The Tao of Mac http://the.taoofmac.com/space/dev/Clojure wiki git http://the.taoofmac.com/space/cli/git <div style="-webkit-border-radius: 8px; background-color: #ccf; color: #000; border: 1px solid #aaf; margin: 0; padding: 3px; overflow: hidden;"><i>This is an update to an item originally published on Wednesday, Aug 18<sup>th</sup> 2010.</i></div><br clear="all"/><p>The <span class="caps">SCM</span> du jour, which replaced <a href="http://the.taoofmac.com/space/dev/Mercurial" class="wiki" title="dev/Mercurial was updated 5 years, 5 months ago">Mercurial</a> for me, and with a number of followers largely due to the massive amount of projects managed with it (and <a href="http://github.com" title="external link to http://github.com" class="http" rel="http://github.com">github’s</a> rise in popularity).</p> <h3>Snippets</h3> <h4>Dealing with line endings</h4> <p>Use <code>git config—global core.autocrlf input</code> to have <code>git</code> convert files to LF ending when committing (essential if you want to <code>diff</code> whole trees)</p> <h3>Tools:</h3> <table class="compact" style="background:transparent; margin: 0px; padding: 0px; border-collapse: collapse;"> <thead> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <th style="border-bottom: 1px solid black; border-top: 2px solid black; padding: 4px; font-weight: bold;">Date</th> <th style="border-bottom: 1px solid black; border-top: 2px solid black; padding: 4px; font-weight: bold;">Platform</th> <th style="border-bottom: 1px solid black; border-top: 2px solid black; padding: 4px; font-weight: bold;">Link</th> <th style="border-bottom: 1px solid black; border-top: 2px solid black; padding: 4px; font-weight: bold;">Rating</th> <th style="border-bottom: 1px solid black; border-top: 2px solid black; padding: 4px; font-weight: bold;">Notes</th> </tr> </thead> <tbody> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Dec’14</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">N/A/</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/PressLabs/gitfs" title="secure link to https://github.com/PressLabs/gitfs" class="https" rel="https://github.com/PressLabs/gitfs">Gitfs</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">-</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A <span class="caps">FUSE</span> filesystem that keeps track of changes</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">May’14</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">N/A</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://gitlist.org" title="external link to http://gitlist.org" class="http" rel="http://gitlist.org">Gitlist</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">-</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A <a href="http://gitlist.org" title="external link to http://gitlist.org" class="http" rel="http://gitlist.org"><span class="caps">PHP</span></a> front-end</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="2" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Apr’14</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">N/A</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://gitblit.org" title="external link to http://gitblit.org" class="http" rel="http://gitblit.org">Gitblit</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Interesting</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A <a href="http://the.taoofmac.com/space/dev/Java" class="wiki" title="dev/Java was updated 1 year, 5 months ago">Java</a> based solution.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">N/A</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/gogits/gogs" title="secure link to https://github.com/gogits/gogs" class="https" rel="https://github.com/gogits/gogs">Gogs</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Interesting</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A self-hosting <a href="http://the.taoofmac.com/space/dev/Golang" class="wiki" title="dev/Golang was updated 3 months, 1 week ago">Go</a> solution, pretty neat.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Aug’13</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">N/A</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/FriendCode/gittle" title="secure link to https://github.com/FriendCode/gittle" class="https" rel="https://github.com/FriendCode/gittle">gittle</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Great</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A high-level <a href="http://the.taoofmac.com/space/dev/Python" class="wiki" title="dev/Python was updated 1 week, 3 days ago">Python</a> implementation based on Dulwich</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Jun’13</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">N/A</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/jonashaag/klaus" title="secure link to https://github.com/jonashaag/klaus" class="https" rel="https://github.com/jonashaag/klaus">klaus</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Great</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A Python-based repository browser</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Jan’13</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">N/A</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://libgit2.github.com" title="external link to http://libgit2.github.com" class="http" rel="http://libgit2.github.com">libgit2</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Promising</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A linkable library for git</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Jan’12</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">N/A</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/visionmedia/git-extras" title="secure link to https://github.com/visionmedia/git-extras" class="https" rel="https://github.com/visionmedia/git-extras">git-extras</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Interesting</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A set of extensions for team work.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Apr’11</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://the.taoofmac.com/space/com/Apple/Mac" class="wiki" title="com/Apple/Mac was updated 8 years, 6 months ago">Mac</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://gitx.laullon.com/" title="external link to http://gitx.laullon.com/" class="http" rel="http://gitx.laullon.com/">GitX</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Interesting, haven’t tried it yet</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Another fork with even more features</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Feb’11</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://the.taoofmac.com/space/com/Apple/Mac" class="wiki" title="com/Apple/Mac was updated 8 years, 6 months ago">Mac</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/brotherbard/gitx" title="secure link to https://github.com/brotherbard/gitx" class="https" rel="https://github.com/brotherbard/gitx">gitx</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Damn good</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A fork of the traditional GitX with a number of new features</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="8" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Sep ‘10</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Multiple</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://samba.org/~jelmer/dulwich/" title="external link to http://samba.org/~jelmer/dulwich/" class="http" rel="http://samba.org/~jelmer/dulwich/">Dulwich</a></td> <td rowspan="8" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><span class="caps">TBD</span></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">a pure <a href="http://the.taoofmac.com/space/dev/Python" class="wiki" title="dev/Python was updated 1 week, 3 days ago">Python</a> implementation</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="6" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://the.taoofmac.com/space/com/Apple/Mac" class="wiki" title="com/Apple/Mac was updated 8 years, 6 months ago">Mac</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://gitboxapp.com/" title="external link to http://gitboxapp.com/" class="http" rel="http://gitboxapp.com/">Gitbox</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Free for up to three repos.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://github.com/Caged/gitnub" title="external link to http://github.com/Caged/gitnub" class="http" rel="http://github.com/Caged/gitnub">gitnub</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://the.taoofmac.com/space/dev/Ruby" class="wiki" title="dev/Ruby was updated 5 months, 3 weeks ago">RubyCocoa</a>, plays nice with github, requires some tweaking.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://macendeavor.com/" title="external link to http://macendeavor.com/" class="http" rel="http://macendeavor.com/">Gity</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Simple and straightforward <a href="http://en.wikipedia.org/wiki/User_interface" title="link to User_interface on en.wikipedia.org" class="interwiki" rel="Wikipedia:User_interface">UI</a>.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.gittiapp.com/" title="external link to http://www.gittiapp.com/" class="http" rel="http://www.gittiapp.com/">Gitti</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">In beta. Seems to have a decent revision graph.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://gitx.frim.nl/" title="external link to http://gitx.frim.nl/" class="http" rel="http://gitx.frim.nl/">GitX</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">The classic.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://gitmacapp.com/" title="external link to http://gitmacapp.com/" class="http" rel="http://gitmacapp.com/">GitMac</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Also in beta. No remarkable features.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Multiple</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.sparkleshare.org/" title="external link to http://www.sparkleshare.org/" class="http" rel="http://www.sparkleshare.org/">SparkleShare</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Wants to be <a href="http://the.taoofmac.com/space/apps/Dropbox" class="wiki" title="apps/Dropbox was updated 1 year, 10 months ago">Dropbox</a> as well. Might be the best thing ever for non-tech users if it ever gets out a <a href="http://the.taoofmac.com/space/com/Microsoft/Windows" class="wiki" title="com/Microsoft/Windows was updated 8 years, 11 months ago">Windows</a> or <a href="http://the.taoofmac.com/space/com/Apple/Mac" class="wiki" title="com/Apple/Mac was updated 8 years, 6 months ago">Mac</a> version.</td> </tr> </tbody> </table> <h3>Training:</h3> <table class="compact" style="background:transparent; margin: 0px; padding: 0px; border-collapse: collapse;"> <thead> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <th style="border-bottom: 1px solid black; border-top: 2px solid black; padding: 4px; font-weight: bold;">Date</th> <th style="border-bottom: 1px solid black; border-top: 2px solid black; padding: 4px; font-weight: bold;">Link</th> <th style="border-bottom: 1px solid black; border-top: 2px solid black; padding: 4px; font-weight: bold;">Notes</th> </tr> </thead> <tbody> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Apr ‘12</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://nvie.com/posts/a-successful-git-branching-model/" title="external link to http://nvie.com/posts/a-successful-git-branching-model/" class="http" rel="http://nvie.com/posts/a-successful-git-branching-model/">A successful Git branching model</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><em>Very</em> good approach, made easier with <a href="https://github.com/nvie/gitflow" title="secure link to https://github.com/nvie/gitflow" class="https" rel="https://github.com/nvie/gitflow">gitflow</a>. <div class="quicklook_holder drop-shadow lifted"><a href="http://the.taoofmac.com/media/cli/git/model.jpg" class="quicklook"><img id="thumb417" alt="/media/cli/git/model.jpg" src="http://the.taoofmac.com/thumbnail/cli/git/model.jpg" class="thumb" /></a></div></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Aug ‘10</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.spheredev.org/wiki/Git_for_the_lazy" title="external link to http://www.spheredev.org/wiki/Git_for_the_lazy" class="http" rel="http://www.spheredev.org/wiki/Git_for_the_lazy">Git for the lazy</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A moderately broad introduction.</td> </tr> </tbody> </table><br/><small><a href="http://the.taoofmac.com/space/cli/git" title="link to http://the.taoofmac.com/space/cli/git">&#x262F;</a></small><p> <div style="-webkit-border-radius: 8px; font-size: small; background-color: #ccc; color: #000; border: 1px solid #aaa; margin: 0; padding: 3px; overflow: hidden;"><p style="padding; 2px; margin: 2px;"><a title="" href="http://the.taoofmac.com/"><img align="left" alt="Tao of Mac Icon" src="http://the.taoofmac.com/img/pavatar48.png"/></a> "<a href="http://the.taoofmac.com/space/cli/git"><strong>git</strong></a>" was written by <a href="http://the.taoofmac.com/RuiCarmo">Rui Carmo</a> for <a href="http://the.taoofmac.com">The Tao of Mac</a> and was originally posted on Wednesday, Aug 18<sup>th</sup> 2010. Except as noted, it's &copy;2014 Rui Carmo and licensed for reuse under <a href="http://creativecommons.org/licenses/by-nc-nd/3.0/">CC BY-NC-ND 3.0</a>.</p> <p>As usual, please consider <a href="http://the.taoofmac.com/space/site/Donate">donating</a> towards hosting and bandwidth costs.</p> </div> </p> Thu, 11 Dec 2014 22:30:00 GMT Rui Carmo The Tao of Mac http://the.taoofmac.com/space/cli/git wiki Workflow http://the.taoofmac.com/space/links/2014/12/11/1137 <div class="quicklook_holder drop-shadow lifted"><a title="" href="http://the.taoofmac.com/media/links/2014/12/11/1137/large.jpg" class="quicklook"><img alt="Click on the image to zoom in" src="http://the.taoofmac.com/pagethumb/links/2014/12/11/1137/large.jpg" class="thumb" /></a></div> <p>This is pretty neat. I can do similar stuff with <a href="http://omz-software.com/pythonista/" title="external link to http://omz-software.com/pythonista/" class="http" rel="http://omz-software.com/pythonista/">Pythonista</a>, but not in such a straightforward fashion.</p><br/><small><a href="http://the.taoofmac.com/space/links/2014/12/11/1137#workflow" title="link to http://the.taoofmac.com/space/links/2014/12/11/1137#workflow">&#x262F;</a></small> Thu, 11 Dec 2014 11:37:54 GMT Rui Carmo The Tao of Mac http://the.taoofmac.com/space/links/2014/12/11/1137#workflow wiki Hardkernel Launches $35 ODROID-C1 http://the.taoofmac.com/space/links/2014/12/10/1534 <div class="quicklook_holder drop-shadow lifted"><a title="" href="http://the.taoofmac.com/media/links/2014/12/10/1534/large.jpg" class="quicklook"><img alt="Click on the image to zoom in" src="http://the.taoofmac.com/pagethumb/links/2014/12/10/1534/large.jpg" class="thumb" /></a></div> <p>This looks pretty good, although I kind of wish they’d gone for a slightly different SoC. I’ll probably be getting one.</p><br/><small><a href="http://the.taoofmac.com/space/links/2014/12/10/1534#hardkernel-launches--35-odroid-c1" title="link to http://the.taoofmac.com/space/links/2014/12/10/1534#hardkernel-launches--35-odroid-c1">&#x262F;</a></small> Wed, 10 Dec 2014 15:34:24 GMT Rui Carmo The Tao of Mac http://the.taoofmac.com/space/links/2014/12/10/1534#hardkernel-launches--35-odroid-c1 wiki A new, transactionally updated “snappy” Ubuntu Core http://the.taoofmac.com/space/links/2014/12/09/1621 <div class="quicklook_holder drop-shadow lifted"><a title="" href="http://the.taoofmac.com/media/links/2014/12/09/1621/large.jpg" class="quicklook"><img alt="Click on the image to zoom in" src="http://the.taoofmac.com/pagethumb/links/2014/12/09/1621/large.jpg" class="thumb" /></a></div> <p>I wonder what the CoreOS value proposition is going to look like when this is ready.</p><br/><small><a href="http://the.taoofmac.com/space/links/2014/12/09/1621#a-new--transactionally-updated--snappy--ubuntu-core" title="link to http://the.taoofmac.com/space/links/2014/12/09/1621#a-new--transactionally-updated--snappy--ubuntu-core">&#x262F;</a></small> Tue, 09 Dec 2014 16:21:37 GMT Rui Carmo The Tao of Mac http://the.taoofmac.com/space/links/2014/12/09/1621#a-new--transactionally-updated--snappy--ubuntu-core wiki The Rise of AdBlock Reveals A Serious Problem in the Advertising Ecosystem http://the.taoofmac.com/space/links/2014/12/09/0010 <div class="quicklook_holder drop-shadow lifted"><a title="" href="http://the.taoofmac.com/media/links/2014/12/09/0010/large.jpg" class="quicklook"><img alt="Click on the image to zoom in" src="http://the.taoofmac.com/pagethumb/links/2014/12/09/0010/large.jpg" class="thumb" /></a></div> <p>Grab some popcorn, this is going to be interesting.</p><br/><small><a href="http://the.taoofmac.com/space/links/2014/12/09/0010#the-rise-of-adblock-reveals-a-serious-problem-in-the-advertising-ecosystem" title="link to http://the.taoofmac.com/space/links/2014/12/09/0010#the-rise-of-adblock-reveals-a-serious-problem-in-the-advertising-ecosystem">&#x262F;</a></small> Tue, 09 Dec 2014 00:10:13 GMT Rui Carmo The Tao of Mac http://the.taoofmac.com/space/links/2014/12/09/0010#the-rise-of-adblock-reveals-a-serious-problem-in-the-advertising-ecosystem wiki Containment Strategies http://the.taoofmac.com/space/blog/2014/12/08/1930 <p>It’s been a year and a half since <a href="http://the.taoofmac.com/space/HOWTO/Vagrant" class="wiki" title="HOWTO/Vagrant was updated 1 year, 4 months ago">I wrote something of substance about containers</a>, and there’s clearly <a href="http://the.taoofmac.com/space/links/2014/12/04/1641" class="wiki" title="links/2014/12/04/1641 was updated 4 days, 16 hours ago">a lot going on</a> in that space at the moment, so I thought I’d jot down the status quo from my perspective.</p> <p>After all, I’ve been using containers for well over three years now, and it’s impossible to have spent this long doing so without forming an opinion — even if most of my use has been to spin up and tear down development environments of various sorts (<a href="https://github.com/rcarmo/docker-templates" title="secure link to https://github.com/rcarmo/docker-templates" class="https" rel="https://github.com/rcarmo/docker-templates">some of which</a> I’ve posted online), I’ve also been arguing the pros and cons of using containers for live services, and we’ve had a bunch of internal services running off vanilla LXC for a good while.</p> <p>The way I see it, if you cast aside for the moment all the enterprisey things like full-blown orchestration, sotfware-defined networking, monitoring and pretty UIs, there are two simple<sup id="fnref:1"><a class="anchor" href="http://the.taoofmac.com/space/blog/2014/12/08/1930#fn:1" rel="/space/blog/2014/12/08/1930#fn:1" title="link to fn:1 in this page">1</a></sup> takes on containers - the sysadmin’s and the developer’s.</p> <h2 id="boxes-with-baggage">Boxes With Baggage</h2> <p>As a part-time systadmin, the first thing that comes to mind when people go on about the ease with which they can throw together an application stack using <a href="http://www.docker.com" title="external link to http://www.docker.com" class="http" rel="http://www.docker.com">Docker</a> (usually during fancy demos) is that grabbing random <a href="http://www.docker.com" title="external link to http://www.docker.com" class="http" rel="http://www.docker.com">Docker</a> images off the Internet isn’t really a good idea — putting aside the security implications (which ought to be enough), there’s usually a fair amount of bloat (oddball packages and binaries), uneven baseline images (different distributions and userland layouts) and lack of conventions for such things as mount points, configuration, etc.</p> <p>So the only sane way to deal with that if you intend to run a business atop containers is, of course, building your own images (preferably taking the time and trouble to clean out any unused tools<sup id="fnref:2"><a class="anchor" href="http://the.taoofmac.com/space/blog/2014/12/08/1930#fn:2" rel="/space/blog/2014/12/08/1930#fn:2" title="link to fn:2 in this page">2</a></sup>) and maintaining your own repository.</p> <p>LXC, on the other hand, tends to be fairly more standardized by default — in the sense that you usually build your containers from scratch, so you <em>have</em> to know what’s in there. It still sucks to have full copies of the Linux userland lying around, but there <em>are</em> advantages.</p> <h2 id="containers-as-machines">Containers as Machines</h2> <p>The problem, as I see it, is not about whether or not containers are useful. The real problem is <em>managing</em> them sanely, and a side problem I’ve been concerned with for the past couple of months is that provisioning and orchestration tools for containers are still a fair bit behind what you have for VMs/hypervisors. Most people right now are fairly used to <a href="http://puppetlabs.com" title="external link to http://puppetlabs.com" class="http" rel="http://puppetlabs.com">Puppet</a>, <a href="https://www.chef.io/" title="secure link to https://www.chef.io/" class="https" rel="https://www.chef.io/">Chef</a>, <a href="http://www.ansible.com/" title="external link to http://www.ansible.com/" class="http" rel="http://www.ansible.com/">Ansible</a> and whatnot (having spent the last 3-4 years getting to grip with them), and machines (virtual, contained or physical) are, by and large, fairly familiar beasts, with well-known internal locations for configuration scripts, data files and packages, as well as reasonably uniform system services.</p> <p>If you’re already managing a mix of physical and virtual servers, simply tossing in <a href="http://www.docker.com" title="external link to http://www.docker.com" class="http" rel="http://www.docker.com">Docker</a> containers adds a lot of entropy to the mix, but using vanilla LXC lets you re-use the vast majority of your tools. </p> <p>An LXC container host can get pretty crowded with largely redundant <code>init</code>, <code>sshd</code> and other housekeeping processes in each container, but (provided you’re running them on a back-end network, of course) you can simply fiddle with the network bridge to make your containers visible on the LAN, fool your existing tools into accepting each container as a standalone machine and not lose much sleep over it — up to a point, of course, since there are trade-offs in terms of IP addressing, security and complexity (but networking performance tends to be pretty good).</p> <p>The downside, of course, is that LXC cannot cope with dynamic workloads, and instantiating new containers requires proper planning. Again, that might not be much of an issue if you’re running in-office/back-end services, but its predictability (and reasonably well-defined ways to set resource limits via <code>lxc-cgroup</code>) lends itself well to such things.</p> <h2 id="the-shell-game">The Shell Game</h2> <p><a href="http://www.docker.com" title="external link to http://www.docker.com" class="http" rel="http://www.docker.com">Docker</a> is a lot better suited for ephemeral containers, and (most importantly) for reproducible ones that you can clone at will. </p> <p>I’ve tried running LXC atop <code>btrfs</code> to duplicate some of that snapshotting functionality <a href="http://the.taoofmac.com/space/blog/2014/08/09/1630" class="wiki" title="blog/2014/08/09/1630 was updated 4 months, 1 day ago">with mixed results</a>. Filesystem vagaries aside, trivial cloning isn’t that hard to duplicate, but the simplicity with which you can get things up and running (yes, even for pretty demos) is an eye opener.</p> <p>Isolation is also slightly better enforced (given that a <a href="http://www.docker.com" title="external link to http://www.docker.com" class="http" rel="http://www.docker.com">Docker</a> container is only supposed to run a single binary), and it’s usually less painful (and less troublesome) to restart a service container than a machine container.</p> <p>The trouble with <a href="http://www.docker.com" title="external link to http://www.docker.com" class="http" rel="http://www.docker.com">Docker</a>, as far as I’m concerned, isn’t the lack of a “complete”, <code>init</code>-managed machine-like environment or having things run as <code>root</code> (which, by the way, is why you have the <code>USER</code> directive in <code>Dockerfiles</code> — use it!).</p> <p>The thing that annoys me repeatedly is managing data persistence and connectivity. <a href="http://www.docker.com" title="external link to http://www.docker.com" class="http" rel="http://www.docker.com">Docker</a> volumes make it easier these days, but it can be a pain to (for instance) tweak things like PostgreSQL to get their data from different locations<sup id="fnref:3"><a class="anchor" href="http://the.taoofmac.com/space/blog/2014/12/08/1930#fn:3" rel="/space/blog/2014/12/08/1930#fn:3" title="link to fn:3 in this page">3</a></sup> and toss a boatload of mountpoints and ports in front of a <code>docker run</code> command.</p> <p>Some aspects of the internals aren’t much nicer. Filesystem redirection (either via AUFS or data volumes) can take its toll on performance, not to mention that it’s all too easy to end up with a host crammed full of unused AUFS layers if you (again) overuse third-party images.</p> <p>More worryingly, networking (especially across different hosts) tends to be somewhat of an exercise in knitting ports together, which makes it hard to manage. I know there are a bunch of very smart people working on that, but so far I’m not too impressed by some of the inter-host networking solutions I’ve seen, given that they essentially employ userspace tunnelling and routing to build overlay networks — again, with considerable overhead in some cases.</p> <p>Things have improved markedly in the past year, but any sysadmin will tell you they like their technologies to be stable and predictable. </p> <p>Even if workloads and traffic surges aren’t, it’s always good to know that unleashing a dozen fresh containers to deal with peak traffic won’t slow down your IOPs to a point where any performance benefits you might have go right out the window — so, again, build your own containers and <em>test</em> them under load.</p> <h2 id="devops-nirvana">DevOps Nirvana</h2> <p>So far, this was mostly a sysadmin take on things. But if I put on my developer hat (which may or may not have “devops” scrawled on it with a crayon), things look <em>amazing</em>.</p> <p>The big benefit for developers is <em>complete</em> reproducibility of their environment. That, thanks to container snapshots, includes airtight dependency management to a degree hitherto unseen, even if you (like most sane shops) insist on deploying stuff via a package manager to ensure uniformity.</p> <p>Thinking of <a href="http://www.docker.com" title="external link to http://www.docker.com" class="http" rel="http://www.docker.com">Docker</a> containers as <em>application</em> images with bundled dependencies is the first step.</p> <p>Realizing that you can rebuild them hundreds of times a day and deploy them <em>very quickly</em> is the next, altough, like many, I wish the <code>Dockerfile</code> format wasn’t so limited (I’d prefer something closer to a <code>Makefile</code> in terms of variable expansion, for starters).</p> <p>From then on, splitting your application into multiple independent, <em>individually testable</em> and <em>reusable</em> services, each in its own container, is just gravy — all of a sudden, you gain the ability to selectively upgrade components (even fairly complex ones) on the fly.</p> <p>The thing is, re-architecting <em>any</em> pre-existing application to work that way usually means a <em>lot</em> of work. But developing new ones can become quite fun, even if componentization (and containerization) isn’t a magic bullet — in fact, I tend to think that its eminent suitability for online services has blinded a lot of otherwise clear-minded folk into believing it’s useful for <em>everything</em> —but I digress.</p> <h2 id="the-simple-enterprisey-things">The Simple Enterprisey Things</h2> <p>So I’ve been looking into <a href="http://www.docker.com" title="external link to http://www.docker.com" class="http" rel="http://www.docker.com">Docker</a> deployment solutions, of which there are <a href="http://www.mindmeister.com/389671722/docker-ecosystem" title="external link to http://www.mindmeister.com/389671722/docker-ecosystem" class="http" rel="http://www.mindmeister.com/389671722/docker-ecosystem">entirely too many</a> at this point.</p> <p>That means looking for two completely different things: a full-featured solution that can be deployed wholesale as part of a PaaS<sup id="fnref:4"><a class="anchor" href="http://the.taoofmac.com/space/blog/2014/12/08/1930#fn:4" rel="/space/blog/2014/12/08/1930#fn:4" title="link to fn:4 in this page">4</a></sup>, and a no-frills approach for my own use. </p> <p>Each has its own challenges — the former has to be enterprisey enough (and popular enough) for me not to spend weeks avoiding sharp corners, whereas the latter needs to be something simple and straightforward enough for me to run in an ad-hoc fashion.</p> <p>Up until last week <a href="http://deis.io" title="external link to http://deis.io" class="http" rel="http://deis.io">Deis</a> seemed to be the one to aim for in the long run, but I’m not exactly pleased with their dependency on <a href="http://coreos.com" title="external link to http://coreos.com" class="http" rel="http://coreos.com">CoreOS</a>, and after <a href="http://the.taoofmac.com/space/links/2014/12/01/2241" class="wiki" title="links/2014/12/01/2241 was updated 1 week, 10 hours ago">the Rocket announcement</a> I’m going to wait until the dust settles<sup id="fnref:5"><a class="anchor" href="http://the.taoofmac.com/space/blog/2014/12/08/1930#fn:5" rel="/space/blog/2014/12/08/1930#fn:5" title="link to fn:5 in this page">5</a></sup> — there’s no point in building stuff atop quicksand.</p> <p>So I’ve started taking a solid look at <a href="http://kubernetes.io" title="external link to http://kubernetes.io" class="http" rel="http://kubernetes.io">Kubernetes</a> (seeing that they’re a bit further along than the <a href="http://www.docker.com" title="external link to http://www.docker.com" class="http" rel="http://www.docker.com">Docker</a> folk themselves, at least for the moment), and I’m quite curious as to what the Mesosphere guys <a href="http://the.taoofmac.com/space/links/2014/12/08/1239" class="wiki" title="links/2014/12/08/1239 was updated 20 hours, 49 minutes ago">are doing</a>.</p> <h2 id="my-pocket-paas">My Pocket PaaS</h2> <p>Picking my own solution is turning out to be a bit harder: <a href="http://shipyard-project.com" title="external link to http://shipyard-project.com" class="http" rel="http://shipyard-project.com">Shipyard’s</a> an old favorite of mine, but I wanted something between <a href="http://octohost.io" title="external link to http://octohost.io" class="http" rel="http://octohost.io">Octohost</a> and <a href="https://github.com/progrium/dokku" title="secure link to https://github.com/progrium/dokku" class="https" rel="https://github.com/progrium/dokku">Dokku</a>.</p> <p>In particular, I wish either of them used <code>varnish</code> as a front-end instead of <code>nginx</code>, and am not very keen on the way I have to deploy things — I personally find <a href="https://www.heroku.com" title="secure link to https://www.heroku.com" class="https" rel="https://www.heroku.com">Heroku</a>-like buildpacks a nuisance, and even considering I’ve had to try out a <a href="http://www.cloudfoundry.org" title="external link to http://www.cloudfoundry.org" class="http" rel="http://www.cloudfoundry.org">Cloud Foundry</a> setup recently and they “just worked”, it’s an extra “fat” dependency to debug if things go horribly wrong.</p> <p>So, true to <a href="http://the.taoofmac.com/space/blog/2014/08/18/2300" class="wiki" title="blog/2014/08/18/2300 was updated 3 months, 3 weeks ago">my minimalist form</a>, I’m currently using <a href="http://www.fig.sh" title="external link to http://www.fig.sh" class="http" rel="http://www.fig.sh">Fig</a> for development and plain <a href="http://www.docker.com" title="external link to http://www.docker.com" class="http" rel="http://www.docker.com">Docker</a> (together with a few <code>Makefiles</code> and a private registry) for deployment. Using a private registry is still a <em>major</em> pain (you have to tag it with part of the registry URL, of all things), but it can be automated away somewhat.</p> <p>But actually <em>developing</em> is turning out great. <a href="http://www.fig.sh" title="external link to http://www.fig.sh" class="http" rel="http://www.fig.sh">Fig</a> has some extremely nice touches; for instance, it sets up environment variables and hostnames for me, making it <em>a lot</em> less time-consuming to build multi-service setups than <a href="http://the.taoofmac.com/space/HOWTO/Vagrant" class="wiki" title="HOWTO/Vagrant was updated 1 year, 4 months ago">Vagrant</a>. Given my (very) limited time for hobby coding these days, it’s been well worth the switch.</p> <p>And it will underpin (or at least <a href="https://github.com/docker/docker/issues/9459" title="secure link to https://github.com/docker/docker/issues/9459" class="https" rel="https://github.com/docker/docker/issues/9459">influence</a>) <a href="http://www.docker.com" title="external link to http://www.docker.com" class="http" rel="http://www.docker.com">Docker</a>‘s own <code>compose</code> tool, so it seems like a safe enough investment.</p> <p>Of course, the fun part of this is that it will all change in a month or so. Best laid plans…</p> <div class="footnote"> <hr /> <ol> <li id="fn:1"> <p>Some may find these simplistic, but I like my arguments (and problems) simple and manageable. <a class="anchor" href="http://the.taoofmac.com/space/blog/2014/12/08/1930#fnref:1" rev="footnote" title="Jump back to footnote 1 in the text" rel="/space/blog/2014/12/08/1930#fnref:1">↩</a></p> </li> <li id="fn:2"> <p>Even if AUFS (like <code>btrfs</code>) helps you save on disk space, the attack surface is still there. So I’ve been toying with the notion of grabbing something like the <code>busybox</code> base image or the <a href="http://wiki.tinycorelinux.net" title="external link to http://wiki.tinycorelinux.net" class="http" rel="http://wiki.tinycorelinux.net">Tiny Core Linux</a> <code>rootfs</code> (which is only 3MB) and building a set of container runtimes for <a href="http://the.taoofmac.com/space/dev/Java" class="wiki" title="dev/Java was updated 1 year, 5 months ago">Java 8</a>, <a href="http://the.taoofmac.com/space/dev/Python" class="wiki" title="dev/Python was updated 1 week, 19 hours ago">Python</a> and <a href="http://the.taoofmac.com/space/dev/Golang" class="wiki" title="dev/Golang was updated 3 months, 4 days ago">Go</a> that have absolutely <em>nothing</em> installed, but laziness and the wealth of pre-built packages available in <a href="http://the.taoofmac.com/space/os/Linux/Distributions/Ubuntu" class="wiki" title="os/Linux/Distributions/Ubuntu was updated 2 years, 1 month ago">Ubuntu</a> have so far prevented me from doing so. <a class="anchor" href="http://the.taoofmac.com/space/blog/2014/12/08/1930#fnref:2" rev="footnote" title="Jump back to footnote 2 in the text" rel="/space/blog/2014/12/08/1930#fnref:2">↩</a></p> </li> <li id="fn:3"> <p>PostgreSQL is actually fairly easy, provided you bite the bullet and put <em>everything</em> (configuration and data) in the same volume. But I hate that.  <a class="anchor" href="http://the.taoofmac.com/space/blog/2014/12/08/1930#fnref:3" rev="footnote" title="Jump back to footnote 3 in the text" rel="/space/blog/2014/12/08/1930#fnref:3">↩</a></p> </li> <li id="fn:4"> <p>But <em>please</em>, let it not be <a href="http://www.openstack.org" title="external link to http://www.openstack.org" class="http" rel="http://www.openstack.org">OpenStack</a>. I like <a href="https://wiki.openstack.org/wiki/Docker#How_does_the_Nova_hypervisor_work_under_the_hood.3F" title="secure link to https://wiki.openstack.org/wiki/Docker#How_does_the_Nova_hypervisor_work_under_the_hood.3F" class="https" rel="https://wiki.openstack.org/wiki/Docker#How_does_the_Nova_hypervisor_work_under_the_hood.3F">OpenStack’s Nova</a>, but it comes with too much VM-oriented baggage and the whole thing has turned out so big and enterprisey it’s become unwieldy for anything but enterprise deployments. <a class="anchor" href="http://the.taoofmac.com/space/blog/2014/12/08/1930#fnref:4" rev="footnote" title="Jump back to footnote 4 in the text" rel="/space/blog/2014/12/08/1930#fnref:4">↩</a></p> </li> <li id="fn:5"> <p>I’d much rather to stick to things that can be deployed atop either CentOS or <a href="http://the.taoofmac.com/space/os/Linux/Distributions/Ubuntu" class="wiki" title="os/Linux/Distributions/Ubuntu was updated 2 years, 1 month ago">Ubuntu</a>, given that they’re supported on pretty much every private or public infrastructure provider out there and there are plenty of things one needs to run on a host system that are readily available on normal distributions. <a class="anchor" href="http://the.taoofmac.com/space/blog/2014/12/08/1930#fnref:5" rev="footnote" title="Jump back to footnote 5 in the text" rel="/space/blog/2014/12/08/1930#fnref:5">↩</a></p> </li> </ol> </div><br/><small><a href="http://the.taoofmac.com/space/blog/2014/12/08/1930#containment-strategies" title="link to http://the.taoofmac.com/space/blog/2014/12/08/1930#containment-strategies">&#x262F;</a></small><p> <div style="-webkit-border-radius: 8px; font-size: small; background-color: #ccc; color: #000; border: 1px solid #aaa; margin: 0; padding: 3px; overflow: hidden;"><p style="padding; 2px; margin: 2px;"><a title="" href="http://the.taoofmac.com/"><img align="left" alt="Tao of Mac Icon" src="http://the.taoofmac.com/img/pavatar48.png"/></a> "<a href="http://the.taoofmac.com/space/blog/2014/12/08/1930#containment-strategies"><strong>Containment Strategies</strong></a>" was written by <a href="http://the.taoofmac.com/RuiCarmo">Rui Carmo</a> for <a href="http://the.taoofmac.com">The Tao of Mac</a> and was originally posted on Monday, Dec 8<sup>th</sup> 2014. Except as noted, it's &copy;2014 Rui Carmo and licensed for reuse under <a href="http://creativecommons.org/licenses/by-nc-nd/3.0/">CC BY-NC-ND 3.0</a>.</p> <p>As usual, please consider <a href="http://the.taoofmac.com/space/site/Donate">donating</a> towards hosting and bandwidth costs.</p> </div> </p> Mon, 08 Dec 2014 19:30:00 GMT Rui Carmo The Tao of Mac http://the.taoofmac.com/space/blog/2014/12/08/1930#containment-strategies wiki Mesosphere’s DCOS http://the.taoofmac.com/space/links/2014/12/08/1239 <div class="quicklook_holder drop-shadow lifted"><a title="" href="http://the.taoofmac.com/media/links/2014/12/08/1239/large.jpg" class="quicklook"><img alt="Click on the image to zoom in" src="http://the.taoofmac.com/pagethumb/links/2014/12/08/1239/large.jpg" class="thumb" /></a></div> <p>The original title is a bit hyped, but the overview is nice—I’ve been keeping an eye on Mesosphere for a bit, and love what they’re doing.</p><br/><small><a href="http://the.taoofmac.com/space/links/2014/12/08/1239#mesosphere-s-dcos" title="link to http://the.taoofmac.com/space/links/2014/12/08/1239#mesosphere-s-dcos">&#x262F;</a></small> Mon, 08 Dec 2014 12:39:59 GMT Rui Carmo The Tao of Mac http://the.taoofmac.com/space/links/2014/12/08/1239#mesosphere-s-dcos wiki Colin Cantwell's Concept Art http://the.taoofmac.com/space/links/2014/12/08/1048 <div class="quicklook_holder drop-shadow lifted"><a title="" href="http://the.taoofmac.com/media/links/2014/12/08/1048/large.jpg" class="quicklook"><img alt="Click on the image to zoom in" src="http://the.taoofmac.com/pagethumb/links/2014/12/08/1048/large.jpg" class="thumb" /></a></div> <p>So cool. Kitbashed rocks.</p><br/><small><a href="http://the.taoofmac.com/space/links/2014/12/08/1048#colin-cantwell-s-concept-art" title="link to http://the.taoofmac.com/space/links/2014/12/08/1048#colin-cantwell-s-concept-art">&#x262F;</a></small> Mon, 08 Dec 2014 10:48:08 GMT Rui Carmo The Tao of Mac http://the.taoofmac.com/space/links/2014/12/08/1048#colin-cantwell-s-concept-art wiki JavaScript http://the.taoofmac.com/space/dev/JavaScript <div style="-webkit-border-radius: 8px; background-color: #ccf; color: #000; border: 1px solid #aaf; margin: 0; padding: 3px; overflow: hidden;"><i>This is an update to an item originally published on Wednesday, Feb 28<sup>th</sup> 2007.</i></div><br clear="all"/><p>The <a href="http://the.taoofmac.com/space/ECMA" class="wikiunknown" title="ECMA is not defined yet"><span class="caps">ECMA</span></a> – <a href="http://www.ecma-international.org/publications/standards/ECMA-262.HTM" title="external link to http://www.ecma-international.org/publications/standards/ECMA-262.HTM" class="http" rel="http://www.ecma-international.org/publications/standards/ECMA-262.HTM">262</a> Standard, ratified after <a href="http://the.taoofmac.com/space/Netscape" class="wikiunknown" title="Netscape is not defined yet">Netscape</a> and <a href="http://the.taoofmac.com/space/com/Microsoft" class="wiki" title="com/Microsoft was updated 4 years, 9 months ago">Microsoft</a> (mostly) agreed to make <a href="http://the.taoofmac.com/space/dev/JavaScript" class="wiki" title="dev/JavaScript was updated 19 minutes ago">JavaScript</a> and <a href="http://the.taoofmac.com/space/JScript" class="wikiunknown" title="JScript is not defined yet">JScript</a> interoperable.</p> <h3>Ways To Avoid Writing <a href="http://the.taoofmac.com/space/dev/JavaScript" class="wiki" title="dev/JavaScript was updated 19 minutes ago">JavaScript</a></h3> <p>I’ve taken to looking for alternative ways to develop in <a href="http://the.taoofmac.com/space/dev/JavaScript" class="wiki" title="dev/JavaScript was updated 19 minutes ago">JavaScript</a> that don’t require me to put up with its syntax and overall insanity. Here’s a few I like (mostly compilers, since that’s what makes the most sense for me):</p> <table class="compact" style="background:transparent; margin: 0px; padding: 0px; border-collapse: collapse;"> <thead> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <th style="border-bottom: 1px solid black; border-top: 2px solid black; padding: 4px; font-weight: bold;">Category</th> <th style="border-bottom: 1px solid black; border-top: 2px solid black; padding: 4px; font-weight: bold;">Date</th> <th style="border-bottom: 1px solid black; border-top: 2px solid black; padding: 4px; font-weight: bold;">Link</th> <th style="border-bottom: 1px solid black; border-top: 2px solid black; padding: 4px; font-weight: bold;">Notes</th> </tr> </thead> <tbody> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="4" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Compilers</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Jun 5</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://opalrb.org" title="external link to http://opalrb.org" class="http" rel="http://opalrb.org">Opal</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A <a href="http://the.taoofmac.com/space/dev/Ruby" class="wiki" title="dev/Ruby was updated 5 months, 2 weeks ago">Ruby</a> transpiler</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="3" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Nov 18th</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://elm-lang.org" title="external link to http://elm-lang.org" class="http" rel="http://elm-lang.org">Elm</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A functional language that compiles to <a href="http://the.taoofmac.com/space/dev/JavaScript" class="wiki" title="dev/JavaScript was updated 19 minutes ago">JavaScript</a></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/Gozala/wisp" title="secure link to https://github.com/Gozala/wisp" class="https" rel="https://github.com/Gozala/wisp">wisp</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A homoiconic <span class="caps">LISP</span> dialect with <a href="http://the.taoofmac.com/space/dev/Clojure" class="wiki" title="dev/Clojure was updated 3 months, 8 hours ago">Clojure</a> syntax and macros</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/pythonium/pythonium" title="secure link to https://github.com/pythonium/pythonium" class="https" rel="https://github.com/pythonium/pythonium">pythonium</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A <a href="http://the.taoofmac.com/space/dev/Python" class="wiki" title="dev/Python was updated 3 days, 7 hours ago">Python</a> 3 to <a href="http://the.taoofmac.com/space/dev/JavaScript" class="wiki" title="dev/JavaScript was updated 19 minutes ago">JavaScript</a> translator</td> </tr> </tbody> </table> <h3>Resources:</h3> <p>Most of these are library-independent. Check my <a href="http://the.taoofmac.com/space/dev/JavaScript/jQuery" class="wiki" title="dev/JavaScript/jQuery was updated 7 months, 1 week ago">jQuery</a> page for more, since there’s an entire sub-culture that believes it to be <a href="http://the.taoofmac.com/space/dev/JavaScript" class="wiki" title="dev/JavaScript was updated 19 minutes ago">JavaScript</a> programming in and by its own…</p> <table class="compact" style="background:transparent; margin: 0px; padding: 0px; border-collapse: collapse;"> <thead> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <th style="border-bottom: 1px solid black; border-top: 2px solid black; padding: 4px; font-weight: bold;">Category</th> <th style="border-bottom: 1px solid black; border-top: 2px solid black; padding: 4px; font-weight: bold;">Date</th> <th style="border-bottom: 1px solid black; border-top: 2px solid black; padding: 4px; font-weight: bold;">Link</th> <th style="border-bottom: 1px solid black; border-top: 2px solid black; padding: 4px; font-weight: bold;">Notes</th> </tr> </thead> <tbody> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="9" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://en.wikipedia.org/wiki/User_interface" title="link to User_interface on en.wikipedia.org" class="interwiki" rel="Wikipedia:User_interface">UI</a> elements</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">May’14</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://framerjs.com/" title="external link to http://framerjs.com/" class="http" rel="http://framerjs.com/">Framerjs</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">For designing interactive prototypes</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="3" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Oct’13</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://github.hubspot.com/odometer/" title="external link to http://github.hubspot.com/odometer/" class="http" rel="http://github.hubspot.com/odometer/">Odometer</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A library for counters with smooth transitions</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://buunguyen.github.io/rainbow.js/" title="external link to http://buunguyen.github.io/rainbow.js/" class="http" rel="http://buunguyen.github.io/rainbow.js/">rainbow.js</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A slim progress bar</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://ricostacruz.com/nprogress/" title="external link to http://ricostacruz.com/nprogress/" class="http" rel="http://ricostacruz.com/nprogress/">nprogress</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Another slim progress bar</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Jun’12</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/ccampbell/mousetrap" title="secure link to https://github.com/ccampbell/mousetrap" class="https" rel="https://github.com/ccampbell/mousetrap">Mousetrap</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">a very nice way to handle keyboard shortcuts</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Feb 26’11</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://jweir.github.com/colorwheel/" title="external link to http://jweir.github.com/colorwheel/" class="http" rel="http://jweir.github.com/colorwheel/">Color Wheel</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A great color picker component</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="3" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Sep 17</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://digitarald.de/project/roar/" title="external link to http://digitarald.de/project/roar/" class="http" rel="http://digitarald.de/project/roar/">Roar</a></td> <td rowspan="2" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Two <a href="http://the.taoofmac.com/space/apps/Growl" class="wiki" title="apps/Growl was updated 5 years, 2 months ago">Growl-like</a> components done with MooTools</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://icebeat.bitacoras.com/mootools/growl/" title="external link to http://icebeat.bitacoras.com/mootools/growl/" class="http" rel="http://icebeat.bitacoras.com/mootools/growl/">Window.Growl 2.0</a></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://stephencelis.com/projects/timeframe#example_information" title="external link to http://stephencelis.com/projects/timeframe#example_information" class="http" rel="http://stephencelis.com/projects/timeframe#example_information">Timeframe</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Amazing calendar widget with support for date range selection.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Data Binding</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Sep 18</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/imrefazekas/knockout.sync.js" title="secure link to https://github.com/imrefazekas/knockout.sync.js" class="https" rel="https://github.com/imrefazekas/knockout.sync.js">knockout.sync.js</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A very nice Knockout extension that allows you to sync data among clients and backends</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="16" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Canvas and Graphing</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Jan’14</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/gre/glsl-transition" title="secure link to https://github.com/gre/glsl-transition" class="https" rel="https://github.com/gre/glsl-transition">glsl-transition</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A library that uses GL shaders for transitions</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Oct 20’13</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.gojs.net/latest/index.html" title="external link to http://www.gojs.net/latest/index.html" class="http" rel="http://www.gojs.net/latest/index.html">GoJS</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A commercial charting and diagramming library</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Sep 18’13</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://svgjs.com/" title="external link to http://svgjs.com/" class="http" rel="http://svgjs.com/">svgjs</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A lightweight library for <span class="caps">SVG</span> handling</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">May 7’13</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://jonobr1.github.io/two.js/" title="external link to http://jonobr1.github.io/two.js/" class="http" rel="http://jonobr1.github.io/two.js/">Two.js</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">An intriguing <span class="caps">API</span> that supports a number of back-ends (svg, canvas and WebGL)</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Feb 17’13</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://gojs.net" title="external link to http://gojs.net" class="http" rel="http://gojs.net">GoJS</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">An amazing charting library with support for flowcharts, swimlanes, and a number of business process diagrams.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="2" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Sep 25’12</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://impactjs.com/ejecta" title="external link to http://impactjs.com/ejecta" class="http" rel="http://impactjs.com/ejecta">Ejecta</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A fast GL-backed canvas library for <a href="http://the.taoofmac.com/space/com/Apple/iOS" class="wikiunknown" title="com/Apple/iOS is not defined yet">iOS</a></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/sporritt/jsplumb/" title="secure link to https://github.com/sporritt/jsplumb/" class="https" rel="https://github.com/sporritt/jsplumb/">jsPlumb</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A Yahoo pipes-like library.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Jun 25’11</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/paperjs/paper.js" title="secure link to https://github.com/paperjs/paper.js" class="https" rel="https://github.com/paperjs/paper.js">paper.js</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Amazing open source vector graphics scripting framework that runs on top of the HTML5 Canvas</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Apr 21’10</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.kesiev.com/akihabara/" title="external link to http://www.kesiev.com/akihabara/" class="http" rel="http://www.kesiev.com/akihabara/">Akibahara</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A wonderful set of small libraries to clone 8-bit era arcade games,</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Jan 19’10</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://highcharts.com/" title="external link to http://highcharts.com/" class="http" rel="http://highcharts.com/">Highcharts</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A very comprehensive charting library.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Jan 1’10</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://raphaeljs.com/" title="external link to http://raphaeljs.com/" class="http" rel="http://raphaeljs.com/">Raphael</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">An amazing vector library, with a <a href="http://g.raphaeljs.com/" title="external link to http://g.raphaeljs.com/" class="http" rel="http://g.raphaeljs.com/">charting companion</a> that will knock your socks off.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Dec 3’09</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.mrspeaker.net/2009/12/03/particle-system-with-html5-canvas/" title="external link to http://www.mrspeaker.net/2009/12/03/particle-system-with-html5-canvas/" class="http" rel="http://www.mrspeaker.net/2009/12/03/particle-system-with-html5-canvas/">Parcycle: A Particle System with HTML5 canvas</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Pretty damn amazing.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Nov 6’08</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://blog.thejit.org/javascript-information-visualization-toolkit-jit/" title="external link to http://blog.thejit.org/javascript-information-visualization-toolkit-jit/" class="http" rel="http://blog.thejit.org/javascript-information-visualization-toolkit-jit/">JavaScript Information Visualization Toolkit</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A pretty comprehensive set of resources</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="3" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Dec 16’07</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://developer.apple.com/documentation/AppleApplications/Conceptual/SafariJSProgTopics/Tasks/Canvas.html" title="external link to http://developer.apple.com/documentation/AppleApplications/Conceptual/SafariJSProgTopics/Tasks/Canvas.html" class="http" rel="http://developer.apple.com/documentation/AppleApplications/Conceptual/SafariJSProgTopics/Tasks/Canvas.html">Safari Programming Topics</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://developer-test.mozilla.org/docs/Drawing_Graphics_with_Canvas" title="external link to http://developer-test.mozilla.org/docs/Drawing_Graphics_with_Canvas" class="http" rel="http://developer-test.mozilla.org/docs/Drawing_Graphics_with_Canvas">Firefox 1.1 Canvas Support</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://simile.mit.edu/timeline/" title="external link to http://simile.mit.edu/timeline/" class="http" rel="http://simile.mit.edu/timeline/">Timeline</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">a draggable <a href="http://en.wikipedia.org/wiki/Dynamic_HTML" title="link to Dynamic_HTML on en.wikipedia.org" class="interwiki" rel="Wikipedia:Dynamic_HTML"><span class="caps">DHTML</span></a> timeline widget</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="7" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Forms and Input</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Oct 27’13</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/matthewmueller/date" title="secure link to https://github.com/matthewmueller/date" class="https" rel="https://github.com/matthewmueller/date">date</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A date parser that can take pseudo-natural language strings</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Sep 20’13</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://n12v.com/focus-transition/" title="external link to http://n12v.com/focus-transition/" class="http" rel="http://n12v.com/focus-transition/">focus-transition</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">should be the default everywhere</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Feb 1’13</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/ChiperSoft/Kalendae" title="secure link to https://github.com/ChiperSoft/Kalendae" class="https" rel="https://github.com/ChiperSoft/Kalendae">Kalendae</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">a very impressive, framework-agnostic date picker</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="4" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Dec 16’07</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://javascript.internet.com/forms/auto-tab.html" title="external link to http://javascript.internet.com/forms/auto-tab.html" class="http" rel="http://javascript.internet.com/forms/auto-tab.html">Auto-Tab</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.dynarch.com/projects/calendar/" title="external link to http://www.dynarch.com/projects/calendar/" class="http" rel="http://www.dynarch.com/projects/calendar/">JavaScript Calendar</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://jon.hedley.net/HTMLTabbedDialogWidget.html" title="external link to http://jon.hedley.net/HTMLTabbedDialogWidget.html" class="http" rel="http://jon.hedley.net/HTMLTabbedDialogWidget.html"><span class="caps">HTML</span> Tabbed Dialog Widget</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://webfx.eae.net/dhtml/xloadtree/xloadtree.html" title="external link to http://webfx.eae.net/dhtml/xloadtree/xloadtree.html" class="http" rel="http://webfx.eae.net/dhtml/xloadtree/xloadtree.html">XLoadTree</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">dynamically loading tree control</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="11" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Text Formatting</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://filepicker.github.io/codeblock.js/" title="external link to http://filepicker.github.io/codeblock.js/" class="http" rel="http://filepicker.github.io/codeblock.js/">Codeblock.js</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A nice way to provide code samples.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Feb 1’13</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://craig.is/making/rainbows" title="external link to http://craig.is/making/rainbows" class="http" rel="http://craig.is/making/rainbows">Rainbow</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A nice syntax highlighter</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="2" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Jan 1’10</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://code.google.com/p/google-code-prettify/" title="external link to http://code.google.com/p/google-code-prettify/" class="http" rel="http://code.google.com/p/google-code-prettify/">google-code-prettify</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A source code prettifier with support for multiple programming languages.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.math.union.edu/~dpvc/jsMath/" title="external link to http://www.math.union.edu/~dpvc/jsMath/" class="http" rel="http://www.math.union.edu/~dpvc/jsMath/">jsMath: A Method of Including Mathematics in Web Pages</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">An amazing (re)interpretation of <a href="http://the.taoofmac.com/space/Typesetting/TeX" class="wikiunknown" title="Typesetting/TeX is not defined yet">TeX</a></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Oct 21’09</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://code.google.com/p/google-code-prettify/" title="external link to http://code.google.com/p/google-code-prettify/" class="http" rel="http://code.google.com/p/google-code-prettify/">JavaScript Prettifier</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Simple to use and effective</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Sep 17’09</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://individed.com/code/to-title-case/" title="external link to http://individed.com/code/to-title-case/" class="http" rel="http://individed.com/code/to-title-case/">To Title Case</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A port of <a href="http://the.taoofmac.com/space/people/John Gruber" class="wiki" title="people/John Gruber was updated 8 years, 4 months ago">Gruber’s</a> <a href="http://daringfireball.net/2008/08/title_case_update" title="external link to http://daringfireball.net/2008/08/title_case_update" class="http" rel="http://daringfireball.net/2008/08/title_case_update">title case</a> script</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="5" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Dec 16’07</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.attacklab.net/showdown-gui.html" title="external link to http://www.attacklab.net/showdown-gui.html" class="http" rel="http://www.attacklab.net/showdown-gui.html">Showdown</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">a <a href="http://the.taoofmac.com/space/markup/Markdown" class="wiki" title="markup/Markdown was updated 2 years, 1 week ago">Markdown</a> port</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://softwaremaniacs.org/soft/highlight/en/" title="external link to http://softwaremaniacs.org/soft/highlight/en/" class="http" rel="http://softwaremaniacs.org/soft/highlight/en/">Highlight.js</a></td> <td rowspan="2" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">two interesting syntax highlighters</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.dreamprojections.com/syntaxhighlighter/" title="external link to http://www.dreamprojections.com/syntaxhighlighter/" class="http" rel="http://www.dreamprojections.com/syntaxhighlighter/">Syntax Highlighter</a></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://ejohn.org/projects/javascript-diff-algorithm/" title="external link to http://ejohn.org/projects/javascript-diff-algorithm/" class="http" rel="http://ejohn.org/projects/javascript-diff-algorithm/">Diff Algorithm</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://scott.yang.id.au/2004/06/se-hilite/" title="external link to http://scott.yang.id.au/2004/06/se-hilite/" class="http" rel="http://scott.yang.id.au/2004/06/se-hilite/">Search Engine Keyword Highlight</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">yes, I know it’s cheating – but it works fine when you don’t want to hack your back-end.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="2" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Tools</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">May’12</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/subtleGradient/javascript.tmbundle" title="secure link to https://github.com/subtleGradient/javascript.tmbundle" class="https" rel="https://github.com/subtleGradient/javascript.tmbundle">javascript.tmbundle</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">An indispensable <a href="http://the.taoofmac.com/space/apps/TextMate" class="wiki" title="apps/TextMate was updated 3 years, 1 month ago">TextMate</a> add-on (the autocompletion features alone are priceless)</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Apr’11</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.phantomjs.org/" title="external link to http://www.phantomjs.org/" class="http" rel="http://www.phantomjs.org/">PhantomJS</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A complete <a href="http://en.wikipedia.org/wiki/WebKit" title="link to WebKit on en.wikipedia.org" class="interwiki" rel="Wikipedia:WebKit">WebKit</a> web stack, made scriptable via <a href="http://the.taoofmac.com/space/dev/JavaScript" class="wiki" title="dev/JavaScript was updated 19 minutes ago">JavaScript</a>. Awesome for testing, rendering pages to raster formats, etc.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="4" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">3D</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Mar’12</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://schteppe.github.com/cannon.js/" title="external link to http://schteppe.github.com/cannon.js/" class="http" rel="http://schteppe.github.com/cannon.js/">cannon.js</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">An amazing physics engine.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="3" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Mar’11</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://code.google.com/p/adamia-3d/" title="external link to http://code.google.com/p/adamia-3d/" class="http" rel="http://code.google.com/p/adamia-3d/">adamia-3d</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A pure JS library with an interesting math component.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.ambiera.com/copperlicht/index.html" title="external link to http://www.ambiera.com/copperlicht/index.html" class="http" rel="http://www.ambiera.com/copperlicht/index.html">CopperLicht</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A full-featured 3D engine.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/mrdoob/three.js/" title="secure link to https://github.com/mrdoob/three.js/" class="https" rel="https://github.com/mrdoob/three.js/">three.js</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Probably the current (best) bet to work with WebGL. (some interesting samples <a href="http://aerotwist.com/lab" title="external link to http://aerotwist.com/lab" class="http" rel="http://aerotwist.com/lab">here</a></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="18" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Toolkits</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Sep’14</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/jlongster/js-csp" title="secure link to https://github.com/jlongster/js-csp" class="https" rel="https://github.com/jlongster/js-csp">js-csp</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">All the fun of <a href="http://the.taoofmac.com/space/dev/Clojure" class="wiki" title="dev/Clojure was updated 3 months, 8 hours ago">Clojure</a> <code>core.async</code> without the beauty.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Oct’13</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="https://github.com/moot/riotjs" title="secure link to https://github.com/moot/riotjs" class="https" rel="https://github.com/moot/riotjs">Riot.js</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">An opinionated take on <span class="caps">MVP</span></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Oct’13 <a href="http://minifiedjs.com" title="external link to http://minifiedjs.com" class="http" rel="http://minifiedjs.com">Minified.js</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A tiny replacement for jQuery/Zepto/etc.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">May’13</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://bookshelfjs.org" title="external link to http://bookshelfjs.org" class="http" rel="http://bookshelfjs.org">Bookshelf.js</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A sane <span class="caps">ORM</span>.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="4" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Feb’13</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://pouchdb.com" title="external link to http://pouchdb.com" class="http" rel="http://pouchdb.com">PouchDB</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A local storage wrapper with the ability to work offline and sync with a remote source.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://lvivski.github.com/anima/" title="external link to http://lvivski.github.com/anima/" class="http" rel="http://lvivski.github.com/anima/">anima.js</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A tiny, but flexible animation library.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://rsms.me/uilayer" title="external link to http://rsms.me/uilayer" class="http" rel="http://rsms.me/uilayer">uilayer</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A very nice abstraction for managing content positioning and animation using layers (and 3D transforms).</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://rekapi.com" title="external link to http://rekapi.com" class="http" rel="http://rekapi.com">Rekapi</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A keyframe animation library with tweening.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Aug’11</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://github.com/documentcloud/underscore/" title="external link to http://github.com/documentcloud/underscore/" class="http" rel="http://github.com/documentcloud/underscore/">Underscore</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A small but powerful functional programming toolkit.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Mar’11</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://the.taoofmac.com/space/links/2011/03/23/1253" class="wiki" title="links/2011/03/23/1253 was updated 3 years, 8 months ago">php.js</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Useful for porting across app logic.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Feb 20’11</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://jashkenas.github.com/coffee-script/" title="external link to http://jashkenas.github.com/coffee-script/" class="http" rel="http://jashkenas.github.com/coffee-script/">CoffeeScript</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Sanity, restored.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Nov 7’09</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://code.google.com/closure/" title="external link to http://code.google.com/closure/" class="http" rel="http://code.google.com/closure/">Closure</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A compiler, library and toolchain by <a href="http://the.taoofmac.com/space/com/Google" class="wiki" title="com/Google was updated 6 years, 9 months ago">Google</a>.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="6" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Dec 16’07</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://taffydb.com/index.cfm" title="external link to http://taffydb.com/index.cfm" class="http" rel="http://taffydb.com/index.cfm">Taffy DB</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">an interesting “database” library.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://prototype.conio.net/" title="external link to http://prototype.conio.net/" class="http" rel="http://prototype.conio.net/">Prototype</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">heavily driven by <a href="http://the.taoofmac.com/space/dev/Ruby/Rails" class="wiki" title="dev/Ruby/Rails was updated 8 years, 6 months ago">Rails</a></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.cross-browser.com" title="external link to http://www.cross-browser.com" class="http" rel="http://www.cross-browser.com">Cross-Browser</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://dojotoolkit.org/" title="external link to http://dojotoolkit.org/" class="http" rel="http://dojotoolkit.org/">dojo Toolkit</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">a <a href="http://en.wikipedia.org/wiki/User_interface" title="link to User_interface on en.wikipedia.org" class="interwiki" rel="Wikipedia:User_interface">UI</a> toolkit for dynamic website implementation</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://moofx.mad4milk.net/" title="external link to http://moofx.mad4milk.net/" class="http" rel="http://moofx.mad4milk.net/">Moo.fx</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">very lightweight (3KB)</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://jquery.com/" title="external link to http://jquery.com/" class="http" rel="http://jquery.com/">JQuery</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">it’s everywhere these days.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="2" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Server-side</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Dec’14</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://duktape.org/" title="external link to http://duktape.org/" class="http" rel="http://duktape.org/">Ducktape</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">An embeddable JavaScript engine</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">May 16’10</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://nodejs.org/" title="external link to http://nodejs.org/" class="http" rel="http://nodejs.org/">node.js</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">An event-oriented framework for doing I/O using <a href="http://the.taoofmac.com/space/com/Google" class="wiki" title="com/Google was updated 6 years, 9 months ago">Google’s</a> V8 engine.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="2" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://en.wikipedia.org/wiki/User_interface" title="link to User_interface on en.wikipedia.org" class="interwiki" rel="Wikipedia:User_interface">UI</a> Frameworks</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Apr 10’10</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://ukijs.org/" title="external link to http://ukijs.org/" class="http" rel="http://ukijs.org/"><span class="caps">UKI</span></a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">A simple <a href="http://en.wikipedia.org/wiki/User_interface" title="link to User_interface on en.wikipedia.org" class="interwiki" rel="Wikipedia:User_interface">UI</a> kit for complex web apps that was used to do a complete <a href="http://the.taoofmac.com/space/apps/Mail" class="wiki" title="apps/Mail was updated 7 years, 3 weeks ago">Mail.app</a> mock-up</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Nov 7’09</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://cappuccino.org/" title="external link to http://cappuccino.org/" class="http" rel="http://cappuccino.org/">Cappuccino</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Utterly amazing, and used by very complex web apps like <a href="http://280slides.com/" title="external link to http://280slides.com/" class="http" rel="http://280slides.com/">280 Slides</a> and <a href="http://gomockingbird.com/" title="external link to http://gomockingbird.com/" class="http" rel="http://gomockingbird.com/">Mockingbird</a></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="8" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Media</td> <td rowspan="8" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Dec 16’07</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://smoothslideshow.jondesign.net/index.html" title="external link to http://smoothslideshow.jondesign.net/index.html" class="http" rel="http://smoothslideshow.jondesign.net/index.html">Smooth SlideShow Library</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.openlayers.org/" title="external link to http://www.openlayers.org/" class="http" rel="http://www.openlayers.org/">OpenLayers</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">a map navigation <a href="http://en.wikipedia.org/wiki/User_interface" title="link to User_interface on en.wikipedia.org" class="interwiki" rel="Wikipedia:User_interface">UI</a></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www-128.ibm.com/developerworks/xml/library/x-ajaxslideshow/" title="external link to http://www-128.ibm.com/developerworks/xml/library/x-ajaxslideshow/" class="http" rel="http://www-128.ibm.com/developerworks/xml/library/x-ajaxslideshow/">Ken Burns Slideshows</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.agilepartners.com/blog/2005/12/07/iphoto-image-resizing-using-javascript/" title="external link to http://www.agilepartners.com/blog/2005/12/07/iphoto-image-resizing-using-javascript/" class="http" rel="http://www.agilepartners.com/blog/2005/12/07/iphoto-image-resizing-using-javascript/">iPhoto-like image resizing using Javascript</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://orangoo.com/labs/GreyBox/" title="external link to http://orangoo.com/labs/GreyBox/" class="http" rel="http://orangoo.com/labs/GreyBox/">GreyBox</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">a <a href="http://the.taoofmac.com/space/com/Apple/OSX" class="wiki" title="com/Apple/OSX was updated 8 years, 4 months ago">Mac OS X</a> like popup.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://chimpen.com/fadomatic/index.html" title="external link to http://chimpen.com/fadomatic/index.html" class="http" rel="http://chimpen.com/fadomatic/index.html">fadomatic</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">cross-browser <span class="caps">DIV</span> fader</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.walterzorn.com/index.htm" title="external link to http://www.walterzorn.com/index.htm" class="http" rel="http://www.walterzorn.com/index.htm">Walter Zorn</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">vector drawing, graphing, and other amazing stuff</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://slayeroffice.com/code/imageCrossFade/xfade2.html" title="external link to http://slayeroffice.com/code/imageCrossFade/xfade2.html" class="http" rel="http://slayeroffice.com/code/imageCrossFade/xfade2.html">image cross fader</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="6" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Development</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Apr 17’10</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://ejohn.org/apps/learn/" title="external link to http://ejohn.org/apps/learn/" class="http" rel="http://ejohn.org/apps/learn/">Learning Advanced Javascript</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">An interactive tutorial.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="5" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Dec 16’07</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.billyreisinger.com/jash/" title="external link to http://www.billyreisinger.com/jash/" class="http" rel="http://www.billyreisinger.com/jash/">Jash: JavaScript Shell</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://simon.incutio.com/archive/2006/01/20/escape" title="external link to http://simon.incutio.com/archive/2006/01/20/escape" class="http" rel="http://simon.incutio.com/archive/2006/01/20/escape">Escaping regular expression characters</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.crockford.com/javascript/jslint.html" title="external link to http://www.crockford.com/javascript/jslint.html" class="http" rel="http://www.crockford.com/javascript/jslint.html">JSLint</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">an interesting <a href="http://the.taoofmac.com/space/lint" class="wikiunknown" title="lint is not defined yet">lint</a> adaptation for <a href="http://the.taoofmac.com/space/dev/JavaScript" class="wiki" title="dev/JavaScript was updated 19 minutes ago">JavaScript</a></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://gleepglop.com/javascripts/logger/" title="external link to http://gleepglop.com/javascripts/logger/" class="http" rel="http://gleepglop.com/javascripts/logger/">Lumberjack</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">a set of logging utilities</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://openjsan.org/" title="external link to http://openjsan.org/" class="http" rel="http://openjsan.org/"><span class="caps">JSAN</span></a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://the.taoofmac.com/space/dev/CPAN" class="wiki" title="dev/CPAN was updated 11 years, 6 months ago"><span class="caps">CPAN</span></a> for <a href="http://the.taoofmac.com/space/dev/JavaScript" class="wiki" title="dev/JavaScript was updated 19 minutes ago">JavaScript</a>, of a sort</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="4" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Mouse Input</td> <td rowspan="4" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Dec 16’07</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://tool-man.org/examples/sorting.html" title="external link to http://tool-man.org/examples/sorting.html" class="http" rel="http://tool-man.org/examples/sorting.html">Drag-and-Drop Sortable Lists</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.walterzorn.com/dragdrop/dragdrop_e.htm" title="external link to http://www.walterzorn.com/dragdrop/dragdrop_e.htm" class="http" rel="http://www.walterzorn.com/dragdrop/dragdrop_e.htm">Drag-and-Drop Library</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://adomas.org/javascript-mouse-wheel/" title="external link to http://adomas.org/javascript-mouse-wheel/" class="http" rel="http://adomas.org/javascript-mouse-wheel/">Mouse Wheel Programming</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://javascript.geniusbug.com/index.php?action=show&amp;name=pie" title="external link to http://javascript.geniusbug.com/index.php?action=show&amp;name=pie" class="http" rel="http://javascript.geniusbug.com/index.php?action=show&amp;name=pie">Pie Menus</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">a nice <a href="http://the.taoofmac.com/space/Pie" class="wikiunknown" title="Pie is not defined yet">Pie Menus</a> Menus implementation.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="4" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Tables</td> <td rowspan="4" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Dec 16’07</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.activewidgets.com/grid/" title="external link to http://www.activewidgets.com/grid/" class="http" rel="http://www.activewidgets.com/grid/">ActiveScripts Grid</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">an impressive grid control</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.kryogenix.org/code/browser/sorttable/" title="external link to http://www.kryogenix.org/code/browser/sorttable/" class="http" rel="http://www.kryogenix.org/code/browser/sorttable/">Sortable Table</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.workingwith.me.uk/articles/scripting/standardista_table_sorting" title="external link to http://www.workingwith.me.uk/articles/scripting/standardista_table_sorting" class="http" rel="http://www.workingwith.me.uk/articles/scripting/standardista_table_sorting">Standartista Table Sorting</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.mooncalf.me.uk/scripts/table.html" title="external link to http://www.mooncalf.me.uk/scripts/table.html" class="http" rel="http://www.mooncalf.me.uk/scripts/table.html">Sortable and Groupable Table</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"></td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td rowspan="4" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://en.wikipedia.org/wiki/Ajax_(programming)" title="link to Ajax_(programming) on en.wikipedia.org" class="interwiki" rel="Wikipedia:Ajax_(programming)">Ajax</a> related</td> <td rowspan="4" style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">Dec 16’07</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://blog4.bitflux.ch/wiki/LiveSearch" title="external link to http://blog4.bitflux.ch/wiki/LiveSearch" class="http" rel="http://blog4.bitflux.ch/wiki/LiveSearch">LiveSearch</a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">the stuff I used on this site’s search box for a while</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://jpspan.sourceforge.net/wiki/doku.php?id=javascript:xmlhttprequest" title="external link to http://jpspan.sourceforge.net/wiki/doku.php?id=javascript:xmlhttprequest" class="http" rel="http://jpspan.sourceforge.net/wiki/doku.php?id=javascript:xmlhttprequest">Everything</a> about the <a href="http://the.taoofmac.com/space/markup/XML" class="wiki" title="markup/XML was updated 8 years, 7 months ago"><span class="caps" title="Extensible Markup Language">XML</span></a> <a href="http://the.taoofmac.com/space/protocols/HTTP" class="wiki" title="protocols/HTTP was updated 6 years, 2 months ago"><span class="caps" title="HyperText Transfer Protocol">HTTP</span></a> Request intrinsic object</td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">that which is now being dubbed <a href="http://www.adaptivepath.com/publications/essays/archives/000385.php" title="external link to http://www.adaptivepath.com/publications/essays/archives/000385.php" class="http" rel="http://www.adaptivepath.com/publications/essays/archives/000385.php">Ajax</a>. I wonder how far we are from <a href="http://the.taoofmac.com/space/Tide" class="wikiunknown" title="Tide is not defined yet">Tide</a>.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://jpspan.sourceforge.net/wiki/doku.php" title="external link to http://jpspan.sourceforge.net/wiki/doku.php" class="http" rel="http://jpspan.sourceforge.net/wiki/doku.php"><span class="caps">JPSPAN</span></a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">a server-to- <a href="http://the.taoofmac.com/space/dev/JavaScript" class="wiki" title="dev/JavaScript was updated 19 minutes ago">JavaScript</a> bridge using the <a href="http://the.taoofmac.com/space/markup/XML" class="wiki" title="markup/XML was updated 8 years, 7 months ago"><span class="caps" title="Extensible Markup Language">XML</span></a> <a href="http://the.taoofmac.com/space/protocols/HTTP" class="wiki" title="protocols/HTTP was updated 6 years, 2 months ago"><span class="caps" title="HyperText Transfer Protocol">HTTP</span></a> object and some very clever data conversion.</td> </tr> <tr style="font-size: 9pt; border-top: 1px solid #aaa;"> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;"><a href="http://www.modernmethod.com/sajax/" title="external link to http://www.modernmethod.com/sajax/" class="http" rel="http://www.modernmethod.com/sajax/"><span class="caps">SAJAX</span></a></td> <td style="min-width: 80px; margin: 0px; padding: 4px; vertical-align: top; border-top: 1px solid #aaa;">a similar effort geared towards <a href="http://the.taoofmac.com/space/dev/PHP" class="wiki" title="dev/PHP was updated 6 months, 3 weeks ago"><span class="caps">PHP</span></a></td> </tr> </tbody> </table> <h3>Snippets:</h3> <h4>Associative Arrays in JavaScript</h4> <div class="syntax"><pre><span class="c1">// Taken from:</span> <span class="c1">// http://philikon.wordpress.com/2010/04/20/associative-arrays-in-javascript/</span> <span class="kd">function</span> <span class="nx">dict</span> <span class="p">()</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">keys</span> <span class="o">=</span> <span class="p">[];</span> <span class="kd">var</span> <span class="nx">values</span> <span class="o">=</span> <span class="p">[];</span> <span class="k">return</span> <span class="p">{</span> <span class="nx">get</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">values</span><span class="p">[</span><span class="nx">keys</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="nx">key</span><span class="p">)]</span> <span class="p">},</span> <span class="nx">set</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">value</span><span class="p">)</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">keys</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="nx">key</span><span class="p">);</span> <span class="k">if</span> <span class="p">(</span><span class="nx">i</span> <span class="o">===</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">keys</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="p">}</span> <span class="nx">keys</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nx">key</span><span class="p">;</span> <span class="nx">values</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nx">value</span><span class="p">;</span> <span class="p">},</span> <span class="nx">del</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">keys</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="nx">key</span><span class="p">);</span> <span class="nx">keys</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span> <span class="nx">values</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span> <span class="p">},</span> <span class="nx">keys</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">keys</span><span class="p">.</span><span class="nx">slice</span><span class="p">();</span> <span class="p">},</span> <span class="nx">values</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">values</span><span class="p">.</span><span class="nx">slice</span><span class="p">();</span> <span class="p">},</span> <span class="p">};</span> <span class="p">}</span> </pre></div><br/><small><a href="http://the.taoofmac.com/space/dev/JavaScript" title="link to http://the.taoofmac.com/space/dev/JavaScript">&#x262F;</a></small><p> <div style="-webkit-border-radius: 8px; font-size: small; background-color: #ccc; color: #000; border: 1px solid #aaa; margin: 0; padding: 3px; overflow: hidden;"><p style="padding; 2px; margin: 2px;"><a title="" href="http://the.taoofmac.com/"><img align="left" alt="Tao of Mac Icon" src="http://the.taoofmac.com/img/pavatar48.png"/></a> "<a href="http://the.taoofmac.com/space/dev/JavaScript"><strong>JavaScript</strong></a>" was written by <a href="http://the.taoofmac.com/RuiCarmo">Rui Carmo</a> for <a href="http://the.taoofmac.com">The Tao of Mac</a> and was originally posted on Wednesday, Feb 28<sup>th</sup> 2007. Except as noted, it's &copy;2014 Rui Carmo and licensed for reuse under <a href="http://creativecommons.org/licenses/by-nc-nd/3.0/">CC BY-NC-ND 3.0</a>.</p> <p>As usual, please consider <a href="http://the.taoofmac.com/space/site/Donate">donating</a> towards hosting and bandwidth costs.</p> </div> </p> Thu, 04 Dec 2014 21:09:00 GMT Rui Carmo The Tao of Mac http://the.taoofmac.com/space/dev/JavaScript wiki Docker Announces Orchestration for Multi-Container Distributed Apps http://the.taoofmac.com/space/links/2014/12/04/1641 <div class="quicklook_holder drop-shadow lifted"><a title="" href="http://the.taoofmac.com/media/links/2014/12/04/1641/large.jpg" class="quicklook"><img alt="Click on the image to zoom in" src="http://the.taoofmac.com/pagethumb/links/2014/12/04/1641/large.jpg" class="thumb" /></a></div> <p>tl;dr: they’re moving closer to the Kubernetes feature set, with a little automation for setup.</p><br/><small><a href="http://the.taoofmac.com/space/links/2014/12/04/1641#docker-announces-orchestration-for-multi-container-distributed-apps" title="link to http://the.taoofmac.com/space/links/2014/12/04/1641#docker-announces-orchestration-for-multi-container-distributed-apps">&#x262F;</a></small> Thu, 04 Dec 2014 16:41:17 GMT Rui Carmo The Tao of Mac http://the.taoofmac.com/space/links/2014/12/04/1641#docker-announces-orchestration-for-multi-container-distributed-apps wiki Meet Edison - Fun robotics for tomorrow's inventors! http://the.taoofmac.com/space/links/2014/12/04/1129 <div class="quicklook_holder drop-shadow lifted"><a title="" href="http://the.taoofmac.com/media/links/2014/12/04/1129/large.jpg" class="quicklook"><img alt="Click on the image to zoom in" src="http://the.taoofmac.com/pagethumb/links/2014/12/04/1129/large.jpg" class="thumb" /></a></div> <p>Australia seems like a nicer, more innovative place every day. Too bad all the wildlife is out to get you.</p><br/><small><a href="http://the.taoofmac.com/space/links/2014/12/04/1129#meet-edison---fun-robotics-for-tomorrow-s-inventors-" title="link to http://the.taoofmac.com/space/links/2014/12/04/1129#meet-edison---fun-robotics-for-tomorrow-s-inventors-">&#x262F;</a></small> Thu, 04 Dec 2014 11:29:21 GMT Rui Carmo The Tao of Mac http://the.taoofmac.com/space/links/2014/12/04/1129#meet-edison---fun-robotics-for-tomorrow-s-inventors- wiki CoreOS is building a container runtime, Rocket http://the.taoofmac.com/space/links/2014/12/01/2241 <div class="quicklook_holder drop-shadow lifted"><a title="" href="http://the.taoofmac.com/media/links/2014/12/01/2241/large.jpg" class="quicklook"><img alt="Click on the image to zoom in" src="http://the.taoofmac.com/pagethumb/links/2014/12/01/2241/large.jpg" class="thumb" /></a></div> <p>As if there wasn’t <a href="http://xkcd.com/927/" title="external link to http://xkcd.com/927/" class="http" rel="http://xkcd.com/927/">enough confusion</a> around Linux containers right now. That <a href="http://blog.docker.com/2014/12/initial-thoughts-on-the-rocket-announcement/" title="external link to http://blog.docker.com/2014/12/initial-thoughts-on-the-rocket-announcement/" class="http" rel="http://blog.docker.com/2014/12/initial-thoughts-on-the-rocket-announcement/">Docker thought it worthy of comment</a> is worth reflecting upon, too.</p><br/><small><a href="http://the.taoofmac.com/space/links/2014/12/01/2241#coreos-is-building-a-container-runtime--rocket" title="link to http://the.taoofmac.com/space/links/2014/12/01/2241#coreos-is-building-a-container-runtime--rocket">&#x262F;</a></small> Mon, 01 Dec 2014 22:41:37 GMT Rui Carmo The Tao of Mac http://the.taoofmac.com/space/links/2014/12/01/2241#coreos-is-building-a-container-runtime--rocket wiki Done http://the.taoofmac.com/space/blog/2014/12/01/2220 <p>You have a to-do list. A monster you’ve been feeding for years, kept under the bed and occasionally pulled out for a mild shaving, much like a pocket yak.</p> <p>That list is the epitome of Darwinism, having evolved over the years (decades?) and jumped across machines, with some entries essentially unchanged from when you scratched their great-great-ancestors on your Palm Pilot, and it contains echoes of all your interests, pursuits and concerns across most of your adult life.</p> <p>The big ticket items are mostly done: Buy house; furnish it; set aside cash for a rainy day; make sure the kids will inherit your pension fund; go places; buy piano.</p> <p>Then there’s the recurring stuff: Learn new things; bootstrap yourself every couple of years; read voraciously; take photographs, not mediocre snaps; write daily; listen to new music; check up on people from time to time.</p> <p>The rest is the boring stuff, the ones you check off or move forward week after week: Meet with John about the facilities project; buy cables; send notes on yesterday’s presentation; write a product spec; review code; meet with this week’s All-Singing, All-Dancing Vendor.</p> <p>Somewhere in the middle is the important stuff. The ones that fall into the cracks of everyday life and that you hardly even notice — until you realize they actually <em>were</em> on the list, but you moved them down.</p> <p>There’s a lot more to be said about to-do lists (and yes, I do maintain one — painstakingly so, in fact, largely work-related), but the important thing is that you have them on hand to make sure you can pick out the important stuff and act on it.</p> <p>And that’s the real challenge — figuring out the important stuff. There’s always room for improvement, especially where it concerns the “check up on people from time to time” thing.</p> <p>Considering that someone I hadn’t spoken with in person since 2007 is now gone, messaging her a month ago to have lunch clearly wasn’t enough, and that’s not something you can tackle with a to-do list.</p><br/><small><a href="http://the.taoofmac.com/space/blog/2014/12/01/2220#done" title="link to http://the.taoofmac.com/space/blog/2014/12/01/2220#done">&#x262F;</a></small><p> <div style="-webkit-border-radius: 8px; font-size: small; background-color: #ccc; color: #000; border: 1px solid #aaa; margin: 0; padding: 3px; overflow: hidden;"><p style="padding; 2px; margin: 2px;"><a title="" href="http://the.taoofmac.com/"><img align="left" alt="Tao of Mac Icon" src="http://the.taoofmac.com/img/pavatar48.png"/></a> "<a href="http://the.taoofmac.com/space/blog/2014/12/01/2220#done"><strong>Done</strong></a>" was written by <a href="http://the.taoofmac.com/RuiCarmo">Rui Carmo</a> for <a href="http://the.taoofmac.com">The Tao of Mac</a> and was originally posted on Monday, Dec 1<sup>st</sup> 2014. Except as noted, it's &copy;2014 Rui Carmo and licensed for reuse under <a href="http://creativecommons.org/licenses/by-nc-nd/3.0/">CC BY-NC-ND 3.0</a>.</p> <p>As usual, please consider <a href="http://the.taoofmac.com/space/site/Donate">donating</a> towards hosting and bandwidth costs.</p> </div> </p> Mon, 01 Dec 2014 22:20:00 GMT Rui Carmo The Tao of Mac http://the.taoofmac.com/space/blog/2014/12/01/2220#done wiki Chinese Mobile App UI Trends http://the.taoofmac.com/space/links/2014/12/01/1741 <div class="quicklook_holder drop-shadow lifted"><a title="" href="http://the.taoofmac.com/media/links/2014/12/01/1741/large.jpg" class="quicklook"><img alt="Click on the image to zoom in" src="http://the.taoofmac.com/pagethumb/links/2014/12/01/1741/large.jpg" class="thumb" /></a></div> <p>Fascinating.</p><br/><small><a href="http://the.taoofmac.com/space/links/2014/12/01/1741#chinese-mobile-app-ui-trends" title="link to http://the.taoofmac.com/space/links/2014/12/01/1741#chinese-mobile-app-ui-trends">&#x262F;</a></small> Mon, 01 Dec 2014 17:41:50 GMT Rui Carmo The Tao of Mac http://the.taoofmac.com/space/links/2014/12/01/1741#chinese-mobile-app-ui-trends wiki