Skip to content

Instantly share code, notes, and snippets.

@louischatriot
louischatriot / nodejs-app.conf
Created August 18, 2012 07:47
Upstart script to launch a nodejs application as a service
description "Upstart script to run a nodejs app as a service"
author "Louis Chatriot"
env NODE_BIN=/usr/local/bin/node
env APP_DIR=/path/to/app/dir
env SCRIPT_FILE="scriptfile.js" # Entry point for the nodejs app
env LOG_FILE=/path/to/logfile.log
env RUN_AS="anyuser" # Upstart can only be run nicely as root, need to drop privileges
env SERVER_ENV="anything" # Usual apps can be run in different environments (development, test, production ...)
# I typically use the environment variable NODE_ENV (see below)
@domenic
domenic / promises.md
Last active July 17, 2025 03:03
You're Missing the Point of Promises

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.

You're Missing the Point of Promises

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.
@jespada
jespada / sensu-riemann
Created December 17, 2012 14:02
sensu + riemann
* Sensu
- As a nagios replacement basically, plus the extra goodies tha sensu has itself
(mutators, events filters , handlers, API, etc).
* Riemann
- When state tracking is needed, cause of the powerful stream processing language,
I'm planning to aggregate events from client agents running on riak nodes,
erlang queue size grow, cassandra, others, to track trends and report
on events, the idea is to report posible problems before they became critical.

Application specific host grouping in Riemann-dash

It is generally desirable to group all the hosts for a specific service into a single dashboard view. For example, all the web servers are in single view while all the database servers are in another view.

This is usually not an issue when you are sending custom metrics using Riemann client. However, there are cases where you are using something that you do not control how the metrics are being sent. i.e., Riemann-tools.

Since Riemann-tools scripts are application agnostic, in order for the dashboard view to group hosts, we must inject some application specific information into the tags field. Tags is a collection of arbitrary strings. In the case of Riemann-tools scripts you can pass in arbitrary strings on the command line.

riemann-health --host 127.0.0.1 --tag "prod" --tag "webserver"

@dergachev
dergachev / GIF-Screencast-OSX.md
Last active July 31, 2025 21:28
OS X Screencast to animated GIF

OS X Screencast to animated GIF

This gist shows how to create a GIF screencast using only free OS X tools: QuickTime, ffmpeg, and gifsicle.

Screencapture GIF

Instructions

To capture the video (filesize: 19MB), using the free "QuickTime Player" application:

@rahuloak
rahuloak / client.js
Last active February 18, 2021 19:20
APNS client
/**
* APNS test client
*/
var net = require('net');
var HOST = '127.0.0.1';
var PORT = 7777;
var TOKEN_LENGTH = 64;
var NUM_PACKETS = 5;
@rahuloak
rahuloak / server.js
Last active February 18, 2021 19:21
APNS mock server
/**
* Mock APNS server
*/
var net = require('net');
var HOST='127.0.0.1';
var PORT=7777;
// Need this option so the client doesn't close
// the connection on sending a FIN
@macintux
macintux / presentation-tips.md
Last active November 28, 2022 01:03
Public speaking tips
@hintjens
hintjens / dechat.c
Created April 22, 2013 11:05
Decentralized chat app in C (40 lines)
#include <czmq.h>
static void
listener_thread (void *args, zctx_t *ctx, void *pipe)
{
void *listener = zsocket_new (ctx, ZMQ_SUB);
zsocket_set_subscribe (listener, "");
int address;
for (address = 1; address < 255; address++)
@johanneswuerbach
johanneswuerbach / .travis.yml
Last active March 24, 2025 17:40
Deploy an iOS app to testflight using Travis CI
---
language: objective-c
before_script:
- ./scripts/travis/add-key.sh
after_script:
- ./scripts/travis/remove-key.sh
after_success:
- ./scripts/travis/testflight.sh
env:
global: