• 0


September Projects Update

It's been a while since an update so here are some recent happenings:


There are a million resources available to learn JS. JS as a language is still used and developed in so many different ways. Node flavored JS is an excellent subset of JS, HTML and CSS to learn and is a joy to work with, but it isn't clear what the best slice of material is to focus on when you are wading your way through all of them, especially if JS is your very first language.

node-learnbook is my attempt to capture and promote my favorite resources for materials that teach and discuss how to write node flavored JS.

Still a work in progress, but I am happy with positive feedback I have received on it so far.

Writing large GHF markdown documents straight into a github repository has been an absolute joy as well.


Go is groovy small language that seems to be producing high quality and performant network applications like ipfs. It's is typed and has some weird sharp edges when it comes to its syntax, but once you catch it's flow, its as lightweight as writing ES5 JS. Oh and it compiles to binaries and has a super simple toolchain with a built in style linter and formatter (gofmt).

Goref is simmered down version of a few resources designed to be a quick language reference. Still a WIP, but it has a lot there already.

Standard Happenings

The standard linter and its family of tools has been growing rapidly. My focus has been on improving maxogden/standard-format with as little time as I have for it. Big thanks to @feross for sailing that ship.

Sublime-StandardFormat has been chugging along and been working quite well in its day to day use. There are some cool updates that will make it integrate even better with project level package.json integration.

@flet has put in a bunch of work into the website, online linter and general maintenance of the project as well.

Small tools for writing small modules

Never really got the word out about these much, but I helped out on a few projects with @ngoldman on two super helpful utilities. They even got a shout out on @ogd's super handy module list.


A small tool that helps you properly create releases on github and npm while [keeping a changelog. There are a million little steps and its easy to screw up. gh-release automates the pain away, or at least lets you know when you are going to make a mistake.


Boilerplate sucks, and even when you eliminate most of it, setting up your badges, ci, readmes and changelogs, there is a a lot of boilerplate! module-init creates a new module with all the right stuff. Super handy for banging out lots of little modules with all the right stuff.

On a similar note, bcomnes/changelog-init was also born out of this effort, although it still remains separate from module-init. Trying to find the right balance of modularity and purpose is hard.


Twitter introduced some sweet native video capabilities a while back, but it was only accessible via the API. The API requires some pretty tricky multi-part requests, and nobody seemed to have had implemented it a few months ago.

The results of this effort is the twitter-video module.

This module utilizes asynchronously assigned writable streams using duplexify and through2 (which not surprisingly is now using streams v3 :rolleyes:), providing an interesting way to accommodate tricky stream connection details quite easily.

Respek to @jbulva and @thoward37 for listening to me complain about the API ahem I mean for being super receptive with feedback ;)

This module also pairs cliclopts and minimist together which results in an amazingly great CLI parsing and documentation API. Highly recommended.

iojs never graduates the cellar

The attempt to get a working-by-default formula for iojs never happened. Thats okay because iojs + node 0.12 is now node 4.0.0 and we had great alternatives the entire time everyone has been waiting (either through the tap, force linking cellar only iojs, both paired with pangyp or of course nvm).

There are a few floating patches open till next week, so until we can land the update into the main formula, use aredridel/homebrew-iojs which has a node-alt formula now.

Thanks to everyone involved who provided their thoughts, advice, and diligent work keeping pace with the iojs/node merge.

  • 0

Funny gif time

Also a demo of ipfs.io

  • 0

Hello from Opensource Bridge!

  • 0


  • 0

Thousand isolation dressing

Fujifilm X100T Filters That Fit

Here is a lens filter setup that is compatible with the Fujifilm LC-X100S leather case used with a X100T:

X100t filter mounts

X100t filter mounts

The stack fits in the case almost perfectly.

X100t filter mounts

It fits under the case and doesn't increase the difficulty of removing the top cover.

It consists of:

Other filters and spacers are likely to work.

The Fujifilm AR-X100 Adapter Ring can be avoided all together if you put the lens filter and spacer ring on backwards. In addition to fitting in the case better, you get to keep using the little thread cover ring that comes on the camera.

Important: You have to use a spacer. The lens on the X100T extends out of the barrel quite a few mm, and you could damage the motor without enough space between the filter and the lens.

The only drawback is that the lens cap that comes with the camera wont fit any longer. Thats okay though because your top case is now the lens cap, and your primary lens is no longer vulnerable when the top cover is off.

X100t filter mounts

  • 0


New Module: tmpr

New npm module:

tmpr (repo)


There are quite a few temp dir libraries out there, and most of them are super overkill: keeping track of state, offering sub-par cleanup options in some cases and generally offering more than is needed at any single point. After asking around in #pdxnode, ogd pointed out this seemingly obvious pattern:

mkdirp(path.join(os.tmpdir() + crypto.randomBytes()), cb)

Anyway, this approach still requires a bit of boilerplate and knowledge of standard libs so wrapping it up in a module can abstract those details away and offer a super simple abstraction to a common problem!

  • 0

node-gyp driving you to drink?

npm i pangyp -g &&  npm config set node-gyp pangyp

will solve all your problems.