<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>A curated directory of artisanal development tools that we used to like before they went mainstream</description><title>Hipster Dev Stack</title><generator>Tumblr (3.0; @hipsterdevstack)</generator><link>http://hipsterdevstack.tumblr.com/</link><item><title>csscss</title><description>&lt;a href="http://zmoazeni.github.io/csscss/"&gt;csscss&lt;/a&gt;: &lt;p&gt;There’s nothing we like better than turning up our noses at &lt;em&gt;inefficient&lt;/em&gt; CSS and here’s a tool that can help us keep the edge. &lt;em&gt;CSSCSS&lt;/em&gt; analyzes CSS or SASS (we like to kick it old skool ourselves but, whatever) finds duplicate rules and, like, shows you where they are.&lt;/p&gt;</description><link>http://hipsterdevstack.tumblr.com/post/47524801383</link><guid>http://hipsterdevstack.tumblr.com/post/47524801383</guid><pubDate>Tue, 09 Apr 2013 07:51:11 +0100</pubDate><dc:creator>piraterob</dc:creator></item><item><title>js2coffee</title><description>&lt;a href="http://js2coffee.org/"&gt;js2coffee&lt;/a&gt;: &lt;p&gt;Ever wanted to turn legacy JavaScript into CoffeeScript? Now you can, either online or via the terminal&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;npm install -g js2coffee
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You should totally set this up as a git post commit hook to definitively win the war with that one guy on your team who insists on still using JavaScript.&lt;/p&gt;</description><link>http://hipsterdevstack.tumblr.com/post/43149469597</link><guid>http://hipsterdevstack.tumblr.com/post/43149469597</guid><pubDate>Fri, 15 Feb 2013 15:04:03 +0000</pubDate><dc:creator>piraterob</dc:creator></item><item><title>Six</title><description>&lt;a href="https://github.com/matthewrobb/six"&gt;Six&lt;/a&gt;: &lt;p&gt;CoffeeScript? That’s &lt;em&gt;so&lt;/em&gt; 2012. We’re already porting our stuff to &lt;strong&gt;Six&lt;/strong&gt; the ECMAScript 6 pre-processor. I guess you wouldn’t have heard of it yet but you will soon because we’ll be making sure everyone can overhear us affecting blasé detachment whilst discussing it in the latest pop-up dirty food joint.&lt;/p&gt;</description><link>http://hipsterdevstack.tumblr.com/post/40672956153</link><guid>http://hipsterdevstack.tumblr.com/post/40672956153</guid><pubDate>Wed, 16 Jan 2013 09:56:13 +0000</pubDate><category>javascript</category><category>ecmascript</category><category>coffeescript</category><dc:creator>piraterob</dc:creator></item><item><title>FRP? Yeah, we were doing that in 2012</title><description>&lt;a href="https://github.com/raimohanska/bacon.js"&gt;FRP? Yeah, we were doing that in 2012&lt;/a&gt;: &lt;p&gt;Surely everyone knows by now that 2013 will be the year of &lt;a href="http://en.wikipedia.org/wiki/Functional_reactive_programming"&gt;Functional reactive programming&lt;/a&gt; (FRP) on the client-side? We totally ditched all those irksome callback functions ages ago, and we even re-wrote the Node.js core libraries for FRP, something which the Node.js dudes flagrantly copied with streams. If you want to buy into this particular bandwagon, you could do worse than take a look at &lt;a href="https://github.com/raimohanska/bacon.js"&gt;Bacon.js&lt;/a&gt;. As a strict vegan I had to roll my own implementation of FRP of course, which I’m calling celeriac.js.&lt;/p&gt;</description><link>http://hipsterdevstack.tumblr.com/post/39558331788</link><guid>http://hipsterdevstack.tumblr.com/post/39558331788</guid><pubDate>Thu, 03 Jan 2013 10:40:55 +0000</pubDate><dc:creator>froots101</dc:creator></item><item><title>Test 'Em</title><description>&lt;a href="https://github.com/airportyh/testem#readme"&gt;Test 'Em&lt;/a&gt;: &lt;p&gt;Obviously we use Chrome Canary as our primary desktop browser but if we sell out and our startup goes mainstream there’s the disturbing possibility that we might start attracting visitors using things like Safari, or even &lt;em&gt;shudder&lt;/em&gt; IE.&lt;/p&gt;

