Skip to content

Instantly share code, notes, and snippets.

💭
Set your status

Bryan English bengl

💭
Set your status
Block or report user

Report or block bengl

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@bengl
bengl / hamgear.md
Last active Jun 9, 2016
ham / amateur radio gear list for nodeconf
View hamgear.md
@bengl
bengl / extendedpromise.js
Created Feb 16, 2015
You can't extend promises in node 0.12.0
View extendedpromise.js
function ExtendedPromise (resolver) {
Promise.call(this, resolver)
}
require('util').inherits(ExtendedPromise, Promise)
ExtendedPromise.__proto__ = Promise
new ExtendedPromise(function (resolve) {
resolve(1)
}).then(console.log)
View gist:db39c958eeaa63bc1954
# hundreds of lines like this...
info attempt registry request try #1 at 14:45:50
http request GET https://registry.npmjs.org/media-typer/
info attempt registry request try #1 at 14:45:50
http request GET https://registry.npmjs.org/mime-types/
info attempt registry request try #1 at 14:45:50
http request GET https://registry.npmjs.org/mime-db/
info attempt registry request try #1 at 14:45:50
http request GET https://registry.npmjs.org/util-extend/
info attempt registry request try #1 at 14:45:50
View bittorrent_npm_cache.md

Populating npm caches with BitTorrent

NOTE: This concept has probably been covered before, so if anyone can point me in the direction of some prior art, that would be great.

This past June, I attended NodeConf for the first time. While it was an amazing event, and I've love to go next year, it wasn't without its hiccups. In particular, all the sessions involved some npm install, and with hundreds of programmers on a small pipe to the internet, this became rather tiresome rather quickly.

First of all, cheers to everyone involved in setting up npm registry mirrors at the event (npm, Inc. and others). This worked out reasonably well, but often the mirrors were just slightly out of date, which was problematic because many instructors were updating their course material in real-time.

This sort of situation seems like it can be relatively common, so lots of solution ideas came from this. Here is one such solution.

View keybase.md

Keybase proof

I hereby claim:

  • I am bengl on github.
  • I am bengl (https://keybase.io/bengl) on keybase.
  • I have a public key whose fingerprint is F2FE 3552 09D6 F280 BF6A B807 FE32 AE04 E6BF 5E9E

To claim this, I am signing this object:

@bengl
bengl / camera.js
Created Oct 1, 2014
simple webcam thing for tessel
View camera.js
var tessel = require('tessel');
var camera = require('camera-vc0706').use(tessel.port['A']);
var notificationLED = tessel.led[3];
camera.on('error', function(err) {
console.error(err);
});
camera.on('ready', function() {
@bengl
bengl / maybePromisify.js
Created Jun 12, 2014
Promisify if it calls a callback, pass through if it returns a promise.
View maybePromisify.js
// non-`Promise.defer()` version of https://github.com/petkaantonov/bluebird/issues/159#issuecomment-38348877
var Promise = require('bluebird');
function maybePromisify(fn, ctx){
return function() {
var args = Array.prototype.slice.call(arguments);
return new Promise(function(fulfill, reject){
args.push(function(err, result){
if (err)
@bengl
bengl / .gitconfig
Created May 6, 2014
handy way to create npm module releases
View .gitconfig
[alias]
lasttag = describe --abbrev=0 --tags
releasenotes = !bash -c 'git shortlog --no-merges HEAD --not $(git lasttag)'
release = !bash -c 'echo \"%s\n\n$(git releasenotes)\" | xargs -0 npm version $0 -m'
@bengl
bengl / output.txt
Created Apr 1, 2014
randomized mock data tests
View output.txt
$ mocha test.js
0 passing (4ms)
1 failing
1) RandomStuff should work for all of mockData:
Error: 2/6 failed
at Context.<anonymous> (/Users/benglish/testcrap.js:26:19)
View keybase.md

Keybase proof

I hereby claim:

  • I am bengl on github.
  • I am bengl (https://keybase.io/bengl) on keybase.
  • I have a public key whose fingerprint is 12DA A122 E4B0 3089 0F5D A100 02E1 DF2D F935 CE6D

To claim this, I am signing this object:

You can’t perform that action at this time.