[00:01] losvedir has joined the channel [00:02] dnolen has joined the channel [00:03] Tim_Smart: ryah: Yup [00:04] dgathright has joined the channel [00:04] ryah: i want to replace wscript with a makefile [00:04] Tim_Smart: <3 [00:05] tjholowaychuk: <3 !! [00:05] creationix: ryah: trying to remove the python dependency [00:05] creationix: ? [00:05] Tim_Smart: The python dependency is kinda ugly. [00:05] ryah: no [00:05] creationix: v8 will still need it right? [00:05] Tim_Smart: Yeah :( [00:05] ryah: just easier to hack on [00:05] creationix: fair enough [00:05] tjholowaychuk: make is easier to read IMO, still kidna fucked, but easier [00:05] tjholowaychuk: kinda* [00:06] Tim_Smart: Hehe. Make a setup.js [00:06] ajpiano has joined the channel [00:06] Tim_Smart: Just need a runtime to start with. [00:06] tjholowaychuk: node can be meta and built itself [00:06] creationix: Tim_Smart: that could be tricky [00:06] creationix: make is fine [00:06] ryah: is test/simple/test-net-server-max-connections.js failing for anyoen else with node_g ? [00:06] ryah: (need to get these buildbots up again) [00:06] Tim_Smart: ryah: Will try. [00:07] vnguyen has joined the channel [00:08] Tim_Smart: ryah: Do you use ctags with vim? [00:08] ryah: yes [00:08] Tim_Smart: ryah: I have some javascript definitions if you want to look. [00:08] ryah: Tim_Smart: oh, okay [00:08] Tim_Smart: I discovered that magic not too long ago. And it makes me happy. [00:08] ryah: i've never tired to use it with js [00:09] cseeger has joined the channel [00:09] Tim_Smart: ryah: It's cool. C-] + g] are amazing. [00:09] cseeger: brand new to nodejs here, very stoked [00:10] JimBastard: yaaaa [00:10] cseeger: as far as install and package management is concerned, are ndistro and npm equiv? [00:10] isaacs_: cseeger: noooo [00:10] cseeger: JimBastard: yep, total n00b here [00:10] ryah: Tim_Smart: was that test working? [00:10] cseeger: isaacs_: really? hrmm... [00:10] isaacs_: cseeger: they're as different as possible. [00:10] Tim_Smart: ryah: https://gist.github.com/d5097413596b02faf718 [00:11] cseeger: isaacs_: i guess i read into them [00:11] cseeger: so if i'm installing from scratch [00:11] cseeger: ndistro? npm? [00:11] isaacs_: cseeger: npm's the way to go, imo. http://gist.github.com/579814 [00:12] isaacs_: cseeger: that's zero-to-node+npm from scratch, very easily [00:12] admc has joined the channel [00:12] cseeger: isaacs_: thanks man -- appreciate the tip [00:12] Tim_Smart: ryah: Also http://gist.github.com/605530 [00:12] isaacs_: cseeger: i'm also biased. npm works how i think a package manager should work. [00:12] charlenopires has joined the channel [00:12] cseeger: isaacs_: i'm a bundler guy at the moment in ruby [00:13] isaacs_: cseeger: you might like npm bundle, then [00:13] isaacs_: :) [00:13] cseeger: isaacs_: so, pretty familiar with that usage [00:13] cseeger: word, thanks [00:13] Gurpartap: http://github.com/astro/node-xmpp [00:13] Gurpartap: "You like Strophe.js? You bought a copy of Professional XMPP Programming with JavaScript and jQuery? You even want to use the same XMPP code for the web and node.js? Then you're wrong here: go to xmppjs http://github.com/mwild1/xmppjs " [00:13] Gurpartap: lol [00:13] isaacs_: write a package.json with your dependencies, and then "npm bundle some-folder" in your project root [00:13] isaacs_: cseeger: then require("./some-folder") to load em up. [00:13] CIA-77: node: 03Ryan Dahl 07master * r265cda9 10/ (lib/http.js test/simple/test-zerolengthbufferbug.js): [00:13] CIA-77: node: Fix zero length buffer bug for http res.end() [00:13] CIA-77: node: Reported by Kadir Pekel - http://bit.ly/btJGQ0 [00:14] abiraja has joined the channel [00:14] cseeger: isaacs_: i need to read up on npm, wasnt aware of package.json, etc [00:15] JimBastard: we need to get the twitter bots back online [00:15] JimBastard: where the hell did maushu disappear too [00:15] isaacs_: cseeger: once you install npm, do "npm help json" to learn all about what goes in it, what fields matter, etc. [00:15] isaacs_: cseeger: but the filename kinda tells you at least what it is: a json file that describes your package. goes in the package root [00:15] cseeger: isaacs_: gotcha [00:16] isaacs_: creationix: you liked that "node disappoints me" article? really? [00:16] creationix: I liked part of it [00:16] pedrobelo has joined the channel [00:16] isaacs_: i mean, i've always been skeptical about the "one language on server and client". [00:16] isaacs_: but yui really is kind of heading towards that. [00:17] creationix: I commented about where he was wrong [00:17] isaacs_: i see [00:17] isaacs_: didn't read the comments on either. [00:17] isaacs_: figured it was just worthless flamewar stuff [00:17] creationix: probably a good idea [00:17] isaacs_: oh, that was a retweet, i see. [00:17] creationix: ACTION is trying to implement b+tree using a few js objects as possible [00:18] isaacs_: creationix: that's awesome. [00:18] creationix: isaacs_: yep, I'm a lazy retweeter [00:18] creationix: I wish I'd actually used b+trees [00:19] creationix: most my experience is in scripting languages, structures like that don't make sense [00:19] creationix: not when something else is implemented in c [00:19] isaacs_: creationix: you doing this for some reason, or just for the lulz? [00:19] creationix: for nStore [00:19] isaacs_: so... lulz then ;P? [00:19] blowery_zzz has joined the channel [00:19] creationix: I really want it to compete with the likes of couch and mongo [00:20] isaacs_: yeah [00:20] creationix: and I think it can [00:20] creationix: with a LOT of work [00:20] isaacs_: if you can manage that, i'll be really impressed. [00:20] isaacs_: but i think the on-disk b-tree append-only thing is gonna have to move to c at some point [00:20] creationix: I'm not sure [00:20] creationix: I guess the only way to know for sure it to try [00:20] creationix: at a minumum I'll iron out more node performance bugs [00:21] creationix: and learn how databases work [00:22] isaacs_: yeah, totally [00:22] isaacs_: that's why i kinda half-jokingly said "lulz, then?" [00:22] atmos has joined the channel [00:22] isaacs_: i mean, you very well may finish nStore, optimize the hell out of it, step back, and go "wow, ok, so it's as fast as possible, and about an order of magnitude slower than couch. good to know" [00:23] isaacs_: but in the process, you'll learn, and maybe help make node faster. [00:23] isaacs_: so that's winful [00:24] ajsie has joined the channel [00:24] polotek has joined the channel [00:24] ajsie has left the channel [00:25] creationix: :) [00:25] xla has joined the channel [00:25] unomi has joined the channel [00:25] isaacs_: i don't think it'll be an OOM, but i mean, if youre really committed ot doing it 100% in js, yeah, you're gonna hit that wall sometime [00:26] jakehow has joined the channel [00:28] benburkert has joined the channel [00:29] dannycoates has joined the channel [00:30] AAA_awright_ has joined the channel [00:31] pedrobelo has joined the channel [00:31] JimBastard: this is soo crazy [00:31] JimBastard: just the act of including jsdom is causing the app to fail tests [00:31] JimBastard: without referencing it [00:32] JimBastard: just var jsDom = require("jsdom"); [00:32] JimBastard: nothing else [00:32] JimBastard: HOOOOOOWWWWWW [00:32] JimBastard: what could jsdom be doing globally [00:34] Tim_Smart: creationix: It could also be a opportunity to learn c++ :p [00:34] Gurpartap: how big is node? [00:34] Gurpartap: taking bit long for cloning :/ [00:34] Gurpartap: hah done [00:34] halfhalo: eleventy bytes [00:34] technoweenie: it includes v8 [00:34] technoweenie: a tarball is like 10MB or so [00:35] Gurpartap: cloning a repo is like bring a brand new car in your garage [00:36] halfhalo: yeah... you have to wait 500 miles to really push it [00:36] halfhalo: :p [00:37] cseeger: isaacs_: i used brew to install node; thereby /usr/local/Celler; that said install of npm per github seems to install npm in my node/bin. question -- is there an install of npm per node app? or is there a "global" instance, sort of like bundler. [00:38] polotek: Tim_Smart: learning C++ is for masochists [00:38] Tim_Smart: polotek: Fast masochists. [00:38] sanduz2 has joined the channel [00:40] MikhX_ has joined the channel [00:40] creationix: Tim_Smart: well, one of the goals of nStore is to never use C [00:40] creationix: to make it easier to use [00:40] Tim_Smart: creationix: OK. Well that will be you limitation I guess. [00:40] creationix: if I hit a hard performance wall, then I'll either give up or go the c++ route [00:41] Tim_Smart: your* [00:41] creationix: but I'm going to try plain js first [00:41] polotek: creationix: aren't you using eio [00:41] polotek: I've seen lots of talks about bottlenecks there [00:41] creationix: node uses eio [00:41] bmizerany has joined the channel [00:42] creationix: write combining helps a lot [00:42] polotek: creationix: yeah but I didn't know if you were doing something else with nstore [00:42] rcy has joined the channel [00:42] ryah: the bottlenecks are much less than originally seen [00:42] Tim_Smart: creationix: Sounds almost like a redis clone. redis is all async I think. [00:42] ryah: i've updated the benchmark in node's tree [00:42] ryah: if anyone wants to try [00:43] creationix: Tim_Smart: more like a couchdb clone, but I aim to make the core simple enough to implement redis as well [00:43] Tim_Smart: Ah OK. [00:43] Tim_Smart: So more a JSON store. [00:43] polotek: nedis? [00:43] polotek: nodis? [00:43] cseeger has joined the channel [00:44] creationix: it will support storing binary data too [00:44] creationix: nStore ;) [00:44] alexb_ has joined the channel [00:45] Tim_Smart: ryah: Hmm the 'make benchmark' errors. [00:46] bradleymeck has joined the channel [00:47] agilandfast has joined the channel [00:47] ryah: Tim_Smart: you have to do it manually [00:47] Tim_Smart: ok [00:48] fod has joined the channel [00:49] Tim_Smart: ryah: io.c was slower than io.js ^^ [00:50] jamescarr has joined the channel [00:50] creationix: AHA! [00:50] creationix: keepalive doesn't seem to work if you don't set the content-length header [00:52] ditesh|cassini has joined the channel [00:53] creationix: that explains why sometimes ab uses a port per request and sometimes reuses the same one over and over [00:53] creationix: I'm only sometimes setting the Content-Length header [00:53] ryah: Tim_Smart: what was the output? [00:53] alexb_: Is the v8 garbage collection issue overblown or a real thing? [00:54] Tim_Smart: ryah: https://gist.github.com/b0fe858ae10abf3f1577 [00:54] Tim_Smart: I didn't let the C version run very long though. [00:55] Tim_Smart: And my disk is slow. [00:55] creationix: woot, my hello-world test gets 23181.80 req/sec on my laptop [00:55] creationix: alexb_: depends on your use case [00:56] creationix: (with stock node 2.2 btw) [00:56] davidwalsh has joined the channel [00:57] Tim_Smart: creationix: I wrote a sendfile module a while ago: http://gist.github.com/570420#file_sendfile [00:57] Tim_Smart: 730mb/sec on my laptop. [00:57] creationix: Tim_Smart: no in-memory caching right [00:57] creationix: that's nice [00:57] Tim_Smart: creationix: sendfile is kernel level, so it handles the caching., [00:58] creationix: yeah, I guess you couldn't cache the stream even if you wanted to [00:58] creationix: since you never see it in user space [00:59] JimBastard: ahah! [00:59] JimBastard: i found a bug in jsdom [00:59] JimBastard: win [00:59] creationix: unpossible [00:59] JimBastard: ill show you [00:59] alexb_: Can I mitigate the problem by killing workers after a lot of requests? [00:59] creationix: I won't look [00:59] robotarmy: http://www.goodreads.com/book/show/9432278-mastering-node-js [00:59] creationix: alexb_: that's only needed for memory leaks [01:00] Tim_Smart: Memory is a weird thing in node. [01:00] creationix: alexb_: I guess that might help [01:00] creationix: better to just fix your code to not cause the wrath of the gc [01:00] Tim_Smart: prototypes + constructor functions help a heap there. [01:00] Tim_Smart: As I found out. [01:01] alexb_: I have heard the benchmark is flawed because it is the V8 json parser that is broken [01:01] Tim_Smart: Hence why I tend to write control flow with constructors these days. [01:01] JimBastard: http://github.com/tmpvar/jsdom/blob/master/lib/jsdom/browser/index.js#L9\ [01:01] JimBastard: http://github.com/tmpvar/jsdom/blob/master/lib/jsdom/browser/index.js#L9 [01:01] JimBastard: fail [01:01] JimBastard: fail [01:01] JimBastard: lol [01:02] polotek has joined the channel [01:02] JimBastard: WHO IS YOUR PROTOTYPE AND WHAT DOES HE DOES [01:02] JimBastard: do [01:02] JimBastard: at least i know why including jsdom was killing the page [01:02] creationix: alexb_: all benchmarks are flawed [01:02] creationix: real apps almost always show very different performance profiles [01:03] Tim_Smart: creationix: http://github.com/biggie/biggie-router/blob/master/lib/biggie-router/modules/sendfile.js [01:03] creationix: JimBastard: next time, just Object.freeze all the built-in prototypes before requireing a library [01:03] creationix: that will find the culprit pretty fast [01:04] creationix: Tim_Smart: nice [01:04] Tim_Smart: Hmm. Should make a library called freeze, that freezes global and the prototypes. [01:04] creationix: and all node builtins [01:04] Tim_Smart: Yeah. [01:04] creationix: never to be used in production, just for development [01:04] creationix: it's really slow [01:05] Tim_Smart: creationix: Yeah. [01:05] creationix: freeze global [01:05] creationix: I haven't thought of that [01:05] creationix: ACTION wonders what that really does [01:06] Tim_Smart: creationix: So people can't go: global.iAmAStupidDeveloperThatDoesntCareAboutPolution = true; [01:06] creationix: sure, I'm more interested in people forgetting to put var in front of a variable and have it throw [01:06] creationix: ACTION tests some code... [01:07] Tim_Smart: creationix: That is actually a good thing I would say. [01:07] Tim_Smart: For development anyway. [01:07] creationix: hmm, doesn't seem to work [01:07] Blackguard has joined the channel [01:07] langworthy has joined the channel [01:07] Tim_Smart: How about seal :p [01:07] creationix: I thought declerations without a var went to global [01:07] Tim_Smart: Oh. [01:07] sonnym: int the example from http://github.com/visionmedia/masteringnode/blob/master/chapters/events.md, what's the __proto__ in Dog.prototype.__proto__ = EventEmitter.prototype; ? [01:07] creationix: I use seal for instances after the constructor has been called [01:08] sonnym: s/int/in/ [01:08] creationix: again slow, but forces good coding practices [01:08] Tim_Smart: sonnym: Inheritence. [01:08] Tim_Smart: s/ence/ance/ [01:08] creationix: node's global seems funny to me [01:08] sonnym: if I try anything similar to that with the __proto__, seems undefined. using exports.prototype = EventEmitter.prototype works though [01:09] Tim_Smart: creationix: Think the browsers window. [01:09] sonnym: s/seems/complains about/ [01:09] creationix: Tim_Smart: it's not the same [01:09] creationix: if I saw `foo = true` in a browser then `window.foo` will be true [01:09] creationix: but not with global i nnode [01:09] Tim_Smart: creationix: Yeah, because modules are run in wrappers, not contexts. [01:10] creationix: that should matter if you forget var [01:10] creationix: *shouldn't [01:10] Tim_Smart: Hmm not sure on that one. [01:10] creationix: sonnym: you don't want to reuse the same prototype object if you're going to ever change it [01:10] creationix: it will change the original one too [01:11] creationix: also Object.freeze(window) doesn't seem to do anything in chrome 7 [01:11] creationix: works on other objects [01:11] c4milo1 has joined the channel [01:12] rcy has joined the channel [01:12] jamescarr: creationx: freezing window? [01:12] jamescarr: good grief man [01:12] sonnym: ah, I think the problem in the example is that it's Class.prototype.__proto__ . . . exports.__proto__ works well [01:13] bradleymeck: creationix, theres is a ticket on that [01:13] jamescarr: heh, he vanished [01:13] c4milo1 has joined the channel [01:14] polotek has joined the channel [01:15] boaz_ has joined the channel [01:16] jchris has joined the channel [01:16] jacobolus has joined the channel [01:18] ryah: do people want the repl color stuff? [01:18] blowery_zzz has joined the channel [01:18] ryah: i like it, personally [01:18] dnolen has joined the channel [01:19] konobi: ryah: yar, seems good [01:20] rcy: ryah: I like it, but it would be nice if it was disabled automatically if TERM=dumb [01:21] ryah: who has a dumb term? [01:21] boboroshi_ has joined the channel [01:22] konobi: cygwin users? [01:23] deepthawt has joined the channel [01:24] ryah: i dont think so [01:25] rcy: emacs shell buffers are dumb [01:25] rcy: I see the color escape codes there [01:26] hassox: hey guys [01:26] ryah: rcy: ah [01:26] hassox: any good libs for bonjour? [01:26] CIA-77: node: 03Evan Larkin 07master * r914ff78 10/ lib/fs.js : fs.ReadStream: Passing null for file position on all reads except the first read of a range read. - http://bit.ly/9Cx1Jb [01:26] _numbers has joined the channel [01:26] steadicat has joined the channel [01:26] _numbers has left the channel [01:26] ryah: hassox: http://github.com/agnat/node_mdns [01:27] sonnym: ry, I had a problem earlier with path.join(".", dir, file) when trying to require a bunch of files in a directory [01:27] sonnym: not sure if that's expected behavior or a bug [01:28] hassox: ryah: grassy arse [01:28] ryah: hassox: :D [01:28] matt_c has joined the channel [01:28] ryah: sonnym: i don't know - do you have some code i can test? [01:30] sonnym: um, this is what I ended up with: [01:30] sonnym: var test_file = require("." + path.join("/", dir, file)) // path.join(".", dir, file) does not work as expected [01:30] ryah: what is dir and file? [01:30] sonnym: dir is my unit tests folder, file is a filename in it [01:30] sonnym: basically trying to write a simple test suite [01:31] sonnym: I can give you some more context if you need, but I haven't thrown anything up on github yet [01:33] bentruyman has joined the channel [01:33] abiraja has joined the channel [01:37] boboroshi_ has joined the channel [01:43] ditesh|cassini has joined the channel [01:44] dipser: does someone know how this hydrate in mongoose works? [01:45] dpritchett has joined the channel [01:45] bradleymeck has left the channel [01:48] dipser: this line for example: Users.find().all(function (arr) {console.dir(arr);}); [01:49] dpritchett: i like connect already [01:51] dpritchett: is there a preferred way to integrate socket.io with Connect? [01:53] dipser: just put the server var into io.listen [01:55] sudoer has joined the channel [01:57] dpritchett: thanks [01:58] sanduz2 has joined the channel [01:59] ajsie has joined the channel [01:59] aconbere has joined the channel [02:00] falconair has joined the channel [02:05] sechrist has joined the channel [02:06] sechrist has joined the channel [02:06] sechrist has joined the channel [02:07] elijah-mbp has joined the channel [02:08] shripadk has joined the channel [02:09] sechrist has joined the channel [02:11] sechrist has joined the channel [02:11] bartt has joined the channel [02:12] sechrist has joined the channel [02:14] sechrist has joined the channel [02:15] technoweenie has joined the channel [02:17] cloudhead has joined the channel [02:17] saikat has joined the channel [02:17] sechrist has joined the channel [02:17] bpot has joined the channel [02:18] sechrist has joined the channel [02:19] sechrist has joined the channel [02:19] sechrist has joined the channel [02:20] sechrist has joined the channel [02:23] ekidd has joined the channel [02:23] sechrist has joined the channel [02:24] sechrist has joined the channel [02:27] sechrist has joined the channel [02:28] sechrist has joined the channel [02:28] sechrist has joined the channel [02:29] sechrist has joined the channel [02:30] sechrist has joined the channel [02:30] reid has joined the channel [02:31] sechrist has joined the channel [02:32] reid1 has joined the channel [02:33] sechrist has joined the channel [02:33] jacobolus has joined the channel [02:34] sechrist has joined the channel [02:34] gbot2 has joined the channel [02:34] sechrist has joined the channel [02:35] dipser: hi i am using node.js+mongoose and getting this: http://pastie.org/1192589 but isnt there a way to get a plain object without this __doc ? [02:35] dipser: WAKE UP XD [02:36] sechrist has joined the channel [02:38] sechrist has joined the channel [02:39] sechrist has joined the channel [02:40] mtodd has joined the channel [02:46] mtodd has joined the channel [02:46] themiddleman has joined the channel [02:49] deepthawtz has joined the channel [02:51] jakehow has joined the channel [02:54] tapwater has joined the channel [02:56] CIA-77: node: 03Ryan Dahl 07simple_libev_config * r24334d9 10/ (8 files in 8 dirs): Simpler libev and libeio config - http://bit.ly/dd4RjC [02:56] dohtem has joined the channel [02:56] dohtem has joined the channel [02:59] mjr_ has joined the channel [02:59] brianmario has joined the channel [03:00] dipser_ has joined the channel [03:00] ditesh|cassini has joined the channel [03:10] meso has joined the channel [03:13] LionMadeOfLions has joined the channel [03:13] aconbere has joined the channel [03:14] pedrobelo has joined the channel [03:15] Gurpartap: halfhalo: good wishes for exam :D [03:16] satori_ has joined the channel [03:17] dpritchett: how can i generate a UID using node? [03:18] cferris has joined the channel [03:21] sechrist has joined the channel [03:25] steadicat has joined the channel [03:28] wakawaka: is there anything for 3d js graphics? [03:28] pedrobelo has joined the channel [03:29] wakawaka: like js opengl? [03:29] dguttman_ has joined the channel [03:29] stephenjudkins has joined the channel [03:30] Tim_Smart: wakawaka: I think so. Google + the module list should help there. [03:31] wakawaka: nodejs modules? or are you thinking google's o3d plugin? [03:37] wakawaka: oh cool, found the modules, thanks Tim_Smart [03:38] langworthy has joined the channel [03:39] threeve has joined the channel [03:40] Me1000 has joined the channel [03:41] Aria has joined the channel [03:41] wakawaka has joined the channel [03:42] sudoer has joined the channel [03:48] ajpiano has joined the channel [03:54] deepthawtz has joined the channel [03:55] noahcampbell has joined the channel [03:55] softdrink has joined the channel [04:19] mtodd has joined the channel [04:20] sprout has joined the channel [04:22] EyePulp has joined the channel [04:25] Tim_Smart: mjr_: I have played with a new sendCommand system, I'm about to bench it. [04:25] mjr_: cool [04:26] mattly has joined the channel [04:26] mjr_: Any way you can patch in your parser to the rest of node_redis? I want to play with it, but I don't have time right now to connect it up. [04:26] mjr_: If it's faster and passes all of the tests, Ii'd love to get it in. [04:27] Tim_Smart: mjr_: Heh I have a completely new command sender and parser. About to test it. [04:27] Tim_Smart: I don't want to create another library though. [04:27] Tim_Smart: You can steal any credit. [04:27] mjr_: Ha [04:27] mjr_: I'll proxy all of the credit to you [04:28] Tim_Smart: Well, let the benches commence. [04:28] mjr_: I'm happy to keep maintaining the overall package, even if you end up rewriting most of it. :) [04:28] Tim_Smart: I'll push it to my fork. [04:28] Tim_Smart: It is just the basics at this stage. [04:29] dgathright has joined the channel [04:30] Tim_Smart: Hmm it appears I can't push a new repo to a branch. [04:30] jpld has joined the channel [04:31] reid has joined the channel [04:31] Tim_Smart: mjr_: http://github.com/Tim-Smart/node-redis [04:31] Tim_Smart: Will remove it soon. [04:31] marshall_law has joined the channel [04:32] Tim_Smart: mjr_: I'm not sure if pre-alloc'ing the buffers will make a difference. [04:32] dpritchett: i cannot figure out how to get data out of the messages i'm receiving with socket.io [04:32] [[zz]] has joined the channel [04:32] DoubleV has joined the channel [04:32] dpritchett: i build a JSON string client side and push it to the server and then i get [object Object] on the server and i can't figure out how to get inside it [04:32] dpritchett: anyone done this before? [04:33] Aria: for loop over it? inspect it? [04:33] mjr_: Tim_Smart: I'm pretty sure that we can get a giant speedup for the "lots of small responses" case if we had a way to know whether using a JavaScript String was acceptable, or whether the data was binary and needed a buffer. [04:33] mjr_: asdlk [04:33] mjr_: I typed a big thing, and Colloquy ate it. [04:34] dpritchett: aria: i don't really know how to inspect it - not sure what debugging tools are available to me when I run "node server.js" [04:34] Tim_Smart: mjr_: I optimise for the common cases. [04:34] Tim_Smart: mjr_: E.g http://github.com/Tim-Smart/node-redis/blob/master/parser.js#L90-100 [04:34] mjr_: Do you use strings for bulk replies? [04:34] randy_ has joined the channel [04:35] Tim_Smart: mjr_: No. I use a custom slice where I can. [04:35] Tim_Smart: http://github.com/Tim-Smart/node-redis/blob/master/parser.js#L148-156 [04:35] Tim_Smart: So all bulks are buffers. [04:35] Aria: dpritchett: require('sys').inspect(object) returns a verbose string looking at the object [04:35] dpritchett: thanks! [04:35] Aria: Sure thing. [04:36] mjr_: Tim_Smart: all bulks should totally use buffers, I mean, it's a binary safe protocol, and we have a binary safe data type. [04:36] Aria: You can also install node-inspector and do neat stuff [04:36] mjr_: The thing is, strings are so much faster for most things than buffers. [04:36] Tim_Smart: mjr_: Every else, I use strings. [04:36] bentruyman: Aria: couldn't you just use the new console API instead of `sys.inspect`? [04:37] marienz has joined the channel [04:37] Aria: Oh, probably. [04:37] Tim_Smart: mjr_: E.g. http://github.com/Tim-Smart/node-redis/blob/master/parser.js#L116-143 [04:37] mjr_: Tim_Smart: but aren't get/set replies sent as a bulks? [04:37] bentruyman: I wasn't sure if there was any difference anymore between basic `console.log` and `sys.inspect` [04:37] mjr_: That's the common case, for sure. [04:37] Tim_Smart: mjr_: Ah, for sending commands yeah. [04:38] Tim_Smart: mjr_: What I'm about to try http://github.com/Tim-Smart/node-redis/blob/master/index.js#L151-178 [04:38] dpritchett: the inspected output is '[object Object]' [04:38] dpritchett: does that mean i converted my json to a string and lost it altogether? [04:39] Aria: Sounds like it. [04:39] mjr_: Tim_Smart: no, I mean for parsing replies. If you do get key val, it'll send back a bulk reply. If we could use a string for the bulk reply, it'd be faster. I submit that bulk replies are the common case in redis, but that most people don't end up using binary data. [04:39] micheil: arg... [04:39] micheil: forgot to work on the doc patch on a separate branch. [04:39] Aria: Aright. Bed time. Night, all! [04:39] dpritchett: night! [04:40] Tim_Smart: mjr_: Oh right. The only overhead we are talking about here is the 'new Buffer' and settings the vals. [04:40] Tim_Smart: mjr_: But generally you have no idea what is going to come back from a get etc. [04:40] mjr_: I don't have data to back this up, just a guess. [04:41] mjr_: That's the issue. If you could somehow know that strings are fine, I THINK it'd be a lot faster. [04:41] micheil: hmm.. [04:41] Tim_Smart: mjr_: Maybe just find where the scale tips, then hard code a length limit. [04:42] mjr_: yeah, that's what I did for the tostring thing, and it helped a lot. [04:42] sanduz2 has joined the channel [04:42] Tim_Smart: mjr_: But you don't want to enforce type checking on your users... [04:42] mjr_: But this is not a length issue, it's a "will your data be ok in a string" issue. [04:42] mjr_: so yeah, that sucks [04:43] Tim_Smart: Well, buffers aren't all that bad... [04:43] Tim_Smart: :p [04:43] overra has joined the channel [04:43] mjr_: buffers are great. They just aren't as fast as strings when you have to leave V8 land. [04:43] Tim_Smart: mjr_: OK. I'm going to try a few benches with this new code. [04:44] mjr_: Honestly the [] access is way more costly than I was expecting. [04:44] mjr_: If strings were for sure OK, you could just convert the entire input buffer to a string and do it all as strings. [04:45] mjr_: But that'd be crazy. [04:45] sudoer has joined the channel [04:45] Tim_Smart: mjr_: Sending strings over TCP can get slow for large amounts of data. [04:45] mjr_: why? [04:45] mjr_: it all converts to a buffer before node can write it anyway [04:45] Tim_Smart: Not sure, something to do with v8's heap. [04:46] mjr_: Well, I dunno about sending. I haven't thought about that much. [04:46] Tim_Smart: mjr_: sending is half the problem as well :p [04:46] micheil: all this talk of buffers reminds me that I need to write a streaming websocket packet parser. [04:49] omarkj has joined the channel [04:49] noahcampbell has joined the channel [04:50] SubStack: hmmm I don't like ejs anymore [04:50] SubStack: unless I figure out how to load files from within the templates [04:52] SubStack: well, I could pass in res.render as a local, but that feels icky [04:54] dgathright_ has joined the channel [05:07] SubStack: these templating engines are all allergic to the file system [05:14] aussiegeek has joined the channel [05:17] SubStack: oh it calls them partials, bah [05:18] stephenjudkins_ has joined the channel [05:20] marienz has joined the channel [05:23] ajpiano has joined the channel [05:25] gerred has joined the channel [05:27] dnolen has joined the channel [05:33] SubStack: express documents how it does partials and ejs says it supports partials [05:33] SubStack: but I have yet to see how they work together [05:38] dpritchett has left the channel [05:40] dmcquay has joined the channel [05:41] dmcquay: hey, anyone want to chat about JSGI vs Connect? [05:41] dmcquay: I've been reading around a bit [05:41] dmcquay: and I'm feeling like JSGI looks more promising [05:42] dmcquay: but i realize it's not totally apples to apples [05:42] dmcquay: but, apples to apples or not, currently, you kind of have to pick one [05:43] micheil: I've been using connect (albeit through express) but I've quite liked it [05:44] micheil: as for jsgi, I've never used it. [05:44] micheil: it doesn't really interest me in taking a standard from something like python or ruby and shoving it on top of node. [05:45] langworthy has joined the channel [05:46] sudoer has joined the channel [05:47] amuck has joined the channel [05:49] BHSPitMonkey has joined the channel [05:49] damien has joined the channel [05:50] BHSPitMonkey: Anyone worked with Socket.IO? I'm sending an object to the client, but the client is receiving it with a prepended "~j~" [05:50] BHSPitMonkey: I'm pretty new to JS, so I'm not sure if that's some convention I haven't seen before [05:50] micheil: yeah [05:50] micheil: that'd be something to do with how sockets.io works [05:51] micheil: give me 30 minutes and I'll be able to help you out. [05:51] BHSPitMonkey: heh [05:52] nroot7 has joined the channel [05:52] nroot7: Is anyone using riak here ? [05:52] Gla has joined the channel [05:52] micheil: nroot7: I've played with it [05:52] micheil: BHSPitMonkey: actually about 10 minutesa [05:53] nroot7: I am experimenting with backing store for my node app, I have tried couchdb and now I am trying riak [05:53] mopemope has joined the channel [05:53] nroot7: but I have no idea about riak, can you tell me something how it differs from other nosql databases [05:55] micheil: nroot7: look on their documentation site [05:55] mjr_: nroot7: riak is all about scaling large, across multiple computers [05:55] micheil: it's basically to do with reliability & scaling [05:55] mjr_: It has an HTTP interface as well, which is nice, although it's not as nice of an HTTP interface as CouchDB, IMO. [05:55] mjr_: So that makes it a pretty good fit for node. [05:58] BHSPitMonkey: micheil: okay, apparently the socket.io client is supposed to check for that prefix as the message is coming in, and convert it to a js object if it's there [05:58] micheil: BHSPitMonkey: yeah [05:58] micheil: BHSPitMonkey: that'd be it. [05:58] BHSPitMonkey: but it isn't :) [05:59] BHSPitMonkey: my client's message handler is being given the string, with the prefix still there [05:59] BHSPitMonkey: and I'm woefully trying to call upon it like an object [06:03] marienz has joined the channel [06:03] saikat has joined the channel [06:04] micheil: okay.. back. [06:04] micheil: BHSPitMonkey: do you have any code you could show via gist? [06:05] dmcquay: micheil - doesn't seem to me that JSGI has anything to do with Python or Ruby [06:05] dmcquay: other than that it borrows from some lessons learned [06:05] micheil: dmcquay: I'm pretty sure it's based on another spec. [06:05] dmcquay: similar to Rack spec [06:07] micheil: dmcquay: I guess in the end, use what you want, it doesn't really matter too much. [06:07] micheil: the world won't implode, even if you decide to just use the http.Server instance and if/else case logic. [06:07] BHSPitMonkey: micheil: https://gist.github.com/c71ae34b2e0e9a0403cd [06:08] dmcquay: micheil - ;) [06:08] micheil: okay, so it's an issue on the client-side [06:08] dmcquay: thanks for the input [06:08] sveimac has joined the channel [06:08] BHSPitMonkey: yes, the server (socket.io-node) is sending the client an object [06:09] BHSPitMonkey: and when the client receives it in that on('message' function, it's not de-stringified [06:09] BHSPitMonkey: yes, I could just substr out the object there myself and parse it, but socket.io is supposed to be doing that for me :) [06:11] micheil: which browser is this occuring in? [06:11] BHSPitMonkey: chromium [06:11] micheil: and which transport? [06:11] micheil: okay, chromium would be websockets [06:12] BHSPitMonkey: websocket, yeah [06:12] BHSPitMonkey: and my client is including the "recommended", cdn-hosted socket.io script [06:13] BHSPitMonkey: socket.io-node server is latest git revision [06:13] dannycoates has left the channel [06:13] BHSPitMonkey: well, I can work around this for now [06:15] MikhX has joined the channel [06:16] micheil: BHSPitMonkey: maybe use the npm version? [06:16] BHSPitMonkey: npm? [06:17] BHSPitMonkey: hate to do this, but I really have to go [06:18] BHSPitMonkey: thanks for looking at it, micheil. If you need to tell me something, highlight BHSPitCS1 and I'll see it in the morning :) [06:18] micheil: node package manager [06:18] micheil: npmjs.org [06:18] BHSPitMonkey: ah [06:19] BHSPitMonkey: but that's serverside right [06:19] BHSPitMonkey: my server seems to correctly be pushing the stringified object over the socket, and the onmessage handler is even getting it intact [06:19] BHSPitMonkey: the client just isn't unwrapping it completely [06:20] BHSPitMonkey: (good night!) [06:22] hzin has joined the channel [06:26] ivanfi has joined the channel [06:28] ollie has joined the channel [06:28] codetonowhere has joined the channel [06:29] ditesh|cassini has joined the channel [06:29] MikhX has joined the channel [06:30] killfill has joined the channel [06:30] Tim_Smart: mjr_: It is faster, but not by much http://github.com/Tim-Smart/node-redis/blob/master//bench.js [06:30] Tim_Smart: I'll add a get test as well. [06:30] mopemope has joined the channel [06:32] byrus has joined the channel [06:37] matjas has joined the channel [06:37] Tim_Smart has joined the channel [06:39] tekky has joined the channel [06:43] killfill has joined the channel [06:45] marienz has joined the channel [06:48] aussiegeek has joined the channel [06:48] ph^ has joined the channel [06:50] ph^ has joined the channel [06:52] dgathright has joined the channel [06:58] bpot has joined the channel [06:59] stagas has joined the channel [06:59] daleharvey has joined the channel [07:00] jchris has joined the channel [07:01] sanduz2 has joined the channel [07:05] SvenDowideit has joined the channel [07:05] stagas: will anyone be making a game for https://gaming.mozillalabs.com/ [07:09] zum: hmm, wonder if they'll accept WebGL [07:10] zum: "Entries should be fully operational games, built to run in Firefox 4 and other modern Web browsers without any plug-ins" [07:10] ryah: mjr_: did you see that video demo using pcap? [07:10] stagas: it says it should run at least in FF 4 of that time, but the community gets to vote so it better be cross browser :) [07:10] jacobolus: oh man, jan 11 is way too far away [07:10] jacobolus: the winners will dump a couple months of solid effort in [07:11] stagas: strange they don't mention node.js/javascript as server side when it clearly has an edge [07:11] jacobolus: stagas: why? [07:11] stagas: why what? [07:11] jacobolus: why does it have an edge? [07:11] jacobolus: there are plenty of reasonable ways to write game servers [07:12] stagas: sure [07:12] jacobolus: (though I wouldn't advise a game server in PHP, despite its inclusion on that page) [07:12] stagas: if you want to spend 2 out of 3 months figuring out sockets scalability concurrency [07:13] jacobolus: there are several nice python options. for example, stackless, twisted, pyevent [07:13] jacobolus: or you could use erlang [07:14] stagas: why not use node? [07:14] ryah: erlang would be a good option [07:14] ryah: twisted . meh :) [07:15] jacobolus: well, for simple stuff twisted is pretty easy. just copy some existing example and tweak a bit :) [07:15] jacobolus: stagas: or eventlet is neat too [07:15] jacobolus: actually, eventlet might be the nicest of the python options [07:16] ryah: it's so OO-y [07:16] jesusabdullah: I think I'd have a hard time doing evented stuff in python :/ [07:16] jesusabdullah: Haven't tried it, but [07:16] stagas: zum: it mentions WebGL here: http://mozillalabs.com/gaming/2010/09/30/game-on-2010-is-here/ [07:17] jesusabdullah: i guess I've just gotten really used to node-style [07:17] mjr_: ryah: yeah, I saw that pcap thing. It was cool. I think it only works on already saved pcap files though, no? [07:17] mjr_: Either way, cool. [07:18] ryah: yeah - is he using your lib? [07:18] mjr_: oh no [07:19] mjr_: They've had their own pcap thing for a long time. [07:19] mjr_: So they've got a database of pcap files, and you can upload them. Then their tool runs over them and tells you interesting things. [07:19] jacobolus: jesusabdullah: the nice thing about eventlet is that it has actual coroutines, so you don't end up running yourself headlong into callback hell after a few months adding features [07:19] mjr_: Pretty neat, but not at all live capture or analysis. [07:20] jesusabdullah: eventlet, huh? [07:20] jesusabdullah: Hmm [07:20] jesusabdullah: Yeah, I bet callbacks in python are Hell :( [07:20] mjr_: ryah: he actually just responded to my message on the list confirming that none of it is live. [07:20] jacobolus: jesusabdullah: http://eventlet.net/doc/examples.html [07:20] jesusabdullah: unless there's a good way to leverage decorators to avoid them, like with @_o [07:20] jacobolus: callbacks anywhere are hell [07:20] jacobolus: :) [07:20] mjr_: ryah: all of which means that somebody should make a live version! [07:20] jesusabdullah: They're not bad in node [07:21] jesusabdullah: I mean, multiple nested callbacks can be pretty bad, but inlining them helps [07:21] ryah: i nerded out with selene's makefile the other day [07:21] guitt has joined the channel [07:22] ryah: and it was so enjoyable that i'm thinkinga bout rewriting wscript with make now [07:22] jesusabdullah: Also helps to use other tools like events and method chaining when when possible :P [07:22] jesusabdullah: what makefile is that, ryah? [07:22] ryah: honestly, i haven't spent an enormous amount of time with make before [07:22] ryah: i just knew the basics [07:22] ryah: but all those little gnu make features are pretty nice [07:23] ryah: jesusabdullah: http://github.com/pquerna/selene/blob/master//Makefile [07:23] vmthehut has joined the channel [07:23] shockie has joined the channel [07:23] jesusabdullah: eventlet actually looks pretty nice for lightweight event-based action [07:23] jesusabdullah: jacobolus: That works in vanilla cpython? [07:23] jesusabdullah: Not stackless or any weird crap like that? [07:23] jacobolus: jesusabdullah: right [07:24] jesusabdullah: awesome [07:24] ryah: http://github.com/pquerna/selene/blob/master//Makefile#L96 <-- addprefix [07:24] jesusabdullah: I'll have to try remembering that [07:24] guitt: hello, i'm trying to pipe three processes together like ps ax | grep ssh | sed "s/ssh/SSSSHH/" [07:24] jesusabdullah: didn't you just do it there, guitt? ;) [07:25] guitt: the example from the docs works [07:25] guitt: but adding a process make it hang [07:25] guitt: jesus, i'm doing with spawn [07:25] guitt: not from bash [07:25] jesusabdullah: Ah [07:25] jesusabdullah: So you did look at that example [07:25] jesusabdullah: Hmm [07:25] guitt: yeah [07:26] guitt: the example works as advertised [07:26] alexb_: Is there an async Json parser? [07:26] guitt: but when i add a third process it hangs [07:26] jesusabdullah: tbh it's kinda awkward piping processes entirely in node, imo. If you need to do a lot of that, it might be better to make a shell script and run that with one child_process [07:26] hansek has joined the channel [07:26] ryah: alexb_: http://lloyd.github.com/yajl/ [07:27] jesusabdullah: imo, ymmv, etc. But I went through that once, and ended up running a shell script and it was a lot easier [07:27] ryah: i don't know if it has node bindings... [07:27] alexb_: Thx [07:27] guitt: well i'm trying to make a kind of shell scripting library [07:27] ryah: http://bitbucket.org/nikhilm/yajl-js/ [07:27] jesusabdullah: Oh really? [07:27] jesusabdullah: That sounds interesting [07:28] ryah: guitt: how so? [07:28] jesusabdullah: Well, having read the example, you probably know as much as we do, unless you post a gist or pastie or something [07:28] ryah: like what kind of syntax? [07:28] jesusabdullah: in which case someone could look at it [07:28] guitt: http://gist.github.com/605882 [07:28] jesusabdullah: I should use my prompt module <_< just have been busy and lazy [07:29] jesusabdullah: haven't done hacking in days [07:29] jesusabdullah: ! [07:29] hannesw has joined the channel [07:29] ryah: ps('ax').$.grep('ssh').$.sed('s/ssh/SSSSH/') [07:29] ryah: :) [07:29] guitt: sh('ps ax')('grep ssh')('sed s/ssh/SSSSHH/') [07:29] jesusabdullah: $? [07:29] ryah: oh yeah, that's less stupid than mine :) [07:29] jesusabdullah: What's the dollar? [07:30] ryah: just a variable [07:30] jesusabdullah: ah [07:30] guitt: well i like chaining [07:30] ryah: guitt: i really like this idea [07:31] guitt: thanks i really like node [07:31] adambeynon has joined the channel [07:31] jesusabdullah: chaining is off the chain! [07:31] guitt: the problem is if you want to pipe stderr [07:33] ryah: fs.ReadStream('/tmp/bigfile').pipe(response) [07:33] guitt: it goes like sh('ls nonexistentfile /etc').streams.out('grep whatever').err('grep somethingelse') [07:33] zum: hmm, could that be made into something where you could split and combine outputs [07:33] ryah: sh('cat /tmp/bigfile').pipe(response) [07:34] saikat has joined the channel [07:34] guitt: i'm confused, are you talking about chaining or about the gist? [07:34] hansek__ has joined the channel [07:35] path[l] has joined the channel [07:38] daglees has joined the channel [07:38] daglees has joined the channel [07:38] guitt: zum, what do you mean by split and combine? [07:40] hansek_ has joined the channel [07:41] jesusabdullah: guitt: I'd try running that, but I don't have node on this puter :( [07:41] zum: guitt: I'm not sure about how the syntax would work, but it might be something like a generalization of stdin/stderr [07:43] guitt: zum: i really don't read you, i want to write shell scripts in node, so i need to handle stdin, out, err and the exit status [07:44] guitt: zum: what do you mean by generalization? [07:44] zum: let's try a hypothetical example [07:44] zum: var stream = sh('cat foo'); [07:44] zum: var s1 = stream.filter('grep something'); [07:45] zum: var s2 = stream.filter('grep -v something'); [07:45] jesusabdullah: zum: man tee [07:45] q_no has joined the channel [07:45] jesusabdullah: I believe it's designed to do stuff like that [07:45] jesusabdullah: it's just not the most natural thing ever is all [07:45] saimon_ has joined the channel [07:46] ryah: http.put('/jane').pipeIn('/tmp/jane.json').on('response', function (res) { console.log(res.headers); [07:46] ryah: }); [07:46] ryah: after watching http://blog.fupps.com/2010/04/26/resty/ [07:46] zum: jesusabdullah: yes, exactly what tee tries to do in the shell, except without the intermediate files [07:48] guitt: i'll copy some mockups [07:48] zum: seems like an interesting problem to think about right now [07:49] hansek___ has joined the channel [07:50] jesusabdullah: zum: Yeah, should be pretty natural with node, I'd think [07:50] aabt has joined the channel [07:50] karboh has joined the channel [07:51] zum: resty seems fun [07:51] jesusabdullah: resty? [07:52] viktors has joined the channel [07:52] zum: like cloudhead's http-console but in the shell [07:52] zum: ^ see ryah's video [07:52] felixge has joined the channel [07:52] guitt: http://gist.github.com/605896 [07:53] jesusabdullah: ah [07:54] nroot7: I recently read an article on HN about 500K connections per server using java nio [07:54] ollie has joined the channel [07:54] stephenjudkins has joined the channel [07:54] nroot7: and some other posts comparing node.js response times after 50K requests [07:54] guitt: the syntax is a bit awkward but it's because chaining is a limited control flow [07:54] jesusabdullah: cute [07:55] nroot7: so I tried running ab on hello world node with 100 concurrent connections [07:55] nroot7: and it died :-( [07:55] nroot7: is this expected [07:55] nroot7: or I did something wrong [07:55] jesusabdullah: That sounds pretty unexpected! [07:55] virtuo has joined the channel [07:55] stride: did you get any details on why it died on the console? [07:56] guitt: anyway, has anyone looked at the gist http://gist.github.com/605882 [07:56] nroot7: let me run it again [07:56] guitt: does it hang for you too [07:58] saimon_ has joined the channel [07:59] jesusabdullah: guitt: Syntax does look a bit odd :( [08:01] guitt: i think it's okay if you compare it to having crazy bash strings inside you code [08:02] nroot7: this is the ab command "ab -n 100000 -c 1000 -g out.dat http://127.0.0.1:8124/" [08:03] nroot7: and after some 38K requests ab stopped with timeout [08:03] guitt: there is a second more verbose, but less ambiguous syntax [08:04] gregerolsson has joined the channel [08:07] guitt: other syntax: http://gist.github.com/605907 [08:09] guitt: but all of this won't work as long as i can't pipe three processes [08:10] guitt: i've tried with a FIFO too [08:12] mAritz has joined the channel [08:13] jesusabdullah: guitt: Yeah, it's hard to think of how you could make it better. I thought about trying to use objects, but it'd be a lot more verbose [08:13] jesusabdullah: Hmm [08:13] jesusabdullah: Yeah, that's a hard one [08:14] jesusabdullah: I liked the sh(a)(b)(c) stuff [08:14] jesusabdullah: Maybe [08:14] aliem has joined the channel [08:15] jesusabdullah: sh(a)(stdout,stderr) [08:15] jesusabdullah: but for nesting things you'd need the full object, not just a string [08:15] jesusabdullah: I gotta go to bed [08:15] guitt: alright [08:15] guitt: thanks [08:16] guitt: i'll keep trying [08:16] jesusabdullah: good apis are hard D: [08:17] saimon_ has joined the channel [08:17] guitt: it would be easier if i could make at least one work [08:17] jesusabdullah: yeah [08:22] delapouite has joined the channel [08:24] hoodoos has joined the channel [08:25] hoodoos: hey guys, is there any way to avoid modules caching when require occures? [08:25] V1 has joined the channel [08:25] mikeal has joined the channel [08:26] hoodoos: i mean i'd like to load one module several times with code changes.. [08:26] jesusabdullah: guitt: Events may be the best away to deal with teeing and combining--maybe having your module making a | b | c easier but exposing the internal events would be the way to go [08:27] gregerolsson: hoodoos: Not that I'm aware of (it still might) but I know of some project that watches all scripts and restarts node process if they've changed. [08:28] gregerolsson: hoodoos: http://github.com/shimondoodkin/nodejs-autorestart [08:28] tisba has joined the channel [08:29] hoodoos: gregerolsson, oh thanks i guess if i dig into it i can figure out how it avoids caching :) [08:29] gregerolsson: hoodoos: I don't think it avoids it, it restarts the process. So any conversational state stored in the process is gone [08:30] gregerolsson: hoodoos: Not like in Rails where code and templates get recompiled without restarting any process [08:30] hzin has joined the channel [08:30] ditesh|cassini has joined the channel [08:30] hoodoos: gregerolsson, no it's no good, since there's can be user requests in progress.. [08:31] guitt: jesus: you mean exec'ing /bin/sh and listening to its stdout and err? [08:31] gregerolsson: hoodoos: I agree. Not optimal. [08:32] TomY_ has joined the channel [08:32] hoodoos: gregerolsson, i thought about such architecture: i stop serving new user requests, wait for pending, when all finished restart process.. can work that way [08:33] hoodoos: gregerolsson, since i'm using webworker API to spawn worker processes and they actually require modules I can just kill workers when they idle and reload them [08:34] hzin has joined the channel [08:36] SvenDowideit_ has joined the channel [08:37] tobiassjosten has joined the channel [08:39] gregerolsson: hoodoos: (on the phone). That sounds promising! [08:39] shripadk has left the channel [08:49] aubergine has joined the channel [08:52] kojul has joined the channel [08:52] rcy has joined the channel [08:53] hoodoos: people, I have another question about http.ServerResponse.end method, is there anyway to know when it actually written all data to socket? I mean I want to count active user requests increasing count on http.createServer(callback(here)) and decreasing it on http.ServerResponse.end and in some cases kill process when there's 0 currently running requests, but if I decrease counter right after end of response being called can I be sure that all data was wri [08:53] hoodoos: tten in client's socket so killing process won't destroy it? [08:55] rasputnik has joined the channel [08:56] juwalter has joined the channel [08:57] tisba has joined the channel [09:00] guitt: hoodoos: doesn't Stream.write() return a boolean to say whether it wrote it all? [09:00] SamuraiJack has joined the channel [09:02] hoodoos: guitt, hmm.. it should be blocking in someway then, or it is blocking? :) [09:02] guitt: node doesn't block [09:02] guitt: there is this drain event you may want to look at [09:03] stride: isn't that count what request.socket.server.connections gives you? [09:03] hoodoos: hmm [09:03] stride: (totally not sure, but it's counting something there :) [09:03] hoodoos: stride, let me have a look at this, http.Server is being derived from socket.server i belive, right? [09:04] delapouite has joined the channel [09:04] juwalter has joined the channel [09:04] stride: think so, accessing it through the request looks a bit unnecessary [09:05] hoodoos: well, not request but through server object [09:05] stride: this.connections in the request handler gives the same [09:05] hoodoos: nice one :) [09:06] hoodoos: i guess i can rely on it, thanks [09:08] stride: hm, yeah, seems like it's incremented when a new connection in the underlying tcp stream is accepted and decremented on destroy [09:08] hoodoos: it hangs pretty long mean while.. [09:08] aubergine has joined the channel [09:08] hoodoos: i wonder why google chrome keeps it for that long [09:09] gregerolsson: hoodoos: HTTP Keep-Alive? [09:09] kojul has joined the channel [09:09] hoodoos: gregerolsson, well, i don't give any keep alive headers on response, so it shouldn't really [09:10] gregerolsson: hoodoos: And Node HTTP server doesn't add it automatically? [09:10] hoodoos: gregerolsson, oh :) [09:11] hoodoos: gregerolsson, it actually does if I can trust dev panel of chrome at all :) [09:12] kjeldahl has joined the channel [09:12] alexb_: Why doesn't node http request cache dns info? [09:12] teemow has joined the channel [09:15] hoodoos: gregerolsson, there should be some way to set keep alive timeout, no? [09:15] hoodoos: gregerolsson, otherwise it hangs for about 2 minutes.. [09:18] voxpelli has joined the channel [09:18] spetrea has joined the channel [09:19] aubergine has joined the channel [09:20] xla has joined the channel [09:21] hoodoos: rather strange even if I send Connection: close it still keep connection open and net.Socket.connections won't decrease [09:22] konobi: you still need to close the socket [09:22] hoodoos: konobi, i'm working with HttpServer abstraction I can't close sockets from there [09:23] nsm has joined the channel [09:23] hoodoos: konobi, not abstraction )) [09:23] konobi: hoodoos: stream.end() [09:25] hoodoos: konobi, i do something like that: [09:25] hoodoos: response.writeHead(result.status, result.headers); response.end(); [09:25] micheil: then that should be closing. [09:27] hoodoos: server.Connections counter is still 1, but I can't see any open connections with netstat.. [09:27] hoodoos: on given port [09:27] codetonowhere has joined the channel [09:27] micheil: hoodoos: I'm just gunna have a look at something [09:29] vilhonen has left the channel [09:31] adambeynon has joined the channel [09:31] micheil: hoodoos: it should be decrementing [09:31] hoodoos: it does but with huge delay.. [09:32] micheil: actually. don't send the Connection header [09:32] slaskis: is there some way to make a before route hook in express? [09:32] micheil: slaskis: possibly. [09:33] hoodoos: micheil, well, it sends one by default, i'm trying to override it with: [09:33] hoodoos: result.headers['Connection'] = "close"; [09:33] saimon_ has joined the channel [09:35] boboroshi has joined the channel [09:36] konobi: isn't Connection: close a client header? [09:37] konobi: hhhmmm... nm [09:37] micheil: slaskis: I can't see one [09:38] hoodoos: konobi, i'm not sure, in rfc it is said that "sender to signal that the connection will be closed after completion of the response" [09:38] hoodoos: sender can be server or client i believe.. [09:39] micheil: hoodoos: just going to test this. [09:39] konobi: hoodoos: it's just informing [09:39] konobi: it's not expected to do anything [09:39] konobi: "here... i'm closing the connection, stop trying to pipeline anything more to me" [09:39] konobi: then it's up to the server to close the connection [09:40] hoodoos: yes, I guess. it just says that connection is not persistent.. [09:40] hoodoos: so chrome won't listen to it really and close connection :) [09:41] hoodoos: if i do requests with ab counter is decreasing propertly [09:42] disqk has joined the channel [09:43] micheil: works for me. [09:43] konobi: disq: oh.. a last.fm-er [09:43] ivanfi1 has joined the channel [09:43] hoodoos: micheil, connection: close? [09:44] konobi: disq: up to anything fun there using node.js? [09:44] micheil: yeah [09:44] hoodoos: micheil, what browser you use for testing? [09:44] micheil: safari [09:44] micheil: http://gist.github.com/605993 [09:45] micheil: same results in chrome [09:45] hoodoos: why my connection not being closed then i wonder.. :) [09:45] hoodoos: with ab it works just well.. but not with browsers [09:46] konobi: how about with curl? [09:46] konobi: (ab isn't really a browser) [09:46] micheil: hmm.. [09:46] micheil: can you gist your code? [09:46] agnat has joined the channel [09:46] micheil: I think I know what's happening. [09:47] hoodoos: micheil, let me drag it out [09:47] hoodoos: micheil, what do u think it is? [09:49] ditesh|cassini has joined the channel [09:49] alexb_: Does the event emitter have the concept of bubbling? Can i stop an event from going up? [09:52] aubergine has joined the channel [09:54] stride: don't think so [09:55] caolanm has joined the channel [09:56] xla has joined the channel [09:57] micheil: alexb_: no, it doesn't [09:57] micheil: it has been proposed, but decided against [09:57] micheil: purely because there's no where to bubble to. [09:58] micheil: also, the other reason was that we don't want to complicate things cross-module [10:01] juwalter has joined the channel [10:01] juwalter has joined the channel [10:02] slaskis_ has joined the channel [10:03] margle has joined the channel [10:08] matclayton has joined the channel [10:09] ekidd has joined the channel [10:12] rasputnik has left the channel [10:14] xla has joined the channel [10:15] hannesw has joined the channel [10:19] hannesw has joined the channel [10:21] chandru_in has joined the channel [10:21] chandru_in has left the channel [10:24] mikew3c has joined the channel [10:28] ooooPsss has joined the channel [10:30] jetienne has joined the channel [10:32] d0k has joined the channel [10:35] matjas has joined the channel [10:35] JimBastard: cant sleep, node will eat me [10:39] SvenDowideit has joined the channel [10:43] rnewson has joined the channel [10:45] voxpelli has joined the channel [10:49] aubergine has joined the channel [10:54] kjy112 has joined the channel [10:59] badaxx has joined the channel [10:59] badaxx: did anyone manage to fix this problem or can anyone tell me which version of node i should use? http://github.com/fictorial/redis-node-client/issues#issue/39 [11:00] JimBastard: no idea [11:00] JimBastard: ohh badaxx [11:00] JimBastard: i think i know [11:00] JimBastard: maybe thats easy! [11:00] JimBastard: all the utfWrites are gone [11:00] JimBastard: make them .write [11:01] JimBastard: TypeError: Object # has no method 'utf8Slice' [11:01] JimBastard: maybe just slice ? [11:01] JimBastard: you see what happened badaxx ? [11:01] JimBastard: the node api got updated [11:01] badaxx: yea sure [11:01] JimBastard: maybe you can roll back to 0.2.0 [11:01] JimBastard: it should be an easy fix [11:01] JimBastard: i ported a few things [11:02] JimBastard: maybe there is another client, i dunno [11:02] JimBastard: killall node [11:05] badaxx: ok let me rollback to 0.2.0 [11:05] aubergine has joined the channel [11:07] badaxx: will 0.2.2 work as well? [11:10] ironfroggy_: badaxx: i had the same problem [11:11] d0k has joined the channel [11:11] ironfroggy_: i had to rollback to 0.2.0, too. if its not fixed, I'll fork just for the patch and submit a pull request. [11:12] zorzar has joined the channel [11:14] Tim_Smart: Hmm my redis client seems to pretty fast. [11:15] badaxx: yes, 0.2.0 works fine [11:15] badaxx: redis is so awesome. [11:15] spetrea: I want to /j #java and it says "Cannot join to channel #java (You must be invited)" [11:15] Tim_Smart: badaxx: http://github.com/Tim-Smart/node-redis [11:16] Tim_Smart: If you have node_redis installed (npm install redis), bench.js will compare the speed of the two. [11:16] badaxx: Tim_Smart: the problem is that I created a whole webapp with redis-node-client and to switch over to your node-redis would be a lot of work [11:17] Tim_Smart: badaxx: Don't worry about my library, I only made that one in the past few hours. [11:17] JimBastard: milkdrop on 28 inch monitors is awesome [11:17] JimBastard: :D [11:17] Tim_Smart: badaxx: Even faster than node_redis, but it isn't very well tested. [11:17] badaxx: Tim_Smart: ah okay, gonna watch it ;) [11:17] herbySk has joined the channel [11:17] Tim_Smart: badaxx: I'm planning on getting mjr_ to merger any changes he wants. [11:18] badaxx: does anyone know how to tell express.js to use jade when its located in another path? [11:18] Tim_Smart: badaxx: I made mine to see how fast I could get it. [11:18] badaxx: can't find it in the guide [11:19] badaxx: or maybe to make node.js look for libraries in another folder? [11:20] badaxx: ah, require.paths.push("./lib") will do it [11:23] ironfroggy_: badaxx: i have been thinking of switching to node-redis, but havent looked. have you? would it really be that much of a change? the redis commands aren't going to be different. [11:24] badaxx: ironfroggy_: let me have a look [11:24] badaxx: ironfroggy_: node_redis or node-redis? [11:26] saimon_ has joined the channel [11:27] fermion has joined the channel [11:29] virtuo_ has joined the channel [11:29] margle has joined the channel [11:33] aubergine has joined the channel [11:33] ironfroggy_: badaxx: there are two? jeez [11:34] badaxx: node-redis is bei Tim_Smart, node_redis is by someone else [11:34] Tim_Smart: badaxx: mjr_, me and tj worked on node_redis [11:35] ironfroggy_: Tim_Smart: have you looked at node-client? anything you can say is better with node_redis? [11:36] ironfroggy_: im thinking of switching just because more people seem to be using node_redis, so i could get a question answered if i need to. [11:36] Tim_Smart: ironfroggy_: redis-node-client is more mature and probably has more users. [11:36] Tim_Smart: You will get more support for node_redis on IRC though. [11:36] Tim_Smart: Me, mjr_ and tj aren't usually far away. [11:37] ironfroggy_: interesting. i guess thats just my most immediate gauge. [11:37] Tim_Smart: ironfroggy_: I'm working on a light weight, uber-fast client atm. [11:38] fcoury has left the channel [11:38] fcoury has joined the channel [11:40] Gurpartap: hi [11:40] ivan has joined the channel [11:40] saimon_ has joined the channel [11:42] unomi has joined the channel [11:42] admc has joined the channel [11:53] boaz has joined the channel [11:55] Tim_Smart has joined the channel [11:56] rnewson: I'm seeing odd behavior from node using the http client when the remote server returns a tcp packet with the RST flag set. [11:58] badaxx: does anyone have experiences with modit? [12:00] charlenopires has joined the channel [12:01] figital has joined the channel [12:05] okuryu has joined the channel [12:12] vvsh has joined the channel [12:18] bradleymeck has joined the channel [12:21] adambeynon has joined the channel [12:22] omarkj has joined the channel [12:23] sideshowcoder has joined the channel [12:27] olegp has joined the channel [12:30] EyePulp has joined the channel [12:32] noahcampbell has joined the channel [12:35] ben_alman_ has joined the channel [12:36] ben_alman_ has joined the channel [12:36] ben_alman_ has joined the channel [12:37] ben_alman_ has joined the channel [12:38] ben_alman_ has joined the channel [12:41] GriffenJBS has joined the channel [12:42] Anti-X has joined the channel [12:42] c4milo has joined the channel [12:52] ntelford has joined the channel [12:53] dnolen has joined the channel [12:59] c4milo has joined the channel [12:59] ntelford has joined the channel [13:04] hoodoos: hey guys, is there any way to tell netBindings.bind(fd, coreConfig.WorkPort) to reuse address? sometimes it happens that process dies badly and got stuck on port, would be great to reuse and just wait for old process to die. is it possible? :) [13:05] c4milo has joined the channel [13:09] davidsklar has joined the channel [13:10] mif86 has joined the channel [13:15] cognominal has joined the channel [13:15] tav has joined the channel [13:16] jherdman has joined the channel [13:17] voxpelli has joined the channel [13:18] Anti-X: v8 function kick_in(what){what(kick_in)};function alzheimers(what_about_it){what_about_it(alzheimers)};kick_in(alzheimers); [13:18] v8bot: Anti-X: v8 is no longer supported. Try v8: or v8> [13:18] Anti-X: v8: function kick_in(what){what(kick_in)};function alzheimers(what_about_it){what_about_it(alzheimers)};kick_in(alzheimers); [13:18] v8bot: Anti-X: RangeError: Maximum call stack size exceeded [13:20] ysynopsis has joined the channel [13:20] Tim_Smart has joined the channel [13:22] mape: Anyone here gotten Arias html5 module to work? [13:23] bradleymeck: i ran it as a test [13:23] bradleymeck: havent used it really [13:23] mape: Error: Cannot find module 'jsdom/level2/core' [13:23] shripadk has joined the channel [13:23] mape: jsdom@0.1.13 =tmpvar active installed latest remote [13:23] bradleymeck: do you have jsdom installed (i have lots on npm) [13:23] mape: Jup ^ [13:25] bradleymeck: mmm [13:31] ysynopsis has joined the channel [13:31] jacobolus has joined the channel [13:36] ben_alman has joined the channel [13:37] micheil: anyone know how to take an old patch and apply it to a new checkout of a repo? [13:37] bradleymeck: rebase [13:37] micheil: ? [13:37] ben_alman has joined the channel [13:37] bradleymeck: look up git rebase [13:38] micheil: no, I mean, I have a patch from a previous checkout, I have just the .patch file [13:38] micheil: I need to apply it on top of a newer checkout [13:40] sstephenson: patch -p1 < file.patch [13:40] nerdEd has joined the channel [13:40] micheil: okay.. I think that worked. [13:42] voxpelli has joined the channel [13:43] codelotus has joined the channel [13:46] Tim_Smart has joined the channel [13:48] rwaldron has joined the channel [13:49] BHSPitCS1: micheil: what part of the world are you in? [13:49] micheil: australia [13:50] BHSPitCS1: ah, that explains a lot :) [13:50] micheil: why? [13:50] BHSPitCS1: we were talking last night before I went to bed (~1am), and you're still here :P [13:50] BHSPitCS1: (~9am) [13:51] micheil: heh [13:51] micheil: BHSPitCS1: I could very well still be here in 6 hours time. [13:54] bradleymeck: sleep is for the weak? [13:55] paul_____ has joined the channel [13:55] BHSPitCS1: I wish I had a cure for sleep [13:56] bradleymeck: i dont, i wish i had a cure for insomnia, im running out of books and tv [13:57] Tim_Smart: I should go to sleep, and stop trying to make my redis client go faster. [13:57] BHSPitCS1: just when I finally get home from the day and start cranking out some good code, my body says "sorry, you have to stop and waste the next 8 hours doing nothing." [13:58] BHSPitCS1: the human body is a troll [13:58] matt_c has joined the channel [13:59] micheil: there is some dude that's been awake for the last 14 days or something [13:59] bradleymeck: i can go 4 but it gets trippy [13:59] micheil: http://designyoutrust.com/2010/09/29/artist-tyler-shields-breaks-world-record-for-sleep-deprivation/ [13:59] micheil: I've maxed at 28 hours. [13:59] micheil: or 33 hours [13:59] micheil: I can't remember [14:00] bradleymeck: after 4 days i passed out for 1 [14:00] bradleymeck: and thats when i left EE for CS... the end [14:00] hoodoos: after i was awake for 30 hours I was felling sleep everytime I sat.. [14:01] hoodoos: you want to sit then you realise you just woke =) [14:01] hoodoos: and miss 10-15 mins of ur life [14:01] micheil: ACTION is working on some mega patches. [14:01] bradleymeck: the way to stay up is to not eat [14:01] micheil: what. [14:02] hoodoos: no way, i like to eat more then i like not to sleep.. [14:02] micheil: bradleymeck: rather, not eat excessively [14:02] bradleymeck: no, im talking being stupid hungry [14:02] micheil: oh [14:05] dohtem has joined the channel [14:05] dohtem has joined the channel [14:05] hoodoos: how to free up port after doing bind and listen on it? [14:06] micheil: hoodoos: I'm not sure actually. [14:07] micheil: hoodoos: best ask on the mailing list [14:07] hoodoos: micheil, it's so long to wait for such simple question :) [14:07] micheil: it mightn't be so simple. [14:07] spetrea: what are the pre-requisites for installing node ? [14:07] micheil: spetrea: only openssl [14:08] micheil: and a few other things that are generally installed on unix / mac os x [14:08] antares_ has joined the channel [14:08] micheil: spetrea: ./configure will tell you if you miss anything [14:08] tg: hoodoos: have you tried server.close() ? [14:09] davidwalsh has joined the channel [14:10] hoodoos: spetrea, like build-essensial [14:11] hoodoos: tg, well, i'm working with socket throught netbindings but netbindings.close(fd) won't free port [14:11] tg: hm dunno then [14:13] micheil: hoodoos: like I said. email the mailing list. [14:14] hoodoos: micheil, sure, if google won't help :) looking up node_net.cc currently, should find answer there.. if i knew c :) [14:14] micheil: >_> [14:15] micheil: hoodoos: there's possibly a way, maybe there isn't. [14:15] bencc has joined the channel [14:15] bencc: how can I pass messages between two users in a chat app? [14:15] hoodoos: micheil, yeah, I know.. [14:15] hoodoos: micheil, but it magicaly frees after i press ctrl+c :) [14:16] bencc: do I have something similar to "pid ! message" in erlang? [14:16] micheil: bencc: uhh.. manage a list of connections, and then send between them [14:16] bencc: micheil: where do I put the list of connections? in db? [14:16] micheil: where ever. [14:16] micheil: In node-websocket-server, I use a singularly linked list of connections [14:16] bencc: micheil: how do I send message between connections? [14:17] bencc: micheil: what is the syntax? [14:17] micheil: and then when I want to find a specific connection I look it up in that list, and write to the associated socket. [14:17] bencc: what is the syntax to write to a specific socket? [14:18] micheil: socket.write(data, encoding) [14:18] micheil: it's in the documentation. [14:19] bencc: ok. thanks [14:21] mikeal has joined the channel [14:22] aconbere has joined the channel [14:22] galaxywatcher has joined the channel [14:22] micheil: hey mikeal [14:22] mikeal: hiya [14:22] steadicat has joined the channel [14:23] dpritchett has joined the channel [14:24] matclayton has joined the channel [14:25] Tim_Smart: Hmm almost 50k sets a second on my first gen macbook pro. [14:25] hoodoos: Tim_Smart, redis? [14:25] Tim_Smart: Yeah. [14:25] hoodoos: cool [14:25] hoodoos: how big are those? [14:25] squivo has joined the channel [14:25] Tim_Smart: hoodoos: Making my client fast :) [14:25] Tim_Smart: hoodoos: 3 bytes :p [14:26] hoodoos: Tim_Smart, quite small :) [14:26] Tim_Smart: Yeah, I can bump that up if you like :p [14:26] jchris has joined the channel [14:26] squivo: so..... anybody want to help a noober install node on Windows 7? [14:26] hoodoos: sure, get wubi :) [14:27] squivo: Well I'm already sorta half way there [14:27] squivo: cygwin python way [14:27] Tim_Smart: hoodoos: Drops to 15k when using a 3 byte buffer instead, as you can't send the command in one go. [14:28] dohtem|desk has joined the channel [14:29] squivo: I think I just need to make an environment var for python, cuz here's my error when I run ./configure: /usr/bin/env python: no such file or dir... [14:29] rauchg_ has joined the channel [14:30] hoodoos: squivo, don't you think you will expirience problems with some libs building? [14:30] hoodoos: squivo, it's really simplier to run in virual box e.g... [14:30] squivo: okay I see [14:30] hoodoos: squivo, imho :) [14:31] hoodoos: Tim_Smart, is your client on git? [14:31] Tim_Smart: Yeah. [14:31] squivo: yeah, you're probably right. I may just flip my old computer to Linux and start again [14:31] hoodoos: squivo, on linux everything will work out of the box with no magic at all :) [14:32] squivo: exactly [14:32] aubergine_ has joined the channel [14:34] hoodoos: Tim_Smart, I'm using this one atm git://github.com/fictorial/redis-node-client.git [14:34] hoodoos: Tim_Smart, and it doesn't work with latest nodes.. atleast didn't [14:35] stagas: squivo: you haven't installed python [14:35] stagas: squivo: w/ cygwin setup [14:36] tmpvar has joined the channel [14:36] hoodoos: stagas, i hope he won't do it anyways [14:36] squivo: yeah I'm scrapping that cuz hoodoos is right [14:37] squivo: but thank you stagas [14:37] stagas: why not, I'm doing it and it's working smoothly [14:37] hoodoos: no issues with third party libs? [14:37] squivo: I did install python, but not within cygwin [14:37] stagas: hoodoos: not really [14:38] stagas: but I agree if you have the option for a native solution do that [14:39] stagas: squivo: this is the guide http://github.com/ry/node/wiki/Building-node.js-on-Cygwin-(Windows) [14:39] squivo: stagas: for my own info, how to I install python within cygwin? [14:40] stagas: squivo: you may also want to install curl, mintty or rxvt for shell and any other package you'd think useful [14:41] kgf: run the setup and select python? [14:42] softdrink has joined the channel [14:42] aubergine has joined the channel [14:43] stagas: I can't seperate fl studio otherwise I'd switch to linux :P music comes first [14:44] squivo: stagas: agreed. music does come first [14:44] squivo: I have another box at home that I'm going to run Linux on [14:45] squivo: Ubuntu or Fedora... I haven't decided yet [14:45] mape: Anyone encountered EINVAL, Invalid argument when using mikeals request? [14:45] mape: Just on certain servern [14:46] kgf: stagas: ha, fl studio is one of the reasons I stay in windows too. though admittedly I haven't touched it in a while. =/ [14:46] kgf: tried running it in wine, didn't do too well [14:46] stagas: squivo: cygwin is quite stable though, no quirks, it's like you're on a linux shell. The performance also is quite better than vm's [14:46] kgf: eh there's quirks here and there [14:46] dpritchett: I have been having a great time doing node development in cygwin this week [14:47] squivo: it looks awesome... I need to brush up on command line skillz, windows make me lazzzy [14:47] dpritchett: I used to eschew it in favor of ubuntu VMs but lately cygwin works pretty well and it's faster for me. [14:47] kgf: now that I know about the /etc/resolv.conf resolution, I might actually be able to dev on it in cygwin some more [14:47] kgf: to at least see what happens [14:47] kgf: yeah...I've been using ubuntu server on a VM as well [14:47] stagas: kgf: it's not like I'm using fl every day, but if it's on a dual boot I'll never touch it again and that makes me sad [14:47] dpritchett: You should really get 'apt-cyg' - it alleviates the "run the setup.exe gui to add new packages every few hours" headache [14:47] kgf: stagas: FL and games are why I stick with windows mainly. [14:47] dpritchett: apt-get install was the thing i missed most from ubuntu [14:48] squivo: how does wubi fare? [14:48] kgf: though I know a friend who has had great experience with using crossover for games [14:49] stagas: kgf: I haven't had any real problems with cygwin, once you get your head around it and set it up it works smoothly [14:49] kgf: oh yeah, I use it to death at work [14:49] kgf: though I'm still on 1.5 here, will probably update to 1.7 next time I get a new machine. I felt like I had to jump through a hoop or two in 1.7 to get files to create with proper permissions in 1.7 outside the cygwin directory (i.e. on cygdrives) [14:50] kgf: (here == work. I'm on 1.7 at home) [14:50] dpritchett: one thing that really made me enjoy cygwin more is symlinking some of my home directory into my dropbox folder [14:50] kgf: I do wish cygwin were a bit more portable, it doesn't seem to quite be [14:50] stagas: dpritchett: didn't know about apt-cyg thanks [14:50] dpritchett: now ~/apps-i-am-currently-developing is the same at work and at home, it even seems to pick up the git files [14:51] dpritchett: np stagas, it's really been helpful for me [14:51] di3go has joined the channel [14:51] kgf: heh yeah I didnt know about that either. [14:51] kgf: when I first read the line I thought you were saying there /should/ be an apt-cyg, not that there /IS/ one lol [14:51] dnolen has joined the channel [14:52] dpritchett: that *would* be nice ;) [14:52] dpritchett: i have a very modest app but it seems to work without any porting on both cygwin/XP and my new no.de smartmachine [14:52] stagas: dpritchett: that dropbox symlink is also a really good idea! thanks again! any other advice? :) [14:53] dpritchett: You might want to look into Charade - http://github.com/wesleyd/charade [14:53] dpritchett: It allows you to use PuTTY's "pageant" to serve as a one-size-fits-all ssh-agent for both putty and your cygwin shell [14:54] ivanfi1 has left the channel [14:54] dpritchett: so when i execute my "git push origin master && git push joyent master" script from cygwin it pulls my private key in from pageant and i dont actually have to type in my rsa key password [14:54] dpritchett: just like on ubuntu [14:54] dpritchett: i enjoy having a bin/deploy script that pushes to two places for me [14:54] dpritchett: especially since the #joyent folks set up the no.de instances to automatically restart the service as part of their git post-receive hook [14:55] stagas: dpritchett: cool thanks [14:56] dpritchett: np [14:56] dpritchett: it worked first try for me at work but for some reason it stopped working at home last night around bedtime [14:56] dpritchett: i'll have to reinstall it and pay closer attention [14:56] dpritchett: oh two more tricks [14:57] dpritchett: use puttycyg to allow PuTTY to serve as a cygwin terminal - it works much better than the builtin cygterm [14:57] kgf: mintty also = <3 [14:57] dpritchett: and then there's a Launchy plugin that allows launchy to learn the names of all of your saved putty sessions so you can run them by name from the launcher [14:57] kgf: mintty is available from within the cygwin setup as well [14:57] dpritchett: so if i wanna connect to my joyent box I just type alt+space n o d e and hit enter and it fires up the putty session [14:58] dpritchett: or alt+space cyg enter fires up my putty-based cygterm [14:58] kgf: heh. I doubt that'd work with portable putty versions though? [14:58] dpritchett: good question [14:58] kgf: ACTION uses puttytray which can store sessions in files [14:59] dpritchett: it looks like the putty plugin for launchy supports that "Next set the "Path to PuTTY" in the plugin options dialog to the RELATIVE path from the Launchy directory to the PuTTY executable. Finally, enable loading sessions from the filesystem in the plugin options dialog." [14:59] dpritchett: i haven't messed with it yet but i suppose i ought to [14:59] dpritchett: since i'm using dorpbox so much [14:59] stagas: hmm nice [15:00] agnat has joined the channel [15:03] spetrea: could I build node.js with openssl statically-linked ? [15:03] spetrea: so I don't have to install stuff on the machine ? [15:03] spetrea: I just want to compile and use it as a user , don't have root right [15:03] spetrea: *rights [15:05] aho has joined the channel [15:05] jpld has joined the channel [15:05] jpld has joined the channel [15:05] spetrea: also, check this out I found this website which has Windows builds for node.js http://node-js.prcn.co.cc [15:05] bigbluehat has joined the channel [15:05] vmthehut has joined the channel [15:06] cardona507 has joined the channel [15:07] dpritchett: spetrea are you sure you can't install openssl-devel to your cygwin? [15:09] spetrea: dpritchett: I'm actually trying to install it on a centos [15:10] dpritchett: you tricked me ;) [15:11] jesusabdullah: That's pretty cool, spetrea [15:11] Yuffster has joined the channel [15:11] xla has joined the channel [15:13] dohtem has joined the channel [15:13] dohtem has joined the channel [15:13] o_o has joined the channel [15:13] steadicat has joined the channel [15:15] dipser has joined the channel [15:17] tj has joined the channel [15:19] dshaw has joined the channel [15:19] Me1000 has joined the channel [15:20] hannesw has joined the channel [15:21] muk_mb has joined the channel [15:24] jtoy has joined the channel [15:27] codetonowhere has joined the channel [15:28] bartt has joined the channel [15:30] creationix has joined the channel [15:33] creationix: voodootikigod: can I do a shameless plug http://news.ycombinator.com/item?id=1745115 (or is that too much) [15:34] voodootikigod: ? [15:35] creationix: After your talk at jsconf I wrote some good js documentation [15:35] creationix: (well I think it's good) [15:35] voodootikigod: haha [15:35] voodootikigod: it is [15:35] creationix: in the past, I've gotten the biggest traffic spikes from hn [15:36] tjholowaychuk: its a little basic [15:36] creationix: but I have no clue how to get things found on there [15:36] voodootikigod: basic is good [15:36] voodootikigod: it mainly takes asking a core group to upmod [15:36] creationix: tjholowaychuk: yeah, it's a start. I think I might extend the visual idea to more advanced ideas and see how the disgrams scale [15:36] voodootikigod: then once you hit about 3 mods its on the front page [15:36] voodootikigod: and goes from there [15:37] voodootikigod: "Is the first time I see JS explained well, congratulations" awesome compliment [15:37] jacobolus has joined the channel [15:37] voodootikigod: so throw it into #jsconf or #node.js and ask people to help promote [15:37] voodootikigod: #jsconf always helps [15:38] creationix: should I link to the hn page or direct? [15:38] voodootikigod: hn page [15:38] technoweenie: where is proof of tim's dancing abilities [15:38] voodootikigod: hahahah [15:38] voodootikigod: his sweat laden shirt [15:39] creationix: technoweenie: I saw cameras, someone has video [15:39] voodootikigod: and the pictures [15:39] voodootikigod: omg [15:39] technoweenie: uh oh [15:39] voodootikigod: he outdanced the ladies [15:39] technoweenie: nice [15:39] technoweenie: i recall some crazy dancing at the jsconf boat party too [15:39] creationix: uhoh, kids are waking up, got to go... [15:40] voodootikigod: this.. easily topped it [15:40] voodootikigod: i was tempted to start throwing dollars [15:40] technoweenie: does it top bieber dad [15:40] ginader has joined the channel [15:40] voodootikigod: but i had a pocket full of euro coins [15:40] technoweenie: http://www.youtube.com/watch?v=jQRn-COuenU [15:42] creationix: euro coins are heavy [15:42] creationix: technoweenie: thanks for the tweet [15:43] matt_c has joined the channel [15:44] voodootikigod: creationix: also adding to the promotejs code [15:44] creationix: sweet [15:44] voodootikigod: creationix: also timing [15:45] marienz has joined the channel [15:45] voodootikigod: you want it right as pacific wakes up and drinks coffee [15:45] voodootikigod: this seemed to hit HN like late last night [15:45] creationix: yeah, I tried adding it this morning, but it linked to the existing one [15:46] robotarmy has joined the channel [15:48] shripadk has joined the channel [15:49] agnat has joined the channel [15:50] dguttman has joined the channel [15:50] dpritchett: creationix: i took your advice and switched to Connect last night. Works like a charm! [15:50] creationix: dpritchett: awesome [15:50] dpritchett: I can't say I've done much with it yet but at least I have a solid foundation to build from now. [15:51] dpritchett: http://github.com/dpritchett/chatbox [15:52] vmthehut has joined the channel [15:52] admc has joined the channel [15:52] shajith_ has joined the channel [15:52] Tim_Smart: tjholowaychuk: https://gist.github.com/80e84c91d53c39678918 [15:52] Tim_Smart: The official speed results. [15:53] tjholowaychuk: Tim_Smart: which one is node-redis? [15:53] dipser: hihi [15:53] Tim_Smart: tjholowaychuk: The one with the new parser and stuff http://github.com/Tim-Smart/node-redis [15:53] tjholowaychuk: Tim_Smart: ohhh, nice :) [15:53] Tim_Smart: Would be cool to get it merged. [15:54] tjholowaychuk: haha yeah, last thing we need is anoooooother redis client [15:54] mjr_: So lower is better? [15:54] Tim_Smart: Exactly. [15:54] Tim_Smart: Oh hey. [15:54] mjr_: awesome [15:54] Tim_Smart: mjr_: avg is the average, ops/sec it the opertations per second. [15:55] Tim_Smart: Ignore the spelling. [15:56] Tim_Smart: mjr_: I'll chuck redis-node-client in the bench, see how it fares :p [15:56] mjr_: oh good. I've not been able to do that. [15:56] mjr_: Since it doesn't work with new nodes. [15:57] Tim_Smart: Oh crap, then I'll do that other one. [15:58] mjr_: Tim_Smart: a great thing to do would be to use the exact patterns that redis-benchmark uses [15:58] mjr_: So we can measure the actual impact of using node to talk to redis vs. using C. [15:58] Tim_Smart: Hmm. [15:59] mjr_: I had that in my original test.js in the olden days, like 2 weeks ago. [16:00] mjr_: This bench.js is great. [16:00] mjr_: Actual side by side comparison of two different libraries using the same commands. [16:04] Tim_Smart: mjr_: https://gist.github.com/3453414f9863088d5bf7 [16:05] mjr_: Is that on 0.2.2? [16:06] Tim_Smart: 0.3.x [16:06] Tim_Smart: http://github.com/bnoguchi/redis-node [16:06] mjr_: ohhhhh [16:06] mjr_: I thought that was fictorial's. [16:06] tjholowaychuk: me too lol [16:06] tjholowaychuk: getting so confusing [16:07] mjr_: OK, great, I'll work on merging this in. This looks really cool. [16:07] TheEmpath has joined the channel [16:08] Tim_Smart: mjr_: I might keep mine up as a lightweight alternative. You will just need to chuck the multi stuff on top. [16:08] mjr_: oh, it doesn't do nested multi-bulk? [16:08] Tim_Smart: mjr_: It does fine :) [16:08] tjholowaychuk: Tim_Smart: even node_redis is still tiny, not sure light-weight would help :p [16:09] mjr_: oh, you mean the MULTI command. [16:09] Tim_Smart: Except atm you have to go: client.multi(); client.cmd() ... client.exec() [16:09] Tim_Smart: And it just maps everything 1 to 1 [16:09] gerred has joined the channel [16:09] mjr_: That's fine, I can work the multi stuff back in [16:09] Tim_Smart: So the commands will get QUEUED etc. [16:10] kriszyp has joined the channel [16:10] tjholowaychuk: Tim_Smart: I didnt look at the code close, what was the difference with your implementation? [16:10] tjholowaychuk: as far as the state machine goes [16:10] Tim_Smart: tjholowaychuk: A bit of look-ahead, doesn't mess with buffers as much. [16:11] mjr_: A big difference is that mine does a lot of byte by byte copies, even when that's a lot slower. [16:11] Tim_Smart: Optimizes for the common use case where possible. [16:11] tjholowaychuk: gotcha [16:11] mjr_: I really like the API for MULTI that tjholowaychuk did plus my extra modifications. [16:12] tjholowaychuk: as far as ops/sec I wonder how they relate in terms of milliseconds. sometimes the ops/sec make something seem amazingly fast even when it is irrelevant [16:12] mjr_: But I like fast even more. [16:12] tjholowaychuk: id rather have more features personally [16:12] Tim_Smart: mjr_: I tried writing the bulk data to strings, and it was slower than making a new buffer. [16:12] tjholowaychuk: unless it is obscenely faster [16:13] mjr_: Oh, OK. Well, at least you tried. [16:13] Tim_Smart: tjholowaychuk: On my VPS is was 2x faster in sets and gets. Not sure why. [16:13] mjr_: I'm trying to figure out why the lrange 400 test runs so much more slowly than redis-benchmark in C. [16:13] tjholowaychuk: Tim_Smart: weird. can you tweak your bench to show ms too? [16:13] jakehow has joined the channel [16:14] Tim_Smart: I might alter the bench to use a 1024 byte buffer instead of a 3 byte string. [16:14] mjr_: Oh, maybe redis-benchmark isn't actually parsing out the replies. [16:14] Tim_Smart: tjholowaychuk: everything except ops/s is in ms [16:14] tjholowaychuk: shit, I will look again [16:17] ajpiano has joined the channel [16:17] Tim_Smart: Will be interest how each performs using buffer sets only. [16:17] Tim_Smart: interesting* [16:18] stephank has joined the channel [16:19] qFox has joined the channel [16:19] rnewson has joined the channel [16:19] Tim_Smart: Wow. The sets are crazy... https://gist.github.com/95ec72c3291fb8be7ec1 [16:21] mjr_: What changed> [16:21] mjr_: ? [16:21] Tim_Smart: mjr_: 1024 byte buffers instead of 3 byte strings. [16:21] mjr_: wow [16:22] Tim_Smart: mjr_: It affects lpush a lot too. [16:23] mjr_: what part gets replaced by 1K buffers then? [16:24] Tim_Smart: I will add the code. [16:24] Tim_Smart: https://gist.github.com/95ec72c3291fb8be7ec1 [16:24] dpritchett: i'm having way too much fun going through my commit log on github and adding silly images as comments [16:26] trave has joined the channel [16:27] marshall_law has joined the channel [16:27] shajith_ has joined the channel [16:28] level1_ has joined the channel [16:29] noahcampbell has joined the channel [16:36] dguttman has joined the channel [16:36] TheEmpath has joined the channel [16:37] mif86 has joined the channel [16:37] matt_c has joined the channel [16:39] cloudhead has joined the channel [16:40] stagas: anyone with spare time to write a client for OrientDB? :) [16:40] dmcquay has joined the channel [16:41] stagas: it's like Neo4j, but free for commercial use [16:42] reid has joined the channel [16:43] reid has joined the channel [16:43] badaxx: is it ok for node to download files in the background and accepting connections through express at the same time? [16:43] rnewson has joined the channel [16:44] stagas: http://code.google.com/p/orient/ [16:44] tjholowaychuk: badaxx: ya [16:44] saikat has joined the channel [16:46] bpot has joined the channel [16:47] creationix: badaxx: all waits can be done in parallel [16:47] creationix: most of downloading time is spent in waiting [16:47] badaxx: so I can do sth like res.send("Downloading now"); and start the download stuff right after that? [16:48] badaxx: while the user does ajax requests every 2 seconds to get the current progress? [16:48] creationix: yep [16:48] creationix: though for progress, there might be better ways [16:49] shajith_ has joined the channel [16:49] creationix: long-poll or websockets [16:50] sudoer has joined the channel [16:51] MikhX has joined the channel [16:51] creationix: badaxx: a request doesn't block the server like it does in other languages/platforms [16:52] creationix: that's the cool thing about node [16:52] badaxx: well a lot of my users still have IE6 [16:52] badaxx: and IE still does not support websockets [16:52] creationix: badaxx: sure, but it does support other push techniques [16:52] badaxx: long-poll would be an alternative [16:52] creationix: look at socket.io [16:52] creationix: it abstracts that all away [16:52] claudiu__ has joined the channel [16:53] creationix: and if they have flash then socket.io uses a flash client for websocket too [16:54] badaxx: that's cool [16:54] badaxx: I'll have a look at this when I start working on the progress [16:54] badaxx: thanks so far [16:54] dpritchett: I implemented socket.io last night for the first time and it's working beautifully [16:55] dpritchett: the only hard part for me was figuring out how to parse the objects from the client once i received them [16:55] saikat has joined the channel [16:55] deepthawtz has joined the channel [16:56] dpritchett: you can see it in a few lines here... (http://github.com/dpritchett/chatbox/blob/master//server.js#L43) not sure why my tabstops went crazy like that. gotta work on my .vimrc I guess [16:58] mjr_: stagas: what's the protocol look like? [16:59] mjr_: stagas: it's got an HTTP interface right? That kinda makes it already have node bindings. :) [16:59] stagas: mjr_: it has multiple implementations. SQL-like, REST, Gremlin. you name it :) it really looks like a promising project [16:59] nroot7 has joined the channel [17:00] benreesman has joined the channel [17:00] stagas: mjr_: yes and it has a browser client already [17:00] nut has joined the channel [17:01] stagas: I would try my luck but I'm sure I'll do it wrong. I'm not very familiar with that stuff [17:02] nut: hi! im trying to close the ServerRequest after certain amount of data has been sent. i dont really know to to properly do it though -- im trying to req.emit('end'); req.pause(); in data listener, but that doesnt seem to work (browser is still 'loading' the page) [17:02] stagas: mjr_: it only has 1 active developer, and a couple of contributors, but it looks huge already and it's portable cause it's java [17:02] stagas: mjr_: he's been on it for like 10+ years [17:02] shajith__ has joined the channel [17:03] stagas: mjr_: it just lacks client implementations that's why it's not popular :) [17:05] peetyp has joined the channel [17:05] bpot_ has joined the channel [17:06] cseeger has joined the channel [17:06] peetyp: Build failed: -> task failed (err #2): {task: libv8.a SConstruct -> libv8.a} [17:07] peetyp: error when building nodejs on x64 windows 7 [17:07] peetyp: any ideas? [17:07] peetyp: ive got it build on another xp machien [17:07] peetyp: *machine [17:08] benburkert has joined the channel [17:08] nut has left the channel [17:09] stephenjudkins has joined the channel [17:09] kjeldahl has joined the channel [17:09] niemeyer has joined the channel [17:10] mjr_: stagas: yeah, it makes a number of fantastic claims. [17:10] mjr_: stagas: and I love that it has a native HTTP interface. I less love that it's built on top of java. [17:13] dgathright has joined the channel [17:13] agnat has joined the channel [17:13] banjiewen has joined the channel [17:15] c4milo has joined the channel [17:16] dpritchett: peetyp: http://groups.google.com/group/nodejs/browse_thread/thread/d632c7056e26d352 [17:17] isaacs: so, orientdb has a binary interface, it looks like? [17:19] stagas: isaacs: yes I believe so [17:19] vnguyen has joined the channel [17:19] isaacs: interesting. [17:20] mjr_: it seems like orientdb solves all possible database problems for all possible use cases. [17:20] isaacs: i've heard that's faster in some ways, but it's also kinda weirder to talk to [17:20] mjr_: hmm, maybe not embedded. [17:20] stagas: mjr_: yes, one db to rule them all something like that :P [17:21] mjr_: such bold claims make me concerned. Surely there's a tradeoff in there. [17:22] damien has joined the channel [17:22] stagas: the tradeoff from what I've seen is you have to declare from start, which classes you expect to have more traffic than others [17:22] stagas: something like that [17:22] stagas: or clusters. I'm confused [17:23] mjr_: BTW, have you noticed that the software world always says that everything is "lightweight", and those that don't say that say their things are "high performance". [17:24] mjr_: It can't all be lightweight and high performance. Something must be heavyweight and slow. [17:24] stagas: the author is online I just tweeted him to come over [17:24] dpritchett: apache? [17:25] stagas: also see this: http://www.snoopal.com/documents/UtPS84AHhpaUzwpzWQJpfa/OrientDB-Introduction [17:26] streampunk has joined the channel [17:30] stagas: also has authorization in its core [17:30] isaacs: mjr_: yeah, "lightweight" [17:30] isaacs: mjr_: i'm always tempted to get really literal on that one. [17:30] [[zz]] has joined the channel [17:30] isaacs: mjr_: put the disk on a scale. "See? it fits on this 16GB USB drive, which is only 4 ounces!" [17:30] isaacs: lightweight! [17:31] mjr_: I've heard people call software I've written "lightweight" and thought uhh, I write programs in JavaScript. [17:31] mjr_: C is pretty lightweight. [17:31] mjr_: I guess it's all relative. [17:31] isaacs: i honestly don't even know what most software marketing terms even mean [17:32] stagas: robust! [17:32] stagas: :P [17:32] inimino: Made with titanium-alloy bits! [17:32] inimino: (for lightness and robustness) [17:32] mjr_: and filled with helium. [17:32] isaacs: "high reliability, infinitely scalable, robust, full featured, lightweight, sexy, clean, enjoys long walks on the beach,..." [17:33] mjr_: my software enjoys hiking and is 420 friendly. [17:33] isaacs: hahah [17:33] isaacs: it's not performant [17:33] isaacs: takes its tiiimmme [17:33] mjr_: sometimes forgets what it was working on [17:33] inimino: understands that it's about the journey, not the destination [17:34] mtodd has joined the channel [17:34] hpoydar has joined the channel [17:37] isaacs: i kind of like my software to be reliable, stupid, and predictable. like a well-trained labrador that doesn't sleep in the house. [17:37] shaver: does the joyent no.de stuff let you talk to databases or redis or similar? [17:37] shaver: I'm not experienced with joyent before, not sure what's there by default [17:37] shaver: and the no.de docs are not verbose on the topi [17:37] shaver: c [17:37] micheil: isaacs: fwiw, I agree with the post on the mailing list on cute apis. I just don' [17:37] micheil: t have time to reply. [17:38] isaacs: shaver: http://wiki.joyent.com/node:faq#redis [17:38] isaacs: shaver: you can use the "pkgin" command [17:38] shaver: that is a delightful page! [17:38] dpritchett: joyent has redis, mongo, and mysql in the faq [17:38] shaver: I wish it were liked from the no.de page, or http://www.joyent.com/technology/smartplatform/introduction-to-node-js/ [17:38] isaacs: (also, you'll tend to get better results asking joyent questions in #joyent) [17:39] shaver: ah, quite so [17:39] shaver: thank you! [17:39] isaacs: shaver: it's listed on the "helpful urls" when you log in [17:39] shaver: HMM [17:39] shaver: touche'! [17:40] isaacs: shaver: but yeah, there could definitely be places where it might be smoothed out better. if you would be so kind as to keep a brief list of what seems odd to you as you get up and running and send it to us, that'd be great [17:41] isaacs: like, "places where a sign post would've been really helpful" [17:41] csullivan has joined the channel [17:41] shaver: you bet [17:41] shaver: I am a naive user, will collect the effects of my naievete [17:43] juzna has joined the channel [17:46] Yuffster has joined the channel [17:47] dahankzter has joined the channel [17:48] admc has joined the channel [17:50] langworthy has joined the channel [17:54] matt_c has joined the channel [17:54] mischievious has joined the channel [17:54] Lvca has joined the channel [17:55] paul__ has joined the channel [17:56] Lvca has left the channel [17:57] Luca__ has joined the channel [17:57] rauchg_: boys don't ry [17:57] Luca__: Hi there... anybody is talking about a client for OrientDB? [17:57] tilgovi has joined the channel [17:58] voodootikigod: which article should i be using for install npm on the latest no.de systems? [17:58] isaacs: voodootikigod: the latest ones have npm already [17:58] bradleymeck: it comes installed? [17:58] voodootikigod: hot damn [17:58] voodootikigod: it does [17:58] voodootikigod: danke [17:59] rauchg_: it's very hot [17:59] isaacs: voodootikigod: you may want to "npm update npm" to make sure it's up to date, though [17:59] voodootikigod: now you tell me [17:59] voodootikigod: :) [17:59] isaacs: voodootikigod: it's been getting pretty stable, though, as long as you're not using new-ish commands. [17:59] voodootikigod: i am trying to port over all the systems I have from the old no.de [18:00] voodootikigod: they just up and disappeared [18:00] voodootikigod: at launch [18:00] voodootikigod: was fun [18:00] isaacs: voodootikigod: yeah, different db [18:00] voodootikigod: yea [18:00] voodootikigod: so now i am waiting for enough coupon codes to run the systems [18:00] isaacs: voodootikigod: it's a beta. this round will probably go away or start costing money at some point, too [18:00] voodootikigod: is there a good way to mux multiple apps single smart machine? [18:00] isaacs: voodootikigod: the *machines* are still there, though [18:00] voodootikigod: for how long? [18:01] isaacs: voodootikigod: don't know [18:01] mape: isaacs: https://gist.github.com/1a2f857dde296c47b26a is that an npm issue or the package that is broken? [18:02] isaacs: re: mixing multiple apps, the easiest way is to just install them all on the machine and then have a server.js program that restarts them. [18:02] isaacs: voodootikigod: ^ [18:02] isaacs: mape: both. "npm update npm" first, and then try again [18:03] voodootikigod: cool [18:03] stagas: Luca__: hello [18:03] Luca__: hi [18:03] mape: isaacs: https://gist.github.com/a9301d347bcfd28942cb now I don't have npm anymore [18:03] stagas: Luca__: we were indeed talking a while ago about your orientdb :) [18:04] Luca__: ok, I'm in late :-) [18:04] Luca__: Do you reached a solution for it? [18:04] pyronicide has joined the channel [18:04] stagas: Luca__: it's ok. I'm trying to get my head around it now [18:04] mape: isaacs: https://gist.github.com/b8a20db80b42db8da3a6 update didn't seem to fix it [18:04] pyronicide has left the channel [18:06] stagas: Luca__: I can't seem to connect with the root & the config.xml automated password from the browser client [18:07] Luca__: are you talking about the OrientDB Studio? [18:07] stagas: Luca__: yes [18:07] Luca__: The password is auto-generated the first time [18:07] dgathright has joined the channel [18:07] dpritchett: thanks for NPM isaac [18:08] isaacs: dpritchett: you're welcome [18:08] stagas: Luca__: I copy paste the password from the xml but it doesn't seem to work. user: root and pass: 7AC5F71F03E3748F347B08025031429DC519DF924C2F705F2746277BBBE5BE12 should it look like this? [18:09] Luca__: yes [18:10] franksvalli has joined the channel [18:10] Luca__: please try admin and that password [18:10] Luca__: ops [18:10] bartt: I'm wondering how to give a utility function access to req, res & next without passing them as parameters under express.js. http://gist.github.com/606602 [18:10] Luca__: no, you're talking about the first page ? [18:10] bartt: Any pointers? [18:10] stagas: Luca__: admin / admin worked. root isn't listed in users at all [18:11] nefD: wheee! made a samegame clone for fun: http://www.sevrd.com/code/samegame/ [18:11] stagas: Luca__: the first page, localhost:2480 [18:11] Luca__: yes, "root" is the server user and he only can access to the Server panel [18:11] Luca__: yes [18:11] Luca__: that is the last tab [18:11] Luca__: when you click on the latest tab [18:11] stagas: ah ok [18:11] Luca__: the HTTP realm is different [18:11] tjholowaychuk: bartt: you cant how you want there [18:11] stagas: I got it :) [18:12] Luca__: and therefore should ask you a new user/passwd [18:12] Luca__: in that case is root/7AC5F71F03E3748F347B08025031429DC519DF924C2F705F2746277BBBE5BE12 [18:12] tjholowaychuk: bartt: but, you can define a method in req which has this.app, this.res [18:12] stagas: Luca__: thanks I saw it now it asked again and it worked [18:12] Luca__: perfect [18:12] tjholowaychuk: bartt: and this.next actually [18:12] bartt: Thanks tjholowaychuk [18:12] Luca__: it would be wonderful having a node.js plugin for OrientDB [18:12] stagas: Luca__: how do we go by making a rest client? node can do binary also and I believe it has an interface for that also? [18:13] stride: nefD: if I don't get any more work done today.. that's totally your fault [18:13] nefD: stride: lol [18:13] Luca__: OrientDB has 2 interfaces: binary and HTTP/RESTful [18:13] brianmario has joined the channel [18:13] Luca__: the first one has been built on top of raw TCP/IP sockets [18:13] Luca__: and exists only the Java binding (C and PHP will follow) [18:14] Luca__: the HTTP/REST is easier to implement [18:14] Luca__: because all you need is a HTTP client [18:14] Luca__: or just Ajax calls [18:14] bartt: tjholowaychuk: That would have to be a method in req's prototype, no? [18:14] tjholowaychuk: bartt: yup [18:15] luddep: is anyone using node-DJs on 0.2.2? [18:15] tjholowaychuk: bartt: something like req.authenticated(function(err, user){ ... }) [18:15] stagas: Luca__: node does raw TCP/IP don't you think there would be a performance issue on using REST? [18:15] dylang_ has joined the channel [18:15] luddep: if not, what are people using for development auto-reloading? [18:16] Luca__: stagas: course. If you can implement the binary one is far better! [18:16] Luca__: but can you manipulate raw bytes in node? [18:16] aconbere has joined the channel [18:17] CIA-77: node: 03Ryan Dahl 07master * r5a4c40b 10/ src/node.js : [18:17] CIA-77: node: Drop reference to timer callback on clearTimeout [18:17] CIA-77: node: Reported here: [18:17] CIA-77: node: http://groups.google.com/group/nodejs-dev/browse_thread/thread/9e063d0938f99879 [18:17] CIA-77: node: Would be good to test this somehow... - http://bit.ly/9XbwzI [18:17] isaacs: mape: not sure bout that. maybe uninstall and reinstall those packages. [18:18] mape: isaacs: j [18:18] mape: *k [18:18] isaacs: mape: looks like xmljs has a preuninstall script that's exiting badly [18:18] isaacs: mape: actually, it looks like scons isn't found. maybe install scons and it'll work cleanly? [18:18] stagas: Luca__: yes, you can even have c/c++ modules on top of node.js if necessary. I guess you're not familiar with node, http://nodejs.org/ [18:18] lakin has joined the channel [18:19] Luca__: stagas: I could document the binary protocol on the WiKi. I hope this week end I'll have time for it [18:19] mape: isaacs: Will try later [18:19] Luca__: stagas: C libs? so maybe the better thing is to finish the C-library [18:19] matt_c_ has joined the channel [18:19] Luca__: stagas: and build a wrapper for Node.js [18:20] Luca__: stagas: Yes, i know nodejs but not in deep [18:20] saikat_ has joined the channel [18:20] Luca__: stagas: Now I've to go. We can continue on monday if you're available. In the meanwhile I'll try to write something about binary protocol [18:21] Luca__: stagas: bye! [18:21] stagas: Luca__: cu [18:21] sudoer has joined the channel [18:22] siculars has joined the channel [18:23] codetonowhere has joined the channel [18:23] hellp has joined the channel [18:25] SvenDowideit_ has joined the channel [18:26] jacobolus has joined the channel [18:27] jchris has joined the channel [18:28] codetonowhere has joined the channel [18:32] CIA-77: node: 03Ryan Dahl 07master * r5829716 10/ lib/repl.js : [18:32] CIA-77: node: Fix REPL crash on tabbing 'this.' [18:32] CIA-77: node: Thanks to Tim Becker for pointing this out. - http://bit.ly/cOPfVd [18:33] bartt: tjholowaychuk: And I would create req.authenticated() inside the Connect.createServer() call, right? [18:33] tjholowaychuk: bartt: on http.IncomingMessage.prototype [18:33] tjholowaychuk: bartt: in express check out ./lib/express/request.js for examples [18:33] siculars has joined the channel [18:33] Anti-X: ooh repl has tabs? neat [18:35] bartt: Thanks tjholowaychuk, I was poking around in express but hadn't found this yet. That helps a lot! [18:35] tjholowaychuk: bartt: in server.js I expose req to res and res to req and app to both blah blah so you can interact as necessary [18:35] tjholowaychuk: without explicitly passing [18:35] Druide__ has joined the channel [18:36] bartt: Now, _that_ I had noticed. :) [18:36] bartt: Thanks man [18:36] tjholowaychuk: np [18:37] path[l] has joined the channel [18:38] fcoury: I am getting an error with npm installation (EACCES), it seems it's failing to link bins. Any ideas? [18:38] fcoury: ACTION tried both without and with sudo [18:38] isaacs: fcoury: http://github.com/isaacs/npm/ read down to the "Permission Errors" section [18:39] fcoury: thanks isaacs [18:39] fcoury: this is the cause for sure [18:39] fcoury: It worked [18:39] fcoury: #1 support question for NPM eh? :) [18:40] isaacs: fcoury: yep :) [18:40] fcoury: thank you [18:40] isaacs: fcoury: next version will have some more messaging when that error actually happens. [18:40] isaacs: fcoury: basically, a link to that readme section will get dumped to your terminal. [18:40] fcoury: awesome, I am properly installing it in Webbynode after installing node.js [18:40] fcoury: and that's the automation script that was failing [18:41] fcoury: now, redeploy machine and start from scratch \o/ [18:42] herbySk has joined the channel [18:43] fcoury: isaacs: not that I need it now, but in a shared host perspective, ideally each user would have its npm install or can we provide a central npm and the packages is the only part that would be installed on their home folder? [18:43] isaacs: fcoury: you can install npm *itself* globally, and then each user install their own pacakges, yes. [18:44] isaacs: fcoury: use sudo to install npm globally, and then set up the configs such that the {bin,man,}root configs are pointing into ~ someplace [18:44] fcoury: got you isaacs [18:44] isaacs: fcoury: the weird thing thereis that npm won't know it's installed [18:44] isaacs: fcoury: so, then, to update npm, you can log in as root, change those configs to point to the global locations, and do "npm update npm" [18:45] fcoury: got you [18:45] isaacs: fcoury: with the --userconfig and --globalconfig options, you can make that easier. [18:45] codetonowhere has joined the channel [18:45] fcoury: that sounds amazing, I will git it a shot [18:45] isaacs: fcoury: or you can actually ssh in as root@, and put a .npmrc file in /root [18:45] fcoury: I am setting up this big shared server for people to experiment with our Rapp engine for free [18:45] isaacs: fcoury: then root will have one setup, and the other users will have another [18:45] fcoury: nice! [18:46] isaacs: fcoury: i think the best trick there would be to make sure that ~/local/bin (or whatever) is in the PATH *before* /usr/local/bin (or wherever you install npm "globally") [18:46] saikat_ has joined the channel [18:46] creationix: isaacs: cloud9 is in npm! [18:46] isaacs: fcoury: then a user could install their own version of npm if they watned. [18:46] creationix: that rocks [18:46] isaacs: creationix: great :) [18:46] banjiewen has joined the channel [18:46] fcoury: let me save this transcript, isaacs [18:46] fcoury: :) [18:46] fcoury: thank you big time [18:47] isaacs: fcoury: lots of info in `npm help config` [18:47] fcoury: yup, just noticed! ;) [18:47] shaver: isaacs: I have a co-worker with no.de feedback -- where should he send it? [18:49] atmos has joined the channel [18:59] xla has joined the channel [18:59] KungFuHamster has joined the channel [19:01] matt_c has joined the channel [19:02] programble has joined the channel [19:02] programble has joined the channel [19:03] rcy has joined the channel [19:08] c4milo has joined the channel [19:08] TobiasFar has joined the channel [19:09] huyhong has joined the channel [19:10] matjas has joined the channel [19:10] peep has joined the channel [19:11] ooooPsss has joined the channel [19:11] peep: hi there, is there anyway to to conditional breakpoints in nodejs? [19:11] peep: im using web-inspector [19:11] huyhong has left the channel [19:12] mtodd has joined the channel [19:15] Me1000 has joined the channel [19:23] robotarm_ has joined the channel [19:24] path[l] has joined the channel [19:25] nefD: pffft, haha! relation db vs nosql: http://highscalability.com/blog/2010/9/5/hilarious-video-relational-database-vs-nosql-fanbois.html (NSFW) [19:25] sechrist: tjholowaychuk: you there? [19:26] tjholowaychuk: sechrist: somewhat, whats up [19:26] sechrist: are connect sessions supposed to clean themselves up? [19:27] path[l]: I had a recent thought about node and a potential problem, what do you guys think about this? http://bit.ly/dpWGc5 , have I misunderstood the nature of the problem? [19:27] tjholowaychuk: sechrist: which store are you using? [19:27] tjholowaychuk: but yeah [19:27] sechrist: I see a reap interval but I've had an inactive session stay around for longer than the default [19:27] ajsie has joined the channel [19:27] sechrist: err... I'm just using "session", so memory I'm assuming? [19:27] tjholowaychuk: reap interval is only for the memory sture [19:27] tjholowaychuk: store * [19:27] tjholowaychuk: ah gotcha [19:28] sveisvei has joined the channel [19:28] tjholowaychuk: might be a bug [19:28] sechrist: yeah I had an active session after not using the page for several hours [19:28] tjholowaychuk: the default is 4 hours [19:29] sechrist: http://github.com/senchalabs/connect/blob/master/lib/connect/middleware/session/memory.js#L29 [19:29] sechrist: or is this not the right code? [19:29] tjholowaychuk: it will try and reap sessions every 10 minutes, but the sessions themselves dont expire in 10 minutes [19:30] nefD: reap = how often old session are cleared out [19:30] tjholowaychuk: id recommend using connect-redis or something though, the memory one is not overly useful more of an example (and default) than anything else [19:30] nefD: theres a 'max age' setting that determines how old a session must be before it gets cleared out, I believe [19:31] tjholowaychuk: yup you can tweak that as needed [19:31] nefD: I had to tweak the mongo session adapter a bit to suit my needs and I remember seeing that max age setting then [19:32] smtlaissezfaire_ has joined the channel [19:32] sechrist: ah so connect-redis [19:32] sechrist: I saw an "express redis" but it was terribly old [19:32] smtlaissezfaire_ has left the channel [19:32] ashleydev: wow, `kill -9 $NODE_PID` just kernal panniced my macbook [19:32] nerdEd has joined the channel [19:33] sechrist: ashleydev: the kernel and node are _one_ [19:33] sechrist: lol [19:33] ashleydev: lol [19:41] JimBastard has joined the channel [19:42] shockie has joined the channel [19:51] mbrochh has joined the channel [19:51] mbrochh has joined the channel [19:53] jesusabdullah: Anybody know stuff about setting terminal modes in node? [19:54] pedrobelo has joined the channel [19:55] shockie: ok, quick question how can i listen to a unix socket as a 'client'?, created a server and i can see it writing data by telnetting to it, but creating another server to the same socket, won't trigger the data event [19:59] deepthawtz has joined the channel [20:02] mr_daniel has joined the channel [20:02] pedrobelo has joined the channel [20:02] aho has joined the channel [20:04] stagas has joined the channel [20:06] mtodd_ has joined the channel [20:11] eisd has joined the channel [20:14] ollie has joined the channel [20:16] tpryme has joined the channel [20:19] MikhX has joined the channel [20:21] stagas has joined the channel [20:24] smtlaissezfaire_ has joined the channel [20:30] nerdEd has joined the channel [20:30] satori_ has joined the channel [20:32] tpryme has left the channel [20:39] bpot has joined the channel [20:45] digitalspaghetti: does anyone know if there is anything like mongoose for couchdb? i.e. provides model stuff [20:47] tjholowaychuk: not that i know [20:48] micheil: hey tjholowaychuk [20:48] tjholowaychuk: micheil: heyhey [20:49] digitalspaghetti: hmm, looks like i'll maybe need to hack one together [20:52] JimBastard: digitalspaghetti: yeah [20:52] JimBastard: resourcer [20:52] JimBastard: http://github.com/indexzero/resourcer [20:52] JimBastard: its not really released though [20:52] JimBastard: but it mostly works, lots of tests [20:52] JimBastard: we are using in production [20:53] JimBastard: using cradle as the db connection [20:54] mAritz has joined the channel [20:56] mape: digitalspaghetti: tim is doing one for redis [20:56] mape: digitalspaghetti: http://github.com/biggie/biggie-orm [20:57] saikat_ has joined the channel [21:00] devinus has left the channel [21:03] Nohryb has joined the channel [21:07] nsm has joined the channel [21:09] ay has joined the channel [21:09] ay: ACTION says hi. [21:10] ay: For a server-client architecture where bot server and client is node.js. Would it make sense to use socket.io? [21:10] ay: s/bot/both/ [21:10] SubStack: ay: socket.io is for browser streams [21:11] JimBastard: ay: dnode might help [21:11] kriszyp: digitalspaghetti: perstore does [21:11] SubStack: ^_^ [21:11] kriszyp: http://github.com/kriszyp/perstore [21:11] SubStack: also I made a dnode-perl last night [21:11] SubStack: dnode-ruby coming soon [21:11] robotarm_ has joined the channel [21:11] mape: ay: better of using websocket-server and websocket-client in that case [21:12] ay: websocket-client exists? ooh. Niceness. [21:12] micheil: ACTION is websocket-server author [21:13] banjiewen_ has joined the channel [21:17] ollie has joined the channel [21:17] ay: mikekelly: Do you have a URL for that client somewhere? [21:17] dgathright has joined the channel [21:20] ay: Ups. Wrong tabcompletion [21:20] ay: micheil: Do you have the URL for that webscoket client somewhere? [21:21] micheil: sure, give me five minutes though. [21:21] micheil: I'm kinda busy right now. [21:21] ay: Yes ofcourse. Sorry :-) [21:21] mape: http://github.com/pgriess/node-websocket-client [21:22] ay: Very very cool. [21:22] ay: ACTION goes back into his cave [21:29] JimBastard has joined the channel [21:30] captain_morgan has joined the channel [21:31] BHSPitCSP has joined the channel [21:31] banjiewen has joined the channel [21:35] wavded has joined the channel [21:36] Yuffster has joined the channel [21:38] wavded has left the channel [21:41] sudoer has joined the channel [21:42] ircretary has joined the channel [21:43] sanduz2 has joined the channel [21:43] MattJ has joined the channel [21:44] shockie has joined the channel [21:44] CIA-77: node: 03Ryan Dahl 07master * rc9627e0 10/ (150 files in 14 dirs): Upgrade V8 to 2.4.7 - http://bit.ly/b8lFFO [21:49] saikat has joined the channel [21:50] atmos_ has joined the channel [21:51] LowValueTarget has joined the channel [21:58] nerdEd has joined the channel [22:01] jacobolus has joined the channel [22:02] Tim_Smart has joined the channel [22:03] Nohryb has joined the channel [22:04] jacobolus has joined the channel [22:09] micheil: gotta love socket.io code.. if (1==2&& req.headers['if-none-match'] == clientVersion){ [22:09] SvenDowideit has joined the channel [22:10] technoweenie: amazing [22:10] streampunk: 1==2 is technically shorter than false but null is easier to type. [22:10] streampunk: I don't know why people keep dead code around. [22:10] streampunk: Or even comment code out. [22:10] streampunk: Kill it and let version control do it's magic. [22:10] streampunk: its event* [22:11] streampunk: even * [22:11] jesusabdullah: Reminder to reimplement? [22:11] streampunk: An external todo is better. [22:11] webr3: if your still implementing but need to push other changes in the file? [22:11] streampunk: Like a story in pivotal tracker of whatever one might use. [22:11] streampunk: webr3: branches. [22:11] jesusabdullah: Ah, but it's a reason, isn't it? [22:12] streampunk: Or possibly just no committing code that isn't done. [22:12] streampunk: Bad reasons. [22:12] webr3: best call the code police then [22:12] streampunk: People need to learn to delete. I'm here to help you all. =D [22:12] jesusabdullah: idk, this stance seems pretty dogmatic [22:13] streampunk: I think code rot sucks, so what? [22:13] jesusabdullah: Less rot, more messy desk [22:13] webr3: fwiw i agree and don't do it myself, but i don't care if somebody else does [22:14] webr3: ie I'm not offended by seeing commented or if(false'd code [22:14] jesusabdullah: I don't do it *often* but I've done it once or twice [22:14] streampunk: webr3: Well, the question comes when you have to edit that code, does it need to be there for someone else or do you delete? [22:14] streampunk: And if you delete, why are you doing it when they could have just cared about other people seeing their code? [22:15] streampunk: And that different person might be yourself in 2-3 months or something. [22:15] webr3: streampunk, depends on context, sometimes it's good to leave something that seems like it should be there but f's up because of bugs elsewhere in the stack [22:15] streampunk: Anyway... not a big deal. [22:15] webr3: steampunk, that said i do like the comment "// removed this" [22:15] webr3: with the code removed of course :p [22:16] herbySk has joined the channel [22:17] CIA-77: node: 03Marco Rogers 07master * r4a7562d 10/ (lib/fs.js test/simple/test-fs-read-stream.js): fix encoding option on ReadStream, updated test - http://bit.ly/aLXnGZ [22:17] streampunk: Heheh. I guess I do more code review than I did in the past so I care a lot about quality. [22:17] ysynopsis has joined the channel [22:17] webr3: streampunk, so your on wtf's the minute then [22:18] ngw has joined the channel [22:22] Tim_Smart: mjr_: Testing redis-node-client (fictorials) now. [22:24] creationix has joined the channel [22:25] reid has joined the channel [22:25] creationix has joined the channel [22:28] sonnym: anyone have any experience with node-websocket-client? [22:28] sonnym: send doesn't seem to be working [22:28] vnguyen_ has joined the channel [22:30] ryan[WIN]: anyone hiring for html5/javascript or nodejs kind of work [22:31] ryan[WIN]: i know this isn't a job channel ;P but i'm throwin' that out there [22:31] pquerna: ryan[WIN]: bay area? [22:31] ryan[WIN]: (btw for everyone that doesn't know, i'm not ryan dahl i'm ryan broomfield a completely different guy) [22:31] pquerna: ryan[WIN]: http://cloudkick.jobscore.com/list [22:31] ryan[WIN]: no i'm in orlando fl but i'm willing to move [22:31] pquerna: both node.js stuff, and html5/js stuff [22:31] jacobolu_ has joined the channel [22:32] ryan[WIN]: cool [22:32] pquerna: email me paul@cloudkick.com if the jobscore thing is as terrible as i think it is [22:32] ryan[WIN]: cool i have some snazzy html5/js/nodejs demos as well [22:35] CIA-77: node: 03Mark Nottingham 07master * rd59512f 10/ (3 files in 3 dirs): [22:35] CIA-77: node: Add support for handling Expect: 100-continue [22:35] CIA-77: node: HTTP/1.1 requests, either with an event (check_continue) or automatically, if no event handler is present. [22:35] CIA-77: node: Add client-side expect/continue support, tests. [22:35] CIA-77: node: Expound upon client requirements for expect/continue. - http://bit.ly/9LwzTe [22:35] pquerna: woo [22:35] pquerna: almost a real http client now [22:38] stagas has joined the channel [22:44] captain_morgan has joined the channel [22:44] necrodearia has joined the channel [22:44] webr3: jesus, you know something's good when mnot is commiting patches :| [22:57] jashkenas has joined the channel [23:04] hannesw_ has joined the channel [23:07] csullivan__ has joined the channel [23:08] ben_alman has joined the channel [23:14] tjholowaychuk: anyone have success with v8's SetIndexedPropertyHandler? [23:17] ajpiano has joined the channel [23:20] Tim_Smart: tjholowaychuk: What is it supposed to do? [23:20] saikat has joined the channel [23:21] tjholowaychuk: Tim_Smart: subscript operator w/ numbers [23:21] tjholowaychuk: at least id imagine so, the getter is working but setter wont [23:21] tjholowaychuk: for some reason [23:22] dmcquay: i'm not seeing a lot of good session support for connect, but i'm very surprised by that (aka I think I'm probably just missing something) [23:22] Tim_Smart: Hmm.. Interesting. On another note ........................................................................................................................................................................................................ [23:22] Tim_Smart: === set x10000 === [23:22] Tim_Smart: node-redis results: 680, 578, 486, 483, 468, 453, 447, 469, 460, 452 [23:22] Tim_Smart: node_redis results: 546, 627, 754, 740, 776, 882, 760, 763, 790, 763 [23:22] Tim_Smart: redis-node results: 596, 766, 766, 771, 781, 909, 842, 775, 775, 854 [23:22] dmcquay: anyone have some knol to share? [23:22] Tim_Smart has joined the channel [23:22] Tim_Smart: Paste fail? [23:22] Tim_Smart: I think so. [23:23] Tim_Smart: https://gist.github.com/95b7f8593c78a0310a1e >.> [23:23] tjholowaychuk: dmcquay: there are lots of stores [23:23] aussiegeek has joined the channel [23:23] tjholowaychuk: dmcquay: connect-redis, an nstore one [23:23] hassox has joined the channel [23:23] tjholowaychuk: a mongodb one somewhere [23:24] hassox: hey guys... favorite mongodb adapters? [23:24] hassox: ACTION is trying to use mongoose, but can't even get it installed (using nvm and npm) [23:24] ekidd has joined the channel [23:24] creationix: ryah: isaacs: is this the issue you were seeing during node knockout? http://github.com/senchalabs/connect/issues/#issue/103 [23:25] dmcquay: tjholowaychuk - i'll check those out, thx [23:26] isaacs: creationix: the memory issues at node ko are not completely fixed (that'll take a while, and might be somewhat impossible, since you can always just leak memory in js if you really want to [23:26] isaacs: creationix: but we have a solution in the newer machines that will just restart the process, rather than letting it get into an oddly semi-borked state. [23:26] creationix: I'm just wondering if it's a connect issue or something more [23:26] isaacs: well, it could be a connect issue, but it could also be a node issue [23:27] isaacs: hard to say, really [23:27] nerdEd has joined the channel [23:28] creationix: sure, I was just wondering if those were the same issues you were seeing. [23:29] DTrejo has joined the channel [23:29] DTrejo: evening everyone [23:33] dmcquay: tjholowaychuk - heard anything about this? [23:33] dmcquay: http://github.com/caolan/cookie-sessions [23:33] tjholowaychuk: dmcquay: nope [23:33] dmcquay: k [23:34] hassox: tjholowaychuk what's your github page? [23:34] marshall_law has joined the channel [23:34] tjholowaychuk: hassox: visionmedia [23:34] hassox: ah right [23:34] hassox: cools [23:35] dmcquay: creationix - looks like you've looked at http://github.com/caolan/cookie-sessions [23:35] dmcquay: any opinions? [23:35] omarkj has joined the channel [23:35] creationix: dmcquay: not really, I generally don't like session data in the cookie [23:36] creationix: but I guess in certain cases it's useful to offload session data to the client [23:36] tjholowaychuk: dmcquay: just use redis :p super easy to deploy / install, and super fast [23:36] langworthy has joined the channel [23:41] dnolen has joined the channel [23:47] vnguyen has joined the channel [23:48] dmcquay: creationix tjholowaychuk - thx much [23:48] tjholowaychuk: dmcquay: np [23:48] creationix: :D [23:48] tjholowaychuk: dmcquay: what did you end up going with for your sessions? [23:49] bartt has joined the channel [23:49] [[zz]] has joined the channel [23:54] dmcquay: tjholowaychuk - just holding my baby right now [23:54] dmcquay: :) [23:54] dmcquay: will decide l8r [23:55] tjholowaychuk: aight [23:56] bartt: Has anyone else observed OSX kernel panics when killing a running node.js process? [23:57] bartt: Three days in a row I've had kernel panics when I Ctrl-C spark with 4 worker node.js processes. [23:59] dmcquay: bartt - i see something similar on linux [23:59] [[zz]] has joined the channel [23:59] dmcquay: oh wait, nm