Skip to content

Instantly share code, notes, and snippets.

@ceejbot
ceejbot / monitoring.md
Last active November 15, 2022 08:53
monitoring manifesto

monitoring: what I want

I've recently shifted from a straight engineering job to a job with a "dev/ops" title. What I have discovered in operations land depresses me. The shoemaker's children are going unshod. Operations software is terrible.

What's driving me craziest right now is my monitoring system.

what I have right now

What I have right now is Nagios.

@agendor
agendor / hapijs-rest-api-tutorial.md
Last active February 11, 2026 10:15
A practical introduction to building a RESTful API with the hapi.js server framework for Node.js
@jamesob
jamesob / nodejs-question.md
Last active January 26, 2019 22:50
An open question (rant) about node.js

Most developers would agree that, all other things being equal, a synchronous program is easier to work with than an asynchronous one. The logic for this is pretty clear: one flow of execution is easier for the human mind to simulate than n concurrent flows.

After doing two small projects in node.js (one of which is here -- ready for the blinding flurry of criticism), there's one question that I can't shake: if asynchronicity is an optimization (that is, a complexity introduced for the sake of performance), why would people, a priori, turn to a framework that imposes it for everything? If asynchronous code is harder to reason about, why would we elect to live in a world where it is the default?

It could be argued pretty well that the browser is a domain that inherently lends itself to an async model, but I'd be very curious to hear a defense of "async-first" thinking for problems that are typically solved on the server-side. When working with node, I've noticed

var crypto = require("crypto")
var User = function(attributes) {
this._attributes = attributes || {}
}
User.KEY_LENGTH = 32
User.WORK_FACTOR = 20000
User.prototype.setPassword = function(password, callback) {
@jcoglan
jcoglan / async.js
Last active August 29, 2015 13:56
var foo
async.waterfall([
function(cb) {
getThingFromDB("foo", cb)
}, function(_foo, cb) {
foo = _foo
getOtherThingFromDB(foo, "bar", cb)
}, function(bar, cb) {
qux(foo, bar)

First, you install ruby-build and chruby. ruby-build is a program that knows how to download and build different ruby versions. chruby manages $PATH to control which ruby gets invoked in your shell. They work completely independently.

sudo su
cd /usr/src

git clone https://github.com/sstephenson/ruby-build.git
cd ruby-build
./install.sh
cd -
@deserat
deserat / gist:8245275
Last active January 2, 2016 03:39
Node JS Benchmarks Amazon AWS vs Joyent

The script:

var http = require('http')
var fs = require('fs')


http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'})
  res.end("hello world")
}).listen(3000);
anonymous
anonymous / night-before-opsmas.txt
Created December 24, 2013 07:19
Twas the night before Opsmas..
'Twas the night before Christmas, when all through the racks
Not a server was alerting, not even Compaqs.
The backups were written to tapes with care
In hopes that later the data would be there.
The machines were nestled all snug in their sleds
Whilst visions of vengeance danced in their heads;
And oncall in his three-wolf and I in my rack.
Had just settled down for some syn and some ack.
@kevinswiber
kevinswiber / Dockerfile-erlang-r16b02
Created December 1, 2013 22:47
Dockerfiles for running Logplex in a container.
FROM ubuntu
MAINTAINER Kevin Swiber <kswiber@gmail.com>
RUN apt-get install -y build-essential libncurses5-dev openssl libssl-dev fop xsltproc unixodbc-dev wget
RUN mkdir /tmp/erlang && cd /tmp/erlang
RUN wget http://erlang.org/download/otp_src_R16B02.tar.gz && \
tar zxvf otp_src_R16B02.tar.gz && \
cd otp_src_R16B02 && \
./configure && make && make install
@wsargent
wsargent / docker_cheat.md
Last active May 27, 2026 15:46
Docker cheat sheet