Skip to content

Instantly share code, notes, and snippets.

View crueber's full-sized avatar
🎸

Chris Rueber crueber

🎸
  • Minneapolis, MN
  • 20:14 (UTC -05:00)
View GitHub Profile

Latency numbers every programmer should know

L1 cache reference ......................... 0.5 ns
Branch mispredict ............................ 5 ns
L2 cache reference ........................... 7 ns
Mutex lock/unlock ........................... 25 ns
Main memory reference ...................... 100 ns             
Compress 1K bytes with Zippy ............. 3,000 ns  =   3 µs
Send 2K bytes over 1 Gbps network ....... 20,000 ns  =  20 µs
SSD random read ........................ 150,000 ns  = 150 µs

Read 1 MB sequentially from memory ..... 250,000 ns = 250 µs

@crueber
crueber / gist:11158241
Last active August 29, 2015 14:00
A simple and very generic controller for my RESTful-API node module
mongoose = require 'mongoose'
Model = mongoose.model 'Room'
single_model = 'room'
plural_model = 'rooms'
# exports.before_filters = []
# exports.after_filters = []
# exports.secure = (req, is_nested, is_secure_callback) -> is_secure_callback(null, true)
directive = ->
{
restrict: 'A'
scope: true
require: 'ngModel'
link: (scope, elem, attrs, control) ->
control.$parsers.unshift (value) ->
clearTimeout scope.match_password_timeout if scope.match_password_timeout
if value != ''
@crueber
crueber / gist:7157038
Last active December 26, 2015 13:19
A bunch of useful function for dealing with Heroku
# Setting up environment configuration on Heroku.
heroku config --app myapp
heroku config:add ENV_VAR=somevalue --app myapp
# Apply SSL Certs to Heroku
heroku certs --app myapp
heroku certs:add ssl.crt ssl.key --app myapp
# Generally useful commands for Heroku
heroku logs --tail --app myapp
@crueber
crueber / nestCollection.js.coffee
Last active December 17, 2015 01:29 — forked from lagartoflojo/nesting.coffee
BackboneJS does not have a way to directly nest collections within a model. This adds that capability.
# Description: Add the nestCollection method to the Backbone.Model prototype.
#
# This method accepts an attribute name on the model you're currently referencing,
# along with a collection that you would like to use the attributes of. Making it
# easier to bubble events between a collection/model.
#
# TODO: Fix comparator issues that could be introduced if the dependent collection changes sort order.
Backbone.Model::nestCollection = (attribute_name, collection_to_nest) ->
# Make sure that there is an array available in the attribute_name that hsa been passed.
@crueber
crueber / gist:3971546
Created October 29, 2012 04:37
Ruby Expression based Die Roller - Accepts plus, minus, numeric dice and variable number of dice
# The MIT License
# Copyright (c) 2012 Christopher WJ Rueber
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
# documentation files (the "Software"), to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all copies or substantial
# portions of the Software.