[00:00] Industrial: hell, you can be set up in under 5 minutes with virtualbox and ubuntu and node [00:00] zeade has joined the channel [00:00] schwab has joined the channel [00:00] Aria: Windows has better asynchronous IO, actually. [00:00] materialdesigner has joined the channel [00:01] benvie: JakeSays: you need python [00:01] funktronic has joined the channel [00:01] AvianFlu has joined the channel [00:01] benvie: and some version of VC++ [00:01] funktronic: i'm looking at docs and i am wondering why the assumption is made that the alternative to event loops is a thread/connection [00:03] fella: Hey, I am trying to install node.js 0.4.8 and as soon as I get to the ./configure step I get "/cygdrive/c/temp/ttbots/node/wscript:232: error: could not configure a cxx compiler!" what can I do? [00:03] funktronic: fella: you need the compiter. [00:03] fella: how do I get that? [00:03] fella: I have Windows 7 [00:03] fella: and Cygwin [00:04] benvie: I recommend you get node 0.6 and dispense with Cygwin [00:04] fella: I'll try that. [00:04] benvie: unless you specifically need to use cygwin for some reason [00:04] benvie: you can get node.exe for windows, native, nothing special needed [00:04] benvie: just runs [00:05] fella: Is there an executable for v0.4.12? [00:05] mynyml has joined the channel [00:05] funktronic has left the channel [00:06] blueadept: hey anyone getting a Segmentation fault if they just enter node command line? [00:07] blueadept: using v0.6 here, when i just enter node, then type anything i get a set fault [00:07] blueadept: seg* [00:07] benvie: node for native windows didn't come around until after 0.5.x [00:08] fella: no wonder... I'd messed the whole thing up in the first place! [00:09] benvie: aye the cygwin node was always kind of touchy as it is [00:09] benvie: and support for it was dropped before 0.6 [00:09] fella: So... will https://github.com/alaingilbert/Turntable-API work with node 5.0.4? [00:10] fella: It says that it will work with 0.4.8 but not 5.0.8 [00:10] benvie: not sure but I would guess if it's not working with 0.6 it will soon [00:10] benvie: because that's the new stable version, just came out [00:10] CrisO has joined the channel [00:11] benvie: and that repo has been updated within the last few hours so the guy is apparently working on it [00:11] CrisO has left the channel [00:11] fella: Has the 0.6 update been pushed to github yet? [00:11] benvie: node does even/odd stable/unstable releases [00:11] benvie: so a lot of stuff wasn't updated for 0.5.x due to it being the unstable branch [00:11] devaholic has joined the channel [00:12] benvie: and now that 0.6 is out a lot of stuff is being rapidfire updated [00:12] benvie: yeah 0.6.0 was released within the last day [00:13] akihito_s has joined the channel [00:13] sirdancealot has joined the channel [00:13] fella: How can I download 0.6.0? [00:14] teadict: clone it? [00:14] benvie: http://nodejs.org/dist/latest/ [00:14] benvie: for the binary [00:14] teadict: http://nodejs.org/dist/latest/ [00:14] teadict: oh [00:14] JakeSays: benvie: python for what? [00:14] Aria: To build it. [00:15] Aria: If you have some magical build system that doesn't have hairy dependencies, actually works, and can build V8 too, and doesn't suck in some new and unknown way, speak up. [00:15] benvie: aye python and vc++ are the build requirements on windows [00:15] benvie: I think that's it [00:15] JakeSays: oh. for gyp. right. i build chromium so i already have the deps [00:15] benvie: if you build chromium then you're good to go [00:15] benvie: that's way more a pain in the ass [00:16] Aria: Yeah. [00:16] JakeSays: to build chromium? nah. piece of cake. [00:16] JakeSays: i build it weekly. [00:16] benvie: well comparatively. I mean node is insanely easy to build [00:16] killfill has joined the channel [00:16] JakeSays: yes. true. [00:17] benvie: in that it magically just seems to work for me without fail. Not so with chromium although not an issue now that I have my shit set up [00:17] benvie: just took a bit of doing to get there [00:17] fella: Now I'm stuck. I can't seem to install https://github.com/alaingilbert/Turntable-API (I am used to Cygwin---you can call me a fail) [00:17] JakeSays: hmm. i wonder how hard it'd be to create a Canvas module based on skia instead of cairo [00:18] benvie: not sure what layer chromium uses in between the two and how tightly woven it is, but I'd guess you'd want whatever that is to do the work for you if you can extract it [00:18] kersny has joined the channel [00:18] fella: never mind. got it! [00:18] HardPhuc has joined the channel [00:18] benvie: specifically for the canvas stuff [00:19] secoif has joined the channel [00:19] benvie: I know for the rest of the webview rendering I wouldn't even try to extricate it [00:19] jaequery has joined the channel [00:19] JakeSays: yeah [00:20] benvie: but there may be some thinner wrapper for canvas or something that's easier to get at [00:20] isaacs: SubStack: hey [00:20] isaacs: SubStack: what don't you like about the engines field? [00:21] TheJH: isaacs, ah, you're here - did you allow node 0.6 yet? [00:21] isaacs: yeah [00:21] TheJH: :) [00:21] benvie: I'd been playing around with chromium embedded frame as a module for node for cross platform gui, so have gotten relatively intimate with the chromium source tree [00:22] isaacs: i AM thinking about some sort of special-case where "node": "0.5" is shoehorned into "0.5 || 0.6" [00:22] isaacs: but that's really kind of a weird idea [00:23] killfill has joined the channel [00:24] swaj: doh, node-discount and markdown-js are both broken in node 0.6. Anybody know of a markdown parser that works in node 0.6? :) [00:26] davidascher has joined the channel [00:26] dharmesh has joined the channel [00:26] jesusabdullah: isaacs: This is why the engines field is broken: http://jesusabdullah.github.com/2011/11/05/engines.html [00:26] jesusabdullah: I'm too lazy to re-type it all, is the only reason I'm linking my own blog [00:27] jesusabdullah: <_<; [00:27] isaacs: jesusabdullah: i just read that [00:27] isaacs: jesusabdullah: "Some dude is using a super old version of npm, and it didn't work, therefor metadata is bad." [00:27] isaacs: ACTION confused [00:28] idefine has left the channel [00:28] isaacs: swaj: npm install github-flavored-markdown [00:28] isaacs: swaj: no support for ``` yet. [00:28] scottschecter has joined the channel [00:30] isaacs: jesusabdullah: also: [00:30] isaacs: $ npm install sendgrid-web --node-version 0.4.9 [00:30] isaacs: sendgrid-web@0.0.0 ./node_modules/sendgrid-web [00:30] killfill has joined the channel [00:31] JasonJS has joined the channel [00:31] jbrokc has joined the channel [00:31] jldbasa has joined the channel [00:31] delimax has joined the channel [00:32] swaj: oh yay, thanks isaacs... thanks also for updating npm :P I had to hack the package.json earlier [00:32] isaacs: jesusabdullah: regarding your three suggestions: 1) totally fine. "node":"*" is acceptable, as is just omitting it. Like most package.json fields, it's optional. 2) problematic. can easily result in versions of packages that don't and can never work together properly. 3) nave, nvm, n, etc. [00:32] akihito_s has joined the channel [00:32] coreb: when I npm install something, why isn't it added as a dep in package.json? [00:32] isaacs: coreb: --save or -S [00:32] isaacs: coreb: -S is shorthand for --save [00:33] isaacs: coreb: install with --dev --save to save to devDependencies instead [00:33] isaacs: jesusabdullah: i think perhaps the problem is that the default in npm init is too restrictive. [00:33] isaacs: jesusabdullah: maybe it'd be better to just not have one, or use >= instead of ~ [00:34] tcurdt has joined the channel [00:34] coreb: isaacs: great, could've thought you wrote it yourself ;) [00:34] isaacs: coreb: :) [00:35] JakeSays: out of curiosity what is npm? [00:35] coreb: node package manager [00:35] JakeSays: ah [00:35] coreb: like apt-get for node.js [00:35] coreb: or yum if you please [00:35] isaacs: more like bundler or cpan or pear [00:35] isaacs: but yeah [00:36] isaacs: it has some yummy apt qualities as well. [00:36] jesusabdullah: isaacs: I think that would go a long way [00:36] Aria: And yet deliciously different. [00:37] jesusabdullah: I did not like rubygems when I tried it [00:37] jesusabdullah: everything seemed really broken [00:38] coreb: pip for python is ok [00:38] coreb: easy_install has no remove :s [00:38] killfill has joined the channel [00:38] isaacs: coreb: i always felt like easy_install makes a promise it can't really keep. [00:38] Aria: rubygems is horribly broken [00:38] Aria: Anything that needs that much runtime support is doing it wrong. [00:38] devongovett has joined the channel [00:38] isaacs: Aria: what do you mean by "runtime support?" [00:39] isaacs: Aria: i mean, we did basically rewrite node's module system to support npm's needs ;) [00:39] Aria: Rubygems has the 'gem' command, and the whole concept of 'activation' [00:39] Aria: er, not command, but method. [00:39] isaacs: yeah, it's npm 0.x style [00:39] Aria: It's not conceptually light. At ALL. [00:39] isaacs: but you have to require 'rubygems' [00:39] Aria: Yeah. [00:39] Aria: They didn't even TRY. [00:39] Aria: And then bundler takes that and adds more runtime code to override THAT. [00:40] isaacs: the best car in the world won't get you where you want to go if you point it in the wrong direction. [00:40] Aria: Yeah. [00:40] Aria: So now you need to understand ruby's original require, gems and their quirks, AND bundler's hacks. [00:40] jesusabdullah: Aria: [00:40] jesusabdullah: That's what I suspected [00:40] jesusabdullah: blegh [00:41] jesusabdullah: pip does its job from the userside [00:41] Aria: Where npm? It's got such lovely simple rules, and as long as you're not needing things like library A's copy of foo and library B's copy of foo to share objects, it works great. [00:41] jesusabdullah: but bundling could be better [00:41] SubStack: isaacs: engines are annoying because they aren't libraries but the semver strings look the same [00:41] Aria: And even then, only some libraries will be insane, and Javascript lends itself so well to making plain old data objects the norm, it's not a problem in practice. [00:41] dgathright has joined the channel [00:41] SubStack: so people tend to needlessly break packages by being overly narrow [00:42] isaacs: SubStack: yeah, i hear that. [00:42] tilgovi has joined the channel [00:42] tilgovi has joined the channel [00:42] SubStack: and I don't see any way with npm to tell it "fuck you install it anyways" [00:42] jesusabdullah: It *should* use semvers [00:42] isaacs: SubStack: no, you have to give npm a version to pretend to be. [00:42] jesusabdullah: that's what they're for [00:42] boltR has joined the channel [00:42] isaacs: SubStack: and the fact that they're semvers, i mean, that's just a version vector. it's a good pattern. [00:42] jesusabdullah: agree [00:42] isaacs: SubStack: maybe npm init should just not provide a default. [00:42] isaacs: i mean, node's api isn't changing THAT fast, right? [00:42] SubStack: could you make --force just pretend to be the upper bound? [00:43] esundahl_ has joined the channel [00:43] isaacs: SubStack: ok, so, let's say you have two libs, A and B. Both have a variety of versions available, which work with a variety of deps, and a variety of node versions. [00:43] jon__ has joined the channel [00:43] SubStack: or just disable the engine check entirely [00:43] isaacs: if A@latest works with node@latest, but b@latest doesn't, then you could easily end up in a situation where you have two things that can't work together [00:43] SubStack: or turn it into a warning [00:44] jon__: How do I install npm into node 0.6.0 in Windows? [00:44] Aria: Warnings ++ with force. [00:44] isaacs: engine is the third dimension of dependency hell [00:44] SubStack: but you can just as easily run into false positive territory [00:44] boltR has joined the channel [00:44] SubStack: in fact that seems to be far more common than a false negative [00:44] paul__ has joined the channel [00:44] isaacs: i think making init default to using >= rather than ~ would solve your issue. [00:44] SubStack: we learn about it whenever the node minor gets bumped [00:44] jon2: How do I install npm into node 0.6.0 in Windows? [00:44] coreb: jon2: download the exe-file? [00:45] SubStack: isaacs: but people still do things like 0.4.x themselves [00:45] jesusabdullah: npm on windows has an exe now? [00:45] isaacs: jon2: follow the instructions here: http://npmjs.org/doc/README.html#Installing-on-Windows-Experimental [00:45] Aria: >= ++ [00:45] isaacs: SubStack: if your thing uses require.paths, then you *should* do that [00:45] jesusabdullah: SubStack: Then that's their perogative. I think changing the default would go a long way [00:45] SubStack: what if A does 0.4.x and B does 0.5.x but it doesn't even matter because they will both work [00:45] jesusabdullah: >= ++ [00:45] isaacs: we did make some seriously breaking changes in 0.5 [00:45] isaacs: things that actually throw and crash your server and shit [00:45] SubStack: isaacs: yes but a way to switch off engine checking altogether would be ideal here [00:46] SubStack: consider the user perspective [00:46] Aria: Yeah. "Fuckit, install it, I'll hand-edit some stuff and see if I can make it work" [00:46] SubStack: when I install a package I don't care about node versions I just want it to work and it probably does work it was just the author being overly restrictive with engine versions [00:47] SubStack: there should be a --fucking-install-this-already so people don't have to modify package.jsons by hand [00:47] TheJH: SubStack++ [00:47] catb0t: SubStack now has 1 beer [00:47] plutoniix has joined the channel [00:47] scott_gonzalez has joined the channel [00:47] dharmesh_ has joined the channel [00:47] SubStack: that would just disable the engine checking altogether [00:48] SubStack: because engine checking has way too many false positives [00:48] TheJH: SubStack, there is a switch to dummy the node version [00:48] SubStack: TheJH: doesn't always work and why should I have to figure out what node version I need to be? [00:48] TheJH: SubStack, right [00:48] SubStack: also that doesn't work for the case of A has 0.4.x and B has 0.5.x [00:49] SubStack: because there is no version I could pretend to be that satisfies the constraint [00:49] SubStack: even though they probably just work [00:49] SubStack: and some author was just being annoying [00:49] Aria: (I'd be okay with completely disabling all dependency checking if you --force-deps) [00:49] isaacs: SubStack: how about --node-version null [00:50] SubStack: could work [00:50] alexdoom has joined the channel [00:50] coreb: many node users have migrated from ruby, right? [00:50] jesusabdullah: Not me [00:50] jesusabdullah: I came from matlab and python [00:50] SubStack: isaacs: a shorthand for that would be nice too maybe but that's good [00:50] killfill has joined the channel [00:50] Aria: I did. But I was already fickle on Ruby because of Rubygems and rubygems mentality, actually. [00:50] isaacs: SubStack: --no-node-version also works [00:51] isaacs: SubStack: or rather, it used to, before it broke. [00:51] Aria: (and Rails -- "here, let's modify the core" and "let's make everything a soup of dependencies.") [00:51] isaacs: ACTION fixing it now [00:51] jesusabdullah: woot [00:51] SubStack: \o/ [00:52] SubStack: coreb: before node I was mostly doing haskell [00:52] isaacs: i'm going to try doing that automatically when --force is set, but it's going to be a separate commit, because i fear needing to revert it [00:52] SubStack: seems prudent [00:52] coreb: so two exceptions in SubStack and jesusabdullah, everyone else did [00:52] SubStack: --force seems like the obvious thing you would try when an engine version fails and you're like "well fuck it" [00:53] AvianFlu: I've never written a line of ruby [00:53] Aria: Yeah. [00:53] coreb: neither have I [00:53] jesusabdullah: coreb: A lot of people came from python and client-side javascript [00:53] coreb: so four exceptions [00:53] jesusabdullah: and perl [00:53] SubStack: coreb: I wrote a lot of ruby too. And python. And perl. [00:54] SubStack: and client side javascript [00:54] coreb: why so many similar script languages? [00:54] SubStack: and some c++ which was horrible [00:54] AvianFlu: perl ftw! [00:54] jesusabdullah: What's more interesting is to ask what people were building before and after node I think [00:54] SubStack: yes [00:54] jesusabdullah: I was doing numerical modeling [00:55] jesusabdullah: and measurement/analysis [00:55] isaacs: SubStack, jesusabdullah: top two are for you guys https://github.com/isaacs/npm/commits [00:55] SubStack: hooray [00:55] isaacs: 1.0.105 will have it, if i don't get scared and change my mind. [00:55] isaacs: :) [00:55] Aria: I did a lot of perl, php, c, too. [00:55] Aria: And Vala. [00:55] Aria: And ObjC. [00:55] AvianFlu: cfml anybody? XD [00:56] Aria: Oh god. [00:56] killfill has joined the channel [00:56] Aria: You poor, poor dear. [00:56] jesusabdullah: I did some excel macros once [00:56] AvianFlu: man oh man, do I not miss being that close to the jvm [00:56] jesusabdullah: We wanted to generate views of some excel sheets [00:56] jesusabdullah: basically [00:56] jesusabdullah: so I wrote a bunch of shit to help transform the data to be organized by test to be organized by homeowner [00:56] jesusabdullah: I remember it was hacky and bad [00:57] chrixian has joined the channel [00:57] jesusabdullah: and hard to learn [00:57] swaj: I'm loving the new cluster feature :) [00:58] SubStack: imagine if excel moved to a couch backend [00:58] jesusabdullah: I have. [00:58] jesusabdullah: or, at least, tools to import/export from couch [00:59] jesusabdullah: the use of datacouch and couch libraries to handle measurements/data entry/etc [00:59] jesusabdullah: it would be awesome [00:59] SubStack: excel macro running on a server farm with autoscaling [00:59] pquerna: you mean pig? [00:59] isaacs: jesusabdullah: i think maxogden has done somse stuff like that. [00:59] TheJH: pquerna, what is it? [00:59] pquerna: http://pig.apache.org/ [01:00] pquerna: 'easy' way to do hadoop/map reduce things [01:00] MooGoo: is there any v8 API documentation out there that is not woefully out of date and incomplete? [01:00] TheJH: MooGoo, :D [01:00] pquerna: MooGoo: the v8.h header itself is normally up to date.... [01:00] MooGoo: lol [01:00] pquerna: is there something specifically you are looking for info abotu? [01:01] Aria: I usually refer to the v8 doxygen docs that isaacs has on his site. [01:01] Aria: No idea how up to date those are. They work for me. [01:01] coreb: visual basic was an odd language [01:01] Aria: Several of them, actually, coreb. [01:01] isaacs: Aria: thanks for reminding me, i should update them. [01:01] MooGoo: occasionly while haxing away at v8, I notice some seemingly useful class being used, with no docs of even its existence [01:01] lukemelia has joined the channel [01:01] MooGoo: this happens often [01:01] isaacs: MooGoo: http://izs.me/v8-docs/ [01:01] coreb: qbasic [01:02] isaacs: MooGoo: i build those by running doxygen on the v8 source that node uses. [01:02] killfill has joined the channel [01:03] MooGoo: what version of v8 does node use [01:03] MooGoo: or branch [01:03] MooGoo: or something.. [01:03] pquerna: node 0.6 uses 3.6 [01:03] jbrokc has joined the channel [01:04] a_meteorite has joined the channel [01:04] isaacs: updated [01:04] parshap has joined the channel [01:07] JakeSays: how recent is 3.6? [01:07] kitt has joined the channel [01:07] kitt has joined the channel [01:09] JakeSays: hmm. whats node-waf? [01:09] Wizek__ has joined the channel [01:09] schwab has joined the channel [01:09] jon2: Hey, when I am installinh npm I put in '$ node cli.js install npm -gf' and I get 'sh.exe": node: command not found' Did I mess up? [01:10] Aria: Sounds like you need node in your path. [01:10] Aria: JakeSays: node's copy of the waf build system. It sucks, but it's what node uses for now. [01:10] broofa has joined the channel [01:10] isaacs: jon2: yeah, you need node in your path, or need to do c:\path\to\node.exe cli.js install npm -gf [01:10] jon2: okay [01:10] JakeSays: Aria: so it comes with node? (i'm trying to build a module/addon) [01:11] Aria: Yeah. [01:11] JakeSays: ah its python? [01:11] Aria: Yeah. [01:11] SargoDarya: Small question: One user starts a transaction to another user. The transaction takes 25 seconds. Is there any way to do something like a setTimeout in node which could do that? [01:12] Aria: Not python 3 compatible, either, I don't think [01:12] Aria: SargoDarya: What does a timeout have to do with a transaction? [01:12] SargoDarya: One user sends money to another user [01:12] JakeSays: so how do i invoke it? [01:13] Aria: node-waf configure [01:13] Aria: node-waf build [01:13] Aria: node-waf install [01:13] KevinT has left the channel [01:13] killfill has joined the channel [01:14] JakeSays: uh.. [01:14] JakeSays: do i need to install it or something? [01:14] Aria: It should be installed with node. Node sure 0.6 does that, though. I'll have to check. [01:15] JakeSays: i didnt install node. i built it. [01:15] Aria: Oh. Well, then, yes. [01:15] Aria: make install ;-) [01:16] SargoDarya: no idea? [01:16] JakeSays: i'm on windows.. usually make install isnt a windows thing [01:16] chrislorenz has joined the channel [01:16] Aria: SargoDarya: Not sure what you're asking. I know what a transaction is -- there's several things -- not sure what this has to do with setTimeout. [01:16] Aria: Yeah. Then ... I have no idea! Build system on windows is still work in progress, as the docs say. [01:17] JakeSays: ACTION sighs [01:17] JakeSays: ok so i need to build this module by hand then [01:17] jon2: Now that I got npm installed, how do I install a package? [01:17] r04r has joined the channel [01:17] r04r has joined the channel [01:17] isaacs: jon2: npm help install [01:18] skampy has joined the channel [01:19] poincare101 has joined the channel [01:19] JakeSays: lol i get the impression from looking at the waf source that there is no windows support [01:19] jon2: I opened up npm.cmd, npm_g.cmd and npm-g.cmd yet they closed... odd. And I typed in "npm help install" into node.exe. I am confused. [01:19] JakeSays: at least no vc support [01:19] killfill has joined the channel [01:19] blup has joined the channel [01:20] Aria: Yeah. That's the problem. [01:20] TheJH: JakeSays, there's currently no official way to build native extensions on windows, but I think I read something about that it works with some effort or so [01:20] Aria: jon2: try using the commandline. Open cmd.exe and type "npm help install" [01:20] SargoDarya: Aria: It's not a transaction in the traditional sense. I'm building a game where one user can send money to another user (transaction). Depending on the amount the user is sending it takes either more or less time until it's banked on the other users account. [01:21] Aria: SargoDarya: Okay, and? [01:21] gavin_huang has joined the channel [01:21] SargoDarya: I now want to do something like: setTimeout(20000, giveFundsToUser); [01:21] jon2: But then I get: 'npm' is not recognized as an internal or external command, operable program or batch file. [01:21] JakeSays: TheJH: maybe i can just build this module directly in to node [01:22] jon2: wait-- [01:22] isaacs: jon2: npm.cmd and node.exe are sitting in a folder, yes? [01:22] TheJH: JakeSays, I think I also read about people doing that [01:22] isaacs: jon2: add that folder to your PATH environment variable. [01:22] cognominal_ has joined the channel [01:22] isaacs: jon2: http://npmjs.org/doc/README.html#Installing-on-Windows-Experimental [01:22] isaacs: jon2: please do all 4 steps. [01:23] jon2: Okay [01:23] isaacs: jon2: i know step 2 says "optional". it is optional. but you must understand the option before you can reasonably decide whether or not to do it. [01:23] kuebk^ has joined the channel [01:23] isaacs: This: "If you decide not to update the PATH, and put the node.exe file in C:\node\node.exe, then the npm executable will end up C:\node\npm.cmd, and you'll have to type C:\node\npm to use it." [01:23] isaacs: http://npmjs.org/doc/README.html#Step-2-optional-Update-the-PATH-environment-variable [01:24] gnik has joined the channel [01:24] JakeSays: TheJH: do you know where you read about it? [01:26] TheJH: JakeSays, only think I can remember of where I read it is http://blog.nodejs.org/2011/11/05/node-v0-6-0/ : "For example, we are not yet providing users with a blessed path for building addon modules in MS Visual Studio. Work will continue in later releases." [01:26] TheJH: *thing [01:26] killfill has joined the channel [01:26] TheJH: JakeSays, try searching the mailing list [01:26] TheJH: JakeSays, (and posting if you find nothing) [01:28] ryan[WIN] has joined the channel [01:29] jon2: yay, npm WORKS! Thanks! :) [01:29] paul__: anyone know how i can retrieve a session from session id through connect-mongodb like the .get method does in its code? https://github.com/masylum/connect-mongodb/blob/master/lib/connect-mongodb.js [01:29] isaacs: jon2: hooray!! [01:29] isaacs: \o/ [01:30] paul__: i'd like to be able to do something like this mongoStore.get(sid, function(err, sess) where mongoStore = require('connect-mongodb') [01:31] tilgovi: hey. I'm wondering about how the cluster module manages to share listening sockets. Does it delay the process forking until http.Server() or listen() is called? Can you share multiple litening sockets in each worker or are we limited to one? [01:31] adrianF has joined the channel [01:31] Paul___ has joined the channel [01:32] mikl has joined the channel [01:34] isaacs: SubStack: holy shit, dude, you weren't kidding. mkdirp is absurdly small. [01:35] SargoDarya: whats mkdirp? [01:35] isaacs: SargoDarya: it's like mkdir -p [01:35] SargoDarya: oh, ok [01:36] skampy has left the channel [01:36] SargoDarya: is there a possibility to create something like a cronjob in node which executes a command every second? [01:37] tilgovi: SargoDarya: setInterval? [01:37] paul__: setTimeout? [01:37] SargoDarya: setInterval really exists in node.js? [01:37] isaacs: SargoDarya: setInterval(doSomething, 1000) [01:37] isaacs: yes [01:37] isaacs: it's a global [01:37] SargoDarya: thats. fucking. sweet. Thanks guy [01:37] SargoDarya: s [01:38] davidbanham has joined the channel [01:38] killfill has joined the channel [01:40] jon2: So what happens when I install a node package with npm? Is a folder supposed to show up in node_modules or what? [01:40] isaacs: jon2: npm help folders <-- that'll tell you what goes where [01:42] benvie: Re: above convo, pretty sure windows native modules are broken in 0.6.0, still trying to determine if it's something on my end [01:42] benvie: but it seems to be working with my 0.5.11 binary no problem and not in 0.6.0 so I think it's not me [01:42] jon2: How do I run a node package, then? (I have used v0.4.8 before but I'm new to 0.6.0) [01:43] benvie: well most aren't native so it's not an issue [01:43] benvie: unless you need one that is, in which case few/none have been ported to windows yet anyway [01:43] captain_morgan has joined the channel [01:45] bnoordhuis has joined the channel [01:45] skunkape has joined the channel [01:46] paul__: does anyone know how i can manually get a session for connect/express? i see there's a .get method in connect-mongo(db) but I don't know how to access it. [01:47] echoSMILE has joined the channel [01:47] Aria: jon2: what package? You don't generally run 'a package', you run an application's entry point. [01:49] k1ttty has joined the channel [01:49] slloyd_air has joined the channel [01:50] benvie: oh shit [01:50] benvie: the name of the node binary matters on windows when trying to require a native module [01:51] alexdoom has joined the channel [01:51] benvie: wow [01:52] paul__: benvie++ [01:52] catb0t: benvie now has 1 beer [01:52] benvie: that cost me way too many hours of my life =( [01:53] benvie: nodex.exe poor idea [01:54] paul__: benvie: suggestions of alternatives? [01:54] benvie: wait what question? the mongo thing? [01:54] paul__: no, about nodex.exe? [01:55] benvie: oh, you need to keep node named node.exe if you wish to require a native module [01:55] benvie: a .node file [01:55] paul__: oh i see [01:55] Aria: Oh weird. [01:55] benvie: or else windows won't be able to resolve it, assuming you originally linked against "node" [01:55] Aria: Heh. Gah. [01:55] benvie: it errors out with error 126, unknown module or something [01:55] benvie: which I thought was referring to my module, but it was referring to node itself [01:56] benvie: I had node changed to nodex.exe because I have node.cmd which adds some flags [01:56] benvie: just to make sure it always runs with those flags [01:56] Aria: Heh. Fun. [01:57] Aria: (what sort of flags?) [01:57] markatto has joined the channel [01:57] benvie: harmony proxies and weakmaps [01:57] benvie: I'm not sure of a better way to run with those included without some node relaunching dance party [01:58] benvie: you can't define it on a v8 instance after it's initialized so you need to have them set up front one way or another. That was the easiest way [01:59] Marak has joined the channel [02:00] TheFuzzball has joined the channel [02:01] paul__: all: re connect sessions thing, never mind, figured it out [02:03] htoothrot: benvie, i'm surprised there no other way to set those options [02:04] benvie: they're still experimental v8 flags and you have to pass them to v8 when it's being initialized [02:05] htoothrot: i meant like env vars or similar [02:05] benvie: oh good idea, let me check [02:05] JasonSmith: isaacs: I think I changed my user doc in the NPM repo. Now I get a lot of errors that I am not a maintainer. So I am going into my package docs in Futon and just adding another maintainer to the array, {"name":"jhs", "email":"jhs@iriscouch.com"}. Is that playing with fire? [02:05] JasonSmith: (a lot of packages have the old @couchone.com address) [02:06] isaacs: JasonSmith: nah, it's fine [02:06] jarek has joined the channel [02:06] jarek has joined the channel [02:07] JasonSmith: love it [02:07] JasonSmith: People hate on Futon but it's awesome [02:07] blueadept: hey anyone know why WD 1tb hard drives jumped in price? http://www.newegg.com/Product/Product.aspx?Item=N82E16822136284 [02:07] blueadept: they used to be $80, but i'm seeing its home up to about $220 [02:07] JasonSmith: blueadept: Yeah, it's because everyone around me is ass-deep in water [02:07] blueadept: oh snap [02:07] blueadept: thats right [02:08] blueadept: they make all their drives in thailand [02:08] JasonSmith: Central Thailand represents like 20% of the entire HD manufacturing industry [02:08] shipit has joined the channel [02:09] JasonSmith: It bums me out but then Node 0.6 came out so I'm feeling pretty okay [02:10] gaarf has joined the channel [02:11] blueadept: there's always an upside [02:12] jon2: Is there a beginner's guide for node and npm? I already know how to use both but the newer version is a bit confusing... [02:15] jon2: ... [02:15] dthompso99 has left the channel [02:15] jnbek: has some one wrote a definitive guide book for node.js ? [02:15] benvie: http://toolbox.no.de [02:15] benvie: has some links [02:16] benvie: left side, [02:16] jnbek: you know, like the Rhino Javascript book or The Camel Perl book [02:17] benvie: not seeing anything in the node startup that looks at env for extra params or something. I can just move the exe to another folder and have the cmd reference it, no big deal [02:17] jnbek: thanks benvie [02:18] benvie: no prob, also that's for jon2 [02:18] stagas has joined the channel [02:18] benvie: helps both of you [02:19] scottschecter has joined the channel [02:20] skm has joined the channel [02:20] isaacs: JasonSmith: hey... so... just noticed your tweet about tailing to log file. [02:21] isaacs: JasonSmith: i think maybe we should start looking at parsing that thing [02:21] lyle has joined the channel [02:21] isaacs: if only to put some analytics and stuff into a private db or something [02:25] ryanfitz has joined the channel [02:26] lyle: anybody running node.js on heroku? [02:26] jon2: no. [02:26] jon2: I run facebook apps on heroku, though [02:26] lyle: i'm trying to get a node.js app setup on heroku cedar stack, but it can never seem to bind to the port. i'm using process.env.PORT, for instance it just tried 42109, but i always get EACCESS permission denied on Server._doListen (net.js:1098:5) [02:27] lyle: here's my server: https://gist.github.com/1342370 [02:27] gregpascale has joined the channel [02:27] Jay has joined the channel [02:28] stagas has joined the channel [02:28] coreb: is there a maintained alternative to the nice datejs? [02:28] Lingerance: Why do you need maintenance? [02:28] Lingerance: +for something like that* [02:28] xtianw has joined the channel [02:30] benvie: http://toolbox.no.de/search?q=date [02:30] davidascher has joined the channel [02:31] benvie: I used "moment" recently for natural language formatting of "time since" [02:31] benvie: like "6 hours ago" etc. [02:32] bnoordhuis: lyle: but the call to .listen() on a separate line [02:32] Mortchek has joined the channel [02:32] bnoordhuis: lyle: .listen() doesn't return anything so var server == undefined [02:32] Mortchek: Where do we report bugs? [02:33] jocafa has joined the channel [02:33] bnoordhuis: Mortchek: https://github.com/joyent/node/issues - but first please check if your issue hasn't been reported already [02:33] Mortchek: bnoordhuis, thanks. [02:34] coreb: benvie: moment looks alive, thanks [02:35] chrisumbel has joined the channel [02:35] benvie: aye I tend to look for recently active stuff, though that's not always a necessity. Date stuff does happen to be relatively resistant to aging but still [02:35] benvie: general formatting [02:41] dgathright has joined the channel [02:41] deedubs has joined the channel [02:43] stagas has joined the channel [02:43] tomlion has joined the channel [02:46] devaholic: does less work with 0.6.0 [02:46] paul__: devaholic: apparently not https://github.com/cloudhead/less.js/issues/448 [02:47] devaholic: oh hey paul__, just replied to your issue [02:47] paul__: hehe hi there. :) [02:47] soapyillusions has joined the channel [02:48] devaholic: im not sure what the problem is with that one... [02:48] devaholic: i'll double check all the versions, but I think mine are the same... [02:49] devaholic: i would really like to know why that is happening, though [02:49] paul__: devaholic: i wonder if it's something in the way i installed my packages. i noticed a few hours ago that when i npm install -g dnode then it can't find it in the require [02:49] scott_gonzalez has joined the channel [02:49] devaholic: are you running the example from within /examples? [02:49] JakeSays: so in .6 is eio_req no longer available? [02:49] paul__: devaholic: cause the test code really is the same as the example yeah [02:49] paul__: oh [02:50] paul__: no, not running it from inside, but i reconstructed the dir on my machine [02:51] devaholic: so nodeQuery is in node_modules? [02:51] alexdoom has joined the channel [02:51] devaholic: jeez, nodejs google group just about blew up my phone [02:51] devaholic: 10 emails in less than a minute [02:52] JakeSays: is libeio no longer used? maybe thats my issue [02:52] devaholic: paul__ let me know, i would like to run with the same setup [02:52] devaholic: paul__ give me just an hour or two and i'll let you know how it goes [02:52] paul__: devaholic: yep, $ ls $NODE_PATH [02:52] paul__: backbone dnode nodeQuery bcrypt express nodemon bison express-session-mongo now browserify forever npm bson formidable nquery connect jade path connect-form libxmljs socket.io connect-mongo mailer stylus connect-mongodb mongoose underscore connect-timeout nave util cry node-proxy [02:52] paul__: and [02:52] paul__: $ echo $NODE_PATH [02:53] paul__: is /usr/local/lib/node_modules [02:53] paul__: devaholic: thanks very much! it would be awesome to use nodequery [02:53] paul__: i hope the project grows well [02:53] devaholic: what do you want to use it for? [02:54] paul__: i'm writing an web app FE for a new project i'm working on. just wanted to use node query to reduce the amount of code i had to write and make things snappy [02:54] paul__: i've been using now.js in the intervening time [02:54] devaholic: btw, here is a little blog post about creating a blog with nodeQuery, though it's a rough draft (e.g. unfinished) the code is good! http://tomblobaum.tumblr.com/post/12362916187/rapid-development-creating-a-blog-with-nodequery [02:54] gregpascale has joined the channel [02:54] paul__: oh, awesome [02:54] devaholic: yeah you can see how much code it really lets you cut out when you can write a functioning blog in 74 lines [02:55] devaholic: (check step 2) [02:56] devaholic: you see how the routes work? that is completely undocumented... [02:56] paul__: oh, the $.on? [02:56] gregpascale has joined the channel [02:56] devaholic: there is some other undocumented functionality i'll try to open up too [02:56] devaholic: yep [02:57] paul__: it would be cool to have redirect functionality and middleware in there too [02:57] isaacs: SubStack: you around? [02:57] devaholic: you dont want your code to just run no matter what page you are on [02:57] devaholic: you can put more middleware... you can use as many as you like [02:57] devaholic: how do you mean? [02:58] isaacs: SubStack: https://gist.github.com/f809cb998d62e421ca3d [02:58] paul__: yeah after i said that i realized i could probably just put whatever i want [02:58] deedubs: arch I think n is messing with my ability to update npm :/ [02:58] devaholic: nQuery.use(app).use(middleware).use(authentiation) etc [02:59] devaholic: i may add dnode-session to the blog post tonight for an example of auth [02:59] paul__: what i meant was doing the equivalent of something like this app.get('…', loadUser, function(req, res) { ….. and then loadUser would be able to determine if they can pass or not [02:59] devaholic: but dont qoute me on that [02:59] paul__: a dnode-session example would be awesome.. when you get around to it :) [03:00] devaholic: live authentication is awesome! [03:00] devaholic: oh, i see what you mean with route middleware [03:00] devaholic: for sure i will look into that, totally possible [03:00] lukemelia has joined the channel [03:01] paul__: yay! [03:01] paul__: devaholic++ [03:01] catb0t: devaholic now has 1 beer [03:01] ninjapig has joined the channel [03:01] ninjapig has joined the channel [03:01] devaholic: paul__ here is some future nQuery API stuff... ive been looking for the best way to write such things so i would appreciate feedback from someone that has actually used nquery ;) https://gist.github.com/1336381 [03:01] devaholic: thats an express route [03:03] jtsnow has joined the channel [03:04] CIA-109: libuv: 03Ben Noordhuis 07master * r7b973eb 10/ (include/uv.h src/unix/core.c src/win/core.c): Fix uv_loop_new() and uv_default_loop() function prototypes. - http://git.io/m_uq5Q [03:04] devaholic: pretty much lets you select a browser with nQuery() anywhere and do some stuff [03:06] paul__: looks sweet [03:07] paul__ has left the channel [03:07] paul__ has joined the channel [03:07] coreb has left the channel [03:10] CIA-109: libuv: 03Ben Noordhuis 07master * r16d48be 10/ src/win/core.c : win: add uv_loop_new() and uv_loop_delete() stubs - http://git.io/HdaicQ [03:11] gaarf: Not sure if issue with Node 0.6.0 itself, or Expresso framework: https://gist.github.com/1342406 [03:11] paul__: devaholic i'll follow your blog to stay updated :) [03:13] jtsnow has joined the channel [03:15] rogerb has joined the channel [03:17] dreamdust has left the channel [03:19] devongovett has joined the channel [03:22] drewolson has joined the channel [03:22] meso has joined the channel [03:25] jbrokc_ has joined the channel [03:25] jacobolus has joined the channel [03:25] Vennril2 has joined the channel [03:28] _dc has joined the channel [03:28] stagas has joined the channel [03:28] SubStack: devongovett: excellent! [03:28] SubStack: I like sessions. [03:28] devongovett: hello? [03:28] SubStack: *devaholic [03:28] SubStack: MISFIRE [03:28] devongovett: hehe [03:28] devaholic: SubStack [03:29] devaholic: dnode-session will die if you remoe middlewares though :( [03:29] devaholic: for now (since you updated socket.io) its flawless though! [03:29] SubStack: cool [03:30] SubStack: well I would only remove middlewares if nobody uses them [03:30] SubStack: dnode-session Expose your connect/express sessions to dnode =tblobaum [03:30] devaholic: msot dnode projects i see use them [03:30] SubStack: already exists, looks like? [03:30] devaholic: uh?? you have been following that project for a month now [03:30] devaholic: haha [03:31] SubStack: I follow a lot of projects. [03:31] devaholic: indeed, me too [03:31] devaholic: https://github.com/tblobaum/dnode-session [03:31] devaholic: 10 followers! [03:31] devaholic: lol [03:31] devaholic: this relies heavily on middleware [03:31] monokrome has joined the channel [03:31] boehm has joined the channel [03:32] shedinja: isn't the latest socket.io api very similar to dnode? [03:32] kenperkins has joined the channel [03:32] devaholic: it is [03:32] devaholic: and dnode kind of throws some of it away [03:32] devaholic: like route based loading of stuff [03:33] torsd has joined the channel [03:33] devaholic: but i still think the dnode interface is far better to work with [03:35] jbrokc has joined the channel [03:41] ecin has joined the channel [03:42] slloyd_air has joined the channel [03:44] davidbanham has joined the channel [03:45] jbrokc_ has joined the channel [03:47] xtianw has joined the channel [03:47] davidbanham has joined the channel [03:48] boltR has joined the channel [03:48] lyle: bnoordhuis, you were right, thanks [03:48] lyle: http://quiet-leaf-1479.herokuapp.com/client.html [03:48] zackattack has joined the channel [03:50] jsurfer has joined the channel [03:51] alexdoom has joined the channel [03:52] ryanfitz has joined the channel [03:55] gaarf has joined the channel [03:56] gaarf has left the channel [03:57] lulzilla has joined the channel [03:58] shipit has joined the channel [04:02] lulzilla has joined the channel [04:02] lulzilla: yarr [04:05] _dc has joined the channel [04:07] lulzilla has joined the channel [04:12] zackattack has joined the channel [04:13] stagas has joined the channel [04:14] andrewfff has joined the channel [04:15] jarek__ has joined the channel [04:19] p1d_ has joined the channel [04:20] ditesh|cassini has joined the channel [04:21] paul__: anyone know how to compile a jade template and get the compiled html at runtime? i probably don't understand how to use it properly but when i run the function returned by compile(template, options), i just get back the path of the jade file instead of the html [04:21] paul__: that's require('jade').compile, btw [04:23] cjm has joined the channel [04:23] paul__: oh… i guess compile takes the jade str not the path [04:24] isaacs has joined the channel [04:27] Aria: Yeah. Generally not paths, since accessing a file implies asynchrony. [04:27] drewolson has joined the channel [04:28] tauren has joined the channel [04:30] gaarf has joined the channel [04:31] paul__: Aria ty [04:31] dmwuw has joined the channel [04:31] incon: 23nc0n23 [04:31] incon: oops [04:32] mikeal has joined the channel [04:32] incon: i've changed my irc password now :) [04:33] luke` has joined the channel [04:33] amigojapan has joined the channel [04:35] jbrokc has joined the channel [04:43] stagas has joined the channel [04:44] cognominal___ has joined the channel [04:45] paul__: incon++ [04:45] catb0t: incon now has 1 beer [04:47] incon: Luckily I don't use a similar password anywhere else :) [04:50] paul__: yeah, was gonna say you better change your other passwords :P [04:52] alexdoom has joined the channel [04:58] stagas has joined the channel [04:59] davidbanham has joined the channel [04:59] aoberoi has joined the channel [05:00] kuebk has joined the channel [05:01] paul__: Aria: do you know if it's possible to use a partial (e.g. !=partial(path)) from within a compiled jade string? [05:01] paul__: I keep getting this ReferenceError: partial is not defined [05:02] Aria: I think partial's just a function -- you'd have to define it yourself. [05:02] Aria: But don't quote me on that. [05:02] broofa has joined the channel [05:04] paul__: Aria: I see, thanks [05:08] paul__: Aria: fyi looks like there's such a thing as "include" [05:08] paul__: https://github.com/balupton/docpad/pull/85 [05:08] paul__: http://stackoverflow.com/questions/5764693/how-do-i-render-partials-with-jade-without-express-js [05:09] Aria: Spiffy. [05:10] deedubs has joined the channel [05:12] AAA_awright: paul__: A partial is just a sub-portion of the final output, if you want to do partials rendering just split apart the HTML body from the HTML page [05:12] aoberoi: has anyone here used everyauth? [05:12] aoberoi: specifically for password authentication [05:12] AAA_awright: I forget how to set the render mode without outputting the header [05:12] paul__: AAA_awright: yeah that occurred to me… might do that for other cases [05:13] aoberoi: it seems to me that everyauth wants a separate route for the login page and another separate route for the register page, but i'd really like to include those forms on for example my index page [05:13] AAA_awright: aoberoi: Aren't those two different things? [05:14] aoberoi: AAA_awright: it handles a bunch of oauth providers as well as password authentication [05:14] jbrokc_ has joined the channel [05:14] AAA_awright: aoberoi: I mean, everyauth doesn't use passwords to authenticate [05:14] AAA_awright: (it shouldn't be at least) [05:15] aoberoi: AAA_awright: it actually is one of the providers https://github.com/bnoguchi/everyauth [05:15] devaholic: aoberoi: you can do that [05:15] JasonSmith: isaacs: Sorry, missed your message. Yeah I am all about parsing that thing. I'll email [05:16] aoberoi: devaholic: what do i do to configure it like so [05:16] isaacs: JasonSmith: awesome. [05:16] JasonSmith: isaacs: BTW, my .npmignore is not behaving like I expect, trying to run `npm pack` to make sure I don't bundle 80MB of Java up with a package. Any hints? [05:16] isaacs: JasonSmith: i was thinking we could probably have some kind of mapreduce that constructed a bitmap with one of those odometer thingies. [05:16] devaholic: just put what is on those pages on the index page... [05:16] isaacs: JasonSmith: maybe a hard hat cartoon animated gif or something. [05:17] isaacs: JasonSmith: yeah, npmignore is ever so slightly buggy. [05:17] isaacs: JasonSmith: "dir/" works, but "dir" doesn't [05:17] JasonSmith: isaacs: Yeah that's the trick. Thanks [05:17] aoberoi: devaholic: haha wow i feel dumb for not trying that, one sec [05:18] JasonSmith: I have long wanted to convert log files to log databases; but the thing about the log files is (1) not skipping or duplicating log lines, and (2) dealing with log rotation [05:18] aoberoi: i dont see the point in the .getLoginPath() and .getRegisterPath() config methods then... [05:18] JasonSmith: Converting all my packages to Node 0.6, but once I'm done I wanted to run some quick greps to see if and how much usage spiked after the 0.6 releases [05:18] mikeal has joined the channel [05:19] Aria: Can you not give the same path to both? [05:19] devaholic: they might only be need so everyauth knows on which pages to instantiate other variables for those forms, but you can just hardcode those on your home page [05:20] ninjapig has joined the channel [05:20] ninjapig has joined the channel [05:22] ninjapig has joined the channel [05:23] aoberoi: devaholic: trying now but having issues with partials, ill try to figure this one out myself [05:23] aoberoi: thanks! [05:23] ninjapig has joined the channel [05:23] ninjapig has joined the channel [05:24] jbrokc has joined the channel [05:25] Nuck: I *just* realized that the NKO site is Mongo-backed [05:25] Nuck: I feel like a tard [05:25] Nuck: The URLs make it so obvious [05:27] sreeix has joined the channel [05:28] jesusabdullah: oh, the hashes? [05:28] jesusabdullah: er, the numbers I mean [05:29] jesusabdullah: That's like couch's /db/_design/thing/_list/whatevers [05:29] jesusabdullah: for mongo? [05:29] jesusabdullah: heh [05:30] Nuck: jesusabdullah: hmmm? [05:30] Nuck: Those are obviously ObjectIDs [05:30] Nuck: They're most similar at the start and differ most at the end, and they look like ObjectIDs [05:30] jmqq has joined the channel [05:31] rogerb has joined the channel [05:34] Guest19565 has joined the channel [05:35] JakeSays has joined the channel [05:35] jbrokc_ has joined the channel [05:35] minerale has joined the channel [05:36] jdpacker has joined the channel [05:37] Emmanuel` has joined the channel [05:37] dantalizing has joined the channel [05:37] dantalizing has joined the channel [05:37] jarek__ has joined the channel [05:45] captain_morgan has joined the channel [05:45] secoif has joined the channel [05:47] materialdesigner has joined the channel [05:50] SubStack: isaacs: wait so if you try to mkdirp over a file that exists it will delete the file and make a directory? [05:50] tauren has joined the channel [05:51] isaacs: SubStack: yes, that's what this would do [05:51] isaacs: however, reporting that EEXIST would be easy [05:51] isaacs: what's messing with me is not reporting it, but also not being a directory [05:52] taurenx has joined the channel [05:52] SubStack: deleting files seems like a dangerous thing to do [05:52] alexdoom has joined the channel [05:53] stagas has joined the channel [05:54] SubStack: the mkdir -p from the shell gives these errors: [05:54] SubStack: mkdir: cannot create directory `foo.txt': Not a directory [05:54] SubStack: that seems like the lease surprising thing to do [05:54] tauren_ has joined the channel [05:56] jarek__ has joined the channel [05:58] boltR has joined the channel [06:01] isaacs: SubStack: fair enough. just a sec.. [06:01] SubStack: oh I already fixed it [06:01] SubStack: to the other way [06:01] tauren has left the channel [06:02] tauren has joined the channel [06:02] slloyd_air has joined the channel [06:03] SubStack: isaacs: https://github.com/substack/node-mkdirp/commit/282857b16c699a4b5f0c11c2160344c6049f76b3 [06:03] isaacs: haha [06:03] isaacs: 5d3f607463df1a2b18205482694810562327f140 [06:04] SubStack: oh taking out case 'ENOTDIR' makes sense [06:07] benvie has joined the channel [06:08] wilmoore has joined the channel [06:09] SubStack: isaacs: https://github.com/substack/node-mkdirp/commit/ab1aa1e68e9a36e6675d584c2330ed3f443cb74b [06:10] sreeix has joined the channel [06:12] samcday has joined the channel [06:13] martin_sunset has joined the channel [06:15] loob2 has joined the channel [06:15] meso has joined the channel [06:16] jbrokc_ has joined the channel [06:18] maletor has joined the channel [06:20] binaryjohn has joined the channel [06:24] dshaw_ has joined the channel [06:24] Peniar has joined the channel [06:24] cjm has joined the channel [06:25] mynyml has joined the channel [06:27] Drakonite has joined the channel [06:31] okuryu has joined the channel [06:33] stagas has joined the channel [06:36] eddyb has joined the channel [06:36] eddyb: anyone here ready to answer some v8 questions? [06:36] JasonSmith: SubStack: Just pushed "bigdecimal", a pure-Javascript BigInteger and BigDecimal implementation. It's a little bit country, a little bit rock and roll. And then after all that, I found your bigint :) [06:37] JasonSmith: ACTION d'ohs [06:37] eddyb: JasonSmith: too bad there's no operators around :-< [06:37] SubStack: hah well [06:37] SubStack: bigint is c though which has its own limitations [06:37] eddyb: I actually hacked some into my local copy of v8 some time ago [06:38] isaacs: SubStack: winful [06:38] JasonSmith: SubStack: This is "pure javascript" but that is stretching that definition pretty far. I used GWT to compile Apache Harmony's BigInteger/BigDecimal Java std lib implementations [06:39] JasonSmith: because I wanted to do money arithmetic in CouchDB :) [06:39] eddyb: it's not hard, the operators are defined in JS, you can easily add a check for an operator* function and call it, if it's not doing multiplication on two numbers [06:40] JasonSmith: Also bigdecimal is a decent reference implementation for how to convert a pure Java library into a pure-Javascript one [06:40] JasonSmith: ACTION Takes what he wants. JasonSmith don't give a shit. [06:43] benvie: you referring to arguments.caller on like valueOf checking for ADD? [06:46] benvie: arguments.callee.caller [06:47] akihito_s has joined the channel [06:48] benvie: var test = { valueOf: function(){ console.dir(arguments.caller); return 5; } }; test + 5; [06:49] benvie: er var test = { valueOf: function(){ console.dir(arguments.callee.caller); return 5; } }; test + 5; [06:51] eddyb: benvie: lol, no [06:51] eddyb: just change the v8 code [06:51] eddyb: to call x["operator+"](y); in ADD [06:51] benvie: pft cheating [06:51] eddyb: for example [06:51] eddyb: it's not cheating [06:51] eddyb: it's implementing stuff that should be there already [06:51] jstash has joined the channel [06:52] benvie: well it's not portable anyway if that matters, which it seems it didn't in your case [06:53] eddyb: yeah, was a closed source attempt at a game :) [06:53] benvie: yeah in which case it's probably better performance and thus important [06:54] alexdoom has joined the channel [06:54] eddyb: I'll use Dart next time and make parts of it opensource [06:55] benvie: var s = { valueOf: function(){ console.dir(arguments.callee.caller.arguments[0]); return 5; } } [06:55] benvie: that'll give you the other number in a math operation [06:55] benvie: pretty nifty [06:56] Circlefusion has joined the channel [06:56] akihito_s has joined the channel [07:01] ericnakagawa has joined the channel [07:01] eddyb: benvie: will break quite soon [07:02] eddyb: and won't work for vector/complexes [07:02] benvie: hmm why will it break soon? It's not new, something changing? [07:03] stagas has joined the channel [07:03] davidbanham has joined the channel [07:04] benvie: and yeah operator overloading across complex items gets a bit more complicated but you can do it by using the values passed as unique ids with some sort of central lookup and do the translation as a setter or proxy or something on the receiving end [07:04] benvie: if it's a relatively simple set of values you can just encode it in the number [07:05] benvie: like say RGB or whatever [07:05] eddyb: .... [07:05] eddyb: benvie: I was thinking like that [07:05] eddyb: but why not cheat? [07:06] benvie: well when I investigated this originally it was for browser use so that's my angle [07:06] benvie: jsc/v8 was the easiest due to exposing the math operations like that [07:07] benvie: just a curiosity more than anything, investiging ways to do operator overloading [07:16] djbell has joined the channel [07:17] jacobolus has joined the channel [07:18] stagas has joined the channel [07:18] simenbrekken has joined the channel [07:21] dnyy has joined the channel [07:21] tk has joined the channel [07:22] atom92 has joined the channel [07:23] atom92: hi guys [07:23] atom92: is there any ide for nodejs [07:23] atom92: with autocomplete [07:25] Cromulent has joined the channel [07:25] madhums has joined the channel [07:26] animorten1 has joined the channel [07:29] HeikoR has joined the channel [07:37] konobi: atom92: cloud9 [07:38] stagas has joined the channel [07:40] HeikoR: Hi - anybody got tips on how to map binary TCP packet structures to JS [07:41] githogori has joined the channel [07:41] HeikoR: Busy playing with Windows C++ Addons - not sure if that's the way to go or if I'm re-inventing something already done [07:43] benvie: TCP sounds like something pretty well covered by node already but I may be mistaken [07:43] benvie: node core [07:44] HeikoR: I will be digging around a bit more - spent a day trying to get node windows C++ addon working w/ node 0.6.0 - got "Out of Memory" error when trying to load package [07:44] konobi: HeikoR: node-ctypes [07:44] benvie: yeah the errors aren't accurate [07:45] jbrokc has joined the channel [07:45] HeikoR: finally figured out that I had to use the SAME name in NODE_MODULE as I use for the DLL (.node) name ... some how I missed that ! :( [07:46] benvie: yeah I spent a few hours to learn that you can't try and load a native module from a renamed node binary [07:46] shedinja: HeikoR: this? https://github.com/marcello3d/node-buffalo [07:46] benvie: if you link against "node" you better be running node.exe [07:47] benvie: a useful thing [07:47] konobi: HeikoR: https://github.com/rmustacc/node-ctype [07:47] HeikoR: @konobi - thanx saw mention of node-ctypes - will follow up [07:47] benvie: you can add this to the line right before it returns ThrowException in node.cc: 'SetErrno(err);' [07:47] benvie: and that'll add the windows error number to global [07:48] yozgrahame has joined the channel [07:48] benvie: which you can then look up here http://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx [07:49] benvie: though you already got it working so moot point now, good for future reference [07:50] konobi: HeikoR: i've used it with a DNS server to good effect [07:51] HeikoR: @benvie - thanx - will try that. (SetErrno ..) [07:52] HeikoR: We have a C++ game server (and Client written in MFC) - Trying to add a webfront end to the gameserver [07:52] HeikoR: Considering using NodeServer as middleware. [07:53] Marko has joined the channel [07:53] benvie: how much data you looking to pipe? [07:53] alexdoom has joined the channel [07:53] benvie: just a bit for reporting/control or like a bunch [07:53] HeikoR: Could also add protocol mapping to our gameserver (eg to map to JSON or XML etc ..) but would love to get an interface going to existing servers without any server mods [07:54] benvie: potentially easier route may just be writing a command line app for node to run or talk to over a named pipe [07:54] HeikoR: well we got a couple of live servers - but each only has about 100 clients connected at a time - maybe max 200 [07:55] benvie: though you already got the native module compiling so that may be the better route [07:55] HeikoR: and games just send updates every couple of seconds - so minimal data [07:55] devrim has joined the channel [07:55] benvie: it's relatively easy to expose stuff via native modules if you're not trying to do anything crazy [07:57] devrim: hi guys does anyone know a link to an example where dnode connects to a server other than localhost ? [07:57] HeikoR: :) I''m noting all suggestions - to be researched later ;) - Will look at pipes - note will prefer to code & run on windows. - Yup got native addon running - yay! [07:57] SubStack: devrim: just dnode.connect('somehost', someport, fn) [07:58] benvie: ya the windows module stuff is very new and not really documented so you're ahead of the curve [07:58] SubStack: any string argument works [07:58] SubStack: devrim: and make sure the listening server is bound to the right address [07:58] devrim: thx substack - should i do anything special on server.listen side ? [08:00] HeikoR: @benvie - no don't think I'm planning to do anything crazy - yet ! - hehe [08:00] benvie: you will [08:01] HeikoR: @benvie - tell me about it - windows node addon examples - ZERO .. - most examples are for unix/mac, or windows before DLOpen integration (0.6.0) - just takes a lot longer to figure out things [08:01] SubStack: devrim: aha by default it listens on 127.0.0.1 [08:01] SubStack: .listen(port, '0.0.0.0') [08:01] aliem has joined the channel [08:02] SubStack: that seems wrong, changing [08:02] caffine has joined the channel [08:02] benvie: yeah it was only added a week ago and I just read through the changelogs in order to figure out what was needed to make it work [08:02] HeikoR: same here [08:03] benvie: the windows stuff has required all new stuff, hence all of libuv [08:03] benvie: which also means all the node-waf stuff is outdated and doesn't apply to windows [08:04] HeikoR: yup got stuck with node-waf aswell [08:04] jbrokc_ has joined the channel [08:04] benvie: node has transitioned to gyp for its build system and node-waf is still there pretty much because it's simple and still works for all the platforms it used to. But it'll be replaced by gyp entirely at some point [08:04] benvie: which works on everything [08:05] plutoniix has joined the channel [08:05] SubStack: devrim: ok now dnode listens on 0.0.0.0 in 0.9.2 [08:05] HeikoR: yeah - had looked at them aswell - though I was missing a setting in my MSVC (windows) Project - meanwhile was just the module name [08:05] SubStack: unless otherwise specified [08:05] benvie: at some point I'll sit down and dig into gyp and make a module build script if an official one isn't done soon [08:06] benvie: for now I just have a basic visual studio project [08:06] benvie: yeah I went through all that too, all the C++ and linker settings thinking it was some random thing [08:07] HeikoR: yup MSVC Project good [08:07] benvie: pretty sure none of the settings matter in terms of making it work aside from compiling it as a Multi-threaded DLL with the includes and linked against node.lib [08:07] devrim: @substack trying 0.9.2 now.. [08:07] HeikoR: yeah compare every single setting to see where I was going wrong .... meanwhile somewhere else [08:08] HeikoR: the default settings (MSVC DLL) work fine [08:08] benvie: I was even assisted with that error code change so I knew it was error 126, module not found [08:08] benvie: I just thought that meant my module wasn't being correctly found, not node itself [08:08] devrim: @substack - works! awesome thanks! [08:09] HeikoR: ;) - hehe - that would have helped more that "Out of memory" [08:09] HeikoR: ok lemme got read up more and try a few things - thanx a lot for the help ! [08:09] benvie: yeah, those extra errors were added a couple days and are currently worse for debugging. Prior to that it just did the error number thing I said [08:10] HeikoR: ps: 1 last thing - do you use web irc client or are the better options (currently chatting via web interface) [08:11] benvie: mirc until I finish this basic node-cef bridge and then I'll make my own [08:12] HeikoR: The "out of memory" bug took me half a day to figure out ! - was looking in all the wrong places and at old examples and not many windows examples - steeper learning curve when you start off with new things [08:12] tvw has joined the channel [08:12] benvie: yeah it probably would have helped you most if you just knew not to bother looking for answers and just to read the source [08:13] benvie: too new [08:13] HeikoR: that's how I found it - but looking at the source, the macros, and replacing them with what I passed in .. (in node.h) [08:14] incon: ls [08:14] lukemelia has joined the channel [08:15] bearnard has joined the channel [08:15] jbrokc has joined the channel [08:16] joshkehn has joined the channel [08:16] Cromulent has joined the channel [08:16] HT has joined the channel [08:16] joshkehn has left the channel [08:21] joshthecoder has joined the channel [08:23] stagas has joined the channel [08:31] Druid_ has joined the channel [08:34] ecin has joined the channel [08:35] magnetik has joined the channel [08:35] dubenstein has joined the channel [08:36] Shrink has joined the channel [08:36] ejhh has joined the channel [08:37] SamuraiJack has joined the channel [08:38] Emmanuel` has joined the channel [08:38] jbpros has joined the channel [08:38] yozgrahame has joined the channel [08:41] cognominal has joined the channel [08:41] _baton_ has joined the channel [08:43] braoru has joined the channel [08:43] confoocious has joined the channel [08:43] confoocious has joined the channel [08:43] jbrokc_ has joined the channel [08:44] harthur has joined the channel [08:47] AphelionZ has joined the channel [08:48] takezawa has joined the channel [08:51] TheJH has joined the channel [08:53] AphelionZ: but seriously [08:54] xerox: srsly [08:54] AphelionZ: haha but seriously [08:54] jbrokc has joined the channel [08:54] alexdoom has joined the channel [08:56] whitman has joined the channel [08:58] Industrial: foshosrsly [08:59] plutoniix has joined the channel [09:00] shedinja_ has joined the channel [09:00] herbySk has joined the channel [09:00] d0k has joined the channel [09:04] joshgillies has joined the channel [09:04] jetienne has joined the channel [09:05] AphelionZ has joined the channel [09:05] jbrokc_ has joined the channel [09:06] AphelionZ has joined the channel [09:06] AphelionZ1 has joined the channel [09:06] mmalecki has joined the channel [09:07] shipit has joined the channel [09:07] gut4 has joined the channel [09:08] alnewkirk has joined the channel [09:09] harthur has joined the channel [09:11] kuya_ has joined the channel [09:11] gut4 has joined the channel [09:12] odyniec has joined the channel [09:12] vi390 has joined the channel [09:12] vi390 has joined the channel [09:14] Cromulent has joined the channel [09:15] knirhs has joined the channel [09:18] lzskiss has joined the channel [09:18] lzskiss: yo [09:19] adambeynon has joined the channel [09:22] uchuff has joined the channel [09:25] jetienne has joined the channel [09:26] tisba has joined the channel [09:28] stagas has joined the channel [09:28] __tosh has joined the channel [09:30] Advant: Could someone give me an example of how you would call this function, specifically the 3rd argument? http://pastebin.me/50ce2627ae22d5c23d6ff4585c0046f1 [09:32] igl: sqsDeleteMessage(blah, blub, new ObjectId); [09:33] igl: ^^ [09:33] Advant: I tried doing that from mongo console, but didn't make any changes [09:33] tlynn has joined the channel [09:35] gavin_hu_ has joined the channel [09:35] Advant: db.eval('sqsDeleteMessage("testq","owner",new ObjectId("4eb6427efaac20007fbf7522"))') [09:40] takezawa has joined the channel [09:42] aliem_ has joined the channel [09:42] andrewfff has joined the channel [09:43] perezd has joined the channel [09:45] Xano has joined the channel [09:46] jimt has joined the channel [09:47] davidbanham has joined the channel [09:47] maligree has joined the channel [09:48] garrensmith has joined the channel [09:49] iwoj has joined the channel [09:53] fly-away has joined the channel [09:54] dubenstein has joined the channel [09:55] wereHamster: can node load a module from a string? [09:55] alexdoom has joined the channel [09:55] wereHamster: so that I don't have to write the string to a temp file and then require it [09:55] TheJH: wereHamster, would just executing the string as javascript be enough for you? [09:55] ecin has joined the channel [09:56] TheJH: wereHamster, have a look at the builtin vm module [09:56] TheJH: !docs search runInThisContext [09:56] jhbot: section "Executing JavaScript": http://nodejs.org/docs/latest/api/all.html#executing_JavaScript [09:56] jmqq has joined the channel [09:57] wereHamster: thanks, looks promising [09:58] mike5w3c has joined the channel [09:59] fly-away has joined the channel [10:04] lzskiss has joined the channel [10:09] ecin has joined the channel [10:11] Shrink has joined the channel [10:12] iwoj has joined the channel [10:15] AAA_awright: Why are we talking about "full-time" and "part-time" members on the mailing list? [10:15] NetRoY has joined the channel [10:15] cognominal has joined the channel [10:21] OneOfOne has joined the channel [10:21] OneOfOne has joined the channel [10:24] __doc__ has joined the channel [10:26] tilgovi has joined the channel [10:26] tilgovi has joined the channel [10:28] takezawa has joined the channel [10:28] saschagehlich has joined the channel [10:28] rendar has joined the channel [10:29] fly-away has joined the channel [10:31] adnasa has joined the channel [10:32] ej_h has joined the channel [10:32] joshgillies has joined the channel [10:37] Emmanuel` has joined the channel [10:39] HeikoR has joined the channel [10:39] Wizek__ has joined the channel [10:42] dnjaramba has joined the channel [10:44] takezawa has joined the channel [10:50] paulwe has joined the channel [10:51] vlapan has joined the channel [10:52] vlapan has joined the channel [10:54] josephg has joined the channel [10:54] alessioalex has joined the channel [10:55] alessioalex: ACTION hello people [10:56] eddyb has joined the channel [10:56] eddyb: any devs who are familiar with v8? [10:56] alexdoom has joined the channel [10:57] k1ttty has joined the channel [11:00] Shrink has joined the channel [11:00] Shrink has joined the channel [11:01] jetienne has joined the channel [11:09] dgathright has joined the channel [11:09] konobi: eddyb: depends what you mean by familiar [11:10] eddyb: konobi: knowing the difference between Local and Persistent, knowing what MakeWeak does, stuff like that [11:11] konobi: meh, that stuff has gone out of my head... the v8 developers guide has a bunch of that though... but mostly it's RTFS [11:12] elmariachi has joined the channel [11:13] slifty has joined the channel [11:14] H4ns_ has joined the channel [11:15] konobi: eddyb: http://code.google.com/apis/v8/embed.html [11:15] mmalecki: anyone here using vim? you may like this: https://github.com/mmalecki/vim-node.js [11:15] eddyb: konobi: that's the basics [11:15] eddyb: I need someone who I can talk with [11:15] mmalecki: it detect node.js shebangs like !/usr/bin/env node or !/usr/bin/node [11:16] H4ns_: eddyb: i missed your original question, but i'm writing node extensions in c++, so maybe repeat it. [11:17] eddyb: there was no question, just curious if there was someone I could ask the questions I have in mind [11:17] konobi: eddyb: TIAS... also just read the source to other addons [11:17] H4ns: eddyb: then fire ahead. [11:17] eddyb: H4ns: what is the impact on performance if one is using Persistent handles everywhere? [11:18] eddyb: is it better to reuse a Persistent handle (copy it) instead of using Persistent::New everytime? [11:18] anoop has joined the channel [11:18] eddyb: how does MakeWeak act when it's called multiple times for the same Persistent handle? [11:19] H4ns: eddyb: i can't answer any of these, sorry. [11:20] eddyb: exactly my reason of not asking them like that without making sure first someone knows the answer :P [11:20] H4ns: eddyb: how can you be sure that noone knows the answer if you haven't asked the question? [11:21] galaxywatcher has joined the channel [11:21] eddyb: well, nobody said "yeah, I've been coding in node and I know my way around v8" :P [11:22] H4ns: eddyb: i'm doing that :), but i use persistent handles only when i need them to outlive the current scope. [11:22] hellp has joined the channel [11:22] eddyb: I'm not using Local handles *at all* [11:22] konobi: yeah, generally i only use Local handles [11:22] eddyb: I have a wrapper around a Persistent handle [11:23] eddyb: and I can move that around as I wish [11:23] konobi: since they're only used per-context really [11:34] remysharp: In the new cluster example code, it referes to `process.send` - should this method be on the process API page? http://nodejs.org/docs/latest/api/process.html [11:36] mmalecki: remysharp: I would say yes [11:37] remysharp: do you know if the master can send messages back to the workers? [11:37] liar has joined the channel [11:37] mmalecki: remysharp: if workers set up process.on('message'), I think [11:38] konobi: > console.log(process.send) [11:38] konobi: undefined [11:39] remysharp: mmalecki: cheer - yeah that worked. [11:39] remysharp: *cheers [11:39] konobi: it's onyl available if you're a child process [11:39] svnlto has joined the channel [11:40] remysharp: konobi: cheers, good to know [11:40] anoop has joined the channel [11:40] konobi: remysharp: so it's documented in child_process [11:41] remysharp: konobi: it is...sorta - there's no method link, but I see it talking about .send in there [11:41] wbednarski has joined the channel [11:42] remysharp: should I be using a master to do the heavy/blocking processing, and let the workers deal with regular web requests? [11:42] remysharp: (and communicate via messages) [11:42] mehlah has joined the channel [11:45] remysharp: Did that make sense? or is it just Sunday :) [11:46] mmalecki: I would use two types of workers, one dealing with web requests and second one to deal with computations/etc. [11:47] devaholic: remysharp: thats about right [11:47] mike5w3c has joined the channel [11:47] vguerra has joined the channel [11:47] remysharp: mmalecki: great - that's what I was thinking, but wanted to check I was going the right way about things. [11:48] devaholic: heh [11:48] rchavik has joined the channel [11:48] mmalecki: remysharp: but remember that it's also Sunday ;) [11:49] devaholic: i read that too fast, should be right if you switch it around [11:50] luke` has joined the channel [11:50] jonaslund has joined the channel [11:52] luke` has joined the channel [11:52] liar has joined the channel [11:54] Blorb has joined the channel [11:56] alexdoom has joined the channel [11:58] N0va` has joined the channel [12:04] aflynn_ has joined the channel [12:08] josephg: Any idea when we're going to see Int32Buffer / etc in nodejs? [12:12] ej__h has joined the channel [12:12] erichynds has joined the channel [12:12] tlynn has joined the channel [12:13] broofa has joined the channel [12:13] aoberoi has joined the channel [12:13] takezawa has joined the channel [12:14] jonaslund: josephg: i think someone posted a test patch for node on the dev list, you could check archives [12:14] amigojapan has joined the channel [12:14] josephg: cool, cheers. [12:14] jonaslund: josephg: i think that the long term plan is to make the standardized buffers the default for node. But there's tons of "legacy concerns" already [12:14] josephg: Yeah, fair enough. [12:15] josephg: I've been staying away from nodejs Buffers in my code for that reason [12:18] boltR has joined the channel [12:18] neurodrone has joined the channel [12:25] jimt has joined the channel [12:25] EvRide has joined the channel [12:25] Mokona has joined the channel [12:26] CrisO has joined the channel [12:26] CrisO has left the channel [12:27] rchavik has joined the channel [12:27] jacobolus has joined the channel [12:35] jetienne has joined the channel [12:35] akter has joined the channel [12:40] apoc has joined the channel [12:41] jacobolus has joined the channel [12:41] svnlto has joined the channel [12:42] cjroebuc_ has joined the channel [12:43] postwait has joined the channel [12:45] c4milo has left the channel [12:45] tahu has joined the channel [12:47] alexdoom has joined the channel [12:51] cognominal_ has joined the channel [12:55] sharkbird has joined the channel [12:58] Connorhd has joined the channel [13:08] schwab has joined the channel [13:09] apoc has joined the channel [13:13] jimmysparkle has joined the channel [13:18] adrianF has joined the channel [13:18] cognominal has joined the channel [13:18] apoc has joined the channel [13:22] freewil has joined the channel [13:22] c4milo has joined the channel [13:22] freewil has joined the channel [13:22] cjm has joined the channel [13:33] CrisO has joined the channel [13:41] gavin__ has joined the channel [13:41] lastk has joined the channel [13:41] bwinton_away has joined the channel [13:45] mraleph has joined the channel [13:46] ixti has joined the channel [13:46] gavin__: Any weird reports of node 0.6.0 crashing on OSX? http://f.cl.ly/items/3n2a2B2V0k352m2Z0V3R/Screen%20Shot%202011-11-06%20at%2013.42.41.png [13:46] gavin__: Installed latest via new brew formula, ran a dtrauss over it, log:- https://gist.github.com/1342895 [13:47] gavin__: at a loss though :( osx 10.7.2 [13:47] alexdoom has joined the channel [13:47] gavin__: gave v0.6.1-pre a go too, same thing [13:53] An-iSociaL has joined the channel [13:54] An-iSociaL has left the channel [13:55] takezawa has joined the channel [13:56] neurodrone_ has joined the channel [13:59] jetienne has joined the channel [14:00] mehtryx has joined the channel [14:00] mehtryx has joined the channel [14:01] eddyb has joined the channel [14:01] eddyb has joined the channel [14:03] shedinja_ has joined the channel [14:04] bosphorus has joined the channel [14:07] okCPU has joined the channel [14:08] enmand has joined the channel [14:08] okCPU: forgive me if this is a n00b question, but is there no built in method to take the properties of two objects and combine them into one object? [14:10] okCPU: i see a lot of work arounds using adding a method to Object via prototype� but didn't know if V8 had a better way to do it [14:11] dharmesh has joined the channel [14:13] dharmesh_ has joined the channel [14:16] eephillip has joined the channel [14:17] cognominal has joined the channel [14:18] eephillip has left the channel [14:18] jimmyspark has joined the channel [14:20] secoif has joined the channel [14:20] lyte has joined the channel [14:20] lyte has joined the channel [14:24] bodisiw has joined the channel [14:25] Twelve-60 has joined the channel [14:30] quackquack has joined the channel [14:31] igl has joined the channel [14:35] ohtogo has joined the channel [14:36] jbrokc has joined the channel [14:37] stagas has joined the channel [14:38] HeikoR: @benvie - great advice! .. node-ctype rocks !! - saving me loads of work mapping tcp packet protocol to js. Now just need to find a DES encrypter/decrypter aswell, then might not even need to write a c++ addon anymore :( [14:38] H4ns has left the channel [14:39] jtsnow has joined the channel [14:40] zemanel has joined the channel [14:42] blup has joined the channel [14:44] vsync_ has joined the channel [14:45] hlindset has joined the channel [14:45] hlindset has joined the channel [14:45] _eddyb_ has joined the channel [14:45] _eddyb_ has joined the channel [14:47] alfred_ has joined the channel [14:48] apoc has joined the channel [14:48] alexdoom has joined the channel [14:49] aflynn_ has joined the channel [14:51] TheJH: TIME [14:52] bergelmir has joined the channel [14:52] bergelmir has joined the channel [14:53] cirojs has joined the channel [14:53] apoc has joined the channel [14:54] Xano has joined the channel [14:57] MatthewS has joined the channel [14:58] apoc has joined the channel [14:58] beve has joined the channel [14:59] SargoDarya: Hey guys, how can I bind node to listen only to a specific ip? [14:59] VeXii has joined the channel [15:00] TheJH: SargoDarya, .listen(port, ip) [15:00] TheJH: !docs search listen [15:00] jhbot: truncated list: [15:00] jhbot: section "Synopsis": http://nodejs.org/docs/latest/api/all.html#synopsis [15:00] jhbot: section "TLS (SSL)": http://nodejs.org/docs/latest/api/all.html#tLS_ [15:00] jhbot: section "net": http://nodejs.org/docs/latest/api/all.html#net [15:00] SargoDarya: Thanks [15:00] SargoDarya: TheJH++ [15:00] catb0t: TheJH now has 1 beer [15:02] jtsnow has joined the channel [15:03] DennisRasmussen has joined the channel [15:04] jbrokc_ has joined the channel [15:04] mehlah has joined the channel [15:07] maushu has joined the channel [15:10] whitman has joined the channel [15:11] takezawa_ has joined the channel [15:12] socketio\test\71 has joined the channel [15:18] socketio\test\83 has joined the channel [15:18] socketio\test\43 has joined the channel [15:20] VeXii has joined the channel [15:21] quackquack: has anyone had any luck getting enderjs working with coffeescript? [15:21] ecin_ has joined the channel [15:21] bodisiw has joined the channel [15:22] galaxywatcher has joined the channel [15:25] mc_greeny has joined the channel [15:26] WarheadsSE has joined the channel [15:28] jesster7 has joined the channel [15:29] jesster7 has left the channel [15:29] ericnakagawa has joined the channel [15:31] pquerna: This type of response MUST NOT have a body. Ignoring write() calls. [15:32] mmalecki: pquerna: you're writing when you receive a HEAD request [15:32] pquerna: its actually from a DELETE request, and after it, the whole server stopped working [15:33] pquerna: moderately annoying, i'd rather have it just throw a freaking top level uncatchable exception [15:34] pquerna: because this console.error stuff 1) is hard to find in our massive logging, and 2) no backtrace :( [15:35] mmalecki: can't you req.method == "DELETE" and just don't respond to it? [15:35] jbrokc has joined the channel [15:35] mraleph has joined the channel [15:36] charlenopires has joined the channel [15:36] Aria has joined the channel [15:38] jerrysv has joined the channel [15:38] coderdad has joined the channel [15:39] pquerna: found our bug, we were missing using our response class and passing in {} for the body instead of headers :-/ [15:39] pquerna: - Response.call(this, 204, {}); [15:39] pquerna: + Response.call(this, 201, null, {}); [15:39] pquerna: er [15:39] devongovett has joined the channel [15:39] pquerna: keep 204 ;( [15:39] tedwing has joined the channel [15:40] _unary has joined the channel [15:41] blup_ has joined the channel [15:41] martin_sunset has joined the channel [15:42] tedwing: Can someone help me with a compilation error? Something in CoreServices apparently: http://pastie.org/2820778 [15:44] tomilaine has joined the channel [15:45] jbrokc_ has joined the channel [15:46] tomlion has joined the channel [15:47] lzskiss has joined the channel [15:47] lzskiss: yo [15:47] k1ttty has joined the channel [15:48] alexdoom has joined the channel [15:49] Aria: tedwing --- weird. What verrsion of OSX? What version of node? [15:49] JumpMast3r has joined the channel [15:50] torsd has joined the channel [15:50] tedwing: Aria Newest version of node 0.6.0. OSX version is 10.4.11 [15:50] Destos has joined the channel [15:50] secoif: hrm, what's the go with module.exports = exports, I don't quite get why have both. [15:51] secoif: as in [15:51] Aria: exports is the more commonly used, so it's sugared. [15:51] secoif: module.exports = exports = function() {//etc} [15:51] Aria: Yeah, you don't have to replace exports that way. Just module.exports. [15:52] pquerna: tedwing: honestly 10.4 is getting pretty long in the tooth, i've not heard of anyone doing 0.6 on it. [15:53] secoif: Aria I've just seen tj doing it, so I figured there might be some reason [15:53] secoif: perhaps backwards compatibility [15:53] secoif: i'm looking at a oldish module [15:53] Aria: Oh. Dear. Tiger is ancient. You will definitely have to hack at it to make it even build. [15:53] Aria: secoif: I think TJ just likes his sugar consistent. I don't blame him. [15:54] Aria: (If you later do a normal exports.foo = it stays working) [15:55] lmatteis: "Without a leading '/' or './' to indicate a file, the module is either a "core module" or is loaded from a node_modules folder." [15:55] lmatteis: does that mean node will look inside {prefix}/lib/node_modules before looking inside the current directory ./node_modules? [15:55] Aria: Nope. [15:55] storrgie has joined the channel [15:55] Aria: Just the current directory. [15:56] lmatteis: say I have a module that exists both in my local ./node_modules and in {prefix}/lib/node_modules.. which one will node use? [15:56] Aria: Local. [15:56] tedwing: pquerna Aria Yeah, it's an old OS so would make sense that it's not really supported. Was wondering if there was some way I could get it to build here. [15:56] lmatteis: Aria: ok, so when does node fallback and use the one in {prefix}/lib... [15:56] kkszysiu has joined the channel [15:56] Aria: Never. [15:57] Aria: tedwing: I think the only answer there is "very carefully" [15:57] pquerna: tedwing: would have to look at that headers it erroring out on, see what it is doing [15:57] lmatteis: Aria: uh? [15:57] Aria: lmatteis: Seriously. Never. [15:57] lmatteis: Aria: but npm (with -g) installs things inside {prefix}/lib/node_modules [15:57] Aria: Yes, yes it does. [15:58] lmatteis: so...? [15:58] Aria: So what? [15:58] Aria: That's the thing. There's no magic. Don't expect stuff in prefix/lib/node_modules to work. [15:58] lmatteis: really? and how does it work? [15:58] Aria: npm with -g is to make globally installed scripts work. [15:58] Aria: And they do. [15:58] Aria: Just install things locally. [15:58] secoif: lmatteis -g is really only for executables [15:59] tedwing: pquerna: I was afraid of that but looks like the only way. Probably not worth it. [15:59] lmatteis: secoif: so for the command line? [15:59] secoif: eg a test runner, coffeescript compiler, etc [15:59] secoif: yep [15:59] secoif: install modules for your app with npm install [15:59] lmatteis: hrm [15:59] secoif: install modules with scripts you want to execute with npm install -g [16:00] lmatteis: so when in code you do require('foo')... it will only look up the chain of node_modules and never inside {prefix}/lib? [16:00] Aria: Right. [16:00] lmatteis: fine, thanks for the clarification [16:00] Aria: "Don't do that, otherwise someone will reinvent Rubygems." [16:00] ryanfitz has joined the channel [16:00] secoif: a lot of tutorials do gloss over this, and any pre npm 1.0 tutorials have no concept of npm install -g [16:00] lmatteis: secoif: i really had a hard time finding any npm tutorials [16:00] Aria: Yeah. npm is very strange as a package manager goes. In an excellent way. [16:00] lmatteis: just relying on man pages [16:01] Aria: There's none of this "which version am I loading?" nonsense that requires a sophisticated loader. npm just installs things into your project, which then uses them. [16:01] francisl has joined the channel [16:01] coderdad has joined the channel [16:01] Aria: Ooh. I should suggest that isaacs have npm throw a warning installing something with no executables with -g [16:01] secoif: also note, the two most magical switches [16:01] lmatteis: so for example, ./node_modules/foo/node_modules/bar [16:01] secoif: npm init [16:02] secoif: and npm install --save [16:02] lmatteis: secoif: what about them? [16:02] Aria: That looks right: the curent module uses foo, which uses bar. [16:02] secoif: init takes you through setting up your package.json (your Gemfile if you're from ruby) [16:02] devaholic has joined the channel [16:02] secoif: --save will update your package.json with the module you're installing [16:03] secoif: saves you time having to track down version numbers to put in your package.json [16:04] CarterL has joined the channel [16:04] Aria: Yeah. It's a great workflow. [16:04] Aria: Just really unusual. [16:04] apoc has joined the channel [16:04] Aria: ACTION tilts her hat at apoc [16:04] lmatteis: Aria: right, but when you do require('foo'); that code will require('bar').. and the lookup for the 'bar' module will happen inside the ./node_modules/foo directory because that's where require('foo') is, right? so Node is smart enough to figure this stuff out, right? [16:04] Aria: Yep! [16:04] Aria: The rules really are that simple. [16:04] secoif: Aria my ruby mates are always jealous when i show them npm [16:05] Aria: secoif: I bet. IT's the good 1% of gems and bundler, without any of the complexity. [16:05] secoif: spot on. [16:05] JasonJS has joined the channel [16:05] Aria: isaacs has done an amazing job of squashing the complexity. It required completely trashing one of the old must-haves of package management. [16:05] hlindset_ has joined the channel [16:06] lmatteis: bit how does node know about the ./node_modules/foo path? it only cares about the current working directory? or not [16:06] lmatteis: i guess not [16:06] Aria: No. It only cares about the current file's actual location. [16:06] secoif: Aria of which must-have do you speak? [16:06] Aria: secoif: "install the package globally" [16:07] lmatteis: Aria: ok, but when you do require('http')... that stuff is in {prefix}/lib right? [16:07] Aria: Nope. [16:07] secoif: yeah. god. I resisted at first, but it definitely makes much more sense. [16:07] Aria: That's compiled into the node core. [16:07] lmatteis: Aria: "The core modules are defined in node's source in the lib/ folder." [16:07] Xano has joined the channel [16:07] Aria: Yes. _in the source_ [16:07] Aria: But when it's compiled, it includes them. [16:08] lmatteis: ah right [16:08] zomg: Anyone know how to silence socket.io's debug output? [16:08] lmatteis: Aria: so {prefix}/lib is just to have PATH point to somewhere that you can use in the command line? [16:08] garrensmith: anyone used json-schema for validations? [16:08] zomg: nvm, of course I found it as soon as I asked [16:09] zomg: For the record, it probably is io.set('log level', 0) [16:10] secoif: garrensmith I did try using it, i found it a little restrictive… good for validating json, but there's a few times that doesn't work real good [16:10] secoif: eg dates [16:11] quackquack: Anyone seen this error with Zombiejs? "Timeout: Cannot set property cssText of [object Object] which has only a getter" [16:11] lmatteis: secoif: but isn't the logic really inside node? i mean npm follows the node_modules logic and that's it basically [16:12] Aria: quackquack: that's not zombie itself -- that's inside jsdom or cssom. I'm tracking some bugs there, too. [16:12] lmatteis: Aria: "Second, if the file calling require() is already inside a node_modules hierarchy, then the top-most node_modules folder is treated as the root of the search tree." [16:12] Aria: lmatteis: Yeah, the prefix/lib is just a good place for npm to stick stuff that commandline scripts work with. [16:12] lukemelia has joined the channel [16:13] garrensmith: secoif: what does it do with dates? [16:13] secoif: lmatteis I dont get you sorry? [16:13] quackquack: Aria: k, ill go take a look at those issues. its weird though, yesterday i didnt have any errors, but when I ran my tests this morning w/o changing anything it spewed warnings [16:13] lmatteis: ok i get it [16:13] garrensmith: secoif: I like the idea of it but just worried it could be over kill [16:13] zivester has joined the channel [16:13] _Blorb has joined the channel [16:14] secoif: garrensmith it would validate Dates and empty arras as valid objects [16:14] lmatteis: secoif: no i was just saying that you guys are saying that npm does great job at squishing out the complexity of package management. but isn't the power of it inside Node (and not npm) since Node decides where to lookup the modules and allows you to have a nested tree folder structure with all the dependencies included. [16:15] Aria: Yeah. That's why it works so well. [16:15] secoif: I ended up just using node-validator [16:15] secoif: garrensmith [16:15] garrensmith: secoif: cool I'll check that out [16:15] Aria: this is new in node 0.4 -- npm 1.0 and node 0.4 co-evolved, and it's turned out great. [16:15] Aria: Nothing like getting the logic in the right place. [16:15] secoif: garrensmith https://github.com/chriso/node-validator [16:15] Aria: .oO(Imagine how Ruby would have turned out if there wasn't a language barrier around the core?) [16:16] garrensmith: secoif: thanks, I wrote a couchdb odm and I want to add validation to it. So trying to decide if I should write my own or if I can use another library. [16:16] secoif: ha, I'm using it with mongoose atm. [16:16] secoif: garrensmith you should have a look at https://github.com/1602/jugglingdb [16:17] secoif: multidb ORM [16:17] MatthewS has joined the channel [16:17] garrensmith: secoif: cool [16:17] shedinja: anyone know if length was removed from expresso? trying to test something with it and says 'undefined is not a function' when it previously worked [16:18] Vennril has joined the channel [16:18] secoif: garrensmith couch adaptor not implemented yet :/ [16:18] yozgrahame has joined the channel [16:18] garrensmith: secoif: maybe I can help with that :-) [16:19] jetienne has joined the channel [16:19] secoif: shedinja are you 100% sure the object you're trying to call length on is the expresso test? [16:19] mmalecki: shedinja: it won't work on 0.6 [16:19] mmalecki: shedinja: notice that assert is a function now [16:19] mmalecki: and functions have lengtg [16:19] mmalecki: *length [16:20] tedwing has joined the channel [16:20] mmalecki: that's the same problem I've had with vows [16:20] mmalecki: you can't simply assert.length = function () { ... } now [16:21] shedinja: oh, guess I'll have to use assert.eql [16:21] Aria: This is what you get for modifying core objects. [16:21] mmalecki: Aria++ [16:22] shedinja: secoif: yes. i did not modify the test. i was testing it again because of node v0.6.0 [16:22] mmalecki: (also, it's a bit of my fault) [16:22] secoif: I'd listen to mmalecki [16:22] erichynds has joined the channel [16:22] mmalecki: my patch made assert a function [16:23] mmalecki: but yeah, expresso shouldn't've been doing that in the first place [16:23] TheJH_phone has joined the channel [16:24] shiawuen has joined the channel [16:24] tedwing has left the channel [16:27] socketio\test\83 has joined the channel [16:28] ICO_II has joined the channel [16:30] dthompso99 has joined the channel [16:31] dgathright has joined the channel [16:32] jtsnow has joined the channel [16:33] jetienne has joined the channel [16:33] garrensmith: secoif: I think node-validator is what I want. Thanks [16:34] ICO_II: i can't get the socket.io example to run. i get the error message : Error: EACCES, Permission denied . i use node.js v0.4.11 on osx . any help is much appreciated !! [16:34] VeXii: ICO_II sounds like a port thats blocked [16:34] secoif: garrensmith no worries. Also, i've found the type detection and other utils from sugarjs is actually replacing my node validator stuff [16:35] gaarf has joined the channel [16:35] garrensmith: secoif: cool will check that out as well [16:35] secoif: cool [16:35] Aria: ICO_II: If the port is < 1024, you must be root to run it. [16:37] socketio\test\43 has joined the channel [16:37] CarterL has joined the channel [16:37] ICO_II: VeXii and Aria: Arrg . Thank you very much ! [16:38] Aria: Sure thing! [16:38] socketio\test\06 has joined the channel [16:39] Morkel has joined the channel [16:41] SargoDarya: damn, just read a really bad post about mongo.. now I'm confused if I should really use it. [16:41] Aria: From when? [16:41] Aria: (What's the post? I'd love to take a peek.) [16:41] SargoDarya: http://pastebin.com/raw.php?i=FD3xe6Jt [16:42] metaverse has joined the channel [16:43] alessioalex: that's just a bunch of troll stuff [16:43] alessioalex: they didn't gave a name or an organization [16:44] SargoDarya: hm.. ok [16:44] Aria: Yeah. [16:44] alessioalex: if MongoDB had some deep problems, than craiglist, forthsquare, MTV wouldn't use it [16:44] Aria: Also: lots of this is on old versions of mongo. [16:44] Aria: And a lot of it is assuming Mongo is ACID, and it's not. [16:44] herbySk has joined the channel [16:44] Aria: It's eventually-consistent, or should be. And as of 1.8, it got pretty reliable. [16:45] alessioalex: yup, you can also read Elitt's post (CTO 10gen) in the HN comments there [16:45] alessioalex: prompt response anyway [16:45] Aria: That said, it's got a DIFFERENT failure pattern than RDBMSes have been giving. Not worse, but surprising if you don't understand how it works. [16:45] eb4890 has joined the channel [16:45] alessioalex: 100% correct [16:45] Aria: (Guess what! Slave failures can happen in MySQL too!) [16:46] SargoDarya: Yea, I know that it sacrifices a lot of stuff and is totally different from RDBMS [16:46] Aria: (We deal with them once a week or so. And yes, auto-sharding is possibly problematic. Try doing it by hand. You'll run into similar problems, if you can even solve that problem.) [16:46] secoif: SargoDarya there are issues with any technology when you're pushing it's limits [16:46] mmalecki: I will just stick with couch for now. [16:46] Aria: Couch is also win. [16:46] Aria: though I don't envy anyone who steps on replication there too. [16:47] Aria: It has a new and different failure mode for that! [16:47] lzskiss has joined the channel [16:47] SargoDarya: alright. So I'm giving it a try [16:49] secoif: SargoDarya you'll never know unless you try. if you're just starting nosql, i found it easier to think about it like a 'persistent memcached' than 'sql without migrations' [16:50] alexdoom has joined the channel [16:51] McMAGIC--Copy has joined the channel [16:51] SargoDarya: I don't really have any problems with it but the bad things about mongo segfaulting and things like that are piling up [16:52] m00p has joined the channel [16:52] jerrysv_ has joined the channel [16:52] SargoDarya: I meant the bad things I read about it [16:52] captain_morgan has joined the channel [16:52] josephg: couch is slow though [16:52] josephg: ACTION has a write-heavy workload [16:53] josephg: - though for my app, I've been thinking of moving to flat files [16:54] maligree has joined the channel [16:55] iaincarsberg has joined the channel [16:55] SargoDarya: I somehow killed a server by trying to upgrade from ubuntu 8.04 to 10.04.. sucks.. [16:55] xerox: : ( [16:56] SargoDarya: Was only a staging server anyway. [16:56] saesh has joined the channel [16:58] Aria: You're not supposed to skip versions usually. [16:59] SargoDarya: Well, I thought I might try it out. There wasn't any important stuff I wouldn't have backed up on it so yeah. Now I know. [16:59] Aria: And this is why we have staging servers ;-) [17:00] themiddleman_itv has joined the channel [17:00] skunkape has joined the channel [17:01] SargoDarya: Right :> [17:02] SargoDarya: But I'm sure it works, I just wasn't trying hard enough! *glances to the production servers*… Naaaaah. [17:03] Aria: Haha. [17:03] Aria: You sound like our DBA at work. [17:03] slloyd_air has joined the channel [17:03] SargoDarya: lol, that sure is some scary DBA then xD [17:04] Aria: We do have to make sure he checks his work. [17:04] Aria: Otherwise we do hear "Yeah, I already did that in production. I'm just making sure the staging server matches now." [17:04] SargoDarya: LOL [17:09] SargoDarya: Does it make sense to setup a dedicated VPS for mongo? [17:09] alessioalex: hmm depends [17:10] alessioalex: if you don't want to deal yourself with sharding replication and stuff you can use something like MongoHQ [17:10] mrshogun has joined the channel [17:10] mrshogun: hi ppl [17:10] mraleph has joined the channel [17:10] maushu: SargoDarya, "dedicated" vps? [17:10] maushu: That doesn't make sense. [17:10] alessioalex: hi [17:11] garrensmith: hey mrshogun [17:11] SargoDarya: maushu: I mean dedicated mongo vps [17:12] mikedeboer has joined the channel [17:12] stagas has joined the channel [17:12] maushu: SargoDarya, still doesn't make sense. [17:12] mrshogun: ppl i have a question for you [17:13] SargoDarya: why? [17:13] maushu: SargoDarya, its not dedicated, a VPS host is already being used for other stuff. [17:13] torsd: SargoDarya: what you are trying to say is that have a vps for mongodb alone? [17:13] SargoDarya: yes [17:13] maushu: Feel free to use that vps for other stuff. [17:14] torsd: then you can [17:14] SargoDarya: maushu: why? I read that mongo can be pretty resource intensive [17:15] maushu: Unless your mongo process requires more performance (by checking the logs), in that case don't use that vps for other stuff. [17:15] maushu: Besides that you need a dedicated server. [17:16] AvianFlu: vps = one virtual piece of a physical host, dedicated = one physical host [17:16] SargoDarya: maybe later then when my stuff gets out of beta [17:16] AvianFlu: just to clarify for anybody confused [17:16] maushu: SargoDarya, what I'm trying to say is that unless your mongo process requires more performance you don't need to "waste" a whole vps on it. [17:16] ICO_II has left the channel [17:17] SargoDarya: ok. noted that. Thanks so far guys [17:17] Aria: ... I isolate my database server into its own VPS so that I can control how much disk bandwidth it gets relative to other things. [17:17] Aria: Containers are GREAT for resource management. [17:17] devrim has joined the channel [17:17] SargoDarya: maushu++ [17:17] catb0t: maushu now has 1 beer [17:17] Aria: Though Mongo is so simple, it shares well unless you are pushing it to the limit of what the VPS|hardware allows. [17:18] maushu: Aria, about containers, ever used LXC? [17:18] MatthewS has joined the channel [17:18] jbrokc has joined the channel [17:18] davidvanleeuwen has joined the channel [17:19] Aria: Yeah. Not ready for prime time yet but getting close. [17:19] Aria: Virtuozzo is my favorite at the moment. [17:19] maushu: Heroku has been using it. [17:19] Aria: Yeah. Heroku's got a pretty narrow use-case, since they don't allow general access or a full OS inside the containers. [17:19] maushu: I also wanted to use it to sandbox node.js processes. [17:20] Aria: If you fit within the feature set, it's excellent, and you have low-level control. [17:20] Aria: Yeh, it's perfect for sandboxiing. [17:20] Aria: It's basically BSD Jails done a different way. [17:20] maushu: The problem I'm having is configuring the network. [17:20] maushu: I just want a link between the host and the containers. Nothing more. [17:21] maushu: ...the only way I can see is creating a bridge for every container. Ugh. [17:22] bearnard has joined the channel [17:22] nopnop has joined the channel [17:22] isaacs has joined the channel [17:23] jbrokc__ has joined the channel [17:24] rio{ has joined the channel [17:25] uchuff has joined the channel [17:26] madhums has joined the channel [17:26] mike5w3c has joined the channel [17:26] Aria: Yeah. I think there's something more specific you can add, but I can't remember what. [17:26] joshkehn has joined the channel [17:26] joshkehn has left the channel [17:26] Aria: An IP-level thing, not a bridge level thing. It's been a while since I set my test up. [17:27] ryanfitz has joined the channel [17:31] cconstantine_ has joined the channel [17:32] aliem has joined the channel [17:34] cconstantine_: With the new cluster module, I'm assuming only one process can listen on a port at a time; how do the child processes listen on the same port? [17:34] jbrokc_ has joined the channel [17:34] isaacs: JasonSmith: hey, you around? since the 1.1.1 update, we've been seeing a lot of bad_utf8_character_code, it seems like. [17:34] alessioalex: all of them can listen on the same port [17:35] JasonSmith: isaacs: Oh really? [17:35] isaacs: JasonSmith: yeah [17:35] JasonSmith: I will downgrade it pending further testing [17:35] isaacs: i just kicked _restart, and that always seems to fix it [17:35] isaacs: but there should be some errors in the logs from just now [17:35] cconstantine_: alessioalex, am I wrong that multiple processes (not node specific) can't listen on the same port? [17:36] mraleph has joined the channel [17:36] isaacs: cconstantine: the master server listens on the port, then it shares the file descriptor with the children [17:36] alessioalex: no you're right about that, it's only that Node forked processes (with cluster) can actually listen to the same port [17:36] jaequery has joined the channel [17:36] isaacs: cconstantine: so, the fd is opened once, and the actual fd is passed to the children. so, the port is only opened once, but there are multiple processes calling accept() on the same file descriptor [17:37] mmalecki: is there a way to achieve daemon-like behaviour with cluster? [17:37] isaacs: mmalecki: i don't think it's really for that. [17:37] mmalecki: isaacs: I know it isn't, just wondering [17:37] cconstantine_: isaacs, ahh, awesome. So my special nifty socket lib will still work. [17:37] isaacs: mmalecki: the best way to daemonize would be to use something like upstart, imo [17:37] JasonSmith: isaacs: You're back on 1.1.0 [17:38] mmalecki: isaacs: daemon.node is a win here [17:38] isaacs: cconstantine: it should. so, here's the thing tho: the children don't have any shared global state or memory. [17:38] JasonSmith: I'll dig in to the logs tomorrow [17:38] JasonSmith: ACTION notes the time [17:38] isaacs: cconstantine: so, you can't keep session data in a plain old js object, or whatever. [17:38] isaacs: JasonSmith: thanks, man, you rock! [17:39] agnat_ has joined the channel [17:40] mmalecki: I hope it fixes replication issues [17:40] coreb1 has joined the channel [17:40] Jay has joined the channel [17:40] AvianFlu: "There are two kinds of DBs - the ones people bitch about and the ones nobody uses." LULZ! [17:41] mmalecki: AvianFlu: :D. have you read this mongodb rant? [17:41] neurodrone has joined the channel [17:41] AvianFlu: yeah, it seems like FUD [17:41] Aredridel has joined the channel [17:41] tbranyen: AvianFlu: do you live in santa clara by any chance? [17:41] AvianFlu: nah, SF [17:41] tbranyen: someone has your nick as an ssid [17:41] tbranyen: :-p [17:42] AvianFlu: that's lulz [17:42] AvianFlu: especially cause it's not my ssid [17:42] tbranyen: lol [17:42] AvianFlu: I used to be @AvianFlu on twitter but the CDC has it now >.< [17:42] mmalecki: JasonSmith: hey, do you maybe have an idea why replicatin isaacs' registry fails with invalid_json error? [17:42] AvianFlu: now I'm Av1anFlu instead >.< [17:43] isaacs: JasonSmith: yeah, that was another thing... the bad character code <<>> thing seemed to return, too [17:43] saschagehlich has joined the channel [17:44] bnoordhuis has joined the channel [17:44] mmalecki: AvianFlu: they, like, took it or what? [17:44] AvianFlu: yeah, it was inactive at the time [17:44] xsyn has joined the channel [17:45] mmalecki: sucks [17:45] saschagehlich: hey is there a way to use fs.watchFile and get the content that has been appended to the file? I have a logfile that gets 1000 new lines per second and I'd like to stream the new lines live via socket.io [17:45] AvianFlu: now I just have to wait for them to cure influenza and I'll take it back! XD [17:45] mmalecki: hahaha XD [17:45] AvianFlu: or maybe I'll just have to make my internet name more famous than the disease [17:45] AvianFlu: one way or the other [17:46] mmalecki: first one! [17:46] mmalecki: like, making your name more famous. that one. [17:46] simenbrekken has joined the channel [17:46] mmalecki: (I'm bad at numbers) [17:47] mmalecki: also, could anyone here try updating erlang with homebrew? [17:47] mmalecki: it fails hard >.< [17:47] AvianFlu: seriously, compile it yourself [17:48] mmalecki: yeah, downloading the source now [17:48] AvianFlu: I really don't trust package managers for stuff like that [17:48] AvianFlu: and I had epic fail trying to do it from apt, too [17:48] mmalecki: although looks like it's a problem with llvm [17:48] mikeal has joined the channel [17:48] JasonSmith: isaacs: You mean it returned in 1.1.1 or just now after the downgrade? [17:48] isaacs: JasonSmith: it returned in 1.1.1 [17:48] isaacs: mmalecki: can you try replicating again? [17:48] mmalecki: because you know what Apple did? they made gcc a frontend for gcc >.< [17:48] JasonSmith: mmalecki: There was one problem where there was basically a minor corruption of one document ID however that is scrubbed now [17:49] mmalecki: isaacs, JasonSmith: still, the same error [17:49] JasonSmith: Filipe told me he knows of another replication issue specifically when pulling the NPM registry and we are working on that presently [17:49] isaacs: ah, interesting [17:49] mmalecki: also, they made gcc a frontend for llvm, ofc [17:50] alexdoom has joined the channel [17:50] mmalecki: that's kind of bullshit [17:50] JasonSmith: mmalecki: Are you able to get a tcpdump of your interaction? [17:50] JasonSmith: could be a good excuse to play with node-pcap :) [17:51] Bonuspunk has joined the channel [17:51] guillermo has joined the channel [17:51] Sorella has joined the channel [17:51] mmalecki: I will try deleting database I replicated with mikeal's replicate before [17:53] mmalecki: JasonSmith: hm, ok, it doesn't fail that hard now, but it's stuck on 'Starting' [17:53] jbrokc__ has joined the channel [17:54] isaacs: mmalecki: are you replicating through futon or from curl? [17:54] mmalecki: isaacs: curl [17:54] braddunbar has joined the channel [17:54] mmalecki: tcpdump tells me that it's talking to amazonaws [17:54] JasonSmith: I think an npm cloner tool is in my near future of projects to make [17:54] mmalecki: I assume that it's what couchone uses, right? [17:54] tisba_ has joined the channel [17:55] isaacs: JasonSmith: someone put together a pull req for a `replicate` command [17:55] mraleph has joined the channel [17:55] isaacs: JasonSmith: i'm not sure it belongs in npm itself, but it seemed like a neat idea [17:55] jslatts has joined the channel [17:55] ej_h has joined the channel [17:55] dgathright has joined the channel [17:55] JasonSmith: something where you specify a couch URL, or it (naturally) calls the Iris Couch API to provision one for you, and then it triggers replication and probably monitors it. That way we can all be on the same page talking about things going right/wrong [17:55] isaacs: JasonSmith: right [17:56] isaacs: JasonSmith: it'd be pretty damn awesome if there was a single command to set up a mirror registry [17:56] mmalecki: JasonSmith: it failed now [17:56] isaacs: i've got one going, too, seems to be working so far [17:56] mmalecki: JasonSmith: json_encode again [17:56] isaacs: mmalecki: what version of couchdb are you using? [17:56] mmalecki: isaacs: 1.0.2 [17:56] JasonSmith: isaacs: Yeah, and a later milestone, but something I'm trying to keep in mind, is a way to have policies. Maybe not proper filtered replication, but some way to say "I like the 'cheese' package and everything it depends on. That's all I want on my repo" [17:57] _unary_ has joined the channel [17:57] JasonSmith: mmalecki: I Think there are issues between 1.0.x and 1.1.x replication [17:57] ultramagnus has joined the channel [17:57] stagas has joined the channel [17:57] mmalecki: JasonSmith: ah, ok, I will give it a try on 1.1 [17:58] mmalecki: (once I compile erlang) [17:58] enmand has joined the channel [17:58] isaacs: JasonSmith: yeah, i was considering even something kinda like the CouchDBX would be awesome. [17:59] isaacs: JasonSmith: like, wrap up couchdb, replication policies, and even the ability to install stuff into certain folders, all in a gui [17:59] isaacs: then the local registry mirror is like an offline cache that just updates when it can. [18:00] mmalecki: also, shameless advertisement: if you're using vim with node.js, you'll probably like my script for detecting node shebangs: https://github.com/mmalecki/vim-node.js / http://www.vim.org/scripts/script.php?script_id=3798 [18:00] JasonSmith: isaacs: Yeah one of my fantasy projects is an app in the Mac app store that is just like, voila! [18:00] ICO_II has joined the channel [18:00] isaacs: JasonSmith: yeah [18:00] isaacs: maybe even bundle node in there, too, wth [18:01] JasonSmith: because I already have a nice, tight, standalone build of CouchDB and all its dependencies and NodeJS and NPM [18:01] isaacs: while we're blue-skying this ask [18:01] JasonSmith: As we speak I have a build/ directory that anybody with OS X Lion could rsync from me and have crazy couch and Node [18:01] isaacs: and you could have just the wrapper around the gui be different, and use exactly the same code for a windows client [18:01] JasonSmith: but it's like... the app store? Am I crazy? Not while couches are still crashing :) [18:02] ohtogo has joined the channel [18:02] JasonSmith: they don't crash so much anymore, but now we're into secondary issues like replication [18:02] maligree has joined the channel [18:02] isaacs: i hear ya [18:04] scottschecter has joined the channel [18:04] ericnakagawa has joined the channel [18:06] JakeSays: i'm trying to build an addin and i'm getting unresolved symbols while linking: ev_default_loop_ptr, eio_custom, ev_ref and ev_unref. any ideas? [18:07] ICO_II: in regards to socket.io . is there a socket.broadcast.emit function that broadcasts to everybody including the client who started the broadcast ? [18:07] d4rk1ink_ has joined the channel [18:07] swaj: so I've hooked in some custom error handling for my express app. Is there a good library for sending emails? I'd like to email myself stack traces and such in production when errors happen. [18:08] ej__h has joined the channel [18:08] Aria: That's an addin for 0.4, JakeSays. It has to be ported to libuv for 0.6. [18:08] Aria: The ports are simple, but not automatable. There's a few semantic differences, and libuv is simplified over libev. [18:08] JakeSays: Aria: i was afraid you'd say that. [18:09] Aria: I know how to do the entire port except eio_custom (I've never used it) [18:09] Aria: I'd be happy to help if you want to dive into it. [18:09] JakeSays: Aria: well, there's only two methods that appear to use the old code: EIO_ToBuffer and EIO_AfterToBuffer [18:09] JakeSays: Aria: i'd greatly appreciate it :) [18:09] Aria: What's the module? [18:09] JakeSays: node-canvas [18:10] JakeSays: Aria: https://github.com/LearnBoost/node-canvas [18:10] Aria: Oh node-canvas. Fun! [18:10] Aria: ACTION gets the hardcore forking action on [18:10] JakeSays: its the Canvas class that is using the eio stuff [18:11] Aria: Yeah. [18:11] patcito has joined the channel [18:11] swaj: I'm sure tj would appreciate a 0.6 update and a pull request :P [18:12] Aria: I'm sure. [18:12] ICO_II: ah ok i managed . i just had to use sockets instead of socket 8) which makes sense . [18:13] TheNumb has joined the channel [18:13] dharmesh has joined the channel [18:13] jbrokc_ has joined the channel [18:13] angryferrey has joined the channel [18:14] isaacs: SubStack: can i get a npm publish on that mkdirp goodness? [18:16] JakeSays: Aria: so what are those two EIO_ functions doing? [18:16] Aria: I'm looking. [18:17] Aria: Basically, after the EIO function returns, it converts its results into something node can deal with (a buffer), and vice versa going the other way. [18:17] JakeSays: hmm. they're actually used in Canvas::ToBuffer [18:18] JakeSays: and only in the async case [18:18] mmalecki: yeah, fuck. erlang won't build >.< [18:18] apoc has joined the channel [18:19] jtsnow has joined the channel [18:19] yozgrahame has joined the channel [18:19] shogun has joined the channel [18:20] fly-away has joined the channel [18:20] devongovett has joined the channel [18:21] cognominal_ has joined the channel [18:21] JasonSmith: Did y'all see that Slashdot post about Javascript on Stack Overflow? [18:21] mmalecki: yeah [18:21] JasonSmith: Javascript is the #1 language because it is so hard. I love it [18:21] mmalecki: it's funny [18:21] JasonSmith: The Node community should own that [18:22] JakeSays: hard. lol. [18:22] isaacs: JasonSmith: link? [18:22] JakeSays: thats a sad commentary on the state of our industry [18:22] JasonSmith: Just start asserting that as a fact with a straight face [18:22] JasonSmith: isaacs: http://www.dodgycoder.net/2011/11/stackoverflows-programming-language.html [18:22] zeade has joined the channel [18:22] cjm has joined the channel [18:22] JasonSmith: wherein JS owns C# and a power law distribution ensues [18:23] mikeal: that's such a terrible argument [18:23] mikeal: it was C# for years [18:23] mikeal: because the authors are C# programmers and because they seeded it by bringing over a huge C# community [18:24] mikeal: nobody ever claimed that C# was popular there because it was hard, it was always because there were just more damn people [18:24] JasonSmith: note, that graph is very hard to understand. That is *relative* difference in representation between two totally meaningless measurements [18:24] isaacs: well, also, javascript is used by a lot of non-javascript programmers [18:24] JasonSmith: Nah dude, JS is populare because it's hard. It's self-evident. [18:24] JakeSays: isaacs: non-programmers [18:24] andrewfff has joined the channel [18:24] JasonSmith: The key is the deadpan face when you say it [18:24] jbrokc__ has joined the channel [18:24] JasonSmith: that sells the whole joke [18:24] isaacs: JakeSays: nono, like, ruby programmers, c# programmers, etc. [18:25] JakeSays: i'm a c# programmer and have no problem with js [18:25] isaacs: people who know how to code, and know enough to ask questions on SO, but are completely clueless about hte intricacies of js [18:25] isaacs: JakeSays: sure. but i'm guessing you know a bunch of c# folks who are decent programmers, but kinda clumsy with js [18:26] mikeal: this chrat is interesting [18:26] mikeal: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html [18:26] JakeSays: isaacs: heh. no, they're clumsy period. [18:26] isaacs: JakeSays: i've met a lot of c programmers who write js that looks like c, and php programmers who make js that looks kind of like php [18:26] davidascher has joined the channel [18:26] TheJH_phone has joined the channel [18:26] JakeSays: isaacs: and my js looks like c#/c++. lol [18:26] isaacs: JakeSays: they're not naturally clumsy. it's just tha tworking in a ms stack full time drives a person to drink a lot. [18:26] JasonSmith: My guess is, this effect (and it has yet to be established that the effect is meaningful) has to do with some halfway-decent and mature C# and Java support communities already out there, but S.O. hit Javascript's second wind just at the right time [18:27] mikeal: Java lost almost 1% of its popularity in September. If this trend continues, C will be number one again next month. [18:27] mikeal: fuq ya! [18:27] isaacs: JakeSays: when i worked with vb full time, a bunch fo people probably thought i had a speech impediment and was just a really bad driver. [18:27] JasonSmith: I have no idea what that means but I believe it is hilarious. [18:27] Squeese has joined the channel [18:28] isaacs: actually, that's not fair. unix systems drive people to drink, as well. computers are just terrible, that's the problem. [18:28] JakeSays: Aria: anything i can do? i dont know libeio or libuv so i'm a bit clueless. [18:28] JasonSmith: The question posed to our generation is this: [18:28] JasonSmith: Are computers part of the problem? [18:29] JasonSmith: Or are computers part of the problem and also part of the solution? [18:29] Aria: I'm poking at getting cairo working so I can compile it, JakeSays. It shouldn't be hard. [18:29] Aria: (but I'm on a Mac, and so Cairo is being annoying.) [18:29] JakeSays: Aria: ah ok. cool. [18:29] mikeal: C is nearly twice as popular as C++ on this chart [18:29] JakeSays: yeah. cairo was a pain on windows as well [18:29] Aria: And the coffeeshop just started playing christmas music. That's gonna slow me down [18:29] JasonSmith: mikeal: I've heard that stat a bunch. Who are all these C programmers? Or is it that nobody bothers with C++ anymore? [18:30] MatthewS has joined the channel [18:30] mikeal: "The ratings are based on the number of skilled engineers world-wide, courses and third party vendors." [18:30] JakeSays: JasonSmith: they're really c++ devs who aren't ready to come out of the closet [18:30] mikeal: 1) lots of people know C [18:30] Aria: Lots of people call C++ C, most unix people have to touch as much C as C++ if not more, and C is a better binding language, since it's got a one-dimensional ABI. [18:30] ICO_II has left the channel [18:30] mikeal: 2) it's tought in any CS school that isn't shit [18:31] mikeal: 3) by "third party vendors" i think they mean IDEs [18:31] mikeal: there are lots of C IDEs [18:31] JasonSmith: I thought a lot of those surveys are what you are *paid* to write, not like what is the lingua franca that everybody halfway remembers [18:31] JasonSmith: but yeah, all valid points [18:31] mikeal: lots of people write C [18:32] JakeSays: and yeah, when it comes to gluing things together, c is just about the best glue around [18:32] JasonSmith: Now I feel like programming in C is like my old childhood nightmares of running from a monster but I am stuck in tar. [18:32] mikeal: lua is climbing, that's cool to see [18:32] eddyb: freaking C geeks [18:32] paul__ has joined the channel [18:32] mikeal: JasonSmith: that's C++ for me [18:32] JasonSmith: You write code nonstop, all day, and you've got this teeny tiny mote of an application [18:33] JasonSmith: That is actually how I describe Javascript now, if I am pressed to "defend" it [18:33] JasonSmith: it's like, yeah, it sucks, whatever. You'll get so much shit done your head will spin [18:33] JakeSays: javascript is such an odd beast. [18:33] eddyb: I hate when I'm not able to do anything, like, paralyzed, and I have the urge of proving that I can do something and I find myself a lousy coder [18:33] JasonSmith: speaking of which... [18:35] isaacs: C is the language used to program pretty much 100% of embedded devices. [18:35] ceej has joined the channel [18:35] isaacs: a lot of programming isn't iPhone apps and web pages. [18:35] jbrokc_ has joined the channel [18:36] ceej: anyone here use http://lesscss.org/ ? [18:36] isaacs: JasonSmith: replication worked flawlessly [18:36] JasonSmith: Now I must be dreaming! [18:36] Aria: I've written C in every job I've ever been at. Even the new PHP job. It turns out that sometimes you need just a little dash of it as secret sauce. [18:36] simenbrekken has joined the channel [18:37] JakeSays: yup [18:37] ceej: seems like you can't do @import url("@{twitter_dir}reset.less"); [18:37] eddyb: C sucks when you want operators. or templates. or just plain methods. or just overloading [18:37] Aria: Yep. But it rocks when you want to avoid all that semantic overloading and have something that has only one dimension of identifiers. [18:38] willwhite has joined the channel [18:38] JakeSays: C is really nice then the only other alternative is assembly. [18:38] ej_h has joined the channel [18:39] eddyb: JakeSays: I'm sorry for you man [18:39] `3rdEden has joined the channel [18:39] JakeSays: eddyb: why is that? [18:39] eddyb: not having other alternatives [18:39] Aria: (I really prefer C over C++) [18:39] Aria: (Very very strongly.) [18:39] eddyb: I'm sorrier for me because today I had to finish rewriting node's code but I found it so messy/hard for me to replicate it under my API that I gave up [18:40] JakeSays: eddyb: dont be. it usually means i'm working on something very interesting. [18:40] eddyb: played some wow and watched videos on youtube all fucking day [18:40] JakeSays: eddyb: hmm. maybe there's something wrong with your api [18:40] Aria: Oh, whoa, JakeSays. Looks like the git head version of node-canvas already works on 0.5.x. Try installing that rather than the npm published version [18:41] JakeSays: Aria: i'm on git head [18:41] Aria: Really. Huh. [18:41] eddyb: JakeSays: well, there were no devs (familiar with some v8 internals I was curious) about when I asked, and I gave up [18:42] Aria has left the channel [18:42] Aria has joined the channel [18:42] Aria: Doh. [18:42] JakeSays: Aria: yeah. last commit was two days ago [18:42] eddyb: my API isn't that bad, you can basically have var a = "test"; or var b = Object(); b["a"] = 5;b["cb"](1, 2, this, "fu"); [18:43] harthur has joined the channel [18:43] eddyb: or any weird combination of all those [18:43] eddyb: https://github.com/LearnBoost/node-canvas << this is so cool [18:44] Aria: Yeah. That's what I just compiled. [18:44] JakeSays: eddyb: it will be when i get it working under windows :) [18:44] Aria: Do you have some old node 0.4.x headers lying around? [18:44] eddyb: I could have a standalone version of an web-game / web-client [18:44] JakeSays: Aria: not that i'm aware of. [18:44] Aria: (did you install node 0.6 over 0.4, or did you clean up, or did you install elsewhere?) [18:44] Aria: It sounds a lot like you hit node 0.4 headers. [18:45] JakeSays: Aria: i started totally clean [18:45] Aria: Never used 0.4 on that box? [18:45] JakeSays: nope [18:45] JakeSays: its a windows box [18:45] Aria: Hrm. [18:45] JakeSays: but to get it to compile i did have to include eio.h and ev.h from uv-private [18:45] Aria: Oh, wait, what?! [18:46] JakeSays: lol yeah [18:46] Aria: you DON'T want to do that. ev.h is UNIX only. [18:46] JakeSays: ah [18:46] Aria: That would explain your linker error ;-) [18:46] JakeSays: but w/o those headers Canvas won't compile [18:46] Aria: What does it say? [18:46] stisti has joined the channel [18:47] eddyb: nobody feels sorry for the poor guy trying to make bindings easier [18:47] eddyb: oh, well [18:47] eddyb: I might as well give up [18:47] myo has joined the channel [18:47] JakeSays: Aria: http://ideone.com/Fs32I [18:47] eddyb: https://github.com/eddyb/gearbox-node [18:47] perezd has joined the channel [18:47] eddyb: so much time lost and it's still happening to me [18:48] Aria: What's happening, eddyb? Nobody can help if you just complain without talking about what you're really working on and what's happening. [18:48] Aria: What compiler is this, JakeSays? MSVC? [18:48] JakeSays: Aria: yes. [18:48] neurodrone has joined the channel [18:49] Aria: Okey. [18:49] eddyb: Aria: lol, not asking for help [18:50] eddyb: just in a "life sucks" mode [18:50] Aria: Ah. [18:50] eddyb: mood even [18:50] Aria: It's kinda annoying. I'd rather fix the broken toys. [18:50] JakeSays: Aria: 10-4 [18:51] alexdoom has joined the channel [18:51] langworthy has joined the channel [18:53] bnoordhuis has joined the channel [18:53] perezd_ has joined the channel [18:56] EvRide has joined the channel [18:58] guillermo has joined the channel [18:59] perezd has joined the channel [18:59] Aria: Arr. I see the problem, JakeSays. libeio is also unix-only. [18:59] perezd_ has joined the channel [18:59] Aria: So while node-canvas has been ported forward, it hasn't lost the unix dependency. [18:59] level09 has joined the channel [18:59] perezd_ has joined the channel [18:59] JakeSays: oh yay [19:00] JakeSays: ok so i need to hack around it. [19:00] JakeSays: it appears to be for async support. maybe i can just disable the async support? [19:01] Aria: Yeah, that'd be the cheap way. [19:01] g4g33k has joined the channel [19:01] tomyan has joined the channel [19:01] lmatteis: hello, still regarding npm [19:01] lmatteis: other than putting modules in place [19:01] Aria: Though it's not likely hard to fork a thread, then uv_async to notify when it completes. [19:02] lmatteis: what else does it do? how exactly does it resolve dependency conflicts? maybe i need an example of a dependency conflict [19:02] Aria: Dependencies don't often conflict. [19:02] Aria: (since each module's dependencies are isolated from other module's dependencies) [19:03] JakeSays: Aria: ah so uv_ref instead of ev_ref.. those kinds of things [19:03] Aria: app -> (foo -> lib v 1), (bar -> lib v 2) [19:03] lmatteis: Aria: right, but an example of a conflict that it would solve? [19:03] Aria: In rubygems, app -> foo -> lib v1 and bar -> lib v2 would be a conflict "Can't activate lib v1 and v2 at the same time" [19:03] Aria: fg [19:04] Aria: JakeSays: Yeah. The EIO_custom is the only part that's hard -- that's basically a wrapper around "do this in a thread and tell me when it's done" [19:04] Aria: Almost all ev stuff can be converted to uv stuff. [19:04] JakeSays: ah ok. [19:04] mynyml has joined the channel [19:04] JakeSays: yeah. spooling up a thread sounds like the way to do it then [19:04] level09: Where can I find some good resources on how to use async ? [19:04] level09: the documentation examples are not clear enough [19:04] Aria: level09: using it to do what? [19:04] hkjels has joined the channel [19:05] level09: Aria: distributed scrapping [19:05] level09: with async and jsdom [19:05] CarterL has joined the channel [19:06] JakeSays: Aria: or maybe uv_queue_work ? [19:07] Aria: Ooh, not just async, but distributed. That's a whole other level of new stuff, level09 [19:07] hkjels: Know of a good indexer / search for node that does not require running an actual db-server? [19:07] Aria: I think uv_queue_work is more akin to process.nextTick: It does it synchronously, but later. [19:07] level09: Aria: I'm referring to the async module, it allows writing synchronous and asynchronous tasks [19:07] justmoon has joined the channel [19:07] Aria: level09: what 'async' module? [19:07] lmatteis: Aria: so virtually it solves the conflicts issue by localizing each module [19:07] level09: one sec [19:08] JakeSays: Aria: the commends suggest it happens on the thread pool [19:08] Aria: Caolan's? [19:08] JakeSays: *comments [19:08] Aria: Oh, interesting. [19:08] Aria: lmatteis: Yep. [19:08] level09: sorry i thought it was popular [19:08] level09: https://github.com/caolan/async [19:08] Aria: Oh. So it does, JakeSays [19:09] Aria: level09: It's ... a thing, sure. But you only use it if it solves a problem you're having. Are you having THAT problem? [19:09] level09: Aria: kind of, asynchronous code can get really ugly [19:09] Aria: Anyone who uses a flow control library without having written their own probably doesn't understand it. [19:09] Aria: level09: Sure, sometimes. What problem are you trying to solve with it? [19:10] Aria: Sounds a little like you've found a really nice hammer and are looking for things to hit with it. [19:10] JakeSays: Aria: lol the implementation of uv_queue_work uses eio_custom [19:10] Aria: Always? [19:10] level09: Aria: I want a way to execute function in a sequence and in parallel sometimes [19:10] perezd has joined the channel [19:10] level09: without writing any recursive code [19:10] JakeSays: Aria: there's no #ifdefs around it [19:10] level09: or some ugly chaining [19:11] Aria: Hm. [19:11] Aria: level09: Okay. .. why? [19:11] level09: Aria: if we keep hooking functions to the callback, we will reach a point where the code is completely unreadable [19:11] perezd has joined the channel [19:11] level09: even if we split them into separate functions [19:11] Aria: Sure, sometimes. [19:11] Aria: But you have to use the right tool to solve your complexity. [19:12] level09: Aria: do you recommend anything else? [19:12] Aria: Depends on what problem you're solving! [19:12] level09: I'm just trying really [19:12] level09: I used to use http-agent module [19:12] level09: Aria: okay here is the problem [19:13] level09: let's say I want to execute tasks A B C in a sequence [19:13] level09: then within task A I want A1 A2 A3 to be executed in parallel [19:13] Aria: JakeSays: in libuv/src/win/threadpool.c, there's uv_queue_work without eio. [19:14] takezawa has joined the channel [19:14] Aria: JakeSays: in libuv/src/unix/, there's one with. [19:14] JakeSays: Aria: a excellent :) [19:14] JakeSays: ok cool. sounds like the fix is uv_queue_work then [19:14] Aria: Yeah. [19:14] perezd_ has joined the channel [19:14] michaeldeol has joined the channel [19:14] Aria: level09: Okay: So you do that. Sounds like you need "wait for all completion" pattern for the parallel tasks, and sequential dispatches for the first. Those are both trivial to write helpers for. [19:14] perezd has joined the channel [19:15] carnau has joined the channel [19:15] Aria: level09: https://github.com/substack/node-seq might be what you want. [19:15] Aria: (Sounds like you don't actually want things like "parallel map") [19:15] Kunda has joined the channel [19:16] level09: Aria: cool, thanks, I was wondering though, if there is a way to find out how reliable a module is [19:16] level09: since there are dozens of them that do the same thing [19:16] Aria: There is. Use it. [19:16] markwubben has joined the channel [19:16] Aria: Yeah. Like I said, anyone who doesn't write their own flow control library doesn't actually understand it. [19:17] Aria: These are relatively trivial wrappers. [19:17] Aria: So there's tons of implementations. Read a couple. Understand them. [19:17] Morkel has joined the channel [19:17] Aria: Then use the one with the prettiest API, but it won't save you from knowing what it does. It'll just help keep your code tidy by isolating that pattern into a reusable space. [19:18] paulwe has joined the channel [19:18] Aria: There aren't too many edge cases. Error propagation is something you may want to think about. [19:18] Aria: That's where it gets dicey. [19:18] Aria: Substack's module does that decently with catch() [19:19] jocafa has joined the channel [19:20] carnau: hi, can anyone give me some hints on how to configure a nodejs server with socket.io extension? I've installed all necessary packets but don't know what's next. [19:21] ultramagnus has joined the channel [19:22] gaarf has joined the channel [19:22] JakeSays: Aria: dude.. that was painfully easy :) (how hopefully it'll run) [19:22] gaarf has left the channel [19:22] Aria: ACTION grins. [19:22] Aria: Glad I encouraged you to go for it. [19:22] JakeSays: yea me too. thanks! [19:23] JakeSays: so how i have my custom node.exe with node-canvas baked in. how does the module get initialized? [19:23] JakeSays: do i compile in the node-canvas js libs ? [19:24] Aria: Baked in? [19:24] Aria: You didn't make a .node file? [19:24] JakeSays: no [19:24] Aria: Oh dear. [19:25] technoweenie has joined the channel [19:25] Aria: Usually node modules are, well, modules. [19:25] Lingerance: Windows has issues with .node files IIRC [19:25] JakeSays: lol yeah well node-waf is DOA on windows [19:25] Aria: Hopefully, you could just require the javascripts and it'll find the bindings. [19:25] Morkel: What is a good framework to build a web scraper with node.js? [19:25] Aria: Morkel: zombie's decent. [19:25] technoweenie: hey has anyone had issues compiling node 0.6.0 on lion [19:25] ryanfitz has joined the channel [19:25] jocafa has joined the channel [19:25] technoweenie: Build failed: -> task failed (err #2): {task: libv8.a SConstruct -> libv8.a} [19:26] technoweenie: bunch of undefined symbols like "operator delete(void*)" [19:26] heavysixer has joined the channel [19:26] enmand has joined the channel [19:26] Morkel: Aria: Thanks this looks not bad [19:26] TheJH_phone: technoweenie, I think I've seen that error before [19:27] mmalecki has joined the channel [19:27] technoweenie: i managed to get 0.4.12 from homebrew [19:27] juanlargo has joined the channel [19:27] technoweenie: i'm only considering upgrading now because msgpack isnt compiling either. [19:27] jbpros has joined the channel [19:28] mmalecki: technoweenie: why would you use homebrew? it's a lot easier to just compile it from sources or use things like nvm [19:28] technoweenie: 0.4.12 worked with brew, 0.6.0 isnt working from source [19:29] mmalecki: technoweenie: log? [19:29] perezd_ has joined the channel [19:29] parshap has joined the channel [19:30] aron_ has joined the channel [19:30] perezd_ has joined the channel [19:30] technoweenie: https://gist.github.com/dda71160d4c3ec8237c1 [19:30] JakeSays: Aria: node_extensions.h :) [19:31] technoweenie: i put what i thought was the relevant error above [19:31] mmalecki: technoweenie: looks like a hell mixed up with Justin Bieber [19:31] mmalecki: technoweenie: which XCode version do you have? [19:31] kazupon has joined the channel [19:31] technoweenie: latest, 4.2 i guess [19:32] mmalecki: technoweenie: then something is messed up. can you `ls -l /usr/bin/gcc` and `ls -l /usr/bin/gcc-4.2`? [19:33] criswell has joined the channel [19:34] eephillip has joined the channel [19:34] mc_greeny has joined the channel [19:35] technoweenie: oh /usr/bin/gcc is linking to llvm-gcc-4.2 [19:36] mraleph has joined the channel [19:36] mmalecki: technoweenie: yeah, it's ok [19:36] mmalecki: but I have no idea why it uses gcc-4.2 [19:36] mmalecki: technoweenie: try to export CC=/usr/bin/gcc [19:36] Aria: Oh, interesting, JakeSays. Horrible, but ... needed while Windows is in flux. [19:36] mmalecki: and export CPP=/usr/bin/g++ [19:37] JakeSays: Aria: hey horrible is no prob if it works :) [19:38] joshkehn1 has joined the channel [19:38] joshkehn1 has left the channel [19:39] technoweenie: yea thats getting me the same error [19:39] technoweenie: looks like its still using gcc-4.2 [19:40] mmalecki: technoweenie: hm, OK. we have to force it to use /usr/bin/g{cc,++} [19:40] Aria: That should be fine-- it's what I use. [19:40] technoweenie: https://github.com/mxcl/homebrew/issues/8193 ? [19:41] dgathright has joined the channel [19:41] mmalecki: technoweenie: good idea :) [19:41] mmalecki: I'm pretty sure there is some other way [19:41] mmalecki: but yeah, good walk around [19:42] technoweenie: that did it [19:42] mmalecki: cool :) [19:44] tilgovi has joined the channel [19:44] tilgovi has joined the channel [19:46] hlindset has joined the channel [19:48] amphib has joined the channel [19:49] jacobolus has joined the channel [19:50] blup has joined the channel [19:51] alexdoom has joined the channel [19:51] megatx has joined the channel [19:51] blup_ has joined the channel [19:52] carnau has joined the channel [19:52] Swizec: how do people make command line tools in node? [19:53] scottschecter has joined the channel [19:53] Swizec: how do you convince npm to install into /usr/bin or something? [19:53] technoweenie: npm install -g [19:53] technoweenie: that should install it globally [19:54] technoweenie: users may have to add something to PATH though, /usr/bin would require root [19:54] benvie: .node files work fine on windows...if you compile them correctly on windows =D [19:54] mmalecki: Swizec: use bin property https://github.com/mmalecki/ngrep/blob/master/package.json#L6 [19:55] Swizec: mmalecki thanks [19:55] Swizec: and other than that I just develop normally? [19:56] benvie: also it's important to note that there's a lot of other stuff that happens in any random C+++ module than may or may not (probably not) be ported to windows yet [19:56] benvie: so it's not just magically going to work [19:56] mmalecki: Swizec: yeah [19:57] benvie: most of its trivial but does require someone to actuall do some work [19:57] bnoordhuis: mmalecki: CXX=/path/to/g++, CPP is the preprocessor [19:57] mmalecki: bnoordhuis: ah, sorry about that [19:58] benvie: nearly everything in node core and friends is expected to work in windows unless noted otherwise [19:58] dnyy has joined the channel [20:01] Xano has joined the channel [20:01] louissmit has joined the channel [20:02] benvie: lol "Removing Crockfords tears from this patch." [20:02] chrixian has joined the channel [20:02] mmalecki: lol [20:03] mikenyc has joined the channel [20:03] magnetik_ has joined the channel [20:06] d4rk1ink_ has joined the channel [20:06] swaj: Can you add multiple custom validators on a mongoose model? [20:06] TheJH has joined the channel [20:06] swaj: mongoose schema property I guess I should say. [20:07] tlynn has joined the channel [20:07] Wizek has joined the channel [20:09] jbpros has joined the channel [20:10] threefish has joined the channel [20:12] mikenyc has left the channel [20:14] Danielss89 has joined the channel [20:14] Danielss89: Hi.. [20:14] JakeSays: Aria: holy crap it works! very cool [20:14] Danielss89: Anyone using socket.io having trouble with the authorization cookie data? It doesn't get event get set with me :S [20:16] garrensmith has joined the channel [20:16] Aria: Yay, JakeSays! [20:16] Aria: Send a pull request to TJ! [20:17] JakeSays: will do! [20:17] Twelve-60` has joined the channel [20:17] WarheadsSE: Anyone have any cluse why I could be getting a crapton of test failures on unhandled throws? [20:18] WarheadsSE: 114 failed, probably 113 as 'throw arguments[1]; // Unhandled 'error' event' [20:18] WarheadsSE: to note: ARM, v5te, armeabi:soft (forced because v8 is detecting wrong) [20:19] JakeSays: now i just need to get paper.js to work in node and i'm a happy camper [20:21] megatx: npm can't find any module.. why? [20:21] megatx: Error: No such module [20:21] megatx: i get this on everything [20:21] isaacs: megatx: what npm command are you running? [20:21] megatx: npm install [20:22] isaacs: megatx: and npm install says "Error: no such module"? [20:22] isaacs: megatx: i'm guessing there's more. can you gist all of it? [20:22] megatx: http://pastebin.com/2k4jeNUA [20:23] megatx: i tried n, express, ejs [20:24] paul__: technoweenie you might need to 'brew install scons' [20:24] isaacs: megatx: what version of node? what version of npm? [20:24] isaacs: megatx: how did you install npm, and when? [20:24] paul__: technoweenie oops that was from a while ago [20:24] bwinton has joined the channel [20:24] megatx: just updated to 0.6.0 for node [20:25] megatx: not sure my version for npm [20:25] isaacs: ircretary: inst megatx [20:25] ircretary: megatx: `curl http://npmjs.org/install.sh | sh` (or, if there are permission issues, you can try: `curl http://npmjs.org/install.sh | sudo sh`) [20:25] cconstantine_ has joined the channel [20:28] megatx: word, that was it [20:28] megatx: thanks [20:28] mrshogun: ppl anyone knwos what happened with the rq module? [20:28] mrshogun: im trying to install it using npm install rq [20:28] mrshogun: and it says not found [20:29] megatx: did you just upgrade node and not npm [20:29] mrshogun: i made a clean install from both [20:29] mrshogun: i used this command to install npm [20:29] mrshogun: curl http://npmjs.org/install.sh | sh [20:30] isaacs: mrshogun: $ npm view rq engines [20:30] isaacs: { node: '~0.4', npm: '~1' } [20:30] isaacs: doesn't work on 0.6 [20:30] isaacs: nag the author, please. [20:30] mrshogun: oh really?! [20:30] mrshogun: ok [20:31] isaacs: yes [20:31] mrshogun: tk u very much [20:31] mrshogun: anyway i was thinking about stop using that module [20:32] plutoniix has joined the channel [20:32] hydrozen has joined the channel [20:32] coderdad has joined the channel [20:33] Druid_: "Deploying to Production" in one pic: http://goo.gl/kXpcA [20:34] khmer has left the channel [20:36] WarheadsSE: Anyone care to have a look at the test logs for this ARM v0.6 compile ? [20:36] WarheadsSE: http://my.pogoplug.com/share/vArHUudFPhMW8MZGCEDcIA/FmZ1pP-ew1XSbP7sWvoWb41jfuM/dl/node-v0.6.0-test.log.tgz [20:36] bwinton has joined the channel [20:38] aaronmcadam has joined the channel [20:38] xatter has joined the channel [20:38] jtsnow has joined the channel [20:39] cyborg has joined the channel [20:40] tk: tk is the worst abbreivation for thanks ever.... [20:40] Xatter: Has anyone had any luck compiling node on OSX 10.7? [20:40] paul__: Xatter yes it worked for me [20:40] mrshogun: btw isaacs theres any known papper or book about server side js design patterns? [20:41] mrshogun: for example patterns about extensibility with plugins or sth similar [20:42] Renegade001 has joined the channel [20:42] jerrysv_: anyone know what "node: src/uv-common.c:105: uv_err_name: Assertion `0' failed." means in 0.6? [20:42] Xatter: hmm ok I think my include path is messed up, thanks paul__ for letting me know it's at least possible ;) [20:43] ggrocco has joined the channel [20:43] mrshogun: Xatter why are you compiling node in OSX instead of using a virtual machine that looks more with a production server? [20:43] TheJH: jerrysv_, known issue [20:43] TheJH: jerrysv_, not really hunted down yet [20:43] Xatter: because I'm just playing [20:43] jerrysv_: TheJH: have a link to an open issue? [20:43] Aria: Works for me, too, xatter. [20:44] TheJH: jerrysv_, one sec [20:44] jerrysv_: thx [20:44] jerrysv_: i can reproduce pretty easily [20:44] mrshogun: i understood that Xatter, but even in that case i think it would be a good approach [20:44] Aria: mrshogun: No, but patterns tend to be pretty language-agnostic. You get a few particular to asynchronous programming, but nothing too special. [20:44] TheJH: jerrysv_, https://github.com/joyent/libuv/issues/206 [20:44] jerrysv_: TheJH: awesome, thx [20:44] TheJH: jerrysv_, reproducable? wow [20:45] TheJH: jerrysv_, I think nobody was able to reliably reproduce it yet [20:45] ryanfitz has joined the channel [20:45] mrshogun: Aria i completely agree with you [20:45] jerrysv_: TheJH: appears to be while under high load [20:45] TheJH: jerrysv_, more like "let it handle a bunch of traffic and it'll fail within the next hours" [20:45] level09 has joined the channel [20:45] TheJH: jerrysv_, ah, ok [20:45] wankdanker_ has joined the channel [20:45] jerrysv_: TheJH: nah, just run ab [20:45] davidascher has joined the channel [20:46] TheJH: jerrysv_, :D [20:46] mrshogun: but in javascript the design patterns are a little bit different [20:46] jerrysv_: let me see about a simplified test case [20:46] mrshogun: i mean [20:46] mrshogun: theyr implementation [20:46] mrshogun: their [20:46] jerrysv_: but, takes me about 30 seconds to get it to die [20:46] jerrysv_: and very easy to just get node to hang :/ [20:47] mrshogun: i just wanted to try to make a server side application with plugins [20:48] jsurfer has joined the channel [20:48] mrshogun: Xatter, if ull use a vm it will be less thing ur installing in your phisical machine, wich means it will stay healthy for longer time [20:49] jerrysv_: looks like others are able to reproduce it easily too [20:50] scottschecter has joined the channel [20:51] alexdoom has joined the channel [20:52] Dulak has joined the channel [20:54] paul__: anyone know a good server side or client side JS way to render an HTML element to an image? [20:54] ggrocco has joined the channel [20:55] jerrysv_: TheJH: ah, i see what the issue is. [20:55] TheJH: jerrysv_, ? [20:55] jerrysv_: passing an error code for what appears to be a reset to a custom function that is attempting to map error codes to plain text. and default behavior is to bale if it isn't defined [20:56] jerrysv_: will know the error code in a minute [20:56] jerrysv_: just need to recompile [20:57] TheJH: jerrysv_, is this the code you're looking for? "#1 0x081509dd in node::SetErrno (code=104) at ../src/node.cc:1103" [20:57] piscisaureus_1 has joined the channel [20:57] jerrysv_: TheJH: will know in a minute, still waiting on compile [20:58] TheJH: jerrysv_, glad that someone is hunting that bug :) [20:58] jerrysv_: TheJH: affects me directly :) [20:59] ggrocco has left the channel [21:00] jerrysv_: yup, 104 [21:02] airhorns has joined the channel [21:02] TheJH: jerrysv_, in the linux kernel, 104 means ECONNRESET, but no idea whether that's the issue here [21:02] jerrysv_: TheJH: yeah. and i believe that it actually is a connection reset [21:03] bwinton has joined the channel [21:05] jbrokc__ has joined the channel [21:06] swaj: is there a way to generate UUID's or Guid's in node.js? [21:06] alessioalex: sure, based on time :) [21:07] igl: swaj: http://www.broofa.com/Tools/Math.uuid.js [21:08] adrianmg has joined the channel [21:08] TheJH: swaj, sure, there's a bunch of modules for that [21:09] TheJH: !npm search uuid [21:09] jhbot: packages (short format): data-uuid, uuid-lib, idea, uuid, uuid.js, uuid-pure, ossp-uuid, node-uuid, node-mug, dirty-uuid, hat [21:09] dubenstein has joined the channel [21:09] TheJH: !npm info uuid [21:09] jhbot: uuid by Nikhil Marathe, version 0.0.2: Simple libuuid bindings to allow UUIDs to be generated from JS. [21:09] tiagobutzke has joined the channel [21:09] TheJH: !npm info node-uuid [21:09] jhbot: node-uuid by Robert Kieffer, version 1.2.0: Simple, fast generation of RFC4122(v4) UUIDs. [21:09] igl: eh eh [21:11] adrianmg has left the channel [21:11] tomlion has joined the channel [21:11] MrNibbles: hey chaps [21:12] MrNibbles: is there a folder watch module that works without polling across mac and linux? [21:12] zackattack has joined the channel [21:12] MrNibbles: i guess it would have to use inotify on linux, NSfs on mac [21:14] martin_sunset has joined the channel [21:14] TheJH: MrNibbles, http://nodejs.org/docs/v0.6.0/api/fs.html#fs.watch - "Watch for changes on filename, where filename is either a file or a directory." [21:14] MrNibbles: TheJH: thanks, but that only works for files, i need to watch an entire folder. E.g when files are added etc [21:14] MrNibbles: there are a few modules, but most of them seem to work with polling [21:15] TheJH: MrNibbles, "Watch for changes on filename, where filename is either a file or a directory." [21:15] igl: fs.watch != fs.watchfile, fs.watch is new [21:15] MrNibbles: omg [21:15] MrNibbles: thanks :) [21:15] mmalecki has joined the channel [21:15] jbrokc_ has joined the channel [21:16] TheJH: mmalecki, are you sometimes going offline because you turn your computer off or because your internet conenction is unstable? [21:16] TheJH: *connection [21:17] PeeterHome has joined the channel [21:17] alessioalex: holy smokes [21:17] jerrysv_: TheJH: updated the ticket with a fix [21:17] alessioalex: Node Version Manager for Windows lol [21:17] alessioalex: https://github.com/hakobera/nvmw [21:17] mmalecki: TheJH: both, actually [21:18] mmalecki: this time I turned my pc off [21:18] TheJH: mmalecki, jerrysv_ seems to have fixed the random crash thing! YAAAAY!!! [21:18] mmalecki: my router can't properly handle ip change, though [21:18] PeeterHome: Does anyone have any idea how I could install mongoose-auth on cloud9ide? [21:18] mmalecki: it's 99% of my fuck up, probably [21:18] Aria: Well, you have to get disconnected if your IP changes. [21:19] Aria: Since TCP can't roam. [21:19] jerrysv: TheJH, mmalecki: i'll do a checkout and create a pull request [21:19] mmalecki: Aria: I know [21:19] mmalecki: but it can't properly connect me back [21:19] Aria: Huh. Weird. [21:19] mmalecki: jerrysv, TheJH: what are you guys talking about [21:19] jerrysv: mmalecki: https://github.com/joyent/libuv/issues/206 [21:20] mmalecki: Aria: yeah, I probably misconfigured it [21:20] Aria: I bet it just blocks "unknown" TCP reset packets, and in so doing, your computer doesn't know it's disconnected [21:20] liar has joined the channel [21:20] materialdesigner has joined the channel [21:20] Aria: That's common (and defends against some attacks, at a high cost) [21:20] TheJH: mmalecki, node 0.6.0 and late 0.5.x node have an issue that causes random crashes under load [21:20] mmalecki: nice! [21:20] mmalecki: TheJH: yeah, I recall that [21:20] Aria: What issue is this, TheJH? [21:20] dford has joined the channel [21:20] mmalecki: jerrysv++ [21:20] catb0t: jerrysv now has 1 beer [21:21] jerrysv: sad thing is, the bots never remember my beers :( [21:21] TheJH: Aria, https://github.com/joyent/libuv/issues/206 [21:21] mmalecki: Aria: hm, good catch, I'll try fixing that [21:21] Aria: Ah, okay. [21:21] Aria: ACTION watches that issue. [21:22] cjroebuck has joined the channel [21:22] jgornick has joined the channel [21:23] dubenstein has joined the channel [21:26] rio{ has joined the channel [21:27] PeeterHome: Any cloud9ide users? Im trying to install mongoose-auth that depends on bcrypt and the install of that fails, anyone got any ideas? [21:28] te-brian has joined the channel [21:30] piscisaureus has joined the channel [21:31] jerrysv: there, put in a pull request [21:31] TheJH: jerrysv, I think you're only fixing a symptom there [21:31] ecin has joined the channel [21:31] jerrysv: TheJH: yes, i agree [21:32] TheJH: inside libuv, translated error codes are used [21:32] jerrysv: TheJH: but connection reset for linux is not correctly mapped [21:32] jerrysv: TheJH: yeah, i know, check out the diff [21:32] jerrysv: this correctly issues a reset, which is better behavior [21:33] jerrysv: the open connection is aborted, as it should be, and the node process continues [21:34] dgathright has joined the channel [21:35] zackattack has joined the channel [21:35] incon has joined the channel [21:35] TheJH: jerrysv, how exactly did you reproduce it? [21:36] TheJH: jerrysv, node dummy server from the homepage and ab -c 500 -n 1000000 didn't work [21:36] micheil has joined the channel [21:36] jerrysv: TheJH: ab -c 2000 -n 10000 http://host/index.html -- against a linux vm [21:37] MatthewS has joined the channel [21:37] dubenstein has joined the channel [21:39] mrshogun: my benchmark the other day was 400 Requests / second [21:40] mrshogun: i implemented a dummy http file server client [21:40] mrshogun: it was a really bad benchmark [21:43] nohorse has joined the channel [21:45] fangel has joined the channel [21:46] hellp has joined the channel [21:48] torm3nt has joined the channel [21:50] jbrokc has joined the channel [21:51] Aria has joined the channel [21:52] alexdoom has joined the channel [21:54] mmalecki has joined the channel [21:54] nohorse has joined the channel [21:58] Danielss89 has joined the channel [21:59] aslant has joined the channel [22:05] skm has joined the channel [22:06] nohorse has joined the channel [22:06] akihito_s has joined the channel [22:07] kloeri has joined the channel [22:07] blueadept2 has joined the channel [22:08] smathy has joined the channel [22:08] level09: how do I downgrade node to 0.5 on mac ? [22:09] Aria: Get the 0.5 source, build it. [22:09] Aria: Any particular reason you're not using 0.6? [22:09] Aria: 0.6 is the "latest 0.5" really. [22:09] MrNibbles: TheJH: harm :( watch is pretty much useless under osX it seems [22:09] level09: modules doesn't seem to be supported [22:09] MrNibbles: hrrm* not harm! [22:09] level09: can I downgrade it with mac ports ? [22:09] Aria: I bet ryah'd accept patches to add proper kqueue support on MacOS [22:10] Aria: level09: I have no idea. Does macports have 0.5 available? (Why macports? Does macports ship unstable versions of things?) [22:10] MrNibbles: Aria: most likely! [22:10] IrishGringo2 has joined the channel [22:10] tilgovi has joined the channel [22:10] tilgovi has joined the channel [22:10] level09: macports is just a bit cleaner to manage installs / uninstalls [22:10] mmalecki: MrNibbles: why is that? [22:10] JakeSays: so given that node uses v8's debugging support, it seems like it wouldn't take much to be able to debug using chrome's devtools as the debugger client [22:11] mmalecki: MrNibbles: (that watch thing) [22:11] level09: I'll just reinstall the 0.5 though [22:11] MrNibbles: mmalecki: doesn't give you a filename of the files that are modified when watching a folder [22:11] MrNibbles: and all events seem to be 'rename' [22:11] mmalecki: MrNibbles: hm. that would explain quite a few issues with my code. [22:12] level09: hmm on the website there is 0.4 and 0.6 , there is no stable 0.5 ? [22:12] level09: I guess I'll go back to .4 then [22:12] mikedeboer has joined the channel [22:12] kloeri has joined the channel [22:13] Aria: Yeah, there is. [22:13] Aria: It's called 0.6 [22:13] Aria: Why are you after 0.5? [22:14] htoothrot has joined the channel [22:14] Danielss89 has joined the channel [22:14] htoothrot has joined the channel [22:14] htoothrot has joined the channel [22:15] localhost has joined the channel [22:16] paul__: anyone know how to use async's map to call functions that take more than one initial argument? [22:16] paul__: e.g. f(a, b, callback) [22:16] blueadept has joined the channel [22:16] blueadept has joined the channel [22:17] paul__: if it were f(a, callback) i could do async.map([1,2,3,…], f, function(err,results)) { … } [22:18] kloeri has joined the channel [22:18] paul__: do i just do async.map([ 1, 1a], [2,2a], [3, 3a]) ? [22:21] wbednarski has joined the channel [22:21] secoif has joined the channel [22:22] hackband has joined the channel [22:22] secoif has joined the channel [22:23] takezawa has joined the channel [22:25] WarheadsSE: anyone have any could have a look at something for me? Test logs from building on ARMv5te [22:25] paul__: fyi i ended up just writing a wrapper function that handles an object being passed in instead of two arguments [22:26] shipit has joined the channel [22:27] lzskiss has joined the channel [22:27] Xano_ has joined the channel [22:29] kloeri_ has joined the channel [22:29] asdf_ has joined the channel [22:30] rogerb has joined the channel [22:31] MatthewS has joined the channel [22:33] harthur has joined the channel [22:34] maqr has joined the channel [22:35] echoSMILE has joined the channel [22:35] jtsnow has joined the channel [22:35] zomg: Should I use 0.6.0 tag from git, or is master considered stable/best? [22:36] mmalecki: zomg: 0.6.0 is stable [22:36] zomg: Yeah but do I use the 0.6.0 tag or master :) [22:36] zomg: Getting some seemingly random "socket is not writable" issue with net socket with 0.4.something, so thought I'd see if updating helps [22:36] fella has joined the channel [22:36] mmalecki: zomg: tag [22:37] zomg: Okay, thanks [22:37] poseid has joined the channel [22:38] poseid: how can i update node.js on a mac [22:38] poseid: i am running 0.5.4 and want to go to 0.6 [22:38] fella: So... are compatibility issues in v0.5.8 fixed in v0.6.0? [22:38] jerrysv: fella: what sort of compatibility issues? [22:39] fella: Like this: https://github.com/alaingilbert/Turntable-API [22:39] fella: it's compatible with v0.4.0 but not v0.5.8 [22:39] jerrysv: fella: you need to bug module authors to update [22:39] sdwrage has joined the channel [22:40] jerrysv: and no, if a module isn't compatible with 0.5.10 then it will not work with 0.6 [22:40] socketio\test\76 has joined the channel [22:41] fella: Then can I set up node 0.4.8 on Windows with Git and Cygwin? [22:41] fella: Like is that even possible? [22:42] jerrysv: dunno, i don't run windows. though most of the incompatibilities came about during the port to windows. irony. [22:43] fella: I know 0.5.0 works with Windows. But I'm not sure with 0.4.8 [22:43] shipit has joined the channel [22:44] incon: ls [22:44] htoothrot has joined the channel [22:44] mmalecki: http://stackoverflow.com/questions/8030981 [22:44] mmalecki: not to generalize, but 'typical php coder' is the right comment here [22:44] zomg: Excellent [22:45] zomg: updated to 0.6.0 from 0.4.6, no compat issue with my app [22:45] zomg: and the random socket not writable issue is gone :) [22:45] JakeSays: how much of jquery is usable in node? [22:45] zomg: JakeSays: I have a hard time thinking of any reasons why you would want to use jquery in server side javascript [22:45] JakeSays: zomg: porting client side js [22:45] JakeSays: the author uses jquery.extend() all over the place [22:45] drekaus has joined the channel [22:45] xerox: jquery-enabled scraping [22:45] AvianFlu: also, various scraping tasks and server-side dom manipulation [22:46] xerox: ^5 AvianFlu [22:46] zomg: I see, perhaps it has its uses :) [22:46] fella: zomg: Did you get errors with using any version on nodejs in between 0.4.8 to 0.5.10? [22:46] TheJH: JakeSays, there's a jquery module for node, do you know it? [22:46] TheJH: !npm search jquery [22:46] jhbot: packages (short format, truncated): crawler, node-sizzle, jspp, jkwery, jjw, jquery-mousewheel, query, jqserve, jquery-drive, capt, jqbuild, jquery.effects.blind, jquery.effects.bounce, jquery.effects.clip, jquery.effects.core, jquery.effects.drop, jquery.effects.explode, jquery.effects.fade, jquery.effects.fold, jquery.effects.highlight [22:46] zomg: fella: I didn't try those [22:46] TheJH: !npm info jquery [22:46] jhbot: jquery by John Resig, version 1.6.3: jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS) [22:46] JakeSays: TheJH: i wasnt aware. thanks! [22:46] fella: Okay. [22:47] JakeSays: although i'm not using npm [22:47] jj0hns0n has joined the channel [22:47] TheJH: JakeSays, you're using node, but not npm? [22:47] JakeSays: correct [22:47] TheJH: JakeSays, how do you install libraries? [22:47] zomg: Heh, well the only compat issue so far is npm broke [22:47] tbranyen: woot 0.6 is in arch repo [22:47] TheJH: JakeSays, and why not npm? [22:47] mmalecki: jesusabdullah wrote a sweet npm module for using jquery in the console [22:47] zomg: but I probably have some very old version of it considering I had 0.4.6 node :P [22:48] mmalecki: s/npm/node/g [22:48] JakeSays: TheJH: i'm on windows for one, and i have a custom build of node with node-canvas built in. [22:48] TheJH: zomg, isaacs fixed the error if we're talking about the same thing [22:48] JakeSays: so i've never actually installed node [22:48] mange has joined the channel [22:48] zomg: TheJH: well I probably should update npm anyway :) [22:48] mange has joined the channel [22:50] liar has joined the channel [22:50] JakeSays: or maybe there's already a jquery.extend() type function in node? [22:50] kkszysiu has joined the channel [22:52] mikeal has joined the channel [22:52] chjj: oh, i just found something [22:52] chjj: the npm makefile can make a sandwich [22:53] chjj: sandwich:\n\t@[ $$(whoami) = "root" ] && (echo "ok"; echo "ham" > sandwich) || echo "make it yourself" [22:53] alexdoom has joined the channel [22:53] arcanis has joined the channel [22:53] AvianFlu: that's epic [22:54] mmalecki: lulz [22:54] TheJH: hahaha, isaacs seems to like xkcd :D [22:54] tbranyen: f xkcd [22:55] TheJH: tbranyen, huh? [22:55] tbranyen: i'd rather watch lockergnome than read xkcd is all i'm saying [22:56] flexd has joined the channel [22:57] secoif has joined the channel [22:57] secoif has joined the channel [22:58] adambeynon has joined the channel [22:58] secoif has joined the channel [23:00] tomyan has joined the channel [23:04] Aria has joined the channel [23:06] devongovett has joined the channel [23:06] joshkehn has joined the channel [23:06] joshkehn has left the channel [23:08] megatx has joined the channel [23:10] Stephen has joined the channel [23:10] MatthewS has joined the channel [23:10] Stephen: I know this isn't /exactly/ the channel, but can anyone point me to a decent tutorial on Mongoose 2.x? [23:11] epa_ has joined the channel [23:12] zackattack has joined the channel [23:12] epa_: I tried to get the http://socket.io/#how-to-use to work, but socket.emit('my other event', { my: 'data' }); on the client side (firefox 7) does not seem to work [23:13] epa_: console.log(data) works just fine so data comes to the browser [23:13] epa_: and data to browser is visible also in tcpdump [23:13] epa_: however nothing is sent back by the browser [23:14] epa_: heartbeat seems to be working every 20 seconds thou [23:14] jbrokc has joined the channel [23:14] jdpacker has joined the channel [23:16] Stephen: epa_: Check for errors in Firebug early on [23:16] mike5w3c_ has joined the channel [23:17] epa_: Stephen: ok I was using the firefox 7 web console [23:17] epa_: ACTION installs firebug [23:20] jacobrask has joined the channel [23:22] epa_: Stephen: no errors. It would seem that I just dont get the browser to do the emit() [23:24] epa_: well more tomorrow [23:28] dcelix has joined the channel [23:29] saikat has joined the channel [23:29] JakeSays: so i see these package.json files. i assume these are for npm? [23:30] TheJH: JakeSays, yup [23:30] rachet has left the channel [23:30] isaacs: JakeSays: yes, that is correct [23:30] JakeSays: what does this mean? "main": "./node.js/index.js" [23:31] JakeSays: is that the file node loads to 'install' the package? [23:31] AvianFlu: it's the main programmatic entry poing [23:31] AvianFlu: point [23:32] joshkehn has joined the channel [23:33] joshkehn has left the channel [23:33] isaacs: JakeSays: when you install it, it's the thing you get when you do require("package-name") [23:34] jbrokc__ has joined the channel [23:35] Stephen: Opinions on a REST framework for Node? [23:35] SubStack: framework? [23:36] Stephen: Eh, library [23:36] jtsnow has joined the channel [23:36] Stephen: RestMVC seems pretty full-featured, even going so far as to build out files for your project [23:36] JakeSays: isaacs: since i'm not using npm i need to set this up manually [23:37] Stephen: Basically, I have a mongodb (mongoose) backend, and I'm just looking for something that will tack on all the simple calls for me, and allow me to add on the custom stuff [23:37] isaacs: JakeSays: why are you not using npm? [23:37] isaacs: JakeSays: (just curious) [23:37] JakeSays: isaacs: well, i have a custom build of node. [23:37] JakeSays: so none of the package stuff is set up [23:37] isaacs: JakeSays: "custom build"? [23:38] Stephen: So I suppose I'm looking for a good REST router... [23:38] isaacs: what does that mean? [23:38] JakeSays: yes. it has node-canvas built in [23:38] isaacs: k... but that doens't preclude you from installing npm, does it? [23:38] JakeSays: isaacs: no idea. [23:38] isaacs: try this: curl http://npmjs.org/install.sh | sh [23:39] isaacs: or just download the script and run it [23:39] isaacs: is this on windows, or unix? [23:39] JakeSays: windows [23:39] JakeSays: so no sh'ing [23:39] isaacs: oh, ok, so try this: http://npmjs.org/doc/README.html#Installing-on-Windows-Experimental [23:40] Stephen: JakeSays: I can say from experience that setting npm up on windows will take a little time, but it's well worth it [23:40] Stephen: I have it up and running right now [23:40] sdwrage has joined the channel [23:40] Revernd has joined the channel [23:40] isaacs: JakeSays: but, anyway, if you still can't or for some reason don't want to use npm, all you really have to do is drop the project folder into ./node_modules inside your project to use it [23:41] isaacs: JakeSays: npm does this, but it also does all the dependencies of those things [23:41] isaacs: and can run build scripts, etc [23:41] JakeSays: isaacs: well, i'd kinda like to understand how it all works before using npm [23:42] mmalecki: isaacs: sometimes I'm getting weird errors like https://gist.github.com/b6863e95aa29323e5053 , any idea why? [23:42] isaacs: JakeSays: read these: http://npmjs.org/doc/folders.html and http://nodejs.org/docs/v0.6.0/api/modules.html [23:42] JakeSays: isaacs: thanks! [23:42] isaacs: mmalecki: check the engines hash. just made this less weird on master [23:42] ecin has joined the channel [23:42] mmalecki: isaacs: gotcha [23:42] mmalecki: isaacs++ [23:44] rchavik has joined the channel [23:44] lyte_ has joined the channel [23:46] jtsnow has joined the channel [23:48] kkszysiu has joined the channel [23:49] jGoods has joined the channel [23:53] jtrudeau has joined the channel [23:53] alexdoom has joined the channel [23:53] tomlion has joined the channel [23:54] figital has joined the channel [23:54] bwinton has joined the channel [23:56] figital has joined the channel [23:58] jonaslund: hmmmm [23:58] jj0hns0n has joined the channel [23:58] jonaslund: shouldn't require("subdir/blah") work ? [23:58] jonaslund: or should i always use ./subdir/blah ? [23:59] jonaslund: (and shouldn't NODE_PATH=.:someotherpath help even in the first case?) [23:59] jonaslund: (node 0.6.0)