| ⌘T | go to file |
| ⌘⌃P | go to project |
| ⌘R | go to methods |
| ⌃G | go to line |
| ⌘KB | toggle side bar |
| ⌘⇧P | command prompt |
| /* | |
| I've wrapped Makoto Matsumoto and Takuji Nishimura's code in a namespace | |
| so it's better encapsulated. Now you can have multiple random number generators | |
| and they won't stomp all over eachother's state. | |
| If you want to use this as a substitute for Math.random(), use the random() | |
| method like so: | |
| var m = new MersenneTwister(); |
| // early experiments with node had mysterious double requests | |
| // turned out these were for the stoopid favicon | |
| // here's how to short-circuit those requests | |
| // and stop seeing 404 errors in your client console | |
| var http = require('http'); | |
| http.createServer(function (q, r) { | |
| // control for favicon |
| var ED = ED || {}; | |
| // Utility functions | |
| ED.util = (function() { | |
| // Data structure functions | |
| function each(object, callback) { | |
| if (object === null) return; |
| // Combine JS and CSS files | |
| // --- | |
| // | |
| // Make sure you install the npm dependencies | |
| // > cd YOUR_PROJECT_FOLDER | |
| // > npm install | |
| // | |
| // Than run: | |
| // > node build |
| # Usage: redis-cli publish message hello | |
| require 'sinatra' | |
| require 'redis' | |
| conns = [] | |
| get '/' do | |
| erb :index | |
| end |
This article has been given a more permanent home on my blog. Also, since it was first written, the development of the Promises/A+ specification has made the original emphasis on Promises/A seem somewhat outdated.
Promises are a software abstraction that makes working with asynchronous operations much more pleasant. In the most basic definition, your code will move from continuation-passing style:
getTweetsFor("domenic", function (err, results) {
// the rest of your code goes here.Note: this rough draft has turned into https://github.com/maxogden/art-of-node#art-of-node
go to https://github.com/maxogden/art-of-node#art-of-node to view the newer versions of this document
| describe('catalogyBody', function() { | |
| var chai = require('chai'); | |
| var path = require('path'); | |
| var env = require(path.join(testDir, 'lib', 'environment')); | |
| var requirejs = env.requirejs(staticDir); | |
| var sinon = requirejs('js/lib/sinon'); | |
| var fs = require('fs'); | |
| var server; | |
| var router; |
⇐ back to the gist-blog at jrw.fi
Or, 16 cool things you may not have known your stylesheets could do. I'd rather have kept it to a nice round number like 10, but they just kept coming. Sorry.
I've been using SCSS/SASS for most of my styling work since 2009, and I'm a huge fan of Compass (by the great @chriseppstein). It really helped many of us through the darkest cross-browser crap. Even though browsers are increasingly playing nice with CSS, another problem has become very topical: managing the complexity in stylesheets as our in-browser apps get larger and larger. SCSS is an indispensable tool for dealing with this.
This isn't an introduction to the language by a long shot; many things probably won't make sense unless you have some SCSS under your belt already. That said, if you're not yet comfy with the basics, check out the aweso