javascript

Using ES7 Decorators with Babel 6

1 minute read Published

How to use decorators in JavaScript using Babel.

I wrote this late last year and it gets, well, a lot of traffic. Why? Because it hit home with a common concern in the JS community–a path forward for decorators. It just may change the way you build React apps for the better.

Developing Web Apps on Windows with Vagrant

12 minute read Updated

How to set up a Node.js development workflow on Windows using a Linux VM.

I earlier this month I spent way too much time writing an article on how to SFTP to Ubuntu Server with Sublime Text. The purpose of the SFTP effort was to set myself up for developing modern web applications on a new Windows 8 machine I bought to play SimCity 2013. And after getting everything working I realized the SFTP method had some gremlins and the file syncing reminded me of Dreamweaver—it simply wasn’t fast enough.

Lately, unless you were running a Linux machine or had the pleasure of owning a Mac with OS X, developing modern web applications has been a bit of a kludge. Enter Vagrant.

Vagrant is a tool for building complete development environments. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases development/production parity, and makes the “works on my machine” excuse a relic of the past.

In this article I’ll explain how to set up a development environment in Windows using a virtualized Linux box, suitable for rapid prototyping. Then I’ll take it a step further and explain how to integrate a Backbone-based application framework with Vagrant and Sublime Text, greatly increasing the speed for developing modern web applications on Windows.

When Fast Isn't Fast Anymore

3 minute read Published

Websites that load in 200ms using open source tools.

Back in , while I was seated at a developer conference absorbing as Paul Irish was teaching us about the Foamy Rules of Rabid Tools, I also learned about building single-page apps with Backbone.js. BrowserSync wasn’t a thing yet, and most engineers I knew had never even heard of CoffeeScript and SublimeText. And hardly anyone I knew at the time in Chicago was using GitHub.

Fast-forward three years and my how things have changed…

React Resources

1 minute read Published

Awesome list containing resources for React development.

React’s been getting pretty hot lately. So hot even Yehuda Katz is looking for a good tutorial. And while I’m not a big fan of huge resource lists (and this one definitely fits that bill), ~7K stargazers can’t be wrong.

Tame Async JavaScript with ES6

2 minute read Published

Tame async JavaScript with ES6 using Generators and Promises

One of the trickier parts of writing JS for the web is taming async code. Control flow abstractions for handling async JS exist but are commonly overlooked in engineering organizations, which can lead JS projects unknowingly into a labyrinth of IIFEs, through the pyramid of doom (issue) and directly to callback hell — making code brittle and prone to breakage.

CoffeeScript for Tessel with Yeoman and Gulp

5 minute read Published

Learn how to transpile CoffeeScript to JavaScript using Yeoman and Gulp for use with the Tessel microcontroller

A few years back Sauce Labs co-founder Jason Huggins (@hugs) was giving a talk at js.chi(), showing us how to use an Arduino to change the color of an LED based on an input. During the talk Jason suggested those interested in microcontrollers check out Pumping Station: One up on Clybourn. So I got some friends together and we went to PS1, and learned the basics of programming an Arduino. The event was a fun experience and, later that night, netted me a working Larson Scanner. Since then I’ve procured a Raspberry PI, and started tinkering with Google Coder. And now it’s time for Tessel.

A Back-End for Backbone.js Apps

2 minute read Published

Using Ruby, Sinatra and MongoDB on Windows to create a UI back-end.

After writing about Developing Web Apps on Windows with Vagrant spent some time immersing myself in Ruby and Ruby Gems. Tonight, while catching up on some articles in my Pocket, I ran across the following article from Addy Osmani: Building Backbone.js Apps With Ruby, Sinatra, MongoDB and Haml.

Sweet. In addition to Addy’s very awesome and open-source book Backbone Fundamentals, he’s also writing some useful related articles. And though I’d likely ditch haml in favor of Emblem with Swag, Addy’s article ought to be a good starting point for the Ruby newbie.

The Holy Grail: Full-stack JavaScript MVC with Rendr

1 minute read Published

The quest for the Holy Grail of JavaScript revealed by Airbnb Engineering.

Spike at Airbnb just mentioned during a live TechTalk webcast that the Rendr framework they built was open sourced earlier this month: github.com/airbnb/rendr. The framework leverages Node.js and Backbone.js to allow full-stack JavaScript MVC using a common set of code–greatly improving time to content, improving crawability, and reduces overall application complexity.

During the talk, Meteor and Derby were mentioned, and Mojito *sigh*. And Stitch was also mentioned, as a part of the stack they’re using. So anyway, there you have it. The Holy Grail I talked about. It’s out, but admittedly, according to Spike, not quite finished. Caveat emptor.

Backbone.js Extensions, Plugins, Resources

1 minute read Published

Just unearthed this handy-looking list of extensions, plugins and resources for Backbone.js and wanted to share.

Using Promises for Non-AJAX Asynchronous Callbacks in JavaScript

1 minute read Published

Using promises to avoid callback race conditions in JavaScript.

After recently falling prey (again) to the immediate execution of a counter-based timing function used to execute a non-Ajax asynchronous callback method in JS, I wanted to share this very useful article I stumbled upon while looking for an approach that would meet my needs.

Amp Up CoffeeScript Coding with Sublime Text

3 minute read Published

How to add syntax highlighting for CoffeeScript to the Sublime Text editor.

Sublime Text with CoffeeScript is a JavaScript developer’s dream, but one that doesn’t evaporate in the fog of sleep shortly after waking. After learning about Sublime Text at Fluent Conf 2012 during a plenary talk from Paul Irish, I immediately began looking for ways to incorporate it into my workflow. And now, after having used it for over 8 months in my day-to-day work, I wanted to share a quick primer for those who want to amp up CoffeeScript coding with Sublime Text too.