&lt;p&gt;Test ‘em is the slickest solution I’ve seen for running various flavors of JavaScript test in multiple browsers.&lt;/p&gt;

&lt;p&gt;It can pre-process CoffeeScript, run tests automatically as files change, produces &lt;a href="http://testanything.org/wiki/index.php/Main_Page"&gt;Tap&lt;/a&gt; compatible output and most importantly has a lo-fi tabbed command line interface.&lt;/p&gt;</description><link>http://hipsterdevstack.tumblr.com/post/36207388802</link><guid>http://hipsterdevstack.tumblr.com/post/36207388802</guid><pubDate>Wed, 21 Nov 2012 13:30:10 +0000</pubDate><dc:creator>piraterob</dc:creator></item><item><title>Bower</title><description>&lt;p&gt;I&amp;#8217;m the kind of sharp guy who likes to roll my own everything: cigarettes, fresh pasta, nori. So, you know, I don&amp;#8217;t really need a package manager to handle my handcrafted artisanal JavaScript and CSS. I&amp;#8217;m a &lt;a href="http://vanilla-js.com/"&gt;vanilla JS&lt;/a&gt; user, and hey, just because my last project took a lot longer than I said it would, it&amp;#8217;s because that shit is handcrafted. With love. So yeah.&lt;/p&gt;
&lt;p&gt;If you were the sort of lame-o that still uses third-party libraries (if you are still using jQuery why are you even reading this site?), then I guess you could use &lt;a href="http://twitter.github.com/bower/"&gt;Bower&lt;/a&gt;, which is some kind of package manager for client-side code. It was made by some guys at Twitter, though, so I can&amp;#8217;t use it anyway because I&amp;#8217;m boycotting everything they do until they un-ban my &amp;#8216;fixietoot&amp;#8217; Mac client - the one that forces you to type exactly 140 characters for every tweet.&lt;/p&gt;</description><link>http://hipsterdevstack.tumblr.com/post/31261916616</link><guid>http://hipsterdevstack.tumblr.com/post/31261916616</guid><pubDate>Mon, 10 Sep 2012 09:33:13 +0100</pubDate><dc:creator>froots101</dc:creator></item><item><title>Neat vs Semantic GS</title><description>&lt;p&gt;Yesterday saw the release of &lt;a href="http://thoughtbot.com/neat/"&gt;Neat&lt;/a&gt;, a new responsive grid system. Its aim is to not pollute your beautiful semantic markup with &lt;code&gt;grid_n&lt;/code&gt; type classes but instead to use SASS mixins extended from &lt;a href="http://thoughtbot.com/bourbon/"&gt;Bourbon&lt;/a&gt;. I approve of the name (although although mine&amp;#8217;s an &lt;a href="http://pics.campl.us/f/2/22cb0c658a280f4ebdb88aad8bf6b027.jpg"&gt;Old Fashioned&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Does &lt;em&gt;Neat&lt;/em&gt; offer anything other than a snappier name over &lt;a href="http://semantic.gs"&gt;The Semantic Grid System&lt;/a&gt;? Semantic GS has been available for a while and gives you the holy-war avoiding choice of &lt;em&gt;LESS&lt;/em&gt;, &lt;em&gt;SCSS&lt;/em&gt; or &lt;em&gt;Stylus&lt;/em&gt; flavors. I’ve used Semantic GS on &lt;a href="http://freeside.co/"&gt;my own portfolio site&lt;/a&gt; &amp;amp; been very pleased with how easy &amp;amp; unobtrusive it is.&lt;/p&gt;</description><link>http://hipsterdevstack.tumblr.com/post/30930419788</link><guid>http://hipsterdevstack.tumblr.com/post/30930419788</guid><pubDate>Wed, 05 Sep 2012 13:47:32 +0100</pubDate><dc:creator>piraterob</dc:creator></item><item><title>Webspecter</title><description>&lt;a href="https://github.com/jgonera/webspecter#readme"&gt;Webspecter&lt;/a&gt;: &lt;p&gt;Since &lt;a href="http://casperjs.org/"&gt;CasperJS&lt;/a&gt; has sold out by producing some really nice documentation &amp; a &lt;a href="http://mxcl.github.com/homebrew/"&gt;Homebrew&lt;/a&gt; formula scenesters like us desperately need a new end-to-end testing tool that people in the flyover states haven’t heard of yet…&lt;/p&gt;

