[00:00] brianleroux has joined the channel [00:00] malkomalko: I mean, all you need is some syntax for a || b [00:00] malkomalko: with all the undefined and type checks right in there [00:00] tjholowaychuk: yeah, i just dont want to get into parsing a whole weird language [00:00] tjholowaychuk: but ya that is a possibility [00:00] malkomalko: generally, if something is either undefined or empty, you'd want a default [00:00] tjholowaychuk: if needed [00:00] malkomalko: most cases anyway [00:01] malkomalko: right now, if you aren't careful, you run the risk of some ugly errors [00:01] malkomalko: by the way, thank you [00:01] tjholowaychuk: totally agree though, that is my annoyance as well [00:01] tjholowaychuk: np! glad you like it [00:02] malkomalko: I got my partner to buy in to move our app over to node [00:02] malkomalko: using a lot of your tools [00:02] tjholowaychuk: ah nice good to hear! node is a lot of fun [00:02] malkomalko: yah! been doing it for a while now [00:02] malkomalko: trying to find my way into testing, haven't felt anything that feels super awesome yet [00:02] sh1mmer: tjholowaychuk: it's a "pattern" to force the last "argument" to be a callback [00:03] malkomalko: I'm a rspec snob [00:03] Alex-SF has joined the channel [00:03] sh1mmer: personally I don't like it [00:03] v8bot has joined the channel [00:03] pengwynn has joined the channel [00:03] bronson has joined the channel [00:03] tjholowaychuk: sh1mmer: huh? [00:03] isaacs: ok, i'm totally caving on this whole "directories" thing [00:03] sh1mmer: "tjholowaychuk: whats up with this new(Foobar)('baz') cra[" [00:03] isaacs: fuck it. [00:03] markwubben has joined the channel [00:04] malkomalko: nvm? [00:04] tjholowaychuk: sh1mmer: ohhh sorry forgot about that :) haha [00:04] isaacs: "directories" : { "bin" : "./bins-are-in-here", "lib" : "./modules-are-in-here", "man" : "./man-pages-in-here"} [00:04] sh1mmer: tjholowaychuk: np [00:04] isaacs: and npm will just do the right thing, and make sure everything works. [00:04] malkomalko: isaacs, do you find it annoying that when you rvm list, you see every single version? [00:04] malkomalko: err [00:04] malkomalko: npm [00:04] malkomalko: lol [00:04] danielzilla has joined the channel [00:04] isaacs: hehe [00:05] isaacs: malkomalko: there is an nvm, so i was confused :) [00:05] creationix: nvm [00:05] isaacs: malkomalko: it's actually kinda nice in a way. [00:05] malkomalko: I know I know [00:05] malkomalko: haha [00:05] isaacs: malkomalko: you can always do npm ls latest [00:05] swaj has joined the channel [00:05] isaacs: malkomalko: or npm ls installed [00:05] malkomalko: there are too many similar names in the node world [00:05] tjholowaychuk: kiwi isnt broken yet [00:05] tjholowaychuk: wtf [00:05] tjholowaychuk: lol [00:05] isaacs: malkomalko: it'd be not as bad if they didn't all start with n [00:06] tjholowaychuk: few more days until its goneeee [00:06] isaacs: tjholowaychuk: kiwi still works? neat [00:06] malkomalko: I kind've feel by default when you list, you should just see the last version of every package [00:06] tjholowaychuk: isaacs: apparently [00:06] malkomalko: and then do npm ls all [00:06] faure has joined the channel [00:06] isaacs: tjholowaychuk: npm install kiwi never did quite work properly [00:06] _announcer: Twitter: "Coffeescript grabs my heart with #nodejs & #underscore goodness: http://bit.ly/9rhcE0" -- Sébastien. http://twitter.com/arnaudsj/status/22043193185 [00:06] tjholowaychuk: isaacs: didnt know it was on there lol [00:06] isaacs: tjholowaychuk: it's not published [00:06] isaacs: tjholowaychuk: but i had a fork of kiwi that could kinda sorta be installed by npm [00:07] tjholowaychuk: ah gotcha [00:07] _announcer: Twitter: "nice! node-notifo: "Send push notifications to your iPhone for free using node.js & notifo.com" http://bit.ly/a2ZS6a#nodejs #notifo #iphone" -- Régis Gaidot. http://twitter.com/rgaidot/status/22043238686 [00:07] tjholowaychuk: will be nice to use that server for some other stuff [00:07] _announcer: Twitter: "Small option parser for node.js/CommonJS http://github.com/harthur/argparse" -- Heather Arthur. http://twitter.com/harthvader/status/22043253912 [00:13] Lerchmo has joined the channel [00:13] pengwynn has joined the channel [00:15] cheapRoc has joined the channel [00:16] v8bot has joined the channel [00:16] therealkerni has joined the channel [00:19] MizardX has left the channel [00:19] victorstan has joined the channel [00:19] softdrink has joined the channel [00:21] malkomalko: also, TJ, is the _ assigned to anything in jade? [00:21] tjholowaychuk: malkomalko: nope shouldnt be [00:21] tjholowaychuk: as a local? [00:21] malkomalko: yah, I had some problems using underscore.js [00:21] malkomalko: I had to actually reference as __ [00:22] tjholowaychuk: haha shit, my bad ... i use it in the parser [00:22] tjholowaychuk: i can change that though [00:22] tjholowaychuk: one sec [00:22] v8bot has joined the channel [00:22] tjholowaychuk: malkomalko: seems a little strange though, you should still need to this._ [00:23] malkomalko: hmm [00:23] malkomalko: I'll just keep it aliased to the double underscore [00:23] malkomalko: it has a mystical vibe [00:24] tjholowaychuk: haha fixed in df42217 [00:24] tjholowaychuk: no reason for me to call it _ anyways [00:24] tjholowaychuk: just lazy [00:24] Tim_Smart has joined the channel [00:24] malkomalko: bamn [00:24] _announcer: Twitter: "Idea: Push your development and ideas with new tech - checkout node.js for more possibilities - http://nodejs.org/ #ws #ajax" -- Consulting by HiTCHO. http://twitter.com/HiTCHO/status/22044380015 [00:25] Tim_Smart: ryah: Did freeall get in touch with you? [00:26] mjr_ has joined the channel [00:26] sechrist: mystical yum [00:26] ryah: Tim_Smart: no [00:27] Tim_Smart: ryah: Hmm well, he was wondering about file uploads and CPU usages [00:28] Tim_Smart: His node.js application was using around 7% CPU for a single file upload at 10mbit, while his Java app was using <1% [00:28] Tim_Smart: And the Java app was doig some processing also. [00:28] Tim_Smart: doing* [00:31] TooTallNate: Hey what's the best way to combine Buffers? [00:32] TooTallNate: Or continually append Buffers onto a base Buffer? [00:33] _announcer: Twitter: "I can't recommend this enough: http://bit.ly/bHOqHK Peepcoode's Node.js screencast is pissing me off it's so good. @topfunky sets the bar." -- Rob Conery. http://twitter.com/robconery/status/22044943728 [00:35] lachlanhardy has joined the channel [00:36] mattly has joined the channel [00:36] mikeal has joined the channel [00:36] Tim_Smart: TooTallNate: buffer.copy into the base buffer. [00:37] nerdEd has joined the channel [00:37] TooTallNate: yes, but the base buffer needs to be bigger every time. [00:37] TooTallNate: So do I have to create a new Buffer each time with enough space for both? [00:38] satori_: If you are copying buffer alot, you should maybe look at using larger buffers and managing slices of it yourself. [00:39] TooTallNate: Ok, good idea. I'm only concating Buffers enough to collect an entire HTTP header [00:39] overra has joined the channel [00:41] digitalspaghetti has joined the channel [00:41] ryah: Tim_Smart: hm [00:41] TooTallNate: Is that *a lot* of copying? [00:41] ryah: Tim_Smart: that's not good [00:41] Tim_Smart: ryah: Yeah. I took a profile if you want to take a quick look. [00:41] Tim_Smart: https://gist.github.com/c2a2b5a22f726d01cc5c [00:41] satori_: TooTallNate: see how node does it internally: http://github.com/ry/node/blob/master/lib/dgram.js#L17-29 [00:43] Tim_Smart: ryah: I was wondering why printf is in the top 2. [00:43] Tim_Smart: I don't think the profiler would use it... [00:43] sechrist: Is there any lib that abstracts http into something even easier than it is for like bashing on apis and stuff? [00:43] Tim_Smart: sechrist: http.client, or? [00:43] sechrist: sure [00:43] Tim_Smart: npm install request [00:44] sechrist: think one layer up [00:44] sechrist: ah k [00:44] mjr_: ryah: check out the end of that profile. FastBuffers FTW? [00:44] ryah: Tim_Smart: i kind of think this is something fast buffers will help [00:44] ryah: mjr_: yeah [00:44] ryah: maybe [00:45] sechrist: there's something called FastBuffers now? As is Node buffers weren't fast enough? [00:45] Aria: Yep. [00:45] Aria: Lots of malloc overhead in common uses. [00:45] mjr_: I wish I knew how to read those profiles [00:45] sechrist: ACTION does his o-face [00:45] trotter has joined the channel [00:45] mjr_: It just seems like there's something missing from the V8 profile, like, they didn't account for all of the time somehow. [00:45] ehaas has left the channel [00:45] ryah: i think the fast buffers lead to less gc [00:45] mjr_: I wonder if that is what the oprofile helper thing does. [00:45] ryah: or faster gc [00:45] Tim_Smart: ryah: Yeah definitely. They will help, but something else is weird, Buffer::New was only 2% or something. [00:45] ryah: that's my theory at least [00:46] mjr_: Oh yeah, 107 ticks in GC. [00:46] pengwynn has joined the channel [00:46] ryah: Tim_Smart: 7% sounds like a lot [00:46] joshbuddy has joined the channel [00:46] mjr_: 225 ticks in node::Read, which is sort of what you'd expect I guess. [00:46] ryah: so we've got the huge gapping performance fix [00:46] junkee[]: is there a reference for v8? [00:46] ryah: and until that's fix, i refuse to consider anything else :) [00:46] Tim_Smart: Yeah, I does, it was around 15% on my macbook pro (I was serving from USB disk though) [00:47] jelveh has joined the channel [00:47] _announcer: Twitter: "jQuery and narwhal in common with black node.js" [ja] -- umi. http://twitter.com/umihara666/status/22045865119 [00:47] ryah: we know disk i/o sucks [00:47] ryah: pquerna showed that [00:47] charlenopires has joined the channel [00:47] ryah: so pulling shit off the "completed" queue from the thread pool is slow [00:47] ryah: (i think) [00:47] ryah: that's going to be the next big gapping fix [00:48] mjr_: We take more GC than it seems like we should, which hopefully fastbuffers will fix. [00:48] Tim_Smart: ryah: Well I did this one night ago http://github.com/Tim-Smart/node/compare/fast-buffer [00:48] mjr_: And lots of small reads/writes end up pushing that bit extra hard. [00:48] Tim_Smart: It is pretty half baked and I really didn't know what I was doing. [00:48] mjr_: Not to mention not coalescing writes at the end of the tick. [00:49] huyhong has joined the channel [00:49] trotter has left the channel [00:49] ryah: but all this has to wait until after nodeo [00:49] ryah: ko [00:49] ryah: so goodbye [00:49] mjr_: yeah, for sure [00:49] ryah: :) [00:50] mjr_: I just sent my node ko blog post to gerad. [00:50] _announcer: Twitter: "Having problems running Node.js in an inferior emacs process. Color control characters coming out wrong. Help?" -- Shrutarshi Basu. http://twitter.com/basus/status/22046068049 [00:50] huyhong has left the channel [00:51] mjr_: I wish it was easier to track down memory leaks on the JS side. [00:51] Tim_Smart: mjr_: node-inspector allows heap snapshots. [00:51] mjr_: I have one in this pcap demo server, and it's just so primitive. Binary search of commenting out different parts of the program. [00:51] mjr_: oh? [00:51] Tim_Smart: I need to get it working though. [00:51] Tim_Smart: I haven't played with it yet. [00:52] mjr_: Even the heap snapshot that Chrome comes up with is kind of not helpful. [00:52] MikhX has joined the channel [00:52] Tim_Smart: I keep getting segfaults whenever I run a debugger on node. [00:52] tmpvar has joined the channel [00:54] admc has joined the channel [00:55] mjr_: The Chrome heap snapshots don't include the names of anything, do they? Just the underlying types I thought. [00:55] mjr_: I assume that what shows up in Chrome is as good as it can get from V8. [00:56] vnguyen has joined the channel [00:57] pquerna: submit a change request ticket to chrome and then magically one day it wil show up in v8 :D ? [00:57] zemanel_ has joined the channel [00:58] Tim_Smart: mjr_: Let me dig up the demo video... [00:58] Tim_Smart: http://www.youtube.com/watch?v=AOnK3NVnxL8 [00:59] gerad has joined the channel [00:59] mjr_: Oh yeah, I've been meaning to watch that. [01:00] eisd has left the channel [01:00] zemanel has joined the channel [01:02] dan_manges has joined the channel [01:03] junkee[] has left the channel [01:03] zemanel has joined the channel [01:03] ryah: anyone want to try a Node Joyent machine? [01:03] benburkert has joined the channel [01:03] mjr_: yes [01:04] Tim_Smart: Sure. [01:05] gerad has joined the channel [01:05] tjgillies has joined the channel [01:06] pquerna: ACTION wants to make a heatmap of crc/md5/fnv [01:06] faure has left the channel [01:10] mjr_: Man, this leak detection is hilariously primitive. [01:10] mjr_: Will have to be fixed tomorrow. [01:11] _announcer: Twitter: "gotta put together a presentation on RabbitMQ, finish up a node.js app, give Than a phone call and start an article. Gonna be a busy night!" -- jamescarr. http://twitter.com/jamescarr/status/22047623455 [01:12] trotter has joined the channel [01:15] c4milo has joined the channel [01:18] sechrist: is there a lib for creating url objects out of arrays of params etc that handles escaping automatically? [01:18] sechrist: I could write one but probably one exists [01:18] sechrist: URL seems to only do parse? [01:19] Tim_Smart: sechrist: http://nodejs.org/api.html#url-format-303 [01:19] badaxx has joined the channel [01:20] badaxx has joined the channel [01:21] brianleroux has joined the channel [01:23] sechrist: yup, ty [01:24] gartenstuhl has joined the channel [01:26] _announcer: Twitter: "ok, time to watch 70 mins of node.js as explained by Peep ... Code ... i think i'm not much longer than that for the world tonight #wuss" -- grantmichaels. http://twitter.com/grantmichaels/status/22048688134 [01:32] junkee[] has joined the channel [01:32] Alex-SF has joined the channel [01:34] junkee[]: someone from germany here? [01:35] konobi: nein [01:35] konobi: *doh* [01:35] junkee[]: :D [01:35] mjr_ has joined the channel [01:36] konobi: ryah: who's the KO organizers here again? [01:37] Yuffster has joined the channel [01:37] visnup: http://knockout.no.de ! [01:37] visnup: konobi: me [01:37] gerad: wooo! [01:37] gerad: konobi [01:37] visnup: konobi: gerad [01:37] gerad: konobi: visnu [01:37] micheil: konobi: I'm not an organiser, but I will be judging [01:37] konobi: visnup: noticed that the list of sponsors on the prizes page isn't showing up [01:37] tg: ryah: yeah sure [01:38] konobi: (on chrome at least) [01:38] mjr_ has joined the channel [01:38] gerad: konobi: adblock? [01:38] visnup: konobi: do you have ad block [01:38] mjr_: no.de! [01:38] tg: :) [01:39] ryah: :) [01:39] konobi: indeed [01:39] konobi: should i have adblock in safari too, and it shows up there [01:40] mjr_: I wish I had time to push something there right now [01:41] Alex-SF_ has joined the channel [01:42] dylang has joined the channel [01:42] konobi: visnup: yup... it's adblock doing it [01:42] visnup: konobi: ah, yeah [01:42] visnup: konobi: I was always torn since that's a smart adblock so ok good job adblock! [01:42] visnup: konobi: vs. trying to get around it [01:45] tg: btw, is this joyent smart platform has to do anything with node? [01:46] konobi: yes/no/sorta/maybe [01:46] konobi: ask me at the knockout event =0) [01:47] Tim_Smart: ryah: npm refuses to install. [01:47] isaacs: Tim_Smart: oh? [01:47] isaacs: Tim_Smart: what's up? [01:47] pengwynn has joined the channel [01:48] isaacs: (it usually accompanies its refusals with a noisy error message) [01:48] Tim_Smart: isaacs: I'm testing a joyent box. [01:48] isaacs: Tim_Smart: aha. yes. [01:48] Tim_Smart: "npm ERROR Error: `tar` failed with 1" [01:48] Tim_Smart: tar is installed though [01:48] isaacs: Tim_Smart: you have to link the /gnu/bin or whatever into your path first. [01:48] ryah: it needs to use gtar [01:48] konobi: it's solaris tar rather than gtar [01:48] isaacs: Tim_Smart: so that it runs gtar instead of just tar. [01:48] tg: konobi: that's in sf right? i'm in europe ;] [01:48] isaacs: Tim_Smart: npm assumes that tar can do gzip [01:48] Tim_Smart: ah ok [01:48] konobi: tg, ah... indeed [01:49] konobi: you could always use gzip, then tar though [01:49] isaacs: hm... you know, i could just have it just pipe gunzip in there [01:49] isaacs: konobi: right ^ [01:49] konobi: isaacs: i'm sure we could set you up with a smart machine for testing purposes [01:51] isaacs: konobi: i think ryah already gave me access to a machine he's got [01:51] mjr_: oh man, this no.de machine is actually in Oakland. No wonder it's so fast. [01:52] ryah: yeah, i get 5ms to it [01:52] lachlanhardy has joined the channel [01:52] pquerna: solaris <3 [01:53] ryah: http://knockout.no.de/ :) [01:53] deadlyicon has joined the channel [01:53] visnup: ryah: just switched the main dns [01:53] gerad: next year we have to move knockout hq to denmark [01:53] visnup: we'll see if TTLs are honored [01:53] gerad: :-) [01:53] pquerna: getting no.de is nice. [01:53] visnup: .de isn't germany? [01:54] gerad: oh [01:54] gerad: duh [01:54] ryah: close [01:54] gerad: even better [01:54] gerad: berlin! [01:54] ryah: i was thinking "so we can be closer to the v8 team?..." [01:54] micheil: aww... no redirect on http://no.de ? [01:55] visnup: no.de should redir to nodejs.org [01:55] visnup: :) [01:55] ryah: we're still setting up stuff [01:55] visnup: my opinion [01:55] konobi: k/// time for cirque [01:55] micheil: ryah: doing that through a domain name holder or something like pointhq? [01:56] ryah: yeah, something like that [01:57] micheil: ryah: might want to block the email address: clipube team on the mailing list; looks like their sending spam [01:57] micheil: something about a folder lock program [01:57] ryah: oh thanks [01:58] ryah: fucking groups [01:58] pquerna: suggest a new node.js project [01:58] pquerna: ezmlm written in node [01:59] dannycoates has joined the channel [01:59] _announcer: Twitter: "Nice! Not a single issue getting Node.js up and running and running my first hello world app!" -- Oscar Godson. http://twitter.com/oscargodson/status/22051183877 [02:00] pquerna: http://mlmmj.org/ [02:00] micheil: ryah: same with: egysat 2 [02:00] ryah: micheil: wnat to be a moderator? [02:01] micheil: sure [02:01] malkomalko has joined the channel [02:01] ryah: micheil: cool thanks [02:02] stalled has joined the channel [02:02] jacobolus has joined the channel [02:02] micheil: wow. that egysat one went to about 3 lists I subscribe to. [02:02] ryah: egysat is already banned. [02:02] pgriess has joined the channel [02:04] davidwalsh has joined the channel [02:05] micheil: isaacs: on option parsers, write it with a one-line regex :P [02:05] isaacs: micheil: it's the perl way [02:05] micheil: isaacs: did it in ruby. [02:05] aurynn: it IS the Perl way~! [02:05] micheil: :P [02:06] aurynn: The perl way is also a million ways to do it, each of them equally confusing. [02:08] micheil: something like that. http://gist.github.com/325154 [02:09] trotter has joined the channel [02:09] ehaas has joined the channel [02:11] Tim_Smart: ryah: Do these installs have a package manager of choice? [02:11] Tim_Smart: Or do I have to build everything from source... [02:11] ryah: Tim_Smart: pkgin update; pkgin install vim [02:11] Tim_Smart: Ah thanks. [02:11] rpmcb has joined the channel [02:11] ryah: docs forthcoming [02:11] victorstan has joined the channel [02:11] micheil: ryah: converting people to solaris? [02:12] micheil: or something else? [02:12] SubStack: I like option parsers that give me a hash and a list [02:12] micheil: ryah: also, I'm still thinking about how to rewrite / rework the documentation [02:13] micheil: ryah: I'm thinking possibly using a template + markdown.js or similar to convert the pages across to static pages [02:14] micheil: but the main change being in a style / design sense, so, better typography & colouring (for readability, while maintaining project branding) [02:15] dannycoates: Tim_Smart: still have problems with debugging? [02:15] Tim_Smart: dannycoates: Yeah. [02:16] Tim_Smart: I moved on, but it was still segfaulting. [02:16] dannycoates: what os? [02:16] Tim_Smart: ubuntu [02:16] _announcer: Twitter: "Let's see if @oscargodson is as good with JavaScript on the server side as he is on the front-end ;) #nodejs" -- Daniel Erickson. http://twitter.com/TechWraith/status/22052427068 [02:17] Tim_Smart: Hmm seems pkgin doesn't have libz-dev [02:17] dannycoates: with gcc 4.4 im guessing... try export GCC_VERSION=44 then rebuild node [02:18] Tim_Smart: 4.4.3 [02:18] dannycoates: the next version of v8 has a fix for that segfault 2.3.10(?) [02:18] c4milo: is there something in nodejs that depends on boost ? the c++ horrible library ? [02:19] Tim_Smart: dannycoates: Yeah I saw the commit. [02:19] _announcer: Twitter: "brainstorming ideas for the september nodejs meetup :)" -- jamescarr. http://twitter.com/jamescarr/status/22052656894 [02:20] bpot has joined the channel [02:21] pquerna: c4milo: node.js doesn't use boost [02:22] dannycoates: ACTION wishes he had more time for node projects [02:23] ajpiano has joined the channel [02:24] ryah: c4milo: god no [02:24] Tim_Smart: dannycoates: Still getting it. I think I'll just wait for the next v8 version to roll out. [02:24] Tim_Smart: ryah: Is libz-dev on pkgin? [02:24] ryah: Tim_Smart: should be installed already [02:25] ryah: /usr/lib/libz.so [02:25] jashkenas has joined the channel [02:25] dannycoates: Tim_Smart: sorry dude [02:25] ryah: /usr/include/zlib.h [02:26] Tim_Smart: ryah: Yeah my bad. I didn't read the npm output carefully :) [02:26] c4milo: ryah: I was hoping that :) thanks god :P [02:27] rpmcb has joined the channel [02:29] Dmitry1 has joined the channel [02:29] _announcer: Twitter: "@jtimberman man oh man... it's been too long since I've worked with chef. Is there any nodejs related recipes yet?" -- jamescarr. http://twitter.com/jamescarr/status/22053396366 [02:29] c4milo: what is the stable version of node-jake ? [02:29] c4milo: anybody knows ? [02:30] jashkenas: ryah: as seen on the mailing list, would you be willing to bless one of the option parsing modules, and pull it into core? [02:30] jashkenas: I'd love to throw my homebrew one away. [02:32] ryah: jashkenas: hm [02:32] ryah: jashkenas: yeah perhaps [02:32] ryah: but i want to punt the discussion until next week, if that's okay [02:32] jashkenas: needn't be anything fancy, just something we can all use without having to go dependency-hunting. Thanks for considering it. [02:34] creationix: mikeal: you there? [02:34] ryah: jashkenas: yeah, i agree [02:34] ryah: jashkenas: pretty useful thing for everyone [02:34] ryah: including node itself, possibly [02:35] jashkenas: (and for consistency in option style across node programs) ... allowed after args, or not, --option arg or --option=arg, or both, etc. [02:35] cloudhead: are event listeners always called in the order they were added? [02:36] jashkenas: cloudhead: i've asked that question before, and heard "yes"... but can't testify to it. [02:36] cloudhead: hmmm ok [02:36] cloudhead: that would simplify my life [02:38] pquerna: i'd consider it an implementation detail, rather than a hard guarantee [02:38] ryah: cloudhead: yes [02:38] ryah: but i agree with pquerna, that relying on it is a mistake [02:38] cloudhead: ok [02:38] cloudhead: hmm [02:39] jashkenas: pquerna: If we're valuing events over threads because of their predictability, then having the order of events be deterministic seems like a feature, no? [02:39] ryah: dom events are specified to have order [02:39] pquerna: jashkenas: well, right now they are predictable because they are stored in an array or list [02:39] jashkenas: If the events are causing side effects, the order could be critical, and for good reason. [02:40] wilmoore has joined the channel [02:40] pquerna: jashkenas: but if the storage of the callbacks was in a hash table to make removal more efficeint for example [02:40] pquerna: the order would be more random [02:40] pquerna: plus, if order is important, you could build it on top of event emitter [02:40] jashkenas: pquerna: understood. I'm just trying to argue that keeping 'em in-order is a feature that we should appreciate. [02:41] cloudhead: yea, it would be nice to be able to rely on it [02:41] jashkenas: I'm sure there's plenty of Node code out there that already does ;) [02:42] Validatorian has joined the channel [02:42] matt_c has joined the channel [02:44] eisd has joined the channel [02:44] _announcer: Twitter: "LOL 3 days to go for @node_knockout and I haven't thought of what I'm going to try and make! Worse I haven't yet tried out node.js enough!" -- Rohit Arondekar. http://twitter.com/rohitarondekar/status/22054517201 [02:44] eisd: what's the node.js equivalent of window.onerror = function(){ return false }; ? [02:44] eisd: s/return false/return true [02:45] danielzilla: eisd: http://nodejs.org/api.html#event-uncaughtexception-54 maybe? [02:46] eisd: ACTION checks [02:47] eisd: danielzilla: works like a charm, thanks [02:48] danielzilla: eisd: I saw a warning about that the other day, like you need to be careful as it might leave you in a weird state. Trying to find the mention in the logs... [02:48] rauchg_ has joined the channel [02:49] danielzilla: eisd - Found it: http://nodejs.debuggable.com/2010-08-23.txt at ~18:26ish. [02:49] danielzilla: Maybe useful information. [02:49] Tim_Smart: rauchg_: Hey. [02:49] eisd: danielzilla: thanks, just needed it to keep my server up and running [02:50] danielzilla: ACTION nods. [02:50] zapnap has joined the channel [02:52] micheil: ryah: an option parser would go hand in hand with that NODE_ENV / --env flag [02:52] phound: What's the proper way to start a bunch of async operations at once and be notified when they've all completed? [02:53] jashkenas: phound: keep count of how many you have left, and have each decrement the counter by one. fire a callback when it hits zero. [02:53] phound: No common function to do that already though? [02:53] phound: Seems like it'd be common enough [02:53] micheil: phound: or use something like Step [02:53] micheil: (module) [02:54] jashkenas: phound: there are libraries for it, if you like. but not a built-in function. [02:54] phound: k, thanks [02:54] phound: Step looks like it'll work [02:54] rpmcb has left the channel [02:58] visnup has joined the channel [03:00] mr_daniel has joined the channel [03:04] russell_h: will http.SererRequest or http.ServerResponse ever emit an 'error'? [03:04] russell_h: Server, even [03:05] hammerdr has joined the channel [03:06] lachlanhardy has joined the channel [03:07] _announcer: Twitter: "Building with #nodejs along with the latest @peepcode screencast" -- Stephen Wyatt Bush. http://twitter.com/wyattdanger/status/22056082440 [03:08] Tim_Smart: ryah: Can't get node-compress to build :/ [03:09] Tim_Smart: https://gist.github.com/45be4bcbdea9c32457c0 [03:09] jamescarr has joined the channel [03:09] ajpiano has joined the channel [03:09] Tim_Smart: Builds fine with no warnings or anything on Ubuntu (except for one in eio, with -ansi and -pedantic) [03:11] benburkert has joined the channel [03:11] rauchg_ has joined the channel [03:11] jamescarr: I've been thinking... it's totally possible to create an xmpp server written in node.js isn't it? [03:11] jamescarr: not a client, but an actual server [03:11] Tim_Smart: jamescarr: Why wouldn't it be? [03:11] russell_h: yeah, if you felt like doing that... [03:11] matt_c: jamescarr: yeah it's a lot of XML stuff but node would be a good fit. [03:12] _announcer: Twitter: "Interesting lecture by the @ # nodejs emerleite mandatory for anyone who wants to climb a web app. http://bit.ly/9AZHme" [pt] -- Marcos Sousa. http://twitter.com/marcos_sousa/status/22056433468 [03:12] Tim_Smart: jsdom probably isn't per-formant enough for heavy XML work. [03:13] jamescarr: Tim_Smart, surely there must be some quick way to parse the xml... [03:13] Tim_Smart: libxmljs or whatever should be fine. [03:13] ryah: Tim_Smart: bbl - figure it out hten [03:13] jakehow has joined the channel [03:13] matt_c: Just using ejabberd would probably be a better option :) [03:13] Tim_Smart: ryah: No problems :) [03:13] ncb000gt has joined the channel [03:13] jamescarr: matt_c, then it wouldn't be a pure node.js server ;) [03:14] matt_c: jamescarr: Indeed, but I believe there's lots of "not fun to implement" in putting together an XMPP server. [03:14] Tim_Smart: jamescarr: http://github.com/polotek/libxmljs [03:14] matt_c: the core spec is an RFC + a bunch of XEPs that servers are expected to implement these days [03:15] ncb000gt: anyone using websocket-server, the latest in npm, 1.3.03? [03:17] ncb000gt: matt_c: there are a few xmpp projects out there but most of them only half implement parts of features and likely haven't been checked with specs :) [03:17] ncb000gt: although I'd be happy to see otherwise [03:17] matt_c: ncb000gt: Yeah. It'd be awesome to see a node-powered XMPP server but it's a ton of work to do right. [03:20] micheil: why on either would you use XML to represent messages? [03:20] ncb000gt: matt_c: it looks like http://github.com/astro/node-xmpp might be on it's way there though [03:20] micheil: it's so.. ugh to parse xml at times. [03:20] micheil: (json ftw.) [03:20] ncb000gt: micheil: because adding bloat to the tubes is what makes the cable companies happy [03:24] aurynn: Is there a concise way to replace all /pattern/ in a string with an incrementing value, short of using a for loop? [03:25] zomgbie has joined the channel [03:26] jashkenas: aurynn: use string.replace with a function argument. [03:26] aurynn: for the "replace" value? [03:26] aurynn: I can do that? [03:27] aurynn: oh my god I can [03:27] aurynn: Win. [03:27] aurynn: Thank you :) [03:28] matt_c has joined the channel [03:28] jashkenas: no problem. the function is invoked for each match to be replaced if it's a global regex... [03:28] jashkenas: you get all of the parenthesized groups as parameters. [03:28] aurynn: That's quite lovely [03:28] jashkenas: As well as the offset into the string where the match occurred. [03:28] jashkenas: yeah, it's great. [03:28] _announcer: Twitter: "Tonight I think will be #coffeescript flavored #express #nodejs for work-desert" -- Tim Dysinger. http://twitter.com/dysinger/status/22057529040 [03:29] jashkenas: I'd link you to MDC, but it's down right now. [03:30] jamescarr: man... I wonder if crowdvine has some kind of api [03:30] v8bot has joined the channel [03:30] aurynn: I'll check my copy of JS: The Good PArts for that [03:30] aurynn: since that's a gorgeous bit of API [03:32] keeto has joined the channel [03:35] v8bot has joined the channel [03:35] joshbuddy has joined the channel [03:36] joshbuddy has joined the channel [03:39] polotek has joined the channel [03:41] siculars has joined the channel [03:42] Tim_Smart: Who does v8bot belong to? [03:42] jamescarr: heh... I always accidentally go to node.js instead of nodejs.org [03:45] polotek: jamescarr: unfortunately there is no country or other sovereign entity that starts with a J and includes an s somewhere [03:45] eisd: Tim_Smart: me, and I used your irc library :P [03:45] eisd: Tim_Smart: you're in the credits [03:45] eisd: `v about @ Tim_Smart [03:45] v8bot: Tim_Smart: v8bot is an IRC bot written entirely in Javascript by eisd using Google's v8 Javascript engine and Node.js. Credits: Tim_Smart, gf3, MizardX [03:45] Tim_Smart: Oh right. [03:45] Tim_Smart: What does it fo? [03:46] Tim_Smart: *do [03:46] eisd: Well, a lot [03:46] eisd: v8: var x = 10; x + 20 [03:46] v8bot: eisd: 30 [03:46] eisd: `v google test @ Tim_Smart [03:46] v8bot: Tim_Smart: Test.com Web Based Testing and Certification Software v2.0 - http://www.test.com/ [03:46] eisd: `v macro test = (function(){ return "Custom macros with full JS execution support" })() [03:46] v8bot: eisd: Saved macro "test." Type `v test to execute. [03:46] eisd: `v test [03:46] v8bot: eisd: Custom macros with full JS execution support [03:47] mattikus has joined the channel [03:47] eisd: v8: while(true); //Sandboxed code [03:47] v8bot: eisd: Error: Timeout [03:48] Tim_Smart: v8: arguments [03:48] v8bot: Tim_Smart: ReferenceError: arguments is not defined [03:48] Tim_Smart: :p [03:48] eisd: v8: (function(){ return arguments })(1,2,3) //Tim_Smart [03:48] v8bot: eisd: {"0": 1, "1": 2, "2": 3} [03:48] jamescarr: shit [03:49] Tim_Smart: eisd: Was seeing if I could escalate privileges. [03:49] jamescarr: is there someway to follow redirects with http client? [03:49] eisd: Tim_Smart: Ah [03:50] jashkenas has left the channel [03:51] jamescarr: I'm trying to pass user creds to a login form on an external site that redirects users to the home page :( [03:52] jamescarr: I'd like to scrape that home page to see if they're logged in... the cookie set by the server is no help :( [03:52] _announcer: Twitter: "Announcing a simple, fun CouchDB client for #nodejs http://github.com/creationix/couch-client" -- Tim Caswell. http://twitter.com/creationix/status/22059057582 [03:52] polotek: jamescarr: mikeals request module follows redirects [03:52] polotek: the http module isn't that high level [03:52] polotek: you have to do it yourself [03:53] creationix: speaking of http, I have a simple requester in the couchdb lib I just posted [03:53] creationix: no redirects though [03:53] jamescarr: thanks I'll take a look... is it on github? [03:53] eisd: Tim_Smart++ [03:53] v8bot: eisd has given a beer to Tim_Smart. Tim_Smart now has 1 beers. [03:53] creationix: http://github.com/creationix/couch-client [03:53] polotek: jamescarr: npm install request [03:53] eisd: Tim_Smart: and that too :P [03:53] micheil: creationix: do you have anything that uses the http origin header at all? [03:53] creationix: micheil: not that I know of [03:53] jamescarr: creationix, do'h! ANOTHER couchdb client? :) [03:53] creationix: hehe [03:54] polotek: creationix: I like the Pattern proto stuff much better than the previous experiments [03:54] micheil: creationix: k. Just about to fix up the one in node-websocket-server [03:54] jamescarr: there's only like 80 of those [03:54] creationix: jamescarr: mine does automatic batching with 0 latency [03:54] creationix: but not much more than that [03:54] creationix: it's pretty minimal [03:54] creationix: polotek: thanks [03:54] micheil: creationix: hmm.. you posted much to the TCL blog? [03:55] creationix: micheil: I should post more [03:55] micheil: I'm just working through my list of repo's and projects to post about. [03:55] blogometer has joined the channel [03:56] jamescarr: micheil, will I still need to querystring.stringify my post object with request? [03:57] micheil: jamescarr: ? [03:57] polotek: jamescarr: no, I think it does it for you [03:57] jamescarr: I think I have you mixed up with mikeal [03:57] micheil: probably. [03:57] jamescarr: polotek, ah... at least I dont have to set the Content-Length header [03:58] jamescarr: that part is always a bother [03:59] ncb000gt: polotek: that's nice to know. I'm going to have to look at that request module then. :) [03:59] jamescarr: polotek, thanks! [04:00] jamescarr: I just did what I needed to do [04:00] polotek: eventually there will be more high level http functions in the http module [04:00] polotek: but they're still being hashed out [04:03] jamescarr: is there someway to capture cookies that are set??? [04:03] jamescarr: looks like following the redirect doesnt work cuz the cookie is lost [04:04] Blink7 has joined the channel [04:04] emilio has joined the channel [04:05] jamescarr: hmmm [04:05] jamescarr: in that case, is there anyway to get the cookie that is set? [04:06] jamescarr: using the http client [04:06] polotek: jamescarr: if request doesn't handle it you might have to capture it yourself on the first request [04:06] polotek: before it redirects [04:06] polotek: jamescarr: I believe there are some cookie modules, never used any [04:07] jamescarr: yeah [04:07] jamescarr: I didnt see much in the headers for that... just a set cookie field but no cookie data [04:07] mjr_: This Node Knockout business is really getting some great content published on working with node. [04:08] polotek: mjr_: agreed [04:08] mjr_: The blog post content ratio is incredibly high. [04:08] Tim_Smart: There are some pretty awesome prizes. [04:08] polotek: still not enough on the basics of streams and http though [04:08] raymorgan has joined the channel [04:08] polotek: I was going to do that [04:08] polotek: but never got around to it [04:08] mjr_: I know, I keep meaning to do that as well. [04:08] mjr_: I have all of these ideas about doing a node documentation project [04:09] mjr_: But I don't have time for that sort of craziness. [04:09] mjr_: I think it'd really help newcomers get up to speed though. The current docs are pretty difficult to approach. [04:09] mscdex: node.js rules! [04:10] polotek: mjr_: I keep getting distracted with my couple of other libs [04:10] polotek: and now node KO [04:10] mjr_: Are you on a team for KO? [04:10] tango3 has joined the channel [04:11] mscdex: i wish there was a fancy gui app to let me do site-to-site sftp/scp stuff, especially directory diffs [04:11] mscdex: :S [04:11] mjr_: mscdex: that sounds like a wonderful KO project [04:11] mjr_: Maybe using a fuse binding or something awesome like that. [04:12] mjr_: Sprinkle in some ncurses [04:12] mjr_: Add some twitter [04:12] mjr_: Boom! [04:12] jamescarr: thanks [04:12] jamescarr: now I have a good idea for Node KO [04:12] jamescarr: :) [04:12] jamescarr: jk [04:12] overra has joined the channel [04:13] jamescarr: the idea I came up with for my team to do is super duper lame [04:13] ncb000gt: ncurses makes the baby jesus cry [04:14] JimRoepcke has joined the channel [04:15] mscdex: why does it make him cry? [04:16] gerad has joined the channel [04:17] polotek: mjr_: yeah I'm on a KO team [04:17] polotek: with ncb000gt [04:17] polotek: and this other loser who never show sup in the channel [04:18] ncb000gt: yep. [04:18] steadicat has joined the channel [04:19] ncb000gt: in terms of ui, ncurses doesn't do much for me. don't fake being a gui lib, give me real windows and such. [04:20] mscdex: how is faking it? [04:20] mscdex: s/is/is it/ [04:21] ncb000gt: It's not exactly faking it, but I have to open a terminal to use the apps. [04:21] mscdex: correct, it's a graphical interface for the terminal. [04:21] mscdex: :S [04:22] ncb000gt: That's fine if I don't have something like X, but when I do, and when I have a WM (most of the time), I'd prefer to use the WM's layout [04:22] ncb000gt: mscdex: aye, I know that. [04:22] ncb000gt: It certainly has it's place [04:22] ncb000gt: And, I was being way over-dramatic about ncurses [04:23] mjr_: curses is great because everybody can use it pretty much [04:23] mjr_: It's like the lowest common demoninator [04:23] polotek: at this point I don't know why anyone would prefer to use any moderately complex UI from a terminal [04:23] polotek: mjr_: I think we can raise the lcd a bit [04:23] sh1mmer has joined the channel [04:23] mscdex: i know there's at least several people in here that use irssi and the like [04:24] ncb000gt: mjr_: I doubt that "anyone" can use a terminal based ui. [04:24] polotek: mscdex: yes, and I fear for their sanity [04:24] mjr_: polotek: one reason is access control. You might only be able to ssh into some computer, and terminal stuff just works. [04:24] mjr_: And there's also screen/tmux [04:24] ncb000gt: mscdex: I use irssi... /duck [04:24] mscdex: ! [04:24] ncb000gt: hahaha [04:24] polotek: mjr_: you shouldn't need to use any complex ui on a server that only let's you ssh [04:24] tpryme has joined the channel [04:24] _announcer: Twitter: "@RickStrahl it will all be there in JS too with the node.js ecosystem." -- James Avery. http://twitter.com/averyj/status/22061037356 [04:25] mjr_: I use mtr from the command line all the time. [04:25] mjr_: It's a curses program. [04:25] polotek: the real problem I have ncurses ui is it's usually design awfully [04:25] polotek: impossible to figure out how to get around in it [04:25] mjr_: But I take the point that most things like this are moving or have moved to some sort of web-based UI. [04:25] mscdex: polotek: that's not the fault of ncurses, but of the application using it [04:25] mjr_: I guess mtr, top, and tmux are all I use. [04:25] polotek: and depending on your terminal, half the keyboard commands dont wrk [04:26] polotek: mscdex: agreed, that doesn't make me less irritated [04:26] polotek: it's a tool that's difficult to use effectively [04:26] jamescarr: okay... I'm trying to make a get request to a uri that I can download a csv file from and keep getting this error... [04:26] polotek: I would rather people skip it [04:26] _announcer: Twitter: "@averyj Although I'd love to see a port of node.js to Windows. Sadly, I'm not nearly a good enough C++ programmer to do it or help" -- Scott Koon. http://twitter.com/lazycoder/status/22061124115 [04:26] mscdex: links uses ncurses pretty well [04:26] jamescarr: http://gist.github.com/548854 [04:26] jamescarr: any ideas whats up? [04:27] wang_: james: module pathing issue? [04:27] jamescarr: just doing a request({uri:'someuri'}, fn(){}) [04:27] jamescarr: hmmm dont see why... tried it with the plain http module, same issue [04:27] jamescarr: works for everything else [04:28] ncb000gt: jamescarr: how are you doing your require? [04:28] mjr_: jamescarr: that's an error during require [04:28] ncb000gt: var request = require(); [04:29] ncb000gt: var request = require("/path/to/lib"); or just require("lib"); if you're using something like npm [04:29] _announcer: Twitter: "My article on Socket.IO for the node knockout competition http://j.mp/c6797W #websocket #realtime #node.js" -- Guillermo Rauch. http://twitter.com/rauchg/status/22061289506 [04:29] jamescarr: just require('request') ... it works for other things [04:29] polotek: jamescarr: when was the last time you updated your npm? [04:29] jamescarr: the require isnt where the exception gets thrown [04:29] polotek: might be a problem with the paths [04:29] jamescarr: the line where the request is made gets thrown [04:30] jamescarr: this also happens with just using the http module too [04:30] jamescarr: but only for this url! :( [04:30] ncb000gt: hmm [04:30] polotek: jamescarr: ah [04:30] polotek: no idea about that :) [04:30] polotek: jamescarr: gist some code [04:31] ncb000gt: i'm out, later [04:31] jamescarr: oh I am dumb [04:31] Tim_Smart: Wow. Mozilla are really hammering away at Jagermonkey http://arewefastyet.com/ [04:32] junkee[] has joined the channel [04:32] jamescarr: nvm [04:32] jamescarr: I screwed up on a require :S [04:34] mjr_: Tim_Smart: neat link [04:34] mjr_: I love the arms race for JavaScript supremacy. [04:34] jamescarr: http://github.com/koles/ya-csv is whats causing me grief on the require [04:34] jamescarr: hmmm [04:36] jamescarr: is there something wrong with his package.json? [04:36] jamescarr: http://github.com/koles/ya-csv/blob/master/package.json [04:36] lachlanhardy has joined the channel [04:36] jamescarr: have to do require('ya-csv/ya-csv') for it to work [04:36] jamescarr: I think he's missing his main script declaration [04:36] Tim_Smart: Yeah, [04:37] joshbuddy_ has joined the channel [04:37] jamescarr: hmmm... I'll fork and fix that [04:42] icozzo has joined the channel [04:42] joshbuddy_ has joined the channel [04:43] polotek: okay, I'm out [04:43] jamescarr: wait [04:43] jamescarr: one sec... [04:43] polotek: me? [04:44] jamescarr: what is passed as part of the responseBodyStream arg in request? :) [04:44] jamescarr: sorry, I mean [04:44] jamescarr: responseBodyStream [04:44] v8bot has joined the channel [04:44] polotek: jamescarr: it's a writable stream. request will pump the response into it [04:44] polotek: so for instance you could pass an open file stream [04:45] polotek: and it would write the response to a file [04:45] jamescarr: thanks [04:47] EyePulp has joined the channel [04:47] polotek: cheers [04:47] polotek has left the channel [04:49] austinfromboston has joined the channel [04:50] _announcer: Twitter: "Grandma node.js. You'll see a little bit. http://nodejs.org/" [ja] -- soushi. http://twitter.com/_so4/status/22062504308 [04:51] sudoer has joined the channel [04:52] blogometer has left the channel [04:54] mscdex: now that's not fair, node.js isn't old enough yet to be calling it grandma! [04:54] ryan[WIN] has joined the channel [04:54] danielzilla: mscdex: You misunderstand. It's a shout-out to all the old biddies to get their async on. [04:59] benburkert has joined the channel [05:00] mjr_: Hey, creationix made a couchdb client. Are there like 4 couchdb clients now? [05:00] mscdex: probably 4 times that [05:01] mscdex: same with frameworks :P [05:02] mscdex: couchdb potatoes! [05:03] Apage43 has joined the channel [05:03] isaacs has joined the channel [05:04] teemow has joined the channel [05:10] creationix has joined the channel [05:15] hassox has joined the channel [05:20] meso has joined the channel [05:24] jspiros has joined the channel [05:25] _announcer: Twitter: "@ryah Could node.js really handle 500k simul clients?" -- Chuck Vose. http://twitter.com/vosechu/status/22064361368 [05:27] isaacs: jamescarr: yeah, that irks me. i should make that be better about that [05:27] isaacs: er, was scrolled back.. [05:27] isaacs: that ya-csv/ya-csv [05:27] isaacs: npm should sniff that out and turn name/name into a main script, if one exidsts [05:28] jamescarr: isaacs, yeah, I was thinking that too [05:28] isaacs: jamescarr: it's actually not hard to do in the next version. [05:28] isaacs: ACTION back to hacking [05:30] tango3 has joined the channel [05:30] _announcer: Twitter: "@robconery ok, interesting, but why do you need JS for that? I mean other than Node.js does it. :)" -- Bertrand Le Roy. http://twitter.com/bleroy/status/22064604960 [05:32] hassox: allo folks [05:32] confoocious has joined the channel [05:35] dnolen has joined the channel [05:36] _announcer: Twitter: "@vosechu one node.js process can hold on to about 120k connections. You can run 1 process per core, but your kernel will soon become sad." -- Matt Ranney. http://twitter.com/mranney/status/22064873311 [05:37] austinfromboston has joined the channel [05:40] confoocious has joined the channel [05:41] ryah: Tim_Smart: ping [05:43] SamuraiJack has joined the channel [05:45] junkee[]: pong [05:45] isaacs: jamescarr: http://github.com/isaacs/npm/commit/3447a3f7f80ea7245e753f36395759e5aabb54eb [05:46] stagas__ has joined the channel [05:52] _announcer: Twitter: "Web Playing with bleeding edge web technologies — node.js & MongoDB ... http://bit.ly/an3fGQ" -- Dhaneesh. http://twitter.com/dhanu88/status/22065650269 [05:53] v8bot has joined the channel [05:53] jbr_ has joined the channel [05:54] joshbuddy has joined the channel [05:55] amerine has joined the channel [05:56] ph^ has joined the channel [06:03] _announcer: Twitter: "anyone wanna help me test my node.js backgammon? http://backgammon.stagas.com" -- George Stagas. http://twitter.com/stagas/status/22066163691 [06:08] [[zz]] has joined the channel [06:10] mjr_: I thought I had some kind of memory leak, but after giving V8 a good long while to think about it, GC seems to have reclaimed almost everything again. [06:10] mjr_: There is some serious magic going on in there. [06:14] hassox has joined the channel [06:17] _announcer: Twitter: "@mdempsky @dreid IMO node.js has advanced so much in the overzealous fanboy club at this point that Erlang pales in comparison" -- Eric Florenzano. http://twitter.com/ericflo/status/22066811608 [06:17] _announcer: Twitter: "couldn't sleep therefore been hacking up a reverse SSL proxy in nodejs; it even supports client certificate verification! Tea required! #fb" -- Daniel B. http://twitter.com/DanBUK/status/22066836845 [06:21] wilmoore has joined the channel [06:23] sveimac has joined the channel [06:29] mikedeboer has joined the channel [06:30] jamescarr: what a long night [06:30] jamescarr: sheesh [06:32] eisd has left the channel [06:33] Throlkim has joined the channel [06:41] gerad has joined the channel [06:42] micheil: gerad: ping [06:43] gerad: yo [06:43] _announcer: Twitter: "@stilkov re: node.js db driver: This seems to be considerable option for MySQL. http://bit.ly/aoEYr5" -- Hermanni Hyytiälä. http://twitter.com/hemppah/status/22067966161 [06:43] micheil: hey [06:43] micheil: gerad: as in KO? [06:43] gerad: micheil: yep [06:43] micheil: sweet. [06:43] creationix has joined the channel [06:43] gerad: micheil: what's up? [06:44] crohr has joined the channel [06:44] micheil: gerad: pm'd [06:54] zomgbie has joined the channel [06:54] freeall has joined the channel [06:58] _announcer: Twitter: "Ryan Dahl: “Introduction to NodeJS” (58 min Video.) http://bit.ly/intronodejs" -- Francisco Reyes. http://twitter.com/pacorro2000/status/22068612689 [07:01] _announcer: Twitter: "Video: Node.js by Ryan Dahl - JSConf.eu - 2009 http://bit.ly/9kRBBr" -- Francisco Reyes. http://twitter.com/pacorro2000/status/22068755675 [07:03] JimRoepcke has joined the channel [07:04] _announcer: Twitter: "With node.js all you need is an idea: 2 web apps and a node util in 2 weeks http://bit.ly/a9snVR http://bit.ly/cV8Wz1 http://bit.ly/b3CZwB" -- George Stagas. http://twitter.com/stagas/status/22068867833 [07:07] alecmuffett has joined the channel [07:15] paulwe has joined the channel [07:16] paulwe_ has joined the channel [07:17] mape: stagas: really neat :) [07:17] stagas__: mape: thanx :) [07:19] mape: stagas__: some issue with the textarea overlaying and blocking movement [07:19] mape: but other then that really nice [07:20] mape: stagas__: Doing something similar for the knockout? :) [07:20] stagas__: mape: maybe because I have an interval doing .focus() on the textarea [07:20] crohr has joined the channel [07:20] mape: oh k [07:20] mape: why interval? you press return to enter that mode? [07:21] stagas__: mape: I have a few ideas but I haven't decided yet [07:21] stagas__: for the KO [07:21] mape: yeah wondering what kinda stuff will come out of the knockout [07:21] mape: Haven't really followed any other contest with the same premise, not sure of what the quality is like [07:22] stagas__: is it bad if I reuse some existing code for the knockout? [07:22] mape: Not sure, I have a boilerplate setup I use for all my projects that I plan on putting on github today [07:22] mape: Using libs is ok so I assume it is ok as long as it isn't the final solution [07:23] stagas__: hehe I thought of that too, make the code a module so it'll be ok [07:23] stagas__: :P [07:24] mape: Mine is just basicly express with my asset manager and some good to have copy paste code [07:24] mape: So don't think people will mind [07:24] mape: And if they do I won't mind much if I get disqualified, fun to code no the less [07:27] stagas__: yeah I plan on reusing some stuff so it'll be almost copy paste but JS is about all that, reusing code I mean [07:27] zemanel has joined the channel [07:30] stagas__: I just have no idea how to use joyent and heroku and all that [07:32] mape: Will be articles [07:33] zomgbie has joined the channel [07:34] Tim_Smart has joined the channel [07:34] tableton has joined the channel [07:34] stagas__: they should have had a tool like npm and just do something like 'ko publish .' and upload your app with its dependencies [07:35] stagas__: the bad thing is I'll be spending time to figure out that stuff instead of working on my project which sucks [07:35] rnewson has joined the channel [07:35] rnewson has joined the channel [07:35] isaacs: stagas__: i had hoped to get that done in npm before knockout but other things got in the way [07:36] _announcer: Twitter: "http://nodejs.facing-dtrydays," -- mahatabot. http://twitter.com/mahatabot/status/22070242289 [07:37] stagas__: isaacs: yeah I saw an article somewhere about npm and knockout and thought that was that before reading it [07:37] stagas__: isaacs: I was counting on you :P [07:37] _announcer: Twitter: "Would like to write a dedicated #xmpp server based on node.js. Interested? #node #nodejs" -- stefan strigler. http://twitter.com/zeank/status/22070283017 [07:38] isaacs: yeah, i have this thing about deadlines. i try to use them only as much as they're useful, and otherwise, focus on having fun making something good. [07:38] fliebel has joined the channel [07:38] _announcer: Twitter: "Node.js on Heroku の制限きついよなー。 NodeKnockout どうしよう http://nodeknockout.posterous.com/countdown-to-knockout-post-8-deploying-to-her" -- Toshihiro Shimizu. http://twitter.com/meso/status/22070323622 [07:38] isaacs: the best successes aren't something you push yourself into, they're something that pulls you in. [07:39] virtuo has joined the channel [07:40] jelveh has joined the channel [07:40] SvenDowideit has joined the channel [07:41] devinus has left the channel [07:44] codetonowhere has joined the channel [07:44] creationix: how do I use http.Client's keepalive? [07:46] joshbuddy has joined the channel [07:47] javajunky has joined the channel [07:48] creationix_ has joined the channel [07:50] tobiassjosten has joined the channel [07:50] mikedeboer has joined the channel [07:54] aubergine_ has joined the channel [07:55] pdelgallego has joined the channel [07:56] Tim_Smart: creationix_: Look at the list of special headers http://nodejs.org/api.html#http-client-184 [07:57] creationix_: thanks [07:59] solidsnack has joined the channel [07:59] ph^ has joined the channel [08:02] proppy has joined the channel [08:02] jbr_ has joined the channel [08:02] proppy: hop [08:03] proppy: is there a way to run a single test-file.js in node test suite ? [08:05] _announcer: Twitter: "I just added connection pooling and an interface to the _changes feed in http://github.com/creationix/couch-client #nodejs #couchdb #live" -- Tim Caswell. http://twitter.com/creationix/status/22071402947 [08:05] creationix_: proppy: just run the js file directly [08:05] proppy: creationix_: it will run the test against installed node [08:05] proppy: not the working directory one [08:05] proppy: (IIRC) [08:05] creationix_: using the node in build/default [08:06] creationix_: just specify the path to the just compiled node [08:06] proppy: oh ok :) [08:06] Tim_Smart: ./node test/simple/... [08:06] proppy: creationix_: nice and obvious thanks :) [08:06] proppy: Tim_Smart: thanks too [08:06] proppy: creationix_: does ./node will use stuff from ./lib too ? [08:07] Tim_Smart: proppy: Everything is statically compiled into the binary. [08:07] creationix_: proppy: node looks for libraries relative to itself [08:07] proppy: oh ok [08:07] creationix_: though the stuff in node's source is embedded in the binary itself [08:07] proppy: so ./lib/readline.js will be used [08:08] proppy: I didn't know that thanks [08:08] creationix_: so you need to rebuild every time you change lib/readline.js [08:08] Tim_Smart: Yup. [08:08] mikedeboer has left the channel [08:08] proppy: \looking forward adding meta-d support to readline [08:09] Tim_Smart: creationix_: Was just thinking, it would be nice to separate middleware from connect into some sort of repository. [08:09] Tim_Smart: Then users can pick a DSL seperate from the middleware. [08:09] creationix_: Tim_Smart: not a bad idea [08:09] creationix_: that would encourage reuse I think [08:10] Frans-Willem has joined the channel [08:11] Tim_Smart: creationix_: I'm pretty sure the majority of connect middleware I can use with biggie-router, which is cool. [08:11] creationix_: nice [08:12] Tim_Smart: I haven't played with it yet though, something for the weekend me thinks. [08:14] satori_ has joined the channel [08:19] confoocious has joined the channel [08:19] confoocious has joined the channel [08:19] aubergine has joined the channel [08:20] Tim_Smart: creationix_: You starting another couchdb client? [08:20] creationix_: yep, for an internal project [08:20] creationix_: nStore is taking too long to get stable [08:21] Tim_Smart: Oh cool. Couchdb clients are one thing node isn't short of ;) [08:22] creationix_: yeah, I figure it's a good way to learn couch [08:22] _announcer: Twitter: "メモ: node.js Jakarta Commons Cookbook Scala slim3 ChromeOS" [af] -- sasa+1. http://twitter.com/sasaplus1/status/22072098256 [08:22] creationix_: and test more of node's http client [08:22] proppy: it would be nice if bot announce mailing list post :) [08:22] Tim_Smart: proppy: It already sends enough messages :p [08:22] _announcer: Twitter: "adding support for meta-d in #nodejs repl http://github.com/proppy/node/commit/b7b8bec91cc31254471d625f8caa47ab8437399b" -- proppy. http://twitter.com/proppy/status/22072128602 [08:23] proppy: creationix_: thanks for the run a single test trick :) [08:23] creationix_: proppy: you're welcome [08:24] Tim_Smart: I would love to give riak a test sping. [08:24] Tim_Smart: s/sping/spin/ [08:25] rnewson has joined the channel [08:26] confoocious has joined the channel [08:27] felixge has joined the channel [08:27] felixge has joined the channel [08:27] pufuwozu has joined the channel [08:27] Tim_Smart: freeall: Did you get in touch with felixge? [08:28] felixge: Tim_Smart: haven't heard from him [08:28] Tim_Smart: felixge: He had a question about file upload performance. [08:31] felixge: Tim_Smart: performance? [08:31] Tim_Smart: felixge: Mainly CPU usage. [08:32] felixge: Tim_Smart: oh right. Well, it's a non-issue unless you have a network that does 500 megabyte / sec upstream [08:32] felixge: Tim_Smart: in that case you'd max out 1 core on my macbook pro ;) [08:32] Tim_Smart: Node was using 7% CPU for a single file upload, compared to a Java app using <1% CPU over a 10mbit connection. [08:33] Frans-Willem: Hmm, how do you profile node again? there used to be some command line to have it dump something, then another to turn that into a profile output [08:33] Tim_Smart: Frans-Willem: node --prof app.js [08:33] Tim_Smart: http://code.google.com/p/v8/wiki/V8Profiler [08:34] felixge: Tim_Smart: shrug. Java might be buffering the whole upload to disk and only parse it at the end. [08:34] tango3 has joined the channel [08:34] felixge: Tim_Smart: anyway, I'll be around in case freeall shows up ;) [08:34] Tim_Smart: felixge: I think it is a combination of the current Buffer implementation, and the thread pool, which ryah pointed out as well. [08:35] felixge: Tim_Smart: you mean the thread pool for writing files? [08:35] Tim_Smart: felixge: That listens to the socket. [08:35] felixge: Tim_Smart: there is no thread pool for listening to a socket afaik [08:35] felixge: Tim_Smart: only disk stuff is done via threads [08:35] Tim_Smart: Yeah, sorry, I'm mixed up atm. [08:36] felixge: Tim_Smart: what's going on with buffer implementation, what does ryah not like about it? [08:36] felixge: I would *love* faster buffers :) [08:36] xla has joined the channel [08:37] Tim_Smart: felixge: ObjectWrap and creating external objects turns out to be quite expensive, so the idea was to create a memory pool to avoid creating many small allocations. [08:37] Tim_Smart: It turns out to be 30x faster for small buffers. [08:37] Tim_Smart: Not sure if that will affect file uploads however. [08:37] felixge: Tim_Smart: so buffers suck in the real world where you have tons of small buffers? [08:37] felixge: Tim_Smart: it would effect pretty much all network parsing :) [08:38] felixge: Tim_Smart: so that'd be great news for node-mysql as well [08:38] satori_: Node uses large buffers as pools for smaller buffers internally anyway doesn't it? [08:38] Tim_Smart: satori_: Not yet. [08:38] felixge: Tim_Smart: But re-using buffers is tricky, ideally you would only re-use a buffer that has no more references to it [08:38] satori_: I remember seeing node js code in dgram that uses some sort of buffer pooling [08:39] Tim_Smart: felixge: I was working on getting a working version here http://github.com/Tim-Smart/node/compare/fast-buffer#diff-0 [08:39] Tim_Smart: Atm it breaks the http parser for some reason. [08:39] Tim_Smart: Probably a bit over my head for now. [08:39] joshbuddy has joined the channel [08:41] caolanm has joined the channel [08:41] Frans-Willem: ffs linux-tick-processor takes *aageees* to run :/ [08:42] felixge: Tim_Smart: that's a lota code ;) [08:43] codetonowhere has joined the channel [08:43] Tim_Smart: felixge: FYI, a profile of a file upload: https://gist.github.com/c2a2b5a22f726d01cc5c [08:43] Tim_Smart: At the most basic level. [08:43] felixge: Tim_Smart: how was that created? [08:44] Tim_Smart: felixge: V8 comes with a profiler. [08:45] felixge: Tim_Smart: anyway, that looks like my parser is not responsible for pretty almost any CPU usage :) [08:45] creationix has joined the channel [08:46] Tim_Smart: felixge: I gave formidable a spin, and it add some overhead, but not much. [08:46] Tim_Smart: s/add/adds/ [08:46] felixge: Tim_Smart: overhead to what? [08:46] Gruni has joined the channel [08:46] Tim_Smart: I didn't profile it, but noticed CPU was a little higher. [08:47] felixge: Tim_Smart: compared to what? [08:47] Tim_Smart: Not doing anything with that data. [08:47] Tim_Smart: *the [08:47] felixge: Tim_Smart: not even writing it do disk? [08:48] Tim_Smart: Ya, a empty callback. [08:48] felixge: Tim_Smart: ok, well that's to be expected :) [08:49] Tim_Smart: felixge: The Garbage Collector is responsible for a lot of the CPU usage. [08:49] Tim_Smart: The new buffer implementation should help there. [08:49] felixge: Tim_Smart: yeah [08:50] fliebel has left the channel [08:50] Tim_Smart: Anyway, back to work. [08:50] felixge: m2 [08:51] freeall: Tim_Smart, felixge, hi. We looked into the whole "node using too much cpu doing uploads". Wrote simple servers in python, java and c. Found out that all of them used around 7% cpu. So what was it what was different with the server (java) we currently have online? Well, because it transferred the upload to another persons get request (sort of like peer-to-peer over the browser using our server). So the reason it only 0-2% cpu was that it blocked while tr [08:51] freeall: ansferring the data to the other person. [08:52] freeall: What we are doing now is that we a person A is uploading a file, we are saving that file to disc, and then another person are able to read it while writing it. [08:53] freeall: If we just write it out to file it takes a lot of cpu. So what we do now is to create a buffer (around 60kb) and then saving it to disc once the buffer is full. [08:54] freeall: This ended up being: 7% cpu for upload of a file (around 10-15mbit) and then 3% cpu for storing it on the disc. [08:54] Arc^^ has joined the channel [08:54] felixge: freeall: so you're saying writing everything to disk as it comes in is slow? [08:54] Tim_Smart: freeall: So the Java app wasn't really doing the same thing [08:54] felixge: freeall: an formidable should be buffering more data? [08:54] felixge: * and [08:54] Arc^^: Hi guys, would it be possible to continue callback chain execution after a global exception? [08:55] Arc^^: anyone know if v8 is capable of this? [08:55] felixge: freeall: s/slow/cpu inefficient/ [08:55] felixge: Arc^^: no, it is not possible [08:55] Arc^^: felixge: why? [08:55] felixge: Arc^^: because JS does not support it [08:55] freeall: Tim_Smart, no, we just thought it was doing the same thing. Didn't think our difference changed that much. It took an 8 hour debugging session to really dig down into the problem. [08:55] freeall: felixge, we're not using formidable actually. Should we try it? [08:56] Arc^^: felixge: well if you debug a JS engine you would expect to be able to continue after the point of failure [08:56] Arc^^: felixge: it depends a bit if v8 has unwound its callstack already or not [08:56] felixge: Arc^^: I remember one thing on the mailing list that did some crazy things with exceptions, I think it was a redis parser [08:57] freeall: felixge, yes, it was very slow if we wrote the data to disc as it came in. We figured it's because node uses a small buffer. Writing 200.000 chunks of 1kb takes longer than writing 3333 chunks of 60kb. [08:57] felixge: Arc^^: http://mihai.bazon.net/blog/redis-client-library-javascript-node [08:57] freeall: or at least we think it takes longer [08:57] Tim_Smart: Arc^^: If done right, you can catch the exception and deal with it accordingly. [08:57] felixge: freeall: if you are going to do file uploads with node, yes - you should use formidable. [08:57] Frans-Willem: Could anyone help me interpret this profiling output: http://pastebin.com/Rrdk8xQM [08:58] Frans-Willem: I can't make any sense from it :/ [08:58] Frans-Willem: Also, my program is handling about 2000 SQL queries, yet the profiler tells me there's only 202 "ticks", doesn't seem right :/ [08:58] felixge: freeall: I wrote a little bit about it here: http://debuggable.com/posts/parsing-file-uploads-at-500-mb-s-with-node-js:4c03862e-351c-4faa-bb67-4365cbdd56cb [08:58] Tim_Smart: Frans-Willem: Hmm.. That memove doesn't look good. [08:59] Frans-Willem: Tim_Smart: ? [08:59] felixge: freeall: I'm using it for a startup that is pretty much all about file uploads, so we're very interested in improving it if people see problems :) [08:59] Tim_Smart: Frans-Willem: Line 39 [09:00] Frans-Willem: Tim_Smart: Well, it is moving a shitload of data, it's mainly fetching stuff from one connection, moving it over to another [09:01] Tim_Smart: Frans-Willem: Right. For some reason it says 319 ticks excluded. [09:01] Tim_Smart: Also I don't get the [Call Profile] section in my reports :/ [09:01] Frans-Willem: Tim_Smart: But I'd rather be able to make some sense from the JavaScript part, you know, the part I have control over, and the JS thing seems rather random, it outputs different things all the time :/ [09:02] _announcer: Twitter: "Finally managed to spend an hour with Node.js. Mind blowing piece of technology, server side JavaScript finally done right. Will be huge." -- Jeff Gilfelt. http://twitter.com/readyState/status/22073752857 [09:02] Tim_Smart: Frans-Willem: Well usually what you invoke from the JS, has a direct relationship to what gets called in the C++ [09:02] v8bot: Tim_Smart has given a beer to Willem: Well usually what you invoke from the JS, has a direct relationship to what gets called in the C. Willem: Well usually what you invoke from the JS, has a direct relationship to what gets called in the C now has 1 beers. [09:03] Frans-Willem: v8bot: wtf ? [09:03] Frans-Willem: ++ [09:03] Frans-Willem: Blah: ++ [09:03] v8bot: Frans-Willem has given a beer to Blah: . Blah: now has 1 beers. [09:03] felixge: ACTION g2g [09:03] Frans-Willem: Blah: Test++ [09:03] v8bot: Frans-Willem has given a beer to Blah: Test. Blah: Test now has 1 beers. [09:03] Frans-Willem: Tim_Smart++ [09:04] felixge: freeall: feel free to email me (felix@debuggbale.com) or post an issue for formidable [09:04] jacobolus has joined the channel [09:05] aubergine has joined the channel [09:10] Frans-Willem: Tim_Smart: Does (new Buffer).slice do a memmove? or just (new Buffer).copy ? [09:11] _announcer: Twitter: "@readyState node.js + MongoDB is v.cool. I've been playing around w/it. Minus is that there is no mature/featureful std lib (yet)" -- Nicholas Tollervey. http://twitter.com/ntoll/status/22074135890 [09:11] pdelgallego has joined the channel [09:17] Tim_Smart: Frans-Willem: copy does a memmove [09:17] Tim_Smart: slice does not. [09:17] Frans-Willem: Hmmm [09:17] Frans-Willem: I'm hijacking Buffer.copy for now [09:18] Frans-Willem: Only gets about 268 calls in total, could that really be the culprit? [09:18] christophsturm has joined the channel [09:19] MattJ has joined the channel [09:22] Frans-Willem: In total only about 60kb is being (new Buffer).copied :/ [09:22] Frans-Willem: Tim_Smart: That shouldn't be causing that memmove spike, should it ? [09:23] Tim_Smart: Not sure. [09:23] Frans-Willem: nah, memmoving 60kb of data over several seconds should be keeping memmove active for 20-ish% of the time [09:27] aubergine has joined the channel [09:27] confoocious has joined the channel [09:35] breccan has joined the channel [09:38] maushu has joined the channel [09:38] ryah: Frans-Willem: slow? [09:38] maushu: Happy birthafterday for me. [09:39] _announcer: Twitter: "wow found this awesome node.js project that has all kindsa niftyness http://github.com/pquerna/ndislocate" -- Levi DeHaan. http://twitter.com/levidehaan/status/22075396844 [09:40] sideshowcoder has joined the channel [09:41] Egbert9e9 has joined the channel [09:42] _announcer: Twitter: "PREDICTION! Microsoft will have a Node.js clone out by the middle of next year." -- John McDowall. http://twitter.com/MrMcDowall/status/22075527510 [09:44] stride has joined the channel [09:45] maushu: Microsoft is onto us. [09:46] ryah: maushu: happy birhtday after [09:46] maushu: Thanks ryah! [09:46] Tim_Smart: ryah: If you haven't read the backlog already, that file upload situation where Java seemed to use more CPU than node was a misconception. [09:47] Tim_Smart: s/more/less/ [09:47] maushu: Tim_Smart: For a second there you scared me. [09:47] Tim_Smart: We were all scare, maushu. Java shall not take our cake. [09:47] Tim_Smart: scared* [09:47] maushu: Just tell it the cake is a lie. [09:48] Tim_Smart: Java is bloated enough as it is, it does not need the cake. [09:48] Frans-Willem: ryah: Not slow, just some Node script (usenet indexer) using more CPU than I expected, tried to profile it, but it tells me most of the time is spent in memmove, even though I only call buffer.copy about 300 times, with 60kb in total, over the course of a few seconds :/ [09:48] mape: double toppings [09:48] Frans-Willem: Tim_Smart: What exactly was the misconception? [09:49] Tim_Smart: Frans-Willem: The Java version wasn't doing what he expected. [09:49] Frans-Willem: Ah, lol :p [09:49] Tim_Smart: But you should probably ask freeall there ;) [09:50] Tim_Smart: He was the one spending hours debugging it. [09:51] ryah: Tim_Smart: oh, good to know [09:53] mAritz has joined the channel [09:54] maushu: Tim_Smart: Let me guess, problem between keyboard and chair regarding async or something related. [09:54] micheil: ryah: do you want me to create a branch of node's code to work on the documentation in? [09:55] Tim_Smart: Oh why do I have to return to PHP development :( [09:55] mape: micheil: What will be the first thing you tackle on the docs? :) [09:55] micheil: not sure [09:55] micheil: probably the CSS / styling [09:55] maushu: Tim_Smart: I wish I could use PHP, I have to use asp.net for some reason. [09:56] micheil: (eg, setting type to a baseline grid, working on colours to make it more readable, typefaces, etc. [09:56] mape: micheil: so not so much the structure? [09:56] maushu: That reminds me, any drivers for sql server in node.js? Or at least some website with the protocol or something so I can implement it. [09:56] mape: http://geckoboard.com/ neat [09:56] micheil: well, the other part of it is splitting the documentation into individual files [09:56] mape: Love the style [09:57] Tim_Smart: maushu: I have never done c# or asp.net, so I can't say I know your pain/ [09:57] maushu: micheil: I don't know, I like the man style. [09:57] micheil: maushu: it's getting unwieldy to manage though [09:58] maushu: Tim_Smart: Avoid it at all costs. If you don't believe me read about the asp.net viewstate. Horrible. [09:58] mape: I have some ideas on how to structure the docs but need to fiddle with it to get an idea if it is good or bad [09:58] badaxx has joined the channel [10:00] badaxx: http://pastebin.com/RwQgFrmL shouldn't this code exec "sleep 10" in the background and immediatly log "download started"? [10:00] mape: why would you use sleep? [10:00] badaxx: that is just en example [10:00] digitalspaghetti has joined the channel [10:00] badaxx: *an [10:01] mape: Ah k [10:01] badaxx: usually I'm executing a python script there which is downloading a file to the server [10:01] badaxx: which takes about a minute so the http request to the node server also takes about a minute which is wrong [10:02] Tim_Smart: badaxx: the callback is invoked when the command finishes executing. [10:02] badaxx: Tim_Smart: but in the command line it launches the process and leave it running in the background if you add a "&" after it [10:05] Tim_Smart: badaxx: Why would you want this behaviour? [10:05] micheil: mape: like? [10:05] Blink7 has joined the channel [10:05] badaxx: Tim_Smart: starting a download process in the background and letting the user fetch the download status every 2 seconds via ajax / jsonp [10:06] mape: micheil: Things swiping and moving and expanding, probly easier I just make it and have people say it is shit when to explain it, nothing complete [10:06] micheil: mape: I'm not inclined to add more animation just for the sake of it [10:06] Frans-Willem: creationix: Did you ever consider re-writing postgres-js ? [10:06] micheil: I'm wanting to read documentation so that I can get from problem to a solution, not to wait for eye candy to load and do it's little show [10:07] mape: micheil: I'm not saying wrapping body in but yeah, you'll see [10:07] mape: Looking good !== slow [10:07] micheil: mape: something like that rich demo of colourblindness to you. [10:07] Tim_Smart: badaxx: Take a look here http://nodejs.org/api.html#child-processes-89 [10:07] mape: colourblindness? [10:08] Tim_Smart: badaxx: The & operator won't work as node listens directly to the process (or something). [10:08] Gruni has joined the channel [10:08] badaxx: okay [10:08] badaxx: so what's the solution? *g [10:09] badaxx: listening to stdout asynchronously while sending a response like "download started" to the client? will the download keep running then? [10:10] micheil: mape: that one with the graphs, black and yellow it was [10:10] Tim_Smart: badaxx: Child processes don't block in node. [10:10] micheil: (I joke on colour blindness, it actually looked pretty awesome) [10:10] badaxx: Tim_Smart: okay, I'll try that. thanks so far! [10:10] _announcer: Twitter: "#nodejs module authors. please update: http://github.com/ry/node/wiki/library-compatibility" -- Ryan Dahl. http://twitter.com/ryah/status/22076826563 [10:11] mape: micheil: oh yeah, that is really bloated. Fun to poke around with though. Different solutions for different problems, as always :) [10:11] therealkerni has joined the channel [10:11] micheil: mape: but you know what I mean. [10:11] mape: For sure [10:11] isaacs has joined the channel [10:11] micheil: moin isaacs [10:12] mape: The django docs look great though, and are handy. So it is a spectrum [10:12] _announcer: Twitter: "why am I up at 3am playing with node.js? cause it's awesome.. that and I can't sleep ^_^" -- Arianna Winters. http://twitter.com/ariannawinters/status/22076885090 [10:13] micheil: mape: I'm liking the django docs for the style overall, really well written, good typography [10:13] micheil: but I'm thinking I'll mix it with the jQuery/rails API browser style as well [10:13] mape: Jup [10:13] badaxx: Tim_Smart: and how do I create piping like "> myfile 2>&1" ? [10:13] Tim_Smart: sys.pump [10:14] mape: Seems like a API browser / tutorial, get started, broader stuff split would be nice [10:14] micheil: mape: sort of like: http://railsapi.com/doc/rails-v3.0.0RC/ [10:15] proppy: micheil: I remember missing a index in django docs [10:15] badaxx: Tim_Smart: in the callback? because you said node will just execute the callback as soon as the download is finished [10:15] proppy: micheil: but maybe I just didn't find it :) [10:15] malkomalko has joined the channel [10:15] Tim_Smart: badaxx: The callback is invoked when the process exits. [10:16] micheil: proppy: django docs purely for their awesome focus on awesome documentation [10:16] Tim_Smart: Same as var download = child_process.exec(command); download.on('exit', ...); [10:16] badaxx: Tim_Smart: yeah, so after the whole download. but I want the download to be started and immediately send a response to the client - while the download is running on the server [10:16] proppy: yes, but sometime you just need to grep inside an api [10:16] proppy: yes, but for that a source tree does the job too :) [10:17] mape: Guess node needs a docs person [10:17] mape: That doesn't just build the tech side of it but actually improves the docs [10:17] sveimac has joined the channel [10:18] badaxx: Tim_Smart: oh, okay. still have to learn that async thing. Now I see *g [10:18] Tim_Smart: badaxx: https://gist.github.com/aa93cba0e0391a827949 [10:19] Gruni has joined the channel [10:19] micheil: mape: I've been a past documentation admin for a few projects, so I'm happy to step up to that sort of job [10:19] mravaux has joined the channel [10:19] micheil: but first on my agenda is to make it a better reading experience [10:19] micheil: as you want to be able to find information super easily and quickly [10:19] mape: You should go for it, great docs are really good for a healthy project [10:20] micheil: anyway, bbl. [10:20] Tim_Smart: Node contributors need to also put more annotations with their patches, but that is just me. [10:20] proppy: micheil: recently I discovered ruby and its gem documentation (I know I'm late :), I kinda like that 'show source' link below fonction definition [10:20] proppy: I don't know if this would apply to node though [10:20] micheil: proppy: that is also a good feature [10:21] micheil: proppy: it's a little bit difficult to implement atm though [10:21] micheil: bbl. [10:21] proppy: ++ :) [10:22] nsm has joined the channel [10:27] Ori_P has joined the channel [10:36] mAritz: proppy: have you seen the connect documentation? [10:36] mAritz: it has the source code right next to the description. but it's a horrible format [10:36] mAritz: :D [10:36] maushu: Dun dun. [10:37] maushu: That reminds me. [10:37] maushu: I should make a search engine for the irc logs. [10:37] proppy: http://senchalabs.github.com/connect/api.html [10:37] maushu: How many times have I had this thought? [10:37] proppy: ? [10:38] proppy: this look pretty new :), but I don't know yet if it is horrible since I haven't use it :) [10:39] shimondoodkin has joined the channel [10:40] confoocious has joined the channel [10:41] Gruni has joined the channel [10:44] maushu: Does connect use any c++ code? [10:44] maushu: Or it is pure javascript. [10:45] _announcer: Twitter: "use http://nodejs.org/ V8 based JavaScript engine for real time web #adobesummit" -- Pranay Airan. http://twitter.com/parryiiitb/status/22078474041 [10:45] Frans-Willem: maushu: Pure JS [10:47] maushu: Frans-Willem: Thanks. [10:48] _announcer: Twitter: "#adobesummit shinchi session completed learned new about node.js & V8 virtual machine" -- Arun Kumar. http://twitter.com/arunbluebrain/status/22078619053 [10:48] maushu: The problem I'm currently having with my startup is the addons, the sandbox for each user is too weak to sandbox c++ code. [10:48] ryah: startup? [10:49] c4milo has joined the channel [10:49] codetonowhere has left the channel [10:50] Frans-Willem: ryah: Did you get my statvfs/fstatvfs patch, btw ? [10:51] ker2x has joined the channel [10:51] ker2x: meep [10:52] SamuraiJack_ has joined the channel [10:52] ryah: Frans-Willem: yes [10:53] saikat has joined the channel [10:53] ryah: Frans-Willem: v busy these days [10:53] ryah: get back to you soon though [10:53] maushu: ryah: http://www.graphnode.com/ [10:54] Frans-Willem: k, tried to keep it as close to your style as I could, just couldn't figure out that StatWatcher thing and why that was even in there :/ [10:54] ker2x: wink_: i'm pretty sure that there is a memory leak in node-mongodb. when i don't use, the memory usage stay around 3MB, when i use it to grow to hundreds of MB [10:55] ker2x: maushu: look interesting :) [10:55] maushu: ryah: My goal is to use node.js for basically everything. Load balancing, http server, sandboxing... It will be completely crazy. [10:55] temp01 has joined the channel [10:55] _announcer: Twitter: "Very excited about the possibilities of node.js coupled with redis for future projects. http://nodejs.org/ http://code.google.com/p/redis/" -- Dave Hall. http://twitter.com/etianen/status/22079009032 [10:55] maushu: This will allow great customization for the users. [10:56] maushu: ker2x: Thanks. :3 [10:56] maushu: Jim is doing something similar if you want to check it out. [10:57] overra: maushu: sounds similar to an idea for a project i had [10:57] ker2x: talking about node... anyone know (or planned) a nodejs driver for neo4j ? (*the* graphdb) [10:57] maushu: overra: Everyone has had this idea. :p [10:57] shimondoodkin: how iphone gui work? is there a gtk? [10:57] codetonowhere has joined the channel [10:57] shimondoodkin: (to bind to node) [10:58] ker2x: brb [10:58] maushu: shimondoodkin: Hmm, I think using a webapp would be better. [10:58] ker2x: maushu: i subscribed for a private beta :p [10:58] maushu: ker2x: You have to give me your soul and first born first. [10:58] Tim_Smart: shimondoodkin: Either make a HTML5 app, or use Objective-C and the iPhone SDK. [10:59] maushu: Kidding. [10:59] ker2x: maushu: sorry, i'm running out of soul. i sold them all [10:59] maushu: I vote for the html5 app, specially with the offline and home shortcut thingy. [10:59] codetonowhere has left the channel [10:59] overra: subscribed as well [10:59] ker2x: but ok for the first born :) [10:59] rnewson has joined the channel [11:00] ker2x: well... bbl [11:00] maushu: I feel like progra-procrastinate. [11:01] maushu: (I will implement something completely unrelated to the project I should be doing at work.) [11:04] matt_c_ has joined the channel [11:04] jacobolus has joined the channel [11:05] ker2x: i know the feeling :) [11:06] ker2x: but i managed to combine both my work and nodejs. i write some of my sysadmin tools in nodejs now. it's not always the best solution, but it's fun :) [11:06] _announcer: Twitter: "Learning Photoshop and Node.js http://post.ly/tf7p" -- Oscar Del Ben. http://twitter.com/oscardelben/status/22079561879 [11:07] ker2x: Mmm, i need to learn event.... my if if if if if loop is growing a bit too large [11:08] ker2x: i should try something like if(bleh) { raise event "bleh" } [11:10] victorstan has joined the channel [11:11] _announcer: Twitter: "As great as #Node.js is, it's pretty sad that almost all code that older than 1 month breaks :/" -- superfeedr. http://twitter.com/superfeedr/status/22079791475 [11:14] _announcer: Twitter: "NPM repository site is a good idea http://npm.mape.me/ # nodejs" [id] -- Régis Gaidot. http://twitter.com/rgaidot/status/22079955152 [11:14] aubergine has joined the channel [11:16] _announcer: Twitter: "watching "nDistro for nodejs" screencast http://screenr.com/sV0 #nodejs #ndistro" -- Régis Gaidot. http://twitter.com/rgaidot/status/22080067644 [11:18] aubergine has joined the channel [11:19] micheil: ryah: you about? [11:20] jimt has joined the channel [11:20] blaines has joined the channel [11:20] shimondoodkin: maushu: thanks [11:21] shimondoodkin: Tim_Smart:thanks too [11:24] a4k7 has joined the channel [11:24] a4k7: hiho guys [11:24] a4k7: does buffer.copy return the number of bytes copied? [11:25] _announcer: Twitter: "discovered two webapps http://radioplz.com/ http://backgammon.stagas.com nice! #nodejs" -- Régis Gaidot. http://twitter.com/rgaidot/status/22080496267 [11:25] a4k7: or: whats the length of chunk in the data event callback? [11:26] a4k7: is it the lengths of the chunk, or some default value? [11:26] aubergine has joined the channel [11:28] _announcer: Twitter: "Always a pleasure ranting about databases, infrastructure and Node.js with @lstoll over a couple of flat whites." -- Mathias Meyer. http://twitter.com/roidrage/status/22080653753 [11:28] _announcer: Twitter: "UglifyJS: A Fast New JavaScript Compressor For Node.js That's On Par With Closure http://t.co/i07eFOD" -- Britt Selvitelle. http://twitter.com/bs/status/22080679236 [11:29] daleharvey has joined the channel [11:30] dnolen has joined the channel [11:31] jetienne has joined the channel [11:32] confoocious has joined the channel [11:35] codetonowhere has joined the channel [11:37] _announcer: Twitter: "@superfeedr When I need an event based server, I'm using Tornado these days, it's probably as efficient as Node.js." -- Sylvain Hellegouarch. http://twitter.com/lawouach/status/22081136883 [11:37] mape: Probly [11:38] _announcer: Twitter: "Published #nodejs mysql module v0.3.0: http://bit.ly/aGdaYZ" -- Felix Geisendörfer. http://twitter.com/felixge/status/22081176886 [11:38] a4k7 has left the channel [11:39] aubergine has joined the channel [11:39] _announcer: Twitter: "@lawouach That's right... I should give it a try too. But Tornado is only web, right? Node.JS can do XMPP pretty well too :)" -- superfeedr. http://twitter.com/superfeedr/status/22081278395 [11:41] mape: micheil: textmate [11:41] p6 has joined the channel [11:42] _announcer: Twitter: "#adobesummit : Node.js –event driven java script engine" -- jaya sharma. http://twitter.com/jayasharmaj/status/22081426624 [11:43] maushu: I need mixin. [11:43] _announcer: Twitter: "just coded the thin+event_machine server in node.js. I hope this time I won't have performance problems like the ones with ruby 1.8.7" -- Valentin Mihov. http://twitter.com/valentinmihov/status/22081487224 [11:45] _announcer: Twitter: "@lawouach very interesting. the question IMO is can JS developers migrate to the server side? node.js is making them want to do so.." -- alexis richardson. http://twitter.com/monadic/status/22081605046 [11:46] d0k has joined the channel [11:47] micheil: mape: yeah, what themes / libraries though [11:52] crohr has joined the channel [11:58] hellp has joined the channel [11:58] _announcer: Twitter: "Just favorited 'Nodejs - The performance that I've always wanted' on SlideShare. http://slidesha.re/aodi9E" [pt] -- Francisco Souza. http://twitter.com/franciscosouza/status/22082302848 [11:59] _announcer: Twitter: "deploying your node.js app to Heroku http://bit.ly/dsDL7U #nodejs #heroku" -- Régis Gaidot. http://twitter.com/rgaidot/status/22082347564 [11:59] aubergine has joined the channel [12:01] a4k7 has joined the channel [12:01] MrTopf has joined the channel [12:01] Blink7 has joined the channel [12:02] sveimac has joined the channel [12:04] dan_manges has joined the channel [12:04] nerdEd has joined the channel [12:06] johndahlstrom has joined the channel [12:09] a4k7: how do I create a new event emitter? [12:11] Gruni has joined the channel [12:12] cha0s has joined the channel [12:12] cha0s has joined the channel [12:13] Tim_Smart: a4k7: var EventEmitter = require('events').EventEmitter; new EventEmitter() [12:13] a4k7: thx [12:13] a4k7: I feel confirmed^^ [12:13] _announcer: Twitter: "[Wanted] node.js be hosted by VPS, but I want to create something like We'd have, I'll Ne Sabah Fri Len Heck rent. Teens looking for a Nau" [ja] -- こば@変態生徒会長. http://twitter.com/KOBA789/status/22083221647 [12:13] Tim_Smart: It is also attached to process.EventEmitter, but I'm not sure if that will be ever made redundant [12:15] aheckmann has joined the channel [12:16] _announcer: Twitter: "that i fell asleep in the 1st 5 mins of the node.js @peepcode last night is not a reflection on the product, but rather, that i needed sleep" -- grantmichaels. http://twitter.com/grantmichaels/status/22083402618 [12:16] aubergine has joined the channel [12:18] _announcer: Twitter: "Before I was just thinking now I do not care or affiliate. I like node.js" [ja] -- こば@変態生徒会長. http://twitter.com/KOBA789/status/22083492656 [12:20] _announcer: Twitter: "Someone should port the Heroku gem to node.js as an NPM package." -- Micheil Smith. http://twitter.com/miksago/status/22083637127 [12:20] Gruni has joined the channel [12:21] ivan has joined the channel [12:21] stagas has joined the channel [12:21] stagas_ has joined the channel [12:22] danielzzz has joined the channel [12:23] jetienne: anybody using heroku hosting? is it working well for node.js ? [12:23] danielzzz: hi [12:24] micheil: ACTION is not. [12:24] danielzzz: anybody using mongoose? [12:25] drudge: i have [12:25] danielzzz: drudge, do you ever created models with hydrate option? [12:25] danielzzz: I have this code [12:26] danielzzz: http://gist.github.com/549393 [12:26] danielzzz: but nothing gets saved to the db :/ it drives me crazy [12:27] danielzzz: when I remove hydrate option it saves just the ID [12:28] danielzzz: I know I could define model (and this works fine) but I would like to save random objects [12:28] drostie has joined the channel [12:32] stagas has joined the channel [12:35] inimino has joined the channel [12:35] Sembiance: morning folks :) [12:37] danielzzz: hi [12:37] _announcer: Twitter: "working on learning me some node.js - Anyone know of any editor that has intellisense for it? espresso doesn't have a node sugar #sadface" -- Gustavo Tandeciarz. http://twitter.com/dcinzona/status/22084688115 [12:37] danielzzz: drudge: any idea? [12:41] zapnap has joined the channel [12:44] matt_c has joined the channel [12:45] ivan has joined the channel [12:45] kriszyp has joined the channel [12:46] mravaux has joined the channel [12:47] drudge: danielzzz: i haven't used hydrate [12:47] danielzzz: drugde: ok - I checked the code and figured that out. it seems you must explicitely set isNew to true [12:47] micheil: ryah: any reason why I shouldn't be able to sys.pump() a dgram stream? [12:48] danielzzz: nothing was saved because it tried to update and inexistent object [12:48] danielzzz: thanks anywa [12:49] ker2x: mmmm, a nodejs editor with intellisense could be nice, yes :) [12:49] drudge: i started working on codesense and snippets for espresso [12:49] pgriess has joined the channel [12:50] ker2x: what's espresso ? [12:51] ker2x: (other than a concentrated coffee beverage) [12:51] micheil: it's a test framework [12:51] ker2x: http://macrabbit.com/espresso/features/edit/ ? [12:52] _announcer: Twitter: "@ Sn0wNight JavaApplet like you are using internally. In the future, so HTML5's API will also allow voice input. Rather than whether the C + + library for node.js k (ry" [ja] -- こば@変態生徒会長. http://twitter.com/KOBA789/status/22085640554 [12:52] adinardi has joined the channel [12:52] MrTopf: http://github.com/visionmedia/expresso [12:52] _announcer: Twitter: "... fs.readdir? what about CamelCase? # # Fail nodejs" [fil] -- Sascha Depold. http://twitter.com/sdepold/status/22085684600 [12:53] ker2x: watched in my github, thx :) [12:53] aubergine has joined the channel [12:55] _announcer: Twitter: "Now Browsing: JavaScript framework that enables Sabasaidopuroguramingu by "node.js 0.2.0" release - SourceForge.JP Magazine: full open source topic - http://bit.ly/bnCEWR" [ja] -- Julius/HP. http://twitter.com/ast_j/status/22085844602 [12:55] _announcer: Twitter: "@markgandolfo Node.js is gay, i mean that as a derogatory term for homosexuals." -- Seivan Heidari. http://twitter.com/Seivanheidari/status/22085853188 [12:55] maushu: Wat. [12:55] _announcer: Twitter: "http://github.com/bmeck/npm-github-service we need a #nodejs sponsor company to run something like this.. joyent ? heroku ? other ?" -- Jerome Etienne. http://twitter.com/jerome_etienne/status/22085872132 [12:56] maushu: Sabasaidopuroguramingu? [12:57] danielzzz: sounds japanese, doesn't it ;) [12:57] swaj has joined the channel [12:58] ajpiano has joined the channel [12:58] danielzzz: probably it's event driven programming [12:59] Sutto has joined the channel [13:00] Blackguard has joined the channel [13:01] trotter has joined the channel [13:03] aubergine has joined the channel [13:04] micheil: hmm.. anyone know much about implementing a readable/writable stream and if there's any good standards I should adhear to? [13:05] _announcer: Twitter: "node.js + MongoDB: What fun for qqs days! Yippee" [fr] -- Thomas Moyse. http://twitter.com/t8g/status/22086538112 [13:07] Frans-Willem: micheil: I've done it, it's a bitch :p [13:07] micheil: code? [13:07] jherdman has joined the channel [13:08] Frans-Willem: Lemme check for you :) [13:08] Frans-Willem: http://github.com/Frans-Willem/node-WebSocketFallback/blob/master/server/transports/xhrgeneral/XhrGeneralSocketResponse.js [13:09] Frans-Willem: that one should implement quite a bit [13:09] Frans-Willem: Hmm, actually [13:09] Frans-Willem: I think I didn't flesh those out as much as I thought [13:10] Frans-Willem: Think I'll have to disappoint you [13:10] stepheneb has joined the channel [13:10] micheil: interesting.. this is actually for node-websocket-server [13:11] micheil: a readable/writable stream for parsing websocket packets / frames [13:11] Sembiance: micheil: I myself love Socket.IO and Socket.IO-node [13:11] Arc^^ has joined the channel [13:11] micheil: Sembiance: I'm obviously going to love what I wrote myself. [13:11] _announcer: Twitter: "@nettuts looking at your node.js tut. ?: why use node for tweets when the api call is intervalled at 5 seconds? benefit of node vs ajax?" -- Gustavo Tandeciarz. http://twitter.com/dcinzona/status/22086992598 [13:11] Sembiance: micheil: hehe :) [13:11] Frans-Willem: micheil: Yeah, I started it as a replacement for Socket.IO, didn't finish it though, but the websocket part should be pretty stable [13:12] micheil: Sembiance: that said.. stuff may be happening with Sockets.io, I've been talking with the author. [13:12] _announcer: Twitter: "JavaScript: What is 'this'? http://bit.ly/aPJYz2 #nodejs" -- Brian Celenza. http://twitter.com/bcelenza/status/22087036498 [13:12] micheil: I'm designing node-websocket-server to be highly similar in design to http.Server [13:12] Sembiance: micheil: oooh. Do you have a blog or twitter or something that I can follow for more info if/when something happens? :) [13:12] micheil: @miksago [13:12] micheil: (anywhere on the internet) [13:13] stepheneb has joined the channel [13:13] micheil: and also "micheil smith" [13:13] micheil: about 99.99% of the results will also be me. [13:13] micheil: (that was on google) [13:13] Frans-Willem: micheil: In that case, you should really check out the websocket part of the repository I sent you earlier, that too was supposed to be as close to http.server as possible. [13:14] micheil: Frans-Willem: the difference is that mine has been and continues to work, I'm just making the parser better, before another release on either tomorrow afternoon or saturday [13:14] dilvie has joined the channel [13:15] Frans-Willem: micheil: What do you mean? mine works fine too, it's just the drop-in XML replacements that still need work. [13:15] micheil: k [13:15] micheil: :P [13:15] Frans-Willem: Seriously, I'm not saying you should switch or anything [13:16] Frans-Willem: just saying that if we both had the same goal (e.g. stay close to http.Server), we should check out eachothers solutions, see how we did things differently [13:17] micheil: Frans-Willem: no intention of switching, I didn't know yours existed though. [13:17] micheil: because I'm also aiming to be spec compliant, which most servers aren't [13:17] Sembiance: are we talking about some 'third' node websocket? [13:17] Frans-Willem: Sembiance: What do you mean? a third websocket server for Node.js ? [13:18] Deputaats: Anyone using Socket.IO? How to send msg to one user? [13:19] Sembiance: Frans-Willem: I'm aware of micheil's node websocket server, and also Socket.IO-node. It sounds thought that you have another one? :) [13:19] micheil: Sembiance: I'm taking websocket's to LOTR's style thing though [13:19] micheil: one ring to rule them all [13:20] Frans-Willem: Sembiance: Yes, http://github.com/Frans-Willem/node-WebSocketFallback/, not done yet though, was supposed to be a WebSocket & fallback methods server, with the goal of being as close to Node's API on the server side, and for the fallback methods being as close to the WebSocket API on the client. [13:21] Sembiance: micheil: the main two reasons I use Socket.IO is: 1. It has various comet implementations for browsers that don't have flash and don't natively support WebSocket and 2. I can serve my index.html and Socket communication both from the same port 80, allowing me to not worry about firewalls or other cross-domain/port security concerns [13:22] micheil: Sembiance: node-websocket-server can hijack a http server [13:22] Sembiance: micheil: sounds like you've got #2 taken care of from my list then :) [13:22] micheil: in the new version, you have your http.Server, then you can do: var wsServer = ws.createServer({server: httpServerInstance}); [13:25] Sembiance: micheil: any plans to support built-in comet fallback emulation support for non-websocket no-flash browsers? Or do you view your project as a PURE websocket server and suggest using some other comet server (orbited, aped, etc) to support older browsers and proxy those requests to the websocket server? [13:25] micheil: Sembiance: will not provide fallbacks. [13:25] micheil: if you want a fallback, wrap it, it's not too hard [13:25] micheil: listen for ws events, buffer and emit on http. [13:26] Sembiance: micheil: so your goal is the best, pure websocket node server. Gotcha :) [13:26] micheil: yes [13:27] micheil: just like http.Server doesn't do routing. [13:28] _announcer: Twitter: "Reminder #SFWebPerf Meetup tonight @ 7PM. Hear guest @sh1mmer http://meetup.com/u/fq7 present node.js and his recent work with DNS." -- SF Web Perf. http://twitter.com/sfwebperf/status/22088161831 [13:28] Sembiance: micheil: are you using your node-websocket-server in any production websites? or do you know of any websites using it yet? just curious [13:28] maushu: Where is the Error object? [13:28] micheil: Sembiance: no, but I know others are [13:28] micheil: it's been used by Firefox for demos, and a few other companies [13:28] micheil: Sembiance: and I'm fairly active in #whatwg on the protocol and such [13:29] micheil: hence tweet's like this: http://twitter.com/dshaw/status/22021440330 [13:29] Sembiance: micheil: cool :) [13:30] gerad has joined the channel [13:31] maushu: How can I customize my error messages? I'm coding a binding for a webservice and throwing a error shows the internals of the binding (even if it has a message). I want to point to the line where the binding invoke was called... [13:31] pgriess has joined the channel [13:34] drudge: mape: you should do a package.json in your boilerplate with the dependencies [13:34] mape: drudge: Hmm yeah, true [13:37] sonnym has joined the channel [13:38] mape: drudge: There :) [13:39] drudge: you win :) [13:40] mu-hannibal has joined the channel [13:41] _announcer: Twitter: "Released http://github.com/mape/node-express-boilerplate which I've used for my recent projects, easy to use and has asset manager. #nodejs" -- Mathias Pettersson. http://twitter.com/mape/status/22089176541 [13:44] davidsklar has joined the channel [13:45] EyePulp has joined the channel [13:46] matt_c: Oh man, Socket.IO + twitter-node makes me happy: http://gist.github.com/549532 [13:46] deltasquare4 has joined the channel [13:46] mattikus has joined the channel [13:47] _announcer: Twitter: "Countdown to Knockout: Post 10 - Intro to Jake - JavaScript build tool for Node.js http://post.ly/tgXg" -- node knockout. http://twitter.com/node_knockout/status/22089612976 [13:48] softdrink has joined the channel [13:48] ben_alman has joined the channel [13:49] micheil: ryah: hmm.. I think there's a bit of a typo in fs.createWriteStream [13:49] micheil: forceClose has been renamed to end(), yet there's two of forceClose [13:50] _announcer: Twitter: "A motivational #nodejs wallpaper just to get the creative juices flowing for #nodeknockout. Slightly nsfw http://bit.ly/cit68r" -- Dionysios Synodinos. http://twitter.com/synodinos/status/22089823759 [13:51] dan_manges has joined the channel [13:51] nerdEd has joined the channel [13:52] femtoo has joined the channel [13:53] softdrink has joined the channel [13:54] Egbert9e9 has joined the channel [13:54] drudge: has anyone seen a node imap library floating around? [13:55] ceej has joined the channel [13:57] micheil: I had an smtp library [13:57] micheil: (which is in disrepair atm) [13:57] micheil: and won't work [13:57] micheil: it was built for v0.1.25~ [13:58] gf3 has joined the channel [13:58] _announcer: Twitter: "Nodejs -'s performance that I always wanted http://bit.ly/989skR (slides and talk on video)" [pt] -- Vinicius Assef. http://twitter.com/viniciusban/status/22090402242 [13:59] micheil: mjr_: ping [13:59] bradleymeck has joined the channel [13:59] eazyigz has joined the channel [14:00] eazyigz: has anybody successfully used env.js in node? [14:00] mape: eazyigz: What are you going to use it for? [14:01] eazyigz: I need to execute javascript that works on the dom [14:02] charlenopires has joined the channel [14:02] eazyigz: and I need to get the results of that js execution [14:02] mape: Ah k [14:02] eazyigz: there is nothing in node to accommodate this [14:02] eazyigz: so env.js is the only hope [14:03] eazyigz: but there are no working examples on github for env.js as to how to call their apis from node [14:03] davidwalsh has joined the channel [14:04] bradleymeck: env.js wasnt built for node [14:04] bradleymeck: jsdom was [14:05] eazyigz: ok, I'm looking at jsdom... [14:05] dylang has joined the channel [14:06] a4k7 has left the channel [14:10] micheil: mape: does this look right for a read/write stream? http://gist.github.com/549555 [14:10] _announcer: Twitter: "got my new module system to work on #nodejs, @commonjs compliant as well!" -- Tim Lind. http://twitter.com/timlind/status/22091365109 [14:11] mape: micheil: Seems like it would work, but can't really be sure, I've only briefly poked at streams when using request to download images. [14:12] micheil: ah, okay then [14:12] micheil: ACTION needs someone like ryah or mjr_  [14:13] Frans-Willem: micheil: You do realise the documentation quite clearly specifies how a stream behaves, don't you ? [14:13] micheil: Frans-Willem: not for implementing your own stream [14:13] micheil: iirc. [14:14] ehaas has joined the channel [14:15] _announcer: Twitter: "hopefully going to have some time to play with node.js tonight" -- Richard Patching. http://twitter.com/disciplex/status/22091676890 [14:16] pgriess has joined the channel [14:16] micheil: morning pgriess [14:17] [[zz]] has joined the channel [14:18] aubergine has joined the channel [14:18] pgriess: hey micheil [14:19] micheil: sup? [14:19] jakehow has joined the channel [14:19] pgriess: not much. trying to cook up some ideas for knockout [14:19] micheil: nice [14:19] micheil: ACTION is a judge. [14:19] Blink7 has joined the channel [14:19] mape: Going the practical route or fun route? [14:20] pgriess: not sure yet [14:20] pgriess: the creative route regardless of ultimate ends [14:20] pgriess: (ideally) [14:20] mape: micheil: Guess that means you'll have to judge a lot of random people since you can't judge people you know? ;) [14:20] micheil: pgriess: is this a individual team or yahoo group? [14:20] junkee[] has joined the channel [14:20] micheil: mape: true [14:20] pgriess: micheil: sh1mmer, reid and i (yahoos) [14:20] micheil: nice [14:20] bradleymeck: OCR web service? [14:20] pgriess: yeah, its a strong team, but we all have such different backgrounds that it's been interesting coming up w/ something that we actually want to do [14:21] mape: pgriess: can't you just hijack a Yahoo! property and make a nice API? [14:21] micheil: ACTION is working on releasing a new nws version in time for KO. [14:22] pgriess: mape: most properties have good (or at least existing apis). but we're trying to avoid using yahoo-ness as a crutch as well [14:22] mape: Hehe yeah, makes sense [14:22] micheil: pgriess: maybe make a game or something? [14:22] mape: There will probly be tons of games [14:22] micheil: pgriess: you could remake that iseemike code ;P [14:23] bradleymeck: graphical api interface for non-programmers? [14:23] pgriess: micheil: heh. yeah we've thought of that ;) [14:23] dylang: mape: talking about node knockout? [14:23] micheil: yeah [14:23] mape: Yup [14:23] loinclot_ has joined the channel [14:23] dan_manges has joined the channel [14:24] bradleymeck: if you have a flash dev, voice chat?, someone had a rtp thing around here i think [14:24] dylang: there isn't a category for fun - so i was thinking of killing my game idea (if winning becomes a goal for my team) [14:24] bradleymeck: pfffffffffff winning [14:24] mape: Don't really care much about winning [14:25] mape: Only thing I would want is the iPhone and I don't think I'll be innovative [14:25] mape: twitter/google maps mashup all the way! [14:26] bradleymeck: im going to be lazy and hook up like everything i can together to become a monster, that monster will transform on the full moon, and then he will crash hisown server [14:26] jblanche has joined the channel [14:27] dylang: mape: are you going to add an rss, atom, or twitter feed to npm.mape.me? i'm obsessively hitting refresh every few hours to see what people have submitted. [14:27] mscdex: i need to add to that rtp module soon [14:28] _announcer: Twitter: "the #peepcode screencast on node.js is fantastic, a great starter with fantastic tips, I can't wait for part 2!" -- Josh Kalderimis. http://twitter.com/joshkalderimis/status/22092684089 [14:28] mscdex: blargh, so many things to work on and not enough time :S [14:28] mape: dylang: hmm, should be easy enough.. Just don't want to restart the process, the data persistance layer is kinda flakey (the version I'm using) so loosing data would be bad. But I'll look at it. [14:31] marek_z has joined the channel [14:32] paul__ has joined the channel [14:33] qbit_ has joined the channel [14:33] qbit_: hello! [14:34] mscdex: hola! [14:37] ker2x: Closing connection to mongoDB! [14:37] ker2x: mongo is down [14:37] ker2x: mongo is down [14:37] ker2x: mongo is down [14:37] ker2x: Segmentation fault [14:37] ker2x: ACTION whine [14:39] ajpiano has joined the channel [14:39] dilvie: what's up mscdex? [14:39] dilvie: I'm ready for another day of javascript hackery. [14:39] mscdex: not much, doing boring stuff to pay the bills [14:40] [[zz]] has joined the channel [14:40] _announcer: Twitter: "@ GuGu:: Here's what it means to have nothing to do: I wrote to node.js demon, which makes the tail-f / home / gugu / somefile and gave ... http://bit.ly/bD6Ry4" [ru] -- Андрей Скотенко. http://twitter.com/kostenko/status/22093637023 [14:41] voxpelli has joined the channel [14:43] maushu: ACTION watches as ker2x's mongo explodes. [14:43] dilvie: ker2x: what happened? [14:47] bradleymeck has joined the channel [14:50] jelveh has joined the channel [14:52] Blackguard has joined the channel [14:52] cloudhead has joined the channel [14:53] Frans-Willem: Hmmm, is there a way to represent a time interval in JS ? [14:53] MrTopf has joined the channel [14:53] dnolen has joined the channel [14:55] _announcer: Twitter: "JavaScript is awesome! Trying to create a progress bar with node.js for a file upload and eat a big chocolate pancake in the same time" -- Cristian Prodan. http://twitter.com/cristiprodan/status/22094796503 [14:58] bradleymeck: Frans-Willem, just Dates, no combination is standard [14:59] Frans-Willem: bah [14:59] Frans-Willem: So much for mapping all postgresql stuff nicely to JS datatypes [15:00] steadicat has joined the channel [15:01] bradleymeck: just use an array [date,date] or an object {start:date,end:date}, add it to your documentation [15:01] joshbuddy has joined the channel [15:01] ker2x: dilvie: i tried to reconnect too frequently [15:01] ker2x: and boom [15:01] ker2x: mongo didn't segfaulted, it's nodejs that segfaulted [15:01] _announcer: Twitter: "Because I can participate Node.js Japan User Group. http://groups.google.co.jp/group/nodejs_jp" [ja] -- hiroftp. http://twitter.com/hiroftp/status/22095298379 [15:02] ker2x: and just found another problem [15:02] ker2x: arghhh [15:03] ker2x: the connection event is raised even if it's not connected to mongodb [15:03] bradleymeck: date ranges as native types almost never exist in programming languages [15:03] ker2x: or more exactly, even if the connexion failed [15:03] wattz: Good morning [15:04] bradleymeck: morning wattz [15:04] ker2x: time to use another driver [15:04] daleharvey has joined the channel [15:05] bradleymeck: which driver? and can you post the code? [15:05] bradleymeck: even if you move to a new one tickets are nice [15:05] ker2x: http://github.com/w1nk/node-mongodb [15:06] _announcer: Twitter: "How the hell do you get a node.js extension to actually install the bits in a public place? "node-waf install" does nothing for me." -- rjp. http://twitter.com/zimpenfish/status/22095634665 [15:07] Alex-SF has joined the channel [15:07] _announcer: Twitter: "♻ @felixge: Published #nodejs mysql module v0.3.0: http://bit.ly/aGdaYZ <-- Awesome work Felix!" -- Mariano Iglesias. http://twitter.com/mgiglesias/status/22095745414 [15:08] wattz: anyone know of a good ajax js library that is framework agnostic? [15:09] bradleymeck: you can rip out ajax libs from frameworks, but thats about it to me [15:10] visnup has joined the channel [15:10] wattz: thanx bradleymeck, not a bad idea [15:11] eazyigz: has anybody worked with jsdom? Is there a way to open an existing html document, not create a new one? [15:11] bradleymeck: in fact, the mootools builder should have a way to just grab request [15:12] bradleymeck: eazyigz, over network or from file? *goes to dig up the witch parser* [15:12] eazyigz: file [15:12] bradleymeck: sec digging up the files [15:13] eazyigz: I only see examples for jsdom to construct new html doc... [15:13] dan_manges_ has joined the channel [15:14] ker2x: i found my problem :) [15:14] _announcer: Twitter: "I swear, if I open my news reader to find even one more node.js article (let alone the dozen I found this morning), I'm going to freak." -- Dave Rusek. http://twitter.com/mgodave/status/22096261538 [15:14] ker2x: there is 2 events : "connection" (trying to connect) and "ready" (connected). the "ready" event wasn't in the documentation [15:15] danielzilla has joined the channel [15:16] bradleymeck: eazyigz, you have to write your own but im going to just strip out Witch's one for you give me a sec [15:17] aubergine has joined the channel [15:18] ker2x: Mmm [15:20] aubergine has joined the channel [15:20] ker2x: nope :( [15:20] ker2x: bleh [15:21] maushu: Anyone knows on how can I get the name of the variable that holds the called function? [15:21] maushu: My kingdom for reflection! [15:23] TheEnd2012 has joined the channel [15:25] Frans-Willem: w000t, got a working PostgreSQL re-implementation :) [15:25] Sembiance: Anyone knoe of any attempts at adding true continuation support to JavaScript/node.js itself? [15:25] Frans-Willem: with proper parameter binding :D [15:26] Sembiance: Currently the best way I've seen to handle 'callback hell' is creationix's "step" project. [15:26] Frans-Willem: Sembiance: Read this blog post: http://mihai.bazon.net/blog/redis-client-library-javascript-node [15:26] Frans-Willem: Best hack around continuations I've seen thus fasr [15:26] Frans-Willem: r [15:26] wattz: any html/css/js guess looking for work? [15:27] matt_c: ACTION has that one open in a tab somewhere... [15:27] Frans-Willem: wattz: What kind of work ? [15:27] wattz: Front End dev [15:27] aurynn: I'm a backend programmer and not really looking. [15:27] aurynn: frontend makes me cry,. [15:27] wattz: i bet you do like the backend! [15:27] wattz: hahaha. [15:27] wattz: >_> [15:27] wattz: jk [15:27] Frans-Willem: wattz: In that case :p [15:27] wattz: for Lowes.com [15:27] aurynn: ellipsis [15:27] Frans-Willem: wattz: not really, I hate frontend [15:27] wattz: no worries [15:28] Sembiance: Frans-Willem: I had seen that. I was also intrigued by that. [15:31] daleharvey has joined the channel [15:33] vnguyen has joined the channel [15:33] Sembiance: node.js http://wargamez.mape.me test [15:34] bradleymeck: http://gist.github.com/gists/549720/ [15:34] mape: Sembiance: boing [15:34] Sembiance: mape: bong [15:34] Sembiance: oh neat [15:34] dylang: when using connect and i do res.send('hello 1'); res.end(); res.send('hello 2'); res.end(); is it possible to not throw the 500 error page? [15:35] mape: dylang: why close it if you are sending more? [15:35] Alex-SF has joined the channel [15:36] dylang: mape: i'm not doing it on purpose. if an error happens in a partial that is run multiple times then connect tries to throw a 500 page up multipile times. after the first one is attempted the stream is killed and the user gets a generic 500 error. [15:36] mape: oh k [15:37] [[zz]] has joined the channel [15:37] Apage43 has joined the channel [15:38] softdrink: yaaaayyyy macvim update [15:39] bronson has joined the channel [15:39] jakehow has joined the channel [15:40] Lerchmo has joined the channel [15:41] jdub: anyone here done ssl websockets with socket.io? [15:42] jdub: i keep getting [15:42] jdub: Error during WebSocket handshake: location mismatch: wss://localhost:8000/socket.io/websocket != ws://localhost:8000/socket.io/websocket [15:42] micheil: jdub: yeah, that'd be right [15:42] bradleymeck: ws doesnt do ssl [15:42] micheil: bradleymeck: it does [15:42] bradleymeck: really? [15:42] jdub: wss == https of websockets [15:43] micheil: jdub: I was experimenting with it last night, and I couldn't get any browsers to connect, despite it seeming to work [15:43] jdub: the problem here is difference of opinion between client and server :-) [15:43] bradleymeck: ive never had it work when i looked into it *goes to look again* [15:43] micheil: jdub: I think sockets.io hardcodes that [15:43] jdub: micheil: with socket.io in particular? [15:43] jdub: ah [15:43] micheil: jdub: node-websocket-server doesn't hard code it, but for some reason the connections just die [15:43] micheil: invalid certificate errors or something like that [15:43] jdub: right [15:44] jdub: perhaps accepted certs don't transfer over to wss yet? [15:44] jdub: if my trouble is s.io hardcoding though, it's fixage time! [15:44] micheil: anyway, I decided that my time was better spent on other parts of ws, such as origin and a better streamable frame parser [15:44] bradleymeck: are you hijacking the upgrade to ssl ? [15:45] sudoer has joined the channel [15:45] jdub: ha ha: [15:45] jdub: jdub@sliver:~/src/node/socket.io$ grep -rl 'ws:' . | wc -l [15:45] jdub: 18 [15:45] jdub: jdub@sliver:~/src/node/socket.io$ grep -rl 'wss:' . | wc -l [15:45] jdub: 0 [15:46] jdub: looks like the problem is only in one file though [15:46] vnaren has left the channel [15:50] _announcer: Twitter: "Am considering diving into #node.js, but not sure how useful it is for the smaller clients who use don't use dedicated servers." -- Teresa. http://twitter.com/maria_teresa_m/status/22098974119 [15:50] _announcer: Twitter: "You think only #redis and #mongodb do #node.js? #CouchDB and #Node.js: Couch Client « myNoSQL http://j.mp/azqSjO" -- Alex Popescu. http://twitter.com/al3xandru/status/22098977699 [15:51] siculars has joined the channel [15:52] micheil: jdub: do a check: protocol = socket.secure ? "wss://" : "ws://" [15:52] micheil: that way you don't hard code it. [15:52] micheil: probably push that back to the project too as a patch [15:54] ker2x: i'm testing node-mongodb-native [15:54] SamuraiJack_ has joined the channel [15:54] ker2x: look like the documentation is the code :( [15:55] jdub: yays, easily fixaged [15:55] jdub: micheil: yep, that's what i did [15:55] micheil: good stuff [15:55] micheil: jdub: works now? [15:56] jdub: yep [15:56] micheil: sweet [15:56] micheil: code example please.' [15:56] micheil: I' [15:56] jdub: on ff4 and chromium [15:56] micheil: I'm really wanting to have ssl support in node-websocket-server [15:57] ker2x: there is no events at all in node-mongodb-native ? [15:57] jdub: sio figures out if the server it's attached to is setSecure [15:57] jdub: and does just about everything with you except sending the right headers [15:57] dmcquay has joined the channel [15:58] micheil: I seem to never get the upgrade event over ssl [15:59] softdrink has joined the channel [16:00] _announcer: Twitter: "> < @creationix's Node.js couch-client couldn't have come at a better time. XOXOXO /cc @dreadnode @rhussmann @getify @teleject" -- Daniel Shaw. http://twitter.com/dshaw/status/22099723573 [16:00] claudiu__ has joined the channel [16:00] aubergine_ has joined the channel [16:01] _announcer: Twitter: "Find other people interested about #nodejs faster by using http://www.startupweekly.com/hashtag/show/nodejs.html" -- Startup Weekly. http://twitter.com/startupweeklies/status/22099859802 [16:02] Blink7 has joined the channel [16:03] JimRoepcke has joined the channel [16:05] deadlyicon has joined the channel [16:05] mjr_: micheil: delayed ping response [16:05] micheil: mjr_: hey [16:05] trotter has left the channel [16:05] micheil: was curious about implementing streams and best practices when doing so. [16:06] micheil: I thought you might be the person to ask? [16:06] mjr_: I am a person you could ask. [16:06] bradleymeck: micheil i think the upgrade event for all ssl tasks are killed by node-websocket-server, may be mistaken [16:06] mjr_: mikeal is emerging as the stream expert at the moment. [16:06] mjr_: Other than ryah, of course. [16:07] micheil: mjr_: k, got the names mixed up [16:07] micheil: bradleymeck: explain? [16:07] bradleymeck: wrap a http.server in a node-websocket-server, i seem to recall i couldnt https a webpage [16:08] brianleroux has joined the channel [16:10] bradleymeck: http://github.com/miksago/node-websocket-server/blob/master/lib/ws.js#L58-69 [16:11] micheil: hmm.. [16:11] Frans-Willem: w000t, prepared statements working too :D [16:11] micheil: so, https is actually a http upgrade? [16:11] micheil: *slow* [16:12] bradleymeck: shouldnt be but could it be firing that upgrade event? [16:12] gorakhargosh has joined the channel [16:12] bradleymeck: https is http routed over tls [16:13] maushu: And port 443. [16:13] _announcer: Twitter: "How about services like Jail node.js to be run on the following" [ja] -- こば@精神の安定が迷子. http://twitter.com/KOBA789/status/22100744687 [16:13] maushu: Don't forget the port. [16:13] bradleymeck: doesnt have to be port 443 [16:14] maushu: MUST BE PORT 443. [16:14] bradleymeck: 443 is DEFAULT [16:14] bradleymeck: http://tools.ietf.org/html/rfc2818 2.3 [16:15] maushu: bradleymeck: It must be 443. This conversation is over. [16:15] bradleymeck: k [16:15] maushu: You dare defy me?! [16:15] bradleymeck: no [16:15] maushu: Oh, okay. [16:16] maushu: ACTION looks at his sword for a moment and then stores it. [16:16] maushu: Maybe another time. [16:16] aurynn: lol [16:20] bradleymeck: ruh roh, micheil, http://tools.ietf.org/html/rfc2817 , can use http upgrade to engage tls [16:20] micheil: heh [16:20] micheil: testing' [16:20] gerad has joined the channel [16:20] jdub: micheil: http://github.com/jdub/Socket.IO-node/commit/eadd5c95115695de3ebb0586c41a330a8f391019 [16:22] visnup has joined the channel [16:23] mu-hannibal has joined the channel [16:23] micheil: jdub: yeah [16:24] benburkert has joined the channel [16:28] micheil: jdub: I just can't get secure websockets working. [16:29] amerine has joined the channel [16:32] creationix has joined the channel [16:32] paulwe has joined the channel [16:33] micheil: epic fail. [16:33] micheil: The browser doesn't connect, but openssl s_client does. [16:33] micheil: long of the short: websockets + ssl + untrust cert = no connection [16:34] micheil: does someone have a valid cert I could use just for local testing? [16:34] matt_c: micheil: can you self-sign and set trust in the browser manually? [16:34] micheil: matt_c: not that I know [16:35] nerdEd has joined the channel [16:35] matt_c: micheil: Odd. I've got some self-signed certs that I've added as trusted certs and the browser stops complaining about it. [16:35] sh1mmer has joined the channel [16:35] matt_c: I haven't tried ws though [16:37] micheil: matt_c: how do I get a self-signed cert? [16:38] maushu: micheil: http://library.linode.com/ssl-guides/self-signed-ssl-cert [16:42] brianleroux has joined the channel [16:42] micheil: wooo! [16:42] micheil: it works! [16:43] _announcer: Twitter: "Using @kurokikaze 's #limestone module for #SphinxSearch and #nodejs for http://Mefeedia.com's new search API. It's looking pretty sweet..." -- Adam Crabtree. http://twitter.com/CrabDude/status/22102854050 [16:44] Egbert9e9 has joined the channel [16:48] eisd has joined the channel [16:48] eazyigz has joined the channel [16:48] sudoer has joined the channel [16:50] bpot has joined the channel [16:52] cardona507 has joined the channel [16:52] femtoo has joined the channel [16:53] dipser has joined the channel [16:53] _announcer: Twitter: "POST node.js from library to use cURL to rap http://gist.github.com/549844" [ja] -- こば@精神の安定が迷子. http://twitter.com/KOBA789/status/22103571958 [16:54] Alex-SF has joined the channel [16:55] _announcer: Twitter: "♻ @ marcos_sousa: Interesting to talk to the @ # nodejs emerleite mandatory for those wishing to climb a web app. http://bit.ly/9AZHme" [pt] -- diogobaeder. http://twitter.com/diogobaeder/status/22103686939 [16:55] Sembiance: test [16:55] _announcer: Twitter: "node.js from POST properly and I hope I can beat that becomes. But I guess write a patch so that you can capture standard, I guess to do." [ja] -- こば@精神の安定が迷子. http://twitter.com/KOBA789/status/22103707720 [16:55] _announcer: Twitter: "node.js + Socket.IO + twitter-node = fun! http://gist.github.com/549532" -- Matt. http://twitter.com/mc/status/22103722294 [16:56] noahcampbell has joined the channel [16:57] _announcer: Twitter: "[JavaScript][HTTP] / node.js http://htn.to/Rnb5vR" -- チャゲ. http://twitter.com/tyage/status/22103830502 [16:58] jelveh has joined the channel [16:58] mostlygeek has joined the channel [16:58] huyhong has joined the channel [16:59] joshbuddy has joined the channel [17:03] samsonjs has joined the channel [17:03] skohorn has joined the channel [17:04] Deputaats has joined the channel [17:04] samsonjs has joined the channel [17:04] Deputaats: What would be the best way to disallow bad data ( e.g.