Jan 14th, 2012
Magic view components For developers who like bindings, this comparison of 10 JavaScript MVC-like frameworks is a good place to start.
Moar info Even though Zombie.js is a test tool, designed for people who write tests, you’ll be surprised how many people report issues without including a test case (hint: almost all). Or for that matter, how many bug reports are untestable. Kind of depressing. Maybe I should start linking to this page.
Vim Loving ctrlp - Fuzzy file, buffer, mru and tag finder for Vim
Intuitive The Quiz Daniel Kahneman Wants You to Fail. A great read on why intuition fails us so often (not just politicians).
QotD Kent Beck:
doing good engineering is not primarily making good decisions, it’s seeking good feedback which lets you quickly discard bad decisions
|
Posted by Assaf
Filed in general
Jan 14th, 2012
12 steps Heroku’s twelve-factor app, a methodology for building software-as-a-service apps, is a great read:
This document synthesizes all of our experience and observations on a wide variety of software-as-a-service apps in the wild. It is a triangulation on ideal practices app development, paying particular attention to the dynamics of the organic growth of an app over time, the dynamics of collaboration between developers working on the app’s codebase, and avoiding the cost of software erosion.
Impress your boss Case study: How & why to build a consumer app with Node.js
Non blocking On the performance impact of loading JavaScript with insertBefore and async=true.
Think small Interesting tidbit from Small teams are dramatically more efficient than large teams:
QSM found another explanation for the huge cost differential between small and large teams. The defect rate for the large teams was five times greater than for the small teams.
/bin/sh To boldly go where no SQL has gone before: Relational shell programming.
QotD Coda Hale:
You don’t “beat the CAP theorem”. You “build distributed systems that don’t suck miserably”. At best.
|
Posted by Assaf
Filed in general
Jan 8th, 2012

Pipes Enough people retweeted this that I guess it’s worth a second mention: on when to use stdout and when to use stderr.
Stylish Profiling CSS. Stuff I didn’t know and a nice preview of Opera’a CSS profile, soon to be re-imagined in WebKit.
Drool Dreadnot is an uber-geek-sexy continous deployment tool. Maybe an overkill for what I need, still got to give it a look over.
OOPs This is quite a comprehensive overview of objects in JavaScript. JavaScript is based on objects, not so much classes, which some people find easier to grasp and others don’t. It also has some “interesting” design decisions. So it’s always good to have another exploration of object, prototype and friends.
Legacy es6-shim is, and I quote, an “ECMAScript 6 (Harmony) compatibility shims for legacy JavaScript engines”, where “legacy” is likely whatever browser you’re using right now.
QotD UX Yoda:
User error it may be. But your responsibility it is.
|
Posted by Assaf
Filed in general
Jan 7th, 2012

Handy This reference for HTML5 compatibility on the various mobile and tablet browsers.
Promising Writing asynchronous control flow with promises.
Adjustable Because HTML5 Boilerplate is already too complicated, you’ll probably want to use Initializr to bootstrap your bootstrap. While you’re at it, check out the new responsive template that adjusts to different screen resolutions. Awesome golden ratio black magic included.
Fourth place NetCraft reports Nginx over-taking Microsoft in the active site market share category, though trailing Apache by quite a distance. The surprising part was fourth place, and no you can’t download and install it yourself: the Google Web server.
And … According to IE6 Countdown, IE6 usage in the US dropped below 1%, reaching 7.7% usage world wide. Most of which seems to come from China. Bonus point, IE7 usage is half that of IE6, so twice as safe to dismiss.
QotD brianlmoon:
OH: “Everyone knows you don’t go full REST. It kills careers.”
|
Posted by Assaf
Filed in general
Jan 3rd, 2012

