00:11:15  * mikealjoined
00:12:19  <devaholic>SubStack: a fan of init scripts?
00:13:00  <devaholic>i service-ized fleet drone and hub, so i can get emails when the drone goes down, also i noticed i dont actually need more than one drone per machine so it works out well -- https://gist.github.com/8717fb0d65ced13db772
00:13:11  * mikealquit (Client Quit)
00:18:09  <devaholic>or if anyone else wants to use it feel free, the repos land in /opt/fleet-*
00:18:15  * mikealjoined
00:37:57  <SubStack>devaholic: sounds useful but I haven't messed with those at all
00:55:22  * mikealquit (Quit: Leaving.)
00:58:32  <rowbit>Hourly usage stats: [free: 4]
01:01:37  * wiwilliaquit (Ping timeout: 260 seconds)
01:08:56  * mikealjoined
01:16:26  * wiwilliajoined
01:56:28  * niftylettucequit (Quit: Connection closed for inactivity)
01:58:33  <rowbit>Hourly usage stats: [free: 5]
02:35:42  <SubStack>new thing https://github.com/substack/node-marx
02:40:40  <AvianFlu>SubStack, hahahahahhahahahahha awesome name
02:58:33  <rowbit>Hourly usage stats: [free: 1]
03:22:00  * mikealquit (Quit: Leaving.)
03:27:56  * hij1nxquit (Quit: hij1nx)
03:32:44  * mikealjoined
03:53:43  * st_lukejoined
03:58:33  <rowbit>Hourly usage stats: [free: 6]
04:14:11  <isaacs>SubStack: you know what the true dictatorship of teh proletariat is here, right
04:14:12  <isaacs>?
04:14:22  <isaacs>SubStack: Get rid of the SeaPort Bourgoisie!
04:14:31  <isaacs>SubStack: store state in the network
04:48:11  * saijanai_quit (Quit: saijanai_)
04:55:31  * wiwilliaquit (Ping timeout: 265 seconds)
04:58:33  <rowbit>Hourly usage stats: [free: 12]
04:59:05  * hij1nxjoined
04:59:12  * hij1nxquit (Remote host closed the connection)
05:01:25  <SubStack>isaacs: occupy seaport
05:01:39  <isaacs>for reals
05:02:15  <isaacs>SubStack: it'd be nice to run your cluster of services like an efficient factory
05:02:41  <isaacs>set a capacity level for each type of job, max/min workers, and then automatically just spin up new workers or shut them down as needed.
05:03:21  <isaacs>like, if the "generate xyz pages" isn't getting done fast enough, spin up a new xyz-page-generator bot
05:03:36  <isaacs>each role has a job queue, and a set of workers
05:03:53  <isaacs>each local manager gossips to other managers about its capacity and queue
05:04:04  <isaacs>you can have 10 machines, each with a manager and a bunch of workers
05:04:16  <isaacs>the managers know about each other - there is no central registry
05:04:18  <isaacs>they are all the registry
05:04:33  * st_lukequit (Remote host closed the connection)
05:04:58  <SubStack>isaacs: that part is coming already
05:05:07  <isaacs>if there aren't enough plants to meet capacity, then it emails the human
05:05:12  <SubStack>it just requires several separatre modules
05:05:16  <isaacs>yes, i know
05:05:28  <isaacs>i'm describing my desires so that you know which modules to go make ;)
05:05:39  <maxogden>earlier subbrubb was like 'so say you have your regime all set up and then you release the new Master Plan...'
05:05:42  <maxogden>shit got weird
05:05:57  <isaacs>yeah, exactly
05:06:14  <isaacs>so, the next obvious step is, i want to start establishing new plants on machines that other people own, without their knowledge.
05:06:45  <isaacs>from each machine according to its ability!
05:06:58  <isaacs>and, for that matter, without my knowledge.
05:07:05  <isaacs>all websites and apps shoudl be served by viruses
05:07:12  <maxogden>if you have a readable stream whats the diff between mystream.write('woo') and mystream.emit('woo')
05:07:24  <isaacs>maxogden: you don't write to readable streams
05:07:30  <guybrush>curl http://npmjs.org/install.sh | sudo sh
05:07:44  <isaacs>guybrush: yes, we've already established that everyone trusts me with root access to their machines.
05:07:48  <isaacs>step 1 accomplished.
05:07:50  <guybrush>haha
05:08:10  * isaacsreally hopes he's joking.
05:08:30  <maxogden>isaacs: oops sorry i meant writable
05:08:33  <guybrush>now i know why you guys wanted to make windows 1st class citizen
05:08:42  * maxogdenmixes his streams even though you should never cross streams
05:09:43  <isaacs>maxogden: writable streams don't emit data events
05:09:49  <isaacs>maxogden: who knows where the writes go?
05:10:03  <isaacs>maxogden: if you write to an http request, it doens't emit it, it writes it to the underlying socket
05:10:16  <isaacs>maxogden: er, http response
05:10:20  <isaacs>maxogden: like, with write(2)
05:27:09  * dominictarrjoined
05:27:19  <dominictarr>hey guys
05:27:41  <maxogden>dominictarr: wassup
05:28:03  <SubStack>yar
05:28:28  <dominictarr>maxogden: hey, do you know if there is a lib that wraps Socket.io in a Stream interface supporting pipe?
05:28:47  <maxogden>dominictarr: havent checked, was gonna write one if there wasnt
05:29:21  <dominictarr>ah, good. I was gonna write one too.
05:29:31  <dominictarr>but not if you beat me to it.
05:29:47  <maxogden>dominictarr: the things i wanna write for dominode are: pouchdb/indexeddb pipe, webworker pipe, filereader pipe, xhr pipe, websocket pipe
05:29:51  <SubStack>collaboration \o/
05:30:21  <maxogden>if i do x = new Stream(); x.write('woo') i get Object #<Stream> has no method 'write'
05:30:56  <dominictarr>how can that be?
05:31:16  <devaholic>x.writable = true?
05:31:40  <dominictarr>is this in the browser?
05:31:44  <maxogden>nope in the node repl
05:31:58  <SubStack>because you've got to define your own write function
05:32:12  <maxogden>o rite
05:32:17  <SubStack>end function too
05:33:00  <dominictarr>that is because the Stream is meant to be a abstract class.
05:33:08  <dominictarr>inheritors should implement that.
05:33:15  <dominictarr>Stream only implements pipe
05:33:32  <maxogden>cool
05:34:12  <maxogden>so this is accurate for demonstration purposes right https://github.com/maxogden/dominode/blob/master/example.html#L13
05:35:05  <dominictarr>well, that will run.
05:36:23  <dominictarr>yeah, I think that is right for a readible stream
05:36:43  <maxogden>its expected that readable streams are gonna emit data and end
05:37:44  <maxogden>normally does .emit('data') happen in .write for read/writable streams?
05:38:34  <dominictarr>there are more flavors of read/write streams than that.
05:38:39  <dominictarr>it could be async.
05:40:11  <dominictarr>or it could be a duplex stream, that pipes through another process but looks like a single stream. mikeal's request for example.
05:40:36  <maxogden>im just tryin to understand your pull req
05:45:04  <SubStack>maxogden: you should also look at https://github.com/dominictarr/event-stream
05:52:08  * isaacsquit (Remote host closed the connection)
05:57:19  * tilgovijoined
05:58:33  <rowbit>Hourly usage stats: [developer: 1, free: 9]
06:02:54  <dominictarr>oh, oops. I didn't read your thing properly.
06:03:05  <dominictarr>readStream.emit({...})
06:03:26  <dominictarr>is misleading, readStream.emit('data', {....}) will work,
06:04:43  <dominictarr>i'll fix it.
06:04:54  <maxogden>oh oops
06:11:22  * saijanai_joined
06:12:55  <dominictarr>maxogden: added some commits to make it run.
06:13:02  * isaacsjoined
06:16:49  <isaacs>maxogden: many duplex streams do not emit('data') corresponding to every write()
06:16:56  <isaacs>maxogden: consider a zlib compressor
06:17:02  <isaacs>you might write 5 times, then get a single data event
06:17:17  <isaacs>maxogden: or a tcp connection. you write write write, it might emit, it might not
06:17:25  <isaacs>the emits are based on the *other* side writing
06:18:55  <maxogden>mmk
06:20:58  * AvianFluquit (Ping timeout: 244 seconds)
06:22:33  * AvianFlujoined
06:23:33  <dominictarr>hey isaacs: whats happened with pause events on Stream now, thats gonna, I gotta implement my own pause and return false on the next write()?
06:43:25  * mikealquit (Quit: Leaving.)
06:58:33  <rowbit>Hourly usage stats: [free: 15]
07:00:13  <dominictarr>maxogden: are you writing the websocket stream, now perchance? otherwise I will.
07:07:12  <isaacs>dominictarr: yes, you have to emit your own pause/resume
07:07:22  <isaacs>dominictarr: if a write() buffers, it should return false.
07:07:47  <isaacs>dominictarr: the best streams don't ever emit chunks while pauased.
07:08:25  <isaacs>dominictarr: but some (tcp/fs) occasionally might, if a read() was already in progress
07:09:59  <dominictarr>can i tell the upstream to pause before the next call to write?
07:10:32  <dominictarr>isaacs: it sounds like the upshot of this is that all streams must be prepared to buffer a few chunks.
07:11:02  <isaacs>dominictarr: yes, streams need to buffer a bit, ideally
07:11:09  <isaacs>dominictarr: whihc is unfortunate
07:11:58  <isaacs>ideally, you can tell the upstream source to pause, as well, eg by returning false, not making another call to the underlying system interface, etc.
07:12:30  <isaacs>but yeah, planning on buffering a little bit is a good idea
07:12:37  <dominictarr>right, yeah that is what I thought.
07:13:46  <dominictarr>there is probably a bit of room for a easier to extend UserStream class that does this stuff, but not in core.
07:21:32  <isaacs>we plan to move a lot of this sort of stuff into core in v0.9
07:21:39  <isaacs>a buffering pause(), etc.
07:35:55  <dominictarr>ah, interesting.
07:37:58  <dominictarr>maxogden: this is the API I'm thinking https://github.com/dominictarr/browser-stream
07:48:33  * isaacsquit (Remote host closed the connection)
07:49:13  * isaacsjoined
07:54:59  * isaacsquit (Ping timeout: 272 seconds)
07:58:33  <rowbit>Hourly usage stats: [free: 40]
08:14:20  * mikealjoined
08:38:21  <dominictarr>substack: you awake?
08:38:32  <SubStack>yep
08:38:44  <dominictarr>I have a question about browserify
08:39:12  <dominictarr>what js does it bundle? only the tree of deps that are required?
08:39:20  <dominictarr>or every thing in the node_modules dir
08:40:10  <SubStack>only the things that are require()d
08:41:04  <SubStack>it uses this module http://github.com/substack/node-detective
08:41:17  <dominictarr>so if I only use core libs, it shoulb bundle pretty fast, correct?
08:42:29  <SubStack>the speed of bundling is mostly determined by the size of the js files that it needs to walk over the AST for
08:42:35  <SubStack>and the number of files
08:42:42  <SubStack>and it's much faster than it used to be
08:42:49  <dominictarr>oh, there was a dep i forgot.
08:47:42  <dominictarr>it was dominode breaking stuff.
08:58:32  <rowbit>Hourly usage stats: [free: 31]
09:04:54  <dominictarr>maxogden: how do I bundle dominode? i'm getting: Cannot find module "node-htmlparser/lib/node-htmlparser"
09:06:31  <dominictarr>ill post an issue
09:58:33  <rowbit>Hourly usage stats: [free: 37]
10:58:33  <rowbit>Hourly usage stats: [free: 38]
11:08:47  * tilgoviquit (Ping timeout: 272 seconds)
11:24:37  * zuquit (Ping timeout: 246 seconds)
11:39:20  * zujoined
11:58:33  <rowbit>Hourly usage stats: [free: 35]
12:01:52  * TheJHjoined
12:58:32  <rowbit>Hourly usage stats: [free: 19]
13:25:05  * dominictarrquit (Quit: Page closed)
13:58:33  <rowbit>Hourly usage stats: [developer: 1, free: 17]
14:10:03  * wiwilliajoined
14:53:44  * simcop2387quit (Excess Flood)
14:54:36  * simcop2387joined
14:58:33  <rowbit>Hourly usage stats: [free: 30]
15:08:52  * wiwillia2joined
15:09:14  * anoemijoined
15:22:02  * sorensen__joined
15:22:20  * sorensen__quit (Client Quit)
15:29:27  * Altreusquit (Ping timeout: 245 seconds)
15:29:57  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
15:29:57  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
15:31:02  <SubStack>woot!
15:43:48  <pikpik>\o/
15:50:00  * Altreusjoined
15:52:24  * wiwillia2quit (Ping timeout: 244 seconds)
15:55:53  * ryan_stevensjoined
15:58:33  <rowbit>Hourly usage stats: [developer: 1, free: 44]
16:02:05  * isaacsjoined
16:09:12  * devaholicquit (Ping timeout: 252 seconds)
16:16:55  * SubStackheads down to cupertino
16:17:00  <SubStack>giving a testling demo!
16:50:17  * tilgovijoined
16:57:12  * tilgovi_joined
16:58:20  * ryan_stevenspart
16:58:32  <rowbit>Hourly usage stats: [developer: 1, free: 31]
16:58:38  * tilgoviquit (Ping timeout: 260 seconds)
17:00:13  * ryan_stevensjoined
17:01:02  <pkrumins>signups!
17:24:11  * devaholicjoined
17:37:35  <pikpik>Awesome! :)
17:58:33  <rowbit>Hourly usage stats: [free: 20]
18:01:18  * zz_shykeschanged nick to shykes
18:11:09  * tilgovi_quit (Read error: Operation timed out)
18:21:10  * tilgovijoined
18:22:37  * mikealquit (Quit: Leaving.)
18:24:22  * mikealjoined
18:55:17  * tilgoviquit (Ping timeout: 252 seconds)
18:57:29  * shykeschanged nick to zz_shykes
18:58:21  * mikealquit (Quit: Leaving.)
18:58:33  <rowbit>Hourly usage stats: [free: 25]
19:01:30  * mikealjoined
19:13:29  * mikealquit (Quit: Leaving.)
19:21:48  * mikealjoined
19:22:01  * mikealquit (Client Quit)
19:25:14  <maxogden>SubStack: i think there is a bug in here that disregards multiple onreadystate 3 https://github.com/substack/http-browserify/blob/master/lib/response.js#L49
19:31:34  * anoemiquit (Quit: anoemi)
19:32:03  * anoemijoined
19:34:23  * anoemiquit (Client Quit)
19:58:33  <rowbit>Hourly usage stats: [free: 41]
19:58:33  <rowbit>Daily usage stats: [developer: 4, free: 509]
20:21:01  * isaacsquit (Remote host closed the connection)
20:26:40  * st_lukejoined
20:27:15  * dominictarrjoined
20:27:21  <dominictarr>hey guys
20:41:50  * isaacs_mobilejoined
20:58:33  <rowbit>Hourly usage stats: [developer: 2, free: 44]
21:00:11  * isaacs_mobilequit (Remote host closed the connection)
21:06:08  * tilgovijoined
21:06:09  * zz_shykeschanged nick to shykes
21:07:11  * isaacs_mobilejoined
21:07:48  * shykeschanged nick to zz_shykes
21:26:56  * isaacs_mobilequit (Remote host closed the connection)
21:41:04  <maxogden>dominictarr: wassup, did you figure out the node-htmlparser error?
21:41:51  <dominictarr>maxogden: oh, it was because I had npm install dominode, not dominode.js
21:42:00  <maxogden>oh right, yea that sucks
21:42:01  <dominictarr>posted an issue about that.
21:44:48  <dominictarr>maxogden: what did you think of https://github.com/dominictarr/browser-stream is that how you would have implemented it?
21:49:05  * TheJHquit (Ping timeout: 272 seconds)
21:49:08  * mikealjoined
21:50:34  <maxogden>dominictarr: yes that is awesome
21:51:13  <maxogden>dominictarr: also i like your idea about infinite scroll buffering
21:51:39  <dominictarr>it would make a great demonstration.
21:51:47  * intabulasjoined
21:51:56  <dominictarr>as to the power of the stream API
21:52:07  <maxogden>oh yea thats a good point
21:52:38  <maxogden>i wanna write a demo where you make a stream that pipes to multiple dominodes too
21:52:55  <maxogden>"you get a pipe! and you get a pipe! and you get a pipe!"
21:53:10  * SubStackin cupertino!
21:53:20  <maxogden>SubStack: sellout
21:54:46  <maxogden>dominictarr: also paolo is writing a css selector version of plates now
21:54:50  * mikealquit (Quit: Leaving.)
21:55:16  <maxogden>dominictarr: so you'll be able to emit({'.item': 'foo'}) and it will render <div class="item">foo</div>
21:56:01  <SubStack>maxogden: I also illegally tresspassed under interstate 880 in an underground culvert
21:56:23  <SubStack>since I was stuck on the wrong side of the freeway and there was no possible way to go south without backtracking about 6 miles
21:56:32  <maxogden>that is awesome
21:57:20  <SubStack>a few inches of water but I just rolled up my jeans and took off my shoes
21:57:32  <SubStack>then I had to throw my bike over a fence, which was HARD
21:57:34  <dominictarr>you mean, write({".item": 'foo'})
21:57:46  <maxogden>:D
21:57:57  <SubStack>that was in milpitas
21:58:02  <maxogden>i was speaking as the readable stream
21:58:06  <SubStack>hahaha streams
21:58:21  <maxogden>as opposed to the user writing to the writable stream which later emits in some readable stream
21:58:30  * niftylettucejoined
21:58:33  <rowbit>Hourly usage stats: [developer: 1, free: 22]
21:59:21  <SubStack>also I ordered a falafel in sunnyvale but it dripped aaaaaall over me
21:59:40  <maxogden>owned
21:59:49  <maxogden>tabbouleh'd
22:00:03  <dominictarr>maybe, you shouldn't eat falafel when your lieing on your back.
22:00:14  * st_lukequit (Remote host closed the connection)
22:01:03  <niftylettuce>\o
22:02:01  <pikpik>o/
22:06:49  * isaacs_mobilejoined
22:17:18  <niftylettuce>isaacs_mobile: what do you use for mobile irc?
22:17:34  <isaacs_mobile>Limechat mobile.
22:29:23  * isaacs_mobilequit (Remote host closed the connection)
22:34:20  * st_lukejoined
22:40:30  <dominictarr>new blog post: https://gist.github.com/2401787
22:43:49  <st_luke>doin taxes is fun
22:44:31  * intabulasquit (Remote host closed the connection)
22:46:53  <maxogden>fill out 50 pages of forms on turbotax, receive thousands of dollars!
22:47:04  <guybrush>;;;;;;
22:49:09  <st_luke>haha maxogden one place I worked did crappy accounting so I'm not getting too much back this year
22:49:45  <maxogden>i have the most minimal tax profile possible
22:50:12  <maxogden>single w2, no deductions, no special edge cases, every paycheck had state + federal withheld
22:50:30  <maxogden>just spend half an hour saying 'no' to all the turbotax options hehe
22:50:47  <st_luke>that's the best
22:51:47  <st_luke>I kinda like when they take out a little extra than normal because then tax season is when I get to buy something new I probably don't need anyway
22:57:13  <st_luke>maxogden: what brand laptop bag are you using? the one you had in bk looked good for traveling
22:58:03  <maxogden>i have a 15 dollar military surplus canvas bag, i got it in portland
22:58:33  <rowbit>Hourly usage stats: [developer: 4, free: 24]
22:58:54  <st_luke>sweet I think there's a military surplus store up the road from where I am right now
23:00:38  * isaacsjoined
23:01:39  <pikpik>The military surplus stores in my area went out of business. :(
23:01:46  <pikpik>They were so cool.
23:25:14  * isaacs_mobilejoined
23:34:33  * isaacs_mobilequit (Remote host closed the connection)
23:39:06  * niftylettucejust got invited out for an interview at YC
23:39:17  <niftylettuce>\o/
23:40:08  <maxogden>sweet
23:57:19  * sorensen__joined
23:58:33  <rowbit>Hourly usage stats: [free: 23]
23:59:03  * sorensen__quit (Client Quit)