Disclaimer: This piece is written anonymously. The names of a few particular companies are mentioned, but as common examples only.
This is a short write-up on things that I wish I'd known and considered before joining a private company (aka startup, aka unicorn in some cases). I'm not trying to make the case that you should never join a private company, but the power imbalance between founder and employee is extreme, and that potential candidates would
Our goal is to run python -c "import caffe" without crashing. For anyone who doesn't spend most of their time with build systems, getting to this point can be extremely difficult on OS X. Instead of providing a list of steps to follow, I'll try to explain why each step happens.
This page has OS X specific install instructions.
I assume:
| 1: async (5,306,139) | |
| 2: mkdirp (3,989,808) | |
| 3: request (3,822,748) | |
| 4: glob (3,750,793) | |
| 5: minimatch (3,476,898) | |
| 6: commander (3,475,471) | |
| 7: debug (3,454,917) | |
| 8: qs (3,372,442) | |
| 9: inherits (3,105,353) | |
| 10: graceful-fs (3,005,257) |
| { | |
| "Statement": [ | |
| { | |
| "Sid": "PackerSecurityGroupAccess", | |
| "Action": [ | |
| "ec2:CreateSecurityGroup", | |
| "ec2:DeleteSecurityGroup", | |
| "ec2:DescribeSecurityGroups", | |
| "ec2:AuthorizeSecurityGroupIngress", | |
| "ec2:RevokeSecurityGroupIngress" |
The stream is a powerful tool, not just for IO, -- but, in the best Unix tradition -- for composition of modules. I've been connecting streams into quite long chains.
Some streams I have written do not alter the data in the stream, but affect it is some way, such as buffering when the stream is paused. pause-stream
Also, I've been writing high level abstractions that communicate via streams, and do some interesting high level stuff, Such as by replicating data, snob and crdt, or multiplexing mux-demux. Another good example is dnode.
These abstractions expose a stream on their interface, and so can be used over any io channel which supports pipe.
| var fs = require('fs'), | |
| stream = fs.createWriteStream('blah.txt', { flags: 'w', encoding: 'utf-8' }), | |
| i = 0, | |
| status; | |
| stream.on('open', write) | |
| function write() { | |
| if (i > 100) return stream.end() | |
| console.log(i) |
| A list of features that we want to see in CouchDB. Needs to be voted on so that it can become a priority queue. | |
| User Facing Features | |
| ==================== | |
| 1. Conflicts are the rule, not the exception | |
| All previous versions of CouchDB hide conflicts by default (selecting | |
| an arbitrary but consistent winning revision). Expert users can find | |
| and resolve conflicts. |