[00:00] parshap: SubStack: `touch js/foo.js` doesn't cause it, but just opening and saving the file in vim does [00:03] piscisaureus_ has joined the channel [00:05] replore has joined the channel [00:05] replore_ has joined the channel [00:07] Lingerance: jaequery: Depends on your usecase. I personally use node-mongo-native. [00:08] heavensgate: G.O.A.T [00:08] heavensgate: greatest of all time [00:08] Remoun has joined the channel [00:10] dgathright has joined the channel [00:11] brianseeders has joined the channel [00:11] JSManiacs has joined the channel [00:11] mrryanjohnston has joined the channel [00:11] mrryanjohnston: I did an `npm install vows -g` and got a `Error: Cannot find module 'eyes' [00:12] mrryanjohnston: ` when I try to run my tests [00:12] heavensgate: well that is profound mrryanjohnston [00:12] mrryanjohnston: heavensgate: indeed. [00:13] heavensgate: install module 'eyes' [00:13] mrryanjohnston: heavensgate: I shouldn't have to, though, as it should install as a dependency to vows. [00:13] mrryanjohnston: infact, it says it installed [00:13] piscisaureus__ has joined the channel [00:14] mrryanjohnston: heavensgate: also, this is a known past issue in vows: https://github.com/indexzero/forever/issues/44 [00:14] heavensgate: update to the latest version [00:14] mrryanjohnston: heavensgate: I literally just installed 3 seconds ago [00:14] heavensgate: note: usage 'past' [00:14] heavensgate: to make past issues past use current versions [00:15] Juan77 has joined the channel [00:15] mrryanjohnston: heavensgate: thanks for your input. I'm at the latest version. I will either ask indexzero or post an issue. [00:15] heavensgate: eyes is just a remote viewing tool so ryan dhal can watch you [00:16] heavensgate: what version of node are you using mrryanjohnston [00:17] mrryanjohnston: heavensgate: 4.11 [00:18] nicwolff has joined the channel [00:18] soapyillusions has joined the channel [00:18] heavensgate: mrryanjohnston current is 0.5.1 [00:18] mrryanjohnston: i'll update to 12 though see if that works out [00:19] mrryanjohnston: heavensgate: ? isn't current 0.4.12/0.5.7? [00:19] heavensgate: well maybe PatrickTulskie fixed it like he said [00:20] heavensgate: I am going to get some cafiene and go ahead and install mrryanjohnston [00:20] heavensgate: I had the issue where im using windows unpreferred platform [00:20] mrryanjohnston: aight let me know how it goes [00:21] heavensgate: I will boot into knoppix and see if i can recreate on this end [00:21] heavensgate: but whay are you using an old beta version mrryanjohnston [00:21] mape_: tjholowaychuk: any easy way to get the workers id from within the worker? [00:21] mrryanjohnston: heavensgate: 4.12 is beta? [00:21] tjholowaychuk: mape_: process.env.CLUSTER_WORKER i believe [00:21] mrryanjohnston: heavensgate: 0.4.12 is the version in arch's aur [00:21] javaanse_jongens has joined the channel [00:21] mrryanjohnston: so I'm just sticking with that [00:21] heavensgate: its not even 1.0 [00:21] heavensgate: that means beta still [00:21] tjholowaychuk: though you probably shouldn't do anything worker specific [00:21] mape_: tjholowaychuk: lovely [00:22] tjholowaychuk: that makes things a bit brittle [00:22] scott_gonzalez has joined the channel [00:22] heavensgate: we should be paid for beta testing [00:22] parshap: SubStack: yes looks like vim is first deleting file? the fs.watchFile callback gets called twice on save - once with nlink === 0 (deleted) and then once again after with nlink !== 0 [00:22] mrryanjohnston: heavensgate: I think 4 and 5 are being developed in tandem [00:22] heavensgate: like Java isnt rich enough [00:22] parshap: SubStack: browserify doesn't handle the case of a deleted file being readded again, what do you think? [00:22] heavensgate: they keep banking onopen source's coolness [00:22] neilk_ has joined the channel [00:22] ilikeit has joined the channel [00:23] Remoun has joined the channel [00:23] mrryanjohnston: heavensgate: you crazy, brah. [00:23] ilikeit: how to end a multiline expression in the node REPL? [00:23] heavensgate: yeah yeah [00:24] heavensgate: i think thats the reason they setup companies so they can sue for exclusive rights to the sourcecode later [00:24] losing has joined the channel [00:25] guillermo has joined the channel [00:26] softdrink: is there something client side similar to process.nextTick that is faster than a setTimeout of 0? [00:28] JaKWaC_ has joined the channel [00:29] heavensgate: mrryanjohnston indexzero answered your quesion already [00:29] aconbere has joined the channel [00:29] heavensgate: same thing i saidd get at least version 0.4.2 [00:30] mrryanjohnston: heavensgate: version of node? [00:30] mrryanjohnston: heavensgate: I'm at version 0.4.12 [00:30] heavensgate: nero package manager [00:30] heavensgate: npm [00:30] shirro has joined the channel [00:30] mrryanjohnston: ah [00:30] mrryanjohnston: heavensgate: uh, well that's at 1.0.24 [00:30] JakeyChan has joined the channel [00:31] heavensgate: ok well still why are you using an old version of node? [00:32] heavensgate: let me reboot into linux and see what the deal is i will bbiab [00:32] parshap: SubStack: in my opinion, the best fix is to just remove the handling of ddeleted files (i.e., remove the `if (curr.nlink === 0)` block) - you are assuming new files won't be added already, might as well assume existing files won't be deleted [00:32] mrryanjohnston: heavensgate: As I said before, I think node 4 and 5 are being developed in tandem, last I heard [00:32] mrryanjohnston: perhaps I misunderstood [00:33] heavensgate: odd numbers are always better [00:33] heavensgate: odd numbers are always better [00:33] heavensgate: oops [00:33] heavensgate: ok bbiab [00:33] mrryanjohnston: :| [00:33] jacobolus has joined the channel [00:33] heavensgate: wait i cant reboot right now im enjoying this music [00:34] mrryanjohnston: heavensgate: don't worry about it, dude. [00:35] ShonM has joined the channel [00:36] heavensgate: nope mrryanjohnston its a learning experience [00:36] ryanfitz has joined the channel [00:36] heavensgate: thats how open source works [00:36] softdrink: apparently tapping into window.postMessage is significantly faster [00:36] davidbanham has joined the channel [00:36] joshkehn has joined the channel [00:36] joshkehn has left the channel [00:36] heavensgate: then when oracle sues for coderights you already have a job [00:37] sam350 has joined the channel [00:37] heavensgate: then you open source your work out to some hungry kids and just get the payroll [00:37] smtlaissezfaire has joined the channel [00:37] heavensgate: ok bbiab [00:37] maxogden: cool rant [00:38] zeade has joined the channel [00:39] mandric has joined the channel [00:39] joe-f4 has joined the channel [00:40] __main__ has joined the channel [00:41] shipit has joined the channel [00:41] brianseeders has joined the channel [00:42] CarterL has joined the channel [00:42] aconbere has joined the channel [00:42] ShonM has left the channel [00:42] tylersta_ has joined the channel [00:43] neorab has joined the channel [00:45] chris_ has joined the channel [00:45] AvianFlu has joined the channel [00:46] smus has joined the channel [00:46] navaru has left the channel [00:46] smus has joined the channel [00:48] neoesque has joined the channel [00:49] ewj has joined the channel [00:51] llrcombs: OK, I appear to be failing at serving a .mp4 using the builtin http module [00:51] llrcombs: I'm using a file read stream and piping it to the ServerResponse [00:52] llrcombs: WebKit's buggering out [00:52] llrcombs: and QuickTime seems to hate me [00:52] llrcombs: I've got that question-mark QuickTime logo [00:52] nanreh has joined the channel [00:54] devongovett has joined the channel [00:54] k1ttty has joined the channel [00:54] konobi: llrcombs: you probably want chunked encoding [00:55] llrcombs: konobi: how do I do that? [00:55] konobi: http://groups.google.com/group/nodejs/browse_thread/thread/8339e0dc825c057f/822b2dd48f36e890 [00:55] dynacker: http://droidsheep.de/ [00:55] llrcombs: "Transfer-Encoding": "chunked"? [00:55] ank has joined the channel [00:56] nanreh: var URL_REGEXP = /foo/; URL_REGEXP.test(); <--- gets an 'Error: No input to...' in a node console, no error when i put it in a file and 'node file.js'. I'm missing something obvious, reaching out lazily for help. [00:57] konobi: nanreh: you need to pass it an argument [00:57] nanreh: konobi: i know. but i don't get an error when i run it in a file. [00:58] konobi: var URL_REGEXP = /foo/; URL_REGEXP.test('bar'); [00:58] konobi: eval var URL_REGEXP = /foo/; URL_REGEXP.test('bar'); [00:58] konobi: meh... that works in the repl [00:58] ditesh|cassini has joined the channel [00:58] ditesh has joined the channel [00:59] jtsnow has joined the channel [01:00] luxigo: how to use libev in internal modules and stay compatible with win32 platform ?... [01:00] nanreh: konobi: echo '/foo/.test();' > foo.js && node ./foo.js <-- i expect an Error but don't see it. i see it in repl. missing something obvious. [01:00] Guest54603: trying to install node.js using the windows binary. just goes to a > command prompt. anyone know how to get pass this? [01:01] heavysixer has joined the channel [01:01] luxigo: if you have the prompt you're in node [01:02] tmzt: Guest54603: pass it a file to run [01:02] _ding has joined the channel [01:02] luxigo: node.exe script.js [01:02] Guest54603: thanks luxigo, was expecting an installer, makes sense now [01:03] luxigo: if your script needs modules you must create a node_module directory and put the modules directories inside it... and add a NODE_PATH environment variable and add it to PATH [01:03] luxigo: node_modules sorry [01:04] tmzt: Guest54603: you're expecting to much, node is just right sized [01:04] vidi has joined the channel [01:06] deedubs has joined the channel [01:07] jacobolus has joined the channel [01:08] gxdssoft has joined the channel [01:10] mandric has joined the channel [01:10] metellus has joined the channel [01:11] BillyBreen has joined the channel [01:12] J-code has joined the channel [01:13] ryanmcgrath_ has joined the channel [01:14] J-code: hi ryanmcgrath [01:14] d0k has joined the channel [01:15] eee_c has joined the channel [01:15] ryanmcgrath: Hi there [01:15] Murvin has joined the channel [01:15] slajax_ has joined the channel [01:18] J-code: my friend showed me all the pages to get started but i bookmarked them on another machine [01:18] J-code: what comes first the node.js package? [01:19] skiz has joined the channel [01:19] enhydra has joined the channel [01:21] Acolyte has joined the channel [01:22] socketio\test\17 has joined the channel [01:22] Acolyte: whats the correct way to ensure that routing path is checked thoroughly instead of running the first closest match? [01:23] Vennril2 has joined the channel [01:24] yept has joined the channel [01:24] Acolyte: app.get('/' + controller.plural + '.:format??start=:start&limit=:limit', function(request, response, next) gets taken over by app.get('/' + controller.plural + '.:format?', function(request, response, next), is it correct behavior? [01:24] tjholowaychuk: woah [01:24] tjholowaychuk: lol [01:24] briandh has joined the channel [01:24] tjholowaychuk: is that express? [01:25] Acolyte: ya [01:25] tjholowaychuk: because the query-string isnt part of the routing [01:25] julioj has joined the channel [01:25] tjholowaychuk: just the pathname [01:25] julioj: hello all [01:25] aconbere has joined the channel [01:26] Acolyte: tjholowaychuk: thanks, wasn't aware of it [01:27] ryanfitz has joined the channel [01:27] skm has joined the channel [01:27] dlanod has joined the channel [01:29] neilk_ has joined the channel [01:29] Acolyte: is there a router that takes into account parameters? [01:29] ditesh has joined the channel [01:30] jacob_ has joined the channel [01:30] tjholowaychuk: Acolyte req.query.start [01:31] jtsnow has joined the channel [01:31] tjholowaychuk: assuming ordering for those values during routing [01:31] tjholowaychuk: is not a good idea [01:34] devdazed has joined the channel [01:38] CarterL has joined the channel [01:38] nerdy_ has joined the channel [01:39] Wa has joined the channel [01:40] sub_pop has joined the channel [01:41] willwhite has joined the channel [01:41] Dreamer3 has joined the channel [01:42] jldbasa has joined the channel [01:42] Bradleymeck has joined the channel [01:43] jcerwinske has joined the channel [01:43] Bradleymeck: anyone have up to date instructions on how to build node on windows with vcbuild.bat , I just downloaded 0.5.7 and tried to run it and seems python2.7 is unhappy [01:43] cjheath has joined the channel [01:43] chance- has joined the channel [01:43] CIA-109: libuv: 03Bert Belder 07master * r1d3b880 10/ test/benchmark-sizes.c : Add uv_tty_t size to benchmark-sizes - http://git.io/ur7nZA [01:43] CIA-109: libuv: 03Bert Belder 07master * r14cdc80 10/ src/win/stream.c : win tty: Fix typo - http://git.io/lO8CyA [01:46] cjheath has joined the channel [01:46] jacob2039582035 has joined the channel [01:47] PuffTheMagic: im using the tty module in node and when it sends my app data it sends it in chunks of 4096 bytes [01:47] PuffTheMagic: is there a way to change this to something else? [01:47] jedahan has joined the channel [01:47] PuffTheMagic: is there a way to change this to something else? [01:47] PuffTheMagic: srry for the repeat, alt-tab fail [01:48] softdrink: does anyone have a good trick for having a class keep track of its instances *without leaking*? [01:48] Bradleymeck: PuffTheMagic thats due to kernel buffers not node [01:48] softdrink: or having to resort to instance.destroy() or something [01:48] maxogden: softdrink: javascript doesnt have classes :) [01:48] Bradleymeck: softdrink look at the new weakmaps in v8 [01:48] mrryanjohnston: http://www.youtube.com/watch?v=BhDhDRvHaGs [01:48] cognominal_ has joined the channel [01:49] softdrink: Bradleymeck: i was hoping to have it work in browsers as well [01:49] ditesh|cassini has joined the channel [01:49] Bradleymeck: softdrink, then no, you must manually use destructors of some kind, or leak [01:49] softdrink: (note: IE doesn't count as a browser) [01:50] eventualbuddha has joined the channel [01:51] cdantas has joined the channel [01:51] chance-: thats rather naive [01:51] J-code: wtf! [01:51] chance-: :P [01:52] Bradleymeck: chance, its something that must be accepted if IE is to move forward (look at IE7/8, then after people thinking this way IE9 started to turn around) [01:52] J-code: Someone tell me what is wrong with this command: tar -xz --strip-components=1 node-latest.tar.gz [01:52] chance-: Bradleymeck - oh, don't get me wrong, I'm all for deprecating browsers [01:53] J-code: why would you be for that chance-? [01:53] chance-: why wouldn't I be? [01:53] J-code: let me guess you are all for rolling the dice too? [01:54] softdrink: i'm not outright supporting IE for this project. if it happens to work in ie9+ then great... but i'm not going out of my way to support it. [01:54] chance-: supporting ancient browsers is counter-intuitive to our profession [01:54] J-code: no rhyme or reason jut for something because why not [01:54] jacob2039582035 has joined the channel [01:55] J-code: you profess coding? [01:55] chance-: softdrink - go for it [01:55] J-code: i think thats why nothing works because people are just for depricating things for no reason [01:55] chance-: j-code - what are you goin on about mate? [01:56] J-code: Someone tell me what is wrong with this command: tar -xz --strip-components=1 node-latest.tar.gz [01:56] J-code: trying to install node and it just hangs there after that command [01:56] cdantas has left the channel [01:56] djQuery has left the channel [01:56] J-code: maybe they depricated one of the options : because why not [01:56] chance-: j-code i think it really depends on your market, i target startups so if i have a client hit me up that's running ie7, i likely dont want their business anyway [01:57] chance-: but their apps are different [01:57] chance-: i'd want them to have the longest reach possible [01:57] chance-: ie7 still has decent market saturation, ie8 even more so [01:58] maxogden has left the channel [01:58] chance-: it's not rolling dice [01:58] J-code: there is no reason to depricate browsers [01:58] don_jones: ACTION is wondering whether there is any better way to have a c++ object managed by v8 than NodeWrap [01:59] J-code: so you dont like ie7 [01:59] J-code: ok use firefox [01:59] don_jones: Feels pretty clunky to me [01:59] chance-: k [01:59] J-code: what you want busywork and recoding all of the framework a browser provides for no reason? [01:59] Bradleymeck: J-Code there are reasons involving dev time for simple tasks and security leaks (new ActiveX() for the win!) [02:00] Bradleymeck: hasLayout alone is reason to deprecate ie7- [02:00] softdrink: Deprecate browsers when the cost of supporting them is greater than the return. [02:00] softdrink: simple [02:00] Bradleymeck: agreed [02:01] softdrink: don't screw over your whole architecture for the sake of six non-paying users ;) [02:02] chance-: but to circle back, ignoring ie8/9 is dangerous [02:02] J-code: Bradleymeck: a browser is just a framework you dont have to use activex [02:02] chance-: unless you know your market well [02:02] J-code: ok guys cute talk [02:02] Lorentz: I've haven't seen too many places where ie8/9 behaved completely different than other browsers [02:02] thiagopnts has joined the channel [02:02] J-code: Someone tell me what is wrong with this command: tar -xz --strip-components=1 node-latest.tar.gz [02:02] Lorentz: Of places I did see, it was poor coding on my part [02:02] softdrink: exactly... *know your market* [02:03] Bradleymeck: why are you not doing tar -zxvf J-code [02:03] J-code: Bradleymeck: i was just following the gist guide [02:03] Bradleymeck: tar implementations get screwy but that always seems to stays compatible [02:04] J-code: 30 seconds has passed [02:04] tmzt has joined the channel [02:04] J-code: eff it! [02:04] J-code: you know what eff it! [02:05] Lorentz: If you want to see what it's doing, add -v to it [02:05] Lorentz: instead of sitting in silence, contemplating what it's possibly doing [02:05] dominictarr has joined the channel [02:06] J-code: same thing just silence no verbosity [02:06] J-code: just a solid cursor [02:06] J-code: doing absolutely nothing [02:06] J-code: i guess someone depricated something for no reason [02:06] CIA-109: libuv: 03Erick Tryzelaar 07master * refa720d 10/ src/win/udp.c : (log message trimmed) [02:06] CIA-109: libuv: win: Removing uv_udp_connect6 [02:06] CIA-109: libuv: This function isn't exposed or used internally. Nor [02:06] CIA-109: libuv: is there a windows implementation for IPv4, or [02:06] CIA-109: libuv: unix implementation for IPv4 or IPv6. [02:06] CIA-109: libuv: However, sockets do support UDP connections (which [02:06] CIA-109: libuv: just let you use send/recv instead of [02:06] CIA-109: libuv: 03Erick Tryzelaar 07master * r17d4686 10/ src/win/udp.c : win: Actually exit if uv_udp_bind only wants IPv6. - http://git.io/MltzTA [02:06] CIA-109: libuv: 03Erick Tryzelaar 07master * rc260a39 10/ (src/unix/tcp.c src/win/tcp.c): unix,win: Check connect receives right socket type - http://git.io/M6GjFQ [02:06] CIA-109: libuv: 03Erick Tryzelaar 07master * r1d7e61f 10/ (src/unix/tcp.c src/unix/udp.c src/win/tcp.c src/win/udp.c): unix,win: Check bind receives right socket type - http://git.io/q5_Tbw [02:06] Lorentz: I'm also guessing because you don't have -f, it's waiting in stdio [02:06] CIA-109: libuv: 03Erick Tryzelaar 07master * r23796d2 10/ (35 files in 4 dirs): [02:06] CIA-109: libuv: Fixes #76. Unify OS error reporting [02:06] CIA-109: libuv: As a nice fringe benefit, this also shaves a word [02:06] CIA-109: libuv: off of a windows TCP handle by replacing "uv_err_t [02:06] CIA-109: libuv: bind_error" with "int bind_error". - http://git.io/-UX6Dw [02:06] J-code: just more busywork [02:07] J-code: CIA-109: nice [02:07] chance- has left the channel [02:08] dingomanatee has joined the channel [02:08] tilgovi has joined the channel [02:08] infynyxx has joined the channel [02:08] J-code: CIA-109: very nice [02:09] mbrevoort has joined the channel [02:09] abravo has joined the channel [02:10] J-code: you know what eff it! [02:10] J-code: going to see me like bill orielly [02:10] J-code: wtf! [02:11] J-code: might as well ban computers [02:11] J-code: try to untr something and it doesnt work [02:11] J-code: *untar [02:12] Lorentz: I think you just don't know how to use tar. [02:12] Lorentz: As I said, you're missing -f [02:12] jhurliman has joined the channel [02:14] J-code: wow Lorentz it worked [02:14] J-code: someone update the gist script [02:15] mike5w3c has joined the channel [02:16] willwhite has joined the channel [02:17] jaf0 has joined the channel [02:18] J-code: wget http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1 [02:18] J-code: ./configure --prefix=~/local how is that supposed to work without the f option Lorentz ? [02:18] Acolyte: anyone used Persevere? [02:19] J-code: https://gist.github.com/579814#file_node_and_npm_in_30_seconds.sh [02:19] J-code: see line 6 [02:19] tmzt_ has joined the channel [02:19] jaequery has joined the channel [02:20] Lorentz: J-code: unix-y things rely on pipes to do this, in this case, the code's trying to get wget to grab the file, and stream it into stdin/out, which tar gets and extracts on the fly as it's passed along. [02:20] icewhite has joined the channel [02:20] Lorentz: Thus, doesn't even have to save the tar.gz file anywhere on the file system. [02:21] J-code: oh ok the pipe replaces the f Lorentz thNKAS for clearing things up [02:21] Lorentz: By default though, wget probably does save it as a file in the directory. [02:21] Lorentz: So that bit of code probably won't work [02:21] J-code: Lorentz: is curl different? [02:21] J-code: i used wget because i didnt have curl [02:22] Lorentz: I think curl pushes to stdout by default? So yes, they're different [02:23] luke` has joined the channel [02:24] J-code: i apreciate yopu taking the time to explain that Lorentz [02:24] bartt has joined the channel [02:24] Lorentz: Try "wget -qO- http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1" instead [02:24] Lorentz: I think that should work [02:26] J-code: ive already added the f option [02:26] J-code: it worked [02:26] J-code: but im at my wits end now i went into this expecting it to take 30 seconds [02:27] J-code: and here i am 30minutes later [02:29] bluezjuice has joined the channel [02:31] amigojapan has joined the channel [02:31] ditesh has joined the channel [02:32] J-code: lol [02:32] J-code: i go to install g++ and synaptic says i have to remove everything on the system [02:33] sivel has left the channel [02:33] J-code: yeah 30 seconds [02:33] J-code: when are some lawyers going to start suing people for false advertising [02:34] a_suenami has joined the channel [02:34] nerdy_ has joined the channel [02:34] Vennril2 has joined the channel [02:35] Bradleymeck: when its not free [02:36] sub_pop has joined the channel [02:36] J-code: it aint [02:36] Corren has joined the channel [02:36] daleharvey: I am looking into different ways to implement inherently synchronous functionality with with sync api's in a way that isnt ugly [02:36] J-code: and the joyent page said if you are using a linux distro 'you are golden' [02:37] daleharvey: for example a rest api, where you want to test one call after the other [02:37] TooTallNate has joined the channel [02:38] J-code: seriously i would have approached this differently if it didnt say 'you are golden' to install in 30 seconds [02:38] J-code: now im pissed [02:38] ewj has joined the channel [02:38] broofa has joined the channel [02:39] tbranyen: Getting what you pay for sucks I agree [02:39] hermanjunge has joined the channel [02:40] sdwrage has joined the channel [02:40] J-code: this is how i feel right now http://t0.gstatic.com/images?q=tbn:ANd9GcTC1uOoPlKCfGL3lfZ_cKIhyUguUrn2Lqz95h87VOOUzlo2nh-d [02:40] torsd has joined the channel [02:41] J-code: tbranyen: no its liars that suck [02:41] J-code: someone should smash thier nose [02:41] tbranyen: Yeah man lets get out on the street and break some noses! [02:41] igl1 has joined the channel [02:41] J-code: tbranyen: more noses to break in offices [02:42] tbranyen: Good call or retirement homes [02:42] J-code: who lies in a retirement home? [02:42] tbranyen: Old people in bed [02:42] J-code: they do not [02:42] tbranyen: Well sure I guess they could be sitting [02:42] tbranyen: I doubt they're standing on the beds [02:43] J-code: old pople dont have any reason to lie [02:43] tk: definitely not jumping on the beds [02:43] tbranyen: tk: I feel like its possible though, I know I saw some jumping in One Flew Over The Cuckoos Nest [02:43] tuhoojabotti: I just wrote nvm install v0.4.12 [02:43] tuhoojabotti: boom :D [02:43] tuhoojabotti: it's compiling now [02:43] J-code: haah! [02:43] tbranyen: Or was that Patch Adams [02:44] J-code: all i feel right now is a page telling me im golden and this will take 30 seconds [02:44] luxigo: I compile an internal module using libev on linux without any problem, but on win32 i have to include ev.h and link with ev.lib so that it compiles and node crash when i run the code.. Whats the point with libev/win32 ?.. [02:44] J-code: and im pissed off [02:45] gerard0 has joined the channel [02:45] tk: tbranyen: def. in Patch Adams [02:45] tbranyen: J-code: I'm certain your life has bigger things to be pissy about, than compiling an open source project [02:46] luxigo: im pissy about MSWC .. [02:46] J-code: ACTION cracks knuckles [02:46] J-code: you know what you are probably right tbranyen [02:46] MUILTFN has joined the channel [02:46] tuhoojabotti: Node's changelog ends on 0.3.6? [02:47] weisjohn has joined the channel [02:47] tuhoojabotti: Well I guess it's not fun to write changelogs on bleeding-edge software. :P [02:47] J-code: yeah the coder was distracted by some asian groupie like in the social network [02:47] J-code: she came right at the number 36 [02:47] J-code: mark of the beast [02:47] tuhoojabotti: J-code: Are you okay? [02:48] marcello3d has joined the channel [02:48] J-code: no im pissed off damit [02:48] tuhoojabotti: Go to bed. [02:48] tbranyen: Sleep it off [02:48] tbranyen: Tomorrow will be better... unless its still copiling [02:48] tbranyen: compiling* [02:48] J-code: ok some coffee then bed [02:48] tuhoojabotti: lol. [02:48] tbranyen: if you pour the coffee in your bed thats an excuse to not sleep [02:52] jedahan has joined the channel [02:53] weisjohn: i currently have a site that has 2.5m registered users and we do about 80k page views a day [02:54] weisjohn: we've already distributed to two servers, but the problem is in the logic and locking between the database connection [02:54] scottschecter has joined the channel [02:55] weisjohn: does anybody have any advice on how to do some research into a nodejs + mongo rewrite? [02:55] J-code has left the channel [02:57] jedahan has joined the channel [02:58] meso has joined the channel [02:58] ewj has joined the channel [03:03] vidi has joined the channel [03:03] clu3 has joined the channel [03:04] dingomanatee has joined the channel [03:05] devongovett has joined the channel [03:09] galaxywatcher has joined the channel [03:11] JakeyChan has joined the channel [03:14] shanebo has joined the channel [03:14] jesusabdullah: Oy, does anybody know how I can fix https://gist.github.com/1246897 ? [03:14] skiz has joined the channel [03:16] michaeldeol has joined the channel [03:17] edt has joined the channel [03:19] edt: Node beginner question... I'm using Mikeal's "request" module. Is it possible to make a request inside a request? I'm trying to first get a couchdb rev number, then send a put request (with rev number) to database. [03:20] jakehow has joined the channel [03:21] jesusabdullah: edt: yes [03:22] chjj has joined the channel [03:22] edt: @jesusabdullah ok, I'll keep trying, thanks [03:23] smus has joined the channel [03:24] bergie has joined the channel [03:25] slajax has joined the channel [03:25] ryanrolds: jesusabdullah: https://gist.github.com/1246910 [03:25] ryanrolds: I haven't tested that but, that's the pattern you're looking for. [03:25] scottschecter has joined the channel [03:25] ryanrolds: *that, but [03:26] liveink_ has joined the channel [03:26] jesusabdullah: ryanrolds: word! Thanks [03:27] Kurotek has joined the channel [03:28] thiagopnts has joined the channel [03:28] jtsnow has joined the channel [03:33] jedahan has joined the channel [03:35] cying has joined the channel [03:37] k1ttty has joined the channel [03:39] jamenzin has joined the channel [03:40] Spion_ has joined the channel [03:40] Spion_ has joined the channel [03:41] skiz has joined the channel [03:42] jmoyers has joined the channel [03:42] japerry has joined the channel [03:43] AAA_awright_ has joined the channel [03:43] japerry: does Chris Williams frequent here? [03:44] dshaw_ has joined the channel [03:46] jamenzin has joined the channel [03:46] tuhoojabotti: does what? [03:47] hkjels_ has joined the channel [03:47] mikeric has joined the channel [03:50] edt: @jesusabdullah thanks again, it worked! [03:52] ceej: is there a way to have node compile all coffee files to js on server run? I just hate having to add the .js files to github [03:52] ceej: I guess the question is what's the best way [03:52] joshkehn has joined the channel [03:54] PuffTheMagic: is there anyway i can tell if a stream has more data ready to be written [03:54] PuffTheMagic: like in a 'data' callback i get max 4096 byte chunk [03:54] tuhoojabotti: ceej: This is not #coffeescript. :3 [03:54] PuffTheMagic: is there a way to tell if more is on the way? [03:56] jacobolus: ceej: if you have a Cakefile, you can presumably just set your server to run cake when it starts, or when the files change, or whatever [03:57] ceej: thank you both..think it's just easier for now to keep adding the .js files too [03:57] tuhoojabotti: Better use js files. [03:57] ryanRT has joined the channel [03:58] tuhoojabotti: Coffee is good, but tastes bad. [03:58] tuhoojabotti: ":D" [03:58] Lorentz: coffee tastes awesome [03:58] tuhoojabotti: Depends on the coffee. [03:58] tuhoojabotti: If I make it, it's terrible. [03:58] tuhoojabotti: :D [03:58] brolin has joined the channel [03:59] Corren has joined the channel [04:00] nanreh has joined the channel [04:01] Acolyte: is there some sort of module repository where instanced modules are stored in? [04:02] a_suenam_ has joined the channel [04:03] tuhoojabotti: Like npm? [04:03] japerry has joined the channel [04:03] Acolyte: more like module.exports [04:03] tuhoojabotti: hmm [04:03] tuhoojabotti: I don't get it [04:03] bombworm has joined the channel [04:03] Acolyte: as in, after I instantiate a module through require(), I would like to be able to access it from in module [04:04] brainproxy: anyone using gyp to develop some node addon/s (for linux env)? is that even a feasible approach for dev'ing addons at present? if so, know of any examples up on github? [04:04] Acolyte: other modules [04:04] michaeldeol has joined the channel [04:04] tuhoojabotti: The same one aye [04:04] dans has joined the channel [04:04] tuhoojabotti: Hmm [04:04] jedahan has joined the channel [04:04] tuhoojabotti: Acolyte: That's a good question [04:05] tuhoojabotti: Acolyte: What about require's cache? [04:05] edt: Anybody know how to get the nodecsvparser module to ignore commas inside of cells? [04:05] Acolyte: tuhoojabotti: one way would be to pass reference through to it [04:05] tuhoojabotti: yeah [04:05] ippz has joined the channel [04:07] confoocious has joined the channel [04:07] shirro has joined the channel [04:07] shirro has joined the channel [04:07] boehm has joined the channel [04:08] Acolyte: alright, I'll go with it - it makes more sense this way instead of dealing with globals that make a mess [04:08] tuhoojabotti: Yes. [04:08] tuhoojabotti: kiss rule. :P [04:10] isaacs has joined the channel [04:11] tuhoojabotti: Hoi [04:12] JSManiacs has joined the channel [04:14] icewhite has joined the channel [04:14] clarkfischer has joined the channel [04:17] rwt has joined the channel [04:18] konobi: huh... interesting to see mongolabs on joyent cloud [04:22] dingomanatee has joined the channel [04:23] owenb has joined the channel [04:24] dans has joined the channel [04:26] zmbmartin has joined the channel [04:26] Xano has joined the channel [04:26] luke` has joined the channel [04:27] damjan has left the channel [04:29] zmbmartin has joined the channel [04:29] ditesh|cassini has joined the channel [04:29] sh1mmer has joined the channel [04:29] smus_ has joined the channel [04:30] tanepiper has joined the channel [04:30] chunhao_ has joined the channel [04:31] ryanseddon has joined the channel [04:34] zmbmartin has joined the channel [04:37] cnus8n has joined the channel [04:41] Sami_ZzZ has joined the channel [04:46] zeade has joined the channel [04:46] ncb000gt has joined the channel [04:46] dlanod has joined the channel [04:48] ncb000gt: qq- anyone know of a module that queues up streams and runs them sequentially? [04:48] gxdssoft has joined the channel [04:48] ncb000gt: i find it hard to believe that nobody has written one [04:48] ncb000gt: but i can't seem to find one [04:49] hermanjunge has joined the channel [04:51] dlanod: how do i access the values in config.json from a node module? is it built-in? [04:52] ncb000gt: where is config.json? [04:52] dlanod: same dir as my module [04:53] ncb000gt: if you export the data in there then you can do require('./config.json'); [04:54] ilikeit has joined the channel [04:54] ncb000gt: otherwise you can read the file with the fs module and then parse the json out [04:55] dlanod: ah okay thanks. i thought it was some kind of convention because i see many node projects using it [04:56] ncb000gt: yea, it def is more of a convention :) [04:56] ncb000gt: but afaik there isn't any magic happening to autoload that file [04:57] dlanod: thats what i was concerned about, i like the require method you suggested i'll use that [04:58] perezd has joined the channel [04:58] tuhoojabotti: do you have to put module.exports = { ... in the json file? [04:58] zmbmartin has joined the channel [04:58] tuhoojabotti: to use require with it [04:58] ncb000gt: yes you would [04:59] tuhoojabotti: Yeah [04:59] tuhoojabotti: Pretty obvious. :P [04:59] ncb000gt: :) [04:59] tuhoojabotti: But you never know [04:59] ncb000gt: Yea. [04:59] ncb000gt: Things change all the time. [04:59] dlanod: only if you want to use it outside the module though right? [04:59] ncb000gt: dlanod: no [04:59] tuhoojabotti: Well [04:59] ncb000gt: If you want to require another file you have to export [04:59] tuhoojabotti: Yeah [05:00] ncb000gt: that can be any file within the same module [05:00] tuhoojabotti: But if you have config = { ... in a module you can use it there. :D [05:00] zmbmartin has joined the channel [05:00] ncb000gt: "module" in the sense of a project [05:00] zmbmartin has joined the channel [05:00] tuhoojabotti: Making stuff modular<3 [05:00] ncb000gt: heh [05:01] tuhoojabotti: I want to see practical modular smartphones [05:01] tuhoojabotti: Because I want to be smart :O) [05:01] tuhoojabotti: Okay, better continue studying again. [05:02] Nuck: Can I extend require.extensions from within a module and then load that module in another file? [05:02] Nuck: I'd like to have a module that adds JSON support [05:02] Nuck: For v0.4.x [05:02] OmidRaha has joined the channel [05:02] Nuck: Since it got added to unstable, and I want it in stable :P [05:02] tuhoojabotti: What support? :O [05:03] Nuck: tuhoojabotti: huh? [05:03] Frippe has joined the channel [05:03] saikat has joined the channel [05:03] tuhoojabotti: What do you mean by JSON support [05:03] Nuck: Support for require()-ing JSON files [05:03] tuhoojabotti: Cool [05:03] olivvv has joined the channel [05:03] tuhoojabotti: That's what I was wondering really. [05:03] tuhoojabotti: Nuck: you mean without the modules.export = [05:03] Nuck: tuhoojabotti: https://github.com/joyent/node/blob/v0.5.2/lib/module.js#L470 [05:03] Nuck: I just copied that code [05:03] joshkehn has left the channel [05:04] tuhoojabotti: Nice one [05:04] Nuck: I'm just curious if I can put that in a file in node_modules and require that in a program, then require a json [05:04] Nuck: Or if the whole require-is-local-to-each-module fucks me up? [05:04] ncb000gt: I assumed that was coming at some point :) [05:04] Nuck: ncb000gt: haha it's been in since v0.5.2 thanks to isaacs. [05:05] tuhoojabotti: Nuck: Try it. :D [05:05] Nuck: tuhoojabotti: Haha guess I'll do that :D [05:05] caolanm has joined the channel [05:05] ncb000gt: Nuck: yea. :) [05:05] ncb000gt: I'm not using 0.5.x [05:05] ncb000gt: Still using 0.4.x atm [05:05] tuhoojabotti: I'm using 0.4.12 [05:05] tuhoojabotti: latest stable [05:06] Nuck: tuhoojabotti: My REPL says "yes yes yes"! [05:06] Nuck: IT WORKED! [05:06] tuhoojabotti: I don't know what repl is, reall [05:06] tuhoojabotti: y [05:06] Nuck: ... [05:06] tuhoojabotti: got it [05:06] Nuck: Yeah, I'm on 0.4.11 [05:06] tuhoojabotti: I can't possibly remember ALL THE THINGS [05:06] Nuck: tuhoojabotti: lol [05:07] jaequery has joined the channel [05:07] AAA_awright: Wasn't the .json extension support already merged? [05:07] tuhoojabotti: Back to studying, I better close this ssh now. [05:07] Nuck: AAA_awright: It's in 0.5.2 [05:07] Nuck: Not 0.4.x tho [05:07] herbySk has joined the channel [05:07] AAA_awright: Who runs that? [05:08] tuhoojabotti: I run 0.4.12 :3 [05:08] tuhoojabotti: just compiled this morning [05:08] Nuck: I'm still on 0.4.11 [05:08] Nuck: I'm gonna wait until 0.6.x to update prolly [05:08] pquerna: ca/win 20 [05:09] ncb000gt: AAA_awright: it doesn't appear to be in 0.4.x [05:12] abravo has left the channel [05:14] mnmldave has joined the channel [05:15] dreamdust has joined the channel [05:16] mnmldave has left the channel [05:19] harthur has joined the channel [05:21] rurufufuss has joined the channel [05:22] Spion has joined the channel [05:23] AAA_awright: I always run master [05:24] dlanod: .json extension support? [05:24] AAA_awright: dlanod: Using require() to load a .json file as an Object [05:25] dlanod: ah right, just learned about that today. didn't know it was so new [05:25] devongovett has joined the channel [05:25] AAA_awright: It's been in there for a month or two [05:26] Bonuspunk has joined the channel [05:27] tmzt_: when is .cofee support coming? [05:27] luke` has joined the channel [05:27] tmzt_: or ast filtering pre require [05:28] AAA_awright: ast filtering pre require? [05:28] AAA_awright: tmzt_: You can specify how to handle custom extensions [05:29] AAA_awright: But if you're talking about coffeescript, go die in a fire [05:29] meso has joined the channel [05:29] tmzt_: well, coffee script would have to have a ast transform version of the parser [05:29] tmzt_: versus running a standalone script on the files [05:31] fangel has joined the channel [05:31] jmoyers: what.. does that mean? [05:32] jmoyers: require => parse, transform => run [05:32] jmoyers: same require hooks apply [05:34] rwt has left the channel [05:35] tokuzfunpi has joined the channel [05:35] binaryjohn has joined the channel [05:36] diorahman has joined the channel [05:38] jonrohan has joined the channel [05:39] beginnerAnt has joined the channel [05:40] tmzt_: jmoyers: is this new? [05:40] ph^ has joined the channel [05:43] __doc__ has joined the channel [05:43] jmoyers: tmzt_ https://github.com/joyent/node/blob/master/lib/module.js#L351 [05:44] jmoyers: tmzt_ http://jashkenas.github.com/coffee-script/documentation/docs/coffee-script.html -- look at the first block, require.extensions [05:44] jmoyers: ACTION goes back to this terrible Colombiana movie [05:45] cjheath has joined the channel [05:46] AphelionZ has joined the channel [05:50] jetienne_ has joined the channel [05:55] wbw72 has joined the channel [05:56] sh1mmer has joined the channel [05:57] gerard0 has joined the channel [05:57] Draggor: Thoughts on Qunit on node? [05:58] dgathright has joined the channel [05:59] jmoyers: terrible api? [06:00] k1ttty has joined the channel [06:01] TheCode has joined the channel [06:03] petrjanda has joined the channel [06:03] zmbmartin has joined the channel [06:06] DennisRasmussen has joined the channel [06:06] ajsie: i rather use YUITest [06:06] ajsie: or Jasmine [06:06] ajsie: for a more bdd approach [06:06] StanlySoManly has joined the channel [06:07] jbpros has joined the channel [06:09] meso has joined the channel [06:09] briandh has joined the channel [06:12] natebeck has joined the channel [06:17] StanlySoManly has left the channel [06:19] mAritz has joined the channel [06:20] bEEEviz has joined the channel [06:22] dreamdust1 has joined the channel [06:23] zorzar has joined the channel [06:23] micrypt has joined the channel [06:24] SamuraiJack has joined the channel [06:26] hermanjunge has joined the channel [06:26] dgathright_ has joined the channel [06:27] vidi has joined the channel [06:28] pid_ has joined the channel [06:28] robotmay has joined the channel [06:29] TomY has joined the channel [06:30] dmkbot has joined the channel [06:31] luxigo: where do i add a library i want to link with node ?.. configure-gyp and node.gyp are attractive but uneffective... [06:32] luxigo: oh maybe i need gyp ?.. :) [06:35] tylerstalder has joined the channel [06:35] dmkbot has joined the channel [06:36] cnus8n has joined the channel [06:36] luxigo: grmpf cant figure it out.. [06:37] dmkbot1 has joined the channel [06:38] hkjels has joined the channel [06:38] cjroebuck has joined the channel [06:40] ChrisPartridge: luxigo: OS? [06:40] luxigo: linux [06:41] cjroebuc_ has joined the channel [06:41] jetienne_: silly question what is gyp ? [06:41] Morkel has joined the channel [06:42] DrMcKay has joined the channel [06:42] luxigo: kinda tool for configuring multi-platform builds with a common configuration file [06:42] ph^ has joined the channel [06:43] dlanod: http://code.google.com/p/gyp/ [06:43] luxigo: but running tools/gyp_node after modifying node.gype or configure-gyp doesnt solve my problem [06:43] tilgovi has joined the channel [06:43] tilgovi has joined the channel [06:44] jetienne_: oh yet another one ;) [06:44] petrjanda has joined the channel [06:44] luxigo: seems based on python [06:46] motill has joined the channel [06:47] andrewfff has joined the channel [06:47] rurufufuss: how does one get dnode.js on the client side with express? [06:47] mendel_ has joined the channel [06:48] rurufufuss: (I'm assuming it's not by putting dnode.js on public/) [06:48] ChrisPartridge: rurufufuss: dnode should make it available at /dnode.js [06:48] andree has joined the channel [06:49] rurufufuss: hmm, must be my javascript include that is wrong then [06:49] hermanjunge has joined the channel [06:50] stonebranch has joined the channel [06:51] sub_pop has joined the channel [06:52] beevi7 has joined the channel [06:52] brimster_ has joined the channel [06:53] Layke has joined the channel [06:55] SubStack: rurufufuss: [06:55] SubStack: or even better, you can use dnode with browserify [06:55] SubStack: then just require('dnode') [06:56] aho: type="text/javascript" is implied [06:56] `3rdEden has joined the channel [06:56] SubStack: pfft [06:56] aho: html5, dude [06:57] DrMcKay: SubStack: hi, did AvianFlu talk to you about dnode over unix sockets? [06:57] SubStack: dnode works over unix sockets [06:58] DrMcKay: SubStack: gah, fail. thanks :) [06:58] cjroebuck has joined the channel [06:59] guidocalvano has joined the channel [06:59] mikeric has joined the channel [06:59] SubStack: DrMcKay: just dnode.connect('/something/that/starts/with/a/slash', fn) [07:00] SubStack: likewise for .listen [07:00] dingomanatee has joined the channel [07:00] DrMcKay: SubStack: yeah, that's how I would imagine that [07:00] DrMcKay: SubStack: awesome [07:00] fangel has joined the channel [07:02] blaenk has joined the channel [07:02] blaenk has joined the channel [07:03] simenbrekken has joined the channel [07:04] ablomen has joined the channel [07:06] Acolyte has left the channel [07:07] rurufufuss: SubStack: thanks, it turns out I was google chroming file:// instead of localhost, my bad [07:07] DrMcKay: SubStack: oh, there are even tests for it, nice [07:07] shanebo has joined the channel [07:07] DrMcKay: also, this turtle <3 [07:08] ivanfi has joined the channel [07:08] rurufufuss: that turtle looks a bit high at the same time [07:08] DrMcKay: sure he is high [07:08] DrMcKay: I mean, those eyes [07:09] emattias has joined the channel [07:10] wbednarski has joined the channel [07:11] hermanjunge: Yo SubStack [07:11] hermanjunge: I need your advice [07:12] hermanjunge: I want to walk through the Zen of Testing [07:12] hermanjunge: what are the best tools for the job? [07:13] mc_greeny has joined the channel [07:13] SubStack: testling in node? [07:13] DrMcKay: lolwut? Google Code provides git? [07:14] hermanjunge: yesh [07:14] context: since when [07:14] hermanjunge: I've heard of vows [07:14] hermanjunge: I've heard of expresso [07:14] context: and why would you use it over github [07:14] hermanjunge: cannot decide [07:14] hermanjunge: in nodejs [07:14] hermanjunge: I'm tired of doing manual testing [07:14] hermanjunge: and debugging step by step [07:14] hermanjunge: I want to write - run a test [07:14] neilk_ has joined the channel [07:14] hermanjunge: write another bit, another test [07:14] hermanjunge: etc etc [07:15] DrMcKay: context: I wouldn't, just wondering [07:15] hermanjunge: wash rinse repeat [07:15] SubStack: hermanjunge: I like tap [07:15] hermanjunge: that's what you use? [07:15] hermanjunge: is that what do you use? * [07:15] SubStack: most of my new stuff is in tap [07:15] SubStack: I have a lot of old tests in expressso kicking around [07:16] SubStack: I tried vows but it wasn't for me [07:16] hermanjunge: dnode is yours? [07:16] SubStack: yes [07:16] hermanjunge: take that for example [07:16] hermanjunge: how did you work in that development? through testing or step-by-step? [07:16] SubStack: dnode is expresso [07:16] SubStack: but it would have been nicer in tap I think [07:16] SubStack: check this test out: https://github.com/substack/node-stackedy/blob/master/test/deep.js [07:16] hermanjunge: I've read an article of dominic tarr [07:17] hermanjunge: he said that instead of talking about the features of the version of a program [07:17] raphdg has joined the channel [07:17] hermanjunge: one point of view is testing whether the version complies with a certain battery of tests [07:18] hermanjunge: Then, we could declare: This version 2.0.4 complies with Tests 3, 4 & 5 for AMPQ and file-events [07:18] TomY has joined the channel [07:18] hermanjunge: what do you think? [07:19] djcoin has joined the channel [07:19] topaxi has joined the channel [07:19] meso has joined the channel [07:20] micrypt has joined the channel [07:21] vguerra has joined the channel [07:22] boltR has joined the channel [07:25] skoom has joined the channel [07:25] cjm has joined the channel [07:26] dlanod: is it possible to trap a ctrl+c in node so I can do some cleanup? [07:27] SubStack: :wq [07:27] SubStack: haha [07:27] aho: process.on('exit', ...), i guess [07:29] cosmincx has joined the channel [07:29] dlanod: yup that's it. thanks [07:29] mikedeboer has joined the channel [07:29] cosmincx has joined the channel [07:31] FIQ|screen has joined the channel [07:33] fangel has joined the channel [07:33] Druide has joined the channel [07:33] Remoun has joined the channel [07:34] joeyang has joined the channel [07:36] davidcoallier has joined the channel [07:36] [AD]Turbo has joined the channel [07:36] [AD]Turbo: hi there [07:37] rope has joined the channel [07:37] ilikeit has joined the channel [07:38] jacobolus has joined the channel [07:39] jetienne_ has joined the channel [07:39] rope has joined the channel [07:40] johnwards has joined the channel [07:41] pgherveou has joined the channel [07:42] Tobsn has joined the channel [07:42] jacobolus: hmm. does the current version of node still sort numbers in lexicographic order? [I have a kind of old version, but was pretty surprised by the behavior... maybe it's fixed?] [07:43] aho: node sorts like v8 which sorts like js :> [07:43] aho: pass a custom comperator function if you want a different sorting behavior [07:43] aho: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/sort [07:44] sfoster has joined the channel [07:44] jacobolus: aho: okay, but I get a different behavior when I try to sort, e.g. [1, 15, 2] in the node running on my machine vs. in a browser [07:44] jacobolus: or maybe not.. [07:44] jacobolus: hm [07:45] jacobolus: does javascript always sort lexicographically? [07:45] jacobolus: that's terrible [07:45] aho: If compareFunction is not supplied, elements are sorted by converting them to strings and comparing strings in lexicographic ("dictionary" or "telephone book," not numerical) order. For example, "80" comes before "9" in lexicographic order, but in a numeric sort 9 comes before 80. [07:45] jacobolus: what an awful convention [07:45] huskyr has joined the channel [07:45] _kud has joined the channel [07:45] aho: it's a sane default [07:46] aho: well, as i said, you can just use your own compare function if you want something different [07:47] luke` has joined the channel [07:48] Daishiman has joined the channel [07:48] mraleph has joined the channel [07:48] jacobolus: yeah, that's just always going to be slow [07:49] jacobolus: oh well [07:49] sfoster: why slow jacobolus?  [07:49] jacobolus: because it requires re-calling that function for every comparison [07:50] cjheath has joined the channel [07:51] jacobolus: maybe JS engines are smart enough to actually inline whatever function into the sort loop [07:51] fson has joined the channel [07:51] Daishiman: Hi everyone. I have a quick question: I'm trying to set a cookie for a GET request like so: http://pastebin.com/zg40hvwK. The request is received, however the cookies are not being received correctly. Am I doing something wrong? [07:51] blup has joined the channel [07:51] burningdog has joined the channel [07:52] jbpros has joined the channel [07:53] aho: jacobolus, js is pretty fast these days [07:53] hasenj has joined the channel [07:53] jacobolus: that's fine, but that's setting the language up in a way that's much harder to optimize than e.g. the way array sorting works in python [07:54] bergelmir has joined the channel [07:54] bergelmir has joined the channel [07:54] jacobolus: and lexicographic sort is a terrible (unintuitive, almost always wrong) sort for numbersd [07:56] aho: arrays can contain all kinds of things [07:56] jetienne__ has joined the channel [07:56] aho: numbers, strings, arrays, objects, undefined, null, functions... [07:56] uchuff has joined the channel [07:57] sfoster: jacobolus: see http://jsperf.com/sorting-algorithms/2 for some numeric sort options and perf numbers. [07:57] sfoster: I just added the native sort (without custom comparator) for reference [07:57] sfoster: even though obviously it doesn't give the correct result in this case. [07:58] sfoster: if you test in chrome you're testing in v8 which is the same engine node is using. [07:59] jetienne__ has joined the channel [07:59] sfoster: (though it might be interesting for jsperf.com to add a way to run the benchmark under node as well) [08:00] ptlo has joined the channel [08:01] aho: isn't timsort currently the best generic sorting algorithm? [08:01] jacobolus: sfoster: my system is under pretty heavy/inconsistent load at the moment. what does the typical performance comparison look like [08:01] jacobolus: aho: that's the one tim peters wrote for python; I think they adopted it in Java? [08:02] sfoster: I'm just adjusting that last test case so its apples to apples [08:03] aho: ye, openjdk also uses it [08:03] tizzo-afk has joined the channel [08:03] mpavel has joined the channel [08:04] aho: hm. the benchmark should use a seeded PRNG to fill the array [08:04] aho: not math.random [08:04] sfoster: looks like the "inplace quicksort" wins everytime for me. [08:05] sfoster: aho: http://jsperf.com/sorting-algorithms/2/edit to edit [08:05] mpavel has left the channel [08:06] mike5w3c_ has joined the channel [08:06] sfoster: using the comparator vs. not passing a comparator looks like 3* faster - presumably because its not having to coerce the input to strings? [08:07] sfoster: 2* not 3* [08:07] jacobolus: I could believe it. sfoster what about if you start with strings? [08:07] jldbasa has joined the channel [08:07] whitman has joined the channel [08:07] jacobolus: e.g. if you coerce to strings before starting the timer loop [08:07] franciscallo has joined the channel [08:07] sfoster: the quicksort implementation is 5* faster than the default, dictionary sort (w/o comparator) [08:08] adambeynon has joined the channel [08:08] Daishiman has left the channel [08:09] aaronmcadam has joined the channel [08:09] mjr_: wow, how is native_dictionary_sort so slow? [08:09] mjr_: slower than with a comparator function? [08:09] meso has joined the channel [08:10] sfoster: my best guess is the toString() conversion that's required for the native dictionary sort [08:11] aho: sfoster, benchmarking sorting algorithms is very complicated in general since their performance is also data dependant. e.g. results are different if the data is almost sorted (worst case for quicksort) and small vs large sets also can make a big difference [08:11] sfoster: yeah. [08:11] aho: well... "native"... large parts of v8 are written in js ;) [08:11] sfoster: native to js, not to the hardware necessarily [08:11] sfoster: js is as low as I go :) [08:12] mc_greeny has joined the channel [08:12] aho: in this kind of context "native" usually refers to native code from the runtime environment (e.g. c or c++) [08:12] aho: mh. kinda confusing :> [08:13] aho: laundry time :I [08:13] sfoster: but what this does show us is that if you know you are sorting an array of Numbers, using a comparator isn't necessarily a perf hit. [08:13] mjr_: If you make the comparator function smaller, it does make it go somewhat faster. [08:14] DrMcKay: it's pretty funny how meaning of "native" changed. [08:14] DrMcKay: maybe we should start saying "js"/"c" instead on "native"/"native"? [08:16] sfoster: perhaps. Its difficult to know what's running where if the engine isn't open source [08:16] aron_ has joined the channel [08:16] k1ttty has joined the channel [08:16] simenbrekken_ has joined the channel [08:17] mjr_: All of V8 is open source. [08:17] DrMcKay: also, why the hell does v8 use svn?! [08:18] sfoster: mjr_: of course. Sorrry, context again. I work more client-side than I do in node.js. IE is not open source [08:18] ablomen: DrMcKay, because google code uses svn? [08:18] sfoster: that said, can't say I've taken a trip through the v8 source code recently. Have you? :) [08:18] DrMcKay: ablomen: but they have hg, git and whatever [08:19] DrMcKay: ablomen: I mean, come on. svn is *old*. [08:19] DrMcKay: and migrating from svn to git is pretty easy [08:19] blaenk has joined the channel [08:20] mjr_: I've looked at the V8 source a few times, but not in the last month. It's pretty nice. [08:20] SamuraiJack has joined the channel [08:20] blaenk has joined the channel [08:20] ZOMG_TIME has joined the channel [08:20] markwubben has joined the channel [08:21] franciscallo has left the channel [08:22] gerard0 has joined the channel [08:22] ckknight has joined the channel [08:22] ZOMG_TIME: Hey guys. [08:22] ZOMG_TIME: Is it possible to get xauth working on a node app? [08:22] ZOMG_TIME: Specifically, for the instapaper api. [08:25] mynix has joined the channel [08:26] Joe-Joe has joined the channel [08:26] shanebo: ZOMG_TIME: https://www.google.com/search?rls=en&q=node.js+xauth&ie=UTF-8&oe=UTF-8 [08:26] hellp has joined the channel [08:27] shanebo: I've never done it but I don't see why not [08:29] ZOMG_TIME: The problem is I have the authorization headers built correctly, but when I attempt to get a token I get the error: "oauth consumer key required". [08:29] ZOMG_TIME: It's like the authorization header is ignored. [08:32] Joe-Joe has joined the channel [08:32] shanebo: and you're sure your headers are built properly? [08:33] tokuz has joined the channel [08:34] kulor-uk has joined the channel [08:34] ZOMG_TIME: Yes, the headers are correct when logging the request. [08:35] shanebo: weird [08:35] romainhuet has joined the channel [08:36] tokuzfunpi has joined the channel [08:36] ditesh has joined the channel [08:37] gabeaudick has joined the channel [08:38] metellus has joined the channel [08:39] ZOMG_TIME: No idea what could be wrong? [08:40] shanebo: I'm wondering if your headers are intact when they get there [08:40] ZOMG_TIME: How can I ensure/test that? [08:41] shanebo: perhaps you could setup a route in your app and set headers like you need to and console.log the headers you get in the request? [08:41] shanebo: maybe that will isolate whether it's your app or their api [08:41] jbpros has joined the channel [08:42] dgathright_ has joined the channel [08:43] ZOMG_TIME: Let me try that. [08:44] icebox has joined the channel [08:44] nforgerit has joined the channel [08:46] davidbanham has joined the channel [08:46] DrMcKay_ has joined the channel [08:47] ZOMG_TIME: So the headers are intact and correct. [08:47] ZOMG_TIME: It's the API then? [08:48] courpse has joined the channel [08:48] Bradleymeck has joined the channel [08:49] ablomen has joined the channel [08:49] dford has joined the channel [08:52] NetRoY has joined the channel [08:55] diorahman has left the channel [08:56] kbni has joined the channel [08:59] ZOMG_TIME: Here's the header from when I console.log(req.headers): { authorization: 'OAuth oauth_consumer_key="KEY",oauth_nonce="NONCE",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1317200105",oauth_token="TOKEN",oauth_version="1.0",oauth_signature="SIG"', host: 'localhost:8000', accept: '*/*', connection: 'close', 'user-agent': 'Node authentication', 'content-length': '89', ' [08:59] ZOMG_TIME: That's right isn't it? [09:00] shanebo: not sure… is that what their docs say it should look like? [09:01] secoif has joined the channel [09:02] shanebo: also you might want to google if OAuth will work on your local server [09:11] blablanator has joined the channel [09:11] blablanator: hi [09:12] slifty has joined the channel [09:13] nak has joined the channel [09:14] nak: I would like testers for my pony chat app plz [09:14] nak: http://fgsfds.com/~ctoledo/derpy.htm [09:14] nak: thank you [09:14] nak: :) [09:14] simenbrekken has joined the channel [09:15] robotmay has joined the channel [09:15] ditesh has joined the channel [09:16] bzinger has joined the channel [09:17] micrypt has joined the channel [09:18] adammw111 has joined the channel [09:19] k1ttty has joined the channel [09:20] briandh: Nak, if you click within your own pony element you can pretty much move anywhere you want. [09:21] rendar has joined the channel [09:22] nak: thanks briandh [09:22] briandh: Other than that, I think it's an awesome novel-esque chatroom. [09:22] markwubben has joined the channel [09:23] nak: ^.^ [09:23] nak: I thank you! [09:24] nak: I'll add it to my much needed self esteem meter lol [09:24] Lingerance: It's neat [09:24] nak: ACTION bow [09:25] adrianmg has joined the channel [09:26] TomY has joined the channel [09:27] slifty_corsair has joined the channel [09:27] temp02 has joined the channel [09:29] adambeynon has joined the channel [09:31] TomY has joined the channel [09:32] DrMcKay has joined the channel [09:33] TomY has joined the channel [09:37] TomY_ has joined the channel [09:37] irahgel has joined the channel [09:38] some1else has joined the channel [09:38] meso has joined the channel [09:45] jonrohan has joined the channel [09:46] parshap has joined the channel [09:47] fairwinds has joined the channel [09:49] dford has left the channel [09:49] nak has left the channel [09:51] cjroebuck has joined the channel [09:51] theCole has joined the channel [09:51] theCole: anyone in berlin for jsconf? [09:52] bzinger has joined the channel [09:53] kulor-uk has joined the channel [09:53] zastaph has joined the channel [09:54] adammw111: hi, does anybody know if the upgrade event is accessible from middleware in Connect? [09:55] burningdog has joined the channel [10:02] emattias_ has joined the channel [10:05] fly-away has joined the channel [10:07] fermion has joined the channel [10:09] Emmanuel`: paypal is a fucking piece of shit [10:09] Emmanuel`: generates error messages that are not documented ! [10:09] Emmanuel`: how the hell am I suppose to debug that [10:09] briandh: trial and error. [10:10] ph^ has joined the channel [10:16] jtrudeau has joined the channel [10:17] devaholic has joined the channel [10:19] fermion has joined the channel [10:21] kulor-uk has joined the channel [10:21] skm has joined the channel [10:23] adrianmg has left the channel [10:27] matjaz has joined the channel [10:27] bicranial has joined the channel [10:28] _kud has joined the channel [10:29] andre has joined the channel [10:37] andrewfff has joined the channel [10:40] okuryu has joined the channel [10:41] Remoun has joined the channel [10:43] socialhack has joined the channel [10:43] pickels has joined the channel [10:44] kulor-uk has joined the channel [10:49] Xano has joined the channel [10:50] `3rdEden has joined the channel [10:51] cdantas has joined the channel [10:54] slifty has joined the channel [10:56] nforgerit has joined the channel [10:58] Xano_ has joined the channel [10:59] navaru has joined the channel [11:00] slifty has joined the channel [11:00] MrNibbles: anyone using jasmine? [11:08] Xano_ has joined the channel [11:11] dylang has joined the channel [11:11] cognominal has joined the channel [11:14] avih has joined the channel [11:14] slifty has joined the channel [11:15] azeroth_ has joined the channel [11:17] mikeal has joined the channel [11:19] murilobr has joined the channel [11:19] avih has joined the channel [11:22] Swizec_ has joined the channel [11:23] eee_c has joined the channel [11:23] murilobr has joined the channel [11:24] shipit has joined the channel [11:26] Tigraine has joined the channel [11:26] Tigraine: Hi.. Is this the right channel to ask about a tiny question regarding express? [11:27] Tigraine: Because I am seeing really erratic behavior on req.session .. [11:30] Tigraine: If I load my page in safari req.session.userId = 1; works .. in chrome the exact same code breaks and req.session is undefined ?? [11:31] grekko has joined the channel [11:31] tuhoojabotti: ryah: Hot, eh? In Finland it's cozy 13.37 C or 56 F ;-) [11:32] Industrial: MrNibbles I am using jasmine [11:33] junkee[] has joined the channel [11:33] Industrial: Tigraine: yes, this would be teh channel. [11:33] Tigraine: Nice .. any idea how this can be? [11:34] slifty has joined the channel [11:35] adambeynon has joined the channel [11:36] Tigraine: The code in question: http://pastebin.com/Xpzqa282 [11:36] scott_gonzalez has joined the channel [11:37] Tigraine: basically if I load this in chrome => request.session is undefined .. in safari the assignment works [11:37] Tigraine: from what I can see .. request.session should never be undefined since I should always be able to set it. [11:37] moritz_ has joined the channel [11:41] Tigraine: ok .. forget it .. thanks chrome for fetching the favicon.. [11:42] level09 has joined the channel [11:43] Morkel has joined the channel [11:43] DAZ_ has joined the channel [11:45] Guest75205: hello [11:47] brianseeders has joined the channel [11:48] DrMcKay has joined the channel [11:48] level09 has joined the channel [11:49] mynameisbender has joined the channel [11:49] mikeal has joined the channel [11:49] _kud has joined the channel [11:52] mekwall has joined the channel [11:53] mekwall has joined the channel [11:54] rootslab has joined the channel [11:55] mekwall has joined the channel [11:57] mekwall has joined the channel [11:58] mekwall has joined the channel [11:58] gxdssoft has joined the channel [11:59] mekwall has joined the channel [12:00] joshkehn has joined the channel [12:00] mekwall has joined the channel [12:01] mekwall has joined the channel [12:01] joshkehn has left the channel [12:02] mekwall has joined the channel [12:02] lmatteis_ has joined the channel [12:04] kulor-uk has joined the channel [12:07] mehtryx has joined the channel [12:09] lz has joined the channel [12:10] matjaz has joined the channel [12:11] MrNibbles: Industrial: do you know if there is a decent way to get a callback, or detect when the output renderer is complete? [12:11] MrNibbles: at the moment i've written it into the reporter [12:11] bshumate has joined the channel [12:11] bshumate has joined the channel [12:11] MrNibbles: but i was wondering if there was a more 'standard' way [12:11] MrNibbles: looking through the source there doesn't appear to be [12:12] socketio\test\10 has joined the channel [12:12] MrNibbles: i am running the tests in phantomJS, and at the moment just listening for a TERMINATE console message which is fired at the end of the reporter [12:13] jtrudeau has joined the channel [12:13] Renegade001 has joined the channel [12:13] Industrial: MrNibbles: asyncSpecDone() and asyncSpecWait(), but they are undocumented I think [12:14] slifty_corsair has joined the channel [12:14] MrNibbles: Industrial: many thanks, will have a look [12:14] jtsnow has joined the channel [12:14] Industrial: https://github.com/mhevery/jasmine-node/blob/master/spec/SampleSpecs.js [12:16] MrNibbles: ah thats only in the node version? [12:16] MrNibbles: i am using the client script [12:17] MrNibbles: some of my tests involve dom interaction and layout tests [12:18] MrNibbles: hence running in phantom [12:18] SamuraiJack has joined the channel [12:18] Poetro has joined the channel [12:18] Poetro has joined the channel [12:18] jomoho has joined the channel [12:18] aron_ has joined the channel [12:20] criswell has joined the channel [12:21] matyr has joined the channel [12:22] davidbanham has joined the channel [12:24] gerard0 has joined the channel [12:24] Cerales has joined the channel [12:24] Xano has joined the channel [12:24] jmar777 has joined the channel [12:25] Cerales: I'm getting this error when I try to synchronously load an image as I boot my server: "Error: EBADF, Bad file descriptor './logo.gif'" [12:25] Cerales: it's just a single image I'm trying to load, and it definitely exists [12:26] Glenjamin: Cerales: can you gist/pastebin the code? [12:26] Cerales: oh, I figured it out! I wasn't running node from the folder the file was in [12:26] darinc has joined the channel [12:26] Cerales: I didn't realise file paths were relative to the context you were in when you ran it, rather than relative to the file location [12:27] kriszyp has joined the channel [12:27] guidocalvano has joined the channel [12:29] mehlah has joined the channel [12:31] mekwall has joined the channel [12:32] fumanchu182 has joined the channel [12:32] AphelionZ has joined the channel [12:33] mekwall has joined the channel [12:33] bzinger has joined the channel [12:36] erichynds has joined the channel [12:38] mandric has joined the channel [12:39] jldbasa has joined the channel [12:39] slifty has joined the channel [12:40] kulor-uk has joined the channel [12:41] burningdog has joined the channel [12:42] cognominal_ has joined the channel [12:43] emattias has joined the channel [12:46] CarterL has joined the channel [12:49] deedubs has joined the channel [12:51] sambao21 has joined the channel [12:51] superjudge has joined the channel [12:52] mbrevoort has joined the channel [12:52] zemanel has joined the channel [12:52] sylvinus has joined the channel [12:53] sh1mmer has joined the channel [12:55] Bradleymeck has joined the channel [12:55] stonebranch has joined the channel [12:55] joshkehn has joined the channel [12:59] AaronMT has joined the channel [13:00] metellus has joined the channel [13:00] ceej has joined the channel [13:01] amigojapan has joined the channel [13:03] joshkehn has left the channel [13:03] socialhack has joined the channel [13:04] lazyshot has joined the channel [13:05] rfay has joined the channel [13:05] cjroebuck has joined the channel [13:07] jetienne has joined the channel [13:08] hdon has joined the channel [13:08] Cromulent has joined the channel [13:08] patrickgamer has joined the channel [13:08] kulor-uk has joined the channel [13:09] mikeal has joined the channel [13:10] forzan has joined the channel [13:10] JasonJS has joined the channel [13:12] ksheurs has joined the channel [13:13] luke` has joined the channel [13:13] jmar777 has joined the channel [13:16] torsd has joined the channel [13:17] c4milo has joined the channel [13:18] colinclark has joined the channel [13:19] davidsklar has joined the channel [13:20] gxdssoft has joined the channel [13:21] anveo has joined the channel [13:22] mytrile has joined the channel [13:22] V1 has joined the channel [13:23] mytrile: Hey, guys. I'm playing with spawning child processes - https://gist.github.com/09f2353dbc2b073b41de and I want to start for example to db servers, but in the console when logging out stdout it's always the same name(the last executed) [13:24] ditesh has joined the channel [13:25] `3rdEden has joined the channel [13:26] thomblake has joined the channel [13:27] Glenjamin: mytrile: it's because of block scoping (or lack of it) [13:27] Glenjamin: try procs.forEach(function(item) { [13:27] luke`_ has joined the channel [13:28] SamuraiJack has joined the channel [13:28] patrickgamer has left the channel [13:28] adrianmg1 has joined the channel [13:28] thomblake has left the channel [13:31] dominictarr has joined the channel [13:31] adrianmg1 has left the channel [13:31] willwhite has joined the channel [13:32] davidbanham has joined the channel [13:32] mytrile: Glenjamin: Yep, that solved it, thanks :) [13:32] sonnym has joined the channel [13:33] ilikeit has joined the channel [13:35] Venom_X has joined the channel [13:36] mikedeboer has joined the channel [13:37] stonebranch has joined the channel [13:38] mattkime has joined the channel [13:38] mattkime: hello [13:38] mattkime: i'm interested in using node.js to mock up server responses for development [13:39] mattkime: i was curious if anyone knew a good set of directions on doing this, or a module that would be useful [13:39] Glenjamin: what sort of server? [13:39] mattkime: apache, mostly handing out json content [13:40] Glenjamin: http://expressjs.com/ should be more than enough [13:40] mattkime: heh, one thing i love about this stuff - hello world on the first page [13:44] malletjo has joined the channel [13:44] Glenjamin: if you've used sinatra or flask, express's approach should be familiar [13:45] sixtus421 has joined the channel [13:45] aelien27 has joined the channel [13:45] mattkime: we have an odd sinatra project lying around here which has inspired me to look into this [13:46] devongovett has joined the channel [13:46] hotch has joined the channel [13:47] hotch: hey everyone, is there a monitor for node that emails on an uncaught exception etc? [13:47] sixtus421: Hi! Is there a recommended way to deal with int64 yet? I know v8 doesn't have them, but I am trying to read a file format that has them. For the moment, I would be ok to either get them as strings or cast them to double. However, I am unsure how to do that in an efficient way. Buffer doesn't have any methods for it. [13:47] Glenjamin: hotch: i'd expect you can hook it up to hoptoad or exceptional easily enough - dunno if there's a lib for it off hand [13:48] hotch: yeah I mean, I'd like to either watch stderr and email on entry or … something along those lines. [13:48] e6nian has joined the channel [13:48] hotch: ok thx Glenjamin [13:50] ph^ has joined the channel [13:50] ukim has joined the channel [13:50] ukim: hi. does somebody installed npm on cygwin? [13:51] ditesh|cassini has joined the channel [13:51] DrMcKay: I think I will start writing +1 like that: https://github.com/isaacs/npm/pull/1460#issuecomment-2225115 [13:53] jamenzin has joined the channel [13:55] Glenjamin: DrMcKay: unicode ftw +(-e^iπ) [13:55] e6nian: who use browserify here ? [13:55] ukim: i do curl http://npmjs.org/install.sh | sh and get an error https://gist.github.com/1247990 [13:55] ukim: ERR! Error: Error spawning [13:56] ukim: what can i do? [13:56] jamenzin has joined the channel [13:56] e6nian: when I use browserify, always show Cannot find module 'foo' [13:56] Glenjamin: ukim: what does "which tar" say on the commandline? [13:57] ukim: /usr/bin/tar [13:57] jtsnow has joined the channel [13:57] pgherveou has joined the channel [13:58] e6nian: could I use browserify indepently in static files? [13:59] Glenjamin: ukim: "which gzip" ? [13:59] pgherveo_ has joined the channel [13:59] e6nian: SubStack: hi~ are you here? [14:00] ukim: Glenjamin /usr/bin/gzip [14:01] Glenjamin: ukim: dunno then, any particular reason you're on 0.5.4? [14:02] joshkehn has joined the channel [14:02] ukim: yes i'm on 0.5.4 [14:02] Glenjamin: yes, but why [14:02] Malar has joined the channel [14:02] Glenjamin: vs latest stable 0.4.x or latest 0.5.x [14:02] slajax has joined the channel [14:03] ukim: because here https://github.com/joyent/node/wiki/Building-node.js-on-Cygwin-(Windows) was written Use v.0.5.4 %) [14:03] ukim: ok, so i try to change version [14:03] ukim: then [14:03] Glenjamin: just a guess, can't promise it'll help [14:04] ryanfitz has joined the channel [14:05] aelien27 has joined the channel [14:10] robi42 has joined the channel [14:10] colinclark has joined the channel [14:10] cying has joined the channel [14:10] JakeyChan has joined the channel [14:11] Vennril has joined the channel [14:11] jbpros has joined the channel [14:11] Shrink has joined the channel [14:11] Shrink has joined the channel [14:12] ank has joined the channel [14:12] toopay has joined the channel [14:14] mike5w3c has joined the channel [14:14] michaeldeol has joined the channel [14:15] materialdesigner has joined the channel [14:15] sylvinus has joined the channel [14:15] hotch: hah DrMcKay +1 [14:16] paul_k has joined the channel [14:16] pixel13 has joined the channel [14:16] pixel13 has left the channel [14:18] dylang has joined the channel [14:18] replore has joined the channel [14:18] replore_ has joined the channel [14:19] TheJH has joined the channel [14:19] TheJH has joined the channel [14:19] dylang_ has joined the channel [14:20] xetorthio has joined the channel [14:20] dingomanatee has joined the channel [14:20] jj0hns0n has joined the channel [14:23] baudehlo has joined the channel [14:24] jedahan has joined the channel [14:25] smus has joined the channel [14:26] kulor-uk has joined the channel [14:28] aheckmann has joined the channel [14:29] vipaca has joined the channel [14:29] ukim: i'm trying make new version of node and get error Build failed: -> task failed (err #1): any ideas? [14:29] N0va` has joined the channel [14:32] TheJH: ukim, could you gist the whole error? [14:32] gsmcwhirter has joined the channel [14:33] pgherveou has joined the channel [14:34] dshaw_ has joined the channel [14:34] neilk_ has joined the channel [14:35] pgherveo_ has joined the channel [14:39] _kud has joined the channel [14:40] ivanfi has left the channel [14:40] vipaca has joined the channel [14:40] vipaca has joined the channel [14:40] adambeynon has joined the channel [14:41] aconbere has joined the channel [14:41] davidwalsh has joined the channel [14:43] fatjonny has joined the channel [14:43] max_dev has joined the channel [14:44] level09 has joined the channel [14:44] skcal has joined the channel [14:45] micrypt has joined the channel [14:46] ukim: [14:46] ukim: https://gist.github.com/1248121 [14:46] hotch: if i noticed correctly, the previous behavior of npm was to install packages, and their own node_modules/ even if those node modules were already required elsewhere by another dependency. correct? [14:46] mbrevoort has joined the channel [14:47] TheJH: DrMcKay, ukim has the ld segfault error, you know a workaround, correct? [14:47] TheJH: hotch, I think that's how it works unless you have cyclic dependencies [14:48] erickt_ has joined the channel [14:48] stash1 has joined the channel [14:49] colinclark has joined the channel [14:50] RuslanPopov has joined the channel [14:50] RuslanPopov: re all [14:51] jonrohan has joined the channel [14:51] necromancer: does anyone here know of a good method to use backbone as the MVC framework for node? [14:52] necromancer: backbone is meant as a client-side framework, if i'm reading all this correctly [14:52] necromancer: but can it be used as a server-side framework as well? [14:53] RuslanPopov: ppl, I want to make test node project, an url crawler. I just dont understand what should I do to make recursive downloading of site's page. As I read I need to return control as soon as possible, so there must be a way to create new task with suburl. Am I think right? [14:53] CoverSlide: hotch: each package has its own dependency list, and may depend on different versions of the same package. It may seem redundant, but honestly, most node packages are tiny, it's not like java/maven [14:54] Glenjamin: is "most node packages are tiny" something we should build a package manager around? [14:54] hotch: hah Glenjamin [14:54] Glenjamin: in practice it works fine [14:54] Glenjamin: but i dunno about in general [14:54] RuslanPopov: like a PIP in python [14:54] DrMcKay: TheJH: afaik, you just need to make distclean && cclean -C [14:55] DrMcKay: ukim: ^ [14:55] ukim: thanks i'll try [14:55] hotch: I think that isaacs is pretty fucking busy and if someone wanted npm to behave different/node etc then they … should do a pull request. [14:56] hotch: but my question was answered, thx CoverSlide / TheJH [14:56] meandi has joined the channel [14:57] _jhs has joined the channel [14:58] Renegade001 has joined the channel [14:58] bnoordhuis has joined the channel [14:58] hotch: ls [14:59] CoverSlide: . .. porn/ shemale/ [14:59] DrMcKay: lol [14:59] hotch: hah [14:59] Glenjamin: interestinly, the shemale stuff isnt porn D: [15:00] CoverSlide: another issue is node is not really a mature project, and so neither are the packages, so they are in constant state of change. So keeping the deps at a specific version was the best option, since one package might implement an api change that breaks all older packages. I know in one of the NodeUps isaacs talked about how just using one global installation of each package doesn't work for that very reason [15:00] level09 has joined the channel [15:00] tbranyen: which is perfect for immature programmers like myself [15:01] Glenjamin: I'm in favour of having per-lib dependencies [15:01] Glenjamin: but i'm on the fence about having duplicates of the same version of those dependencies 'littered' around [15:01] CarterL has joined the channel [15:02] CoverSlide: yeah it can be a pain [15:02] skm has joined the channel [15:02] tbranyen: the deps are usually quite small too [15:02] Bradleymeck has joined the channel [15:02] tbranyen: so its not a huge dealio [15:02] JasonJS: It is something you can self manage via symlinks if you are really concerned about the disk space [15:02] Glenjamin: also annoying is that "npm install" will overwrite "npm link " even if the dependency is met [15:02] thinkt4nk has joined the channel [15:02] Glenjamin: but that's something I could fix [15:02] piscisaureus has joined the channel [15:02] tbranyen: problem solved by never using npm link :D [15:02] brianc has joined the channel [15:03] Glenjamin: JasonJS: it's not the disk space, it's generally installing deps for a package when offline and the deps are on my machine somewhere [15:03] JasonJS: Glenjamin: Yeah - I agree it's not ideal but I see the reasoning behind it. [15:04] Glenjamin: yeah, I can live with it :) [15:04] Glenjamin: i prefer it to Ruby's bundler's approach [15:04] JasonJS: Until connect starts getting up to the megabyte range anyways [15:04] JasonJS: :) [15:04] CoverSlide: yeah [15:04] Glenjamin: which drops all the deps in a root folder with the version number in the path, and then adds all those paths to the load path list [15:05] CoverSlide: people need to start .{npm,git}ignore test/ and examples/ [15:05] Glenjamin: i'd say its more an issue for slow building packages than for "large" packages [15:05] CoverSlide: if you want to dev it, use git [15:05] Glenjamin: CoverSlide: i like having the tests and docs tbh [15:05] CoverSlide: well, they're useful for devving [15:05] necromancer: yeah why would you not bundle test/ in the repo? [15:05] Glenjamin: but I can live without all the browser stuff in the npm version [15:06] CoverSlide: but I don't like it on a prod app [15:06] guidocalvano has joined the channel [15:06] robertfw has joined the channel [15:06] Glenjamin: I quite like that i can cd node_modules/ && npm test [15:07] Glenjamin: oh, apparently I can even do "npm test " [15:07] mandric has joined the channel [15:07] CoverSlide: i think npm should have a devIgnore option, so that it'll skip certain directories if the --dev flag isn't set [15:09] markdaws has joined the channel [15:09] jaequery has joined the channel [15:09] CoverSlide: ls [15:09] CoverSlide: fuck [15:10] sub_pop has joined the channel [15:10] `3rdEden has joined the channel [15:11] softdrink has joined the channel [15:11] materialdesigner has left the channel [15:12] hotch: I think that there are more pressing issues with Node than disk space for packages. hmm my project uses some heavy hitting modules and the entire app which is getting pretty mature is at 9mb [15:13] mikeal has joined the channel [15:13] joshthecoder has joined the channel [15:13] socialhack has joined the channel [15:13] hotch: AFAIK there is no speed issue with multiple copies correct? inside of a module require looks within that directories node_modules first, then the root node_modules..? [15:14] Glenjamin: yeah, my issue is more to do with offline installs than disk space [15:14] Glenjamin: oh, thats a point [15:14] dshaw_ has joined the channel [15:14] tjholowaychuk has joined the channel [15:14] jhbot has joined the channel [15:14] tjholowaychuk has joined the channel [15:14] Glenjamin: you'd have two versions of the same module loaded if they were part of the same process but in different node_modules folders, which would give each a separate JIT trace [15:14] Glenjamin: i think [15:15] alekhine has joined the channel [15:15] tek has joined the channel [15:16] olegp: Glenjamin I'm pretty certain that's what happens, which is pretty wrong in my opinion [15:17] gxdssoft has joined the channel [15:17] Glenjamin: I'd imagine a patch to make npm install check the require path for dependencies before installing would be approved [15:17] irahgel has joined the channel [15:17] CoverSlide: require.paths is gone in >0.4.x [15:17] Glenjamin: the algorithm is public, and already used inside npm [15:18] hotch: Not a n00b to node, but newer to. Why is node stable at 0.4.12, yet i think that there is a .0.6.x branch?? [15:19] neilk_ has joined the channel [15:19] CoverSlide: if there's a 0.6.x branch, it's probably not ready for release yet [15:19] Glenjamin: CoverSlide: is require.paths now actually gone? or just not mutable anymore [15:19] CoverSlide: when it does get released, 0.6.0 will be the latest stable [15:19] ukim: make distclean && cclean -C does not help [15:19] mif86 has joined the channel [15:19] aelien27 has joined the channel [15:20] aho: 0.4.x = stable, 0.5.x = unstable, if there is anything above that = lets try some wacky shit [15:20] hotch: CoverSlide: no no, what I mean is that if there is a 0.6.0 branch why all of the 0.5.x branches, unstable. [15:20] hotch: ahh aho thx [15:20] CoverSlide: require.paths is a getter that just throws an error now [15:21] Glenjamin: I assume npm will have its own implementation of walking the require path then [15:21] Glenjamin: for npm ls / root eyc [15:21] Glenjamin: *etc [15:21] louissmit has joined the channel [15:22] smtlaissezfaire has joined the channel [15:22] jakehow has joined the channel [15:24] chrislorenz has joined the channel [15:24] sylvinus has joined the channel [15:24] caolanm has joined the channel [15:25] ShonM has joined the channel [15:25] ShonM has left the channel [15:25] eldios has joined the channel [15:25] ryanfitz has joined the channel [15:26] JakeyChan has joined the channel [15:27] michaeldeol has joined the channel [15:28] neilk_ has joined the channel [15:28] cosmincx has joined the channel [15:29] kenperkins has joined the channel [15:29] stelleg has joined the channel [15:33] jimt_ has joined the channel [15:33] mquin has joined the channel [15:35] bEEEviz has joined the channel [15:36] Spion_ has joined the channel [15:37] martinisoft has joined the channel [15:37] jimt has joined the channel [15:40] christophsturm has joined the channel [15:41] fangel has joined the channel [15:42] christophsturm: I have a small library without dependencies and some examples that depend on some npm packages. can I specify this in my package.json so people that just use the lib don't need the dependencies and people who want to run the examples can easily install them? [15:43] DrMcKay: christophsturm: maybe make a examples folder with second package.json? [15:43] CoverSlide: that's what the devDependencies option is for [15:43] christophsturm: oh great, thanks [15:43] DrMcKay: or what CoverSlide says [15:44] JSManiacs has joined the channel [15:44] Vennril2 has joined the channel [15:44] JSManiacs has joined the channel [15:46] cognominal has joined the channel [15:46] albertosh has joined the channel [15:47] shipit has joined the channel [15:48] torsd has joined the channel [15:49] alekhine has joined the channel [15:50] dguttman has joined the channel [15:50] edwardmsmith has joined the channel [15:51] anveo has joined the channel [15:51] EvRide has joined the channel [15:51] torsd_ has joined the channel [15:54] BillyBreen has joined the channel [15:54] _kud has joined the channel [15:55] galaxywatcher has joined the channel [15:56] Yuffster_work has joined the channel [15:57] `3rdEden has joined the channel [15:57] JaKWaC has joined the channel [15:57] asteig has joined the channel [15:58] JaKWaC has joined the channel [16:02] guillermo has joined the channel [16:04] saesh has joined the channel [16:06] harthur has joined the channel [16:06] navaru has joined the channel [16:07] DennisRas has joined the channel [16:07] superjudge has joined the channel [16:08] heavensgate has joined the channel [16:09] joshkehn: So with Mongoose, what does MongoError: have conflicting mods in update mean? [16:09] heavensgate: CIA-109 where can i get the morning intelligence report? [16:11] jonrohan has joined the channel [16:12] heavensgate: In all reality anyone paying attention would you preferr to be paid with paypal or bitcoin for the services of coding a webpage? [16:13] darinc: paypal [16:13] dshaw_ has joined the channel [16:13] DrMcKay: paypal. why would I care about bitcoin if it's legal? [16:13] CoverSlide: I'd go with paypal [16:14] jimt_ has joined the channel [16:14] joshkehn: I wouldn't take bitcoins if you paid me to. [16:14] heavensgate: DrMcKay why would you care about bitcoin if its legal? I do not get the question. [16:14] sixtus421 has left the channel [16:14] cognominal_ has joined the channel [16:15] simenbrekken has joined the channel [16:15] DrMcKay: heavensgate: if stuff you're doing is legal, why hide with it? [16:16] DrMcKay: I mean, bitcoin exchange value is unstable [16:16] davididas has joined the channel [16:16] heavensgate: DrMcKay bitcoin is just supposed to avoid inflation , also paypal provides a middleman which can be taken to dispute unlike bitcoin. [16:16] CoverSlide: bitcoin has too much randflation [16:17] Wa has joined the channel [16:17] heavensgate: Well I guess iif you want to be the ultimate authority of the payment you wouldnt go with paypal because someone could make a dispute and backout after say hours of coding. [16:18] CoverSlide: I say wire transfer [16:18] heavensgate: But I see guys thanks for answering, paypal is quick easiy convienient widely accepted and worth the middleman. [16:20] heavensgate: I think I wont mess with paypal for now. Anything under $500 it's worth using. [16:20] stonebranch has joined the channel [16:20] heavensgate: Like CoverSlide says money in hand if its a huge job. [16:20] boltR has joined the channel [16:21] adrianmg has joined the channel [16:21] akiva has joined the channel [16:22] slickplaid: i like serve, google checkout and dwolla [16:22] adrianmg has left the channel [16:22] heavensgate: slickplaid seems like they all require you to write off civil action in the agreements you agree that they will handle disputes [16:22] alekhine has joined the channel [16:23] slickplaid: basically, yeah [16:23] murilobr has joined the channel [16:23] simenbrekken_ has joined the channel [16:23] sylvinus_ has joined the channel [16:24] jtsnow has joined the channel [16:24] lmorchard has joined the channel [16:25] kriszyp has joined the channel [16:25] Aphelion has joined the channel [16:25] dob_ has joined the channel [16:27] halcyon918 has joined the channel [16:27] robi42 has joined the channel [16:29] rick_h_ has joined the channel [16:29] hkjels has joined the channel [16:30] stisti has joined the channel [16:30] te-brian has joined the channel [16:31] smathy has joined the channel [16:31] ryanfitz has joined the channel [16:32] reid has joined the channel [16:32] rick_h_ has joined the channel [16:33] wbednarski has joined the channel [16:34] creationix has joined the channel [16:34] petrjanda has joined the channel [16:34] Venom_X has joined the channel [16:35] pizthewiz has joined the channel [16:35] dshaw_1 has joined the channel [16:36] kulor-uk_ has joined the channel [16:37] heavensgate: Anyone know why windows XP still gets auto updates if it isno longer supported and out of patent? [16:37] heavensgate: If the patent is up shouldnt it be in the realm of public domain? [16:38] cognominal_ has joined the channel [16:40] simenbrekken has joined the channel [16:40] TheJH: heavensgate, huh? why patent? [16:40] TheJH: heavensgate, do you think you can get a patent on an OS? [16:41] ttilley has joined the channel [16:41] heavensgate: well you can copywrite the code but the OS isnt code its technology requires a patent [16:41] edenli has joined the channel [16:41] heavensgate: right? [16:42] TheJH: "requires a patent"? huh? you don't have to patent anything [16:42] smus has joined the channel [16:42] heavensgate: Well I am just thinking windows XP should be public domain by now [16:43] Glenjamin: it's only 10 years old... [16:43] heavensgate: patents are for 4 years [16:43] heavensgate: i thought [16:43] heavensgate: seems like then reverse engineering would becme legal [16:44] dgathright has joined the channel [16:45] eignerchris has joined the channel [16:46] hornairs has joined the channel [16:46] hornairs: anyone know a way to programatically assert that the dependencies in a project's node_modules are up to date? [16:47] superjudge has joined the channel [16:47] hornairs: ie if package.json changes and a user forgets to npm install can i error out and let them know? [16:47] heavensgate: seems to me once the patent is up activation shouldnt be required because copywrite cant apply to binaries [16:47] max_dev has joined the channel [16:47] patcito has joined the channel [16:48] Glenjamin: copyright applies to any authored work, which should include binaries - but this is not a room full of copyright lawyers [16:48] Renegade001 has joined the channel [16:48] r04r: What is a good way to send JSON over a regular tcp socket? [16:49] creationix: r04r: write it? [16:49] creationix: r04r: you can use my streaming parser on the other end and you won't even need to frame it [16:49] r04r: creationix: I should have rephrased. What is a good way to read it on the other side? [16:49] r04r: creationix: Link? [16:49] creationix: or frame it with netstrings or newlines [16:49] heavensgate: Glenjamin compiling an authored work is not authoring it thats a technology which is in the realm of patents [16:49] creationix: https://github.com/creationix/jsonparse [16:49] ecin has joined the channel [16:50] creationix: r04r: netstrings are probably the most effecient since the other end knows the size of the body [16:50] Glenjamin: heavensgate: but the work itself is still authored, compiling could be considered the analog of publishing a book. I'm in europe anyway and we don't have software patents [16:50] Glenjamin: but this isn't really the place for legal discussions of the copyright of windows XP [16:50] creationix: the streamer is nice because you don't have to buffer anything and can do real-time xpath style queries on the stream [16:51] heavensgate: ok [16:51] r04r: creationix: Alright. This is for rather simple data transfer, so I don't think I'll need anything like that >.> Netstrings, though... That's just prefixing the message with the length of the message? [16:51] creationix: Glenjamin: I'll never understand why geeks are generally obsessed with law, especially licenses and patents [16:51] creationix: r04r: right [16:51] gr-eg has joined the channel [16:51] heavensgate: so in summary windows XP is in the realm of public domain [16:52] r04r: creationix: Thanks :) [16:52] heavensgate: end subject [16:52] DrMcKay: wait, what am I reading? [16:52] Glenjamin: shhh, he seems to have stopped [16:52] Glenjamin: anyway, i'm going home [16:53] creationix: r04r: if you go for my parser, just listen for top level data events and you'll get whole json chunks, it's probably simpler than parsing netstrings [16:54] ph^ has joined the channel [16:54] JSManiacs has joined the channel [16:55] kulor-uk has joined the channel [16:56] airhorns has joined the channel [16:57] ph^ has joined the channel [16:57] Margle has joined the channel [16:57] JSManiacs has left the channel [16:57] skiz has joined the channel [16:57] pgherveou has joined the channel [16:57] broofa has joined the channel [16:58] idef has joined the channel [16:58] topaxi has joined the channel [16:58] skiz has joined the channel [16:59] r04r: creationix: Alrighty. Going to take a look [16:59] cognominal_ has joined the channel [17:00] ph^_ has joined the channel [17:00] creationix: r04r: hmm, my docs suck, let me get you a better example [17:01] Tigraine: Hi .. Has anyone a good link on usage best practices for the nodejsdb.org driver? [17:02] blup has joined the channel [17:02] Tigraine: I am using db-mysql at the moment and guess I'm doing something wrong [17:02] creationix: r04r: https://github.com/creationix/jsonparse/blob/master/examples/twitterfeed.js [17:02] StanlySoManly has joined the channel [17:02] Tigraine: should I be keeping one connection open for all my database needs? or are the conections pooled and I open a new one per request? [17:03] creationix: r04r: basically you set the onValue callback and emit value whenever this.stack.length === 0 [17:03] indexzero has joined the channel [17:05] DrMcKay: how can I tell mongoose to accept any document properties? [17:05] r04r: creationix: Ahh [17:05] r04r: creationix: Thanks [17:06] fallsemo has joined the channel [17:06] DrMcKay: indexzero: that was the best +1 I've seen in a while :) [17:06] perezd has joined the channel [17:08] CarterL has joined the channel [17:08] gr-eg has joined the channel [17:09] devaholic: https://github.com/tblobaum/nodeQuery [17:09] devaholic: ^.^ [17:09] localhost has joined the channel [17:09] vidi has joined the channel [17:10] vidi has joined the channel [17:11] brion has joined the channel [17:11] r04r: devaholic: Oh, that's funky. Cool. [17:11] StanlySoManly: anyone use jasmine-node and have issues with variables bleeding over each other in different spec files? everything i think i know about node tells me this shouldn't even be possible, but it seems to be what i'm seeing. it seems to also depend on the timing of how things are executed, so i'm having a really hard time creating a simple case that can be easily reproduced. [17:12] DrMcKay: devaholic++ [17:12] v8bot_: DrMcKay has given a beer to devaholic. devaholic now has 1 beers. [17:13] thomblake1 has joined the channel [17:13] thomblake1 has left the channel [17:15] _main_ has joined the channel [17:15] level09 has joined the channel [17:16] DrMcKay: creationix: nvm question, can one feature work on Linux and not on Mac? [17:16] neilk_ has joined the channel [17:16] creationix: DrMcKay: it's possible [17:16] DrMcKay: I mean sorting by version [17:16] creationix: DrMcKay: I doubt they are the same bash [17:16] DrMcKay: creationix: no, I want to introduce this kind of feature [17:16] TooTallNate has joined the channel [17:16] creationix: I don't want any platform specific stuff [17:17] DrMcKay: creationix: no problem :) [17:17] creationix: in fact, I'm thinking of removing all the zsh hacks and letting someone who actually uses zsh maintain a fork [17:17] TooTallNate: creationix: hey did you ever get some sort joystick support in node with the sdl stuff? [17:17] DrMcKay: pretty good idea [17:18] DrMcKay: I know multiplatform solution, though [17:18] DrMcKay: but I'm not sure how to output it correctly [17:19] DrMcKay: ls -dG v* | sort -t. -n -k1 -k2 -k3, but it outputs many lines [17:19] robotmay has joined the channel [17:20] DrMcKay: creationix: any idad how to make sort output it just like `ls` does? [17:21] hydrozen has joined the channel [17:22] inpho has joined the channel [17:22] confoocious has joined the channel [17:22] creationix: TooTallNate: yeah, joystick was one of the first things I did [17:23] dreamdust has joined the channel [17:24] creationix: DrMcKay: not really [17:24] DrMcKay: creationix: thanks [17:25] DrMcKay: so no version sorting for now [17:25] jesusabdullah: What's this? [17:25] TooTallNate: creationix: thanks, i'll see it now [17:25] jerrysv has joined the channel [17:26] testeroo has joined the channel [17:26] DrMcKay: jesusabdullah: in version sorting v0.1.10 > v0.1.2 [17:26] DrMcKay: jesusabdullah: on linux, `ls -v` [17:26] socialhack has joined the channel [17:26] herbySk has joined the channel [17:26] 13WAAFVX9 has joined the channel [17:26] DrMcKay: but Mac OS X doesn't support it [17:26] creationix: I wonder how many people will cry if I remove "sync", "latest", and "stable" from nvm [17:27] pt_tr has joined the channel [17:27] creationix: it complicates stuff and I don't like it [17:27] gregpascale has joined the channel [17:27] DrMcKay: creationix: I never used it, I think [17:27] creationix: ACTION goes to prune code... [17:27] chjj: drmckay got the final say [17:27] sylvinus has joined the channel [17:28] DrMcKay: oh. now people will scream at me. [17:28] chjj: haha [17:28] Xano_ has joined the channel [17:28] chjj: im blaming you if people complain ;p [17:28] chjj: ACTION gists this convo [17:28] DrMcKay: lol [17:29] creationix: DrMcKay: I'll make sure to mention you in the commit message [17:29] chjj: haha [17:29] creationix: give credit where due and all [17:29] DrMcKay: creationix: and in README. "I've removed sync and latest because DrMcKay didn't use it" [17:30] jesusabdullah: haha [17:30] dguttman has joined the channel [17:30] jesusabdullah: DrMcKay does what he wants. He basically doesn't give a shit, look! [17:30] creationix: I hate it when I don't have time to properly maintain my projects, I blindly take patches from random people and it turns to fragile stuff I don't even like [17:31] creationix: some patches are really good, but others aren't [17:31] creationix: and it's really hard to tell the difference without spending a lot of time looking at them [17:31] tjholowaychuk: creationix haha i know what you mean [17:31] tjholowaychuk: takes more time to read them than to implement the feature at times [17:31] creationix: tjholowaychuk: right [17:31] tjholowaychuk: and then you feel bad [17:31] tjholowaychuk: for just writing it [17:32] DrMcKay: tjholowaychuk: and I wanted to send a express pull request today... *sadpanda* [17:32] creationix: DrMcKay: good pull requests are good. It helps a lot if you know the person sending the request [17:32] justicefries has joined the channel [17:33] DrMcKay: creationix: do you often receive pull requests from people you know? [17:33] issackelly_ has joined the channel [17:33] DrMcKay: I would say most are random internet strangers [17:33] fdmanana has joined the channel [17:34] jedahan has joined the channel [17:34] creationix: DrMcKay: no, one unfortunate side effect of my projects gaining popularity is there are a ton of people who have heard of me and I have no clue who they are [17:34] EhevuTov has joined the channel [17:34] creationix: it makes me sad [17:35] DrMcKay: creationix: on the other hand, isn't it good? I mean, it really shows that people still care [17:35] overra has joined the channel [17:36] creationix: DrMcKay: of course, the sad part is that I don't have the capability to give them back the attention they deserve [17:37] bshumate has left the channel [17:37] DrMcKay: creationix: people understand it. I don't remember getting mad at somebody because I had to wait for my pr to get merged [17:37] creationix: my favorite lol was a few weeks back when someone asked in this room if I was a bad person because I was unresponsive to projects [17:38] DrMcKay: lol [17:38] drudge: of course you are [17:38] level09 has joined the channel [17:38] creationix: isaacs set them straight, but it was still quite funny [17:38] creationix: well, anyway, back to pruning nvm so I can actually maintain it [17:38] creationix: people can fork if they want a custom version [17:39] creationix: it's not like you install it via npm or anything, it's kind of a manual thing [17:39] vicapow has joined the channel [17:39] mrsrikanth has joined the channel [17:39] alindeman has joined the channel [17:40] ksheurs has joined the channel [17:41] pgherveou has joined the channel [17:46] kevwil has joined the channel [17:46] amiller has joined the channel [17:47] smus has joined the channel [17:47] `3rdEden has joined the channel [17:48] blup has joined the channel [17:50] socialhack has joined the channel [17:51] aconbere has joined the channel [17:51] saikat has joined the channel [17:52] digman543 has joined the channel [17:52] irahgel has left the channel [17:52] dguttman_ has joined the channel [17:52] pgherveou has joined the channel [17:52] dans has joined the channel [17:53] bartt has joined the channel [17:53] dreamdust has joined the channel [17:53] pgherveou has joined the channel [17:54] Bonuspunkt has joined the channel [17:54] boaz has joined the channel [17:55] mikeric has joined the channel [17:56] boaz has joined the channel [17:56] mjr_ has joined the channel [17:57] devaholic: ro4r, DrMcKay thanks! [17:57] luxigo: if you upload several versions of the same package to npm with different dependecies (eg version 0.4 for node <=0.4 , version 0.5 for node <=0.4.6, etc) ... will npm choose the right one depending on your node version or install the latest package anyway ? [17:57] simenbrekken has joined the channel [17:58] creationix: luxigo: the right one, assuming the code specifies what it wants [17:58] luxigo: the code ? [17:58] creationix: or, depending on node versions, hmm [17:58] mikeric_ has joined the channel [17:58] creationix: I know you can specify what version of node the package is dependent on [17:58] creationix: that should do what you want [17:58] luxigo: in package.json [17:59] creationix: right [17:59] creationix: never tried it personally [17:59] creationix: isaacs doesn't seem to be around today [17:59] creationix: he would know [18:00] r04r: Does V8 do something smart with declaring multiple functions within, for example, a createServer scope which gets executed once for every socket, or will that end up eating up a lot of memory? [18:00] TheJH: luxigo, I think it doesn't, but I might very well be wrong [18:00] TomY has joined the channel [18:00] kriszyp has joined the channel [18:01] sebbie has joined the channel [18:01] AvianFlu has joined the channel [18:01] Nuck: Okay, I have an extremely read-heavy database that I'm looking at possibly moving off Mongo, and I'm wondering what is best for this situation? [18:02] creationix: r04r: if you make a function in your request handler, it will be unique to that request. But it's not as expensive as you may think [18:02] mjr_: Nuck: does your data set fit into RAM? If so, Redis is quite excellent. [18:02] creationix: a function is basically just an object with a couple other objects for closure state and a chunk of executable code [18:02] alekhine has joined the channel [18:02] dgathright has joined the channel [18:03] mjr_: r04r: it will add some GC cost. Each of those anonymous functions needs to get cleaned up at some point. [18:03] creationix: right, so roughly equivalent to creating a few small objects in your loop [18:03] Nuck: mjr_: hehe probably not in its entirety, it'll be a huge list with hundreds to thousands of entries, each of which is an object [18:03] creationix: they need to be gc'ed as well eventually [18:03] chjj: creationix: i think it is a bit more expensive than if you were to prototypally create objects holding state [18:03] Nuck: I could prolly do a Redis cluster? [18:03] metellus has joined the channel [18:04] chjj: seeing as how v8 optimizing the hell out of it [18:04] chjj: optimizes* [18:04] creationix: chjj: yeah, v8 prefers java style code [18:04] r04r: mjr_: creationix: Alright. I've almost got it working with having the functions out of the loop and using .apply. I'll just keep that, if it's slightly cheaper. Thought occured to me after I was done >.> [18:04] mjr_: Nuck: sadly, redis cluster is still a ways out. What's wrong with Mongo? [18:04] jakehow has joined the channel [18:04] creationix: apply is pretty expensive too, but in other ways [18:04] tjholowaychuk: Nuck hash ring it up [18:04] Nuck: mjr_: It's not very effective for a large read-heavy setup :/ [18:04] maushu has joined the channel [18:04] Nuck: tjholowaychuk: Hash ring? [18:04] luxigo: ryah: hi [18:04] tjholowaychuk: (with redis) [18:05] mjr_: chjj: V8 loves prototypes. I've been converting all of my code to hang off a prototype. [18:05] mape_: tjholowaychuk: any idea why cluster would break when using websockets and socket.io? [18:05] creationix: v8 prefers prototypes to the point that it makes me angry [18:05] Nuck: creationix: Yeah, seriously :/ [18:05] chjj: mjr_: yeah, ive been trying to use prototypes mostly as well, its hard not to when you see how well v8 optimizes them [18:05] tjholowaychuk: mape_ i think socket.io has different backends to scale [18:05] Nuck: chjj: Same :( I hate prototypes so hard [18:05] tjholowaychuk: beyond one process [18:05] creationix: mjr_: of course my solution was to try a v8 alternative [18:05] creationix: :P [18:05] mjr_: chjj: personally, I've found that using prototypes makes my code easier to understand later. [18:05] `3rdEden: Nuck hashring: https://github.com/3rd-Eden/node-hashring [18:05] `3rdEden: ;D [18:06] chjj: Nuck: i have no problem with prototypes [18:06] slickplaid: Prototype.prototype.__proto__ [18:06] mape_: tjholowaychuk: k, still no idea why? ;) [18:06] tjholowaychuk: mape_ that's why [18:06] tjholowaychuk: it's not cluster [18:06] tjholowaychuk: it's just processes in general [18:06] chjj: Nuck: sometimes closures are easier though due to the fact that javascript has no pointers and you cant pass strings by reference for example [18:06] mape_: tjholowaychuk: oh k [18:06] chjj: or at least, strings arent mutable [18:06] creationix: and honestly, it's not that non-prototype code in v8 is slow, it's just that prototype based code in v8 is really fast [18:06] creationix: and by prototype, I mean constructor+prototype using new [18:06] Nuck: `3rdEden: Is that all stored in memory on Node? [18:07] Nuck: Because if so, you're gonna have trouble [18:07] `3rdEden: The hash ring is [18:07] `3rdEden: but the keys are you feed it arent [18:07] devaholic: hashring is pretty cool [18:07] mjr_: Nuck: I've not used mongo in production, so it might be awesome. Instead, now we use a big Riak cluster and Redis for caching / stats. [18:07] Nuck: `3rdEden: V8 couldn't handle >2GB of RAM before they replaced the GC recently [18:07] `3rdEden: hashrings are pretty badass [18:07] creationix: mjr_: did you see mraleph made a v8 version of luvit that was almost as fast on 32 bit? [18:07] devaholic: indeed [18:08] creationix: not sure what it says about node or luvit, but it was fast [18:08] cgfuh has joined the channel [18:08] chjj: pfft why are we even talking about v8 though, node.dart is the future! ...right? [18:08] Nuck: haha chjj [18:08] devaholic: hashrings and workers and you have a lot of scale [18:08] Nuck: I'm with Eich, "Always bet on JS" [18:08] neilk_ has joined the channel [18:08] chjj: [18:09] `3rdEden: I'm with douglas, coffeescript is a toy language [18:09] `3rdEden: ANYWAYs [18:09] chjj: did mr crockford say that? [18:09] creationix: javascript is a toy language [18:09] devaholic: chjj: this is the future!! https://github.com/tblobaum/nodeQuery [18:09] creationix: but that didn't stop us [18:09] chjj: first thing i agree with him on [18:09] Nuck: CoffeeScript is a toy language in a toy language [18:09] tjholowaychuk: crockford > brendan [18:09] chjj: good, im glad to hear crockford say that [18:09] creationix: hey now, I helped write the coffeescript compiler in coffeescript [18:09] `3rdEden: Nuck yes but it will take a while before that lands in node, unless you want to compile it your serlf with a new V8 [18:09] dreamdust has joined the channel [18:09] creationix: the syntax is really nice for declaring parser rules [18:10] Nuck: `3rdEden: Exactly, so hashrings in Node === bad idea for now [18:10] Nuck: I'll prolly just stuff it in Redis and use clusters [18:10] shanez has joined the channel [18:10] Nuck: Becuase as I understand, clusters work? [18:10] shanez has left the channel [18:10] creationix: tjholowaychuk: are you still working on your language luna or something like that? [18:10] `3rdEden: Nuck dude wtf that has really nothing to do with memory [18:11] chjj: tjholowaychuk: more luna please [18:11] tjholowaychuk: creationix yup, haven't had much time for it lately but yup [18:11] `3rdEden: Nuck read http://en.wikipedia.org/wiki/Consistent_hashing [18:11] chjj: creationix: more luanode/luvit [18:11] Nuck: `3rdEden: Well, it's still easier for me to use Redis [18:11] creationix: tjholowaychuk: cool, you should write libuv bindings for it when you get a chance, it's a really nice library and has most of node in it [18:11] `3rdEden: yes but if you want to a cluster of Redis clients you need somethin glike a hashring infront of them [18:12] `3rdEden: because redis doesn't cluster on it's own yet [18:14] jhurliman has joined the channel [18:14] tjholowaychuk: im aware lol [18:14] tjholowaychuk: not sure if i'll even use libev/io [18:14] tjholowaychuk: but if i do [18:14] tjholowaychuk: i'll see where's uv is at [18:14] creationix: I'm using libuv for luvit and it's really nice. If even handles things like write queueing internally [18:14] tjholowaychuk: grr starbucks [18:14] creationix: though it does change pretty fast [18:14] ryanrolds_w has joined the channel [18:15] parshap has joined the channel [18:17] mehlah has joined the channel [18:17] Nuck: ugh [18:17] Nuck: Why is Redis Clustering not done yet? [18:17] Nuck: Seriously, their site says it should be out by now :S [18:17] mjr_: antirez is one person [18:17] tjholowaychuk: moar time [18:18] Nuck: mjr_: But isn't Redis open-source? [18:18] mjr_: sure [18:18] Nuck: Why don't more people work on it? [18:18] tjholowaychuk: because we're all noobs [18:18] chjj: Nuck: go work on it! [18:18] Nuck: hahaha [18:18] Nuck: chjj: I don't know C :P [18:18] StanlySoManly: i hope this isn't too silly a question, but if i'm creating a jsdom window and using jquery (both from npm), where are the event bindings "stored"? that would be in the dom, wouldn't it? [18:18] jakehow has joined the channel [18:19] StanlySoManly: (trying to figure out why my bindings are disappearing) [18:20] chjj: StanlySoManly: jquery uses synthetic events, expando properties are mapped to a kind of internal object hanging off the jQuery object [18:21] bshumate has joined the channel [18:21] chjj: so each dom object has an expando property, usually something nonsensical like jquery3832084320843843, that carries an id which gets mapped to some object that holds all dom object data [18:21] murvin has joined the channel [18:22] creationix: Nuck: lame excuse, I don't know C either (or I didn't) [18:22] Nuck: creationix: I'll learn it someday, maybe. [18:22] murvin: hi.. is there a way to listen to a particular mongodb data in a collection. if it is changed, then fire an event to node.js? [18:22] Nuck: Prolly not tho [18:22] chjj: StanlySoManly: you might learn more by looking at the code, thats just how a lot of dom libraries do it [18:23] hellp has joined the channel [18:23] Nuck: creationix: Next language I wanna learn is lisp [18:23] `3rdEden: mjr_ don't forget about pietern who is also working on it ;o [18:23] Nuck: Maybe C after that :P [18:23] chjj: Nuck: why? [18:24] mjr_: True. 2 people work on Redis [18:24] Nuck: chjj: Because is' fucking *lisp* [18:24] chjj: pfft [18:24] chjj: lisp is ugly [18:24] StanlySoManly: chjj: cool. thank you. knowing that they're in the jq object also helps narrow which code i should look at. :) [18:24] Nuck: is noordhuis a common last name or something? [18:24] `3rdEden: But pietern is still student, so he don't really count ;D [18:24] `3rdEden: doesn't* [18:24] `3rdEden: Nuck yes it's a common last name for dutch people [18:24] Nuck: chjj: Lisp is one of those things they say you should learn just because of the weird shit it teaches you [18:25] Nuck: `3rdEden: Ah, okay [18:25] drudge: anyone using node-orm? [18:25] chjj: Nuck: learn x86 assembly, that will teach you a lot [18:25] Nuck: chjj: How 'bout not? [18:25] darinc: is there any Redis/Mongo/Couch type storage app written in javascript / node? [18:25] chjj: do it! [18:25] Nuck: darinc: Zillions. [18:26] Nuck: Everybody here uses Redis, Couch, or Mongo. [18:26] joshkehn: Nuck: I still use MySQL for a good amount of stuff. :) [18:26] Nuck: chjj: How about I learn you how to die :| [18:26] CoverSlide: some people use riak [18:26] Nuck: joshkehn: lol MySQL [18:26] Nuck: You so silly [18:26] chjj: StanlySoManly: no problem, i would look in the events implementation, they probably access the regular .data function or whatever, they store all data the same way [18:26] joshkehn: Simple single server db's it's perfectly fine. [18:26] CoverSlide: "Friends don't let friends use MySQL" --Randal Schwartz [18:26] darinc: how about the storage app itself written in javascript, not just API's to access other storage program [18:26] jetienne has joined the channel [18:26] arnee has joined the channel [18:26] ttpva has joined the channel [18:27] chjj: Nuck: seriously, learn x86, its fun [18:27] Nuck: CoverSlide: Nobody cares about that underground DB that nobody's ever heard of, Riak. [18:27] Nuck: GTFO with your super-hipster databases [18:27] arnee has joined the channel [18:27] dreamdust: neo4j looks kinda cool [18:27] Nuck: darinc: Uh, no [18:27] CoverSlide: how about hbase [18:27] Nuck: darinc: That'd be ridiculous. [18:27] CoverSlide: or cassandra [18:27] CoverSlide: or leveldb [18:27] CoverSlide: or orientdb [18:27] Nuck: Cassandra is Java, so I pretend it's not real [18:27] joshkehn: CoverSlide: Give me an alternative database that enforces schema, has transactions, is ACID compliant, full text searching, and single server durable. [18:28] CoverSlide: or tokyocabinet [18:28] jmoyers has joined the channel [18:28] joshkehn: CoverSlide: Now you're just being silly. ;) [18:28] darinc: Nuck: fair enough ;-) [18:28] dreamdust: @joshkehn: MySQL [18:28] Nuck: joshkehn: Mongo + Mongoose has quite a few of those >_> [18:28] Nuck: How about Postgres? [18:28] darinc: dreamdust: I am currently using neo4j on a project [18:28] dreamdust: How's it working out? [18:28] joshkehn: Nuck: I'm not talking about a driver, I'm talking about a database. [18:28] joshkehn: What if I'm working with PHP? [18:28] Nuck: CoverSlide: Real men use Berkeley DB. [18:28] joshkehn: You have a mongoose for PHP? [18:28] joshkehn: Postgres – meh. [18:28] aho: postgres surely is a usable database [18:28] darinc: it's working good. I'm using tinkerpop, with rexster and gremlin [18:29] Nuck: joshkehn: No, PHP can go suck a cock. :( [18:29] CoverSlide: my mongoose codes in lisp [18:29] joshkehn: dreamdust: Pretty well actually. [18:29] joshkehn: Hahaha. [18:29] darinc: give's a nice front end, built in REST server [18:29] CoverSlide: when he's not eating pythons [18:29] vidi has joined the channel [18:29] joshkehn: I also have a bunch of grails projects running on MySQL [18:29] drudge: holy hell node-orm is.. interesting [18:30] Nuck: ORMs are ghey. [18:30] Nuck: ODMs are where it's at [18:30] CoverSlide: everyone should switch to eXistDB [18:30] dreamdust: @darinc: When they come out with native bindings it's really gonna take off. Are you using https://github.com/gasi/node-neo4j? [18:30] joshkehn: ORM/ODM/MVC/SQL [18:30] joshkehn: Whatever [18:30] drudge: i'm attempting to use postgres for the first time with node [18:30] dylang has joined the channel [18:31] darinc: dreamdust: thanks for the link. Unfortunately the backend data gathering is written in perl, front end is pure client side JS interacting with the (rexster) REST server [18:31] Nuck: ODM is better because it's not an emulation of Objects on top of relational storage [18:31] socialhack has joined the channel [18:31] darinc: I'll check out the gasi project [18:31] Nuck: Well, not in the case of Mongoose [18:32] boltR has joined the channel [18:33] arnee_ has joined the channel [18:33] Nuck: hmmm [18:33] skiz_ has joined the channel [18:35] stonebranch has joined the channel [18:37] murvin: can Node.js listen to data change in MongoDB? [18:38] creationix has left the channel [18:38] xerox: no? [18:38] joshkehn: murvin: I think so. [18:38] CoverSlide: you mean some type of pub/sub functionality [18:38] joshkehn: One second. [18:38] tobyo has joined the channel [18:38] johnwards has joined the channel [18:39] joshkehn: http://stackoverflow.com/questions/3088185/monitoring-mongo-for-changes-with-node-js [18:39] joshkehn: So not realy [18:39] cying has joined the channel [18:40] devaholic: murvin: no [18:40] CIA-109: node: 03Fedor Indutny 07master * r542156a 10/ test/simple/test-debugger-repl.js : [18:40] CIA-109: node: debugger: use regexps in repl test [18:40] CIA-109: node: Fixes #1788 - http://git.io/18fOQQ [18:40] murvin: joshkehn: Hmm [18:40] devaholic: joshkehn: wow stack has surprisingly bad answers to that question [18:41] devaholic: murvin: what you can do is... [18:41] devaholic: create a pre save hook [18:41] softdrink has joined the channel [18:41] devaholic: and publish your data to redis in that hook [18:41] joshkehn: Yeah, old question. [18:41] devaholic: and subscribe to the data channel [18:41] cronopio has joined the channel [18:42] CIA-109: node: 03Fedor Indutny 07master * r1b8b097 10/ (lib/_debugger.js test/simple/test-debugger-client.js): [18:42] CIA-109: node: debugger: refactor, no more res.success checks [18:42] CIA-109: node: Fixes #1779. - http://git.io/rpkh_A [18:42] devaholic: so you have the same data flying out into redis pub/sub as just went into mongodb [18:42] devaholic: (almost wrote a blog post about this a few days ago) [18:43] murvin: devaholic: hmmm.. not 100% understand how it works. lol [18:43] devaholic: which part? [18:43] murvin: and the data may not be changed by node.js [18:43] murvin: may be updated manually. [18:44] devaholic: then you are SOL [18:44] murvin: and node.js notice the change. [18:44] lz: he can ping it [18:44] murvin: SOL? [18:44] wankdanker has joined the channel [18:44] tlrobinson has joined the channel [18:44] Nuck: murvin: Shit Outta Luck [18:44] murvin: hahahaha [18:44] devaholic: but if you can avoid that, and use something like mongoose.js, then a pre save hook that pubs your data is pretty useful! [18:44] Nuck: devaholic: yup sure is [18:44] lz: you can check the mongodb server every few seconds and watch for changes [18:44] dandean has joined the channel [18:44] murvin: I'm using mongoose [18:45] murvin: lz: that's what I'm doing. I 'm checking db every one minute [18:45] devaholic: you just said it may not be changed by mongoose [18:45] Nuck: murvin: Are you *only* using Mongoose? [18:45] Nuck: If so, you're fine [18:45] thalll has joined the channel [18:45] murvin: but i want to do it in a more efficient way [18:45] lz: oh, that looks like the only way then if the data's being changed by a 3rd party [18:45] murvin: Hmm I use mongoose except for session. which use connect-mongo. :) [18:46] Nuck: murvin: Do you need to hook session changes? [18:46] devaholic: why do you need to poll your server for sessions? [18:46] devaholic: errm db* [18:46] murvin: Nuck: no. [18:46] murvin: the session is for other things [18:46] devaholic: also, i wrote a mongoose session so you dont have to use connect-mongo if you are using mongoose... [18:47] Nuck: murvin: Then use Mongoose's pre-commit hooks! [18:47] devaholic: its in a gist somewhere [18:47] Nuck: devaholic: Ooh really? [18:47] Nuck: devaholic: Linky? [18:47] devaholic: https://gist.github.com/1212722 [18:47] murvin: basically, there is some runtime config that I store in mongodb. and some other people may need to change the value in runtime. so, now, I'm checking every minute. and I'm looking for better way to handle this. :) [18:47] devaholic: assumes a global "Mongoose" variable exists [18:48] jmoyers has joined the channel [18:48] Nuck: ACTION punches devaholic for not encapsulating code well [18:48] Nuck: But nah, I can prolly work with it :P [18:48] murvin: devaholic: really? you have mongoose session ? didn't see it when I search for it on github a while ago. is it compatible with mongoose 2? [18:48] devaholic: its a session store... it makes up on efficiency by not having to make 2 connections to mongodb [18:48] devaholic: sure [18:49] devaholic: its not properly named or anything [18:49] devaholic: i actually forked it from a broken project and fixed it [18:49] murvin: ic. how stable it is? :) [18:49] devaholic: its a session store [18:49] devaholic: it works it doesnt [18:49] murvin: lol [18:49] murvin: true [18:49] devaholic: it works or it doesnt* [18:49] devaholic: and it works [18:49] murvin: it works [18:50] Nuck: devaholic: I'll prolly clean it up and use it :P [18:50] wankdanker: does anyone know of a node process discovery module? i would like for one process to become a master for the cluster to control config/redis master slave, etc. thoughts? [18:50] zeade has joined the channel [18:50] devaholic: just require it just like connect mongo but dont pass in a mongodb url [18:50] zeade has joined the channel [18:50] Nuck: devaholic: I'll prolly adapt it to accept a Mongoose object as an argument [18:51] murvin: so, for my question... now, I use mongoose. but 3rd party will change the DB (probalby manually). what should I do to get notified? [18:51] devaholic: murvin: nothing [18:51] Aikar: devaholic: what is the point of wrapping your code in a function and then .call(this)'ing it? [18:51] Nuck: Aikar: Encapsulation in a weird way [18:51] devaholic: aikar: its compiled coffescript that i just made functional, dont ask me [18:52] Nuck: Ah haha [18:52] Nuck: devaholic: *now* the shitty code makes sense [18:52] Aikar: yeah but node wraps everything in a func already [18:52] CIA-109: libuv: 03Igor Zinkovsky 07master * re7a53ae 10/ (11 files in 4 dirs): fix windows build - http://git.io/_V7sYQ [18:52] devaholic: i could wrap it twice instead if you want [18:53] Nuck: devaholic: Sauce for the original? [18:53] devaholic: i dont remember [18:53] Isaiah has joined the channel [18:54] Tigraine has joined the channel [18:54] aconbere has joined the channel [18:54] Nuck: devaholic: Oh found it [18:54] devaholic: i use it for all of my projects that i also use mongoose with, though [18:54] devaholic: never had trouble with it [18:55] devaholic: oh? [18:55] eric_b has joined the channel [18:55] Nuck: lolwat mongoose = require('mongeese').create() [18:55] Nuck: ACTION giggled [18:55] devaholic: ohh thats right [18:55] devaholic: yeah... [18:55] devaholic: ACTION remembers [18:55] murvin: 19 days from node 0.6 :) [18:55] devaholic: the original was just a mongoose session, but it didnt share the db connection [18:55] Nuck: I'm rewriting it from the original CoffeeScript :P [18:56] Nuck: murvin: OMGOMGOMGOMGOMGOMGOMG [18:56] Nuck: ACTION squees himself to death [18:56] devaholic: nuck: just fix my gist :) [18:56] blueadept: marcello3d: you here? [18:56] Nuck: devaholic: Well, they used CS classes, so I'm basically rewriting from scratch using JS [18:57] Nuck: CoffeeScript's wretched compiler decided to inject bullshit into the code [18:57] heavensgate has joined the channel [18:57] murvin: Nuck: I'm waiting for it.. so i can do my huge update. lol [18:57] mikeric has joined the channel [18:58] Nuck: murvin: Waiting for my thing? [18:58] Nuck: ... [18:59] Nuck: "data: { type: String, default: '{}' }, [18:59] Nuck: ACTION facepalms [18:59] Nuck: It serializes the JSON :I [18:59] devaholic: murvin: if you follow my tumblr acct, i'll probably blog about a pub/sub plugin for mongoose sometime soon [18:59] devaholic: http://tomblobaum.tumblr.com/ [18:59] Nuck: While on Mongo [18:59] Nuck: Anyone else think this is a tad silly? [18:59] mynameisbender has joined the channel [19:00] devaholic: the session data needs to be stored as a string, iirc [19:00] Nuck: devaholic: Why? [19:00] Nuck: >_> [19:00] kdng-devrim has joined the channel [19:00] EyePulp has joined the channel [19:00] devaholic: look at your actual sessions in the db for connect-mongo and stuff [19:00] devaholic: conventions, man [19:00] Nuck: devaholic: ah true [19:01] Nuck: devaholic: haha well, with Mongo, it seems pointless [19:01] robotmay has joined the channel [19:01] murvin: devaholic: tahnks. i have bookmarked it. I use mongoose but there are still so many things I haven't explored. I just use find, insert, findOne... udpate.. lol. need to know more advance feature of mongoose [19:01] skiz has joined the channel [19:01] murvin: and I don't like their doc.. so hard to navigate [19:02] mc_greeny has joined the channel [19:02] Nuck: tjholowaychuk: There any problem with storing sessions in Mongo in an object, or should I stick to JSON.stringify? [19:02] skiz has joined the channel [19:02] fattytuna has joined the channel [19:02] tjholowaychuk: Nuck should be fine to omit stringify [19:02] Nuck: Honestly, I'm thinkinf of just moving to Redis for sessions [19:02] Nuck: tjholowaychuk: Cool, I think that's a bit of uneccesary overhead [19:03] tjholowaychuk: yeah redis is IMO a better choice for sessions [19:03] Nuck: tjholowaychuk: I agree, but until it gets clusters, I'm kinda like "ehhhhhh" [19:03] Nuck: For everything [19:03] Nuck: It's not quite to scalability yet :/ [19:03] murvin: tjholowaychuk: agree. [19:04] Nuck: The moment that Redis has clustering, I'll be on that like a fat kid on candy. [19:04] CoverSlide: not sure how necessary it is for clustering session data [19:04] Nuck: Well, I don't feel safe without clustering [19:04] pen_ has joined the channel [19:04] tjholowaychuk: premature scaling? [19:04] tjholowaychuk: is that a thing [19:04] tjholowaychuk: haha [19:04] Nuck: tjholowaychuk: Itis [19:04] Nuck: *it is [19:05] tjholowaychuk: i mean it's good to be safe obviously [19:05] tjholowaychuk: but [19:05] tjholowaychuk: i think you're probably good [19:05] Nuck: tjholowaychuk: I want to pick a tool that will scale when I want it to :P [19:05] Nuck: I'll start small, but lay the groundwork for scaling [19:05] tjholowaychuk: by the time you need it to scale redis will probably have clustering [19:05] Nuck: Since I don't wanna hafta switch databases suddenly [19:05] CoverSlide: yep, start out with max scale you can support, then scale down when those checks start bouncing [19:06] Nuck: tjholowaychuk: haha well, it's already behind schedule ;) [19:06] Nuck: When Redis clustering hits RC I'll believe it :P [19:06] xicubed has joined the channel [19:06] Nuck: I really love the elegance of the Redis cluster plans though [19:06] Nuck: So simple, yet so effective [19:07] CoverSlide: haha: [19:07] CoverSlide: "Salvatore is already hacking on Redis Cluster. By March 2011 we should have some kind of experimental version, while a Release Candidate is not expected until end of summer 2011." [19:07] Nuck: CoverSlide: As I said, behind schedule [19:07] CoverSlide: oh i thought you were talking about your project [19:07] Nuck: CoverSlide: No, we're fine [19:07] Nuck: Redis Clsutering, not so much. [19:08] devaholic: okie ive gotta run out for a while [19:08] tjholowaychuk: not like it's hard to switch to a different session store if you really need to [19:08] Nuck: What I think would be awesome would be a memcached or Redis caching layer between Mongoose and Mongo [19:08] Nuck: tjholowaychuk: well, it's more than sessions for me [19:09] Nuck: I'll probably use Redis for my tag system [19:09] CoverSlide: February 2011, v0.4 [19:09] CoverSlide: Development will continue in unstable v0.5 release. Stable v0.6 [19:09] CoverSlide: release in about 2 to 3 months. [19:09] Nuck: Along with an in-memory cache [19:09] murvin: well.. so happy that my node apps is running on production without any problem..and only use 1% of CPU with constantly few thousands concurrent users. [19:09] petrjanda has joined the channel [19:09] murvin: :) [19:09] Nuck: Internal to each server [19:10] Nuck: murvin: Orly? [19:10] mbrevoort has joined the channel [19:10] murvin: Nuck: Yes.. really. [19:11] murvin: like 1% cpu 2% at most memory [19:11] Nuck: murvin: You're using Node on production tho? [19:11] micrypt has joined the channel [19:11] murvin: actually, may be x 5.. because i have 5 servers. [19:11] murvin: yes. [19:11] Nuck: murvin: Nice! [19:11] murvin: Node on production on a critical application. [19:11] Nuck: criticil? [19:11] Nuck: *critical [19:11] Nuck: howso? [19:11] willwh: murvin: link? :] [19:12] murvin: yes.. handling user info, login..etc [19:12] murvin: :) [19:12] kulor-uk has joined the channel [19:12] Nuck: murvin: Not all *that* critical [19:12] Nuck: Critical would be like life support and patient monitoring or financial transactions [19:12] AvianFlu has joined the channel [19:12] murvin: it is. because if it is down, the entire corporation web will down. [19:12] murvin: and I will out of job. and I will die [19:13] murvin: so, critical [19:13] devongovett has joined the channel [19:13] lz: murvin, so not that critcal? :P [19:13] murvin: I die!!! not critical??? [19:13] murvin: so sad now. [19:13] murvin: :( [19:13] Nuck: murvin: haha [19:14] lz: I'm running node on prod as well [19:14] Nuck: murvin: Better put it under forever, monit, etc. [19:14] murvin: lol [19:14] Nuck: Because it'll go down eventually [19:14] murvin: and tmr, expect to at least triple the traffic.. and I will know how node react under pressure. :) [19:15] lz: niice [19:15] Nuck: murvin: I've got some damn good servers too (I hooked errors in at least 3 different ways at various layers — Express, Node, etc.) but even so, they still crash occasionally [19:15] murvin: and i'm still using 0.4.8. LOL [19:15] Nuck: murvin: What's the request rate? [19:15] Nuck: req/s? [19:15] Nuck: (just an estimate) [19:16] murvin: sigh.. i havne't set my syslog to find it out yet [19:16] Nuck: murvin: :( [19:16] Nuck: murvin: Can you guesstimate? [19:16] lz: nuck, that's my biggest neg so far. need a reliable way to handle errors without crashing [19:16] murvin: let me tail it [19:16] vampi-the-frog has joined the channel [19:16] Nuck: lz: I hook process.on('uncaughtexception'), and I use if (err) return next(err); for async errors within Express. [19:17] heavensgate: nyuck nyuck nyuck [19:17] lz: you said it still crashes sometimes though? [19:17] lz: madness! [19:17] Nuck: lz: I have 4 errors hard-coded as extended Error() objects, 404, 500, 403, and 503 (I think) [19:17] Nuck: lz: Syntax errors and a few others too [19:17] micrypt has joined the channel [19:17] halcyon918 has left the channel [19:18] Nuck: lz: If there's an error on any layer below the top, it *should* be caught and repressed [19:18] murvin: I guess each server handle 50-100 req /s not a lot tho [19:18] mraleph has joined the channel [19:18] gsmcwhirter has joined the channel [19:18] Nuck: Even if my error-emailing fails, I made sure to try... catch that [19:18] Nuck: So it will log to console and continue [19:19] Nuck: lz: I made sure to cover my own ass ;) [19:19] murvin: i just carefully handle exception [19:19] murvin: and use upstart.. so if any problem crash the server, it will alive again [19:19] Nuck: murvin: I'm just trying to figure out a good deployment system [19:19] murvin: how does process.on('uncaughtexception'), work? where shold I put it? [19:19] janiczek has joined the channel [19:19] lz: nuck, hehe. how long did that all take you? [19:19] Nuck: Isn't jitsu open source? [19:19] CoverSlide: it is [19:19] Nuck: lz: It's been an ongoing effort ;P [19:20] CoverSlide: gh/nodejitsu/jitsu [19:20] murvin: I use ant for deployment. that's the part I'm not using node [19:20] CoverSlide: ew [19:20] Nuck: lz: Basically, I started by manually calling my own toErrIsHuman function, which took req, res, and err, then spat out the error to res [19:20] Nuck: Then I found out about next() and now I use that [19:21] Nuck: It's pretty easy, once you know what you're doing [19:21] lz: next() will pass err to the next middleware? [19:21] alekhine has joined the channel [19:22] CoverSlide: next(err) should run the error middleware, no? [19:22] murvin: I find out one kinda error is very tricky. if you fire next on the same spot twice, then you screw. [19:22] Nuck: CoverSlide: Ayup [19:22] Nuck: murvin: I return next() [19:22] Nuck: So it stops running that request right then and there [19:22] Nuck: Before anything else goes to shit [19:23] jhurliman has joined the channel [19:23] Nuck: lz: routes also get the next function as a third argument [19:23] lz: ahh [19:23] Nuck: And you just call it with err to run error middlewares [19:23] lz: useful [19:23] Nuck: lz: Yeah, very [19:24] Nuck: Express is just amazing [19:25] Nuck: tjholowaychuk++ [19:25] v8bot_: Nuck has given a beer to tjholowaychuk. tjholowaychuk now has 6 beers. [19:25] Nuck: Yeah, shut the fuck up Karmalicious. [19:25] Nuck: PMing isn't cool, bro. [19:25] CoverSlide: i think most of the middleware stuff was creationix's [19:25] Nuck: CoverSlide: I think tj rewrote a lot of it actually haha [19:25] pandeiro has joined the channel [19:25] CoverSlide: well I'm sure he did [19:26] Nuck: express itself is the thing I love [19:26] Nuck: Middlewares are epic though [19:26] kimico has joined the channel [19:26] Nuck: And the funny thing was, I'd implemented Middlewares before, I just didn't know that was what they were called [19:26] CoverSlide: yeah I'm using middleware in my socket proxy thingy [19:26] Nuck: I'd done it for my Node.JS deviantART Chat bot [19:27] Isaiah has joined the channel [19:27] Nuck: Which I should absolutely rewrite with my knowledge of scope and middlewares >_> [19:28] Nuck: Is there a more general-purpose Middleware library than Connect? [19:28] Nuck: Because Connect is extremely HTTP-oriented [19:28] unit5 has joined the channel [19:29] tilgovi has joined the channel [19:29] tilgovi has joined the channel [19:30] JaKWaC has joined the channel [19:30] toxico has joined the channel [19:31] CoverSlide: mine is just based on sockets, which is kind of a bitch [19:31] jetienne has joined the channel [19:33] Remoun has joined the channel [19:33] kimico has joined the channel [19:34] MatthewS has joined the channel [19:35] janiczek has left the channel [19:36] context: anyone know a good screencast/article to learn spine.js [19:37] kevwil has joined the channel [19:37] neilk_ has joined the channel [19:38] tlrobinson has joined the channel [19:39] NetRoY has joined the channel [19:39] tmedema has joined the channel [19:39] tmedema: mape_: hi Mape, do you know what may cause an Error: invalid markup with node-scraper? [19:40] tmedema: I'm trying to scrape http://search.aol.com/aol/trends [19:40] lz: context, interesting, first time I heard about spine. Any reason you're using that over backbone? [19:40] mape_: tmedema: not really, you should talk to tmpvar and jsdom [19:41] tmedema: mape_: alright, thanks. By the way I missed a body/source parameter in the scraper callback, is there no such thing? [19:41] tmedema: to get the raw html / text data [19:42] francis_ has joined the channel [19:42] micrypt has joined the channel [19:44] mape_: tmedema: no it just returns the $ object, but check the source, it is really easy so you can probably just take it and modify it [19:44] mape_: like 100loc [19:44] mape_: pretty much a wrapper for request and jsdom+jquery [19:44] cjm has left the channel [19:44] tjholowaychuk has joined the channel [19:45] mikedeboer has joined the channel [19:46] whitman has joined the channel [19:46] CIA-109: libuv: 03Igor Zinkovsky 07master * r4fb120f 10/ (src/win/fs.c test/test-fs.c test/test-list.h): windows: fix error reporting for uv_fs_ functions - http://git.io/IFiDCA [19:49] Aphelion has joined the channel [19:50] kulor-uk has joined the channel [19:50] zmbmartin: I am getting a connection refused error with the mysql package. It was working the other day. Mysql is running fine at localhost 3306. [19:51] zmbmartin: Any ideas as to why? [19:52] metavers_ has joined the channel [19:52] CoverSlide: zmbmartin: is it listening on a specific ip address? [19:53] zmbmartin: CoverSlide: this is all local and I didn't change anything that I can think of. So default localhost should still work. [19:53] robi42 has joined the channel [19:54] xicubed_ has joined the channel [19:55] RaviJK has joined the channel [19:55] CoverSlide: try `sudo lsof -i -P | grep 3306` [19:55] DrMcKay: ryah: ping? [19:56] Lingerance: zmbmartin: It might be trying to use tcp, which MySQL disables by default now (IIRC) [19:56] ryah: DrMcKay: pong [19:56] zmbmartin: CoverSlide: that doesn't give me any output [19:56] Lingerance: If you tell the mysql shell to connect to localhost it'll try connecting to the UNIX socket too. [19:57] fatjonny: murvin: I am a bit late to the party but you might be able to do what you wanted in Mongo with a tailable cursor on a capped collection [19:57] DrMcKay: ryah: https://github.com/joyent/http-parser/blob/master/http_parser.c#L1273-1281 <- why compare sizeof(const char*) with index? [19:57] jedahan has joined the channel [19:58] jedahan has joined the channel [19:58] te-brian2 has joined the channel [19:58] ryah: DrMcKay: becasue it's walking through that string [19:58] italic has joined the channel [19:58] DrMcKay: ryah: uhm, wait, won't sizeof(const char*) give you a size of a pointer? [19:59] DrMcKay: ryah: I mean, didn't you mean strlen? [19:59] CoverSlide: then there's nothing on 3306 [19:59] italic: on nodejs.org, docs/latest/api is still pointing to 0.5.6 [20:00] admc has joined the channel [20:00] zmbmartin: Lingerance: how do I check if it is trying to use tcp and or if it is disabled. [20:00] DrMcKay: ryah: yeah, it behaves exactly like that [20:00] astrolin has joined the channel [20:00] DrMcKay: or wait, no [20:01] zmbmartin: CoverSlide: that is weird. It was working and I can connect to mysql through the terminal [20:01] DrMcKay: huh? I don't get it. [20:01] zmbmartin: plus my config shows 3306 [20:02] DrMcKay: shouldn't sizeof("str") result in sizeof(const char*), which would be architecture dependent? [20:02] Lingerance: zmbmartin: skip-networking [20:02] Lingerance: If that's uncommented comment it. [20:04] zmbmartin: Lingerance: that was it. Thanks a lot. I must have upgraded mysql. [20:04] zmbmartin: CoverSlide: Thanks for the help also. [20:05] stisti has joined the channel [20:05] wbednarski has joined the channel [20:05] mAritz has joined the channel [20:05] astrolin has joined the channel [20:05] isaacs has joined the channel [20:06] jerrysv: any node.js folks on maui? [20:06] tmedema: mape_: did you test your module though? asking because even something simple as https://gist.github.com/1249104 doesn't seem to work [20:08] CoverSlide: one thing I've noticed with jsdom + jquery is that selectors work, but the dom elements themselves aren't jqueryable [20:08] harthur has joined the channel [20:09] murvin: Nuck: just back from lunch. well. one particular situation that you may run into firing next more than one is when doing http.client. if the connection lost or timeout, and you call connect.abort(); actually that abort() function will fire the next() secretly. :) [20:09] maligree has joined the channel [20:09] CoverSlide: so $("div").each(function(){var $this = $(this)}) // $this is empty or gets an error or something [20:10] maligree has joined the channel [20:10] tmedema: CoverSlide: ah, still that shouldn't influence the gist I posted right? [20:11] tmedema: CoverSlide: actually, I overlooked something [20:11] tmedema: thanks for the heads up [20:11] CoverSlide: np [20:12] markdaws has joined the channel [20:13] Nuck: murvin: As I said, I always return next(); and I've yet to see a problem like that [20:13] efoster has joined the channel [20:13] Nuck: And even so, it's caught and supressed :D [20:13] jonrohan has joined the channel [20:13] Hamms has joined the channel [20:13] murvin: :) [20:14] CoverSlide: I don't return next, I tend to be pretty aware of what gets nexted or not [20:14] mike5w3c has joined the channel [20:15] slajax has joined the channel [20:16] thomblake has joined the channel [20:17] thomblake has left the channel [20:17] Nuck: CoverSlide: I just return because I want it to stop right then [20:18] CoverSlide: I do it where necessary [20:18] MUILTFN has joined the channel [20:19] uchuff has joined the channel [20:19] VeXii: is the npm repo down or somthing? keep getting errors for some reason [20:19] adambeynon has joined the channel [20:19] isaacs: VeXii: gist, plz [20:19] isaacs: (no, afaict, it's not down) [20:20] CoverSlide: works for me [20:20] luxigo: isaacs: if you upload several versions of the same package to npm with different dependecies (eg version 0.4 for node <=0.4 , version 0.5 for node <=0.4.6, etc) ... will npm choose the right one depending on your node version or install the latest package anyway ? [20:20] Morkel has joined the channel [20:20] isaacs: luxigo: it filteres based on the "node-version" config option, which defaults to $(node -v) [20:20] VeXii: 2 sek [20:21] CoverSlide: isaacs: it does? [20:21] _kud has joined the channel [20:21] isaacs: CoverSlide: yeah [20:21] isaacs: that's why you can't install express with node 0.5 [20:21] luxigo: isaacs: ty [20:22] robertfw has joined the channel [20:22] VeXii: isaacs https://gist.github.com/1249149 [20:22] CoverSlide: npm install/upgrade fibers won't install on 0.4.x [20:23] RuslanPopov: ppl, how to include github.com/mcantelon/js-yaml/ in my project? [20:25] jedahan has joined the channel [20:25] jedahan has joined the channel [20:25] colinclark has joined the channel [20:25] Hunter has joined the channel [20:25] JJMalina has joined the channel [20:27] isaacs: VeXii: works for me. what does `tar --version` output? [20:27] dreamdust has joined the channel [20:27] isaacs: CoverSlide: yeah, fibers is 0.5 and above only, i think [20:28] CoverSlide: fibers@0.5.1 : engines: { node: '>=0.5.2' }, [20:28] McMAGIC--Copy has joined the channel [20:28] CoverSlide: whoops [20:28] CoverSlide: fibers@0.5.1 : engines: { node: '>=0.3.0' }, [20:29] isaacs: npm ERR! Not compatible with your version of node/npm: fibers@0.6.1 [20:29] isaacs: npm ERR! Required: {"node":">=0.5.2"} [20:29] isaacs: npm ERR! Actual: {"npm":"1.0.30","node":"0.4.12"} [20:29] isaacs: CoverSlide: ^ [20:29] jhbot has joined the channel [20:30] CoverSlide: so in other words, false == `<@isaacs> luxigo: it filteres based on the "node-version" config option, which defaults to $(node -v)` [20:30] VeXii: isaacs runing 1.15.1 [20:31] VeXii: wahh [20:31] jbpros has joined the channel [20:31] isaacs: VeXii: yeah, upgrade that. that's ancient [20:31] siculars: hey gang. anyone care to recommend or speak about their experience using any of the aws s3 modules? [20:31] ryanj has joined the channel [20:31] isaacs: VeXii: you on arch or centos or something? [20:31] VeXii: cent [20:31] jhbot has joined the channel [20:32] isaacs: CoverSlide: it does it for dependencies, not for literal installs on teh cli [20:32] CoverSlide: ic ic [20:32] VeXii: im new to *nix systems [20:32] isaacs: CoverSlide: but, yeah, that's probably something it should od. [20:32] isaacs: *do [20:32] isaacs: maybe fake up the "latest" tag or something. [20:32] sbisbee has joined the channel [20:32] CoverSlide: hmm [20:32] VeXii: ehh anything i need to watch out for when upgrading? [20:32] CoverSlide: not sure if that should be the default behavior [20:33] isaacs: VeXii: tar's pretty straightforward. you can get the sources and such from here: http://www.gnu.org/software/tar/ [20:33] isaacs: VeXii: download it, then `./configure && make && sudo make install` in the sources, or you can use whatever package manager you've got (yum or apt or whatever) [20:33] CoverSlide: does 1.25 have any problems? [20:33] sbisbee: Hey * - I am writing a client that has to hold open thousands of HTTP connections at the same time. What seems to happen is that if I have a bunch of those sockets open and then issue another http.request().end() the request never makes it to the server. [20:33] VeXii: arnt it node i need to upgrade? [20:33] sbisbee: I'm wondering if there is some sort of internal pooling of sockets or other setting that I need to increase. [20:34] isaacs: VeXii: sure, that'd be good. [20:34] gxdssoft has joined the channel [20:35] isaacs: CoverSlide: i'm not sure if it was 1.25 or 1.23 that had the regression with proprietary headers. [20:35] isaacs: CoverSlide: if it's working, then that's fine [20:35] tilgovi: sbisbee: what version of node? [20:35] CoverSlide: how about `Packaged by Cygwin (1.25-1)` [20:36] sbisbee: 0.4.12 [20:36] simenbrekken has joined the channel [20:36] CoverSlide: npm seems to shit itself with that [20:36] sbisbee: tilgovi: I wonder if it has something to do with agent.maxSockets .. never seen that before [20:36] isaacs: CoverSlide: hahahha [20:36] tilgovi: sbisbee: where'd you find that.. it's exactly what I'm looking for [20:36] RuslanPopov: how to compare two files with nodejs? [20:36] isaacs: CoverSlide: yeah. cygwin = pain [20:36] tilgovi: I've seen it too [20:36] sbisbee: tilgovi: googled for 'node maxsockets' and it gave me http://nodejs.org/docs/v0.4.12/api/http.html#agent.maxSockets [20:37] RuslanPopov: I can read both files, but what way to get both events and compare their content? [20:37] CoverSlide: agent.maxSockets defaults to 5 [20:37] isaacs: RuslanPopov: you aren't guaranteed to get the same data events, necessarily [20:37] CoverSlide: and each request only makes a single agent per host [20:38] isaacs: RuslanPopov: ie, one file could come in 10-byte chunks, and the other could come in 20-byte chunks, even if they're the same content. [20:38] sbisbee: tilgovi CoverSlide: so if i'm going to hold open thousands of requests to a single host, I'd have to http.getAgent(host, port).maxAgent = 100000; or whatever? [20:38] isaacs: RuslanPopov: you'd have to keep track of the location, and buffer enough to compare them. [20:38] RuslanPopov: so, what can I do to solve this task? [20:38] luxigo: isaacs: my problem is that binary module .node file location changed since node 0.5.4, so it could be nice if we could upload many versions of the same package and let npm install the right one depending on the package.json engine:node version ... or maybe it would be sufficient to use fs.stat in a script loading the module instead.. dunno.. [20:38] RuslanPopov: they are config files, they are small [20:38] isaacs: RuslanPopov: you get "data" events with chunks on the two fs.ReadStream objects. [20:39] isaacs: RuslanPopov: oh, then just use fs.readFile() on them both, and compare the buffers. [20:39] isaacs: RuslanPopov: if you are 100% certain they're small. [20:39] RuslanPopov: looking for their 'end' events? [20:39] CoverSlide: sbisbee: sounds about right, but I haven't tried it myself [20:39] tilgovi: sbisbee: it looks like you can pass an agent to request() [20:40] tilgovi: so you could create requests with separate agents and thereby work around the pooling being done in the http module [20:40] sbisbee: CoverSlide tilgovi: oooo, or I could pass agent: false to request()'s opts and it'll give me a new agent [20:40] tilgovi: or create one agent and set its maxSockets higher and use it repeatedly [20:40] isaacs: RuslanPopov: var f1, f2; fs.readFile("file1", function (er, data) { if (er) throw er; f1 = data; next() }); fs.readFile("file2", function (er, data) { if (er) throw er; f2 = data; next() }); function next() { if (!f1 || !f2) return; compare(f1, f2) }) [20:40] isaacs: er, remove that trailing ) [20:40] tilgovi: ahhhh [20:40] tilgovi: agent false looks like the way to go [20:40] sbisbee: yeah [20:40] sbisbee: going to give it a shot now [20:41] tilgovi: could be that I'm in the minority, but I feel like false should be the default. [20:41] VeXii: ahh isaacs i love you :D [20:41] RuslanPopov: thanks, going to investigation your code :) [20:41] tilgovi: Seems out of scope for core to deal with such a limit at all [20:41] isaacs: luxigo: if you're installing from a dependency in a package.json file, it *does* filter based on node version. [20:41] isaacs: luxigo: if you have a dep that moved things around, and you need to be aware of that, and it's not setting a "main" module to abstract this out, sorry, you're just gonna have to deal with it. [20:42] jj0hns0n_ has joined the channel [20:42] CoverSlide: well it may be more performant / memory efficient to use agents [20:42] tilgovi: ACTION is now wondering how many benchmarking scripts written with node have been totally inaccurate because it didn't open more than 5 connections at a time [20:42] CoverSlide: usualy for http requests they're not meant to be just left open [20:43] dEPy has joined the channel [20:44] tilgovi: CoverSlide: on the contrary, they usually are meant to be left open, though responses are often short. I think the whole default use of an agent there is partly to make using keep-alive requests transparent [20:45] Hamms has joined the channel [20:45] sbisbee: CoverSlide: default for HTTP/1.1 is to keep the connection alive [20:45] tilgovi: sbisbee: in light of that, I would maybe create one agent and set its max sockets [20:45] luxigo: isaacs: it's just that waf since node 0.5.4 place the binary modules (.node) it builds in another directory [20:45] sbisbee: CoverSlide: default of closing the connection is HTTP/1.0 [20:45] sbisbee: tilgovi: yup [20:45] CoverSlide: pfft [20:45] CoverSlide: HTTP/1.1 [20:45] CoverSlide: who uses that? [20:45] tilgovi: cats. [20:45] sbisbee: tilgovi: going to be interesting when using jason's follow module though. [20:46] tilgovi: sbisbee: ohhh. can you get down low enough with its api to affect that? [20:46] sbisbee: tilgovi: looks like i might be able to, though it's not documented :) [20:46] isaacs: luxigo: publish two versions with different "engines" settings, and appropriate "main" modules. or, have a "main" module that's js and does an fs.statSync to find the right one. [20:46] tilgovi: :) [20:47] isaacs: luxigo: i'd just abandon support for 0.5.0 - 0.5.4 [20:47] isaacs: luxigo: and then assume that the 0.5-compatible one is latest 0.5 [20:47] isaacs: luxigo: really, anyone using unstable versions should be keeping up to date. [20:48] luxigo: isaacs: i'm not the maintainer but he doesnt know how to handle it [20:48] JaKWaC has joined the channel [20:48] sbisbee: tilgovi: zomg that was so the trick [20:48] isaacs: luxigo: you can get the maintainer's email address using `npm owner ls ` and then tell him using email :) [20:48] sbisbee: var httpAgent = http.agent(host, port); httpAgent.maxSockets = 100000; [20:48] sbisbee: DONE [20:49] tilgovi: sbisbee: hi5 [20:49] BrianTheCoder has joined the channel [20:49] JaKWaC has joined the channel [20:49] isaacs: sbisbee, tilgovi: should really make that significantly less than your ulimit -n [20:49] tilgovi: isaacs: I think he's already bumped that [20:49] luxigo: isaacs: i'm enquiring for him, i'll transmit [20:49] tilgovi: but totally agree :) [20:49] sbisbee: isaacs: yeah, ulimit -n is getting big increment :) [20:49] temp02 has joined the channel [20:49] RaviJK has joined the channel [20:50] isaacs: sbisbee: btw, this was the culprit behind: http://dtrace.org/blogs/brendan/2011/09/26/observing-observer-a-cloud-analytics-case-study/ [20:51] Dulak: sbisbee: before you just start putting ridiculous numbers in for tunables you really ought to take the 10 minutes and actually tune it for your actual usage. just sticking high numbers everywhere is likely to bite you on the ass in the future. [20:52] sbisbee: Dulak: Thank you, but this system has to handle the possibility of listening to 100k databases at a time. [20:52] Dulak: sbisbee: I tried to warn you. [20:52] sbisbee: Dulak: Plus all the side asynchronous HTTP requests that react to changes to those databases. [20:52] Dulak: sbisbee: g'luck with that. [20:53] sbisbee: Dulak: but things were falling down at 1k open connections even. Too many requests were getting queued at trying to get shoved down through 5 sockets. [20:55] Dulak: sbisbee: and yet even with a 1000:5 ratio, it was going. So rather than spend 10 minutes to find out the real ratio you need, you just put ridiculous numbers in, and expect it to never be a problem. [20:55] Tobbe: How can this print "undefined" for ghRepos? result.ghRepos = []; console.log("result.ghRepos"); console.log(result.ghRepos); [20:56] sbisbee: Dulak: Oh lord, please don't make comments like that unless you are sitting at my desk, looking over my shoulder, and reading the code that I type. The code I pasted above was to confirm that maxSockets was the problem. [20:56] djcoin has joined the channel [20:56] Tobbe: v8bot_: var foo = {}; foo.bar = []; foo.bar; [20:57] Tobbe: v8bot_: var foo = {}; foo.bar = []; console.log(foo.bar); [20:57] Tobbe: meh [20:58] mrryanjohnston: Tobbe: should be {bar:[]} [20:58] Dulak: sbisbee: I gave you good advice, yer kind of a tool to discount it. Also I'm trying to tell you to think ahead, but yet you want to argue it. G'luck. [20:58] sbisbee: lol [20:58] CIA-109: libuv: 03Igor Zinkovsky 07master * rc9ae7a6 10/ (src/win/fs.c test/test-fs.c): windows: don't strip the trailing slash from filename if it follows a device name - http://git.io/u98oAA [20:58] temp01 has joined the channel [20:59] Renegade001 has joined the channel [20:59] CoverSlide: v8: var result = {}; ;result.ghRepos = []; console.log("result.ghRepos"); console.log(result.ghRepos); [20:59] v8bot_: CoverSlide: CONSOLE: ["result.ghRepos", []], OUTPUT: undefined [20:59] devongovett has joined the channel [21:00] dob_ has joined the channel [21:01] Tobbe: v8: var foo = {}; foo.bar = []; console.log(foo.bar); [21:01] v8bot_: Tobbe: CONSOLE: [[]], OUTPUT: undefined [21:02] RuslanPopov: isaacs, http://dpaste.com/622883/ - is this way right? (my first nodejs code) :) [21:03] Tobbe: v8: var foo = {}; foo.bar = []; console.log(foo.bar); foo.bar.push('baz'); console.log(foo.bar); [21:03] v8bot_: Tobbe: CONSOLE: [["baz"], ["baz"]], OUTPUT: undefined [21:03] isaacs: RuslanPopov: sure, that seems fine. [21:04] RuslanPopov: cool [21:04] TheJH: RuslanPopov, looks like an async library might be good for you [21:04] isaacs: RuslanPopov: i usually try to follow the pattern where cb(er, data, data, data) [21:04] TheJH: !npm view async [21:04] TheJH: meh [21:04] isaacs: RuslanPopov: don't listen to TheJH. write your own flow control library ;) [21:04] isaacs: RuslanPopov: it's the only way anyone learns this stuff :) [21:04] TheJH: !npm show async [21:04] Tobbe: running the code I just asked v8bot to run in node gives me "Cannot call method 'push' of undefined" :( [21:04] RuslanPopov: heh, right now I don't understand what you mean yet :) [21:05] TheJH: !@RuslanPopov npm info async [21:05] jhbot: RuslanPopov, async by Caolan McMahon, version 0.1.10: Higher-order functions and common patterns for asynchronous code [21:05] RuslanPopov: ok, will check [21:05] isaacs: RuslanPopov: i'm suggesting that you write your own "async" rather than use caolan's. then look at his, and realize it's better than the one you wrote, and you'll be able to appreciate it more :) [21:06] RuslanPopov: ok [21:07] CoverSlide: any opinions on async vs seq? [21:07] TheCode has joined the channel [21:08] neilk_ has joined the channel [21:08] level09 has joined the channel [21:08] tylerstalder has joined the channel [21:08] Wizek has joined the channel [21:08] jj0hns0n has joined the channel [21:08] aelien27 has joined the channel [21:09] CoverSlide: I used to use Step for the longest time, until I managed my own flows. Other than that, I haven't tried many libraries/ [21:10] nibblebot has joined the channel [21:11] AvianFlu: I like async, but I haven't used seq [21:11] AvianFlu: I, too, am now at the point of not really using libs though [21:11] TheJH: CoverSlide, async has some really nice stuff, like "auto" - however, I didn't try seq yet [21:11] AvianFlu: not using control flow libs, anyway [21:13] mjijackson has joined the channel [21:13] RuslanPopov: ppl, recommend yaml parser please, https://github.com/visionmedia/js-yaml.git has an error [21:13] Lingerance: Tobbe: Did you install from git? [21:13] Lingerance: If so try something stable. [21:13] siculars: question about expressjs. im currently using app.use(express.bodyParser()) but want to be able to work with uploaded files. so i put in connect-form. does connect-form override bodyParser? I already wrote a bunch of code that points to req.body... [21:14] mhstop has joined the channel [21:14] Tobbe: Lingerance: I found the issue. 'foo' wasn't actually an object, it was a string (a stringified json object). foo = JSON.parse(foo) solved it :) [21:15] Tobbe: I guess a proper debugger would have told me rihgt away :) [21:15] alexh has joined the channel [21:15] shellox: hey [21:15] shellox: i try accessed my mongodb from the interactive shell via mongoose [21:16] shellox: i get connection details if i use mongoose.connection, but how can i execute find() now? [21:16] khismetix has joined the channel [21:20] neilk_ has joined the channel [21:21] zmbmartin has joined the channel [21:21] kulor-uk has joined the channel [21:22] metellus has joined the channel [21:25] khismetix has joined the channel [21:25] te-brian2 has joined the channel [21:27] aelien27 has joined the channel [21:29] navaru has joined the channel [21:29] aguynamedben has joined the channel [21:30] mehlah has joined the channel [21:30] lmorchard has joined the channel [21:30] slajax has joined the channel [21:31] JaKWaC_ has joined the channel [21:31] RuslanPopov: how to catch ENOENT exception [21:32] slifty has joined the channel [21:32] bnoordhuis: RuslanPopov: where/when? [21:32] `3rdEden: Any nodejs buffer ninja's in the house? [21:32] RuslanPopov: or how to know what properties/methods has an exception? [21:33] sbisbee has left the channel [21:33] bnoordhuis: RuslanPopov: util.inspect? [21:33] bnoordhuis: `3rdEden: what's up? [21:33] RuslanPopov: ok [21:33] MooGoo: ninja's arent what they used to be [21:33] `3rdEden: bnoordhuis I was wondering why slowbuffer.slice would return a fast buffer? https://github.com/joyent/node/blob/v0.4/lib/buffer.js#L112-123 [21:33] CoverSlide: they used to be turtles in my day [21:33] MooGoo: ninjas used to flip out and kill you, now they hang out on irc and help people [21:34] `3rdEden: Shouldn't return a new SlowBuffer? [21:34] bnoordhuis: `3rdEden: no, it works like this [21:34] bnoordhuis: fastbuffers are chipped off slowbuffers [21:34] bnoordhuis: that's good because it prevents a lot of unneeded mallocs [21:34] luxigo: CoverSlide: http://www.youtube.com/watch?v=kMsA5zbCRz0&feature=related [21:35] bnoordhuis: err, belay that malloc remark - that doesn't apply in this particular case [21:35] fmeyer has joined the channel [21:35] `3rdEden: Aah then, it make sense thanks bnoordhuis [21:35] nibblebo_ has joined the channel [21:36] CoverSlide: isn't SlowBuffer just one big memory pool for buffers to live? [21:37] saikat has joined the channel [21:38] bnoordhuis: CoverSlide: partially, you can have standalone slowbuffers [21:39] bnoordhuis: CoverSlide: if you use the Buffer::New() c++ api, you get a slowbuffer [21:39] SkaveRat has joined the channel [21:39] RuslanPopov: hmm. can't find fs.copy() [21:39] trotter has joined the channel [21:39] bnoordhuis: RuslanPopov: there is no fs.copy [21:40] RuslanPopov: readFile -> writeFile ? [21:40] temp01 has joined the channel [21:40] bnoordhuis: that there is [21:40] CoverSlide: fs.createReadStream("readFile").pipe(fs.createWriteStream("writeFile")) [21:40] AvianFlu: or fs.createReadStream('file1').pipe(fs.createWriteStream('file2')) [21:40] AvianFlu: lolol [21:40] CoverSlide: ha! [21:40] bnoordhuis: heh, i was about to type that [21:41] AvianFlu: the same second at that [21:41] bnoordhuis: great minds [21:41] RuslanPopov: but if the file2 exists already? [21:42] bnoordhuis: RuslanPopov: createWriteStream will write over it [21:42] RuslanPopov: thanks [21:42] CoverSlide: hmm if you have a lot of big buffers, does the pool never shrink if those buffers get gc'd ? [21:43] ritch has joined the channel [21:44] CoverSlide: actually, make that small buffers [21:44] bnoordhuis: CoverSlide: the buffer objects are views of the one large buffer [21:44] bnoordhuis: so they get gc'd but the big buffer goes on living [21:45] sridatta has joined the channel [21:45] CoverSlide: well I guess that's a good idea [21:48] joeytwiddle has joined the channel [21:48] JaKWaC has joined the channel [21:48] CoverSlide: hmm but because of the pool.used variable, that space won't get used again, and the pool just keeps growing bigger, right? [21:50] Wizek-other has joined the channel [21:50] monokrome has left the channel [21:50] ShonM has joined the channel [21:50] CoverSlide: oh wait, I read that wrong [21:50] ShonM has left the channel [21:50] BrianTheCoder has joined the channel [21:52] CoverSlide: but there's no way to reclaim an old pool's memory after it's been filled and then all the little buffers get gc'd it seems [21:53] zmbmartin has joined the channel [21:54] bnoordhuis: CoverSlide: ? [21:54] sonnym has joined the channel [21:54] nibblebot has joined the channel [21:54] CoverSlide: well, maybe I'm wrong, I usually don't worry about the internals like this [21:55] CoverSlide: yeah nevermind, makes sense now [21:57] Renegade001 has joined the channel [21:57] dominictarr has joined the channel [21:58] isaacs has joined the channel [22:04] dgathright has joined the channel [22:05] isaacs has joined the channel [22:06] RuslanPopov: heh, I have done it [22:07] kriszyp has joined the channel [22:09] donspaulding1 has joined the channel [22:11] RuslanPopov: fs.createReadStream(src).pipe(fs.createWriteStream(dst)) [22:11] AvianFlu: yep [22:11] markwubben has joined the channel [22:12] RuslanPopov: can I store src content into variable? I need to return it as Buffer [22:12] AvianFlu: fs.readFile('file', function (err, data) {} ) [22:12] AvianFlu: data would be the whole file [22:12] BillyBreen has joined the channel [22:13] zmbmartin has joined the channel [22:13] ilikeit has joined the channel [22:15] jtrudeau has joined the channel [22:15] catb0t has joined the channel [22:23] bnoordhuis: v8: Array(8).map(function() { return 42 }) [22:23] v8bot_: bnoordhuis: [undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined] [22:23] bnoordhuis: v8: (new Array(8)).map(function() { return 42 }) [22:23] v8bot_: bnoordhuis: [undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined] [22:23] bnoordhuis: v8: [1,2,3,4,5,6,7,8].map(function() { return 42 }) [22:23] v8bot_: bnoordhuis: [42, 42, 42, 42, 42, 42, 42, 42] [22:23] bnoordhuis: weird innit? [22:23] nibblebo_ has joined the channel [22:24] Country has joined the channel [22:24] RuslanPopov: ppl, how to parse yaml with js-yaml? I did eval on Buffer.toString() but don't understand what to do next [22:25] RuslanPopov: util.inspect shows only '%YAML 1.1' [22:27] mjr_: bnoordhuis: that's not what I see when I run those directly in node repl. [22:27] bnoordhuis: mjr_: no? [22:28] bnoordhuis: it's skipping the undefined values, which seems to be according to spec [22:28] bnoordhuis: it's just... weird [22:29] mjr_: bnoordhuis: https://gist.github.com/1249432 [22:29] mjr_: still skipping them, but less strange [22:29] bnoordhuis: mjr_: i suspect you're using 0.4.x? [22:29] mjr_: or perhaps more strange. [22:29] mjr_: yes [22:29] mjr_: { node: '0.4.12-pre', v8: '3.1.8.26', ares: '1.7.4', ev: '4.4', openssl: '0.9.8r' } [22:30] bnoordhuis: a patch went in recently that changes how arrays are printed in the repl [22:30] jonrohan has joined the channel [22:30] guidocalvano has joined the channel [22:30] bnoordhuis: v8: [undefined, undefined].map(function() { return 42 }) [22:30] v8bot_: bnoordhuis: [42, 42] [22:30] bnoordhuis: gah, i don't get it [22:34] temp01 has joined the channel [22:35] DrMcKay: ryah: in your http_parser, should h_matching_upgrade go first? [22:35] ryah: DrMcKay: go first? [22:35] DrMcKay: ryah: I've filled it with printfs, as a poor man's debugger [22:35] heavysixer has joined the channel [22:36] DrMcKay: and I'm doing logging both when header_state is h_matching_upgrade and h_upgrade [22:36] DrMcKay: and h_matching_upgrade seems to happen before h_upgrade [22:36] ryah: DrMcKay: h_matching_upgrade comes before h_upgrade [22:37] liveink has joined the channel [22:37] DrMcKay: ryah: so h_matching_upgrade is the from the request client issues, right? [22:38] c4milo1 has joined the channel [22:40] ryah: DrMcKay: ? [22:40] ryah: DrMcKay: h_matching_upgrade is the state it's in while it's matching 'upgrade' [22:40] ryah: DrMcKay: what are you trying to do? maybe i can help [22:41] DrMcKay: ryah: we're trying to get node working with newest hybi specifications [22:41] DrMcKay: ah, so these are internal flags [22:41] ryah: hybi? [22:42] TooTallNate: websocket probably [22:42] ryah: DrMcKay: what do you need to change in the http-parser? [22:42] ryah: http-parser doesn't care about what comes after upgrades [22:43] DrMcKay: ryah: problem is that we have no idea what fails [22:43] DrMcKay: ryah: what's your suggestion? [22:43] ryah: DrMcKay: well - what's the problem? are you getting a parse error? [22:43] brianseeders has joined the channel [22:44] nforgerit has joined the channel [22:45] tilgovi has joined the channel [22:45] tilgovi has joined the channel [22:45] socketio\test\84 has joined the channel [22:45] DrMcKay: ryah: we don't receive on upgrade event [22:45] ryah: DrMcKay: well what's the message? [22:45] DrMcKay: ryah: so we suspect that socket just doesn't get upgraded [22:45] Sorella has joined the channel [22:45] cognominal has joined the channel [22:47] ryah: ACTION must start every sentence with "well" when providing support :) [22:47] DrMcKay: lol [22:47] MooGoo: or hmm [22:47] MooGoo: thats a good one [22:48] ryah: DrMcKay: let's see the raw bytes [22:48] ryah: DrMcKay: tcpdump it [22:48] DrMcKay: ryah: sure [22:50] jsj has joined the channel [22:52] socialhack has joined the channel [22:52] davidbanham has joined the channel [22:53] isaacs has joined the channel [22:54] DrMcKay: ryah: tcpdump -w output is fine? [22:54] anveo has joined the channel [22:54] neilk_ has joined the channel [22:54] tizzo-afk has joined the channel [22:55] nibblebot has joined the channel [22:55] anveo has joined the channel [22:56] ryah: DrMcKay: -nXs 0 [22:56] [[zz]] has joined the channel [22:56] tylerstalder has joined the channel [22:57] Sami_ZzZ has joined the channel [22:58] sdwrage has joined the channel [22:59] BenC[UK] has joined the channel [23:00] DrMcKay: ryah: https://gist.github.com/9b06e25963a8f201eef2 [23:00] olivvv has joined the channel [23:00] DrMcKay: ryah: it GETs with upgrade, but never gets a response [23:01] pgherveou has joined the channel [23:01] jbrokc has joined the channel [23:05] aguynamedben has joined the channel [23:06] chance- has joined the channel [23:07] EyePulp has joined the channel [23:09] zeropx has joined the channel [23:10] alexeypro has joined the channel [23:11] _th_n has joined the channel [23:13] RuslanPopov: Nodemailer crashes [23:13] RuslanPopov: how to send email? [23:14] skm has joined the channel [23:14] chance-: those of you using mongoose and express, how are you handling field level error messages on validation? or rather, what's the best approach to that? [23:14] chance-: i mean, it's gotta be easier than what im thinking up [23:15] chance-: it was fine when i had simple models, but now that my form has several nested models, it has gotten a bit complicated and i need to come up with a new approach [23:15] ryah: DrMcKay: oops forgot about you. let me check it out. [23:16] DrMcKay: ryah: :) [23:18] dgathright has joined the channel [23:18] Druide has joined the channel [23:20] ryah: DrMcKay: you don't get an upgrade event? [23:20] sridatta has joined the channel [23:21] ryah: DrMcKay: line 4781 is the upgrade header [23:22] Isaiah has joined the channel [23:22] ryah: i'd be surprised if you didn't get an upgrade event. [23:22] cjheath_ has joined the channel [23:22] metaverse has joined the channel [23:23] DrMcKay: ryah: but that's a GET from client, right? [23:23] DrMcKay: ah, wait... [23:23] ryah: se [23:23] ryah: yes [23:23] secoif has joined the channel [23:24] ryah: GETs are always from the client [23:24] Druide has joined the channel [23:24] yept has joined the channel [23:24] zmbmartin has joined the channel [23:25] DrMcKay: I'm not that stupid :( [23:26] DrMcKay: but no, we don't get an upgrade [23:26] devrim has joined the channel [23:26] ryah: DrMcKay: do you get a parse error? [23:26] DrMcKay: we're looking into our handshake code, but I'm almost sure that it works [23:27] shirro has joined the channel [23:28] ryah: anyway - this doesn't look like a parser problem to me [23:29] DrMcKay: ryah: no, we don't [23:29] DrMcKay: ryah: and thank you :) [23:30] jetienne has joined the channel [23:31] ritch: Does anyone have a sample app that streams video in node? [23:31] tbranyen: ritch: heh i had a demo at one point [23:31] tbranyen: that streamed it to