Pushing it It feels like everyday there’s something new to learn about jQuery. This time, how to use jQuery’s pushStack.
Exposed Speaking of, jQuery-inlog help you trace all the magic that happens when you’re chaining calls.
Vroom When your code feels slow, bust out some V8 Performance Tuning Tricks.
Innovate Learn something new while watching movie posters: How Netflix gets out of the way of innovation:
Here’s the key insight. It’s the things you don’t do that make the difference. You don’t add innovation to a company culture, you get out of its way.
Locked A good explanation of MongoDB’s write lock performance and the improvements brought by 2.0′s lock-with-yield.
Size queen How big are typical commits on (open source or not) project? Developer Belief vs. Reality: The Case of the Commit Size Distribution.
QotD David Beazley:
If I ever write a packaging tool, I’m going to call it “might”. Users will type things like “might install”, “might build”, etc.
|
Posted by Assaf
Filed in general
Jan 2nd, 2012
Mixology Pretty neat trick (especially for ampersand snobs) using two different font faces to the same text with CSS’s unicode-range.
Pegged Quoting from the PEG.js docs:
PEG.js is a simple parser generator for JavaScript that produces fast parsers with excellent error reporting.
I think it’s the simplest parser generator I got the chance to use. Simple and fun to use.
Hooked Using Hook.io, Paxos (in 0.8.6) and multicast DNS to build more reliable systems.
Logged Redis tips: persistence-only slaves and the slowlog.
Expressive Death match: Donald Knuth vs Doug McIlroy. Which one do you identify with more?
Sexy Busting the psuedo-science behind sex differences in the brain:
On the other hand, research findings about sex differences have been distorted and exploited by nonscientists to an extraordinary degree—perhaps second only to research on weight loss.
QotD Greg Brockman:
Web programming is the science of coming up with increasingly complicated ways of concatenating strings.
|
Posted by Assaf
Filed in general
Dec 28th, 2011
Graphite is kind of insane to setup, in particular all the nonsense around Cairo and PyCairo. What. A. Pain. But the back-end (Carbon and Whisper) is easy to setup and works as advertised.
So I decided to see if I can use D3 to draw SVG charts directly from the Whisper files generated by the Graphite back-end (Carbon).
Famout last words.
But it worked. Good enough for playing with charts, and an awesome JavaScript learning experience. (Yes, I optimize my free time for that)
So skip the Graphite Web app and get Carbon and Whisper installed:
$ sudo pip install whisper
$ sudo pip install carbon
$ cp /opt/graphite/conf/carbon.conf.example /opt/graphite/conf/carbon.conf
$ cp /opt/graphite/conf/storage-schemas.conf.example /opt/graphite/conf/storage-schemas.conf
Fire up Carbon and start collecting data:
$ /opt/graphite/bin/carbon-cache.py start
Now run the Web server:
$ npm start $ open localhost:8080
If your machine stores Whisper files in any other directory, you need to tell the server where to look by setting the environment variable GRAPHITE_STORAGE. The default path is /opt/graphite/storage.
Enjoy.
Note This is an experiment more than anything. Some functions are implemented, most not, neither are date ranges. But if you like to hack on it, be my guest.
|
Posted by Assaf
Filed in general
Dec 19th, 2011

Solid The single responsibility principle applied to JavaScript.
Catch up Polyfilling the HTML5 gaps.
Headless My favorite Zombie.js issue: library name incompatible with zombie reality
Choose wisely Another great article about choice (and features):
so what we learned from this study was that while people were more attracted to having more options, that’s what sort of got them in the door or got them to think about jam, when it came to choosing time they were actually less likely to make a choice if they had more to choose from than if they had fewer to choose from.
|
Posted by Assaf
Filed in general
Dec 18th, 2011

Trip NetFlix shares their secret (spoiler: the circuit breaker) for making API access more resilient.
By example Mandatory read for managers: How I Learned to Let My Workers Lead.
Wise up Whether you’re looking for excuse to avoid CoffeeScript, or what features to avoid when using CoffeeScript wisely, make sure to read A Case Against Using CoffeeScript. It helps to remember that programs must be written for people to read, and only incidentally for machines to execute, and some of the syntax CoffeeScript accepts is just bad practice.
Snobbish Chrome extension Snob hides YouTube-quality comments by filtering for all caps, no caps, spelling errors, excessive punctuations, etc.
Check out How far we’ve come: Astonishments, ten, in the history of version control.
QotD Chris Coyier:
Static site generators are the fixed gear bicycles of the internet.
|
Posted by Assaf
Filed in general
Dec 12th, 2011

Brilliant This is pretty ingenious. If you can’t move your servers closer to your users, you can still use edge proxies to work around the connection startup latency.
Tracing I love blog posts like this, the step-by-step to troubleshoot a tricky problem. Brendan Gregg on using DTrace to spot a bugand get a 2000x speed up.
Repeat Vendor everything is the best practice that every new language/platform eventually re-discovers. Here’s Mikeal on the current, early stage of“vendor everything” and Node.js.
OK Cancel Some days you wonder if all the good UX people have been fired, or are launching their own stealth startups: Dear Thunderbird: I know you can’t save my draft; please stop complaining about it
Corruption How does it work? What a surprise this would happen with SOPA/PIPA. Shocking.
QotD DevOps Borat:
Is call middleware because you can not able make head or tail of it.
|
Posted by Assaf
Filed in general