Skip to content

Instantly share code, notes, and snippets.

redis:
image: redis
ports:
- "6379:6379"
stream:
image: segment/fake-event-stream
environment:
- REDIS_HOST=redis
- REDIS_PORT=6379
/**
* Why jQuery "promises" are bad
*/
// This is a promise that will print "A" after a setTimeout
var es6Promise = new Promise((resolve, reject) => {
setTimeout(() => {
console.log('A');
resolve();
}, 0);
@danielstjules
danielstjules / error_handling.go
Created January 20, 2015 00:12
Error handling
type Foo struct {
Bar int
Baz string
Qux *exec.Cmd
}
func NewFoo() (*Foo, error) {
bar, err := getBar()
if err != nill {
return nil, err
// How do you format your promise-based code
// Example from https://github.com/zendesk/cross-storage
var storage = new CrossStorageClient('https://store.example.com/hub.html');
var errorHandler = function(err) {
// do something
};
// Style 1
storage.onConnect().then(function() {
@danielstjules
danielstjules / example.go
Created July 31, 2014 19:59
Long line wrapping in Go
// Long line wrapping in Go
func process(dst io.Writer, readTimeout, writeTimeout, allowInvalid bool, max int) {
// content
}
func process(
dst io.Writer,
readTimeout,
writeTimeout,
@danielstjules
danielstjules / sockjs_ws.patch
Created June 30, 2014 15:39
Patch to use ws with sockjs-node rather than faye-websocket-node
From ae279bfe194b1b17a6dc18e0720e61d253414154 Mon Sep 17 00:00:00 2001
From: "Daniel St. Jules" <danielst.jules@gmail.com>
Date: Thu, 8 May 2014 18:59:20 -0400
Subject: [PATCH] Replace faye-websocket-node with ws
---
package.json | 4 ++--
src/trans-websocket.coffee | 15 +++++++--------
2 files changed, 9 insertions(+), 10 deletions(-)
@danielstjules
danielstjules / echo-faye-2000.log
Created June 9, 2014 05:03
sockjs benchmarking: ws vs faye
2000,43825.784079,132003,0.000000,1437.717499,3520.000000,1036.549659
2000,998.007964,3003,0.000000,0.547786,12.000000,0.712479
2000,18963.073852,57003,0.000000,115.499377,342.000000,74.330045
2000,28904.657541,87003,0.000000,564.314633,1629.000000,429.622108
2000,7496.004329,22503,0.000000,0.662578,8.000000,0.758590
2000,40393.293506,121503,0.000000,1301.253228,3200.000000,916.737309
2000,16468.074807,49503,0.000000,28.777508,95.000000,29.205698
2000,43342.088608,130503,0.000000,1362.827713,3390.000000,996.659161
2000,21458.083832,64503,0.000000,225.233540,611.000000,144.948556
2000,7993.006993,24003,0.000000,0.733242,14.000000,1.069242
@danielstjules
danielstjules / index.html
Created June 8, 2014 03:18
SockJS FD Leak
<!doctype html>
<html><head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="https://hostname:9999/sockjs-0.3.min.js"></script>
<style>
.box {
width: 300px;
float: left;
margin: 0 20px 0 20px;
}
@danielstjules
danielstjules / pattern-emitter-comparison
Last active August 29, 2015 13:56
String event benchmark of RegexEmitter, PatternEmitter and EventEmitter
/**
* Quick comparison
*/
var Benchmark = require('benchmark');
var EventEmitter = require('events').EventEmitter;
var PatternEmitter = require('pattern-emitter');
var RegexEmitter = require('regexemitter');
var suite = new Benchmark.Suite();
@danielstjules
danielstjules / repo_bench.rb
Last active December 11, 2015 20:49
svn/git init/commit performance
require 'grit'
require 'svn/repos'
# Folders to store repos
GITREPOS = 'gitrepos'
SVNREPOS = 'svnrepos'
# Class for creating and commiting to svn repositories
class SvnRepo
def initialize(repo_name)