[00:00] mikeal has joined the channel [00:01] creationix has left the channel [00:01] sudoer has joined the channel [00:01] mjr_: mikeal: are you guys having open source beers at your office? [00:01] mikeal: nobody is in the office today [00:01] mikeal: damien and jchris are on vacation, i'm working from home, and jan is at jsocnf [00:01] mikeal: er jsconf [00:02] mjr_: Yeah, I wish I was at jsconf as well, but alas. [00:04] towski_ has joined the channel [00:04] kenneth_reitz has joined the channel [00:27] chewbranca: anyone using the interlock fragment caching plugin? [00:36] Harrison has joined the channel [00:49] justinlilly has joined the channel [00:51] tlrobinson_ has joined the channel [01:05] kenneth_reitz has joined the channel [01:15] ncb000gt has joined the channel [01:18] steadicat has joined the channel [01:20] mjijackson has joined the channel [01:29] justinlilly has left the channel [01:34] cloudhead has joined the channel [01:37] kreitz has joined the channel [01:39] charlesjolley has joined the channel [01:39] charlesjolley has joined the channel [01:43] charlesjolley_ has joined the channel [01:44] charlesjolley_ has joined the channel [01:52] brainproxy has joined the channel [02:00] _ry: felixge: ping [02:01] _ry: i just realized we need to get rid of deps/coupling and replace it with file streams [02:01] _ry: multiple thread pools = pain [02:01] _ry: reuse code = pain also, but perhaps good once it stablize [02:03] noonat has joined the channel [02:07] tlrobinson_ has joined the channel [02:28] Harrison has joined the channel [02:34] pkrumins: anyone knows of a templating system for nodejs? [02:34] ncb000gt: Mu [02:35] ncb000gt: it's a mustache implementation [02:35] pkrumins: looking [02:44] polyrhythmic: you can use haml-js [02:44] joshthecoder: yeah was about to link that one up: http://github.com/creationix/haml-js [02:44] joshthecoder: mainly found that one while reading up about Wheat [02:44] polyrhythmic: I've been using JSON templates for a long time clientside [02:44] polyrhythmic: I love them [02:45] joshthecoder: howtonode.org has some good reads [02:45] ncb000gt: joshthecoder: agreed. [02:50] icey has joined the channel [03:15] tlrobinson_ has joined the channel [03:19] Azeroth-Working has joined the channel [03:21] creationix has joined the channel [03:22] creationix: _ry: so why did you want me to get the new howtonode side done by this weekend? Any plans for it? [03:24] charlesjolley has joined the channel [03:24] charlesjolley_ has joined the channel [03:34] mikeal has joined the channel [03:35] PyroPete1 has joined the channel [03:44] softdrink has joined the channel [03:45] steadicat has joined the channel [03:47] tiglionabbit has joined the channel [03:48] creationix has joined the channel [03:49] gwoo has joined the channel [03:52] ncb000gt has left the channel [03:54] BinaryPie has joined the channel [04:05] dnolen has joined the channel [04:13] cedric_ has joined the channel [04:13] mjr_ has joined the channel [04:20] _ry: latex all night long [04:20] _ry: yey [04:20] _ry: :/ [04:22] JimBastard_ has joined the channel [04:22] JimBastard_: one guess who won the best presentation at scruvyconf and is speaking on track a of JSConf [04:22] _ry: JimBastard_: you? [04:23] JimBastard_: OHH HELLL YA [04:23] _ry: :) [04:23] _ry: sweet [04:23] JimBastard_: _ry: i meet a few of your canuck joyent assosciates [04:23] JimBastard_: also im drunk [04:23] icey: JimBastard_: congrats! [04:23] JimBastard_: thank you thank you [04:23] _ry: ACTION is holed up finishing his presentation [04:23] JimBastard_: hee hee [04:24] JimBastard_: im looking forward to it ry [04:24] JimBastard_: i'll be the guy in the domokun hat go, WOOO NODE [04:24] JimBastard_: going* [04:24] cloudhea has joined the channel [04:24] _ry: i hope tomorrow also has beer... [04:26] micheil: moin all [04:26] JimBastard_: i think the boat ride will be epic [04:26] micheil: _ry: did you see that patch I had for http.js? [04:27] _ry: micheil: updateHead? [04:27] micheil: umm.. no [04:27] _ry: then no :) [04:27] micheil: it was to make the http.Sever have only optional args [04:28] _ry: remind me about it on monday [04:28] micheil: http://gist.github.com/368678 [04:28] micheil: okay [04:28] micheil: it was a few additions for an if statement [04:28] micheil: makes it heaps cleaner to implement things that use upgrade headers [04:29] micheil: http://github.com/miksago/node-websocket-server/blob/httpServer/lib/ws.js#L21 [04:29] JimBastard_: i think my john resig joke sealed the deal [04:30] JimBastard_: i congratulated him on his new acting career. i told him he was great in hot tub time machine [04:30] BinaryPie has joined the channel [04:30] micheil: JimBastard: sealed the deal? which deal :P [04:31] JimBastard_: winning scruvyconf [04:31] micheil: oh [04:31] JimBastard_: and getting to speak at jsconf track a [04:31] micheil: btw, ask john if he's on IRC much, I've gotta talk to him about some stuff [04:32] JimBastard_: im uber excited and the node.js room is really the only place where i could brag about such things [04:32] micheil: (if you could? ) [04:32] JimBastard_: hes on irc [04:32] micheil: oh, neat. [04:32] JimBastard_: ive seen him in here a few times [04:32] JimBastard_: JohnResig [04:32] micheil: I have too, just not sure if it's him or his server [04:33] micheil: so, what are you talking about at jsconf? [04:33] JimBastard_: hook.io and the evented web [04:33] JimBastard_: and my deep love for node [04:33] micheil: nice [04:40] mikeal has joined the channel [04:47] JimBastard_: fuck i gotta buy some clothes or something i didnt pack a bag [04:48] micheil: lol. [04:48] micheil: JimBastard: pst.. Fail. [04:48] micheil: :P [04:48] JimBastard_: you have no idea man [04:48] JimBastard_: lol [04:48] micheil: haha [04:48] JimBastard_: i got a free hotel room and a free ticket [04:48] micheil: heh heh [04:49] JimBastard_: :p [04:49] JimBastard_: NOW ALL I WANT IS A DECENT PAIR OF PANTS [04:49] JimBastard_: ok im wasted [04:49] JimBastard_: tune in tomorrow for more of JimBastard's hilarious antics [04:49] micheil: but.. but.. it's not 5 am yet? [05:03] BinaryPie has joined the channel [05:08] mjijackson has joined the channel [05:08] dgathright has joined the channel [05:15] micheil: anyone know where tim caswell / creationix is about? [05:42] kenneth_reitz has joined the channel [05:45] noonat has joined the channel [06:04] jamesduncan_ has joined the channel [06:05] jamesduncan__ has joined the channel [06:15] tekky has joined the channel [06:22] ayo has joined the channel [06:48] brainproxy has joined the channel [07:17] mikeal has joined the channel [07:35] rictic has joined the channel [07:43] sveisvei has joined the channel [07:52] rmetzger has joined the channel [08:00] javajunky has joined the channel [08:03] mitkok has joined the channel [08:20] rictic has joined the channel [08:25] teemow has joined the channel [08:30] xla has joined the channel [08:35] gf3 has joined the channel [08:37] derbumi has joined the channel [08:37] mjr_ has joined the channel [08:50] FSX has joined the channel [08:58] micheil: is it possible to create a HTTP Res? [08:59] micheil: nvm. got it. [09:00] micheil: it'd probably be nicer if http#ServerResponse and http#Server#parser.onIncoming were publicx [09:00] kixxauth has joined the channel [09:04] pdelgallego has joined the channel [09:06] bpot has joined the channel [09:20] nsm has joined the channel [09:30] javajunky has joined the channel [09:30] felixge has joined the channel [09:30] felixge has joined the channel [09:35] sveisvei has joined the channel [09:45] tisba has joined the channel [09:47] mitkok1 has joined the channel [10:31] N` has joined the channel [10:36] button has joined the channel [10:41] markwubben has joined the channel [10:52] qFox has joined the channel [10:54] qFox: how do you read keyboard input from the console...? [10:54] qFox: from the api i cant really tell whether that's even possible [10:55] javajunky: it is possible [10:56] nsm: qFox: use process.openStdin() [10:56] qFox: k [10:56] nsm: and add a listener for 'data' [10:56] nsm: on the stream [10:56] qFox: ah, thanks [10:56] qFox: was searching for keyboard, console, etc :) [10:57] javajunky: http://github.com/ciaranj/kiwi/blob/master/bin/kiwi.js#L742 [10:57] javajunky: ( as an example .. but it may not currently work against node 0.1.91) [10:57] qFox: ty [10:57] javajunky: in fact yeah it wont .. listen to nsm ;) [10:58] javajunky: anyone seen weird behaviour with 'join' in latest node.. is it even possible that node could affect array.join ? [10:59] herbySk has joined the channel [11:00] ssteinerX_ has joined the channel [11:01] nsm: javajunky: do you mean it joining by ',' and not by the character you want? [11:02] herbySk: hello, any (gc)c hackers here? I'm trying to add new cc/h pair to node, copied existing one, added .cc to wscript, but got this link error: [11:02] herbySk: default/src/node_script_6.o(.text+0x231): In function `node::Script::New(v8::Arguments const&)': [11:02] herbySk: : undefined reference to `vtable for node::Script' [11:02] javajunky: I've got a *really* weird behaviour when joinging by '' , [11:04] javajunky: https://gist.github.com/07bab06095a2542cfe88 [11:06] javajunky: I *hope* its just something stupid I've done, otherwise its a bit disconcerting :) [11:10] nsm: herbySk: Please post full code somewhere gist/pastebin [11:10] herbySk: mmt [11:12] herbySk: http://gist.github.com/369476 [11:12] javajunky: *sob* its nothing to do with arrays, I'm now so lost [11:14] N`: javajunky: node> sys.puts(result); [11:14] N`: U,e,E,3,j,L,A,E,E,g,N,,G,,G [11:14] N`: I don't think it's expected to have ,, in result [11:15] nsm: javajunky: getting unpredictable responses, once 21, once 20 [11:15] N`: javajunky: got it, you have ',G' in your NONCE_CHARS [11:16] nsm: :D [11:17] javajunky: spot on, literally just found it [11:17] javajunky: thanks, phew! [11:17] javajunky: one of those days I guess! [11:17] nsm: herbySk: C++ doesn't allow () for the default c'tor, use new node::Script, I think that should fix it [11:18] herbySk: nsm: didn't help (I just copied it from node_timer and there () was as well) [11:19] nsm: hmm, could you post your .h too? [11:21] herbySk: it's there [11:21] nsm: herbySk: sorry [11:21] herbySk: np [11:23] JimBastard_ has joined the channel [11:23] JimBastard_: zzzzzzz [11:31] sveisvei has joined the channel [11:34] dgathright has joined the channel [11:35] dgathright has joined the channel [11:37] herbySk: i solved it. I missed destructor definition in .cc and this cryptic link error was the outcome [11:38] ewdafa: what js libraries are people using with node? js itself seems a little sparse and i've ended up prototyping my own functions into a ton of objects, but i'm probably just reinventing the wheel here [11:39] nsm: herbySk: You haven't defined a destructor in your .cc, that fixes it [11:39] olivvv_ has joined the channel [11:43] nsm: ewdafa: wiki.github.com/ry/node/modules has a list of useful stuff [11:59] JimBastard_ has joined the channel [12:03] teemow has joined the channel [12:06] pdelgallego has joined the channel [12:07] malkomalko has joined the channel [12:19] felixge_ has joined the channel [12:19] felixge_ has joined the channel [12:32] malkomalko has joined the channel [12:53] charlesjolley has joined the channel [12:54] charlesjolley has joined the channel [13:10] sh1mmer has joined the channel [13:44] mitkok has joined the channel [13:46] charlesjolley has joined the channel [13:50] sh1mmer has joined the channel [13:55] tlrobinson_ has joined the channel [14:04] JimBastard_ has joined the channel [14:10] nsm has joined the channel [14:14] jed_ has joined the channel [14:16] mjijackson has joined the channel [14:16] JimBastard_ has joined the channel [14:25] KungFuHamster has joined the channel [14:30] JimBastard_: has anyone done any work with twitter-node by technoweenie? [14:30] JimBastard_: or any node twitter integrations? [14:30] JimBastard_: also is anyone awake [14:30] micheil: not yet [14:30] micheil: to the first two questions [14:30] JimBastard_: i found this [14:30] JimBastard_: http://github.com/ryanmcgrath/twitscript [14:30] micheil: to the last: no, of course not, you're just so tired that your' dreaming this. [14:31] micheil: JimBastard: I'm in your dreams.... [14:31] JimBastard_: its possible [14:31] micheil: :P [14:31] JimBastard_: i gotta do a 45 minute talk tommorow [14:31] JimBastard_: on hook.io [14:31] micheil: heh heh [14:31] micheil: okay [14:31] JimBastard_: i have nothing prepared [14:31] micheil: JimBastard: can websockets talk with hook.io [14:31] micheil: ? [14:31] JimBastard_: the answer is yes, but can you be more specific? [14:31] JimBastard_: thats a fairly broad question [14:32] JimBastard_: hook.io can listen for events in two ways [14:32] JimBastard_: polling and sockets [14:32] JimBastard_: even rest requests are considered sockets [14:32] micheil: okay [14:32] JimBastard_: as we have an open http socket (node) waiting for requests [14:32] micheil: so, that's one side of the story [14:32] JimBastard_: why do you ask? [14:33] micheil: what are the four main question for anything? [14:33] JimBastard_: ? [14:33] alex-desktop has joined the channel [14:33] micheil: What, How, Can I use it, and Why / FAQs [14:33] JimBastard_: ohh yeah i mean [14:33] JimBastard_: i'll pull something together [14:34] JimBastard_: i have 10 slides from last night, but most of them are crockford or my little pony [14:34] CrockBot: The character Obi Wan Kenobi was actually modeled after Douglas Crockford heisenthought [14:34] JimBastard_: thanks CrockBot [14:34] CrockBot: Douglas Crockford can normalize the DOM without exposing a single function. sbesselsen [14:34] micheil: if you don't have much as slides, then that's one angle to approach it [14:35] JimBastard_: ill probaly do a 20 minute explanation and then do QA, dont think it will go the whole length [14:35] micheil: hmm.. [14:35] micheil: what three things come first to your mind? [14:35] micheil: Unicorns, Crack and Coffee. [14:35] micheil: (don't ask.. :P) [14:36] JimBastard_: deanlandolt: you mess with any node twitter integration [14:36] micheil: JimBastard: btw, relevance: can hook.io use twitters new streaming and anywhere apis? [14:36] micheil: (theoretical) [14:37] JimBastard_: yeah thats kinda the problem im dealing with now [14:37] micheil: okay [14:37] JimBastard_: im not too familiar with the twatter api, but im using rick olsons lib [14:37] JimBastard_: for doing streaming [14:37] JimBastard_: but it seems that streaming is more for listening / querying data [14:38] JimBastard_: i just need a simple status update for nwo [14:38] JimBastard_: have you seen http://github.com/Marak/twitter-node [14:38] JimBastard_: i cant figure out if this lib can currently do simple API calls [14:39] micheil: hhm.. [14:39] micheil: it's funny that.. I'm busy talking to a dude from denmark who's also trying to work out twitter related stuff [14:39] JimBastard_: im sure wrapping the twitter api is simple enough [14:39] JimBastard_: but id much rather build on someone elses work [14:40] micheil: answer: no, that can't do updates [14:40] micheil: it's for the streaming apis [14:40] micheil: / firehose [14:41] micheil: http://github.com/technoweenie/pdxjs-twitter-node [14:41] micheil: maybe? [14:43] JimBastard_: fuck i killed crockbot [14:43] JimBastard_: i don't know what that lib does [14:44] micheil: it's not a lib. it's slides, of no help [14:45] micheil: JimBastard: http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses%C2%A0update [14:45] micheil: and use basic auth. [14:45] micheil: then it's just a matter of using either http.Client or net.Stream [14:45] JimBastard_: yeah i mean [14:45] JimBastard_: like i said [14:45] micheil: if no lib exists, it's DIY [14:45] micheil: or PDI [14:45] JimBastard_: wrapping the api is easy, i sent a message to teecho [14:46] micheil: (new term for the day, "please do investigate") [14:46] JimBastard_: ya ya [14:46] micheil: once node gets back(?) ssl, we can write up OAuth libraries [14:46] JimBastard_: sorry im at the conf today kinda up and down [14:46] JimBastard_: tim smart started an oauth lib [14:47] JimBastard_: he was handling all the twitter o-auth stuff but he kinda bailed for the moment [14:47] micheil: (and we can do secure-smtp, https, something else, and other cool things) [14:48] hsuh has joined the channel [14:48] JimBastard_: brb [14:49] micheil: k [14:49] jbrantly has joined the channel [14:52] aaaaaandy has joined the channel [14:54] micheil: aaaaaandy: jim will brb. [14:54] micheil: (supposedly) [14:54] aaaaaandy: Ohai [14:57] riottaba has joined the channel [14:59] tlrobinson_ has joined the channel [15:01] maushu has joined the channel [15:03] okito has joined the channel [15:03] tlrobinson_ has joined the channel [15:03] jed_ has joined the channel [15:07] malkomalko has joined the channel [15:08] sh1mmer has joined the channel [15:10] okito has joined the channel [15:10] quirkey has joined the channel [15:11] JimBastard_ has joined the channel [15:13] micheil: aaaaaandy: it's JimBastard_ [15:14] JimBastard_: hihi [15:14] joshbuddy has joined the channel [15:14] JimBastard_: http://github.com/gf3/IRC-js/ seems broken [15:14] JimBastard_: needs 0.1.9 update i think [15:14] aaaaaandy: Thanks and hi — I've figured it out though, so no worries :) [15:15] jed_ has joined the channel [15:16] jed__ has joined the channel [15:17] okito has joined the channel [15:17] Azeroth-Working has joined the channel [15:19] jed_ has joined the channel [15:20] jed__ has joined the channel [15:23] jed_ has joined the channel [15:24] okito has joined the channel [15:24] JimBastard_: so yeah i dont think rick olson's twitter stuff does plain twitter api calls [15:24] JimBastard_: seems to be only streaming [15:24] JimBastard_: i just forked http://github.com/Marak/twitscript [15:24] JimBastard_: update time [15:25] jed__ has joined the channel [15:28] micheil: oki [15:29] JimBastard_ has joined the channel [15:31] jed_ has joined the channel [15:36] mitkok has joined the channel [15:38] riottaba_ has joined the channel [15:41] maritz has joined the channel [15:43] malkomalko_ has joined the channel [15:47] tlrobinson_ has joined the channel [15:49] gwoo has joined the channel [15:51] JimBastard_: sop gwoo [15:51] gwoo: yo JimBastard_ [15:51] JimBastard_: i got the best talk at scurvyconf, so i get to do a 45 minute hook.io talk on sunday [15:52] JimBastard_: pretty excited [15:53] charlesjolley has joined the channel [15:53] gwoo: JimBastard_: that is freakin awesome [15:53] JimBastard_: :-D [15:53] JimBastard_: im trying to get the twitter stuff setup today [15:53] JimBastard_: it would be nice to get banned from twitter during my presentation [15:53] gwoo: do we need the oauth working for that? [15:53] JimBastard_: or at least spam a bunch of stuff [15:54] JimBastard_: im not 100% on that [15:54] JimBastard_: im looking into it all right now [15:54] JimBastard_: i think its possible to use the api over plaintext [15:54] JimBastard_: which sucks, but is okay for an early version [15:55] gwoo: yeah, it sucks with standard api [15:55] tlrobinson_ has joined the channel [15:55] gwoo: i had the oauth almost working, i could try putting in some more time [15:55] JimBastard_: i think Tim_smart has a repo going [15:55] JimBastard_: have you ever done any work with the twitter api before? can i just do a plain ole post without oatuh for update status [15:56] gwoo: yeah i have done lots [15:56] JimBastard_: yeah basic auth is there [15:57] gwoo: they are shutting it down in june [15:57] gwoo: but for a demo it's fine [15:57] JimBastard_: word [15:57] gwoo: we were having issues with the hash lib [15:58] JimBastard_: yeah im really close to getting twitter protocol working for simple updates [15:59] JimBastard_: just gotta get the header of the outgoing request to have the auth info.....i think [16:00] micheil: res.writeHead [16:00] keeto has joined the channel [16:00] micheil: and then add the keys in to the hash [16:00] JimBastard_: yeah i just need to know what the header is suppose to look like [16:00] micheil: res.writeHead(200, {...}) [16:00] micheil: that's for server message [16:00] micheil: checking for client request [16:01] JimBastard_: http://gist.github.com/369640 [16:01] JimBastard_: i mean specifcally for the twitter api micheil [16:01] micheil: ah, okay [16:01] micheil: it'll be basic http auth [16:02] micheil: http://tools.ietf.org/html/rfc2068#section-11.1 [16:02] micheil: will be the headers [16:02] micheil: and http://tools.ietf.org/html/rfc2068#section-14.8 [16:03] gwoo: WWW-Authenticate [16:03] micheil: requires base64 libds [16:03] JimBastard_: ive got all that [16:03] JimBastard_: i understand what has to be done too [16:03] micheil: it'd be good to see things like base64, md5 and such be added to core of node [16:03] JimBastard_: just drawing a blank on the syntax [16:03] micheil: (basic crypt stuff) [16:04] JimBastard_: micheil: i think there is node-crytp [16:04] JimBastard_: micheil: i think there is node-cryto [16:04] micheil: try [16:04] gwoo: yeah i used that for oauth stuff [16:04] micheil: true [16:04] gwoo: but it was not working for hmac for some reason [16:05] mitkok has joined the channel [16:05] micheil: var req = http.createClient(80, "api.twitter.com"); [16:06] JimBastard_: yeah i know mang [16:06] micheil: yeah [16:06] JimBastard_: i think there is an issue with this lib thats unrelated i gotta look into it [16:06] micheil: last arg is headers [16:06] JimBastard_: :p [16:07] micheil: so, {"WWW-Authenticate": base64(username+password)} [16:07] micheil: iirc. [16:08] JimBastard_: ohh wow it worked [16:08] JimBastard_: just giving me a bad message [16:08] JimBastard_: http://twitter.com/hookIO [16:08] JimBastard_: lol [16:09] gwoo: JimBastard_: awesome [16:10] JimBastard_: its acting strange [16:10] JimBastard_: i think it worked the first time but now its not, just gotta keep digging [16:12] micheil: hmm.. [16:15] JimBastard_: fucking strange [16:15] gwoo: ? [16:16] JimBastard_: i cant figure out why it worked the first time and now its throwing 403 errors [16:16] JimBastard_: strangeness [16:16] JimBastard_: i thought there was a header issue, but i guess that never existed [16:16] JimBastard_: i didnt really change anything in the code, and reverted it all back [16:18] mjijackson has joined the channel [16:18] gwoo: hmm [16:18] JimBastard_: im gonna try with another account, see if that matters [16:22] JimBastard_: okay so this worked using the same code : http://twitter.com/maraksquires [16:22] nsm has joined the channel [16:22] JimBastard_: im gonna try to run it again and see what happens [16:22] mape: will they be publishing the videos from jsconf? [16:22] mape: or live stream even? [16:22] JimBastard_: in a month or so [16:22] mape: k [16:22] JimBastard_: im amped for _ry talk in an hour [16:23] mape: Noone is up for streaming it over ustream? ;) [16:24] malkomalko_ has joined the channel [16:24] JimBastard_: i mean [16:24] JimBastard_: i dont know if they would be happy [16:25] malkomalko_: are you down at JSConf Jim? [16:26] Yuffster has joined the channel [16:26] mape: People don't go there for the talks? [16:26] tlrobinson_ has joined the channel [16:26] mape: I assumed it was for meeting people [16:27] mape: Doubt they would loose attending people if they were to stream it live, but then again I'm not running the conf [16:33] gwoo: mape: i agree [16:33] gwoo: mape: i think video feeds help to promote the ticket sails [16:33] mape: they have sails made out of tickets? [16:33] gwoo: haha [16:33] mape: I knew the theme was pirates but jikes ;) [16:33] gwoo: ACTION sails a lot [16:33] gwoo: :) [16:40] mape: heh [16:40] mape: owell guess I'll have to wait [16:41] gwoo: it's not that easy to setup a feed [16:41] gwoo: and if you want to do nice videos its even more time [16:42] mape: well if they are recording them [16:42] mape: it shouldn't be hard to [16:42] mape: just feed that into ustream [16:43] mape: and save it at the same time [16:43] gwoo: yeah [16:49] paulw has joined the channel [16:56] tlrobinson_ has joined the channel [16:58] softdrink has joined the channel [17:00] jan____ has joined the channel [17:00] jed_ has joined the channel [17:01] JimBastard_ has joined the channel [17:03] JimBastard_: now i spun the instance up again and the exact same twitter code is tossing me an error [17:03] JimBastard_: maybe the limit for basic auth is way more severe then oauth? [17:04] JimBastard_: maybe theres a race condition with the connection hrmmm [17:05] JimBastard_: yeah i think that was it [17:05] JimBastard_: great success [17:06] JimBastard_: so now maybe i should setup hook.io to watch one of my twitter accounts for updates and post updates to another twitter account when its updated [17:06] JimBastard_: and loop that [17:06] paulw has left the channel [17:08] gwoo: JimBastard: nice [17:10] dadan has joined the channel [17:12] mobile_ has joined the channel [17:14] ncb000gt has joined the channel [17:16] malkomalko has joined the channel [17:24] mjr__ has joined the channel [17:28] charlesjolley has joined the channel [17:28] tisba has joined the channel [17:32] dgathright has joined the channel [17:33] dgathright has joined the channel [17:34] JimBastard_ has joined the channel [17:35] sh1mmer has joined the channel [17:36] dgathright has joined the channel [17:36] bmesh has joined the channel [17:48] mcarter has joined the channel [17:49] mape has joined the channel [17:50] hellp has joined the channel [17:55] dnolen has joined the channel [17:57] derbumi has joined the channel [18:00] mape: Aww wanna listen to the talk :/ [18:00] sh1mmer: watch the video later [18:00] sh1mmer: it is the hotness though [18:01] mape: Yeah, hard seeing comments on twitter and sitting here [18:01] ncb000gt: Would be great if it was streamed. [18:03] tlrobinson_ has joined the channel [18:03] JimBastard_: does anyone know if ryanmcgrath is in IRC? [18:04] derbumi_ has joined the channel [18:05] tlrobinson_ has joined the channel [18:09] mape: ry? [18:12] psynaptic has joined the channel [18:13] JimBastard_: ry is on stage mape [18:13] JimBastard_: hes talking about node [18:14] mape: Yeah I know [18:15] ewdafa has joined the channel [18:18] felixge has joined the channel [18:22] _ry: http://nodejs.org/jsconf2010.pdf [18:23] gwoo: wooohooo [18:23] ncb000gt: :) [18:24] tlrobinson_ has joined the channel [18:29] MattJ: "Cooperative threading of any sort is a bad idea." - interesting :) [18:31] charlesjolley has joined the channel [18:33] tlrobinson_ has joined the channel [18:33] quirkey has joined the channel [18:35] fizx has joined the channel [18:38] tlrobinson_ has joined the channel [18:38] dgathright has joined the channel [18:42] sudoer has joined the channel [18:42] dgathright has joined the channel [18:43] fizx has joined the channel [18:43] jed_ has joined the channel [18:44] towski has joined the channel [18:45] ncb000gt has left the channel [18:45] JimBastard_ has joined the channel [18:46] _ry: here is a slgihtly longer version http://nodejs.org/jsconf2010_extended.pdf [18:46] maushu: I really didn't want to use threading. Unfortunately that is the only way I know how to control problems like inifinite loops on untrusted code. [18:46] _ry: maushu: process [18:46] maushu: ...isn't that equivalent? [18:46] _ry: no [18:46] maushu: Humn. [18:47] _ry: threads have a shared address space [18:47] JimBastard_: maushu: are you in your bathtub right now? [18:47] maushu: ... [18:47] maushu: Why? [18:47] JimBastard_: wait were you not the bathtub programmer [18:47] maushu: No. [18:48] JimBastard_: lol [18:48] JimBastard_: sorry [18:48] JimBastard_: masuidrive [18:48] JimBastard_: thats him [18:48] maushu: But what if I'm in a bathtub? Completely hypothetical question, of course. [18:50] maushu: _ry, would there be a way to decrease the number of processes and/or memory usage? If I wanted many pieces of code running in their sandboxes. [18:51] maushu: ...the only thing that comes to mind is creating and destroying sandbox at will, but that would be counter productive... unless.. pooling sandboxes? Huh. [18:53] _ry: maushu: pooling the processes [18:53] maushu: Yeah. [18:53] _ry: you probably want new contexts [18:53] _ry: yeah why not [18:53] maushu: _ry, btw, why the date has a link to your e-mail? [18:54] _ry: what? [18:54] maushu: Or is that just foxit reader being an idiot. [18:55] maushu: In the extended pdf the e-mail link is half-way the e-mail and half-way the date. [18:56] maushu: There is a chance that it's just foxit being a moron though. [18:56] tilgovi has joined the channel [18:57] dgathright has joined the channel [19:01] rnewson has joined the channel [19:06] sh1mmer has joined the channel [19:07] mjr__: Look at that, new REPL gets a full slide. [19:07] brapse has joined the channel [19:11] maushu: Looks like node sucks at serving large files. Damn. :| [19:11] JimBastard_ has joined the channel [19:11] maushu: Oh wait, Buffer comes to the rescue. [19:14] rnewson: maushu: I'm not so sure. large responses in chunked mode still don't terminate beyond a certain size. [19:15] dgathright has joined the channel [19:15] maushu: But that is in the http section, right? [19:15] rnewson: yes [19:16] dgathright_ has joined the channel [19:17] mjr__: rnewson: your issue #77 still plagues us. [19:17] mjr__: sadly [19:17] rnewson: *nods sadly* plagues me also. [19:17] rnewson: were it not for #77 I'd have made my couchdb proxy in node.js and not Erlang. [19:18] rnewson: anything I can do to assist? [19:18] mjr__: How far did you get in debugging it? [19:18] mjr__: I mean, isolating where the problem might be. [19:18] rnewson: not very, I was distracted, but I'm looking at it again right now. [19:18] rnewson: first thing is to find out if it's http.js or the c source or v8 itself? [19:19] maushu: I have a similar problem... I send a 168kb file and only receive 128kb. Sometimes. [19:19] rnewson: hm, related, perhaps. [19:19] mjr__: The last I heard from _ry, he sort of suspected it was a buffer-slicing thing, then he fixed two bugs in buffer slicing, but still issue #77 is there, then he gave up and went to jsconf. [19:19] rnewson: *nod* [19:19] rnewson: there's another bug on github that sounds the same btw, filed a bit after $77. [19:19] rnewson: #77 [19:20] mjr__: which? [19:21] rnewson: #89, I think. the one where HEAD doesn't emit end in chunked mode. [19:21] mjr__: HEAD is broken right now [19:21] rnewson: ah, k. [19:22] mjr__: Somehow my node-based proxy for couchdb doesn't run into this problem. [19:22] mjr__: And I stream multi-megabyte couchdb responses all day. [19:22] rnewson: interesting. try inserting the debian 5.0 iso and seeing if you can stream it out again through your proxy? [19:23] rnewson: that's what I'm trying here. [19:23] rnewson: it appears to transfer all the bytes but never ends the http response. [19:23] mjr__: They chunks that come back from couchdb are generally kind of small though, like 1400 bytes or less. [19:23] rnewson: that is, curl hangs. [19:23] rnewson: yes, that sounds right. [19:23] mjr__: Every now and then, couch will emit a giant chunk. I think that's what confuses it, the larger chunk sizes. [19:23] rnewson: couchdb uses mochiweb which only reads in fairly small chunks, up to 4k iirc. [19:23] rnewson: define "giant"? [19:24] mjr__: I think I've seen some 10KB chunks from couchdb, but maybe I'm confused. [19:24] rnewson: oh, there's a 1mb max buffer thing somewhere too. [19:24] rnewson: but I've never seen that happen, it's always under 4k. [19:24] mjr__: My proxy problems went away with the buffer slicing fixes last week. [19:25] rnewson: I retested with 0.1.91 [19:25] rnewson: the slicing fix is newer than that? [19:25] tlrobinson_ has joined the channel [19:26] mjr__: I think it is included in 1.91 [19:27] rnewson: *nod* and master is no better. [19:27] rnewson: it's odd, actually. it downloads the 647mb or so, then nothing, then it starts downloading more stuff... [19:27] rnewson: even though it's finished. [19:27] rnewson: curious. [19:27] mjr__: Your failing test is part of node, BTW: /test/disabled/test-http-big-proxy-responses.js [19:28] rnewson: I do this: http://friendpaste.com/2PrYokdq0XxJyRprLoCyCB [19:28] rnewson: oh, cool. [19:28] mjr__: I gotta run and tend to my kids. I hope you can figure this proxy thing out. [19:29] rnewson: I think it must be the C code. [19:29] rnewson: the http.js file just doesn't do the chunked transfer slicing, it handles higher level stuff, which makes sense. [19:29] rnewson: the disabled test does the same as I see though. lots of data, then it freezes, then more. weird. [19:38] quirkey has joined the channel [19:38] quirkey_ has joined the channel [19:43] Gruni has joined the channel [19:43] charlesjolley has joined the channel [19:44] dgathright has joined the channel [19:46] dobe has joined the channel [19:53] ahc has joined the channel [20:09] tlrobinson_ has joined the channel [20:10] mattly has joined the channel [20:15] pavelz has joined the channel [20:19] ahc has joined the channel [20:20] mau2 has joined the channel [20:21] admc has joined the channel [20:22] tlrobinson__ has joined the channel [20:23] teemow has joined the channel [20:25] maushu has joined the channel [20:35] mjijackson has joined the channel [20:36] tisba has joined the channel [20:37] mattly has joined the channel [20:42] JimBastard_ has joined the channel [20:42] JimBastard_: ohhh shiiiit [20:42] JimBastard_: http://twitter.com/hookIO [20:43] maushu: BATTLESTATION FULLY OPERATIONAL. [20:43] sh1mmer has joined the channel [20:45] JimBastard_: its getting thar [20:45] maushu: JimBastard_, btw, I just noticed. Your hookio project is similar to an experimental idea I have. [20:45] logicuce has joined the channel [20:45] JimBastard_: cool [20:46] JimBastard_: is it a subset of hook.io functionality? or just similiar? [20:46] maushu: I will now engage my lawyer armies^H^H^H^H^H^Hrebels to sue^H^H^H destroy you. [20:46] JimBastard_: get in line [20:46] softdrink has joined the channel [20:46] maushu: It's a subset. [20:46] JimBastard_: yeah [20:46] JimBastard_: lots and lots of web apps are subsets of hook.io [20:46] JimBastard_: thats kinda the point [20:46] maushu: Basically allow connections with twitter and so on. Besides tha tthere isn't anything similar. [20:46] JimBastard_: yeah [20:47] JimBastard_: hook.io is about arbitrary web apis and arbitrary connections [20:47] maushu: Perhaps in the future we might form an alliance and conquer the world. [20:49] maushu: JimBastard_, I do have a question, what http server are you using? [20:49] javajunky has joined the channel [20:50] JimBastard_: ? [20:50] JimBastard_: node? [20:50] JimBastard_: maushu [20:50] JimBastard_: im using the http module in node? [20:50] maushu: Nevermind, I checked. [20:51] maushu: Nginx as a reverse proxy? [20:51] JimBastard_: aye [20:51] JimBastard_: hook.io has no front-end [20:51] JimBastard_: its decoupled [20:51] maushu: Interesting. [20:51] JimBastard_: i have a front-end repo setup thats powering hook.io [20:51] BinaryPie has joined the channel [20:51] JimBastard_: it communicates over the JSON-RPC through our browser-side javascript api [20:51] JimBastard_: having a decoupled front-end is important [20:52] maushu: So, all requests pass through nginx? [20:52] JimBastard_: to the api [20:52] JimBastard_: any requests to /api get proxy_pass to hook.io [20:52] JimBastard_: everything else is static html [20:52] JimBastard_: being served by nginx [20:53] JimBastard_: you could build a completely front-end app that used hook.io as a SaaS [20:53] maushu: Yeah, I had the idea of using node.js but performance wise that is not the best idea. [20:53] JimBastard_: i just gotta hook up the jsonp stuff for cross-browser [20:53] JimBastard_: node.js performance for what? [20:53] JimBastard_: static html? [20:53] maushu: Static stuff. [20:53] JimBastard_: yeah [20:53] JimBastard_: fuck that [20:53] JimBastard_: nginx [20:53] JimBastard_: or whatever [20:53] JimBastard_: i use nginx because its robust and easy [20:54] JimBastard_: but you can use any front-end including your file system [20:54] maushu: By using nginx we sacrifice some stuff, like streaming. [20:54] JimBastard_: i havent really gotten that far yet, but ill deal with it [20:55] maushu: I find it silly that they don't have a streaming option for the reverse proxy. [20:55] JimBastard_: my battery is about to die i gtg [20:55] maushu: bye [20:56] aho has joined the channel [20:57] logicuce has left the channel [20:58] creationix has joined the channel [21:00] tlrobinson_ has joined the channel [21:03] malkomalko has joined the channel [21:05] creationix: _ry: just read your slides, how did the presentation go? [21:21] creationix: maushu: node is pretty fast with static files if you do it right [21:21] maushu: ...I want to know how to do it right. I WANT TO JOIN THE LIGHT SIDE OF THE FORCE. [21:22] creationix: especially if you're going to be serving the same small files over and over [21:22] creationix: just cache them in memory using buffers [21:22] darkf has joined the channel [21:22] maushu: ... [21:23] maushu: Yeah, the problem are the larger files. [21:23] creationix: maushu: what kind of static serving do you have [21:23] maushu: Right now? [21:23] creationix: if it's something you can afford to keep in memory it's easy [21:23] creationix: if it's too big, I'm pretty sure the fs module supports buffer based streams, I know http does [21:23] maushu: No no, the files are too large. Bigger than 2 MiB in most cases. [21:24] creationix: I don't think there is readfile support though [21:24] maushu: creationix, but using them is performance wise? [21:24] creationix: of course with a nginx proxy you can use the special nginx sendfile header from a node app [21:25] creationix: I always use nginx simply to handle my virtual hosts [21:25] creationix: most my config files are just a single proxy pass with a server name [21:25] maushu: Yeah, I don't want to use nginx since I want to handle the virtual hosts myself. [21:25] creationix: I'd have to benchmark streaming large files using node buffers [21:26] creationix: I imagine it's not that bad, just DON'T use strings [21:26] maushu: Please do. I don't trust my benchamrks. [21:26] creationix: so we're talking m3p sized files (2-4mb) [21:26] creationix: *mp3 [21:26] maushu: Yeah. [21:27] creationix: ok, I'm going to have an mp3 streamer as part of my next conference presentation anyway, so I can benchmark it and write up an howtonode article [21:27] maushu: Perhaps thinking of a file hosting service would be best. [21:27] creationix: maushu: so how do you handle virtual host in node? then all your sites are in the same process right? [21:27] maushu: Like rapidshare, megaupload and alike. Would be better to use nginx or node.js? [21:28] maushu: creationix, nope. Each site has a process, that is controlled by the main process. [21:29] creationix: ahh, so you have a node based reverse proxy [21:29] mattly: oh neat [21:29] creationix: except it probably works at some lower level, not http [21:29] mattly: i've been looking at node deployment strategies [21:29] maushu: ..and since Im using a wildcard subdomain I can also handle any subdomains. [21:29] maushu: creationix, unfortunately I need to read the host header so I'm using http. [21:29] creationix: sounds good [21:29] mattly: and have been coming around to the idea i might just need a node-based reverse proxy [21:30] riottaba has joined the channel [21:30] creationix: maushu: you could probably design your own protocol that's more effecient and easier to use than http and speak that to all the back-end apps [21:30] maushu: True. [21:30] creationix: but then only apps written for your front-end would work [21:31] maushu: The problem here is not implementing it but if its worth it. [21:31] creationix: well, if nginx isn't good enough for the proxy, then you probably have special needs [21:31] creationix: nginx is a very good proxy [21:31] creationix: haproxy isn't bad either [21:32] maushu: I'm afraid that would end up with an (awesome) system but so much slower than nginx that it's unusable. [21:32] quirkey has joined the channel [21:32] BinaryPie has joined the channel [21:32] creationix: maushu: did you see _ry's slides from today? [21:32] quirkey_ has joined the channel [21:32] maushu: creationix, yeah. [21:32] creationix: using buffers it's on par with nginx [21:33] creationix: my wheat server (for howtonode) gets around 1600/second with 160k requests [21:33] creationix: haven't tested larger files yet [21:34] creationix: either way, I'm pretty sure node is faster than your internet pipe [21:34] maushu: true. :3 [21:34] maushu: Other thing awesome would be that I have absolute control over the port 80. [21:34] maushu: Cute and insane experiments would follow. [21:34] mape: creationix: got link for the slides? [21:35] creationix: the place where nginx really shines is memory use [21:35] creationix: http://nodejs.org/jsconf2010_extended.pdf [21:35] mape: thanks :) [21:35] creationix: node uses about 10 times as much as nginx I seem to remember [21:35] quirkey has joined the channel [21:36] maushu: node.js uses 2mb for each process. [21:36] maushu: 5mb for the first one. [21:36] creationix: of course node is still super memory efficient compared to ruby/rails [21:36] maushu: 3 mb of shared resources obviously. [21:36] mape: requrie(�net�); [21:37] quirkey has joined the channel [21:37] maushu: It's a new type of require. It has +5 awesome skill. [21:37] mape: nice [21:38] mape: feels french [21:38] maushu: It also summons cthulhu on monday. [21:38] mape: so it needs water to function? [21:38] maushu: Nope. [21:38] mape: Oh neat [21:38] maushu: The tsunami shows up first. [21:39] maushu: No one knows if that is a feature or a bug. Decision is still on the table. [21:39] mape: Perhaps it can be used to fix the vulcano in island? [21:42] maushu: Perhaps. Let's just not bet on it. [21:42] maushu: Besides, Cthulhu would show up next. [21:42] mape: Probably for the best [21:42] charlesjolley has joined the channel [21:43] charlesjolley_ has joined the channel [21:45] charlesjolley_ has joined the channel [21:45] quirkey has joined the channel [21:47] noonat has joined the channel [21:50] gbot2 has joined the channel [21:58] fictorial: damn that conf is going on now... wish I could've made it. :( [21:59] creationix has joined the channel [21:59] botanicus has joined the channel [22:00] creationix has joined the channel [22:00] creationix: fictorial: tell me about it [22:01] fictorial: I'm sitting around with my in-laws... snuck away to play on the computer a bit. heh [22:04] icey: has anyone heard the approximate number of attendees at jsconf? [22:04] riottaba has joined the channel [22:08] dobe has joined the channel [22:08] riottaba has joined the channel [22:24] maushu: Real time streaming of jsconf, anyone? [22:29] rnewson has joined the channel [22:31] riottaba has joined the channel [22:36] botanicus: Hey guys. I'm wondering why people use "SubClass.prototype = new SuperClass();" rather than "SubClass.prototype = SuperClass.prototype;" ? [22:36] botanicus: Because by this approach I'll get instance stuff into prototype, is it? I. e. when I'll do this.data = [] in SuperClass constructor [22:37] CodeOfficer has joined the channel [22:37] noonat: No, it's because if you set the prototype directly, anything you add to SubClass.prototype will be added to SuperClass as well [22:38] noonat: doing new SuperClass() sets up a new fresh object with SuperClass in the prototype chain [22:40] botanicus: I see, it makes sense [22:40] noonat: You'll also see people doing stuff like this: [22:41] noonat: var tempCtor = function() {}; tempCtor.prototype = SuperClass.prototype; SubClass.prototype = new tempCtor(); SubClass.prototype.constructor = SubClass; [22:41] noonat: That's just done to get a copy of SuperClass's prototype without having to invoke its constructor [22:42] mattly has joined the channel [22:42] botanicus: noonat: so it's basically because of avoiding the problem with instance-related stuff (this.data in constructor) to propagating into the subclass prototype, right? [22:43] noonat: Right. It's usually not appropriate to invoke the constructor at class definition time. [22:43] botanicus: Cool. thanks for explanation noonat [22:43] noonat: You can still invoke it in SubClass(): SuperClass.call(this); [22:44] botanicus: noonat: and a generic solution, when I'm not sure what the superclass is? Object.getPrototypeOf(this).constructor.call(this); might work? [22:44] shoeman22 has joined the channel [22:45] noonat: No, because the prototype will point at your own prototype [22:46] noonat: You'd usually want to store a copy of it somewhere -- e.g. SubClass.prototype.superClass = SuperClass; [22:46] noonat: But you have to be careful with that [22:47] noonat: If you start chaining constructors this will point to your original object [22:47] noonat: It's usually safer to just call the super class explicitly [22:50] shoeman22: hello, what is the best way to deal with global variables when working with node.js? Specifically, I have a number of objects that will have methods that need to access a db handler (dbslayer) [22:52] shoeman22: in something like PHP, I'd just include the db = XXX at the top of my first include file, then all the rest of my files could just get at it...I realize I could use the global object (global.db = dbslayer.Server()), but I'm just curious if there is a more appropriate way to do it. [23:01] riottaba_ has joined the channel [23:13] felixge has joined the channel [23:18] rnewson has joined the channel [23:27] dobe: shoeman22: thats one way to do it, you can also put it in your own namespace (global.mystuff.db) if you have more stuff you need to put there [23:28] psynaptic has joined the channel [23:28] dobe: i prefer passing such objects using a function in the modules (exports.init = function (db) { ... }) [23:29] psynaptic has joined the channel [23:30] softdrink has joined the channel [23:36] eriklarson has joined the channel [23:42] rnewson has left the channel [23:46] pkrumins: anyone knows how to quit from nodejs early? like python's sys.exit9) [23:50] mjr__: process.exit() [23:52] pkrumins: oic, thanks! [23:52] mjr__: The docs are ugly, but fairly complete these days: http://nodejs.org/api.html