00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:09  * ircretaryjoined
00:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 14]
00:02:35  * jez0990quit (Ping timeout: 255 seconds)
00:03:41  * misterinterruptjoined
00:09:42  * _sorensenquit (Ping timeout: 264 seconds)
00:12:04  * nk109joined
00:12:26  * defunctzombie_zzchanged nick to defunctzombie
00:22:07  * defunctzombiechanged nick to defunctzombie_zz
00:23:37  * misterinterruptquit (Quit: Leaving.)
00:27:00  * ryan_stevensjoined
00:31:34  * misterinterruptjoined
00:38:59  * saijanai_quit (Quit: saijanai_)
00:42:20  * ryan_stevensquit (Quit: Leaving.)
00:47:04  * ryan_stevensjoined
00:53:05  * misterinterruptquit (Quit: Leaving.)
01:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 9]
01:00:43  * misterinterruptjoined
01:22:08  * misterinterruptquit (Quit: Leaving.)
01:31:38  * defunctzombie_zzchanged nick to defunctzombie
01:32:20  <rvagg>Raynos: are you on a mac?
01:33:04  <Raynos>no
01:34:35  <rvagg>someone on a mac want to help me sort out LevelUP's compile? it'll be relatively painless
01:34:41  <rvagg>I'm just trying to remove ugly compile warnings
01:37:52  <CoverSlide>rvagg: j0
01:38:10  * tphummelquit (*.net *.split)
01:38:11  * LOUDBOTquit (*.net *.split)
01:38:11  * chapelquit (*.net *.split)
01:38:11  * sorensenquit (*.net *.split)
01:38:11  * defunctzombiequit (*.net *.split)
01:38:11  * heathquit (*.net *.split)
01:38:11  * ryan_stevensquit (*.net *.split)
01:38:11  * ircretaryquit (*.net *.split)
01:38:11  * farnsworthquit (*.net *.split)
01:38:11  * Madarsquit (*.net *.split)
01:38:11  * purrquit (*.net *.split)
01:38:11  * rvaggquit (*.net *.split)
01:38:13  * rannmannquit (*.net *.split)
01:38:13  * owen1quit (*.net *.split)
01:38:13  * jesusabdullahquit (*.net *.split)
01:38:13  * chadskidmorequit (*.net *.split)
01:38:13  * doolsquit (*.net *.split)
01:38:13  * jan____quit (*.net *.split)
01:38:13  * py1honquit (*.net *.split)
01:38:13  * zuquit (*.net *.split)
01:38:13  * chrisdickinsonquit (*.net *.split)
01:38:14  * gozalaquit (*.net *.split)
01:38:14  * owenb_quit (*.net *.split)
01:38:14  * Altreusquit (*.net *.split)
01:38:14  * ITproquit (*.net *.split)
01:40:12  * misterinterruptjoined
01:40:21  * gozalajoined
01:48:02  <jjjjohnnny>substack: whats that game tiling module u spoke of
01:49:01  * dominictarrjoined
01:49:59  * jesusabdullahjoined
01:49:59  * chadskidmorejoined
01:49:59  * doolsjoined
01:49:59  * jan____joined
01:50:04  * ITprojoined
01:51:38  * gozalaquit (*.net *.split)
01:52:15  <substack>jjjjohnnny: found it https://github.com/indutny/isodrive
01:53:01  <substack>http://indutny.github.com/isodrive/demo.html
01:53:19  <CoverSlide>hm crazy
01:53:29  <CoverSlide>i remember doing this in flash
01:53:49  <substack>it even fades out obstructing sprites
01:54:03  <CoverSlide>that's pretty awesome
01:55:57  <CoverSlide>I've been tossing around an idea in my head about a game drawing engine using multiple layers, and the canvases would be larger than the viewport, and moving around would just move the canvases via css so there wouldn't be a redraw for everything, only when the edge of that canvas is reached, and it would snap back to the opposite corner, and only redraw then
01:56:25  <CoverSlide>but haven't had the time to implement it
01:57:09  <CoverSlide>not sure if that would be better than the single canvas approach.
01:57:46  <CoverSlide>I think too often people think only in one canvas
01:59:01  * slaskisjoined
01:59:43  * purrjoined
01:59:44  * rvaggjoined
01:59:44  * rannmannjoined
01:59:44  * owen1joined
02:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 27]
02:00:23  * owenb_joined
02:00:23  * Altreusjoined
02:02:42  * heathjoined
02:02:42  * chapeljoined
02:02:42  * sorensenjoined
02:02:42  * defunctzombiejoined
02:03:27  * chrisdickinsonjoined
02:03:27  * py1honjoined
02:03:27  * zujoined
02:03:37  * LOUDBOTjoined
02:04:27  * tphummeljoined
02:04:53  * gozalajoined
02:05:11  * ryan_stevensjoined
02:05:11  * ircretaryjoined
02:05:11  * farnsworthjoined
02:05:11  * Madarsjoined
02:10:34  <rvagg>CoverSlide: sorry, netsplit, did you get what I said about levelup and did you respond?
02:11:24  * antix_quit (Ping timeout: 256 seconds)
02:13:23  * antixjoined
02:20:36  * antixquit (Ping timeout: 264 seconds)
02:21:11  * slaskisquit (Quit: slaskis)
02:23:34  * slaskisjoined
02:24:11  * misterinterruptquit (Quit: Leaving.)
02:24:36  * antixjoined
02:27:52  * misterinterruptjoined
02:30:41  * slaskisquit (Quit: slaskis)
02:33:49  * antixquit (Ping timeout: 246 seconds)
02:38:35  * antixjoined
02:47:48  * antixquit (Ping timeout: 248 seconds)
02:48:11  <substack>some of the bouncy tests now pass with http-raw!
02:51:51  <defunctzombie>\o/
02:51:54  * antixjoined
02:52:02  <defunctzombie>is http ready for some localtunnel action?
02:52:07  <defunctzombie>*http-raw
02:52:41  <substack>you can try it
02:52:51  <substack>http-raw is so simple that there's not much that could go wrong
02:52:59  <fotoverite>\o/
02:53:01  <substack>but I haven't tested it very heavily just yet
02:53:14  <defunctzombie>kk
02:53:17  <defunctzombie>I will give it a go
02:53:23  <defunctzombie>it should simplify quite a bit of my code
02:53:48  <substack>the new bouncy will have (req, res, bounce) signature now too
02:54:01  <substack>since http-raw uses the http server already to generate the response object
02:54:12  <defunctzombie>what is the bounce param?
02:58:44  <substack>it does a net.connect() and does some convenient url-rewriting
02:59:41  <defunctzombie>does it net connect for every request?
02:59:48  <defunctzombie>or does it keep a pool of backend connections?
02:59:56  <substack>it doesn't keep a pool
03:00:04  <substack>if you want a pool you can build that yourself
03:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 150]
03:00:15  <defunctzombie>k
03:00:24  <substack>if you want a pool it's much simpler to use http-raw directly
03:00:51  <defunctzombie>seems that way
03:01:07  * antixquit (Ping timeout: 246 seconds)
03:05:32  * antixjoined
03:10:17  * ralphtheninjaquit (Read error: Operation timed out)
03:13:54  * misterinterruptquit (Quit: Leaving.)
03:15:08  * antixquit (Ping timeout: 245 seconds)
03:18:18  * tphummelquit (Quit: tphummel)
03:20:33  * antixjoined
03:30:28  * antixquit (Ping timeout: 250 seconds)
03:31:42  * AvianFluquit (Read error: Connection reset by peer)
03:32:01  * AvianFlujoined
03:36:02  * antixjoined
03:40:16  * AvianFluquit (Read error: Connection reset by peer)
03:41:00  * AvianFlujoined
03:47:13  * antixquit (Ping timeout: 265 seconds)
03:52:37  * antixjoined
04:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 166]
04:02:36  * antixquit (Ping timeout: 264 seconds)
04:07:57  * antixjoined
04:16:41  * ryan_stevensquit (Quit: Leaving.)
04:18:34  * antixquit (Ping timeout: 250 seconds)
04:19:18  <defunctzombie>substack: what happens when I write to req.createRawStream() ?
04:19:26  <defunctzombie>does that go back as a response?
04:19:38  <defunctzombie>basically the same as writing to the 'res' object?
04:22:42  <substack>it's not the same as writing to res
04:22:45  <substack>it writes to the raw socket
04:22:50  <substack>when you write to res, it gets framed
04:25:05  <defunctzombie>k
04:25:30  <defunctzombie>that is waht I want :)
04:25:31  * antixjoined
04:32:16  <substack>ANTS
04:32:26  <mbalho>im hooking up a kinect to the ar drone
04:32:31  * ryan_stevensjoined
04:32:35  <mbalho>WOOT
04:32:54  <fotoverite>woot
04:33:39  <ik>woot
04:34:19  * ryan_stevensquit (Client Quit)
04:35:59  * antixquit (Ping timeout: 260 seconds)
04:40:29  <defunctzombie>substack: server.js | 295 +++++++++++++++++++++-----------------------------------------------------------
04:40:37  <substack>\o/
04:40:43  <defunctzombie>use of http-raw over the shit I had
04:40:50  <substack>what project is this for?
04:40:54  <substack>and does it work?
04:41:06  <defunctzombie>https://github.com/shtylman/localtunnel
04:41:18  <defunctzombie>yes, it works I just need to put back some queuing
04:41:29  <defunctzombie>and check that it works with websocket and some other edge cases
04:41:38  <defunctzombie>the basic tests I have seem to pass
04:41:48  <defunctzombie>but they are not super great and only check super simple functionality
04:41:58  <substack>neat stuff
04:43:52  <defunctzombie>I am using the parser to detect finished responses and that seems to be working pretty well
04:44:12  <defunctzombie>that is the equivalent to keepalive basically
04:44:22  * antixjoined
04:44:28  * antixquit (Read error: Connection reset by peer)
04:54:10  * AvianFluquit (Ping timeout: 246 seconds)
05:00:12  <rowbit>Hourly usage stats: [developer: 0, free: 170]
05:01:30  <Raynos>defunctzombie: is that you? :D
05:01:35  <Raynos>shit it is
05:01:39  <Raynos>localtunnel is awesome!
05:01:49  <defunctzombie>Raynos: thank you :)
05:07:07  * saijanai_joined
05:07:07  * saijanai_quit (Excess Flood)
05:29:22  * ryan_stevensjoined
05:32:31  * ryan_stevensquit (Client Quit)
05:33:12  * ryan_stevensjoined
05:33:35  * ryan_stevensquit (Read error: Connection reset by peer)
05:35:47  <Raynos>defunctzombie: https://github.com/shtylman/node-spaceport vs seaport
05:36:25  <defunctzombie>Raynos: no central server
05:36:29  <defunctzombie>thing avahi or zeroconf
05:36:39  <Raynos>how do you do no central server?
05:36:44  <defunctzombie>multicast
05:37:07  <defunctzombie>look into how zeroconf and avahi work
05:37:09  <defunctzombie>mDNS
05:37:22  <defunctzombie>is the underlying idea, I just didn't implement that particular spec
05:37:28  <Raynos>what is multicast?
05:37:34  <defunctzombie>but the idea is based off some of those same concepts
05:37:57  <defunctzombie>think of it like pub/sub except at the network level
05:38:07  <defunctzombie>http://en.wikipedia.org/wiki/Multicast
05:38:08  <Raynos>does it work across the internets?
05:38:16  <defunctzombie>no
05:38:30  <defunctzombie>it is for local networks
05:38:52  <substack>I don't like local networks
05:38:59  <Raynos>Oh
05:39:00  <Raynos>I see
05:39:00  <substack>the very idea of them
05:39:01  <defunctzombie>producers publish messages by sending them on specific ip/ports
05:39:04  <Raynos>that makes sense
05:39:06  <Raynos>thats useless :P
05:39:12  <defunctzombie>it is very useful
05:39:15  <Raynos>defunctzombie: make it work OVER THE INTERNETS
05:39:15  <defunctzombie>for certain use cases ;)
05:39:21  <defunctzombie>you can
05:39:22  <Raynos>how do I communicate across data centers?
05:39:25  <substack>yes the internet is kind of the only network we need
05:39:26  <defunctzombie>if you setup two endpoints
05:39:45  <Raynos>defunctzombie: so you set up two centralized end points? :D
05:39:51  <substack>if not for IPv4 scarcity we wouldn't even have this problem
05:40:00  <defunctzombie>Raynos: that or more
05:40:01  <Raynos>substack: what is "this problem" ?
05:40:13  <defunctzombie>not saying multicast itself is the golden solution
05:40:17  <defunctzombie>it has specific use cases
05:40:17  <substack>Raynos: having local networks
05:40:25  <Raynos>Oh
05:40:28  <defunctzombie>and the pub/sub is supported at the switch level
05:40:29  <Raynos>Because of IP4
05:40:36  <substack>the point of networks is that you can get from every node to every other node
05:40:37  <Raynos>we have local networks behind a single IP4 IP address?
05:40:39  <defunctzombie>and baked into the network stack
05:40:46  * ryan_stevensjoined
05:40:51  <Raynos>https://github.com/shtylman/node-spaceport/blob/master/lib/constants.js#L6
05:40:55  <Raynos>Whats that ip adfdress
05:41:05  <defunctzombie>I just picked it
05:41:09  <defunctzombie>it is a multicast address
05:41:30  <defunctzombie>a subset of ip addresses are special
05:41:34  <defunctzombie>reserved for multicast use
05:42:27  <Raynos>I dont understand this at all :D
05:42:37  <substack>who even has local networks anymore
05:42:47  <substack>aside from wifi routers
05:42:55  <defunctzombie>Raynos: you should :) networking is cool
05:43:08  <Raynos>i am kind of trying to build p2p networking infrastructure
05:43:09  <defunctzombie>substack: local networks are where you hide all your secrets :)
05:43:25  <defunctzombie>Raynos: if you are trying to build p2p then you should learn about some of this stuff ;)
05:43:38  <defunctzombie>maybe I should send you my networking textbook :p
05:43:43  <Raynos>no!
05:43:49  <defunctzombie>quite possibly the most useful class I took in college
05:43:56  <substack>defunctzombie: hide your secrets out in the open
05:44:01  <substack>behind strong crypto
05:44:13  <defunctzombie>stenography!
05:44:20  <substack>Raynos: ignore all this mdns noise
05:44:22  <substack>it's useless
05:44:51  <defunctzombie>it probably won't help whatever you are trying to build
05:44:54  <defunctzombie>it isn't useless
05:44:57  <defunctzombie>it has specific use cases
05:45:10  <defunctzombie>use cases where other things are not appropriate
05:45:17  <defunctzombie>or are not as important as you think
05:45:47  <defunctzombie>multicast is great if you have a data pipe just publishing info
05:45:53  <defunctzombie>and you don't care who is getting it
05:45:58  <defunctzombie>nor do you want to manage the connections
05:46:01  <defunctzombie>you spew info
05:46:06  <defunctzombie>and whomever wants it, gets it
05:46:38  <defunctzombie>anyhow... you should at least learn about udp, multicast, broadcast etc
05:46:39  <substack>but only if you've configured your local network to even support that
05:46:48  <substack>and only if all the nodes are on a local network in the first place
05:46:49  <substack>useless
05:47:01  <Raynos>substack: make secure-peer work in browsers!
05:47:02  <defunctzombie>substack: that is easy in many cases
05:47:03  <substack>I hope idiosyncratic infrastructure like that goes away.
05:47:19  <Raynos>https://github.com/substack/secure-peer#secure-peer !
05:47:20  <substack>everything should just be universally routable
05:47:31  <defunctzombie>there are things I don't want exposed
05:47:38  <substack>and you should communicate explicitly with exactly who you want to communicate with
05:47:45  <substack>none of this implicit topology-based routing
05:47:45  <defunctzombie>na
05:47:56  <substack>use p2p algorithms instead
05:48:03  <defunctzombie>this is not about that stuff
05:48:04  <substack>for efficient broadcasting
05:48:08  <defunctzombie>there is a data publisher
05:48:13  <defunctzombie>no
05:48:15  <defunctzombie>doesn't work
05:48:26  <defunctzombie>not when you have high amounts of data
05:48:35  <defunctzombie>and consumers should receive it at the same time
05:48:38  <substack>Raynos: crypto-browserify just needs wrappers for rc4 and diffie-hellman
05:48:45  <substack>then it might start just working
05:48:46  <defunctzombie>all of this is way easy to do anyway
05:48:55  <Raynos>substack: how do you get private keys in browsers :D
05:48:56  <defunctzombie>anyhow.. not here to convince anyone of it :)
05:49:00  * ryan_stevensquit (Remote host closed the connection)
05:49:05  <defunctzombie>I use it, it works
05:49:17  <defunctzombie>it isn't for everyone or everything
05:49:35  <substack>defunctzombie: it only works when all the nodes happen to be on the same local network, which is a sufficiently rare condition to be pretty useless
05:49:36  <defunctzombie>and if you don't know what multicast or broadcast is then you are missing out
05:49:49  <defunctzombie>substack: it is a sufficiently normal condition for many things I do
05:49:56  <defunctzombie>and if they are not I can easily udp tunnel
05:50:05  <defunctzombie>trivially
05:50:42  <defunctzombie>my nodes don't happen to be on the same local network... I put them on the same local network because that is easy to do
05:50:53  <Raynos>defunctzombie: does it work over webrtc :D
05:51:12  <defunctzombie>I know nothing about webrtc
05:51:29  <defunctzombie>multicast has been around for forever so that I do know something about :)
05:51:42  <defunctzombie>webrtc sounds tcp to me tho
05:51:43  <defunctzombie>maybe not
05:51:49  <defunctzombie>none of this is tcp
05:52:15  <Raynos>webrtc allows for udp connection
05:52:17  <defunctzombie>tcp is a bad solution to certain packet scenarios
05:52:19  <defunctzombie>cool
05:52:33  <Raynos>but you cant just send things to ports or ip addresses
05:52:48  <defunctzombie>not too surprising
05:52:58  <defunctzombie>again, multicast is not designed for WAN
05:53:07  <defunctzombie>so that doesn't shock me
05:56:51  <substack>multicast tightly couples the layer 3 addressing with the layer 1 physical topologies
05:57:08  <substack>for something that should be a layer 7 concern
05:59:44  <defunctzombie>what is your solution for what multicast provides then?
06:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 184]
06:00:45  <defunctzombie>it doesn't so much as couple them as provide a way to do something with the support of the network that is already in place
06:01:08  <substack>at the webrtc meetup http://peer5.com/ presented an efficient peer-to-peer approach for distributed latency-critical transmission
06:01:10  <defunctzombie>LAN is a thing and I don't believe everything should be WAN
06:01:51  <defunctzombie>substack: if this is routing traffic through peers before reaching destination that is a no go
06:02:23  <defunctzombie>presents different delivery times to different peers
06:02:31  <defunctzombie>I think peer5 is a cool solution
06:02:34  <defunctzombie>to a different problem
06:03:16  <Raynos>defunctzombie: you cant do that
06:03:23  <Raynos>you cant garantuee real time networking
06:04:18  <defunctzombie>check out the HFT space and then tell me again what you think they can or can't guarantee ;)
06:04:43  <defunctzombie>and yes, I udnerstand what you mean by not guaranteeing real time networking
06:04:54  <defunctzombie>however, routing through peers also introduces different latencies
06:05:02  <defunctzombie>and load on peers which you may not wish to have
06:05:10  <defunctzombie>or other peers may not wish to expose themselves to
06:06:13  <defunctzombie>in the case of spaceport, how would I do p2p?
06:06:24  <defunctzombie>lets say I don't use multicast, what do I do then to bootstrap?
06:09:18  * AvianFlujoined
06:10:08  <dominictarr>the internet is build with the _assumption_ that you can't guarantee network performance.
06:11:46  <dominictarr>if you can pay to dig a really straight ditch between Chicago and New York, or pay for co-localtion (i.e. control everthing) then you can.
06:12:47  * ryan_stevensjoined
06:14:31  <defunctzombie>dominictarr: yep
06:14:38  <defunctzombie>that is exactly what people do
06:14:44  <defunctzombie>seriously :)
06:23:29  <dominictarr>yeah, I read about it!
06:24:06  <dominictarr>Raynos, substack : defunctzombie is right about multicast. we need to be aware of multicast
06:25:05  <dominictarr>if we are gonna imagine a hyper networked future where every-fucking-thing has a computer and wifi in it, then we'll probably need wifi
06:25:34  <dominictarr>the problem is that TCP creates a telephone metaphone (with a CONNECTION)
06:26:17  <dominictarr>but that only really relates to the physical reality if you have a series of cables between those two places
06:26:22  <substack>it just seems really narrow in its applicability
06:26:31  <substack>I can't see myself ever needing something like mdns
06:26:39  <dominictarr>yes maybe
06:26:41  <substack>and I see plenty of people reaching for mdns when it doesn't make any sense
06:26:57  <dominictarr>I'm not saying use mdns
06:27:45  <dominictarr>the problem with TCP is when you put it over radio
06:27:57  <dominictarr>this is why wifi doesn't scale
06:29:20  <dominictarr>you only have a small number of channels (4 on .bgn 2.4 GHz wifi - check your iwconfig to see what you are on)
06:30:00  <dominictarr>the thing is: radio is inherently multicast
06:31:02  <dominictarr>you can mung telephones through radio, but it doesn't scale. that stuff always breaks when you get enough people using it all the same time
06:33:24  <dominictarr>if you can use a radio metaphor instead, then perhaps you can make that work. I don't know though.
06:33:52  <dominictarr>I don't know enough data structures/patterns that are designed for multicast.
06:34:14  <dominictarr>but they are out there, I poked around a little the other day.
06:34:38  * dguttmanquit (Quit: dguttman)
06:40:58  * ryan_stevensquit (Quit: Leaving.)
06:41:34  <defunctzombie>dominictarr: multicast is not a super widely known thing so not as much out there for it
06:41:52  <defunctzombie>it also has limited applicability given that the network has to support it
06:42:02  <dominictarr>that makes it the perfect academic problem!
06:42:07  <defunctzombie>haha
06:42:40  <dominictarr>you can work on interesting problems with no one concerned about the real world bothering you!
06:44:01  <dominictarr>http://www.youtube.com/watch?v=GwMr8Xl7JMQ
06:44:14  <dominictarr>^ how governments attempt to sensor tor
06:44:41  <defunctzombie>nice.. I gotta watch this
06:46:57  <Raynos>watching that too
06:47:10  <Raynos>dominictarr: randpeer videos dissappeared :(
06:47:32  <dominictarr>IT'S A CONSIPRACY!
06:48:12  <defunctzombie>wow
06:57:49  <dominictarr>Raynos, here it is! http://www.youtube.com/watch?v=MNzMNjW8oGs
06:58:08  <Raynos>nice!
06:58:21  <Raynos>how did you find it
07:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 140]
07:02:15  <dominictarr>I searched for the name, and 22C3
07:02:26  <dominictarr>(the name of the talk)
07:13:27  * nk109quit (Ping timeout: 256 seconds)
07:22:41  <substack>haha https://github.com/thlorenz/browserify-ftw
07:28:40  * blakmatrix1joined
07:30:31  <defunctzombie>substack: wow
07:30:34  <defunctzombie>that is awesome
07:33:06  <substack>one of domenic's co-workers
07:33:12  <substack>he's at lab49 now
07:33:28  <substack>infecting them with browserify no doubt!
07:35:38  <defunctzombie>excellent... mwahhaha
07:42:31  <Raynos>thlorenz is pretty cool
07:53:39  <substack>oh goodness
07:53:50  <substack>I ran into the http.globalAgent.maxSockets issue again
07:53:53  <substack>this time in a test
07:54:06  <substack>why is that still a thing
07:54:13  <defunctzombie>hahaha
07:54:25  <defunctzombie>the sad thing is that noone changes that
07:54:33  <substack>pooling is pretty much never what you actually want
07:54:36  <defunctzombie>when tehy can easily handle more
07:54:49  <substack>I just set it to Number.MAX_VALUE
07:54:54  <defunctzombie>haha
07:55:04  <substack>because fuck connection pooling
07:55:08  <substack>it just causes bugs
07:55:11  <substack>correctness > performance
07:55:40  <Raynos>That TOR stuff
07:55:43  <Raynos>is actually moving.
07:56:21  <Raynos>wait how does maxSockets work?
07:56:24  <Raynos>and why is it pooling?
07:56:33  <defunctzombie>the tor stuff is awesome
07:56:50  <defunctzombie>Raynos: it intercepts http requests
07:56:51  <defunctzombie>outgoing
07:56:57  <defunctzombie>based on host iirc
07:57:01  <substack>Raynos: when you make outgoing http connections with the http module the connections get transparently pooled to work with keep-alive
07:57:08  <substack>but that is the worst possible thing for them to do
07:57:27  <substack>because if you try to make too many outgoing http connections at once they will just hang inexplicably
07:57:36  <substack>until enough of them drop off from timeouts
07:57:47  <substack>it's really really shit if you have long-lived http connections
07:58:05  <substack>because you'll fill up the pool and then be completely fucked until you figure out why none of your new connections are going through
07:58:14  <Raynos>oh
07:58:15  <Raynos>fuck that
07:58:17  <Raynos>its a restriction
07:58:18  <Raynos>wtf
07:58:49  <defunctzombie>everyone needs to see this tor video
08:00:10  <rowbit>Hourly usage stats: [developer: 0, free: 134]
08:19:55  * devaholicjoined
08:36:40  <Raynos>:/
08:36:58  <substack>defunctzombie: http-raw still needs upgrade support
08:36:59  <substack>adding that now
08:37:09  <substack>so in 'upgrade' handlers you can do req.createRawStream()
08:37:13  <defunctzombie>coo
08:37:30  <defunctzombie>and I can detect the upgrade request?
08:40:11  <defunctzombie>I will aim to finish the localtunnel refactoring this weekend
08:40:47  * defunctzombiechanged nick to defunctzombie_zz
08:41:09  <dominictarr>substack, juliangruber Raynos do you guys ever use the 'sync' event on scuttlbutt?
08:41:20  <Raynos>not enough that you cant break back compat
08:42:58  <dominictarr>yeah, and I want to change that so it works properly
08:47:00  <Raynos>anyone know how to gaurd against XSS. I realise I use innerHTML :(
08:48:26  <dominictarr>convert < to > or whatever
08:49:09  <dominictarr>substack, we need robots that just want to make music like this http://www.youtube.com/watch?feature=endscreen&v=bihaL1risM0&NR=1
08:51:28  <substack>I don't use 'sync' no
08:54:05  <dominictarr>okay good.
08:54:54  <dominictarr>so, the API will be that the stream will emit 'sync' when it starts tailing.
08:55:10  <dominictarr>i.e. now the changes are realtime, not historical.
08:55:45  <dominictarr>it's emits on the stream, not the scuttlebutt instance, because it's only with respect to that connection
09:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 148]
09:19:36  <substack>defunctzombie_zz: ok [email protected] now inserts req.createRaw{,Body}Stream() for upgrade events too
10:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 191]
10:19:38  * jibayjoined
10:22:20  * AvianFluquit (Remote host closed the connection)
10:24:01  <substack>ok [email protected] now has tls support
10:35:47  <substack>all tests now passing on the latest bouncy using http-raw
10:35:51  <substack>now updating the api
10:37:17  <substack>actually meh
10:38:32  <substack>just added a cb.length === 3 check instead to send the response
10:50:56  * dfggjoined
11:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 102]
11:11:33  * ralphtheninjajoined
11:24:29  <substack>[email protected] now out
11:26:39  <substack>uses http-raw
11:27:01  <substack>api is mostly the same except for res.respond() went away
11:27:11  <substack>now you can just do bouncy(function (req, res, bounce) {})
12:00:10  <rowbit>Hourly usage stats: [developer: 0, free: 41]
12:47:38  * yorickjoined
12:51:11  * ralphtheninjaquit (Ping timeout: 255 seconds)
13:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 32]
14:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 31]
14:46:25  * fotoveritequit (Quit: fotoverite)
15:05:12  * jez0990_joined
15:17:58  * dguttmanjoined
16:04:28  * blakmatrix1quit (Read error: Connection reset by peer)
16:04:31  * blakmatrixjoined
16:06:43  * dguttmanquit (Quit: dguttman)
16:17:48  * dguttmanjoined
16:23:46  * defunctzombie_zzchanged nick to defunctzombie
16:29:40  * dominictarrquit (Ping timeout: 248 seconds)
16:30:37  * defunctzombiechanged nick to defunctzombie_zz
16:47:35  * dguttmanquit (Quit: dguttman)
16:48:42  * ryan_stevensjoined
16:50:27  * dguttmanjoined
16:58:44  * defunctzombie_zzchanged nick to defunctzombie
17:11:31  * ITproquit (Ping timeout: 245 seconds)
17:11:51  * ITprojoined
17:17:52  * AvianFlujoined
17:24:29  * tphummeljoined
17:28:03  * tphummelquit (Client Quit)
17:30:22  * jez0990_part
17:30:24  * jez0990_joined
17:39:29  * ryan_stevensquit (Quit: Leaving.)
17:39:37  * defunctzombiechanged nick to defunctzombie_zz
17:55:16  * ITproquit (Ping timeout: 245 seconds)
17:56:30  * ITprojoined
18:02:00  * tomshredsjoined
18:05:45  * tomshredsquit (Client Quit)
18:09:09  * ryan_stevensjoined
18:18:46  * ryan_stevensquit (Quit: Leaving.)
19:48:52  * defunctzombie_zzchanged nick to defunctzombie
19:55:15  <defunctzombie>man...why the hell don't I get subscription objects from EventEmitter.on
19:55:27  <defunctzombie>makes it super annoying to disconnect events
19:58:24  * jez0990_quit (Ping timeout: 264 seconds)
20:14:03  <chrisdickinson>Raynos: protect against xss? in what context/module?
20:21:38  <defunctzombie>substack: req.upgrade is set to true immediately after calling req.createRawStream
20:21:43  <defunctzombie>so before calling that it is false
20:21:54  <defunctzombie>and after calling that req.upgrade always returns true
20:26:33  <gildean>substack: btw. are the raw http headers accessible when using the new bouncy?
20:27:27  <gildean>as in, if i wanted to create a simple proxy but also print out the raw data out somewhere that's flowing through the proxy?
20:31:02  <defunctzombie>substack: also, what happens if I call createRawStream twice?
20:40:20  <defunctzombie>you need to set your editor to remove trailing spaces :p
20:47:36  <defunctzombie>substack: I have an http-raw fix
20:47:43  <defunctzombie>if you call .pause()
20:47:51  <defunctzombie>it won't emit the saved buffers right away
20:48:01  <defunctzombie>do you want this in http-raw?
20:48:05  <defunctzombie>seems like a useful thing
20:51:31  * ryan_stevensjoined
20:56:20  <Raynos>chrisdickinson: say I cache templates in local db
20:56:37  <Raynos>and use innerHTML to turn them into DOM elements
20:56:49  <Raynos>how do I protect againsrt compromised templates in local db
21:04:51  <chrisdickinson>Raynos: so, ideally you escape text contents that are inserted into the html using document.body.createElement('div').appendChild(createTextNode("text")).innerHTML (or a regex)
21:05:15  <chrisdickinson>innerText unfortunately does not work until fairly recent firefox versions
21:06:59  <Raynos>Well no
21:07:03  <Raynos>I have a template thats html
21:07:15  <Raynos>I want to verify that my html template
21:07:16  <Raynos>is correct
21:07:25  <Raynos>I guess I can check for script nodes in the create element
21:07:57  <chrisdickinson>so, in that case, i'd use querySelector with a list of inputs that may not have any non-textnode children
21:08:50  <chrisdickinson>you could generate that list by querying for "[data-safe]" for nodes that should escape their children
21:09:21  <chrisdickinson>(eep, i mean "data-escaped")
21:09:26  * ryan_stevensquit (Quit: Leaving.)
21:09:46  <chrisdickinson>and it might be easier to just query for "[data-escaped]" and assert that all of those nodes matched only contain textnode children.
21:10:02  <chrisdickinson>since <script> tags and friends will only be executed once placed into the dom
21:10:54  <chrisdickinson>whether that means that nodes that fail that test break the template, or are automatically coerced into text… that's up to you.
21:11:53  <chrisdickinson>(i suppose you could just loop over [data-escaped] nodes, do node.innerHTML = document.body.createTextNode(node.innerHTML).innerHTML for each node…)
21:17:57  * jez0990_joined
21:21:56  * defunctzombiechanged nick to defunctzombie_zz
21:22:06  * defunctzombie_zzchanged nick to defunctzombie
21:23:42  * ryan_stevensjoined
21:26:29  <substack>defunctzombie: .pause() could be nice so long as it was turned off by default and the buffers went away after the first tick if you didn't call pause()
21:26:38  <substack>paranoid about leaking memory now since the old bouncy leaked a ton
21:26:40  <defunctzombie>substack: yea, that is what I did
21:27:03  <defunctzombie>working through some other issue currently (not in http-raw I think) but yea, I had to add the pause support
21:27:24  <substack>calling createRawStream() multiple times should be fine
21:34:40  * defunctzombiechanged nick to defunctzombie_zz
21:51:42  * dominictarrjoined
22:09:20  * dominictarrquit (Ping timeout: 252 seconds)
22:13:28  * slaskisjoined
22:14:51  <mbalho>jjjjohnnny: https://github.com/maxogden/recipes/blob/master/slow-cooker/sweet-potatoes.md
22:14:54  <mbalho>oops hehe
22:40:32  * ryan_stevensquit (Quit: Leaving.)
22:47:35  * slaskisquit (Quit: slaskis)
22:53:26  * ryan_stevensjoined
22:56:07  <isaacs>substack: lolz
22:56:55  <isaacs>substack: https://twitter.com/substack/status/280080273788506112
23:06:16  <substack>isaacs: bah https://twitter.com/TechWraith/status/280085382790524928
23:06:27  <substack>people don't get how dependencies are a graph, not a flat array
23:10:52  * jibayquit (Quit: Leaving)
23:20:41  <isaacs>yeah
23:20:52  * dguttmanquit (Quit: dguttman)
23:21:00  <isaacs>it's a tricky thing to grok coming from literally every other system ever, where every dependency can only exist once
23:21:07  <isaacs>and all live in the same place
23:21:12  * ryan_stevensquit (Quit: Leaving.)
23:21:19  <isaacs>we should make a new license
23:21:25  <isaacs>because the AGPL is not viral enough
23:21:42  <isaacs>it should literally try to apply to all code that even resembles the covered work
23:21:52  <isaacs>or any code which results in the same AST
23:21:52  <isaacs>or any code which results in the same AST
23:22:03  <isaacs>then put it on a loop implementation or somethign
23:22:28  <isaacs>and if you ever read the code, you're now covered by the license, and anything you do thereafter can be considered a "Derivative Work"
23:28:05  * ryan_stevensjoined
23:32:46  * fotoveritejoined
23:34:27  <isaacs>it should start out like the GPL, but in the middle of it somewhere, make the case that "people" are the patterns of thoughts and other information processing that occurs on biological devices, and so are covered under the earlier clause on "linking to the covered wor"
23:41:05  * ryan_stevensquit (Quit: Leaving.)
23:44:20  * stlsaintjoined
23:48:41  * slaskisjoined