¯\_(ツ)_/¯
/** | |
* Use restify with promises | |
* | |
* Restify middleware and route handlers are passed a callback function `next` | |
* which must be called on success, or on an error. | |
* | |
* But you may prefer to define your middleware and routes using promises or | |
* async functions instead of using callbacks. | |
* | |
* To achieve that, simply wrap your middleware functions in `middleware()` and |
$ npm install --save babel-cli babel-preset-es2015
$ npm install --save-dev jasmine
.babelrc:
{
"presets": ["es2015"]
// Key combinations | |
var hyper = ['ctrl','alt','cmd','shift']; | |
var mash = ['ctrl','alt','cmd']; | |
// Screen placement movement | |
api.bind('h', mash, function() { to_left(1, 2); }); // left | |
api.bind('l', mash, function() { to_right(1, 2); }); // right | |
api.bind('k', mash, function() { to_top(1, 2); }); // up | |
api.bind('j', mash, function() { to_bottom(1, 2); }); // down | |
api.bind('.', mash, function() { to_bottom_right(1, 2); }); // bottom-right |
This is specifically tailored to Node.js binding projects in which case the C++ layer is always a library.
Clone gyp:
git clone --depth 1 https://chromium.googlesource.com/external/gyp.git gyp
Add the below common.gypi
file in the root of the project.
# delete local tag '12345' | |
git tag -d 12345 | |
# delete remote tag '12345' (eg, GitHub version too) | |
git push origin :refs/tags/12345 | |
# alternative approach | |
git push --delete origin tagName | |
git tag -d tagName |
# config/deploy.rb | |
# probably a lot of ways to improve this... | |
set :application, 'my_app' | |
set :repo_url, '[email protected]:USERNAME/my_app.git' | |
# should set up a deploy user | |
set :user, 'deploy' | |
set :deploy_to, '/var/www/my_app' | |
set :scm, :git |
// | |
// LESS Utility Mixins | |
// ------------------- | |
// Fill the parent element | |
.fill(@spacing: 0) { | |
position: absolute; | |
top: @spacing; bottom: @spacing; | |
left: @spacing; right: @spacing; | |
} |
So the brilliance of hypermedia is that it's a protocol programming language: the client is the generic execution environment, and the server is the "programmer" which sends tiny little chunks of programs down to the client to dictate what actions may be taken next, given its context.
The fact that the client also builds a UI is irrelevant to this power. The power is in creating a dynamic, custom protocol by choosing for the client which message structures that will be sent from the client, which is done using merely the tools of hypermedia. The protocol between a client and server is then codified in the hypermedia (e.g. HTML) part of the code which uses links and forms to document the various messages which may pass between client and server, and the client states in which either may be used.
Armstrong's formula for a good protocol:
Client-State, Client-Message => Server-State, Server-Response-Message
But in hypermedia, the server's response dictate's the client state: