00:15:34  <rowbit>SubStack, pkrumins: Encoders down:
00:40:05  * ryan_stevensquit (Quit: Leaving.)
00:41:42  * ryan_stevensjoined
00:55:29  * ryan_stevensquit (Quit: Leaving.)
00:58:47  <rowbit>Hourly usage stats: []
01:05:24  * ryan_stevensjoined
01:34:02  * AvianFlujoined
01:58:47  <rowbit>Hourly usage stats: []
02:19:10  * ryan_stevensquit (Quit: Leaving.)
02:23:07  <tanepiper>yay! App refactored to exactly the same point I got to with new dnode!
02:23:18  <SubStack>:D
02:32:01  <tanepiper>http://tweet.ifies.org/
02:32:37  <tanepiper>(i have no idea why it redirects to port 81, just remove it and it works)
02:32:54  <SubStack>nice
02:32:54  <tanepiper>oh actually mehh, websocket is breaking
02:33:06  <tanepiper>"WebSocket is closed before the connection is established. "
02:33:14  <SubStack>one sec and you'll be able to remote all the git uri sockjs dependency noise
02:33:43  <tanepiper>ahh! because i have my proxy set up to pass /socket.io/ traffic
02:33:47  <tanepiper>need to fix that
02:34:05  * tilgoviquit (Ping timeout: 246 seconds)
02:35:07  <tanepiper>hrmm, not as easy as I thought :| need to work out the correct varnish/nginx setup for using sockjs
02:35:18  <tanepiper>but it's 3.30am so i'm not going to start now
02:35:54  <maxogden>SubStack: will buy you pizza if you hack on http-browserify a little :)
02:36:08  <maxogden>SubStack: so that request works somewhat
02:36:14  <SubStack>oh sweets
02:36:28  <SubStack>maxogden: I will in just a bit
02:36:32  <SubStack>releasing a lib shortly
02:36:51  <tanepiper>http://tweet.ifies.org:3600/
02:37:34  <tanepiper>bypass my proxy setup (sucks i have to host php on this box too!)
02:37:52  <tanepiper>request in the client would be awesome :D
02:47:15  <SubStack>tanepiper: https://github.com/substack/shoe#with-dnode
02:48:16  <tanepiper>oh wow :D
02:48:28  <tanepiper>looks like it would be easy to refactor this in instead of sockjs
02:48:43  <tanepiper>(well it is sockjs, but you know what I mean :)
02:48:48  <SubStack>also it's not spammy
02:52:59  <tanepiper>noice, took 30 seconds to change and it works great :D
02:54:20  <tanepiper>git commit -m "Shoes rather than socks"
02:58:47  <rowbit>Hourly usage stats: []
03:02:05  <tanepiper>ahh grr, one thing is due to the way I'm doing the tokens and auth now, i don't get reconnection when i kill the server
03:02:27  <tanepiper>need to try work out an auto-reconnect strategy
03:02:59  <tanepiper>maybe need some ajax hearbeat
03:08:27  <tanepiper>BEDTIME!
03:17:59  <ik>LOUDBOT: twitlast
03:18:00  <LOUDBOT>ik: http://twitter.com/loudbot/status/216369282978811905 (avar/#perl)
03:18:22  * ryan_stevensjoined
03:40:29  <SubStack>isaacs: https://github.com/substack/js-traverse/pull/24
03:45:04  <SubStack>maxogden: also you should give http://github.com/substack/shoe a spin
03:45:10  <SubStack>it should work with domnode really well
03:52:20  <isaacs>SubStack: lol
03:52:31  <isaacs>https://github.com/substack/js-traverse/pull/24#issuecomment-6522331
03:58:47  <rowbit>Hourly usage stats: []
03:59:48  <jesusabdullah>stupidest issue ever
03:59:57  <jesusabdullah>...on that project.
04:05:54  <jesusabdullah>isaacs: My birthday is the same day as Alan Turing's
04:06:16  <isaacs>jesusabdullah: happy birthday!
04:06:22  <isaacs>jesusabdullah: though, technically, it's "tomorrow" here.
04:06:28  <jesusabdullah>Where's here?
04:06:33  <jesusabdullah>orite
04:06:34  <jesusabdullah>yes
04:06:36  <isaacs>jesusabdullah: well, alan turing was in britain
04:06:39  <isaacs>where it's 4:00
04:06:43  <jesusabdullah>true!
04:14:04  <rowbit>SubStack, pkrumins: Encoders down:
04:29:32  * raynos_joined
04:31:00  <raynos_> /msg SubStack when does cafe madrid close?
04:33:44  <raynos_>fail at irc
04:34:50  <jesusabdullah>raynos_: You in town?
04:49:35  * shykeschanged nick to zz_shykes
04:52:34  <raynos_>omw to cafe madrid. eta 10.25pm. so in town soon
04:54:52  <jesusabdullah>idk where cafe madrid is :(
04:55:30  <raynos_>oakland. near bart 19th
04:56:30  <jesusabdullah>ah
04:57:29  <raynos_>your in sf, oakland or ny?
04:58:47  <rowbit>Hourly usage stats: []
04:59:21  <jesusabdullah>raynos_: oakland
05:01:18  <SubStack>oh fuck yes, live music at cafe madrid
05:01:20  <raynos_>id say come chill. but im expecting the cafe to be closed and thus failure. join at own risk
05:01:32  <SubStack>well somebody working a mixer board at least
05:01:52  <jesusabdullah>Yeah, it's too late for me
05:01:53  <SubStack>raynos_: nah madrid is open til 4am on friday nights
05:01:57  <jesusabdullah>I'm 25 now, that means I'm old!
05:02:04  <SubStack>pssshaw!
05:02:20  <raynos_>...
05:02:56  <raynos_>its only 10pm
05:03:16  <chapel>Im 29 :(
05:03:22  <chapel>my bday was the 12th btw
05:03:25  <chapel>happy bday jesusabdullah
05:03:28  <jesusabdullah>Oh, happy birthday!
05:03:37  <jesusabdullah>brb I want fuds
05:03:45  <chapel>my bday is the same as george bush (sr)
05:03:57  <chapel>not as cool as yours
05:09:09  * raynos_quit (Ping timeout: 245 seconds)
05:09:58  <SubStack>Raynos: anyways I'm the one with a thinkpad and a wacom when you get here
05:18:32  * dominictarrjoined
05:18:45  <dominictarr>SubStack, shoe is really good.
05:19:01  <dominictarr>how high a priority is mux-demux for you?
05:21:35  <rowbit>SubStack, pkrumins: Encoders down:
05:25:04  <rowbit>SubStack, pkrumins: Encoders down:
05:25:36  <SubStack>dominictarr: that'd be really sweet
05:25:40  <SubStack>not too high I guess
05:25:48  <SubStack>unless I want to talk about it for my presentation
05:25:55  <SubStack>if you want to tackle it first go ahead
05:26:27  <SubStack>dominictarr: also I went on a disasterradio binge last night
05:26:29  <SubStack>sooooo gooood
05:27:04  <jesusabdullah>lulz
05:27:09  <SubStack>dominictarr: also somebody contacted me who would pay for an open source implementation of the ssh protocol in node
05:27:12  <SubStack>I sent them your way
05:27:35  <jesusabdullah>http://www.youtube.com/watch?v=d-LKa1Y9_ok
05:28:06  <dominictarr>oh yeah, just read an email from them.
05:30:19  <dominictarr>SubStack, with a RemoteEventEmitter across a stream, BrowserStream is mux-demux already. for object streams at least.
05:30:54  <dominictarr>by remote event emitter, I mean each end looks like an event emitter, but emit('event') would trigger on('event', ... at the other side, instead of on the same end.
05:31:15  <dominictarr>basically like socket.io api.
05:32:04  <rowbit>SubStack, pkrumins: Encoders down:
05:32:20  <dominictarr>I'm kinda inclined to refactor it to use a stream directly though, instead of adding another layer of abstraction.
05:32:44  <dominictarr>but, thats an irrelivant implementation detail
05:32:59  <dominictarr>what I want to ask you, is how do you feel about the browser-stream API
05:33:23  <maxogden>im using it right now!
05:33:23  <dominictarr>with on('connection', and createStream, createWriteStream, createReadStream ?
05:33:29  <maxogden>i think theres a bug with createWriteStream
05:33:39  <dominictarr>do tell
05:33:43  <maxogden>well it doesnt work
05:33:45  <maxogden>:)
05:33:53  <maxogden>streams dont have .write
05:33:54  <maxogden>for one
05:33:58  <maxogden>im debugging atm
05:34:02  <dominictarr>oh, shit
05:34:56  <dominictarr>I've only been using createStream... so I havn't hit that.
05:36:39  <maxogden>i think its a combination of typos and writeable vs writable
05:36:41  <maxogden>writable is correct fyi
05:37:20  <dominictarr>oh, yeah I've made that mistake before
05:37:23  * stlsaintquit (Quit: leaving)
05:37:34  <rowbit>SubStack, pkrumins: Encoders down:
05:38:15  <dominictarr>maxogden, what browser-stream version are you on?
05:39:24  <maxogden>a clone from earlier today
05:39:30  <dominictarr>cos i'm not grepping any 'writeable' in browser-stream on my dev version
05:39:34  <rowbit>SubStack, pkrumins: Encoders down:
05:40:06  <maxogden>oh maybe mine is older actually
05:40:10  <maxogden>PULLIN
05:41:01  <dominictarr>I think I did have that bug before. probably due to american spelling seeming weird to me.
05:43:05  * ryan_stevensquit (Quit: Leaving.)
05:45:51  * stlsaintjoined
05:53:19  <dominictarr>maxogden, did that fix it?
05:58:47  <rowbit>Hourly usage stats: []
06:04:06  <dominictarr>maxogden, i'll interperet your silence as yes. unix style, exit code == 0
06:08:06  <dominictarr>SubStack, I've hit that bug where browserify appends the entry.js twice again!
06:11:11  <SubStack>oh crap!
06:11:19  <SubStack>have something gistable I can stuff into a test?
06:12:48  <dominictarr>I have output, and I could post my cache?
06:13:13  <dominictarr>how does the cache work, is that a hash of the file contents?
06:13:31  <maxogden>im hackin on a video streaming demo over browser-stream using my new usermedia domnode
06:14:17  <dominictarr>maxogden, cool!
06:14:32  <maxogden>can i suppress socket.io output somehow?
06:16:08  <SubStack>maxogden: yes
06:16:15  <SubStack>it's very hard though
06:16:19  <SubStack>you should just use shoe
06:18:30  <maxogden>lol
06:20:06  <dominictarr>hmm, okay I reinstalled browserify to 1.13 and problem went away. I'll post the output though.
06:23:43  * tilgovijoined
06:43:57  <dominictarr>hey SubStack, shouldn't the shoe log be a Stream instead of a 'log' event?
06:44:09  <dominictarr>shoe.logStream()
06:44:14  <dominictarr>something like that?
06:45:26  <SubStack>oh maybe!
06:45:32  * raynos_joined
06:48:21  * raynos_quit (Client Quit)
06:58:48  <rowbit>Hourly usage stats: []
07:25:16  * Madars_quit (Ping timeout: 245 seconds)
07:25:19  <maxogden>WHO IS COMIN TO PORTLAND ?
07:25:22  <maxogden>WE CAN HACK ON THE STREAMS!!!
07:32:54  * Madarsjoined
07:45:33  <SubStack>http://substack.net/images/shoe.png
07:46:52  <dominictarr>I was getting ready to ask "can you make it more hipster" but you already did.
07:47:57  <jesusabdullah>I was gonna be pissed if that wasn't a chuck
07:47:57  <jesusabdullah>hahaha
07:53:07  <SubStack>the shoes and socks I happen to be wearing
07:53:09  <SubStack>:p
07:53:47  <SubStack>also: this motif will feature prominently in my nodeconf talk
07:53:54  <SubStack>I've just now decided
07:54:23  <dominictarr>whats your talk on?
07:54:40  <SubStack>browserify and the future
07:54:47  <SubStack>THE FUTURE
07:54:51  <dominictarr>ah, very good
07:55:09  <SubStack>apocalyptic wasteland might be a useful trope for driving that home
07:55:57  <SubStack>^ inspired by drop the bomb
07:56:09  <dominictarr>renegade javascripters roam the earth for the last scraps of free wifi
07:56:10  <SubStack>plus I have the perfect quote
07:56:16  <dominictarr>oh yes?
07:56:18  <SubStack>"If you want a picture of the future, imagine a boot stamping on a human face, forever."
07:56:27  <dominictarr>oh yeah, that one
07:57:39  <SubStack>SNACK THE PLANET
07:58:09  <SubStack>LOUDBOT: I'm glad I can count on you.
07:58:16  <SubStack>^ sockjs
07:58:25  <SubStack>but only slightly wrong
07:58:28  <SubStack>totes fixable
07:58:47  <rowbit>Hourly usage stats: []
07:58:58  <dominictarr>SubStack, EventEmitters have been removed from the C part of node right?
07:59:05  <SubStack>I think so
07:59:23  <SubStack>the barren wastelands of c
07:59:28  <SubStack>once a bustling metropolis
08:00:06  <SubStack>now the abandoned detritus of a once glorious empire
08:01:18  <dominictarr>include could not find load file: CPackConfig.cmake
08:01:33  <dominictarr>is that anything like CTestConfig.cmake ?
08:01:50  <SubStack>ug cmake
08:01:57  <dominictarr>I'm trying to install your node-ssh
08:01:58  <SubStack>I think you need to cmake . first maybe?
08:02:03  <SubStack>aha
08:02:05  <dominictarr>I got cmake
08:02:21  <dominictarr>cmake -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_BUILD_TYPE=Debug ..
08:02:26  <dominictarr>then that happened
08:02:38  <SubStack>craps
08:04:05  <SubStack>I wonder if I forgot to include that file or something
08:04:44  <dominictarr>it's not there
08:05:09  <SubStack>oh did you cd into `build` first?
08:05:15  <SubStack>and mkdir it
08:05:25  <SubStack>oh but it exists
08:05:30  <SubStack>anyways cd into theres
08:05:57  <SubStack>oh wait I get the same error as you
08:09:58  <SubStack>I'll be home in a bit and I'll upload that file from my other laptop
08:10:07  <dominictarr>okay, cool.
08:10:12  <SubStack>also I'll add you as a maintainer on the ssh package in npm
08:10:18  <dominictarr>sweet.
08:10:28  <SubStack>you can just take it over and do whatevs
08:10:46  <dominictarr>yeah, this ssh job looks really interesting. just trying to evaluate how hard it will be.
08:11:19  <SubStack>well node's crypto module has some diffie-hellman functionality in it now
08:11:30  <SubStack>http://nodejs.org/docs/latest/api/all.html#all_class_diffiehellman
08:11:34  <SubStack>you could just go that route
08:11:38  <SubStack>or the libssh route, either way
08:11:59  * SubStackheading home &
08:12:10  <SubStack>drawing art tonight for my talk
08:12:14  <SubStack>apocalypse art
08:12:17  <jesusabdullah>word
08:12:58  <dominictarr>yeah, I'm tempted to reimplement in js.
08:13:10  <dominictarr>reading the RFC
08:13:37  <SubStack>oh yeah
08:13:44  <SubStack>read the rfc
08:14:02  <SubStack>but when it comes to implement in pure js, ignore the message formatting parts
08:14:07  <SubStack>it's a bit ambiguous in places
08:14:11  <SubStack>just look at the libssh source
08:14:19  <SubStack>it's really well documented in comments in there
08:14:29  <SubStack>also I started a pure-js implementation too
08:14:51  <SubStack>https://github.com/substack/node-ssh-server
08:15:38  <SubStack>you could probably just take that and rip out my diffie hellman implementation for node's implementation
08:16:16  <SubStack>because of this: http://2.bp.blogspot.com/-bDgr2RPldjk/T8FSlTDnxJI/AAAAAAAABQA/Ycsn1EZWtL0/s1600/a980a3d1_I_Have_No_Idea_What_I_m_Doing.jpeg
08:17:47  <dominictarr>haha
08:18:38  <dominictarr>how far did you get with node-ssh-server ?
08:18:50  <SubStack>I got pretty far
08:19:04  <SubStack>it just doesn't do the key exchange correctly
08:19:09  <SubStack>so the client rejects it
08:19:16  <SubStack>but the message formatting is correct
08:19:54  <SubStack>ok biking home &
08:22:00  <dominictarr>cool, looking into it.
08:36:56  * dominictarrquit (Ping timeout: 245 seconds)
08:58:47  <rowbit>Hourly usage stats: []
09:42:15  <tanepiper>isaacs: that guy's comment :D
09:50:53  <SubStack>tanepiper: yeah, I just closed that
09:58:47  <rowbit>Hourly usage stats: []
10:16:52  <tanepiper>OOooh" https://github.com/dolphin278/pipemaster
10:17:16  <tanepiper>this looks extremly handy
10:18:36  <SubStack>tanepiper: updated the dnode docs and example to use shoe
10:19:31  <SubStack>https://github.com/substack/dnode#dnode-in-the-browser
10:31:30  <tanepiper>nice - also i'm going to be open sourcing my code on Tuesday, so it can be used as a practical dnode example
10:32:12  <tanepiper>but it took me about 30 seconds to switch from sock to shoe :)
10:33:16  * dominictarrjoined
10:33:35  * dominictarrquit (Remote host closed the connection)
10:39:48  * dominictarrjoined
10:40:30  <dominictarr>tanepiper, so how does your tweetifies app work?
10:42:05  <dominictarr>hey, it looks like you include underscore statically, AND browserify it
10:44:24  <tanepiper>dominictarr: it uses ntwitter to connect to a twitter stream, then it uses dnode so on each incoming event, it parses it and calls a function on theclient side that renders it
10:45:04  <tanepiper>dominictarr: i've added you to the repo, feel free to have a look (it's on the newdnode branch)
10:45:19  <tanepiper>it's not feature complete because i had to re-write it to the new API
10:45:29  <tanepiper>ANYWAY, off shopping with the gf - catch you later
10:47:43  <SubStack>great work \o
10:47:52  <SubStack>your presentation will be CUTTING EDGE now
10:48:09  <SubStack>oh man I love the new dnode so much now
10:48:19  <SubStack>the old one was so crappy with all that socket.io noise baked into it
10:48:50  <SubStack>streams are the future
10:50:40  <dominictarr>tanepiper, I'm just reading through your client code now.
10:51:11  <tanepiper>gahh women! she's not ready yet
10:51:41  <tanepiper>yea, my talk was called 'Callbacks all the way down' - I think i'll rename it LIVING ON THE EDGE!
10:52:12  <tanepiper>oh yea, there is some crufy code in there - basically ./client is the correct client that gets browserified
10:52:21  <tanepiper>and ./server is the correct server code
10:52:47  <tanepiper>if you see anything you think i shoukd change or fix let me know :)
10:53:21  <tanepiper>one thing is, I haven't figured out how to get the user session in on remote, so i generate teh app in on local, and send it up the pipe
10:53:25  <SubStack>living on the edge of an infinite stack of turtles
10:53:32  <SubStack>that go all the way down naturally
10:53:33  <tanepiper>SubStack: :D
10:54:15  <tanepiper>https://github.com/tanepiper/tweetifies/blob/newdnode/server/app/local.js#L34
10:54:23  <SubStack>http://producerposts.com/.a/6a01156f4ae097970b011572438ff0970b-800wi
10:54:30  <SubStack>http://bostern.files.wordpress.com/2008/10/yertle.gif
10:54:36  <SubStack>or this http://www.craigboyce.com/w/wp-content/uploads/2011/02/yertle1_.jpg
10:54:41  <tanepiper>which gets bound https://github.com/tanepiper/tweetifies/blob/newdnode/server/app/connection.js#L9
10:54:42  <SubStack>use one of those in your talk :D
10:55:41  <SubStack>oh this one is probably the best: http://www.sermons4kids.com/yertle.jpg
10:55:46  <tanepiper>the other thing i haven't figured out is in the old dnode, when i killed teh server and restarteed it, it would auto-reconnect
10:55:48  <SubStack>hahaha sermons4kids what
10:56:13  <tanepiper>because the tokens are ephemeral in this, when you reconnect it won't be the same
10:56:13  <SubStack>tanepiper: that's a thing that socket.io does
10:56:24  <tanepiper>SubStack: yea
10:56:42  <SubStack>that is so hard to turn off too
10:56:59  <tanepiper>i realise i'm going to have to come up with a reconnection strategy
10:57:33  <SubStack>d.on('end', function () { ... })
10:58:47  <rowbit>Hourly usage stats: []
11:00:10  <tanepiper>SubStack: yea, it's not so much on dnode end event, but rather when i kill the server
11:00:36  <tanepiper>because the session is stored in redis with the oauth tokens, it's quite easy to regenrate a new twitter stream
11:01:17  <tanepiper>https://github.com/tanepiper/tweetifies/blob/refactor/apps/twitter/index.js#L30
11:01:32  <SubStack>sweet
11:01:36  <tanepiper>with socketio, on connect it would cause this to all fire off again
11:01:54  <tanepiper>so basically all i needed to do was connect the new client and hook up the events
11:02:15  <tanepiper>but of course i was using dnode-session which made it super-lazy-easy
11:02:56  <SubStack>just (function reconnect () { ... setup all the things ... d.on('end', reconnect) })()
11:05:57  <tanepiper>yea, something lie that - it's dropped down my list for now anyway - need to finish a bunch of client stuff
11:06:11  <tanepiper>and then talk cards and some basic slides
11:06:41  <tanepiper>anyway, off now
11:13:33  <SubStack>OK THEN
11:13:36  <SubStack>brewing some more coffee
11:13:45  <SubStack>then I'm going to solve browser testing once and for all
11:13:46  <SubStack>I got this.
11:15:23  * tilgoviquit (Ping timeout: 265 seconds)
11:19:15  <SubStack>I think the trick of it is
11:19:48  <SubStack>I'm going to take tap, make it pretty, and generate the bundles browser-side with t.createWindow powered by schoolbus
11:20:20  <SubStack>at first with no instrumentation
11:20:36  <SubStack>then I'll hack on the falafel-based stackedy replacement
11:20:58  <SubStack>er, *generate bundles user-side with the command tool
11:21:52  <SubStack>I know how to do open source, so I'll do that
11:21:56  <SubStack>doing the other thing is much harder
11:32:01  * dominictarrquit (Ping timeout: 244 seconds)
11:33:30  * dominictarrjoined
11:34:17  <SubStack>'hoy!
11:35:53  <dominictarr>hey
11:37:12  <SubStack>oh I added you as an owner on `ssh` on npm
11:37:26  <SubStack>now uploading that cmake file
11:41:31  <SubStack>pushed!
11:42:52  <dominictarr>cool, thanks!
11:45:26  <SubStack>ok back to killing selenium once and for all
11:58:47  <rowbit>Hourly usage stats: []
12:14:35  <SubStack>dominictarr: oh one other thing you could check is the python ssh server implementation called conch: http://twistedmatrix.com/trac/wiki/TwistedConch
12:15:10  <SubStack>it could just be a matter of transliterating that source
12:55:04  <rowbit>SubStack, pkrumins: Encoders down:
12:56:05  <dominictarr>that sounds pretty easy
12:58:47  <rowbit>Hourly usage stats: []
13:28:44  <SubStack>ok pow I'm getting json output with the tap harness in the browser now
13:30:28  <SubStack>bwahahaha
13:30:30  <SubStack>it works
13:30:36  <SubStack>{"id":1,"ok":true,"stack":["getCaller (http://localhost:9595/bundle.js:2159:17)","assert (http://localhost:9595/bundle.js:1764:16)","Function.equivalent (http://localhost:9595/bundle.js:1925:12)","Test._testAssert (http://localhost:9595/bundle.js:4905:16)","Test.<anonymous> (http://localhost:9595/bundle.js:5463:7)","Test.<anonymous> (http://localhost:9595/bundle.js:584:20)","Test.emit (http://localhost:9595/bundle.js:4922:8)","
13:30:59  <SubStack>isaacs: ^^^ I've got tap running in the browser with a custom harness \o/
13:31:06  <SubStack>DEATH TO SELENIUM
13:31:10  <SubStack>fuck you LOUDBOT
13:39:20  <SubStack>phase 2 is hacking schoolbus into t.createWindow
13:39:38  <SubStack>progressing to phase 2 now
13:39:49  <SubStack>then I make a headless reporter
13:39:55  <SubStack>then fuck it at that point it's basically ready
13:40:18  <SubStack>I'll hack the instrumenter into it and just polish the command
13:58:47  <rowbit>Hourly usage stats: []
14:43:04  <rowbit>SubStack, pkrumins: Encoders down:
14:52:34  <rowbit>SubStack, pkrumins: Encoders down:
14:58:48  <rowbit>Hourly usage stats: []
15:17:30  <niftylettuce>jesusabdullah: HAPPY BIRTHDAY DUDE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
15:17:43  <niftylettuce>LOUDBOT WISH HIM A HAPPY BIRTHDAY
15:17:51  <niftylettuce>THATS RIGHT ITS HIS BIRTHDAY
15:29:29  <dominictarr>jesusabdullah, HB
15:29:34  <rowbit>SubStack, pkrumins: Encoders down:
15:29:39  <maxogden>JESUS AB DULLAH HAPPY BIRTH DAY!
15:29:53  <maxogden>MUHOMMED JESUS AL DULLAH
15:30:02  <dominictarr>also: https://github.com/dominictarr/remote-events
15:30:26  <maxogden>nice
15:32:03  <tanepiper>niiiicce!
15:34:09  <tanepiper>#stackvm - THE WAVE OF THE FUTURE
15:35:49  <tanepiper>dominictarr: would you mind throwing a quick show example up of remote-events ?
15:37:59  <tanepiper>i could see this being very handy for tweetifies (and for my dnode irc client i'll eventually finish)
15:43:47  <SubStack>ok I got t.log and t.createWindow working in tap... in the browser
15:43:51  <SubStack>with schoolbus
15:44:48  <SubStack>next step, injection proxy!
15:45:55  <SubStack>LOUDBOT: be jesusabdullah
15:45:56  <LOUDBOT><jesusabdullah> THE SOURCE CODE IS NOW DIAMONDS
15:46:02  <SubStack>LOUDBOT: search birthday
15:46:02  <LOUDBOT>SubStack: <niftylettuce:#stackvm> THATS RIGHT ITS HIS BIRTHDAY
15:46:07  <SubStack>haha
15:48:02  <SubStack>dominictarr: +1 on remote-events
15:48:21  <SubStack>yes indeed, #stackvm is pretty much the future
15:48:30  <SubStack>#stackvm is at least 6 months ahead of #node.js, that's for sure
15:49:09  <tanepiper>over 100 people will be getting a small peak behind the curtain this week then :)
15:50:07  <SubStack>wow so I am very close to killing selenium now
15:50:21  <SubStack>2 more things to get working tonight and then the rest is polish and service integration
15:51:15  <SubStack>oh I'll probably hack phantom support into this too
15:51:48  <SubStack>anyways I can basically %s/require('tap').test/require('testling')/ all my tests now and they'll work the same as before in node
15:51:59  <SubStack>but then I can also run them in the browser with some command-line switches
15:52:03  <SubStack>awwww yisss
15:55:01  <tanepiper>\o/
15:55:09  <SubStack>haha yes
15:55:34  <SubStack>this is that "run the same code on the server and the browser" thing
15:55:45  <SubStack>then next stop, testling-ci server
15:56:13  <SubStack>travis-style github markdown badges with browser support images for your modules
15:56:31  <tanepiper>hurpf, re-writing one of my bits of code around this pipemaster thing, npm installed it fine but node won't find it as a require :/
15:56:33  <tanepiper>weird
15:57:12  <tanepiper>never seen that before
15:58:47  <rowbit>Hourly usage stats: []
15:59:57  <tanepiper>bahh, this module is well broken - TO THE FIX LAB!
16:01:20  <SubStack>socket.o is like a cautionary tale in trying to do too many things
16:01:41  <SubStack>and in feature creep completely overburdening a project
16:02:04  <SubStack>the solution to that is pretty simple though, delete features
16:02:13  <SubStack>dnode had that problem too
16:08:39  <dominictarr>wow, weird bug. setTimeout / setInterval is not getting called.
16:09:10  <dominictarr>tanepiper, I have a much more mature version same idea as pipemaster at event-stream
16:09:54  <SubStack>I want a general purpose mutex lib!
16:10:11  <SubStack>er, multiplex I mean >_<
16:10:17  <dominictarr>just wait a sec
16:10:21  <SubStack>oh sweets
16:10:29  <tanepiper>dominictarr: oh? linky?
16:10:29  <SubStack>multi-band would be a good name
16:10:38  <SubStack>since it's a thing that's done with packet radio payloads
16:10:47  <tanepiper>i'd like to make all my async functions streams where i can
16:11:03  <tanepiper>fuck callbacks, I want to be able to PUMP ALL THE THINGS
16:11:07  <SubStack>a lot of things are fine as simple callbacks
16:11:18  <SubStack>like things that give you streams in the callback part as the argument
16:11:26  <SubStack>or just simple strings or numbers
16:11:49  <SubStack>it's all about picking and choosing the best abstractions to cleanly model the problem
16:12:32  <tanepiper>well this would work well because i can just pipe the streams from ntwitter to my transform function
16:13:16  <tanepiper>at the moment i am getting a stream back, but listening to data events to pass down callbacks
16:14:49  <tanepiper>ahh, so es.map
16:15:01  <dominictarr>tanepiper, http://github.com/dominictarr/event-stream
16:16:02  <dominictarr>if something gives a stream in a callback, it could just as easily return a Stream sync
16:21:46  * mikealquit (Quit: Leaving.)
16:26:35  <SubStack>oh sweet, I'll just reverse proxy into the user's testling proxy when they run tests remotely
16:26:56  <SubStack>then they control the proxy versioning and they can access their local resources securely
16:28:35  <tanepiper>dominictarr: am i doing this right? doesn't seem to work: https://gist.github.com/b657416a069db087e911
16:30:29  <tanepiper>ignore me, me dumb
16:39:18  <dominictarr>tanepiper, what was it?
16:42:26  * mikealjoined
16:44:45  * mikealquit (Client Quit)
16:45:58  <maxogden>super mario puns
16:46:00  <maxogden>and plumbing
16:46:20  <maxogden>though i have recent started plumbing related projects https://github.com/maxogden/plumbdb https://github.com/maxogden/plummet
16:48:27  <tanepiper>dominictarr: never mind, i forgot to write to it :D
16:49:29  <tanepiper>although i am wrapping the wrong bit really, i should wrap the part that i can stream.pipe(incoming) from ntwitter really
16:58:06  <dominictarr>HERE WE GO https://github.com/dominictarr/mux-demux
16:58:27  <SubStack>oh fuck yes
16:58:47  <rowbit>Hourly usage stats: []
16:59:37  <dominictarr>oh, need to make an example with shoe
16:59:47  <maxogden>OK IM PEEPIN ON SHOE
17:00:08  <SubStack>dominictarr: so each time you .create{Read,Write}Stream(name) it makes a channel with that name?
17:00:42  <dominictarr>actually, the channels are numbered, so you can open more than one channel with a name.
17:00:57  <dominictarr>think of the name as being like the /path in http
17:01:31  <dominictarr>also, you can pass an {} of options, which are emitted on 'connection' at the other end.
17:01:51  <dominictarr>so you can tell it what sort of stream you want.
17:04:44  <tanepiper>gahh - the stream from ntwitter isn't a real stream! it can't be piped :/
17:04:49  <SubStack>I guess I had a different api in my head
17:04:57  <SubStack>I'll think about this to see if it does what I want it to do
17:05:13  <maxogden>SubStack: malte ubl was craptalking you for using the domready module
17:05:22  <SubStack>whycome?
17:05:23  <maxogden>SubStack: he says just put script tags at the very end of the page and you never have problems
17:05:28  <SubStack>fuck that
17:05:30  <maxogden>and that domready makes page loads slow
17:06:06  <maxogden>it makes sense, you want markup to show up as fast as possible
17:06:16  <SubStack>that's browser people's problem
17:06:25  <SubStack>they should just fix that for me
17:06:40  <maxogden>sort of
17:06:44  <maxogden>if you put JS up top it will load it first
17:06:49  <maxogden>if you put it later it will load it later
17:06:54  <maxogden>so you as the dev get to decide importance
17:07:02  <maxogden>all malte is saying is make js less important
17:07:05  <SubStack>I don't want to decide
17:07:07  <maxogden>HIDDEN AGENDA
17:07:08  <tanepiper>bahh, the ntwitter stream is really just an event emitter !!!
17:07:14  <SubStack>I want the computer to do that shit for me
17:07:20  <maxogden>yea but browsers suck
17:08:20  <dominictarr>tanepiper, does it emit data and end like it should?
17:08:30  <maxogden>some streams never end
17:08:45  <maxogden>also while you both are around
17:08:53  <tanepiper>it emits, but it's not actually inheriting from stream, it's only an EventEmitter
17:09:06  <maxogden>is there a defacto standard for stream metadata
17:09:08  * mikealjoined
17:09:11  <maxogden>as in httpresponse objs
17:09:17  <dominictarr>try twitter.pipe = Stream.prototype.pipe
17:09:26  <maxogden>or do you just put props on the stream object
17:09:42  <dominictarr>there is no standard.
17:09:42  <tanepiper>i'd be better just writing my own wrapper around request, and using request + oauth to pipe
17:10:10  <maxogden>with http req + resp you get headers and a stream
17:10:26  <maxogden>so it almost seems like there should be a on.('metadata') event
17:10:31  <maxogden>oops .on('metadata')
17:10:33  * tilgovijoined
17:10:33  <maxogden>or something like that
17:10:43  <maxogden>but maybe im coming at it from the wrong way
17:11:38  <dominictarr>what sort of stream are you wanting to describe?
17:13:31  <maxogden>i guess you can just send metadata using other transports
17:13:34  <maxogden>so there is no reason to have it in streams
17:14:50  <maxogden>well actually consider this:
17:14:58  <maxogden>in https://github.com/maxogden/domnode-usermedia
17:15:13  <maxogden>i make a stream where each data event is a base64 encoded png
17:15:27  <maxogden>so if i were to hook it up to browser-stream
17:15:36  <dominictarr>tanepiper, you probably want to do it like this https://gist.github.com/2979070
17:15:39  <maxogden>(which i am doing in the thing i was hacking on last night)
17:16:01  <maxogden>then i would want to say something like camerastream.pipe(browserwritestream)
17:16:16  <maxogden>where browserwritestream is a browser-stream on channel 'foo'
17:16:21  <maxogden>so on the server 'foo' starts emitting data
17:16:31  <maxogden>but since its not http i couldnt set content-type
17:17:31  <dominictarr>bs.createWriteStream('foo', {"content-type": 'base64/png'})
17:17:39  <maxogden>o
17:18:24  <dominictarr>the other end will get a stream: stream.name == 'foo', stream.options = {"content-type": 'base64/png'}
17:19:00  <maxogden>well there we go
17:23:24  <dominictarr>I'm gonna go and hopefully find some streetfood. catch you dudes later!
17:23:54  <SubStack>rawk on
17:25:42  <maxogden>mmm street food
17:27:24  <mikeal>dominictarr: are you not registered for NodeConf?
17:31:24  <tanepiper>mehh, i'm not going to have time to streamifiy all the things, but dominictarr your stuff has given me IDEAS!
17:35:44  <SubStack>mikeal: have you seen schoolbus yet? https://github.com/substack/schoolbus
17:36:17  <SubStack>curious to hear what you think of it
17:38:36  <maxogden>WHOA SHOE IS AWESOME
17:38:55  <tanepiper>yea it is
17:39:12  <SubStack>maxogden: it's just sockjs! except streaming and works with browserify
17:39:32  <maxogden>yea
17:39:36  <SubStack>and slightly nicer arguments and doesn't spam stdout
17:39:46  <SubStack>it's the little things
17:39:50  <maxogden>i just wrote a video streaming thing
17:40:04  <maxogden>in like 6 minutes
17:40:35  <SubStack>:D
17:40:39  * tanepiperneeds to set his sights higher than a twitter streaming thing - also read more source code
17:41:36  <tanepiper>i feel i on;y 1/2 understand streams
17:42:05  <maxogden>summerofnodejs.com scroll down watch the video
17:42:08  <maxogden>also maxogden.com/node-streams
17:43:15  <SubStack>STREAM ALL THE THINGS
17:44:00  <mikeal>SubStack: i don't think it's that useful unless you inject that script in to every page using a proxy
17:44:57  <SubStack>mikeal: I have a proxy that does precisely that
17:49:40  <tanepiper>maxogden: awesome, shall watch shortly
17:58:47  <rowbit>Hourly usage stats: []
18:08:23  <dominictarr>mikeal, it's outside my budget at the moment, :(
18:10:41  <dominictarr>I'm gonna go to lxjs though!
18:17:32  <tanepiper>all the good js conference dates suck for me - the one I am speaking at Tuesday, I didn't realise is the same day as my girlfriends graduation! Luckly I'm on at 12, and it's at 3
18:17:49  <tanepiper>lsjx is the week of my honeymoon, and another js conf before that is my wedding weekend
18:18:00  <tanepiper>I *might* be able to make jsconf.eu though
18:19:13  <tanepiper>oh wait, when did jsconf.eu tickets go on sale?!?
18:22:26  <dominictarr>is it at nodeconf?
18:24:08  <dominictarr>something dramatic is being announced/released at nodeconf
18:24:38  <SubStack>is that a statement or a question? :o
18:25:28  * tilgoviquit (Remote host closed the connection)
18:26:32  <dominictarr>the question is: what?
18:26:54  <dominictarr>I don't recall specifically, but I remember someone talking about it.
18:31:30  <maxogden>isaac is having ryans baby and substack is helping raise it
18:32:17  <dominictarr>we'll train him from birth to be the greatest coder of all time.
18:32:37  <dominictarr>like in a kung fu movie, or something.
18:33:43  <tanepiper>well it's not 0.8 since that's pretty much been cut for release :D can't wait to play with the new debugging awesomeness
18:33:53  <tanepiper>adn 0.10 BEING ALL THE STREAMS
18:34:01  <dominictarr>okay, I'm gonna have a 3 hour nap. then I'm gonna wake up, and ride my bike to ankor wat in the dark, to see the sunrise.
18:34:14  <tanepiper>nice!
18:34:17  <dominictarr>did I mention I'm in cambodia now?
18:34:25  <tanepiper>would love to visit Cambodia one day
18:34:29  <dominictarr>it makes thailand seem boring
18:34:52  <tanepiper>you going to visit the killing fields?
18:35:08  <dominictarr>yeah, you gotta.
18:35:33  <tanepiper>sweet, gotta throw up some pics
18:36:03  <dominictarr>okay, but now, sleep
18:36:08  <dominictarr>catch you dudes later
18:58:45  <SubStack>cambodia!
18:58:47  <rowbit>Hourly usage stats: []
19:58:47  <rowbit>Hourly usage stats: []
19:58:47  <rowbit>Daily usage stats: []
20:13:46  * mikealquit (Quit: Leaving.)
20:14:23  * mikealjoined
20:36:13  * tilgovijoined
20:58:09  <SubStack>jesusabdullah: https://www.youtube.com/watch?v=CiGRpm6Tf3I
20:58:47  <rowbit>Hourly usage stats: []
21:01:07  <SubStack>WHERE ARE THE SAUSAGES?
21:03:12  <SubStack>jesusabdullah: also watch disasterradio drop the bomb over and over again
21:03:31  <jesusabdullah>XD
21:03:49  <SubStack>oh yesss https://twitter.com/DancePartyRobot
21:03:56  <jesusabdullah>SubStack: blakmatrix says he fixed the fork-with-no-changes behavior so if you see it again let us know :)
21:04:39  <SubStack>crap I missed it
21:04:55  <SubStack>now following the dance party robot so I won't miss the next one
21:05:06  <SubStack>jesusabdullah: oh great
21:05:24  <jesusabdullah>Yeah, I was like, "obtw " and he was like, "one step ahead of you?"
21:23:09  <SubStack>injection proxy works with testling yay
21:23:26  <jesusabdullah>word
21:37:41  * st_lukejoined
21:41:50  <SubStack>whoa shoe is trending https://github.com/explore
21:42:01  <SubStack>yesterday number-script was trending
21:44:39  <jesusabdullah>nice
21:44:44  <jesusabdullah>did I show you fuckitjs?
21:44:50  <jesusabdullah>I think that would be sweet as a node module
21:47:58  * st_lukequit (Remote host closed the connection)
21:58:47  <rowbit>Hourly usage stats: []
22:58:47  <rowbit>Hourly usage stats: []
23:36:27  * saijanai_quit (Quit: saijanai_)
23:58:47  <rowbit>Hourly usage stats: []