&lt;p&gt;¡Hola, Webspecter!&lt;/p&gt;

&lt;p&gt;Like Casper it’s based on &lt;a href="http://phantomjs.org/"&gt;PhantomJS&lt;/a&gt; &amp; supports Coffeescript but the focus is squarely on testing rather than general browser automation. The syntax is BDD derived - based on &lt;a href="http://visionmedia.github.com/mocha/"&gt;Mocha&lt;/a&gt; and &lt;a href="http://chaijs.com/"&gt;Chai&lt;/a&gt;. Best of all it has a nice looking helper extension mechanism that could be the starting point for a robust page abstraction.&lt;/p&gt;</description><link>http://hipsterdevstack.tumblr.com/post/30093080981</link><guid>http://hipsterdevstack.tumblr.com/post/30093080981</guid><pubDate>Fri, 24 Aug 2012 09:30:00 +0100</pubDate><dc:creator>piraterob</dc:creator></item><item><title>Rivets.js</title><description>&lt;a href="http://rivetsjs.com/"&gt;Rivets.js&lt;/a&gt;: &lt;p&gt;Declarative data binding is what all the cool kids are doing right now. If you want the indie coffee house to the Starbucks of &lt;a href="http://angularjs.org/"&gt;Angular.js&lt;/a&gt; then check out &lt;em&gt;Rivets.js&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Unlike the absurdly powerful capabilities of &lt;em&gt;Angular&lt;/em&gt; we’re talking one-way binding from model to view only. That said it’s small, simple, configurable, uses standard &lt;code&gt;data-&lt;/code&gt; attributes and provides an adapter API so it’s simple to hook up to whatever you’re using to manage your data model whether it’s &lt;em&gt;backbone&lt;/em&gt;, &lt;em&gt;spine&lt;/em&gt; or your own artisanal, locally sourced framework.&lt;/p&gt;</description><link>http://hipsterdevstack.tumblr.com/post/26709703957</link><guid>http://hipsterdevstack.tumblr.com/post/26709703957</guid><pubDate>Sat, 07 Jul 2012 18:00:00 +0100</pubDate><dc:creator>piraterob</dc:creator></item><item><title>The JavaScript plugin for Gradle looks like it’s shaping...</title><description>&lt;iframe src="http://player.vimeo.com/video/44848776" width="400" height="242" frameborder="0"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;The &lt;a href="http://git.io/gradlejs"&gt;JavaScript plugin&lt;/a&gt; for &lt;a href="http://gradle.org"&gt;Gradle&lt;/a&gt; looks like it’s shaping up nicely. Does &lt;a href="http://yeoman.io"&gt;Yeoman&lt;/a&gt; have some competition?&lt;/p&gt;</description><link>http://hipsterdevstack.tumblr.com/post/26624233204</link><guid>http://hipsterdevstack.tumblr.com/post/26624233204</guid><pubDate>Fri, 06 Jul 2012 12:57:20 +0100</pubDate><dc:creator>piraterob</dc:creator></item><item><title>Yeoman</title><description>&lt;a href="http://yeoman.io/"&gt;Yeoman&lt;/a&gt;: &lt;p&gt;It hasn’t been released yet and has &lt;a href="http://twitter.com/yeoman"&gt;a Twitter account&lt;/a&gt; that has yet to tweet but already has 930 followers so &lt;em&gt;right now&lt;/em&gt; is definitely the time to start making a lot of noise about &lt;a href="http://yeoman.io/"&gt;Yeoman&lt;/a&gt;. If you wait until next week when people have actually started using it you’re going to look pretty wack.&lt;/p&gt;

&lt;p&gt;What is it, you ask? Oh, right… Well it &lt;em&gt;looks&lt;/em&gt; like it’s &lt;em&gt;going to be&lt;/em&gt; a command line tool for bootstrapping and managing web apps. Want to bootstrap an app with a single command? Want to install &lt;em&gt;jQuery&lt;/em&gt; into your app by just typing &lt;code&gt;yeoman install jquery&lt;/code&gt;?* Want to have your &lt;em&gt;Coffeescript&lt;/em&gt; and &lt;em&gt;SASS&lt;/em&gt; files compiled and your images optimized with a single step? Want to run your unit tests with &lt;em&gt;Phantom&lt;/em&gt; right from the terminal?&lt;/p&gt;

