This article is now published on my website: Prefer Subshells for Context.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// "co": "~4.1.0", | |
var co = require('co'); | |
var urllib = require('urllib'); | |
var count = 0; | |
co(function* () { | |
while (true) { | |
try { | |
yield urllib.request('http://cnpmjs.org/mirrors/apis/iojs'); | |
} catch (err) { | |
console.error(err); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- script.lua | |
-- Receives a table, returns the sum of its components. | |
io.write("The table the script received has:\n"); | |
x = 0 | |
for i = 1, #foo do | |
print(i, foo[i]) | |
x = x + foo[i] | |
end | |
io.write("Returning data back to C\n"); | |
return x |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"reflect" | |
"strings" | |
) | |
func makeChannel(t reflect.Type, chanDir reflect.ChanDir, buffer int) reflect.Value { | |
ctype := reflect.ChanOf(chanDir, t) | |
return reflect.MakeChan(ctype, buffer) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var Promise = require('bluebird'); | |
var promiseWhile = function(condition, action) { | |
var resolver = Promise.defer(); | |
var loop = function() { | |
if (!condition()) return resolver.resolve(); | |
return Promise.cast(action()) | |
.then(loop) | |
.catch(resolver.reject); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
# | |
# fetch_and_combine.py | |
# | |
""" | |
Scans CloudFront logs in an S3 bucket for any that are new. Combines log files | |
into a single local file per hour. If logs for multiple CloudFront | |
distributions are present, combines them all. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var EventEmitter = require('events').EventEmitter; | |
module.exports = function() { | |
var queue = new EventEmitter(); | |
var locked = false; | |
this.lock = function lock(fn) { | |
if (locked) { | |
queue.once('ready', function() { lock(fn); }); | |
} else { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
image.gallery <- function(url, ncol = 3L) { | |
## This function reformats the contents of a Craigslist search result URL | |
## into an image gallery, opened into the default browser | |
## | |
## Inputs: | |
## - url: a Craigslist search URL as created by search.url | |
## - ncol: the number of columns for the output image gallery | |
## | |
## Output: none. As a side effect, a browser is opened. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var mongoose = require('./index') | |
, TempSchema = new mongoose.Schema({ | |
salutation: {type: String, enum: ['Mr.', 'Mrs.', 'Ms.']} | |
}); | |
var Temp = mongoose.model('Temp', TempSchema); | |
console.log(Temp.schema.path('salutation').enumValues); | |
var temp = new Temp(); | |
console.log(temp.schema.path('salutation').enumValues); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I turned this gist into a "real" repository. It is here: http://github.com/pete/cats . | |
Here, placed side-by-side for comparison, are GNU's implementation of | |
cat, Plan 9's implementation, Busybox's implementation, and NetBSD's | |
implementation, Seventh Edition Unix (1979), and 4.3BSD. | |
For good measure (and because I suppose I am now committed to collecting | |
cats) also included are Second Edition Unix (in assembly) and Inferno's | |
implementation (in Limbo) for good measure. |