Skip to content

Instantly share code, notes, and snippets.


Hengki Sihombing hengkiardo

  • Jakarta, Indonesia
View GitHub Profile
View cors-nginx.conf
# Wide-open CORS config for nginx
location / {
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';

##Setup your server (this would ideally be done with automated provisioning)

  • add a deploy user with password-less ssh see this gist
  • install forever npm install -g forever

##Install flightplan

  • npm install -g flightplan
  • in your project folder npm install flightplan --save-dev
  • create a flightplan.js file
View route.js'/login', function(req, res) {
passport.authenticate('local', function(err, user, params) {
if (req.xhr) {
//thanks @jkevinburton
if (err) { return res.json({ error: err.message }); }
// e.g. in auth.js:
// if (!user.emailVerified) { return done(null, false, { message: 'Email is not verified. Please check your email for the link.' }); }
if (!user && params) { return res.json({error : params.error}); }
View gist:c521f636e9edd7e1a98e
/*At least requires the meta viewport tag with content 'width=device-width'*/
@media only screen and (max-width: 1080px) and (orientation : portrait) {
Windows Surface Pro*/
@media only screen and (max-width: 800px) and (orientation : portrait) {
Acer Iconia Tab A100
View async-process-jasmine.Spec.js
AsyncProcess = require('./async-process').AsyncProcess
describe('AsyncProcess', function() {
var asyncProcess;
beforeEach(function() {
asyncProcess = new AsyncProcess();
it('should process 42', function() {
View .jshintrc.js
// NOTE: I added the .js extension to this gist so it would have syntax highlighting. This file should have NO file extension
// Settings
"passfail" : false, // Stop on first error.
"maxerr" : 100, // Maximum error before stopping.
// Predefined globals whom JSHint will ignore.
"browser" : true, // Standard browser globals e.g. `window`, `document`.

NOTE I now use the conventions detailed in the SUIT framework

Template Components

Used to provide structural templates.


View wsk-watchify.js
* Hooking up Watchify with Google's Web Starter Kit
* The primary use cases for Browserify/Watchify are:
* - Node.js-style `require`s on the client-side
* - Use of npm modules on the client-side
* - No more new <script> tags for each new script/module
* 1. npm install --save-dev vinyl-source-stream browserify watchify gulp-notify
View gist:f3c68d6ec81a0ebc9073
$ node async-benchmark.js -t 999999
var parallelly = require("parallelly");
var serially = require("serially");
var async = require("async");
View monit
check host localhost with address
start "/sbin/start myapp"
stop "/sbin/stop myapp"
if failed port 3000 protocol HTTP
request /
with timeout 5 seconds
then restart