00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:09  * ircretaryjoined
00:06:23  * mikealquit (Quit: Leaving.)
00:08:27  * nk109quit (Quit: Computer has gone to sleep.)
00:08:39  * shuaibquit (Ping timeout: 265 seconds)
00:09:30  * shuaibjoined
00:10:18  <mbalho>linux question: i have an sd card with the raspberry pi OS on it and i wanna make a backup but the card is 32g with only 2g taken up
00:10:34  <mbalho>so when i use dd i get a 32g file, but rsync wont make it bootable
00:10:40  <mbalho>is there some better way?
00:11:12  <defunctzombie>mount the card and copy the files?
00:11:24  * ryan_stevensjoined
00:11:43  <mbalho>i have a mac laptop and it doesnt talk to linux file systems
00:12:49  <CoverSlide>mbalho: gparted live cd
00:13:13  <CoverSlide>or actually system rescue disc which contains gparted
00:13:34  <mbalho>:( my laptop doesnt even have a cd drive
00:13:42  * shuaibquit (Ping timeout: 252 seconds)
00:13:53  <CoverSlide>mbalho: they can boot from usb. although i don't know how to boot from usb on a mac
00:14:24  <CoverSlide>you may also try a vm and see if you can get it to see the sd card drive
00:15:00  <mbalho>CoverSlide: ooh thats a good idea
00:15:29  * shuaibjoined
00:15:45  <CoverSlide>gparted is awesome, though, i wish they could port it to OSX, i've had the same problem you did, except i have a linux laptop
00:16:16  * _sorensenquit (Ping timeout: 272 seconds)
00:16:22  <CoverSlide>another alternative is learn mbr header formats and use dd at your own risk
00:16:30  <mbalho>hah
00:16:35  <CoverSlide>but that's a bit overkill
00:17:50  <CoverSlide>essentially though it would be the simplest, probably just modifying a handful of bytes on the card and you're done
00:18:02  * nk109joined
00:19:17  * defunctzombiechanged nick to defunctzombie_zz
00:19:22  * defunctzombie_zzchanged nick to defunctzombie
00:19:41  * ryan_stevensquit (Ping timeout: 255 seconds)
00:23:04  * yorickjoined
00:27:16  * defunctzombiechanged nick to defunctzombie_zz
00:34:07  * ecjoined
00:35:12  <Raynos>we just restarted our joyent box
00:35:20  <Raynos>and had likely only 1 minute of down time O/
00:36:35  * mikealjoined
00:37:01  <Raynos>joyent is awesome.
00:37:12  <Raynos>Fleet is also awesome
00:43:09  * yorickquit (Remote host closed the connection)
00:46:09  * ryan_stevensjoined
00:54:38  <rowbit>Hourly usage stats: [developer: 0, free: 32]
01:11:18  * ecchanged nick to notelliottcable
01:12:04  <substack>I should really start using fleet again in production but first I need to fix it
01:13:47  * ryan_stevensquit (Quit: Leaving.)
01:28:29  <Raynos>substack: what do you use instead?
01:28:35  <substack>nothing
01:28:38  <Raynos>Am I the only one using it in production?
01:29:31  <substack>possibly
01:30:43  <substack>fleet was being used to run testling for a while but the memory usage was getting out of hand
01:30:56  <Raynos>memory usage?
01:31:05  <substack>memory leak somewhere
01:31:20  <Raynos>we have one too!
01:31:24  <Raynos>I thought it was my app
01:32:01  <Raynos>all the fleet related processes have < 30MB of rss
01:32:33  <Raynos>so it is my app that leaks
01:37:10  * defunctzombie_zzchanged nick to defunctzombie
01:43:04  * ryan_stevensjoined
01:46:46  * defunctzombiechanged nick to defunctzombie_zz
01:54:39  <rowbit>Hourly usage stats: [developer: 1, free: 60]
02:05:58  * ryan_stevensquit (Quit: Leaving.)
02:14:59  <mbalho>http://for-cats.com
02:20:31  <substack>what's up with the internet right now
02:20:34  <substack>getting a ton of 404s
02:20:55  <substack>did ebs shit itself again?
02:29:53  * defunctzombie_zzchanged nick to defunctzombie
02:46:33  <defunctzombie>is there a json api to query npm for stats?
02:48:53  <substack>couchdb is a json api
02:49:39  <defunctzombie>want to get a list of the most published authors
02:49:53  <defunctzombie>would that be something couchdb can spit out?
02:49:59  * defunctzombiedoesn't know much about couch db
02:51:24  <substack>http://isaacs.iriscouch.com/registry/_design/app/_view/npmTop?group_level=1
02:51:50  <defunctzombie>wut is this
02:52:18  <substack>exactly the data you are looking for
02:52:23  <defunctzombie>hahaha
02:52:25  <defunctzombie>amazing
02:52:47  <defunctzombie>I am trying to create a statistic
02:52:53  <defunctzombie>or actually find what the statistic is
02:54:38  <rowbit>Hourly usage stats: [developer: 0, free: 56]
02:56:53  <defunctzombie>substack: now for a list of packages given an author name?
02:57:40  <defunctzombie>also.. did you know there is a module called substack
02:57:41  <defunctzombie>rofl
03:02:00  <substack>http://github.com/isaacs/npm-www
03:02:42  <defunctzombie>gracias
03:05:36  <substack>http://isaacs.iriscouch.com/registry/_design/app/_view/byUser?startkey=%22substack%22&endkey=%22substack%22
03:07:22  * ralphtheninjaquit (Ping timeout: 250 seconds)
03:13:31  * dominictarrjoined
03:15:50  * ryan_stevensjoined
03:20:55  * dominictarrquit (Read error: Connection reset by peer)
03:25:04  * dominictarrjoined
03:26:01  * tphummelquit (Quit: tphummel)
03:28:09  <defunctzombie>total modules 205
03:28:09  <defunctzombie>total deps 337
03:28:09  <defunctzombie>not pinned 304
03:28:10  <defunctzombie>not own 138
03:28:13  <defunctzombie>percent pinned 9.792284866468842
03:28:14  <defunctzombie>percent not pinned 90.20771513353115
03:28:16  <defunctzombie>percent not pinned - own 67.35905044510386
03:28:18  <defunctzombie>substack: ^
03:28:37  <defunctzombie>the last line is the interesting one
03:28:48  <defunctzombie>it says how many of your not pinned deps are owned by you
03:30:18  <substack>I generally trust authors to not break their apis on patch releases until proven otherwise
03:30:39  <defunctzombie>most of your deps were either ~
03:30:44  <substack>it means they can fix bugs and I don't need to update my packages every single time to get bugfixes
03:30:46  <defunctzombie>or N.N.x
03:31:02  <defunctzombie>total modules 242
03:31:02  <defunctzombie>total deps 298
03:31:02  <defunctzombie>not pinned 162
03:31:04  <defunctzombie>not own 71
03:31:06  <defunctzombie>percent pinned 45.63758389261745
03:31:08  <defunctzombie>percent not pinned 54.36241610738255
03:31:10  <defunctzombie>percent not pinned - own 90.93959731543623
03:31:12  <defunctzombie>that is tj
03:31:14  <defunctzombie>this is why he doesn't want to pin
03:31:17  <defunctzombie>because he controls the modules
03:31:46  <substack>vertical integration!
03:32:12  <substack>some of my modules are like that, but usually the crappier ones
03:33:41  <dominictarr>defunctzombie, what does pinned mean?
03:33:47  <dominictarr>~M.m.p ?
03:33:50  <defunctzombie>no
03:33:52  <defunctzombie>M.m.p
03:33:54  <dominictarr>or do you want EXACT
03:33:55  <defunctzombie>fully pinned
03:33:57  <defunctzombie>exact
03:34:11  <defunctzombie>I could generate stats on patch level pinning
03:34:15  <defunctzombie>that could be interesting too
03:34:26  <defunctzombie>but in this case I am going for exact
03:34:27  <fotoverite>pin?
03:34:46  <dominictarr>I generally use ~M.m.p
03:34:56  <dominictarr>sometimes ~M.m
03:34:59  <defunctzombie>I see that alot.. at least that is something
03:35:05  <defunctzombie>I have a hypothesis
03:35:06  <dominictarr>only occasionally M.m.p
03:35:13  <defunctzombie>that module authors are less likely to pin
03:35:19  <defunctzombie>when tehy are depending on their own modules
03:35:33  <defunctzombie>since they feel like they can control the api, or make less mistakes or whatever
03:35:50  <defunctzombie>I always do M.m.p as I don't trust anyone hahaha even myself
03:36:09  <defunctzombie>total modules 152
03:36:09  <defunctzombie>total deps 263
03:36:09  <defunctzombie>not pinned 220
03:36:11  <defunctzombie>not own 70
03:36:13  <defunctzombie>percent pinned 16.34980988593156
03:36:15  <defunctzombie>percent not pinned 83.65019011406845
03:36:17  <defunctzombie>percent not pinned - own 74.90494296577947
03:36:19  <defunctzombie>dominictarr: ^
03:36:21  <defunctzombie>I find it pretty fascinating tho
03:36:27  <dominictarr>sometimes I find a bug in a low dep
03:36:30  <defunctzombie>how many of the deps are the authors own files
03:37:30  <defunctzombie>dominictarr: yea, that is the argument many people make... the counter I usually say is that if that bug has not surfaced then you may not need to update those modules.. also, if it has, maybe that module has been patched to hack around it
03:37:36  <defunctzombie>and fixing the bug actually breaks behavior
03:37:37  <defunctzombie>anyhow..
03:37:42  <defunctzombie>~ is way way better than *
03:37:51  <defunctzombie>if people would do ~ that is a start :D
03:37:51  <dominictarr>absolutely
03:37:55  <dominictarr>no question
03:37:57  <substack>* is basically always wrong
03:38:01  <dominictarr>* is insane
03:38:01  <substack>>= likewise
03:38:12  <defunctzombie>yes and yet I still have a hard time convincing people otherwise
03:38:30  <dominictarr>~ is good because you can say only after this patch
03:38:47  <dominictarr>if bump something, and it breaks
03:38:54  <dominictarr>i just patch it again
03:39:11  <dominictarr>and update all the dependants to a higher patch with ~
03:39:27  <defunctzombie>yea, I guess I approach it from an ops heavy standpoint where I don't like to see two different codebases deployed
03:39:42  <defunctzombie>but then again I use npm install to do that
03:39:55  <dominictarr>but do you check in deps for your apps?
03:39:56  <defunctzombie>people keep telling me npm isn't for deployment, but I don't see why npm install is bad :)
03:40:01  <defunctzombie>nope
03:40:08  <defunctzombie>I have them in package.json
03:40:08  <dominictarr>just check it in
03:40:18  <dominictarr>then you know EXACTLY what is running
03:40:29  <defunctzombie>I don't like the repo spam :/
03:40:38  <dominictarr>plus, someone COULD do a publish --force
03:40:43  <defunctzombie>there are some cool fingerprinting modules out there (I think one from mozilla)
03:40:45  <dominictarr>a unpublish
03:41:04  <dominictarr>it's okay, because it's only in you apps
03:41:16  <defunctzombie>yes, they could, that is where I think people have to be more cautious and understand what it means to publish
03:41:26  <defunctzombie>certainly the debian heavy hand approach isn't good
03:41:27  <dominictarr>also, you put all the installs into a UPDATE commit
03:41:33  <defunctzombie>but too cavalier an attitude might also be bad
03:42:01  <dominictarr>easier to change your own behavior than to change everyone elses.
03:42:35  <dominictarr>also npm snapshot
03:42:43  <defunctzombie>yes
03:43:03  <defunctzombie>I guess I see npm as being able to do what I want
03:43:13  <defunctzombie>just a matter of understanding what it means to depend on something
03:43:37  <defunctzombie>to me it is just a "best practice" type of thing, everyone has their own way
03:44:12  <defunctzombie>just think that it would suck if I pulled down some code from github (a module I want to contribute to), npm install to get the deps
03:44:16  <defunctzombie>change something unrelated
03:44:34  <defunctzombie>and it doesn't work because some dep for >= or * is completely different
03:45:06  <defunctzombie>anyhow.. not really a battle I go on an on about.. I just like to comment on it when I see it :)
03:45:18  <defunctzombie>and today I saw it again.. and was sad.. I cried a little
03:48:32  <defunctzombie>dominictarr: node.js meetup tomorrow
03:48:41  <defunctzombie>you should drop by if you aren't doing anything ele
03:48:42  <defunctzombie>*else
03:49:23  <dominictarr>fotoverite, is that the one I am speaking at? or is that the JS meetup?
03:49:31  <fotoverite>nyc.js is thursday
03:49:44  <fotoverite>unfortunately there is also a github drinkup
03:49:51  <fotoverite>because the world likes to fuck over my meet up. :(
03:50:39  <dominictarr>well, the apocalypse is on fri
03:50:51  <dominictarr>so everyone needs to get their meeting in before that
03:51:22  <dominictarr>defunctzombie, where is it? and when?
03:51:47  <dominictarr>defunctzombie, def agree that >= and * is really bad
03:51:52  <defunctzombie>http://www.meetup.com/nodejs/events/91062122/
03:52:00  * dguttmanquit (Quit: dguttman)
03:52:06  <dominictarr>but I think exact is going a little too far for most things
03:54:38  <rowbit>Hourly usage stats: [developer: 0, free: 147]
04:21:25  <defunctzombie>substack: I need to write up the documentation/spec on the browser field
04:21:44  <defunctzombie>where should I throw it up?
04:29:23  <substack>anywhere
04:29:40  <substack>gist?
04:29:44  <substack>or a repo
04:29:46  <substack>or a blog post
04:29:48  <substack>wherevs
04:31:14  <defunctzombie>maybe I will try out these new fancy gists github is supposed to have
04:36:34  * ryan_stevensquit (Quit: Leaving.)
04:50:14  <dominictarr>Raynos, hey how did your talk go?
04:54:39  <rowbit>Hourly usage stats: [developer: 0, free: 69]
04:58:47  <defunctzombie>\o/ awesome script to download all my github repos and add 'upstream' remotes for the forks
05:00:14  <ik>DAYCHANGE!
05:01:36  * defunctzombiechanged nick to defunctzombie_zz
05:05:53  * shuaibquit (Ping timeout: 255 seconds)
05:09:25  * dguttmanjoined
05:09:34  <substack>dominictarr: JSONStream seems to not play nicely with utf-8
05:09:58  <dominictarr>what happens?
05:10:25  <substack>instead of "[email protected] node_modules/tape\n├── [email protected]\n├── ...
05:10:41  <substack>which I get when not piping through JSONStream, just pulling directly from couch
05:10:43  <dominictarr>aha
05:11:01  <substack>I'm getting:
05:11:03  <substack>"[email protected] node_modules/tape\n├── [email protected]\n├── [email protected]\n└── json...
05:11:13  <dominictarr>hmm, interesting.
05:11:52  <substack>I'll see if I can build a failing test out of this
05:12:04  <dominictarr>because I think that those | characters are actually just single byte 128 - 255 values
05:12:23  <dominictarr>it's probably in creationix/json-parse
05:13:56  * dguttmanquit (Client Quit)
05:15:04  <dominictarr>I don't think I actually touch the buffers in JSONStream
05:16:19  * defunctzombie_zzchanged nick to defunctzombie
05:17:21  <substack>narrowing down precisely where this is happening
05:19:17  <substack>confirmed that the this.value[this.key] from onValue has the issue
05:19:25  <substack>so it's in json-parse
05:20:27  <substack>found this comment:
05:20:31  <substack>// TODO: Handle native utf8 characters, this code assumes ASCII input
05:21:32  <substack>there's even an issue already for it https://github.com/creationix/jsonparse/issues/7
05:21:38  <substack>ok fixing this tonight
05:22:40  <substack>first order of business: a proper test suite
05:22:45  <substack>then I'll put it in testling-ci :D
05:23:54  <substack>I don't even know how people can write libraries like this without test suites
05:23:56  <substack>it's so much work
05:24:32  <substack>if you want to be truly lazy about this stuff, you should do the work to establish a test suite to enable future laziness
05:24:43  <defunctzombie>faith
05:25:38  <substack>by which I am just paraphrasing larry wall
05:25:46  <substack>who is incidentally a man of faith
05:25:58  <substack>yet not when it comes to code quality!
05:26:50  * substackstill a perl hacker at heart
05:33:34  <dominictarr>yeah, my parser writer career starts and ends with JSON.sh, but I never could have gotten that correct without good tests
05:33:44  <dominictarr>and a few pull requests!
05:36:11  <mbalho>im at sudoroom 3d printing stuff it is awesome
05:37:30  <dominictarr>mbalho, did you see https://twitter.com/hij1nx/status/280863092882161664
05:38:07  <mbalho>yea its now the official node outfit
05:38:35  <dominictarr>sweet definately
05:38:53  <fotoverite>I wear my cascade hoodie to everyhting
05:39:09  <dominictarr>fotoverite, you just need a black army surplus bag
05:39:26  <fotoverite>sorry where I go so does my camera
05:40:12  * st_lukejoined
05:40:34  <mbalho>not just any black army surplus bag
05:40:41  <mbalho>THE black army surplus bag
05:43:11  <st_luke>I know this backpack
05:43:34  <substack>you can buy them in berkeley on san pablo
05:43:39  <dominictarr>but if you are pure of heart, you will know the right one.
05:43:43  <substack>haha
05:44:02  <st_luke>I got mine in upstate ny
05:44:38  <fotoverite>Pure of heart ha… so we are basically beginning a jrpg then
05:45:31  <substack>meanwhile my linen czech army bag from 1954 was the last one in stock
05:45:36  <mbalho>hipster
05:45:45  <dominictarr>totally vintage
05:45:56  <substack>only $15 too
05:46:45  <mbalho>at least go with an eastern european country nobody has heard of
05:47:08  <st_luke>belarus?
05:47:12  <dominictarr>mondova
05:47:14  <substack>well it was chezchoslavakia back in those days
05:47:19  <substack>you've probably never heard of it
05:47:59  <substack>*czecho
05:48:18  <dominictarr>http://www.youtube.com/watch?v=oOOuc-8y7HU
05:51:19  <dominictarr>no, this one is better http://www.youtube.com/watch?v=ugqGueQ9Ud8
05:53:53  <dominictarr>okay, I'm off to bed! catch you guys later!
05:56:04  <substack>night
05:58:58  <st_luke>never send a bcc
06:00:23  * shuaibjoined
06:04:36  <substack>ok jsonparse now has a passing tap test I made from the test.js
06:06:39  <substack>now I can program recklessly as usual
06:10:53  <substack>and now I have a failing test for utf8
06:14:22  <mbalho>dominictarr: any new developments on the 'replicate leveldb' front
06:18:46  <substack>hooray I fixed jsonparse for utf8
06:19:54  * ralphtheninjajoined
06:23:07  * thatguydanquit (Quit: thatguydan)
06:28:25  * sorensenquit (Ping timeout: 246 seconds)
06:30:10  * chapelquit (Ping timeout: 246 seconds)
06:31:39  * stlsaintjoined
06:31:39  * stlsaintquit (Changing host)
06:31:39  * stlsaintjoined
06:32:15  <substack>https://github.com/creationix/jsonparse/pull/11
06:33:30  * thatguydanjoined
06:37:31  <st_luke>mbalho: http://instagram.com/p/TaITjGw71P/
06:38:06  <st_luke>saw that dude chillin at the store
06:40:03  <st_luke>substack: rad
06:40:27  <st_luke>that's a pretty sweet patch
06:41:22  <mbalho>FUCK YEA
06:42:02  <substack>for my next trick
06:42:10  <substack>I will make jsonparse work in ie6
06:43:04  <st_luke>IT'S AN ILLUSION
06:45:10  <substack>oh blarg, tests aren't working
06:45:22  <substack>need to finish that testling-ci patch I think
06:45:33  <substack>the one that tells me about errors
06:52:30  <st_luke>pretty sure life would be amazing if I could see a cat coming out of the lettuce at the grocery store a few times a week
06:53:30  <defunctzombie>substack: https://github.com/substack/jsonparse/commit/2bdb1fac3335cc90295c901a927c82ac6956e37f
06:53:33  <defunctzombie>love that one
06:57:48  <substack>tests give you the freedom to guess and check
06:57:51  <substack>so nice
06:58:59  <st_luke>substack: what if there were real life testling badges
07:02:33  <substack>yes
07:02:40  <substack>embroidery
07:03:04  <substack>if I had hella dollars I would so make those
07:03:25  <st_luke>someday
07:05:02  <substack>whoa this just worked, awesome:
07:05:12  <substack>npm install 'git://github.com/substack/jsonparse#utf8'
07:05:21  <substack>#branch seems to work
07:05:27  <substack>isaacs++
07:05:58  <st_luke>sweet
07:09:22  * ryan_stevensjoined
07:10:18  <substack>there's a bug in JSONStream too, not just jsonparse
07:10:27  <substack>a bug in stringify
07:13:11  <substack>oh wait!
07:13:16  <substack>it actually works now
07:13:24  <substack>probably chrome just being stupid about rendering it
07:13:56  <substack>yessssss
07:28:00  <defunctzombie>haha
07:28:12  <substack>man browsers are so shitty
07:28:30  <substack>even chrome
07:29:10  <substack>feature creepy big apps that started lives as document viewers
07:29:27  <substack>we need all this machinery just to make sure they don't shit themselves
07:32:29  <defunctzombie>browsers are THE FUTURE
07:36:49  * tilgoviquit (Remote host closed the connection)
07:45:07  * defunctzombiechanged nick to defunctzombie_zz
07:49:17  * defunctzombie_zzquit (Ping timeout: 246 seconds)
07:52:34  * defunctzombiejoined
08:00:42  * No9quit (Ping timeout: 264 seconds)
08:01:41  * No9joined
08:03:27  * AvianFluquit (Remote host closed the connection)
08:03:47  * thatguydan_joined
08:04:45  * st_lukequit (Remote host closed the connection)
08:07:59  * thatguydanquit (Ping timeout: 265 seconds)
08:08:05  * thatguydan_quit (Ping timeout: 256 seconds)
08:08:40  <dominictarr>mbalho, if you use level-scuttlebutt you can replicate that portion of the leveldb
08:09:00  <dominictarr>you get a bunch of scuttlebutts
08:09:11  <substack>ok now bundle errors go to couch and render in the ui on my local testling build
08:09:11  <dominictarr>whatever flavors you like
08:09:19  <substack>that will be up soon
08:09:38  <dominictarr>also, you can do map-reduce over the scuttlebutts for queries
08:11:15  <substack>SPEAKING of
08:11:29  <substack>need to get those browser tests passing
08:12:06  <Raynos>dominictarr: can you write examples for level-scuttlebutt
08:12:32  <dominictarr>yeah, I'm gonna push a demo I've been working on tomorrow
08:13:24  <Raynos>https://github.com/dominictarr/level-scuttlebutt/issues/1
08:13:34  <Raynos>I think level-scuttle handles those 3 use cases
08:13:40  <Raynos>so it would be cool to see examples of them
08:14:01  <Raynos>also cc'd you into a nodejs mailing list thread about databases!
08:14:32  <dominictarr>I have a filter for the nodejs list
08:16:14  <Raynos>well mainly because I recommended leveldb
08:16:28  <Raynos>and want to give you the oppurtunity to say "jake is an idiot! totally wrong usecase for leveldb here."
08:16:59  <Raynos>But its an interesting thread
08:17:07  <Raynos>Im curious how you can do efficient one way replication
08:17:46  <Raynos>readstream -> network -> write stream is a copy and is wasteful if you connect multiple times
08:17:56  <Raynos>I guess a simple "I have send this flag" works
08:18:39  <dominictarr>readstream is fine
08:19:04  <dominictarr>hmm, you could use a merkle tree if you had intermittent connections
08:19:28  <dominictarr>you could use that for one way replication easy enough
08:19:40  <dominictarr>with out needing versioning of documents
08:19:52  <Raynos>well the use case is here is
08:19:58  <Raynos>using leveldb as append only data
08:20:02  <dominictarr>Raynos, I basically agree with what you've said in the post
08:20:05  <Raynos>writing to each key once
08:20:14  <Raynos>so im thinking store a timestamp of the last send message
08:20:22  <Raynos>and readStream({ since timestamp }).pipe(net)
08:20:46  <dominictarr>you can find the last key by doing a reverse range query with limit: 1
08:21:33  <Raynos>assuming they are timestamped
08:21:36  <Raynos>or ever increasing
08:21:59  <dominictarr>they just need to sort like that
08:22:09  <dominictarr>also, you could write a log with hooks
08:22:13  <Raynos>i did mention you could only do new values
08:22:19  <Raynos>but then you have to handle disconnections
08:22:24  <Raynos>and buffer when the network is down
08:22:38  <Raynos>and persisting that buffer across application failurse
08:22:41  <dominictarr>yes, if you have a single master instance then you don't have to merge - which is good
08:23:39  <Raynos>Oh
08:23:45  <Raynos>The other issue is keys
08:23:48  <Raynos>they have to be unique
08:25:22  <Raynos>mbalho: did you do a ws stream?
08:26:35  <dominictarr>you could just write a log, of ts -> key that is a job queue of records to replicate
08:27:40  <dominictarr>we need a thing that intercepts a put and does a get first... then we can do peer to peer replication
08:28:07  <dominictarr>... of data that only slowly changes and prehaps doesn't need to be a scuttlebutt instance.
08:28:18  * jez0990_quit (Ping timeout: 264 seconds)
08:28:38  <Raynos>i think its cool
08:28:47  <Raynos>that you can cobble that very niche database request together
08:28:51  <Raynos>with leveldb and plugins :D
08:28:59  <Raynos>its almost all there just not that efficient and maybe overkill
08:29:13  <substack>dominictarr: https://github.com/creationix/jsonparse/pull/11
08:29:23  <dominictarr>very good
08:29:46  <substack>my guess about how utf-8 works was actually correct
08:29:56  <dominictarr>Raynos, I want to do that, but it's just not the highest priority.
08:30:06  <dominictarr>easier to do scuttlebutt first
08:30:43  <dominictarr>substack, how does it work?
08:31:42  <substack>utf8 is just runs of bytes with the high bit set
08:31:54  <substack>then you can just do a slice of the run
08:32:52  <substack>for (var j = i; j < buffer.length && buffer[j] >= 128; j++); var s = buffer.slice(i,j).toString()
08:38:28  <dominictarr>what about cases like JSON.stringify('\x80\x01')
08:38:43  <dominictarr>"\\u0001"
08:39:42  <substack>that's 2 characters
08:40:02  <substack>a byte <0x80 is a terminal character
08:40:08  <substack>that's what lets utf8 work alongside ascii
08:43:32  <dominictarr>so, how do you know when a utf
08:43:38  <dominictarr>-8 char is done?
08:51:01  <substack>oh I'm not sure exactly
08:51:12  <substack>but a string of them will end with a byte < 128
08:51:38  <Altreus>According to javascript, the . in the bulk of the keyboard (as opposed to the one in the numpad) is actually ¾
08:56:44  * ryan_stevensquit (Quit: Leaving.)
09:03:03  * shuaibquit (Quit: Textual IRC Client: http://www.textualapp.com/)
09:04:09  * nk109quit (Read error: Operation timed out)
09:18:21  <mbalho>Raynos: 'do a ws stream' ?
09:20:16  * chapeljoined
09:26:02  <mbalho>http://www.youtube.com/watch?v=CE0Q904gtMI&t=0m32s
09:27:39  * jez0990joined
09:52:47  * b___joined
09:57:13  * ryan_stevensjoined
10:04:16  * rook2pawnquit (Read error: Operation timed out)
10:06:58  * rook2pawnjoined
10:07:10  * ryan_stevensquit (Ping timeout: 272 seconds)
10:33:22  * ryan_stevensjoined
10:37:05  * jez0990quit (Ping timeout: 255 seconds)
10:41:38  * jez0990_joined
10:44:11  * ryan_stevensquit (Ping timeout: 255 seconds)
10:47:25  * thatguydanjoined
10:47:27  * thatguydanquit (Client Quit)
11:11:05  * ryan_stevensjoined
11:21:16  * ryan_stevensquit (Ping timeout: 244 seconds)
11:33:30  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
11:33:30  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
11:49:12  * ryan_stevensjoined
11:52:41  * b___quit (Quit: Textual IRC Client: www.textualapp.com)
12:01:48  * ryan_stevensquit (Ping timeout: 272 seconds)
12:25:12  * shuaibjoined
12:27:53  * ryan_stevensjoined
12:40:14  * ryan_stevensquit (Ping timeout: 265 seconds)
12:47:59  * mirkokjoined
12:53:20  * mirkokquit (Quit: mirkok)
12:59:30  * b___joined
13:01:33  * mirkokjoined
13:06:33  * ryan_stevensjoined
13:06:48  * mirkokquit (Quit: mirkok)
13:06:57  * mirkokjoined
13:18:25  * ryan_stevensquit (Ping timeout: 265 seconds)
13:28:20  * stlsaintquit (Ping timeout: 248 seconds)
13:45:45  * ryan_stevensjoined
13:56:55  * ryan_stevensquit (Ping timeout: 252 seconds)
14:24:24  * ryan_stevensjoined
14:36:06  * ryan_stevensquit (Ping timeout: 252 seconds)
14:55:03  * defunctzombiequit (Changing host)
14:55:03  * defunctzombiejoined
14:59:24  * b___quit (Quit: Textual IRC Client: www.textualapp.com)
15:03:41  * ryan_stevensjoined
15:16:19  * ryan_stevensquit (Ping timeout: 260 seconds)
15:30:35  <defunctzombie>you know what I wish these test badges could do
15:30:48  <defunctzombie>not have the hardcoded repo paths
15:32:45  * mirkokquit (Quit: mirkok)
15:34:53  * defunctzombiechanged nick to defunctzombie_zz
15:35:00  * ralphtheninjaquit (Quit: Lost terminal)
15:38:05  * mirkokjoined
15:42:52  * ryan_stevensjoined
15:54:35  * ryan_stevensquit (Ping timeout: 260 seconds)
16:00:00  * yorickjoined
16:07:42  * dguttmanjoined
16:21:05  * ryan_stevensjoined
16:30:35  * wiwilliajoined
16:33:22  * ryan_stevensquit (Ping timeout: 250 seconds)
16:33:45  * defunctzombie_zzchanged nick to defunctzombie
16:42:50  * dominictarrquit (Ping timeout: 255 seconds)
16:44:06  * mikealquit (Quit: Leaving.)
16:46:44  * st_lukejoined
16:50:35  * _sorensenjoined
16:59:47  * ryan_stevensjoined
17:01:17  * jez0990_quit (Ping timeout: 255 seconds)
17:02:13  * AvianFlujoined
17:04:05  * shuaibquit (Ping timeout: 255 seconds)
17:09:04  * shuaibjoined
17:09:45  * defunctzombiechanged nick to defunctzombie_zz
17:10:43  * ryan_stevensquit (Ping timeout: 252 seconds)
17:14:50  * devaholicjoined
17:17:37  * jibayjoined
17:20:55  * ralphtheninjajoined
17:45:30  * mikealjoined
17:54:33  * jez0990_joined
18:01:12  <Raynos>mbalho: you wrote a websocket stream module
18:03:16  * dguttmanquit (Quit: dguttman)
18:06:06  * tphummeljoined
18:20:40  * yorickquit (Remote host closed the connection)
18:21:10  * yorickjoined
18:21:11  * yorickquit (Changing host)
18:21:11  * yorickjoined
18:26:14  <yorick>beepstep.js takes BEEP BOOP seriously :)
18:30:47  <substack>haha what http://dailyjs.com/2012/12/19/substack-music/
18:32:16  <CoverSlide>substack: ever listen to SuperCommuter? http://supercommuter.net/
18:45:19  <chrisdickinson>substack: i have a free plan on browserling at the moment -- do i need to upgrade to paid to use testling ci?
18:47:37  <substack>chrisdickinson: nope
18:47:52  <substack>we're only going to charge for private repos
18:47:56  <substack>like travis-ci
18:49:21  * jjjjohnnnyquit (Ping timeout: 252 seconds)
18:50:15  * jjjjohnnnyjoined
18:51:18  <chrisdickinson>awesome!
18:52:58  * slaskisjoined
18:54:38  * slaskispart
18:54:41  * dguttmanjoined
18:54:47  * slaskisjoined
18:54:50  * defunctzombie_zzchanged nick to defunctzombie
18:57:01  * defunctzombiechanged nick to defunctzombie_zz
18:57:09  * defunctzombie_zzchanged nick to defunctzombie
19:05:54  * wiwilliaquit (Ping timeout: 250 seconds)
19:11:14  * owenb_changed nick to owenb
19:22:53  * ryan_stevensjoined
19:27:25  * slaskisquit (Quit: slaskis)
19:50:11  <mbalho>Raynos: yes we have talked about it before
19:52:16  <defunctzombie>substack: https://gist.github.com/4339891
19:53:42  <defunctzombie>substack: ignore the above url. this one is the real one https://gist.github.com/4339901
19:53:48  <defunctzombie>not sure why it made an anonymous gist at first
20:08:57  * ryan_stevensquit (Quit: Leaving.)
20:11:55  * dominictarrjoined
20:21:00  <substack>dominictarr: good news https://github.com/creationix/jsonparse/pull/11
20:22:01  * dominictarrquit (Read error: Connection reset by peer)
20:22:57  * dominictarrjoined
20:25:05  <dominictarr>sweet
20:26:39  <dominictarr>[email protected] now depends on [email protected]~0.0.4
20:27:48  <substack>\o/
20:28:19  <substack>right now I'm getting the jsonparse tests to run on testling-ci
20:28:27  <substack>then I'll get JSONStream running and send you a pull req
20:28:46  <substack>then I'll get the scuttlebutt tests running too
20:29:02  <substack>the patch that adds better error reporting just landed
20:29:06  * ryan_stevensjoined
20:29:19  <pkrumins>so great
20:29:44  <substack>this testing infrastructure can make npm *the* place to go for browser code
20:29:46  * shuaibquit (Quit: Textual IRC Client: http://www.textualapp.com/)
20:30:07  <substack>and the more people are using npm modules for frontend, the more they'll need testling-ci for their internal private repos $_$
20:31:19  <substack>dominictarr: also [email protected] uses console.log() for everything, so the checks for the right number of planned tests on exit should print out the messages correctly now
20:31:33  <dominictarr>cool
20:31:50  <dominictarr>is there a way to tell testling to re run a test yet?
20:32:02  <substack>not yet
20:32:08  * wiwilliajoined
20:33:02  * defunctzombiechanged nick to defunctzombie_zz
20:35:55  <dominictarr>this actually has a positive effect
20:36:21  <dominictarr>when I want to rerun a test I have to go and find something to improve in the README
20:39:39  * defunctzombie_zzchanged nick to defunctzombie
20:40:04  <defunctzombie>substack: npm should be the place to go for javascript code
20:40:06  <defunctzombie>browser or server
20:41:05  <defunctzombie>anyone not sharing code through modules is still stuck in the dark ages
20:41:11  <substack>yes
20:41:30  * ryan_stevensquit (Quit: Leaving.)
20:43:27  <CoverSlide>hey i'm still working on porting wz_tooltip to npm
20:59:30  * No9quit (Ping timeout: 264 seconds)
21:00:23  * No9joined
21:01:02  * ryan_stevensjoined
21:07:24  <dominictarr>substack, pkrumins I'm still not seeing any sign of new scuttlebutt tests being run on ci.testling.com
21:08:34  * wiwilliaquit (Ping timeout: 240 seconds)
21:08:39  <substack>is the webhook still active?
21:08:56  <substack>http://git.testling.com
21:09:20  <substack>I had some issues earlier with the hooks not firing
21:09:25  <dominictarr>yesyup
21:09:43  <pkrumins>looking
21:09:54  <pkrumins>no requests received
21:10:24  <pkrumins>ok git/server.js didn't output anything but i'm seeing requests to git.testling.com in bouncer's output
21:11:06  <pkrumins>so either they didn't get routed to git/server.js OR git/server.js ignored the hook for some reason
21:11:50  <pkrumins>git/server.js needs to be more verbose.
21:12:23  <substack>just pushed to jsonparse too
21:12:32  <substack>ok I'll add some debug statements
21:12:34  <pkrumins>nothing
21:12:45  <substack>clicking 'test hook'
21:12:49  <pkrumins>we had a similar thing when git/server.js couldnt clone the dir
21:12:51  <pkrumins>emm
21:12:56  <pkrumins>we had a similar thing when git/server.js couldnt clone the repo
21:13:18  <substack>test hook sent
21:13:30  <pkrumins>where did you send it to?
21:13:36  <pkrumins>seeing lots of requests to ci.testling.com right now
21:13:40  <pkrumins>none to git.testling.com
21:13:42  <substack>substack/jsonparse
21:14:07  <substack>gi.testling.com yes
21:14:09  <substack>*git
21:14:09  <pkrumins>nothing silence.
21:14:21  <pkrumins>ok just saw 1 request to git.testling.com in the bouncy
21:14:48  <pkrumins>but git/server.js is silent and does nothing.
21:15:42  * ryan_stevensquit (Quit: Leaving.)
21:15:53  <chrisdickinson>(tangentially i'm looking at moving the JS at work from require.js to browserify + testling + testling ci)
21:16:26  <pkrumins>chrisdickinson: :D
21:17:17  <chrisdickinson>using plate (https://github.com/chrisdickinson/plate) as a testbed for testling ci -- which means i've gotta make my super-ancient test runner output tap (whether that's just switching it to use tape under the covers or rewriting the tests… not sure yet.)
21:17:42  <substack>cool
21:19:35  <chrisdickinson>kind of want to write a command line program that takes stdin + a transform module (mapping cssauron-falafel bindings to functions) and outputs the transformed javascript
21:20:23  <chrisdickinson>of course, assuming something like that doesn't already exist :)
21:23:58  * wiwilliajoined
21:34:08  * defunctzombiechanged nick to defunctzombie_zz
21:39:52  * ryan_stevensjoined
21:54:34  * wiwilliaquit (Ping timeout: 240 seconds)
22:04:14  * fotoveritequit (Ping timeout: 255 seconds)
22:07:50  * fotoveritejoined
22:10:14  * yorickquit (Remote host closed the connection)
22:13:29  <pkrumins>dominictarr: scuttlebutt tests work for me: http://ci.testling.com/pkrumins/scuttlebutt
22:13:50  <pkrumins>dominictarr: i pushed a silly commit just to get them running and they're running nicely
22:16:50  <dominictarr>oh, sweet!
22:16:56  <dominictarr>let me try again
22:17:36  <dominictarr>it's http://git.testling.com correct?
22:17:42  <pkrumins>yes it is
22:19:32  * slaskisjoined
22:21:36  <substack>odd, I don't see any updates on http://ci.testling.com/dominictarr/scuttlebutt
22:21:40  <dominictarr>pkrumins, okay I just pushed
22:21:44  <pkrumins>yours didnt run
22:21:46  <pkrumins>[Error: non-zero exit code 1
22:21:46  <pkrumins> while running: git push http://_testling-ci:[email protected]:8082/dominictarr/scuttlebutt.git master
22:21:49  <pkrumins> To http://_testling-ci:[email protected]:8082/dominictarr/scuttlebutt.git
22:21:52  <pkrumins> ! [rejected] master -> master (non-fast-forward)
22:21:54  <pkrumins>error: failed to push some refs to 'http://_testling-ci:[email protected]:8082/dominictarr/scuttlebutt.git'
22:21:57  <pkrumins>hint: Updates were rejected because the tip of your current branch is behind
22:22:00  <pkrumins>hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
22:22:02  <pkrumins>hint: before pushing again.
22:22:03  <substack>pkrumins: add '-f' to line 73 of tha tline
22:22:05  <pkrumins>hint: See the 'Note about fast-forwards' in 'git push --help' for details.
22:22:05  <substack>*file
22:22:07  <pkrumins>]
22:22:08  <pkrumins>k
22:22:15  <substack>actually one sec
22:22:41  <pkrumins>added
22:22:47  <substack>ok
22:23:02  <substack>also just published to [email protected]
22:23:20  <pkrumins>it just stalled again
22:23:28  <pkrumins>https://github.com/publicclass/geom-vec/commit/2913d1bd1084085de494354630c0a3ae1c60c647
22:23:33  <pkrumins>this commit came in and it didnt run the tests
22:23:35  <pkrumins>no errors
22:23:43  <dominictarr>hmm, it should probably git push --force every time
22:24:15  <substack>hmm
22:24:16  <ryan_stevens>substack: do you guys allow IE settings to be turned on / off? I need to run things in testling that hack around "Allow 3rd party cookie" being off or on
22:25:00  <substack>ryan_stevens: we don't have anything like that
22:25:58  <substack>pkrumins: any ideas about why it didn't work?
22:26:23  <pkrumins>no ideas at the moment
22:26:32  <pkrumins>needs more debugging statements
22:29:30  * defunctzombie_zzchanged nick to defunctzombie
22:33:54  <pkrumins>well i cant reproduce it
22:34:52  <substack>maybe the old files lying around are messing things up
22:35:01  <pkrumins>publicclass/geom-vec just succeeded
22:35:17  <pkrumins>where as it didnt succeed just a bit earlier
22:35:40  <substack>I don't see any output for it though
22:35:43  <substack>on http://ci.testling.com/publicclass/geom-vec
22:36:00  <mbalho>has anyone written a leveldb cookie store yet
22:36:58  <pkrumins>substack: looks like data didnt get written to couch
22:37:08  <substack>odd
22:37:11  <pkrumins>finished 1355956561217.a07a8928
22:37:44  <substack>did any couch errors get printed?
22:37:55  <pkrumins>no
22:38:00  <dominictarr>substack, pkrumins I think it might be because I pushed 3a44...
22:38:08  <dominictarr>but then did a git push --force next
22:38:21  <pkrumins>dominictarr: oh i see
22:38:26  <substack>I think force pushes might be confusing pushover
22:38:40  <dominictarr>could be
22:38:44  <substack>we need to check out into random directories
22:38:52  <substack>I need to write a patch to pushover to make that work
22:39:04  <substack>because the old dirs persist and mess everything up
22:39:15  <pkrumins>yes
22:40:23  <pkrumins>substack: here is the log from publicclass/geom-vec test where it didnt get written to couch: https://gist.github.com/74cecd4edd69939e2325
22:40:59  <substack>{ pusher: { name: 'none' }, !!!
22:41:09  <slaskis>pkrumins: substack i just changed from should to expect.js and should have less globals now...
22:41:15  <substack>maybe because it's an organization
22:41:34  <pkrumins>substack: oh is the name used?
22:41:45  <slaskis>ooh
22:41:47  <substack>oh but repository.owner.name is still there
22:41:50  <pkrumins>yes
22:42:02  <pkrumins>also http://ci.testling.com/publicclass/geom-vec has 1 succeeded test run
22:42:09  <pkrumins>so it's something else
22:42:16  <pkrumins>wait hah
22:42:19  <pkrumins>substack: look at the IE column
22:42:44  * mirkokquit (Quit: mirkok)
22:42:57  <slaskis>i'm just breaking your ci. how's that?
22:43:10  * _sorensenquit (Ping timeout: 246 seconds)
22:43:57  <fotoverite>THE WORLD IS ENDING IN TWO DAYS!
22:44:26  <substack>pkrumins: what about it?
22:44:36  * dominictarrquit (Ping timeout: 264 seconds)
22:46:44  <pkrumins>substack: i think the test results got written to the old test
22:46:51  <pkrumins>substack: the browsers are duplicated
22:47:02  <pkrumins>substack: IE9, IE8, IE7, IE6, IE9, IE8, IE7, IE6,
22:47:21  <pkrumins>test result column for IEs
22:47:35  <substack>I don't see that
22:47:40  <substack>on http://ci.testling.com/publicclass/geom-vec ?
22:47:43  <pkrumins>yeah
22:47:51  <substack>I just see 9-6
22:47:58  <pkrumins>are you looking at the picture
22:48:31  <substack>everything
22:48:33  <substack>looks fine
22:48:54  <pkrumins>ok i refreshed and now it loads just IE9-6
22:49:00  <pkrumins>but it loaded IE9-6 twice earlier
22:49:09  <slaskis>the router again?
22:49:21  <slaskis>or wait, you rewrote that stuff didn't you substack ?
22:50:28  <substack>I bet it's just pushover checking out commits over top of other commits
22:50:33  <substack>I'll just fix that
22:50:48  <pkrumins>ok
22:58:27  * rvagg_joined
23:04:57  * slaskisquit (Quit: slaskis)
23:07:09  * defunctzombiechanged nick to defunctzombie_zz
23:08:06  * slaskisjoined
23:08:11  <slaskis>how come no newer commits than bbb13a is being published for http://ci.testling.com/publicclass/geom-vec ?
23:09:57  <pkrumins>slaskis: it's a bug.
23:10:02  <pkrumins>we're working to locate it.
23:15:21  <slaskis>pkrumins: ah
23:15:40  <pkrumins>can you do a push right now?
23:15:43  <pkrumins>i just cleaned some things up
23:15:44  <slaskis>yeah
23:15:48  <pkrumins>which may or may not make it work
23:16:08  <slaskis>git push -f isn't enough is it?
23:16:24  <slaskis>i have to make a fake commit
23:16:47  <pkrumins>fix a syntax error
23:16:58  <pkrumins>i think -f makes it break
23:17:03  <slaskis>ok, pushing now
23:17:11  <pkrumins>it's running
23:17:30  <pkrumins>it finished running
23:17:50  <pkrumins>it didnt get logged to couch
23:17:57  <substack>is couch running?
23:17:58  <pkrumins>substack: ^^^ &&& http://ci.testling.com/publicclass/geom-vec
23:17:59  <slaskis>it's a lot of red
23:18:32  <pkrumins>substack: if couch didnt run, we wouldn't have any output on the page at all
23:18:41  <substack>true
23:18:43  <pkrumins>oh wait
23:18:49  <pkrumins>just look at it! http://ci.testling.com/publicclass/geom-vec
23:18:52  <pkrumins>it's the latest push
23:18:55  <pkrumins>2012-12-20 01:19:51
23:19:09  <pkrumins>yeah https://github.com/publicclass/geom-vec/commit/dff577275ec2624cb3ca21455433ebfe1028cf1a
23:19:17  <substack>oh it's a rendering bug
23:19:22  <pkrumins>got it!
23:19:30  <pkrumins>so it logged this time.
23:19:36  <substack>Uncaught TypeError: Object #<Int32Array> has no method 'slice'
23:19:49  <substack>stops rendering after this
23:20:00  <pkrumins>ah
23:21:55  <pkrumins>new repo http://ci.testling.com/BrandwatchLtd/tabler
23:22:13  <substack>oh I think I know why
23:22:15  <pkrumins>oh
23:22:19  <pkrumins>not really new.
23:22:21  <substack>I updated the document structure
23:22:41  <pkrumins>well it just had tests but i dont see them in the UI. must be that same bug. also seeing `Uncaught TypeError: Object #<Int32Array> has no method 'slice'`
23:23:07  <substack>the ui is expecting documents to be formatted the new way
23:23:13  <substack>but we have a lot of data from old tests
23:23:18  <pkrumins>ah
23:23:34  <substack>fixing pushover first
23:23:44  <pkrumins>okay
23:24:11  <st_luke>whoa don't undercaffeinate be careful
23:25:30  <substack>st_luke: good idea
23:25:36  <CoverSlide>hm he needs an amd loader
23:25:56  <substack>actually I'm going to go for a bike ride
23:26:05  <substack>and I'll get some bread
23:31:46  <ralphtheninja>no mad science without food :)
23:35:26  * jibayquit (Read error: Connection reset by peer)
23:39:40  <mbalho>isaacs: are you in oakland today i wanna pester you with stream questions
23:40:25  <isaacs>mbalho: i've got some plans tonight (will be offline very soon, actually)
23:40:38  <mbalho>SOON
23:40:42  <isaacs>mbalho: tomorrow i'm in sf, but probably coming back in teh afternoon
23:41:51  <mbalho>the question is essentially how do you deal with buffering requests while looking up sessions in npm-www. from looking at the code it seems you arent ever doing any streaming upload stuff
23:43:07  <mbalho>isaacs: basically do you ever do http.createServer(function(req, res){ getUserSession(req, res, function(err, session) { req.pipe(somewhere) } )})
23:43:43  <isaacs>mbalho: that doesn't work in 0.8!
23:43:49  <isaacs>mbalho: but that'll work in 0.10!
23:43:59  <isaacs>mbalho: just out of the box with no BufferSTream malarky!
23:44:09  <mbalho>cool ill upgrade
23:44:39  <mbalho>hardest part in the pre0.10 era is making req.pipe act like the original req object
23:44:46  <mbalho>isaacs: cause you have to clone all the request metadata
23:44:59  <isaacs>yeah, for reals
23:45:01  <mbalho>isaacs: but if i can just keep the req object around and wait until later to read from it that would rule
23:45:10  <isaacs>it ends up being just as bad as util.pump
23:54:03  <isaacs>mbalho: so, here's one caveat there..
23:54:18  <isaacs>mbalho: if you do'nt read from it *at all*, and you finish the response, then it'll assume you're not interested, and dump it
23:54:39  <isaacs>mbalho: otherwise, this would block forever: http.createServer(function(q,s){q.end('ok')}).listen(80)
23:54:43  <isaacs>er, s.end('ok')
23:55:00  <isaacs>because if you upload data to that, it'll never consume it, and back up
23:55:29  <isaacs>mbalho: so what i do is, when the response finish event fires, if you haven't read anything, it goes in the garbage and we skip to the next request message
23:55:53  <isaacs>mbalho: of course, reading the request after ending the body is super weird, and many clients will freak out on you anyway.