&lt;p&gt;Looks pretty cool to me.&lt;/p&gt;

&lt;p&gt;&lt;small&gt;* Ha! Trick question… &lt;em&gt;jQuery&lt;/em&gt; is waaay too mainstream.&lt;/small&gt;&lt;/p&gt;</description><link>http://hipsterdevstack.tumblr.com/post/26137366467</link><guid>http://hipsterdevstack.tumblr.com/post/26137366467</guid><pubDate>Fri, 29 Jun 2012 13:30:54 +0100</pubDate><dc:creator>piraterob</dc:creator></item><item><title>Iced Coffeescript</title><description>&lt;a href="http://maxtaco.github.com/coffee-script/"&gt;Iced Coffeescript&lt;/a&gt;: &lt;p&gt;Whether you’re dealing with any asynchronous programming or just want an opportunity to drop a nonchalant “oh, you’re using &lt;em&gt;traditional&lt;/em&gt; Coffeescript?” into conversations then Iced Coffeescript could be for you.&lt;/p&gt;

&lt;p&gt;It adds &lt;code&gt;await&lt;/code&gt; and &lt;code&gt;defer&lt;/code&gt; keywords to the language to let you cleanly manage joining after asynchronous callbacks. Reading the documentation you start out all “whatever” as the first example doesn’t seem to offer a great advantage but as the examples get more complex &amp; the &lt;em&gt;vanilla&lt;/em&gt; Coffeescript (see, that gave me a nice elitist glow inside) required grows more &amp; more convoluted the &lt;em&gt;Iced&lt;/em&gt; syntax starts to shine.&lt;/p&gt;

&lt;p&gt;I guess the big questions are; how well maintained it will be as Coffeescript itself matures? is there any chance of this stuff getting ported back? and is it going to cause any undue hassles such as generating hellishly difficult to debug JavaScript?&lt;/p&gt;</description><link>http://hipsterdevstack.tumblr.com/post/24466277436</link><guid>http://hipsterdevstack.tumblr.com/post/24466277436</guid><pubDate>Tue, 05 Jun 2012 12:40:58 +0100</pubDate><category>coffeescript</category><dc:creator>piraterob</dc:creator></item><item><title>fixie.js</title><description>&lt;a href="http://fixiejs.com/"&gt;fixie.js&lt;/a&gt;: &lt;p&gt;With a name like that we can hardly ignore it… &lt;em&gt;Fixie&lt;/em&gt; saves you the trouble of copy ‘n pasting from &lt;a href="http://hipsteripsum.me"&gt;hipster ipsum&lt;/a&gt; by automatically injecting &lt;small&gt;classy ethical 8bit locavore&lt;/small&gt; filler text into your site.&lt;/p&gt;

&lt;p&gt;I like the way different length content is generated for &lt;em&gt;article&lt;/em&gt;, &lt;em&gt;p&lt;/em&gt;, &lt;em&gt;a&lt;/em&gt; &amp; &lt;em&gt;img&lt;/em&gt; elements and can merge with ‘real’ content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro-tip:&lt;/strong&gt; use &lt;a href="http://placekitten.com/"&gt;placekitten&lt;/a&gt; for images by adding this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;fixie.setImagePlaceholder('http://placekitten.com/g/${w}/${h}').init();
&lt;/code&gt;&lt;/pre&gt;</description><link>http://hipsterdevstack.tumblr.com/post/24088036234</link><guid>http://hipsterdevstack.tumblr.com/post/24088036234</guid><pubDate>Wed, 30 May 2012 23:27:00 +0100</pubDate><category>JavaScript</category><category>Testing</category><category>Lorem Ipsum</category><dc:creator>piraterob</dc:creator></item><item><title>Lo-Dash</title><description>&lt;a href="http://lodash.com/"&gt;Lo-Dash&lt;/a&gt;: &lt;p&gt;You! Yes, you! You’re the kind of hipster that still thinks Williamsburg or Dalston are cool, aren’t you? You’re still using Underscore.js aren’t you? LOSER!&lt;/p&gt;
&lt;p&gt;Stop it immediately. You’ll get at least 10 milliseconds page load performance if you use Lo-Dash, a drop-in replacement for Underscore.js with a few added features. I’m almost reluctant to tell &lt;em&gt;you&lt;/em&gt; about it in case you tell your Pabst-drinking loser friends about it.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://lodash.com/"&gt;lodash.com&lt;/a&gt;&lt;/p&gt;</description><link>http://hipsterdevstack.tumblr.com/post/24067107403</link><guid>http://hipsterdevstack.tumblr.com/post/24067107403</guid><pubDate>Wed, 30 May 2012 17:17:57 +0100</pubDate><category>javascript</category><category>libraries</category><dc:creator>froots101</dc:creator></item><item><title>Casper JS</title><description>&lt;a href="http://casperjs.org"&gt;Casper JS&lt;/a&gt;: &lt;p&gt;End-to-end testing web apps can be trickier than doing trackstands on your fixie without spilling your flat white. Tools are often a pain to get running, test suites awkward to organise. Do you test in-browser with JS or using something like Selenium? Ugh, total drag.&lt;/p&gt;

&lt;p&gt;Casper JS on the other hand is crazy simple to set up and use. It sits on top of &lt;em&gt;Phantom JS&lt;/em&gt; (oh, you really haven’t heard of that? It’s a pretty cool headless WebKit implementation). Casper provides a friendly API layer in much the way that &lt;a href="http://gebish.org"&gt;Geb&lt;/a&gt; complements Selenium.&lt;/p&gt;

&lt;p&gt;Casper can run individual Java/Coffeescript files or directory trees, interact with the file system to upload or save, can output JUnit-compatible reports &amp; grab screenshots.&lt;/p&gt;

&lt;p&gt;It will be interesting to try to work up a complex page object model &amp; really put it through its paces with richer interactions but the simple stuff I’ve tried so far has been promising.&lt;/p&gt;</description><link>http://hipsterdevstack.tumblr.com/post/23478855590</link><guid>http://hipsterdevstack.tumblr.com/post/23478855590</guid><pubDate>Mon, 21 May 2012 14:56:52 +0100</pubDate><category>Testing</category><category>JavaScript</category><category>Coffeescript</category><dc:creator>piraterob</dc:creator></item><item><title>Grunt</title><description>&lt;p&gt;I know at least one other person using this, and it&amp;#8217;s already at version 0.3.9, and has good documentation, so this is seriously in danger of becoming unpleasantly mainstream. It&amp;#8217;s practically enterprise already. If it were an &lt;a href="http://www.youtube.com/watch?v=AYmWPaxs3PY"&gt;early-90s Portland indie-music café&lt;/a&gt; we&amp;#8217;d have a riot, charge no money for entry and get it shut down on purpose.&lt;/p&gt;
&lt;p&gt;Having said that, if you want a really simple set of build tools for your JavaScript project, then &lt;a href="http://gruntjs.com/"&gt;Grunt&lt;/a&gt; is for you.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m using it to compile my Haskell source files to pure JavaScript byte-code. Yeah.&lt;/p&gt;</description><link>http://hipsterdevstack.tumblr.com/post/23472315551</link><guid>http://hipsterdevstack.tumblr.com/post/23472315551</guid><pubDate>Mon, 21 May 2012 09:51:54 +0100</pubDate><category>JavaScript</category><dc:creator>froots101</dc:creator></item><item><title>Angular JS</title><description>&lt;a href="http://angularjs.org/"&gt;Angular JS&lt;/a&gt;: &lt;p&gt;Some nice ideas in Angular; plain objects for models, automated event handling &amp; extensible HTML for building components.&lt;/p&gt;

&lt;p&gt;I was initially put off by the non-standard &lt;code&gt;ng-*&lt;/code&gt; attributes but apparently those of us who are pedantic enough to care about HTML validity can use &lt;code&gt;data-ng-*&lt;/code&gt; instead.&lt;/p&gt;

&lt;p&gt;As &lt;a href="https://twitter.com/tregoning/statuses/202598467082780672"&gt;Mex puts it&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Finally a front-end tech from Google that doesn’t suck.&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://hipsterdevstack.tumblr.com/post/23421433637</link><guid>http://hipsterdevstack.tumblr.com/post/23421433637</guid><pubDate>Sun, 20 May 2012 15:01:00 +0100</pubDate><category>Javascript</category><category>Frameworks</category><category>Realtime</category><dc:creator>piraterob</dc:creator></item></channel></rss>
