[00:03] matyr has joined the channel [00:04] tokumine has joined the channel [00:07] mikey_p: does that have any bindings to iphone functionality? [00:07] piscisaureus: just curious, what is perceived use of node on a mobile phone? [00:07] jonaslund: *shrugs* [00:08] timcosgrove has joined the channel [00:08] jonaslund: now.. running JS code as is could be interesting [00:08] jonaslund: but there's a bunch of projects or commerical tools for that [00:08] timcosgrove has left the channel [00:08] jonaslund: phonegap,etc is opensource [00:08] mikey_p: i thought I head ryah say in his talk at google, that it is intended to be a full app framework someday, but that starting as a serverside project, would sort out all the kinks and bugs first [00:08] jonaslund: (but relies on the internal JS engine) [00:09] TooTallNate: Yes, I'm gonna write some API bindings asap [00:09] jonaslund: why not write some node API wrappers for phonegap instead ? [00:09] groundup: I have been watching so intro videos today from Ryan Dahl. He mentions Net -> Nginx -> Node as the current preferred stack and in the future maybe Net->Node. Unless I only had one application running, wouldn't it look more like Inet->node->node? Where the first node is more or less the router of which script/node to start and the second one is the one that gets loaded? [00:10] TooTallNate: require('AudioToolkit').vibrate(); [00:10] TooTallNate: o.O [00:10] groundup: The first node would stand as my vhost [00:11] path[l] has joined the channel [00:11] groundup: Otherwise, localhost/script.js and localhost/myscript.js wouldn't work correctly? [00:11] timmywil has joined the channel [00:11] TooTallNate: piscisaureus: was really just seeing if it could be done, now I need to find a real use :p [00:11] piscisaureus: eh yeah [00:12] piscisaureus: ok [00:12] piscisaureus: nice that it works. [00:12] piscisaureus: I don't really see it being added to the app store tho [00:12] piscisaureus: Same problem for android (plus that your app needs to be in java) [00:12] jonaslund: with android you need a "launcher" [00:12] jonaslund: the rest can be C [00:13] jonaslund: C/C++ [00:13] oninoshiko: Apple's policies seem to specifically preclude it. [00:13] piscisaureus: jonaslund: are there any C applications available from the app store then? [00:13] jonaslund: most games apperantly have a small java wrapper for some specific ui stuff and does the rest with OGLES [00:13] TooTallNate: no it's definitely jailbreak only [00:13] piscisaureus: jonaslund: market I mean :-) [00:14] piscisaureus: jonaslund: I wonder how they work around all those different cpus that are out there. [00:14] jonaslund: it's all ARM based [00:15] jonaslund: the last portable thingy not being arm based that comes to my mind is the PSP [00:16] oninoshiko: specifically no language interpreters. [00:16] jonaslund: even the PSP2 is Arm based [00:16] jonaslund: oninoshiko: no language interpreters where the code can come from user input or over a network connection [00:17] jonaslund: oninoshiko: interpreters with embedded code is ok nowadays [00:17] piscisaureus: jonaslund: ah. I never realized that android apps could be in native code [00:17] oninoshiko: oh is it? their policies always seem "flexible" to make sure they can nail anyone in a bussness they want to be in. [00:18] piscisaureus: makes sense though. Otherwise how could opera/ff ever compete with the stock browser. [00:18] jonaslund: oninoshiko: interpreters with embedded code is ok nowadays? [00:18] jonaslund: arrghhhhhhh [00:19] cossovich has joined the channel [00:19] saikat has joined the channel [00:19] fljitovak has left the channel [00:19] jonaslund: i was writing that it might be that V8 based stuff might not be allowed/possible since the V8 guy here mentioned that there's NX on writeable pages on iOs.. but apperantly nate has V8 running on jailbroken ones so i dunno [00:19] skm has joined the channel [00:20] piscisaureus: maybe that's because he has it jaibroken? :)) [00:20] TooTallNate: Yes, jailbroken adds WX memory regions in the kernel [00:20] jonaslund: ahh ok [00:20] oninoshiko: it does seems to be a little useless to use an interpreter for node/v8 then limit it to non-delivered code. [00:20] TooTallNate: I'm pretty sure it's the only reason V8 can run [00:21] dgathright has joined the channel [00:21] jonaslund: oninoshiko: not really, phonegap is exactly that. embedded JS code [00:21] jonaslund: that gets run in the internal browser of your target phone [00:22] jonaslund: let's you do html/js based apps for appstores [00:22] rchavik has joined the channel [00:23] jonaslund: ACTION ponders how the iPhone browser can keep up speed without generating code [00:23] TooTallNate: Though mrapleh and I have been working the past week to prepare a patch for iOS support with V8, on jailbreaks at least [00:23] oninoshiko: apple was rejecting phonegap apps for a while though [00:24] jonaslund: oninoshiko: oh? any info on that ? [00:24] oninoshiko: http://nachbaur.com/blog/open-letter-to-apple-iphone-developer-support [00:25] jonaslund: ok this is newer.. http://www.phonegap.com/2010/04/14/phonegap-and-the-apple-developer-license-agreement/ [00:26] nym has joined the channel [00:27] isaacs: oh man, i'm dealing with some serious UI cheese-moving rage here... [00:27] isaacs: github issues [00:27] oninoshiko: ok. [00:27] tbranyen: issues with github issues? [00:27] isaacs: they're prettier, but damn... my brain is rebelling [00:27] isaacs: yeah [00:27] tbranyen: heh [00:28] isaacs: and the back button works, which is noce [00:28] isaacs: *nice [00:28] isaacs: but now that you can tag an issue when you post it, all my tags are immediately meaningless. [00:28] tbranyen: that was nagging prior [00:28] piscisaureus: isaacs: why is that? [00:28] tbranyen: since it wasn't immediately clear you couldn't tag an issue while creating it [00:29] isaacs: tbranyen: yeah, but now all the issues posted in the last 12 hours have 3 tags that are all incorrectly applied. [00:29] isaacs: like, "1.0" tagged on stuff that isn't actually part of npm 1.0 development, but just because the person happened to be using 1.0 [00:29] tbranyen: :-/ [00:30] isaacs: and i probably would've taken more care to name my tags more clearly if anyone had the right to add them prior [00:30] hvgotcodes: how do i throw and handle my own events? my situation is: http request comes in. I want to return a response AND invoke a RESTFul webservice call. Im thinking its better to make that call in an event. is that right? [00:31] shaunau has joined the channel [00:31] piscisaureus: jonaslund: you got anywhere with node on msvc? [00:31] isaacs: also, seems like `Closes GH-###` in a commit message doens't close the issue any more. [00:32] nym: hey, i'm getting a test fail on osx 0.4.5 [00:32] nym: simple/test-http-dns-fail assert.js:81 [00:32] jonaslund: piscisaureus: haven't had time to muck around with it at all [00:32] nym: any ideas? i am about to try an older version [00:32] piscisaureus: jonaslund: not a problem. you got anywhere at all? [00:32] marcello3d has joined the channel [00:33] saikat has joined the channel [00:33] jonaslund: piscisaureus: i got a bunch compiling on that first run, prolly would need to re-do some of the work but it'd go faster this time [00:33] marcello3d: what do you guys use to run multiple async operations and wait for them all to finish? [00:33] marcello3d: e.g. something like a join/waitforall [00:33] jonaslund: piscisaureus: gonna take a stab at it soon ? [00:34] piscisaureus: jonaslund: I am trying to do it myself now. If you have already done some stuff I'd like to see it :-) [00:34] marcello3d: I wrote my own little library to do such, but I'm wondering if there's a standard/popular one [00:34] jonaslund: piscisaureus: i could give you a big messy patch ? [00:34] piscisaureus: jonaslund: yeah. [00:34] oninoshiko: looks like that policy change was in 2009, although I still dont trust apple any farther then I can throw them. [00:34] JianMeng has joined the channel [00:34] piscisaureus: jonaslund: I will not tell anybody [00:34] rafacv has joined the channel [00:34] piscisaureus: just avoiding duplicate work [00:35] jonaslund: the most i did was make the scons script and fix a bunch of compilation errors [00:35] jonaslund: half of those were thanks to mingw fixes so :D [00:35] piscisaureus: jonaslund: I'm mostly interested in the second part [00:35] piscisaureus: I think I'm not going to use scons in the first instance, just try to create a solution that has it all [00:36] mike_miller has joined the channel [00:36] marcello3d: anyone use this? https://github.com/creationix/step [00:36] jonaslund: piscisaureus: does V8 come with a solution ? [00:36] jonaslund: piscisaureus: the downside of solutions/msvc is that it's an upgrade trap :( [00:36] piscisaureus: jonaslund: no but I can add a custom build step to build v8 [00:36] shiawuen has joined the channel [00:36] piscisaureus: jonaslund: is it? [00:36] piscisaureus: is it that bad? [00:37] jonaslund: i still use my bought copy of msvc 2005 [00:37] dnunes has joined the channel [00:37] tbranyen: :( paying for visual studio [00:37] tbranyen: that is a sin [00:37] jonaslund: pondering on getting a new one soon actually [00:37] jonaslund: tbranyen: bah [00:37] jonaslund: MSVC has earned every penny i've paid for it [00:38] jonaslund: you don't know how much heartache it saved me in the old days [00:38] jonaslund: or headache more like it [00:38] tbranyen: its probably the best ide for c++ [00:38] tbranyen: for everything else [00:38] tbranyen: pass [00:38] dgathright has joined the channel [00:39] dnunes: Hey, guys. I have a little chat app using orbited and python. I'm thinking about porting it to node.js. Are there any TCP libraries for that? I heard about js.io, but I'm not sure that fits well. [00:39] jonaslund: well i did C/C++ so :) [00:39] jonaslund: actually [00:39] tbranyen: for js tho, ew [00:39] jonaslund: i've yet to see a debugger as competent as the MSVC debugger that they made in 1998 [00:39] jonaslund: if you step code.. you could edit code, and continue running stuff [00:40] marcello3d: dnunes: node has tcp built in, unless I'm misundersatnding [00:40] kmwallio has joined the channel [00:40] tbranyen: jonaslund: yea that was really handy when i did C# dev [00:40] mjr_: groundup: a lot of people set things up as you describe: inet -> node load balancer/router -> node app [00:40] marcello3d: jonaslund: eclipse/intellij? [00:40] jonaslund: marcello3d: atleast eclipse fucks that up.. you edit code and it restarts execution at the START of the method?! [00:40] marcello3d: that's a jvm limitation [00:41] jonaslund: well then the JVM fucks it up [00:41] marcello3d: :) [00:41] groundup: mjr_: okay, that answers the question. I thought I might have been missing something simple like that [00:41] marcello3d: java is rarely written in such a way that that's a problem [00:41] marcello3d: you can evaluate arbitrary code while paused, though [00:43] k1ttty has joined the channel [00:43] mhooker has joined the channel [00:43] saschagehlich has joined the channel [00:45] marcello3d: sigh. step seems to be the simplest of them all [00:46] cloudhead: anyone know how to get npm to install man pages? [00:46] marcello3d: man, I hate man pages :) [00:46] isaacs: cloudhead: "man" : [ "man1/foo.1", "man2/bar.2", "man/blaz.3.gz" ] [00:47] marcello3d: give me html any day [00:47] isaacs: marcello3d: i prefer markdown to either. that's why ronn is awesome :) [00:47] marcello3d: by html I mean, let me navigate my docs in a web browser [00:47] cloudhead: isaacs: ty [00:48] cloudhead: marcello3d: I'd rather not have to switch to a browser, type in a url, wait for it to load etc. etc. [00:48] isaacs: cloudhead: the number is the section. [00:48] cloudhead: gotcha [00:48] isaacs: yeah, man pages are awesome for stuff you'er using [00:48] marcello3d: in fact, I usually google for man pages [00:48] marcello3d: so I can read them in a variable width font :) [00:48] marcello3d: and use two finger scrolling and whatnot [00:49] isaacs: marcello3d: if you use vim as your pager, you can scroll with your mouse ) [00:49] isaacs: :) [00:49] isaacs: but yeah, i hear you with the variable-width [00:49] marcello3d: not the same :) [00:49] marcello3d: man pages just feel antiquated [00:49] isaacs: marcello3d: they're super fast, though [00:49] wookiehangover has joined the channel [00:49] marcello3d: chrome is super fast [00:50] isaacs: marcello3d: man loads troff much faster than chrome downloads html. [00:50] isaacs: also, it's always the same format. [00:50] isaacs: which is nice :) [00:50] marcello3d: true [00:50] marcello3d: dunno [00:50] marcello3d: I guess I just need like manx or something [00:50] marcello3d: load it up in a gui [00:50] marcello3d: none of this console nonsense :) [00:51] perezd: man, how the fuck do I write unit tests with node-websocket... [00:52] cloudhead: isaacs: so I can see it installed a link in /usr/local/share/man/ - but that doesn't seem to do the trick [00:52] isaacs: cloudhea1: what's your MANPATH? [00:52] isaacs: cloudhea1: `man -p` maybe [00:52] cloudhead: not set [00:52] isaacs: man does some crazy complicated stuff with file lookups [00:53] cloudhead: but `man node` works [00:53] isaacs: cloudhea1: type `manpath` [00:53] cloudhead: ah ok /usr/local/share/man is there [00:53] isaacs: or `man -w` [00:53] isaacs: ok [00:53] cloudhead: but the link it created has version number and stuff in it [00:53] kkaefer: marcello3d: http://www.bruji.com/bwana/ [00:53] isaacs: cloudhea1: hm.... what version of npm? [00:53] marcello3d: kkaefer: neat! [00:53] matyr has joined the channel [00:54] kkaefer: I haven't got it to work in chrome though [00:54] marcello3d: aw [00:54] marcello3d: well it's ok [00:54] kkaefer: chrome does some weird URL handling [00:54] marcello3d: I rarely need man pages [00:54] cloudhead: 0.3.18 [00:54] marcello3d: npm is probably the only app I've used in 5 years that I needed to use man pages for :) [00:54] kkaefer: marcello3d: you can do "open man:foo" on the cmd line [00:54] cloudhead: marcello3d: some people like the terminal [00:54] cloudhead: ;p [00:55] isaacs: marcello3d: you never do `git help`? [00:55] isaacs: what do you think those pages are? [00:55] marcello3d: god no, I google them :) [00:55] marcello3d: they're too long to read in a terminal [00:55] marcello3d: it's probably mostly psychological [00:55] cloudhead: that's why they're run in a pager : / [00:57] isaacs: kkaefer: bwana is awesome [00:58] isaacs: kkaefer: i like the linking, especially. very nice. [00:58] isaacs: but yeah, must work in chrome. [00:58] kkaefer: I think it works by registering a custom protocol in the app [00:58] kkaefer: and chrome doesn't care about that :/ [00:59] jimt has joined the channel [00:59] hvgotcodes: is there a separate irc for express? [00:59] isaacs: kkaefer: yeah. http://code.google.com/p/chromium/issues/detail?id=47974 [01:00] isaacs: kkaefer: it's marked "good first bug". wanna get on the chrome developer list? [01:00] kkaefer: not really ;) [01:01] cloudhead: isaacs: I have this in my man1: /usr/local/share/man/man1/golem@0.1.0.1 -> ../../../lib/node/.npm/golem/0.1.0/package/man/golem.1 [01:02] isaacs: cloudhead: you should also have: golem.1 -> ./golem@0.1.0.1 [01:02] cloudhead: yea I don't [01:02] isaacs: cloudhead: what version of npm are you using? [01:02] cloudhead: 0.3.18 [01:02] isaacs: cloudhead: does `npm ls golem installed` show that it's also "active" [01:02] cloudhead: yea [01:02] isaacs: cloudhead: npm activate golem@0.1.0 [01:02] isaacs: cloudhead: maybe deactivate and then activate [01:02] isaacs: i dunno [01:02] norviller has joined the channel [01:02] kkaefer: hah there's also a x-man-page:// protocol [01:03] isaacs: cloudhead: it works on 1.0. you should upgrade ;) [01:03] cloudhead: the npm man pages have the same issue actually [01:03] cloudhead: I'll try that [01:03] isaacs: cloudhead: definitely you should do the 1.0 dance. [01:03] wasabista has joined the channel [01:03] isaacs: cloudhead: read the help pages. it's a different program. [01:04] cloudhead: isaacs: wait how do I upgrade? [01:04] isaacs: cloudhead: cleanest is to `npm rm` everything you've installed, and then install 1.0 fresh [01:04] cloudhead: ok [01:04] isaacs: cloudhea1: curl http://npmjs.org/install.sh | npm_install=rc sh [01:04] cloudhead: mkay [01:04] isaacs: cloudhead: this: http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/ [01:05] drobnox has joined the channel [01:05] drobnox: I'm having problems with hashlib [01:05] hvgotcodes: how do i put json on a POST request with nodes http.Request? [01:05] hvgotcodes: i have a string that is json [01:06] drobnox: npm installs it, but node can't find it [01:07] matyr_ has joined the channel [01:07] dgathright has joined the channel [01:07] drobnox: I'm trying to use digest auth for http [01:08] nym: hey isaacs [01:08] isaacs: hi [01:09] nym: do you know if 0.4.5 has been run successfully in osx w/o any tests failing? [01:09] isaacs: nym, just a sec, lemme see. [01:09] nym: i'm getting Path: simple/test-http-dns-fail assert.js:81 [01:09] isaacs: ACTION kicks off `nave test 0.4.5` [01:10] ryah: can someone hook up the convore channel to this, please? [01:10] nym: heh [01:10] Aikar: convore channel? [01:10] nym: convore.com [01:12] dgathright has joined the channel [01:12] cloudhead: isaacs: ok. got it. now I can't figure out how to install something globally, it doesn't say [01:12] isaacs: cloudhea1: --global [01:12] isaacs: cloudhea1: or -g [01:12] cloudhead: ok cool thanks [01:12] cloudhead: should add that to the man ^_^ [01:13] perezd: hey cloudhead, I have a few pull requests in on cradle I'd love for you to take a look at, when u have a moment [01:14] cloudhead: sure [01:14] isaacs: cloudhead: yeah, i'm meaning to add an `npm help global` that explains it all [01:14] perezd: issues with _changes continuous + filter design docs [01:14] isaacs: that one config flag has a big effect. [01:14] tmpvar has joined the channel [01:15] abraxas has joined the channel [01:15] cloudhead: isaacs: yea, also I love that you went back to the old colors for the cli [01:15] ohtogo has joined the channel [01:15] isaacs: cloudhea1: what do you mean? [01:16] cloudhead: isaacs: oh nm, it's just that it doesn't output the 'info' stuff anymore, so no more green [01:16] cloudhead: heh heh [01:16] isaacs: yeah [01:16] isaacs: the default loglevel is "warn" [01:16] tonymilne has joined the channel [01:16] cloudhead: cool [01:16] isaacs: *but* in the event of a non-successful exit, every log message up through "silly" is written to npm-debug.log [01:16] isaacs: which is super handy [01:17] drobnox: So what could cause node not not find a module that npm says it's installed [01:17] exium has joined the channel [01:17] drobnox: ?? [01:18] isaacs: drobnox: what version of node/npm? [01:18] isaacs: drobnox: npm -v ; node -v [01:18] drobnox: hold on a sec [01:19] Levi has joined the channel [01:19] drobnox: ericg@home:/usr/local/lib/node$ npm -v; node -v [01:19] drobnox: 0.3.15 [01:19] drobnox: v0.5.0-pre [01:19] isaacs: drobnox: npm config get root [01:20] cloudhead: isaacs: it's creating the right files in man1/ now, ie npm.1 etc, but `man npm` is telling me "man: warning: /usr/local/man/man1/npm.1 is a dangling symlink" [01:21] drobnox: npm info it worked if it ends with ok [01:21] drobnox: npm info using npm@0.3.15 [01:21] drobnox: npm info using node@v0.5.0-pre [01:21] drobnox: npm ok [01:21] hkjels: How can I utilize interpolation within an attribute in jade? Example: (href='/vehicle/#{vehicle.id}/settings/') <-- does not work offcourse [01:21] drobnox: oops [01:21] isaacs: drobnox: you didn't tell me the line i wanted :) [01:22] drobnox: '/usr/local/lib/node' [01:22] abraham has joined the channel [01:22] drobnox: ericg@home:/usr/local/lib/node$ ls /usr/local/lib/node [01:22] drobnox: coffee-script hashlib@1.0.0 mime npm@0.3.15 [01:22] drobnox: coffee-script@1.0.1 htmlparser mime@1.2.1 qs [01:22] drobnox: connect htmlparser@1.7.3 mjsunit.runner qs@0.0.7 [01:22] drobnox: connect@1.1.1 jquery mjsunit.runner@0.1.3 request [01:22] drobnox: express jquery@1.5.1 n request@1.9.0 [01:22] drobnox: express@2.0.0 jsdom n@0.4.1 wafadmin [01:22] drobnox: hashlib jsdom@0.1.20 npm [01:23] drobnox: ericg@home:/usr/local/lib/node$ node [01:23] drobnox: > require('hashlib') [01:23] drobnox: Error: Cannot find module 'hashlib' [01:23] drobnox: at Function._resolveFilename (module.js:320:11) [01:23] drobnox: at Function._load (module.js:266:25) [01:23] drobnox: at require (module.js:348:19) [01:23] drobnox: at [object Context]:1:1 [01:23] drobnox: at Interface. (repl.js:171:22) [01:23] drobnox: at Interface.emit (events.js:64:17) [01:23] drobnox: at Interface._onLine (readline.js:153:10) [01:23] drobnox: at Interface._line (readline.js:408:8) [01:23] drobnox: at Interface._ttyWrite (readline.js:585:14) [01:23] drobnox: at ReadStream. (readline.js:73:12) [01:23] lukegalea has joined the channel [01:23] dnunes: putz. [01:23] tbranyen: cool story [01:24] drobnox: install uninstall install unistall [01:24] drobnox: just doesn't work [01:24] isaacs: drobnox: echo export NODE_PATH=/usr/local/lib/node >> ~/.bashrc ; . ~/.bashrc [01:24] dgathright has joined the channel [01:24] isaacs: or _profile if you prefer [01:25] SubStack: looks like bad json in the hashlib package [01:25] isaacs: SubStack: orly? [01:25] SubStack: although npm view works just fine [01:25] drobnox: .zshrc actually [01:25] isaacs: npm ERR! JSON.parse Failed to parse package.json data. [01:25] isaacs: npm ERR! JSON.parse package.json must be actual JSON, not just JavaScript. [01:25] isaacs: npm ERR! JSON.parse [01:25] isaacs: npm ERR! JSON.parse This is not a bug in npm. [01:25] isaacs: npm ERR! JSON.parse Tell the package author to fix their package.json file. [01:26] isaacs: SubStack: npm view shows what's in teh registry, which was corrected if it was invalid, prior to 0.3.0 [01:26] SubStack: aha [01:26] isaacs: drobnox: that's the issue^ [01:26] isaacs: npm ERR! Unexpected token ] [01:26] cloudhead: isaacs: so it seems like the man page links are all pointing to /usr/lib/node_modules instead of /usr/local/lib, that's why they aren't found [01:26] isaacs: cloudhea1: oh, really? [01:27] isaacs: cloudhea1: it's working fine for me [01:27] derferman has joined the channel [01:27] xandrews has joined the channel [01:27] isaacs: cloudhea1: did you have a wonky `manpath` setting previously? [01:27] astropirate has joined the channel [01:27] cloudhead: isaacs: no it's "/usr/local/man:/usr/local/share/man:/usr/share/man" [01:28] cloudhead: binaries get properly installed to /usr/local/bin - it's just the manpages : | [01:28] nym: isaacs: any idea? i get the same error in 0.4.3 [01:28] cloudhead: well, the manpage symlinks are in /usr/local/* but they point to /usr/* [01:29] drobnox: ericg@home:/usr/local/lib/node$ export NODE_PATH=/usr/local/lib/node [01:29] drobnox: ericg@home:/usr/local/lib/node$ node [01:29] drobnox: > require('hashlib') [01:29] drobnox: Error: Cannot find module 'hashlib' [01:29] jimt_ has joined the channel [01:29] markc has joined the channel [01:29] gazumps has joined the channel [01:32] soulofpeace has joined the channel [01:33] isaacs: drobnox: yeah, it's a problem with the json in the hashlib package. [01:33] isaacs: drobnox: bug the author to fix it [01:33] isaacs: . [01:34] isaacs: cloudhead: hm... i'm seeing /usr/local/share/man/man1/npm.1 [01:34] isaacs: $ la /usr/local/share/man/man1/npm.1 [01:34] isaacs: 8 lrwxrwxrwx 1 isaacs wheel 40 Apr 8 10:39 /usr/local/share/man/man1/npm.1@ -> ../../../lib/node_modules/npm/man1/npm.1 [01:34] isaacs: nym: what error? [01:34] drobnox: isaacs: then why does NPM say it's installed the package [01:34] nym: Path: simple/test-http-dns-fail assert.js:81 [01:35] isaacs: drobnox: becuase you're using a version of npm that was more allowing of broken json [01:35] isaacs: drobnox: that was fixed in later 0.3 versions, and flat-out not allowed in 1.0 [01:36] drobnox: so sounds like I'm upgrading npm [01:36] Kolkka has joined the channel [01:36] isaacs: drobnox: when i say "fixed", i mean "it printed warnings saying HAY BUDDY, THIS WONT WORK" [01:37] isaacs: drobnox: really, you should bug the author of thehashlib library. fork it, fix it, pull req [01:38] drobnox: I'll do all that [01:38] drobnox: thanx isaacs [01:39] drobnox: ,= nodenewb as if you couldn't tell [01:39] isaacs: drobnox: np :) [01:39] isaacs: drobnox: we like noobs here [01:40] Viriix has joined the channel [01:41] piscisaureus: anyone: how do I base64-encode a strnig? [01:42] perezd: piscisaureus: using Buffer class [01:42] Emmanuel__ has joined the channel [01:42] piscisaureus: so (new Buffer('meh', 'base64')).toString() ? [01:42] perezd: yes [01:43] jimt has joined the channel [01:43] Know1edge has joined the channel [01:43] drobnox: my ulitmate aim is to use AllegroGraph as backing store for an express app. [01:44] losing has joined the channel [01:44] ryanfitz has joined the channel [01:47] isaacs: nym: only failing test i see is pummel/test-timers [01:47] Aikar: piscisaureus: function base64_encode(input) { return (new Buffer(input)).toString('base64'); }; function base64_decode(input) { return (new Buffer(input, 'base64')).toString(); } [01:47] nym: ok, i'm getting different results [01:48] isaacs: nym: oh, and a timeout for pummel/test-https-large-response [01:48] isaacs: but that's normal [01:48] nym: i'm going to try doing this on a vhost and see if i get better results [01:48] xandrews has joined the channel [01:48] isaacs: and i think the timer pummel test is going to go away [01:48] piscisaureus: AIkar: a I c. I had the base64 at the wrong place [01:48] nym: ok good to know [01:50] hvgotcodes: if i am doing a POST, do I do request.write(hash) or request.write(hashAsJson)? [01:51] k1ttty has joined the channel [01:53] matyr has joined the channel [01:54] indexzero has joined the channel [01:54] mhooker has joined the channel [01:54] robotarmy has joined the channel [01:55] piscisaureus: convore.com has a really simple api. [01:56] seivan has joined the channel [01:56] copongcopong has joined the channel [01:57] cloudhead: isaacs: I have the same thing as you, but the link goes back 1 directory too deep [01:57] zorzar has joined the channel [01:57] cloudhead: I mean, it's the same path, except it points to /usr/ on my system [01:58] isaacs: cloudhea1: ls -laF /usr/local/share/man/man1/npm.1 <-- what's that say?? [01:58] cloudhead: npm.1 -> ../../lib/node_modules/golem/man1/npm.1 would be the right path [01:58] cloudhead: lrwxrwxrwx 1 root root 40 Apr 10 21:08 /usr/local/share/man/man1/npm.1 -> ../../../lib/node_modules/npm/man1/npm.1 [01:58] cloudhead: lol [01:58] cloudhead: I don't know wtf is going on [01:58] isaacs: cloudhea1: yeah, that's what i have too. [01:59] cloudhead: but check this out [01:59] isaacs: cloudhead: ../../lib/node_modules/golem/man1/npm.1 would be /usr/local/share/lib/node_modules/... [01:59] cloudhead: -rw-r--r-- 1 nobody 4.4K Apr 10 21:08 /usr/local/lib/node_modules/npm/man1/npm.1 [01:59] isaacs: yeah [01:59] cloudhead: I know, that's what I'm thinking to myself [01:59] cloudhead: : / [02:00] isaacs: cat /usr/local/share/man/man1/npm.1 [02:00] cloudhead: the links are showing up in red, ie broken [02:00] isaacs: does that dump a bunch of troff? [02:00] cloudhead: nope [02:00] cloudhead: no such file or directory [02:01] Viriix has left the channel [02:01] cloudhead: crazy thing is if I go to the man1 dir [02:01] cloudhead: and do: `sudo ln -fs ../../lib/node_modules/npm/man1/npm.1` [02:02] cloudhead: it works [02:02] mike5w3c has joined the channel [02:02] cloudhead: oh shit [02:02] cloudhead: I figured it out [02:02] isaacs: oh? [02:02] cloudhead: lrwxrwxrwx 1 root 6 Dec 14 02:09 /usr/local/share/man -> ../man/ [02:03] cloudhead: that's interesting [02:03] cloudhead: lol [02:03] isaacs: wtf? [02:03] isaacs: do you have a /usr/local/man? [02:03] cloudhead: yea [02:03] cloudhead: I do [02:03] cloudhead: I'm on Archlinux btw [02:04] cloudhead: wondering if it's like this by default [02:04] cloudhead: I sure didn't touch it [02:04] isaacs: i see [02:04] tbranyen: lrwxrwxrwx 1 root root 6 Dec 14 02:09 man -> ../man [02:04] tbranyen: yup [02:04] tbranyen: haha [02:04] cloudhead: hah [02:04] isaacs: that's really odd, though. it should still resolve the symlink based on where it is. [02:05] isaacs: oh, maybe man's reading /usr/local/man instead of /usr/local/share/man? [02:05] hkjels: About mongoose. How would I know when forEach of a find is completed? [02:05] cloudhead: but I don't think man is the problem [02:05] perezd: hkjels: why not just use a counter? [02:05] cloudhead: it's that the relative path isn't correct because of the indirection [02:05] cloudhead: ie it goes an extra ../ [02:06] cloudhead: when it hits share/ [02:06] jesusabdullah: voodootikigod: GJ on haxxing mikeal's twitter XD [02:07] perezd: lol @ the java age [02:08] jesusabdullah: I agree. [02:10] marcello3d has joined the channel [02:10] hkjels: perezd: works, but it's kind of nasty as it defeats the purpose of using forEach over for [02:10] cloudhead: isaacs: oh I think I see what you mean [02:11] perezd: hkjels: thats true, it does defeat it [02:11] cloudhead: cause depending on how you navigate to it, it'll have a different path [02:11] isaacs: cloudhea1: exactly [02:12] dizzdiamonds has joined the channel [02:13] dizzdiamonds: hello, I just installed npm on a fresh mac install and I cannot execute installed modules ie. express [02:13] isaacs: dizzdiamonds: what versions? how did you install node? [02:13] dizzdiamonds: npm 1.0.1rc7 [02:13] dizzdiamonds: i installed node from the github instructions [02:14] dizzdiamonds: node is version 0.4.5 [02:14] isaacs: dizzdiamonds: ok. when you do `npm install express` in your project, you can do `require("express")` [02:14] cloudhead: isaacs: but I think the symlink is based on the real path, not the symed path [02:14] dgathright has joined the channel [02:14] isaacs: dizzdiamonds: if you want to run the express bin, then do `npm install express -g` to install it globally [02:14] dizzdiamonds: isaacs: let me give that a try [02:14] dizzdiamonds: isaacs: thanks, that works :) [02:15] jschuur has joined the channel [02:15] isaacs: dizzdiamonds: http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/ [02:15] dizzdiamonds: isaacs: was there a recent change with npm [02:15] isaacs: dizzdiamonds: yes [02:15] dizzdiamonds: isaacs: ok, what is the difference between -g and normally installing? [02:16] alindeman has joined the channel [02:16] jschuur: What's a good, lightweight file based database for node? nstore doesn't have any recent github commits and perstore seems like it's more than I need. [02:17] jschuur: Should I just use sqlite? [02:18] marcello3d: json? :D [02:18] tfe_ has joined the channel [02:18] tfe_ has joined the channel [02:19] jschuur: marcello3d: Was that meant for me? I'd like them to persist somehow. [02:19] jesusabdullah: There's an express binary? o__o [02:19] jesusabdullah: What does THAT do? [02:19] marcello3d: it's kinda silly, but for simple stuff, JSON.parse(readSync()) and writeSync(JSON.stringify(object)) should be a good starting point [02:20] sh1mmer has joined the channel [02:20] cloudhead: isaacs: if I do `readlink -f ../../../` from the man1 dir, it returns /usr, so I guess that's the deal [02:20] bingomanatee: Hows my nodelings? [02:20] jschuur: marcello3d: Hmm. I'll check that out actually. It's a single user app with not a lot of data anyway. [02:20] isaacs: cloudhea1: are you in /usr/local/share/man/man1, or /usr/local/man/man1 when you do that? [02:21] isaacs: dizzdiamonds: http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/ [02:21] bingomanatee: Hey marcello3D - I am having some issues with Mongoose - I might be giving Mongolian DeadBeef a spin this week. [02:21] cloudhead: isaacs: both return the same thing [02:21] isaacs: dizzdiamonds: read that^ it answers your question [02:21] isaacs: cloudhea1: um... that's really crazy and weird, then [02:21] isaacs: because that's not what readlink does [02:22] marcello3d: jschuur: if you want a little bit of robustness, you can rename the existing file before you save [02:22] cloudhead: isaacs: cause I'm guessing it resolves the real path, without taking into account any symlinks in the path [02:22] bingomanatee: jschur: mongo and couch seem to be the registries of choice in the community. [02:22] cloudhead: or maybe `cd` does that idk [02:22] marcello3d: bingomanatee: awesome :) [02:22] bingomanatee: jschuur ^ with redis being another popular choice. [02:22] jschuur: bingomanatee: Ordinarily I'd go with that too, but I wanted something that doesn't require a separate database process. [02:22] bingomanatee: I'll let you know how things go. [02:22] isaacs: cloudhea1: readlink doesn't resolve a real path [02:22] isaacs: cloudhea1: pwd -P does [02:23] bingomanatee: ??? [02:23] bingomanatee: jschuur: I have no idea what you mean. [02:23] marcello3d: bingomanatee: just remember it's super experimental, so no complaining :D [02:23] cloudhead: isaacs: yea I just tried that, it returns /usr/local/man/man1 from share/man/man1 [02:23] marcello3d: well, complaining is welcome, but don't get upset :D [02:23] bingomanatee: too bad. Its on git. I get to complain. [02:23] isaacs: cloudhea1: yeah, pwd -P should do that [02:23] bingomanatee: ACTION is already upset. [02:23] cloudhead: the symlinks must work that way too? [02:24] cloudhead: ie they're based on pwd -P [02:24] marcello3d: I'm actually reworking the gridfs stuff right now [02:24] jschuur: bingomanatee: I don't want the overhead of a DB solution that requires a DB server. sqlite e.g. works off of a file and the library/driver reads straight from it [02:24] marcello3d: but I've reached a point where I have two parallel async operations [02:24] marcello3d: that I want to bring down to a single op [02:24] bingomanatee: hopefully its small enogugh and my mongo-native knowledge is big enough that I should be able topatch any problems myself. [02:24] drobnox: whart's the latest greatest npm? I just upgraded to 3.1.8 [02:24] marcello3d: bingomanatee: yea, I don't think you'll have trouble [02:25] bingomanatee: jschuur: well, I'm sure that makes sense to you. I can't see what the problem is unless your native environment is a linux based digital watch, but there's a solution out there for everyeone. [02:25] isaacs: drobnox: no, you updated to 0.3.18 [02:25] warreng has joined the channel [02:25] isaacs: drobnox: it's 1.0 rc [02:26] drobnox: quick way to get to 1.0 rc? git? [02:26] marcello3d: drobnox: read the readme [02:26] jschuur: I'm not constrained per se, but it's a project that more users might want to install their own instance of, and requiring them to also install a DB server is just another hurdle. [02:26] marcello3d: there's a commandline option for installing rc [02:27] marcello3d: jschuur: what kind of data is it? [02:27] bingomanatee: i've already reverted to a very simple model system I wrote based on native that has simple wrappers for get, put, find, insert, and update. [02:27] timcosgrove has joined the channel [02:27] marcello3d: bingomanatee: on mongo? [02:27] bingomanatee: yeah. [02:27] bingomanatee: its part of my mvc package if you're curious. [02:27] Aikar: hmm [02:28] timcosgrove has left the channel [02:28] drobnox: thx all...working it [02:28] jschuur: marcello3d: In short, it's a list of URLs or files that a user has uploaded, some statuses associated with them and some config settings that can be toggled from the app. [02:28] Aikar: https://github.com/aikar/wormhole/blob/master/src/wormhole.cc#L61 [02:28] isaacs: drobnox: http://groups.google.com/group/npm-/browse_thread/thread/43d3e76d71d1f141 [02:28] marcello3d: jschuur: is it something you could reasonably keep all in memory? [02:28] Aikar: does anyone see anything obviously wrong with my code here? [02:28] bingomanatee: its really not that sophisticated - its just a few utility wrappers for basic collection based IO. [02:28] Aikar: im having memory corruption issues [02:29] jschuur: Hmm. Now that I think about it, the URLs turn into files. I could just browse all the files in the upload dir. [02:29] Aikar: am i getting the raw buffer out correctly? [02:29] jschuur: But I still need settings per file [02:29] marcello3d: jschuur: I'd just use json files [02:29] marcello3d: keep it simple [02:29] bingomanatee: the only really interesting thiing it does is allows you to use callbacks to ensure that you don't do any model based operations til the database is connected to. [02:29] Aikar: i replaced char* data with char realdata[6] = {0xa5, 0x68, 0x65, 0x6c, 0x6c, 0x6f}; char* data = (char*)&realdata; size_t len = 6; and its not crashing [02:29] jschuur: marcello3d: There's no reason not to keep it in memory. It's not that big of a deal if the status data is lost. [02:30] jschuur: marcello3d: Yeah, I'm looking that up right now, thanks. [02:30] bingomanatee: jschuur: there is nothing wrong with using local JSON based repos for transient session based stuff and files for persistence. [02:30] jschuur: I just started experimenting with node today. I mostly write Rails code. [02:31] bingomanatee: Databases are necesary if your data grows to a significant size, and/or you need graph operations, but not all apps have those demands on their critical path. [02:31] jschuur: bingomanatee: Is there a module that simplifies the handling or is the core JSON support enough? [02:31] bingomanatee: I can't imagine how it could. JSON is native to javascript. [02:31] jschuur: We're talking a few dozen to a hundred rows of data really [02:32] bingomanatee: there is JSON.stirngify() and JSON.parse() - that is again, essentially core Javascript [02:32] bingomanatee: ^ ^ stringify [02:32] marcello3d: core JSON is enough [02:32] marcello3d: it can even pretty-print if you want human readable output [02:32] bingomanatee: for serializing and deserializing strings to JSON and vice versa. [02:32] marcello3d: by pretty-print I mean indent [02:33] jschuur: Gotcha. That sounds like it takes care of my serialization [02:33] bingomanatee: really? how do you pretty print JSON? [02:33] marcello3d: JSON.stringify(object,null,2) [02:33] marcello3d: I think [02:33] bingomanatee: cool! [02:33] marcello3d: v8: JSON.stringify({a:1,b:[1,2]},null,2) [02:33] v8bot: marcello3d: "{\n \"a\": 1,\n \"b\": [\n 1,\n 2\n ]\n}" [02:33] marcello3d: yep [02:33] bingomanatee: jschuur: look at the expres.js examples of how TJ uses local repos for data . [02:34] jschuur: I'm actually already using stringify in the API portion of the prototype [02:34] marcello3d: v8: console.log(JSON.stringify({a:1,b:[1,2]},null,2)) [02:34] v8bot: marcello3d: "{\n \"a\": 1,\n \"b\": [\n 1,\n 2\n ]\n}" [02:34] micheil: v8: JSON.stringify.toString() [02:34] v8bot: micheil: "function stringify() { [native code] }" [02:34] micheil: :/ [02:34] hvgotcodes: how do i listen on http.request error? [02:34] hvgotcodes: register a callback [02:34] marcello3d: v8: console.log(JSON.stringify({a:1,b:[1,2]},null,2).split('\n')) [02:34] v8bot: marcello3d: SyntaxError: Unexpected token ILLEGAL [02:34] micheil: v8: console.log(JSON.stringify({a:1,b:[1,2]},null,2).split('\\n')) [02:34] v8bot: micheil: ["{\n \"a\": 1,\n \"b\": [\n 1,\n 2\n ]\n}"] [02:35] marcello3d: whatever [02:35] marcello3d: you get the idea :) [02:35] bingomanatee: yup thanks. [02:35] marcello3d: 2 is the amount of indent [02:35] piscisaureus: what is the best irc library for node.js? [02:35] micheil: hvgotcodes: request.on('error') I think. [02:35] bingomanatee: what is the second parameter? [02:35] marcello3d: it's for transforming objects [02:35] micheil: piscisaureus: probably the one on npm, I only know of one. [02:35] piscisaureus: there are several in npm. Which one you know about? [02:35] hvgotcodes: micheil: yeah thats it [02:36] marcello3d: http://www.json.org/js.html look for "replacer" [02:36] jschuur: I guess when I was asking about another module earlier, I meant something that provides model support. Exxpress doesn't seem to do that. [02:36] micheil: marcello3d: you're better looking in the ES5 reference [02:36] marcello3d: v8: JSON.stringify({a:1,b:[1,2]},2) [02:36] v8bot: marcello3d: "{\"a\":1,\"b\":[1,2]}" [02:36] marcello3d: https://developer.mozilla.org/en/Using_JSON_in_Firefox#The_replacer_parameter [02:36] micheil: V8 != Firefox's JS Engine. [02:37] marcello3d: shrug [02:37] marcello3d: it still works =P [02:37] jschuur: bingomanatee: You were referring to the blog example on the express github repo? [02:37] marcello3d: mdc reference is pretty good [02:37] marcello3d: and usually the same as v8 [02:37] AAA_awright: I use git://github.com/martynsmith/node-irc.git [02:37] marcello3d: and it says when it isn't [02:37] bingomanatee: yup [02:38] AAA_awright: Which is https://github.com/martynsmith/node-irc [02:39] bingomanatee: BTW I have extended the MVC example of express into a tiny framework with parameter driven form generation, mongoose for a model and controllers from the express.js example - I use it for my projects. Its a good jumpoff point for people from the MVC world (Rails/Zend Framework et all) [02:40] jschuur: bingomanatee: I'll take a look at that, sure. [02:40] jschuur: I'm not really sure this project needs the async benefits of node anymore, but what the heck, it's a nice way to learn. [02:40] bingomanatee: I honestly think that Mongo and Couch are both the most sensible store to use with Node. They both esssentially store keyed JSON files, and Couch even stores them via REST so you don't really need an ORM as such to use it . [02:41] hvgotcodes: im getting a connection refused when trying to connect to couchdb from node - is there anything obviously wrong with this https://gist.github.com/00f753ce63ed3ee564e3? [02:41] zentoooo has joined the channel [02:41] jschuur: I've never used a document based system before. I haven't done a ton of Rails either, and ActiveRecord abstracts the DB layer away from me nicely. [02:41] bingomanatee: The first project I used Node on had 30% of teh memory impact of teh same task done in PHP and I'd been using PHP for years. [02:42] cloudhead: isaacs: so I just deleted the symlink, and moved the man dir there, and all the links work now [02:42] jschuur: Yeah, I'm mainly doing it in Node, so I can stick it on a free or very cheap VM that doesn't have a lot of memory [02:42] bingomanatee: With JSON stores you don't really need much abstraction. You store things in a useful tree of values directly in the repository. [02:42] cloudhead: isaacs: but maybe absolute paths would be more bulletproof in the future, idk [02:42] bingomanatee: Well you can use Couch over the web - Couch has free database hosting so you can lean on a remote repo for Couch and not hit your VM's memory or file system at all. [02:43] bingomanatee: Mongo has similar offerings but Couch is probably a much easier system to "get" if you are new to noSQL [02:44] jschuur: Ah. Did not realize that. [02:45] bingomanatee: i take it you "Get" REST from having used Ruby? [02:45] jschuur: Yeah. [02:45] timcosgrove has joined the channel [02:46] steph021 has joined the channel [02:46] jschuur: Understand yes, use begrudingly. Most of the time ;) [02:46] timcosgrove has left the channel [02:46] bingomanatee: You can simply REST JSON data straight to a Couch repo - and the nice thing you can even attach files - images, text, binary data - a subcomponents of a document the same way. [02:47] jschuur: It introduces another external dependency for this app though. And I'd like the user to know their data is under their control locally. But for another app I'll check that out, thanks. [02:48] bingomanatee: You'll be glad you did. [02:48] bingomanatee: there's no reason not to set up a couch system locally, other than your wimpy VM. [02:49] jschuur: I'm basically managing torrent files to queue and kick off a client from another location. And some people might not always use it for entirely legit purposes. [02:50] jschuur: So I don't want to store that data on a third party DB [02:51] OneBraveHog has joined the channel [02:51] tbranyen: people use torrents for more than linux isos? [02:51] jschuur: Aparently. [02:51] jschuur: Transmission comes with a web interface, but it's not as flexible as I'd like. [02:52] mynyml has joined the channel [02:52] Viriix has joined the channel [02:53] jschuur: Not even sure if I'll release this, but it's a nice little self contained project [02:53] at133 has joined the channel [02:53] Aikar: hmm [02:54] Aikar: now im really confused [02:54] Aikar: looks like my memory corruption/segfault bug may be caused by something in node O.o [02:54] wilmoore has joined the channel [02:54] Aikar: ryah: you got a moment to look over some stuff? [02:55] harth has joined the channel [02:55] at133: Hi, I sometimes get node running the same callback twice on one refresh. I read about requesting the favicon causing that, but when I log the request url I don't see any favicon request, just two requests for the resource. Is there something else I should log to figure out what is causing this? [02:56] jschuur: Damn, I didn't see pcload1etter. Now I can't ask him 'What the fuck does that mean?'. I'm sure he NEVER gets that. [02:56] hasenj has joined the channel [02:56] jschuur: at133: Google Instant in Chrome maybe? [02:57] jschuur: Or whatever that things is called where it tries to go to a URL while you're typing [02:57] at133: It is in firefox. [02:57] jschuur: That's probably more than two times though [02:57] jschuur: Those are my only guesses [02:58] themiddleman has joined the channel [02:58] wang has joined the channel [02:58] hvgotcodes: is http.createClient not documented? [02:59] varioust has joined the channel [02:59] mikegerwitz: hvgotcodes: old API. Use http.request() [02:59] devrim has joined the channel [03:00] jschuur: hvgotcodes: It's in http://nodejs.org/docs/v0.4.5/api/http.html#http.ClientRequest ? [03:00] marcello3d: man. trying to get my library down to 50 lines of code :) [03:00] marcello3d: (50 readable lines of code) [03:04] Eber has joined the channel [03:04] jschuur: marcello3d: Let's assume I am using readSync/writeSync... if I wanted to update my file after each REST request, don't I technically have to worry about file clobbering? [03:04] mhooker has joined the channel [03:04] pc1oad1etter has joined the channel [03:04] at133: jschuur: Turns out that it is a firebug thing [03:04] marcello3d: jschuur: node.js is single-threaded [03:05] jschuur: marcello3d: I see. So I could even preload the entire file once into a global then and not worry about conflicts? [03:05] marcello3d: yep [03:05] jschuur: at133: Interesting [03:06] jschuur: Single threading not looking so bad now ;) [03:06] marcello3d: that's how I'd do it, load it into memory, modify memory, then save out whenever I change it/care [03:07] marcello3d: :) [03:08] hasokeric has joined the channel [03:08] jschuur: I'm still trying to find all the equivalents I know from Rails. Is node-supervisor the preferred method to auto reload files on the dev environment? [03:09] jschuur: I tried that earlier and there seemed to be a slight delay until it recognized a change [03:09] marcello3d: dunno, I wrote my own :) [03:09] marcello3d: there's 'run' on npm [03:09] Eber: Guys, I'm using node on Windows with Cygwin, and I'm getting an error when trying to install express with NPM... I doesn't look like any error related with node or npm, but I'm getting an error when it tries to unzip something. [03:09] Eber: Here is the error: [03:09] Eber: npm ERR! Error: Failed tar "-mvxpf" "-" "-C" "/usr/local/lib/node/.npm/express/2 .2.1" [03:09] bartt1 has joined the channel [03:09] mhooker has joined the channel [03:10] tbranyen: Eber: no errors above that? [03:10] Eber: tbranyen: yes, indeed... I was just looking for the last part... [03:11] Eber: This is the very first error: npm ERR! tar "-mvxpf" "-" "-C" "/usr/local/lib/node/.npm/express/2.2.1" tar: Une xpected EOF in archive [03:11] tbranyen: can you pastie all of them? [03:11] tbranyen: @ pastie.org [03:11] marcello3d: nice, down to 47 lines of code :) [03:12] Eber: tbranyen: http://pastie.org/1781247 [03:12] marcello3d: 45! :D [03:13] marcello3d: I can add some comments now [03:13] tbranyen: Eber: thats p fubared [03:13] tbranyen: did you remove the dirs at the end? [03:13] tbranyen: rm -rf /usr/local/lib/node/.npm/express/2 [03:13] tbranyen: .2.1 [03:13] Eber: tbranyen: uhm, ok... let me try it out! [03:13] tbranyen: looks like it had trouble removing a lot of dirs [03:14] marcello3d: eber: try sudo'ing it [03:14] marcello3d: wait. windows. nm [03:14] tbranyen: heh could run his shell as administrator tho [03:14] tbranyen: which might help [03:14] Eber: marcello3d: yeah... I was going to ask if sudo even works with cygwin! [03:14] tbranyen: maybe? [03:14] Eber: tbranyen: uhmm, true! [03:15] tbranyen: i've never had to [03:15] tbranyen: but that might help in your situation [03:15] Eber: tbranyen: yeah, didn't help... same error... look what I found: https://github.com/isaacs/npm/issues/740 [03:15] jakehow has joined the channel [03:16] jschuur: run looks marcello3d: OK, runjs identifies changes faster than I can Command-Tab back to the browser, so that works for me. [03:16] tbranyen: odd [03:16] Eber: tbranyen: I installed coffee without a problem... [03:17] Eber: maybe it's an express issue... [03:17] tbranyen: crap wish i had my virtual machines here :-/ [03:18] indutny has joined the channel [03:18] davidwalsh has joined the channel [03:22] marcello3d: ooh [03:22] marcello3d: 40 lines of code :D [03:23] marcello3d: took out a feature [03:24] Eber: also this: https://github.com/isaacs/npm/issues/696 [03:25] skm has joined the channel [03:26] jschuur: Nooo. The product manager in me says 'Feature good. Taking out, bad' [03:26] pHcF has joined the channel [03:26] marcello3d: heh [03:27] marcello3d: by taking out a feature I'm adding a better feature: simplicity :) [03:27] Swimming_bird has joined the channel [03:27] Swimming_bird: if i install something with npm for some reason i can't require it with require('pkg') [03:27] Swimming_bird: do i need to set up any env variables or something in my project? [03:27] ibrahimal-rajhi has joined the channel [03:27] cloudhead has joined the channel [03:28] jschuur: marcello3d: The sales team would say 'I can't charge for 'simplicity'' [03:29] marcello3d: apple does :) [03:29] jschuur: True. [03:29] gisborne has left the channel [03:29] marcello3d: besides, this is a developer library [03:29] marcello3d: it makes programming simpler without being hard to learn [03:29] marcello3d: that's worth something [03:30] gisborne has joined the channel [03:31] jschuur: I was kidding mostly. I spent years being guilty of feature creep myself. [03:33] path[l]: has anyone here got any experience working with Alfred.js? I cant get it to write to disk [03:35] mike_miller has joined the channel [03:35] Swimming_bird: can anyone help me? this is kinda annoying. i wind up just having to manually target every js file. i feel like it's something super simple. http://media.talatlas.com/s/1._Shell-20110410-233340.png [03:36] Eber: Yey! Got it working... The problem was with the qs module... Downloaded it from the NPM Registry and installed locally... After that express installed just ok :) [03:37] marcello3d: Swimming_bird: that's an old version of npm, isn't it? [03:37] Swimming_bird: 0.2.11-5 [03:37] timcosgrove has joined the channel [03:37] marcello3d: ignoring the fact that 1.0rc is out, I think the latest is 0.3.something? [03:37] Aikar: 0.3.X is latest [03:39] marcello3d: wooot [03:39] marcello3d: new module: https://github.com/marcello3d/node-waiter :D [03:40] rfay has joined the channel [03:41] Eber: Is there a module to make express behave like an MVC framework? Something like Padrino is to Sinatra? [03:41] tomaw has joined the channel [03:42] jschuur: marcello3d: I'd recommend a sentence in the readme as to when you'd want parallel async calls. [03:43] marcello3d: mmm [03:43] jschuur: Pet peeve of mine. A lot of stuff on github always says exactly what it does, but never who'd want to use it. [03:43] Swimming_bird: hrm, on 1.0rc i'm getting funky behavior with coffeescript [03:43] marcello3d: well in this particular case [03:44] marcello3d: if you don't know what you'd use it for, you should move along :) [03:44] Swimming_bird: as in requiring modules in coffee [03:44] jschuur: Developers tend to be very literal and make assumptions that everyone else will immediately recognize the purpose of something [03:44] marcello3d: the real reason I made the module [03:44] dnunes has left the channel [03:44] marcello3d: is because I need it in mongolian deadbeef [03:44] saschagehlich_ has joined the channel [03:44] marcello3d: I don't really care if anyone else uses it, in fact, probably better if they didn't [03:45] jschuur: Perhaps. But for someone new and trying to learn, if they constantly hit up against projects with no context, they get frustrated. [03:45] jschuur: I get frustrated ;) [03:45] marcello3d: alright [03:45] marcello3d: well [03:45] marcello3d: what do you think it's for? [03:45] marcello3d: because I'm probably not the best person to describe it [03:46] jschuur: Well, keep in mind I have about a day's worth of node experience. [03:46] marcello3d: even better [03:47] jschuur: I thought node was already capable of responding asynchronously (kind of, still in a single thread). [03:47] jschuur: While on connection's session waits for the next event listener to fire based on whatever, Node can still deal with another connection, right? [03:48] marcello3d: how about this: [03:48] beawesomeinstead has joined the channel [03:48] beawesomeinstead has joined the channel [03:48] marcello3d: A simple way to wait for multiple asynchronous calls to return in Node.js. [03:48] matyr has joined the channel [03:49] jschuur: You're still describing the solution though. Explain the problem to potential users too. [03:49] marcello3d: so the problem is you have some code you need to run [03:49] marcello3d: and it depends on the results of 3 different asynchronous calls [03:50] marcello3d: while you could nest them inside each other (run one, get its value, run the next, get its value, etc) [03:50] bentkus has joined the channel [03:50] marcello3d: you may want to run them at the same time [03:50] jschuur: Ah, so it's for the same user connection (client session e.g.)? [03:50] marcello3d: imagine it's not even a webapp [03:51] marcello3d: just some commandline app you're writing [03:51] jschuur: And you wouldn't care about what order they run? [03:51] marcello3d: and you want to, say, call 10 different REST services on the web [03:51] marcello3d: to get some data back [03:51] k1ttty has joined the channel [03:51] jschuur: Is it a way to fire a final event when they're all done e.g.? [03:51] marcello3d: right, this is for the situation where you don't care about order [03:51] marcello3d: yep [03:52] marcello3d: as well as put the return values somewhere useful [03:52] jschuur: Ah. I kind of assumed aside from knowing when everything is done, that node already worked that way if you just set up a bunch of event listeners [03:52] jschuur: So there's you're hook: Explain that it's good for notifying you when a bunch of calls have all completed. [03:52] dgathright has joined the channel [03:53] bert`C: Anyone wants to help me test the convore bot -> https://convore.com/test-243/stupid and [03:53] bert`C: #abctest [03:54] matyr has joined the channel [03:55] objectiveous has joined the channel [03:55] path[l] has joined the channel [03:56] aguynamedben has joined the channel [03:56] path[l]: doesnt step.js also attack the same use case? [03:57] path[l]: marcello3d [03:57] marcello3d: path[l]: yep [03:58] marcello3d: this is a very small subset of step though [03:58] path[l]: ah [03:58] jschuur: That's another pet peeve of mine: When I find seemingly similar apps, they should tell me why I want to use one over the other or if they overlap. [03:59] Astro has joined the channel [03:59] copongcopong1 has joined the channel [03:59] marcello3d: and a quarter the size (in code) [03:59] Eber: Is there a module to make express behave like an MVC framework? Something like Padrino is to Sinatra? [04:01] beawesomeinstead has joined the channel [04:02] marcello3d: jschuur: good call, adding that to the readme [04:02] Eber: i gotta go :) maybe I'll build one? =D [04:02] Eber: bye! [04:02] jschuur: Eber: https://github.com/joyent/node/wiki/modules#web-frameworks-full ? [04:02] astropirate has joined the channel [04:02] jschuur: Alright, battery dying, time to go. [04:03] jschuur: Bye folks. Thanks for indulging me. [04:04] marcello3d: take care [04:05] sechrist_ has joined the channel [04:05] zcopley has joined the channel [04:08] Guest44477 has joined the channel [04:09] gtramont1na has joined the channel [04:10] abraham has joined the channel [04:14] path[l] has joined the channel [04:14] convore1 has joined the channel [04:14] gtramont1na: cloudhead: Hey man... How easy is to integrate Vows with Jenkins? [04:14] drobnox has joined the channel [04:15] convore1: 14topic: Does it work (http://convore.com/test-243/does-it-work/) [04:15] piscisaureus`c: Now it does! [04:15] newguy has joined the channel [04:15] piscisaureus`c: The question is how stable it is [04:18] muk_mb has joined the channel [04:19] carnivore has joined the channel [04:24] mdoan has joined the channel [04:27] path[l]: ugh seriously? Alfred is broken for the one thing I dont like the most about javascript, what are the odds [04:27] path[l]: confusion about this [04:28] astropirate: eeiiikkk the documentations are so utterly incomplete [04:29] astropirate: * node documentation [04:30] gisborne has joined the channel [04:30] jeffmoss has joined the channel [04:31] fairwinds has joined the channel [04:31] steph021 has joined the channel [04:36] mscdex: question: is there a way i can deal with the value 9999999999999999 in js? [04:36] mscdex: :S [04:37] tbranyen: put it in a string [04:37] tbranyen: and do something with it in C++ [04:37] mscdex: tbranyen: i have to do a calculation with it and i'd like to stay pure js :) [04:37] tbranyen: well that isn't what JS is good at, so you're not going to have much luck [04:38] ckknight: mscdex: I'd use a BigInteger library or something like it [04:39] tbranyen: ah yeah good point, i forgot people like substack have taken a stab at support [04:39] mscdex: hrm... i guess i could just check for that case and offset by 1 where needed [04:39] tbranyen: that'd be much easier [04:40] SubStack: moo? [04:41] tbranyen: SubStack: i'm looking into how large gmplib is [04:41] tbranyen: might consider bundling it [04:41] SubStack: oh that, it is very big [04:41] tbranyen: unless its massive or something [04:41] tbranyen: :-/ [04:41] SubStack: in terms of functionality I mean [04:41] ljounce has joined the channel [04:41] tbranyen: i meant filesize to bundle [04:42] SubStack: require('bigint')(9999999999999999 in js? [04:42] SubStack: 04:36:35 < mscdex> :S [04:42] SubStack: 04:37:01 < tbranyen> put it in a string [04:42] SubStack: shit [04:42] Schmallon has joined the channel [04:42] mscdex: heh [04:42] SubStack: silly clipboard [04:42] tbranyen: putty right click? [04:43] tbranyen: that used to get me all the time [04:43] SubStack: middle click on my thinkpad [04:43] tbranyen: ah heh [04:43] SubStack: right in between left and right clicks [04:44] tbranyen: http://pastie.org/1781449 [04:44] tbranyen: so close to being done [04:45] tbranyen: just need to implement a few more things [04:45] tbranyen: wiimote in node xD [04:46] mape: This is going to kill me, node keeps getting fatal errors because it can't alloc memory, can't it just steal some back from mongodb? :S [04:47] warz has joined the channel [04:48] piscisaureus has joined the channel [04:50] matjas has joined the channel [04:51] Emmanuel__ has joined the channel [04:52] ryan0x2 has joined the channel [04:52] saikat has joined the channel [04:53] bojicas has joined the channel [04:55] gtramont1na: Hey y'all, don't know how many of you have already played with cloudbees. It's free account gives you a git repository and a Jenkins CI instance. The down side is that it doesn't provide you any way for you to configure your server yet. So there is nothing but Java and Ruby installed there. So I've written a quick bash script that adds node and npm to your cloudbees' CI server (https://github.com/gtramontina/cloudbees-node). Suggestions and [04:55] gtramont1na: help on improving it are very much welcome! [04:56] losing has joined the channel [04:56] JimBastard has joined the channel [04:56] hiddenbayes has joined the channel [04:56] tbranyen: free you say [04:57] gtramont1na: yep [05:00] boaz has joined the channel [05:01] tbranyen: cool signed up and validated [05:01] tbranyen: gtramont1na: do i ssh in or something? [05:02] tbranyen: ah i should read your readme [05:02] gtramont1na: tbranyen: they didn't provide ssh afaik and searched... :-) That's why I've written this script. [05:03] tbranyen: did you do it through jenkins? [05:04] gtramont1na: Yep. Just commit and push the script into your cloudbees' git repo [05:04] tbranyen: kk [05:04] gtramont1na: Oh. Forgot to mention about how to hook it in the CI. My bad [05:04] gtramont1na: Just a sec. [05:06] jtsnow has joined the channel [05:07] gtramont1na: github updated. [05:08] onre has joined the channel [05:14] cloudhead has joined the channel [05:14] wookiehangover has joined the channel [05:15] gtramont1na: cloudhead: Hey dude. How easy is it to integrate Vowsjs with Jenkins? [05:16] cloudhead: gtramont1na: what's Jenkins? [05:16] cloudhead: (hey) [05:16] gtramont1na: Continuous Integration server [05:16] gtramont1na: Hudson -> Jenkins [05:16] cloudhead: ah [05:16] cloudhead: well, it should be pretty easy [05:17] cloudhead: depends what you need [05:17] cloudhead: vows can output to a json format [05:17] cloudhead: you can parse that easily [05:17] cloudhead: do whatever you want with it [05:18] gtramont1na: Cool. Does to have a different exit code when tests fail? [05:19] gtramont1na: I mean, when we call "vows tests/*" and all tests are green vs. when some tests are red [05:20] Guest56674 has joined the channel [05:21] spencert has joined the channel [05:21] spencert: hi, there [05:21] spencert: i am using, https://github.com/loggly/collectd-to-graphite/blob/master/collectd-graphite-proxy.js [05:22] cloudhead: gtramont1na: yes [05:22] spencert: and for whatever reason it does not seem to be executing correctly on this line [05:22] gtramont1na: Awesome! This makes things way easier! ;-) [05:22] spencert: var m = putval_re.exec(metrics[i]); [05:23] spencert: for whatever reason when i do a console.log(m) after that line, it always returns null [05:26] spencert: any regex experts out there... [05:28] sako: hey guys so i dont understand how you can incorporate a template engine with node.js [05:28] sako: i was looking at handlebars, since i love django templates and it seems to be closest [05:28] jimt_ has joined the channel [05:29] cloudhead: gtramont1na: cool, let me know if you have any issues [05:29] gtramont1na: Will do! ;-) [05:30] cloudhead: spencert: maybe I can help [05:30] gtramont1na: sako: are you using any web framework? E.g. express? [05:30] spencert: couldhead: great, here is the incoming stream... [05:31] spencert: PUTVAL tops-026-204.d.usys.fsglobal.net/cpu-3/cpu-softirq interval=6.000 1302499820.434:0 [05:31] cloudhead: ok and what do you need [05:32] rvaj has joined the channel [05:32] ryan0x2 has joined the channel [05:32] spencert: if you look at this: https://github.com/loggly/collectd-to-graphite/blob/master/collectd-graphite-proxy.js you will see it looks for 4 elements [05:32] cloudhead: yea [05:33] gtramont1na: sako: If you are using Express.js, there is an adapter for handlebars here http://github.com/donpark/hbs [05:34] spencert: in the end i need something to feed to graphite, i can get the stream all cleaned up and sent to graphite once i get it chopped up into the bits i need, [05:34] spencert: this regex is hurting my brain [05:35] spencert: plus its too late on a sunday to be looking at this :-) [05:35] cloudhead: ok so what parts do you need separated? [05:35] cloudhead: the host, the interval and .. [05:36] sako: gtramont1na: thanks! [05:36] sako: gtramont1na: i am planning on using express yes.. [05:36] mike_miller has joined the channel [05:36] spencert: i need host, the stuff after the / I call it the metric name, dont need the interval section, but i do need the timestamp and the value after it, the .434 [05:37] JimBastard has joined the channel [05:37] spencert: so tops-026-204.d.usys.fsglobal.net cpu-3/cpu-softirq 1302499820 434 [05:38] cloudhead: the : is messing it up [05:38] xsyn has joined the channel [05:38] wookiehang0ver has joined the channel [05:38] spencert: ahh, maybe collectd stream is incorrect. let me see if i can get collectd not to send [05:38] cloudhead: /^PUTVAL ([^ ]+)(?: ([^ ]+=[^ ]+)?) ([0-9]+).((?:-?[0-9.]+)+)/ works [05:39] cloudhead: on this string at least [05:39] matyr_ has joined the channel [05:40] spencert: woot! cloudhead, that did it [05:40] cloudhead: cool [05:40] cloudhead: also, you can replace all the [^ ] bits with \S [05:40] sako: hmm doesnt look like handlebars + express is too common? [05:40] sako: what are people using with express (template enginewise) [05:40] spencert: cloudhead: ok, i will try that also, [05:40] cloudhead: sako: probably jade [05:41] shaunau: sako: i've been playing with jqtpl [05:41] SubStack: jade and haml seem to be rather common [05:41] SubStack: I've seen some handlebar use too [05:41] sako: haml sucks :/ [05:41] sako: i refuse lol [05:41] sako: let me check out jade [05:42] spencert: cloudhead: you are correct, that replacement works perfectly also [05:42] sako: ugh jade is weak too.. whats so hard about html that people need to keep messing with it? [05:42] onre_ has joined the channel [05:42] sako: ill stick to handlebars i guess [05:43] sako: its like i have to learn a whole new language to write something i already know... [05:44] coreb has joined the channel [05:44] spencert: cloudhead: do i even dare ask what \S is matching? [05:44] cloudhead: sako: I agree, I just have a little function to do basic replacement on the server-side [05:44] cloudhead: spencert: not-space [05:44] JimBastard: cloudhead in the house [05:44] JimBastard: and indexzero [05:44] JimBastard: its a regular fucking javascript party! [05:45] JimBastard: :-D [05:45] cloudhead: spencert: as opposed to \s which is kinda like [ \n] [05:45] cloudhead: JimBastard: yow [05:45] spencert: ah, i was googling and finding \s was space, did not do the login in my head. [05:46] cloudhead: yeh [05:46] spencert: s/login/logic/ [05:47] spencert: excellent, thank you for helping, this is pretty sweet stuff this node, i have it in between collectd, and graphite. takes the data from collectd and stores it in graphite for graphs [05:47] wookiehangover has joined the channel [05:47] gtramont1na has joined the channel [05:47] k1ttty has joined the channel [05:48] cloudhead: spencert: cool [05:48] skm has joined the channel [05:48] cloudhead: JimBastard: hey you been using npm 1.0? [05:48] sivy_ has joined the channel [05:48] spencert has left the channel [05:48] JimBastard: cloudhead: i dont think so... [05:49] JimBastard: did everything break? [05:50] sivy has joined the channel [05:50] cloudhead: JimBastard: yea [05:50] cloudhead: lol [05:51] cloudhead: well, basically it seems like it looks for stuff in lib/node_modules now [05:51] tfe_ has joined the channel [05:51] tfe_ has joined the channel [05:51] cloudhead: but that dir isn't in require.paths [05:51] cloudhead: so : / [05:52] stonebranch has joined the channel [05:52] JimBastard: where is it looking now? wherever you specify with the npm config attr? [05:52] JimBastard: doesnt it fallback to that? [05:53] overra has joined the channel [05:53] indiefan2a has joined the channel [05:53] sivy has joined the channel [05:54] cloudhead: JimBastard: I know it looks in ./node_modules [05:54] cloudhead: but I dont know about the rest [05:55] JimBastard: i should prob try npm 1.0 [05:56] SubStack: I find myself installing everything globally :p [05:56] SubStack: haven't quite internalized how this node_module stuff could be useful just yet [05:56] xsyn has joined the channel [05:58] darshanshankar has joined the channel [05:59] sivy has joined the channel [05:59] onre_ has joined the channel [05:59] cloudhead: SubStack: yes me too : / [06:00] cloudhead: I feel like -g should be the default [06:00] SubStack: yeah :/ [06:00] SubStack: I'm sure there is a use-case in there where it would be useful but I haven't run up against it yet [06:01] Phyllio has joined the channel [06:01] sivy has joined the channel [06:01] briznad has joined the channel [06:03] fangel has joined the channel [06:03] idefine has joined the channel [06:04] sivy has joined the channel [06:04] astropirate: Anyone know what i can use instead of Function.caller? browsers have argument.caller but that doesn't seem to be available in node [06:04] aguynamedben has joined the channel [06:04] jimt has joined the channel [06:05] astropirate: * i mean argument.caller is obselete and browsers have function.caller [06:05] mraleph has joined the channel [06:05] Mulleteer has joined the channel [06:09] cloudhead: yea I'm not sure what the use case is yet [06:10] jimt_ has joined the channel [06:11] MikhX has joined the channel [06:11] matyr has joined the channel [06:11] rubydiamond_ has joined the channel [06:12] rubydiamond_: ryah: there? [06:12] rubydiamond_: getting this error "Your node instance does not have root privileges. This means that the flash XML policy file will be served inline instead of on port 843. This will slow down initial connections slightly." [06:12] rubydiamond_: using ubuntu [06:12] blkcat: rubydiamond_: what's the issue? [06:12] blkcat: that error seems pretty straightforward [06:12] ryah: rubydiamond_: hi [06:13] rubydiamond_: ryah: see this http://pastie.org/private/6pkuwz6ehzfbhprmwfaxug [06:13] ryah: rubydiamond_: you're missing an 'error' event [06:13] ryah: if you don't listen to them node crashes [06:13] Mulleteer: Hi, is there way to override or wrap require() function? I would need to keep track of depency tree of files. [06:13] rubydiamond_: ryah: hmm.. [06:14] rubydiamond_: ryah: how to fix that ? [06:14] JimBastard: ryah: i got this node.js rap song sitting on my HD for a while now, i think im gonna push it to github now [06:14] JimBastard: :-D [06:14] rubydiamond_: JimBastard: send me that.. [06:15] rubydiamond_: ryah: how to solve it? [06:15] sako: hmm seems like express is really meant to be used with jade :/ [06:16] sako: how would you do partials with handlebars? [06:16] sako: or like forloops over an array [06:16] rubydiamond_: ryah: here is code snippet http://pastie.org/private/4ap1bven1jck7iqv48ltq [06:16] rubydiamond_: for which error is coming [06:17] mhiku has joined the channel [06:17] rubydiamond_: ryah: halp [06:18] sivy has joined the channel [06:18] rubydiamond_: ryah: there? [06:18] rubydiamond_: throw e; // process.nextTick error, or 'error' event on first tick .. ? [06:20] rubydiamond_: ryah: that snippet works fine on mac [06:20] rubydiamond_: not on ubuntu [06:22] brianloveswords has joined the channel [06:23] gtramont1na has joined the channel [06:23] ryan0x2 has joined the channel [06:23] newy_ has joined the channel [06:25] rubydiamond_: ryah: there? [06:25] rubydiamond_: restarting my machine.. hope that issue gets resolved [06:27] troessner has joined the channel [06:28] mattijs has joined the channel [06:28] rubydiamond_ has joined the channel [06:28] sako: any handlebars + express users? [06:29] sako: is it possible to use partials with handlebars+expressjs/ [06:30] rubydiamond_: ryah: same issue even after restarting machine http://pastie.org/1781639 [06:30] rubydiamond_: sako: any idea [06:30] bentkus has joined the channel [06:31] ivanfi has joined the channel [06:31] dgathright has joined the channel [06:34] __tosh has joined the channel [06:36] ph^ has joined the channel [06:36] shaunau: sako: did you look at jqtpl? [06:37] shaunau: i dont use handlebars but it looks similar.. (i think) [06:39] matjas has joined the channel [06:39] lorhko has joined the channel [06:39] groom has joined the channel [06:40] SamuraiJack has joined the channel [06:44] mscdex: muahahaha new nntp module cometh! [06:44] ryah: rubydiamond_: not sure [06:44] seivan has joined the channel [06:44] rubydiamond_: ryah: hmm [06:44] rubydiamond_: ryah: did you look at code I shared [06:45] rubydiamond_: ryah: actually it worked at my home macbook pr [06:45] rubydiamond_: currently at work .. on Ubuntu VM.. it's giving me this issue [06:45] christophsturm has joined the channel [06:45] rubydiamond_: I was about to demo node.js functionality here :( [06:48] seivan_ has joined the channel [06:48] bergie has joined the channel [06:49] fljitovak_ has joined the channel [06:49] fljitovak_ has left the channel [06:51] emattias has joined the channel [06:52] sreeix has joined the channel [06:53] matyr_ has joined the channel [06:58] CiRlE has joined the channel [07:00] philhawksworth has left the channel [07:00] V1 has joined the channel [07:01] mAritz has joined the channel [07:02] bojovs has joined the channel [07:03] nyholt has joined the channel [07:06] kaichenxyz has joined the channel [07:06] kaichenxyz has joined the channel [07:07] varioust has joined the channel [07:09] warreng has joined the channel [07:09] FireFly|n900 has joined the channel [07:11] matjas has joined the channel [07:12] ajnasz has joined the channel [07:12] neshaug has joined the channel [07:12] nyholt has joined the channel [07:13] skm has joined the channel [07:14] adambeynon has joined the channel [07:14] f7u12 has joined the channel [07:14] james_gary has joined the channel [07:14] f7u12: Hello, anybody here? [07:15] TooTallNate has joined the channel [07:16] jroes has joined the channel [07:16] f7u12: I've used npm install now - how can I check if it's installed properly. I'm getting the error "Cannot find module 'now'" [07:16] TooTallNate: hey guys, any 'wscript' gurus here? [07:16] TomY_ has joined the channel [07:16] shaunau has joined the channel [07:16] TooTallNate: I'm trying to compile a node binding with 1 .c file and 1 .cpp file [07:16] TooTallNate: however, the .c file needs differenct 'cxx' flags than the .cpp file [07:17] TooTallNate: how can this be done with the 'wscript'? [07:18] mape: f7u12: npm changed how it handles installs, all installs now are local unless you specify them not to be [07:19] mape: npm help folders [07:19] troessner has joined the channel [07:19] f7u12: mape: cheers, I'm a little out of my depth so what does that mean exactly? [07:22] nym has joined the channel [07:22] nym: hey [07:22] mape: f7u12: npm config set global true && echo 'export NODE_PATH="'$(npm root -g)'"' >> ~/.bashrc && . ~/.bashrc [07:22] nym: i'm having issues trying to do npm install sqlite [07:22] mape: might work [07:24] nym: http://pastebin.mozilla.org/1202020 [07:24] raphdg has joined the channel [07:24] f7u12: mape: Hmm. I've installed node to ~/local/node and npm is installed within that (although is still an old install of node 0.1.2 at /usr/local/Cellar [07:24] nym: npm ERR! install failed Error: sqlite@1.0.3 preinstall: `node-waf configure build` [07:25] f7u12: so given that npm is running from the latest local install [07:25] f7u12: am I to assume it's installed it locally or still globally? [07:25] dgathright_ has joined the channel [07:26] saschagehlich_: V1: ping [07:26] V1: saschagehlich_: pong [07:26] indexzero has joined the channel [07:26] saschagehlich_: whoa, it's 9:26 am - you are online?! [07:26] nym: if anyone could help i'd appreciate it [07:26] saschagehlich_: you're not nerdy enough :P did you ever get "Uncaught TypeError: Object # has no method 'getTransport'" client-side? :S [07:27] f7u12: mape: the node install prefix is ~/local/node - but the CWD is /usr/local [07:27] f7u12: mape: global is also false [07:29] matyr has joined the channel [07:30] jollyroger has joined the channel [07:32] blueadept has left the channel [07:33] zubairov has joined the channel [07:33] mape: f7u12: yeah, if you read npm help folders you'll see why global being false might be an issue for you [07:33] ryan0x2 has joined the channel [07:33] indutny has joined the channel [07:33] saschagehlich_: V1: gnah, my fault. way too early to code ;) [07:33] V1: saschagehlich_: lol :p [07:34] V1: saschagehlich_: It's 09:34 am So I'm already at work.. for about.... 34 minutes. [07:35] saschagehlich_: V1: uh - you have office times? nasty :/ [07:35] TooTallNate: nobody knows the answer to wscript? [07:35] V1: saschagehlich_: Yup, because I also work.. In an office :o [07:35] TooTallNate: Here's what I have: https://gist.github.com/913195 [07:35] saschagehlich_: V1: makes sense! self employment ftw :) [07:35] f7u12 has joined the channel [07:36] saschagehlich_: TooTallNate: what's the problem? [07:36] V1: saschagehlich_: Been there, done that :p but I miss having co-workers :p [07:36] V1: Talk nerdy to me! [07:36] V1: :( [07:36] saschagehlich_: :D [07:36] [AD]Turbo has joined the channel [07:36] TooTallNate: It builds properly, but the when I try to call the function (from JS) that calls the function in the C file, it doesn't get resolved [07:36] saschagehlich_: yeah, got my first employee since last week. unfortunately no nerd, just an assistance [07:36] f7u12: mape: thank you for your help [07:37] andi5 has joined the channel [07:37] mape: f7u12: np [07:37] TooTallNate: I'm getting: [07:37] TooTallNate: dyld: lazy symbol binding failed: Symbol not found: __Z9getVolumev [07:37] TooTallNate: Referenced from: /Users/nrajlich/tunes/build/default/helloworld.node [07:37] TooTallNate: Expected in: flat namespace [07:38] hiddenbayes: V1, what's your job? [07:38] saschagehlich_: TooTallNate: sorry - don't know what's up there :( [07:39] TooTallNate: It seems to me like the c file's .o file isn't being included in the final linking or something [07:39] TooTallNate: but then I'm not sure why it would want to compile [07:40] indutny: hi everyone! [07:40] msucan has joined the channel [07:40] matyr_ has joined the channel [07:40] indutny: does node `tls` module supports npn? [07:40] ehedenst has joined the channel [07:40] hij1nx has joined the channel [07:42] catshirt has joined the channel [07:42] V1: hiddenbayes: I'm front-end engineer & wpo expert at Hotels.nl , a online hotel reservation agency [07:42] zkirill has joined the channel [07:43] V1: saschagehlich_: assistance as in secretary as in hot secretary? [07:43] V1: :D [07:43] saschagehlich_: V1: as in male secretary. [07:43] saschagehlich_: :( [07:43] V1: saschagehlich_: You suck at hiring [07:43] V1: :D [07:43] saschagehlich_: I know - he needed it [07:43] saschagehlich_: The next one will have tits [07:44] saschagehlich_: (Can't say whether my next secretary will be male though) [07:44] saschagehlich_: *female [07:44] hiddenbayes: oh nice [07:44] V1: indutny: I don't think so [07:45] tfe_: what's the most up-to-date redis client for node now? [07:45] indutny: V1: probably, it's on a rodmap? [07:45] V1: indutny: but feel free to code one up because next protocol negotiation is needed.. for spdy [07:45] indutny: yep [07:46] indutny: I'm working on SPDY server [07:46] V1: same :P [07:46] indutny: and that's why I'm asking :D [07:46] indutny: haha [07:46] [AD]Turbo: hi guys [07:46] indutny: V1: what results do you have? [07:46] indutny: V1: I've got working server, w/o request body for a while [07:46] onar has joined the channel [07:47] V1: indutny: I'm can receive requests, and understand them but thats about it [07:47] V1: indutny: But it sounds to me that you are further in the development process than I am [07:47] indutny: V1: take a look at mine version https://github.com/donnerjack13589/node-spdy [07:47] V1: So I guess i can cease my operations :p [07:47] iFire has joined the channel [07:48] indutny: yep [07:48] indutny: haha :D [07:48] indutny: V1: but it won't work for you :D [07:48] indutny: b/c I'm using custom builded zlib module [07:48] indutny: which I probably will release as zlibcontext module [07:48] V1: indutny: :p I also have my zlib bindings [07:48] indutny: V1: hahaha :D [07:48] suckerpunch has joined the channel [07:49] maru_cc has joined the channel [07:49] V1: or I wouldn't even be able to receive requests [07:49] indutny: V1: https://github.com/donnerjack13589/node-zlib/tree/zlibdict [07:50] V1: indutny: That looks sweet and a bit shorter than my solution :p [07:50] indutny: V1: it's based upon existing zlib module [07:50] indutny: (you see, it's just fork) [07:51] V1: indutny: I saw that, I was gonna base my work on the zlib module to but i saw it was missing zlib context so I coded my own [07:52] seivan has joined the channel [07:52] indutny: V1: I'm not managing streams for awhile [07:53] xla has joined the channel [07:53] soulofpeace has joined the channel [07:54] mike5w3c_ has joined the channel [07:55] kbni: why do people write modules that shit out text on every call :( [07:55] sdecastelberg has joined the channel [07:56] V1: shit out text as is log? [07:57] jetienne has joined the channel [07:59] f7u12: I've installed now JS with NPM (on node 0.5.0-pre) and it's giving me an non_object_property_call error [07:59] f7u12: at Object.wrapServer [07:59] f7u12: Anyone know anything about why this might be? [07:59] JianMeng has joined the channel [07:59] f7u12: Do I need to drop down to node 0.4.1 ? [07:59] JimBastard has joined the channel [08:00] ElDios has joined the channel [08:00] mike_miller has joined the channel [08:01] seivan has joined the channel [08:02] jeremyselier has joined the channel [08:02] tbassetto has joined the channel [08:05] JimBastard: SubStack: you awake? [08:05] robhawkes has joined the channel [08:05] ManuelKiessling has joined the channel [08:06] f7u12: Is there any way to downgrade from 0.5 to 0.4.1 [08:07] JimBastard: f7u12: you can just checkout the git branch and build again [08:07] f7u12: JimBastard: Are there any documented issues with 0.5 with regards to now.js ? [08:08] JimBastard: f7u12: github issues would reveal, i think ive been running 0.5.0pre on my machine for a while [08:08] JimBastard: im not sure though... [08:08] f7u12: JimBastard: okay great, thank you. One last question: Will I need to re-install NPM etc. if I rebuild node [08:08] jetienne: f7u12: stay in stable branch, unless you are ready to experience bugs [08:08] littke has joined the channel [08:09] JimBastard: f7u12: shouldnt have to [08:09] f7u12: JimBastard: To Clarify, following Step 3a at https://github.com/joyent/node/wiki/Installation [08:09] astoon has joined the channel [08:10] Emmanuel__ has joined the channel [08:10] ryan0x2 has joined the channel [08:11] kbni: anyone here using any of the twitter libs on npmjs.org? [08:11] __tosh has joined the channel [08:11] SubStack: JimBastard: yep [08:11] skohorn has joined the channel [08:11] V1: Is there a easy way to see, on which CPU your current node process is running? [08:11] __tosh has joined the channel [08:12] dcelix has joined the channel [08:13] f7u12: jetienne: is that the 0.4 branch ? [08:14] indutny: V1: hey, published spdy module :D [08:14] indutny: V1: https://github.com/donnerjack13589/node-spdy [08:14] indutny: V1: and zlibcontext module [08:14] V1: you got it working with npn indutny [08:14] indutny: nope [08:14] indutny: just tls [08:14] jetienne: f7u12: yes. which os do you run ? [08:15] f7u12: jetienne: OSX 10.6 [08:15] V1: indutny: So you still got to "force" spdy connection? [08:15] indutny: V1: yep [08:16] indutny: V1: but I'm looking in this [08:16] jetienne: f7u12: 0.4.5 is the current stable. http://blog.nodejs.org/2011/04/02/node-v0-4-5/ [08:16] V1: Yeh because it's rather pointless at this state indutny [08:16] Remoun has joined the channel [08:17] indutny: V1: yep, I know [08:17] f7u12: jetienne: thank you, is there a github URL somewhere I can use to clone from? [08:19] jetienne: f7u12: yep https://github.com/joyent/node [08:19] jetienne: f7u12: but you need to checkout the proper version [08:19] jetienne: or just get the tar :) or switch to ubuntu and get the .deb :) [08:19] mape: indutny: neat [08:20] indutny: mape: not so, it's not collection request data [08:20] k1ttty has joined the channel [08:20] indutny: mape: only headers [08:20] kuebk has joined the channel [08:21] mape: indutny: huh? [08:21] sdecastelberg has joined the channel [08:21] indutny: mape: it's only catching ControlFrame packets, and ignores incoming DataFrame packets for awhile [08:21] indutny: mape: but it can serve static pages now [08:22] indutny: mape: and answer any get request [08:22] f7u12: jetienne: <3 [08:22] mape: indutny: well, any progress towards something working is neat in my book [08:22] jetienne: yep we need spdy [08:23] jetienne: i need numbers, but i think it gonna me big for phone traffic [08:23] mikeal has joined the channel [08:27] jetienne has joined the channel [08:29] caolanm has joined the channel [08:30] matyr has joined the channel [08:32] pdelgallego has joined the channel [08:32] JimBastard: ryah: did you get that thing i sent you? :-D http://soundcloud.com/marak/marak-the-node-js-rap [08:33] abraxas: I hate these earthquakes.. grrr [08:39] seivan has joined the channel [08:41] jonpacker has joined the channel [08:41] christophsturm has joined the channel [08:42] V1: JimBastard: W T F... lol [08:42] indutny: ryah: around? [08:42] JimBastard: V1: https://github.com/marak/node-raps [08:43] jonpacker has joined the channel [08:43] V1: XD [08:43] V1: ACTION waits for Spotify to feature the node-rap  [08:46] robhawkes has joined the channel [08:46] JimBastard: I'm already in negotiations with some big studio producers to get the music video done. [08:46] V1: Other features possibly in v0.6: Considerreintroducingapromiseobjectforasyncreq/resoperations. [08:46] V1: Probably follow jQuery’s deferred API. NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO [08:46] coreb has joined the channel [08:46] V1: noooooo* [08:47] Lorentz: I loled at the rap [08:47] mysterion` has joined the channel [08:48] SubStack: deferred >_< [08:48] SubStack: JimBastard: make sure to write a rap dissing all this coroutine/promises/futures noise [08:49] micheil: JimBastard: nothing like a little subliminal advertising there for your own company.. :P [08:49] JimBastard: :-D [08:49] SubStack: callbacks, motherfucker! [08:49] JimBastard: i dont know any other open-source rap projects on github [08:51] robhawkes has joined the channel [08:53] JimBastard_ has joined the channel [08:55] V1: And before we know it, JimBastard_ is doing kickstarter project to fund his node.js rap album [08:55] teemow has joined the channel [08:55] JimBastard_: i dont think i need to do anymore kickstarters for a while [08:55] JimBastard_: ;-) [08:56] V1: :D [09:03] FireFly|n900 has joined the channel [09:03] wereHamster: V1: what's wrong with jquery deferred api? [09:04] V1: wereHamster: except the part where it uses promises.. nothing [09:04] herbySk has joined the channel [09:05] sdecastelberg has joined the channel [09:05] wereHamster: what's wrong with promises? [09:07] tk has joined the channel [09:08] dcelix has joined the channel [09:08] meso has joined the channel [09:08] bzinger has joined the channel [09:09] sreeix_ has joined the channel [09:10] V1: wereHamster: Unneeded abstractions [09:10] V1: but there have been various of discussions on that before, so I don't want to re-ignite those fires again.. [09:11] astoon_ has joined the channel [09:12] mysterion` has joined the channel [09:12] jdalton has joined the channel [09:14] objectiveous has joined the channel [09:16] xla has joined the channel [09:17] Emmanuel__ has joined the channel [09:17] zubairov_ has joined the channel [09:18] zubairov has joined the channel [09:19] ebot has joined the channel [09:19] ebot: hi there [09:20] asabil has joined the channel [09:22] jacobolus has joined the channel [09:22] Croms has joined the channel [09:23] matyr_ has joined the channel [09:24] webben has joined the channel [09:25] ilowhy has joined the channel [09:26] hellp has joined the channel [09:26] indutny: V1: Looks like openssl doesn't support NPN w/o google's patches: http://groups.google.com/a/chromium.org/group/chromium-reviews/browse_thread/thread/ca11f2eeb9714cce /cc ryah [09:28] ntelford_ has joined the channel [09:28] mihar has joined the channel [09:28] V1: indutny: Well it doesn't have to be in the openssl it self, but in the tls module [09:28] mihar has left the channel [09:28] MMZ has joined the channel [09:29] jdalton has left the channel [09:29] mihar has joined the channel [09:30] indutny: V1: not in tls, but in node_crypto.cc [09:30] indutny: V1: in that case [09:30] indutny: V1: collaborate? [09:30] V1: indutny: We might be able to go around it by patching node_crypot [09:30] V1: You beat me to it lol. [09:30] V1: Fat fingers === slow typing [09:30] indutny: V1: hahaha [09:31] indutny: sorry [09:31] V1: indutny: I don't have time to hack on it right now as I'm at my "regular" job ;( [09:31] bojicas has joined the channel [09:32] indutny: V1: understood, I'm too. ping me if you'll be still interested in that after your job: [gtalk] fedor.indutny@gmail.com [09:32] V1: indutny: But implementing the patch doesn't seem to be that hard, as google already did the hardwork by figuring out how to make it work. All we have to do is apply their patches [09:33] indutny: V1: time for us to figure out what needs to be ported :D lol [09:33] V1: indutny: :D yeh [09:33] sdixon has joined the channel [09:33] indutny: http://codereview.chromium.org/5528003/ [09:33] V1: I'm skimming through the patches atm, but it doesn't look to be to hard.. http://codereview.chromium.org/5528003/diff/30001/net/socket/ssl_client_socket_openssl.cc [09:33] V1: I like the diff view more ;) [09:34] indutny: V1: I'm not sure, but it looks like they has been added support only for OpenSSL client...\ [09:35] V1: indutny: You do have point there [09:35] V1: How do they solve it with the flip server? [09:35] V1: I mean they are probably using openSSL in there as well [09:36] ph^ has joined the channel [09:37] indutny: V1: yep, trying to figure out that too [09:42] mysterion` has joined the channel [09:44] jetienne has joined the channel [09:47] JimBastard has joined the channel [09:48] ph^_ has joined the channel [09:48] indutny: V1: william from chromium team says that NPN is in openssl's latest version [09:49] V1: indutny: But if we are not using it in the tls module, than that doesn't really help [09:49] indutny: yep [09:49] indutny: that's true [09:50] Shrink has joined the channel [09:53] astoon_ has joined the channel [09:55] tmedema has joined the channel [09:55] tmedema: Anyone has an answer to this Formidable issue? https://github.com/felixge/node-formidable/issues/55 [09:55] tmedema: I'm not sure whether it is a bug but I believe so. [09:55] flobblebobble has joined the channel [09:56] sdixon has left the channel [09:57] tfe__ has joined the channel [09:59] tfe_ has joined the channel [09:59] sreeix has joined the channel [10:01] indutny: V1: that's what I'd found: http://www.oschina.net/code/explore/chromium.r67069/third_party/openssl/patches/ [10:02] eb4890 has joined the channel [10:03] willwhite has joined the channel [10:06] rubydiamond_: Guys.. what would be the best example to demo node.js [10:07] rubydiamond_: other than chat [10:07] V1: indutny: I'll check it out [10:07] indutny: V1: no need, wait a minute [10:08] V1: Ok, Ill hold :p [10:08] Spion_ has joined the channel [10:08] jschoolcraft has joined the channel [10:09] tmedema: rubydiamond_: create a public editor where programmers can program a node.js app together and execute in real-time [10:09] V1: indutny: the npn patch is already included in the latest openssl build, see changelog http://www.openssl.org/news/changelog.html [10:09] indutny: V1: yep, that's what I'm talking about [10:10] indutny: but f.e. ubuntu package has only 0.9.7 version ATM [10:10] V1: time to compile from source :) [10:11] rubydiamond_: tmedema: which language [10:11] rubydiamond_: ppl will code in [10:11] tmedema: rubydiamond_: javascript of course, for node.js [10:11] V1: indutny: but there probably should be some way to add that functionality without having to upgrade openSSL [10:12] tmedema: rubydiamond_: it'd probably the most immense demo project ever created though ^^ [10:12] indutny: V1: Most part of NPN is extension to ClientHello and ServerHello [10:12] indutny: V1: Which are fundamental in SSL [10:12] indutny: V1: I think that can't be easily extended [10:12] indutny: V1: w/o upgrading openssl [10:13] V1: indutny: That kinda sucks.. But that would also mean.. that the SPDY flipserver doesn't work if you have openssl < 1.0 [10:13] tmedema: rubydiamond_: another thing that'd be cool, is a RIA where people can browse the web together [10:13] rubydiamond_: tmedema: I want to build it in a day [10:13] indutny: V1: nice point [10:13] indutny: V1: probably it will work only in force mode [10:13] indutny: V1: --use-spdy [10:13] pt_tr_ has joined the channel [10:14] luke` has joined the channel [10:14] pomodoro has joined the channel [10:14] stonebranch has joined the channel [10:14] heavysixer has joined the channel [10:14] tmedema: rubydiamond_: chat example :) [10:15] rubydiamond_: tmedema: other than chat :) [10:15] tmedema: rubydiamond_: it was a joke [10:15] rubydiamond_: :) [10:15] rubydiamond_: tmedema: tell me.. [10:15] rubydiamond_: what should I implement [10:15] deebo: AAC encoder [10:15] deebo: so i can use it [10:16] V1: indutny: idk, I don't have access to my flipserver @ home ;( [10:16] tmedema: rubydiamond_: let people browse the web together, everyone gets 30 seconds of browsing with a big counter to show off their most liked websites to those watching [10:16] indutny: V1: was you able to open SPDY pages w/o --use-spdy mode? [10:16] tmedema: that'd be cool. [10:16] deebo: has anyone done a media streaming app that uses some native encoder to transcode/encode on the fly? [10:16] deebo: like flac -> mp3/aac [10:16] rubydiamond_: tmedema: thats immense [10:17] tmedema: rubydiamond_: not that insanely difficult with node.js I reckon [10:17] indutny: deebo: search at mailing list please, someone was streaming pink floyd few months ago [10:17] deebo: hmm ill see [10:18] V1: indutny: I have --use-spdy enabled by default in my env. [10:18] tmedema: rubydiamond_: make a real time twitter thingy or something [10:18] V1: :9 So I didn't really test it [10:18] rubydiamond_: tmedema: hmm [10:21] heavysixer_ has joined the channel [10:22] SamuraiJack has joined the channel [10:22] path[l] has joined the channel [10:26] Poetro has joined the channel [10:28] indutny: V1: k, I'd posted message on node-dev, and figure out that w/ latest builds OpenSSL support NPN from scratch [10:29] indutny: V1: And in that case node_crypto will be extended to include function that will return current NPN protocol or something [10:29] V1: indutny: Yeh I just saw your messages to the spdy-dev list as well [10:32] indutny: V1: anyway, latest openssl's version has NPN #defines so work on implementing can be started [10:33] jimt has joined the channel [10:36] davidcoa1lier has joined the channel [10:41] jimt_ has joined the channel [10:42] dgathright has joined the channel [10:45] davidcoa1lier has joined the channel [10:49] xandy has joined the channel [10:49] xandy has joined the channel [10:50] bzinger_ has joined the channel [10:50] johnnywengluu: damn [10:50] johnnywengluu: when npm doesn't work like it should my development is halted [10:51] Shrink has joined the channel [10:56] ryan0x2 has joined the channel [10:56] kriszyp has joined the channel [10:59] pdelgallego has joined the channel [10:59] matyr has joined the channel [11:02] minibikini has joined the channel [11:02] matyr has joined the channel [11:02] [AD]Turbo has joined the channel [11:03] xandrews has joined the channel [11:05] littke has joined the channel [11:06] stalled has joined the channel [11:07] jeremyselier: hey guys, maybe it's a noob question but, can I access lib files like http.js on my machine (I installed Node via brew) [11:07] rubydiamond_: jeremyselier: find it in /usr/local/ [11:07] rubydiamond_: btw how to print a string in node.js [11:08] |sWORDs| has joined the channel [11:10] jeremyselier: I don't have it in /usr/local/lib/node/ [11:10] jeremyselier: maybe the oniy way is to edit those files and rebuild node ? [11:10] jeremyselier: s/oniy/only/ [11:12] boaz has joined the channel [11:13] incon has joined the channel [11:15] ^rage^ has joined the channel [11:17] V1: jeremyselier: type `locate node` in your terminal [11:17] christophsturm: jeremyselier: the javascript files are all put into the node binary. if you want to change them you need to build node afterrwards [11:18] christophsturm: and if you want to look at them just clone the git repo [11:18] V1: or locate node | grep 'http.js' [11:19] christophsturm: V1: does that work for you? [11:19] johnnywengluu: anyone is using colors to give the console colors? [11:19] johnnywengluu: console.log('Loading engine'.green); // how could green which is a property give a colored string [11:19] V1: christophsturm: Yup, for me it does it shows all locations where I have a node folder with http.js in it :p [11:20] JimBastard: johnnywengluu: i use it on occasion [11:20] JimBastard: :-) [11:20] christophsturm: V1: but a node installation does not contain a file named http.js. those files are put into the binary [11:20] JimBastard: whats the issue with colors? [11:20] johnnywengluu: nothing [11:21] johnnywengluu: just wondering how it works .. i should look at the source =) [11:21] JimBastard: its pretty pimp [11:21] johnnywengluu: how is nodejitsu going? [11:21] matyr_ has joined the channel [11:21] JimBastard: good...we are gonna be pushing some very big things very soon ahaha [11:21] JimBastard: we just got a new version deployed of our core [11:21] JimBastard: its working pretty sick [11:21] V1: christophsturm: Yup, but brew can leave a cache or some other old node repo you have cloned can have http.js [11:21] JimBastard: we got the cli tool out too [11:21] JimBastard: npm install jitsu [11:22] V1: so you are going all nodester on jitsu [11:23] johnnywengluu: JimBastard: what is the status of nodejitsu right now [11:23] JimBastard: we are still private beta [11:24] JimBastard: ive got a bit of a problem when it comes to quality [11:24] JimBastard: it has to be very high [11:24] JimBastard: we are there though [11:24] JimBastard: should have lots of good news going public soon [11:24] JimBastard: we've got enough resources to keep going for a while now too [11:26] johnnywengluu: good to hear [11:26] nyholt_ has joined the channel [11:26] johnnywengluu: how do you look at the competitors like duostack and nodejscloud [11:26] egor has joined the channel [11:27] johnnywengluu: im just curious .. if its sensitive you dont have to reply here =) [11:29] Gruni has joined the channel [11:30] liquidproof has joined the channel [11:30] k1ttty_ has joined the channel [11:30] ryan0x2 has joined the channel [11:30] eirikurn has joined the channel [11:32] rubydiamond_: how to send message every two second in javascript [11:32] rubydiamond_: sleep is not there in javascript [11:32] mape: rubydiamond_: setInterval [11:33] rubydiamond_: mape: hmm [11:33] rubydiamond_: let me try it [11:34] rubydiamond_: mape: http://pastie.org/private/hrem9ebwd3hh0nzyxmya4g [11:34] rubydiamond_: seems not helping [11:34] mape: sendMessage without () [11:35] ^rage^ has joined the channel [11:35] mape: only pass the reference, not the return value [11:35] shaunau has joined the channel [11:35] rubydiamond_: mape: hmm [11:35] rubydiamond_: okay [11:37] JimBastard: johnnywengluu: most of the others are using pieces of our stack, and poorly. we've got a shit ton of things in the works that no one else is even thinking of. node is still young, it might take a little bit of time, but we are here for the long run and we will dominate anyone who tries to get in the way [11:37] johnnywengluu: i like your mindset =) [11:38] JimBastard: i worry about things like dotcloud, but i feel there is a big enough pie where we can share / nodejitsu can open up new markets [11:38] gtramont1na has joined the channel [11:38] johnnywengluu: and yeah it seems that you really know what you are doing .. great libs that you are sharing [11:38] JimBastard: thanks, its mostly the team, i just like to grand stand :-) [11:39] shaunau: JimBastard: everyone likes their pie a little different. :) [11:40] johnnywengluu: yeah .. dotcloud seems to be really serious about world domination =) [11:45] BogdanMoldovan has joined the channel [11:46] johnnywengluu: but its good to use something specific for node.js since the resources will be more focused [11:48] charlenopires has joined the channel [11:49] jimt has joined the channel [11:50] deedubs has joined the channel [11:50] hackband has joined the channel [11:51] Poetro has joined the channel [11:51] hackband: noob q: can you recommend an online javascript language reference? [11:51] nyholt_ has joined the channel [11:51] hackband: like what you can find for java [11:51] hackband: i.e. API documentation [11:51] RusAlex has joined the channel [11:52] gtramont1na: Nodester is also focused in node only :-) [11:52] gtramont1na: hackband: W3C [11:52] gtramont1na: .org [11:52] bogdan has joined the channel [11:53] shaunau: johnnywengluu: good to support the community people too. [11:53] johnnywengluu: hackband: mozilla .. google for javascript reference and you'll find it [11:53] johnnywengluu: yeah [11:53] stagas: hackband: https://developer.mozilla.org/en/JavaScript [11:53] bogdan has left the channel [11:53] hackband: thanks - somehow its always w3schools popping up on first results.. their material is somewhat sparse [11:54] eb4890 has joined the channel [11:54] unomi has joined the channel [11:54] jimt_ has joined the channel [11:54] johnnywengluu: hackband: dont use w3schools .. maybe just for quick tutorials .. but never as references .. use mozilla for css, html and js [11:54] johnnywengluu: w3c for http [11:54] hackband: I know :) [11:55] JimBastard: im gonna go troll the ruby rooms for a moment [11:55] evilhackerdude: whenever you look for js/dom documentation, append MDC to your query [11:55] evilhackerdude: JimBastard: #ruby? [11:55] hackband: I was wondering whether there was a dedicated v8 reference online somewhere [11:55] pc1oad1etter has joined the channel [11:55] lukegalea has joined the channel [11:55] johnnywengluu: v8 reference for their API? [11:56] johnnywengluu: why you want that [11:56] hackband: I don't think methods like "require" are in the javascript api, since it's usually client side only [11:56] hackband: ah, but thats probably node.js specific [11:56] herbySk has joined the channel [11:57] hackband: ... and it is - total node noob here [11:58] stagas: hackband: see also http://nodejs.org/docs/latest/api/ [11:58] hackband: yea I'm perusing it presently :p [11:59] johnnywengluu: hackband: yeah .. you dont want to know about v8 =) [11:59] sorens3n has joined the channel [11:59] hackband: actually the option of interfacing with native code is really interesting [11:59] johnnywengluu: node is the interface you want to deal with [11:59] johnnywengluu: yeah [12:00] johnnywengluu: or at least for you =) [12:00] hackband: since it opens up pretty much all legacy drivers [12:00] johnnywengluu: i think node is so sexy [12:00] johnnywengluu: like looking at a beauty [12:00] hackband: well it's not number one on the todo list but it's great to have that possibility [12:00] JimBastard: i got #ror, #ruby, and #ruby-lang all on the line lol [12:00] hackband: I like it so far, especially that you have the same language on both sides [12:00] RusAlex has joined the channel [12:01] johnnywengluu: JimBastard: all on the line? [12:01] JimBastard: johnnywengluu: just trolling them lightly about ruby rap songs [12:01] JimBastard: then posting my link [12:01] johnnywengluu: =) [12:01] johnnywengluu: nodejitsu link? [12:04] piscisaureus has joined the channel [12:05] JimBastard: no, johnnywengluu http://soundcloud.com/marak/marak-the-node-js-rap [12:05] JimBastard: did i not send you that? lol [12:06] JimBastard: had that guy sitting on my HD for a while, i figured with our upcoming launch it would be fun [12:06] johnnywengluu: haha [12:06] johnnywengluu: lol [12:07] ohtogo has joined the channel [12:09] max_dev has joined the channel [12:09] johnnywengluu: you could easily get heavy investment capital with this rap [12:11] kmiyashiro has joined the channel [12:12] k1ttty has joined the channel [12:12] carnivore has joined the channel [12:13] hvgotcodes has joined the channel [12:13] bojicas has joined the channel [12:13] hellp has joined the channel [12:14] matyr has joined the channel [12:17] postwait has joined the channel [12:18] no-gooder has joined the channel [12:18] figital has joined the channel [12:19] sirkitree has joined the channel [12:20] sirkitree has joined the channel [12:21] pietern has joined the channel [12:22] no-gooder has left the channel [12:23] jscheel has joined the channel [12:23] jscheel has joined the channel [12:23] Ori_P has joined the channel [12:24] mikey_p: that rap totally made my day/night/morning [12:25] JimBastard: ahaha [12:25] JimBastard: :-D [12:25] JimBastard: the good news will only get better everyday i promise [12:25] jeremyselier has joined the channel [12:26] tiemonster has joined the channel [12:27] gtramont1na has joined the channel [12:27] V1: JimBastard: I'll buy your album (h) [12:27] jeremyselier: I can see lot's of assert call in http.js for example [12:27] JimBastard: :p [12:28] jeremyselier: can someone explain me how is it supposed to behave [12:28] cloudhead: Any reason why the fd of a WriteStream would be null, even though it's working fine? [12:28] jeremyselier: when there is assert(0) should the code after that never be executed or not? [12:28] cloudhead: jeremyselier: correct [12:29] mikey_p: i've been banging my head against drupal to a ridiculous level today, and everytime I hit another dead end I keep wishing this project were using node [12:29] pietern has joined the channel [12:29] jeremyselier: like here https://github.com/joyent/node/blob/master/lib/http.js#L1198 [12:29] jeremyselier: there is an assert(0) but the code line 1201 is executed [12:30] graysky has joined the channel [12:32] bradleymeck has joined the channel [12:34] shaunau: jeremyselier: maybe you need to "enable" assertions? [12:34] Emmanuel__ has joined the channel [12:34] matyr has joined the channel [12:34] shaunau: node -help | grep assert [12:35] bert`C has joined the channel [12:36] Croms has joined the channel [12:38] AAA_awright_ has joined the channel [12:38] beawesomeinstead has joined the channel [12:38] beawesomeinstead has joined the channel [12:39] matschaffer has joined the channel [12:41] drostie has joined the channel [12:42] jeremyselier: shaunau: well, this is happening in node code, I'm trying to figure whats going on regarding this bug: https://groups.google.com/d/topic/nodejs/KlXBgEWEF18/discussion [12:43] bradleymeck: ugg is this the unclean request thing? [12:43] rafacv has joined the channel [12:44] saschagehlich has joined the channel [12:45] ryanfitz has joined the channel [12:47] rednul has joined the channel [12:47] unomi has joined the channel [12:47] shaunau: jeremyselier: odd [12:48] cloudhead: anyone know if there a way to export an env var from node? [12:48] gtramont1na has joined the channel [12:49] shaunau: jeremyselier: only thing i can think to do is use node debug app.js and a debugger line and step through to see if anything looks wrong.. :/ [12:49] JimBastard: cloudhead: you wanna set an ENV var from inside node? [12:49] christophsturm has joined the channel [12:49] jeremyselier: shaunau: I'll try, thanks [12:50] cloudhead: JimBastard: yeh, but I want to export it [12:50] cloudhead: like when you do `export FOO=1` in shell [12:50] stonebranch has joined the channel [12:50] JimBastard: cloudhead: you dont want to just do a child proc? [12:50] JimBastard: im not sure if there is anything native right now that will do that [12:50] gtramont1na_ has joined the channel [12:50] cloudhead: hmm [12:50] cloudhead: not even sure how it's done in C [12:50] JimBastard: isaacs would know, check npm code [12:51] JimBastard: npm does some ENV config stuff i thought [12:51] cloudhead: oh ye? [12:51] JimBastard: cloudhead: also, i gave you a shoutout: http://soundcloud.com/marak/marak-the-node-js-rap [12:51] shaunau: jeremyselier: i'd also play with the flags: node -help | grep assert [12:51] cloudhead: haha cool [12:53] davidsklar has joined the channel [12:53] lukus has joined the channel [12:53] fumanchu182 has joined the channel [12:54] [ok] has joined the channel [12:54] gtramont1na_ has joined the channel [12:55] jmhnilbog has joined the channel [12:55] Croms: lol [12:56] jmhnilbog: Hey everyone...having a lot of trouble diagnosing my use of the daemon package -- are there any stupendous examples of daemonized node scripts? [12:56] FireFly|n900 has joined the channel [12:58] rubydiamond_: hi I am using socket.io .. server is able to send messages to client but .. client is not able to send messages to server [12:58] rubydiamond_: here are snippets [12:58] rubydiamond_: https://gist.github.com/a8cf57109b3a7c7f843a [12:58] rubydiamond_: https://gist.github.com/5dd2e2e84579be9d1bcb [12:58] Emmanuel__ has joined the channel [12:58] tomask has joined the channel [12:58] tomask has joined the channel [12:59] javaanse_jongens has joined the channel [12:59] rubydiamond_: anybody here [12:59] FireFly has joined the channel [12:59] bcelenza has joined the channel [12:59] V1: rubydiamond_: you have a javasscript error [12:59] Croms has joined the channel [12:59] sledge has joined the channel [12:59] V1: you forgot to close your jQuery document ready function [12:59] rubydiamond_: V1: what ? [12:59] lukegalea: wow.. anyone taken a serious look at EmScripten ? [12:59] V1: or not? [12:59] V1: rubydiamond_: nvm ;$ [12:59] lukegalea: LLVM to JS compiler? [12:59] rubydiamond_: V1: I am able to recive messages from server fine [12:59] V1: code view was messed up [12:59] rubydiamond_: but not able to send back [13:00] rubydiamond_: not error in Firebug console [13:00] graysky has left the channel [13:00] V1: can you snip you server code? [13:00] rubydiamond_: V1: https://gist.github.com/5dd2e2e84579be9d1bcb [13:00] bradleymeck: lukegalea ive seen it, but i tend to enjoy coding in js more [13:01] lukegalea: bradleymeck: hehe. Ya. I was thinking more along the lines of taking some serious C libraries like GNU Scientific Library and compiling it for inclusion in Node projects. [13:02] bradleymeck: you can but perf will be a huge issue still, wont fix that :/ [13:02] lukegalea: I'd rather do that than have native C bindings.. I think. Worth trying out. [13:02] aphelion has joined the channel [13:02] lukegalea: bradleymeck: Docs say it's 10x slower than native c code.. which I think it's still pretty decent. [13:02] ctime has joined the channel [13:02] ctime has joined the channel [13:02] dnolen has joined the channel [13:02] V1: rubydiamond_: socket.on("connection", function(client){ client.on("message", function(data){ console.log(data)})}); <--- you forgot to listen to the connection event [13:03] kriszyp has joined the channel [13:03] lukegalea: bradleymeck: But I guess the question is: am I binding to C for speed? Or because I don't want to rewrite the library. if its' the latter, maybe emscripten is a good fit. [13:03] bradleymeck: lukegalea math in js is much slower than other things (except string concats). it would be impressive to get 1/10th the speed of c doing any amount of math [13:03] jimt has joined the channel [13:04] BillyBreen has joined the channel [13:04] varioust has joined the channel [13:04] rfay has joined the channel [13:04] lukegalea: bradleymeck: ya.. good point. I bet their metrics didn't have my heavy math usecase in mind. [13:05] bradleymeck: /shakes fist at the double based gods [13:06] caolanm has joined the channel [13:06] sledge: bradleymeck: "Machine Delta" and "Accuracy Mishaps"? :> [13:07] johnnywengluu: js is the shit [13:07] johnnywengluu: js is the new c++ [13:07] rubydiamond_: V1: hmm let me try' [13:07] sledge: johnnywengluu: it better not be. [13:08] johnnywengluu: :) [13:08] johnnywengluu: its the new what then? [13:08] sledge: definitely not c++ [13:08] mikegerwitz: johnnywengluu: It's pretty old ;) So it's not really a new anything [13:08] johnnywengluu: c is old [13:08] matyr_ has joined the channel [13:09] johnnywengluu: with node.js/couchdb/phonegap/sproutcore JS is like JS++ [13:09] gtramont1na has joined the channel [13:09] postwait has joined the channel [13:09] sledge: johnnywengluu: that's not a good thing. [13:09] mikegerwitz: johnnywengluu: JS isn't the new C either [13:09] johnnywengluu: stop it .. dont ruin my mood [13:10] johnnywengluu: js is the new c++! [13:10] johnnywengluu: thats it [13:10] johnnywengluu: the new hype [13:10] bradleymeck: js is like the new erlang w/ a lisp like object system w/ a c like syntax w/ a (insert single threaded programming language) w/ a (...)... [13:10] mheadd has joined the channel [13:11] dyer has joined the channel [13:12] davidc_ has joined the channel [13:13] killfill has joined the channel [13:13] johnnywengluu: vowsjs is amazing [13:14] [AD]Turbo: are there "serious"/advanced games written in node? [13:14] afsd has joined the channel [13:15] dask: [AD]Turbo: well.. parts of the game I'm working on use node [13:15] k1ttty has joined the channel [13:15] willwhite has joined the channel [13:16] [AD]Turbo: daed, any links? :) [13:16] minibikini has joined the channel [13:16] skohorn has joined the channel [13:16] [AD]Turbo: *dask* [13:16] bradleymeck: [AD]Turbo flower (ps3) has some node in the backend [13:17] gmci has joined the channel [13:18] c4milo has joined the channel [13:18] omni5cience has joined the channel [13:18] piscisaureus_ has joined the channel [13:19] ^rage^ has joined the channel [13:19] Aria has joined the channel [13:20] christophsturm: bradleymeck: really? do you have a link for that? I'd guess that when flower was released there was no node.js yet [13:20] bradleymeck: sec ill try to dig up the link [13:21] okuryu has joined the channel [13:22] broofa has joined the channel [13:23] bradleymeck: http://joyeur.com/2010/12/14/salesforce-and-heroku-the-dork-side-of-the-force/ , searching through the logs to try and find that damn thing (give me a search button debuggable!) [13:23] jmhnilbog: Any examples of node projects running daemonized via init.d and not upstart? [13:24] Aria has joined the channel [13:24] sreeix_ has joined the channel [13:25] bradleymeck: christophsturm, from the logs (ctrl-f flower) http://nodejs.debuggable.com/2011-01-20.txt [13:25] kriszyp has joined the channel [13:25] bradleymeck: joyeur also mentions flower w/ node but nothing concrete [13:25] bradleymeck: well i guess i linked that already (moves on) [13:26] xandy: is there an easy way to make a blocking function call unblocking? [13:26] thomblake has joined the channel [13:26] xandy: i want a blocking function in an endless loop [13:26] bradleymeck: can you give us a paste of what you have and what you want? blocking calls always block [13:27] liar has joined the channel [13:27] xandy: i use gearman-node [13:28] xandy: it's a bit outdated but it works. i have worker.work(); and work ends when it got a job from the server and finished it [13:28] xandy: but i'm not interested in the result of this operation. i want my node script always call the work method [13:28] xandy: like in a while(true) [13:29] eee_c has joined the channel [13:29] xandy: but i want other code to be run after that loop [13:29] xandy: async [13:29] Guest76987 has left the channel [13:30] prettyrobots has joined the channel [13:30] christophsturm: bradleymeck: thx [13:31] dambalah has left the channel [13:31] beawesomeinstead has joined the channel [13:31] beawesomeinstead has joined the channel [13:31] bradleymeck: xandy setInterval? [13:32] Emmanuel_ has joined the channel [13:32] xandy: ah that could work thanks [13:32] ryan0x2 has joined the channel [13:34] Phunky has joined the channel [13:34] deoxxa has joined the channel [13:35] deoxxa: i'm sure it's already been mentioned about a billion times, but: https://github.com/Marak/node-raps - i submitted a pull request :D [13:38] fermion has joined the channel [13:40] ph^ has joined the channel [13:41] shiawuen has joined the channel [13:42] Phunky: deoxxa shame the rules don't rhyme :) [13:43] ryan0x2 has joined the channel [13:43] pt_tr has joined the channel [13:46] aheckmann has joined the channel [13:46] timmywil has joined the channel [13:46] ragus has joined the channel [13:47] gtramont1na has joined the channel [13:49] hvgotcodes has joined the channel [13:50] colinclark has joined the channel [13:54] mike5w3c_ has joined the channel [13:54] jimt has joined the channel [13:58] trotter has joined the channel [13:58] mattmcmanus has joined the channel [13:59] bingomanateeIpho has joined the channel [14:00] jimt has joined the channel [14:01] ollieparsley has joined the channel [14:01] catshirt has joined the channel [14:01] astropirate has joined the channel [14:03] lessthanzero has joined the channel [14:05] malkomalko has joined the channel [14:05] dnolen has joined the channel [14:06] malkomal_ has joined the channel [14:06] Swimming_bird has joined the channel [14:06] jasong_at_apache has joined the channel [14:07] johnnywengluu: hmm [14:07] johnnywengluu: could i use assert module in my production code? [14:07] javaanse_jongens has joined the channel [14:07] johnnywengluu: to test the arguments i receive in a function? [14:08] johnnywengluu: ACTION because i always do: if (typeof arg1 !== "string") throw new Error("not string") [14:08] mrcaron has joined the channel [14:09] mrcaron: "The Java Age"? [14:09] johnnywengluu: mrcaron: =) [14:09] johnnywengluu: mrcaron: you dont test? [14:09] malkomalko: is there anyway to force reload a file? it looks like the required file is getting cached and I can't require it again without restarting my node process [14:10] mrcaron: @johnny What's Testing got to do with Java? [14:10] Know1edge has joined the channel [14:10] johnnywengluu: i mean validating arguments passed to a function [14:10] bingomanateeIpho has joined the channel [14:10] indiefan2a has joined the channel [14:11] BillyBreen has joined the channel [14:11] NuckingFuts has joined the channel [14:11] mrcaron: @Johnny oh... :) [14:12] bingomanatee has joined the channel [14:12] javaanse_jongens has joined the channel [14:13] johnnywengluu: dont know if one should do that [14:13] johnnywengluu: seems that it isn't what js designed for [14:13] mrcaron: no, too heavyweight [14:14] dnolen has joined the channel [14:14] johnnywengluu: :) [14:14] johnnywengluu: too java [14:15] tbassetto has joined the channel [14:15] mrcaron: java... ought to be called jaba (as in jaba the hut... way too heavy) [14:15] JimBastard has joined the channel [14:16] jetienne has joined the channel [14:17] gisborne has joined the channel [14:18] mikegerwitz: Nothing wrong with testing that arguments are of a certain type. It could very well indicate a bug in the code. Though, I think dynamic typing is evil ;) Converting to a string (''+arg) should be done at the very least, but doesn't help to catch bugs. [14:18] warz has joined the channel [14:18] warz has joined the channel [14:19] jimt has joined the channel [14:20] tbranyen: i often wish the + operator wasnt' chosen for concatentation [14:20] tbranyen: was asked recently if - would remove parts of a string :-/ [14:20] mikegerwitz: tbranyen: Agreed. lol [14:20] gisborne has left the channel [14:21] davidwalsh has joined the channel [14:24] dnolen has joined the channel [14:25] jano has joined the channel [14:26] gmci has joined the channel [14:27] nibblebot has joined the channel [14:29] dylang has joined the channel [14:30] d0k has joined the channel [14:30] losing has joined the channel [14:31] ryanfitz has joined the channel [14:31] Know1edge has joined the channel [14:32] jimt has joined the channel [14:32] studioonenetwork has joined the channel [14:33] ckknight: tbranyen: I'm fine with either + being concatenation _or_ explicit type conversion before that works, but being able to do 5 + "6" is just painful to me [14:33] akahn has joined the channel [14:34] jlecker has joined the channel [14:34] tbranyen: ckknight: 5+ +"6" heh [14:34] tbranyen: darn confusing operators! [14:34] eresair has joined the channel [14:34] softdrink has joined the channel [14:35] akahn has left the channel [14:35] ckknight: *shudder* [14:35] kmwallio has joined the channel [14:35] mikegerwitz: ckknight: Yeah that's my problem with the operator. Not so much that it's a + char [14:35] ckknight: at least Lua (which is pretty damn similar to Javascript) has a different operator for string concat, so that "5" + "6" == 11, 5 .. 6 == "56" [14:35] Epeli: What is the OpenID lib for Expressjs? [14:38] eirikurn_ has joined the channel [14:38] piscisaureus_ has joined the channel [14:38] piscisaureus_: ACTION waves [14:39] ohtogo has joined the channel [14:39] warreng has joined the channel [14:39] asabil has joined the channel [14:40] Viriix has left the channel [14:40] pita has joined the channel [14:40] pita: How can I detect Memory Leaks in a node.js instance that is running without interrupting it [14:41] pita: or how can I detect them in general? [14:41] indexzero has joined the channel [14:41] mscdex: valgrind? [14:42] piscisaureus_: mcaron: my node on github is full of shit. You should not build on top of it. [14:42] piscisaureus_: *mrcaron [14:42] Vertice has joined the channel [14:43] eventi has joined the channel [14:43] mrcaron: hey Piscisaureus :) [14:43] sdecastelberg has joined the channel [14:43] beawesomeinstead has joined the channel [14:43] piscisaureus_: hey [14:43] gisborne has joined the channel [14:43] piscisaureus_: erm, no? [14:44] mrcaron: pro'ly forgot the trailing '_' [14:44] piscisaureus: no I don't think so... [14:44] mrcaron: hrm... ok. np [14:44] mrcaron: So have you a little time to spin me up as to win32 node world? [14:44] Venom_X has joined the channel [14:45] mrcaron: (I'm curious why cmake and not either MsBuild or Nmake for native?) [14:45] tmpvar has joined the channel [14:45] piscisaureus: mrcaron: we are not using cmake [14:46] piscisaureus: mrcaron: the canonical build system (and the only one that's used for windows afaict) is using make [14:46] piscisaureus: and waf [14:46] EyePulp has joined the channel [14:46] mrcaron: waf? [14:46] piscisaureus: everyone hates waf. It's here http://code.google.com/p/waf/ [14:47] mrcaron: In your node win32 repo there's some cmake stuff... [14:47] piscisaureus: yes the cmake stuff is maintained by palm afaict [14:47] mrcaron: yuk... [14:47] tbranyen: piscisaureus: its just hard to find good information [14:47] mrcaron: Any qualms about starting the port with VS2010? [14:47] tbranyen: seems like there are several different versions of waf [14:48] tbranyen: and stuff from teh waf book doesn't apply [14:48] piscisaureus: mrcaron: well [14:48] mrcaron: Then we can use MsBuild for C/C++ projects [14:48] mrcaron: It's the new MS way to do things. [14:48] piscisaureus: mrcaron: We are not that much in love with MS :-) [14:48] tbranyen: i can't afford windows, i'm poor [14:48] piscisaureus: I think I would like to have a VS solution first [14:48] piscisaureus: then think about the build sstem [14:49] piscisaureus: mrcaron: But I don't think you'll get that far with transitioning to VS as long as we are using libev and libeio on windows [14:49] mrcaron: Yeah, that makes perfect sense. You need the Solution file before MSBuild can do anything. [14:49] mrcaron: Ok, libev and libeio... can you tell me about those? [14:49] piscisaureus: mrcaron: we are more on making node on windows perform well, that's why we are creating liboio [14:50] mrcaron: I can understand not liking MS much, but for a windows native port, we should do things the MS way. :) [14:51] piscisaureus: ok. libev is an event loop. It abstracts select, poll, kqueue, epoll etc on linuxes [14:51] mrcaron: got it... found the google :) [14:51] piscisaureus: libeio is basically a thread pool so you can run blocking io in a thread. Most unixes do not support asynchronous file io so we use libeio for that [14:52] mrcaron: ok, so is liboio an attempt to abstract libeio? [14:52] piscisaureus: both libev and libeio [14:52] piscisaureus: the thing is [14:52] mrcaron: k [14:52] piscisaureus: on linux you get 'readyness notifitations', e.g. the kernel tells you you can do a non-blocking write to a socket [14:53] piscisaureus: windows doesn't work that way. You tell it to do something and it will ping you when it's doen [14:53] sub_pop has joined the channel [14:53] piscisaureus: (windows supports the first model too using select() but it scales very poorly) [14:54] tbranyen: hey man windows is enterprise ready [14:54] piscisaureus: as it turns out you can map the linux model to the windows model but not the other way araound [14:54] tbranyen: it scales all the way [14:54] markc has joined the channel [14:55] mattrobenolt has joined the channel [14:55] piscisaureus: mrcaron: so we are building liboio that on windows uses IO completion ports and on linux uses libeio and libev and maps those to a completion-notification api [14:56] mrcaron: ok... so are you suggesting that I first help out with liboio? Or at least get familiar there? [14:56] piscisaureus: mrcaron: the node-windows work is kinda blocked on liboio now. So I think that's really your only option [14:56] |sWORDs|: Is inbound UDP (dgram) fixed on windows already? [14:56] warz has left the channel [14:57] piscisaureus: |sWORDs| -> bug report? [14:57] |sWORDs|: Which was the reason I moved to linux for node. [14:57] dabtop has joined the channel [14:57] mrcaron: |sWORDs|: that's not really fixing the problem though ;) [14:57] |sWORDs|: Talked to ryan about it, he said he was not suprised and would take a look. [14:58] |sWORDs|: mrcaron: No, but it would be a good first step ;) [14:58] mrcaron: piscisaureus: ok, I'll start by cloning liboio and familiarizing myself there. Is there a todo list? Any sort of tracking with that other than GH? [14:59] piscisaureus: mrcaron: not really, just me and ryah have been working on it, we were discussing it on IRC mostly [14:59] ph^ has joined the channel [14:59] ManuelKiessling has joined the channel [15:00] mrcaron: ok... how often r u on irc? I work a day job and I only get an hour or two here and there... I'm just motivated to help because I'm not a big fan of cygwin ;) [15:00] piscisaureus: mrcaron: the next thing I thing that should be done is implement timers and an equivalent for ev_idle and ev_async in liboio [15:00] |sWORDs|: Anyone here ever moved from sql to nosql? I actually put my javascript object in a bunch of sql tables and rebuild the object on startup (with a lot of nested call). Would nosql (mongo) be a better pick? [15:01] piscisaureus: mrcaron: ok. I am on IRC a lot. [15:01] wink_: |sWORDs|: if thats the only way you can structure your data, yes [15:01] mrcaron: ok, sounds good. I'll hop on the chan as often as I can to coordinate and ask q's [15:02] piscisaureus: mrcaron: familiarize yourself with the api first. It's not too big so far, there is going to be a lot more [15:02] galaxywatcher has joined the channel [15:02] mrcaron: The liboio api, I assume? [15:02] piscisaureus: mrcaron: If you really start hacking please coordinate [15:02] piscisaureus: yeah [15:02] mrcaron: ev_idle and ev_async I assume are part of libev [15:03] |sWORDs|: wink_: There will be admin webpage to fill those "objects", and it will be used by the webservice, so it's not static. [15:03] bradleymeck: sWORDs if you want a document store instead of tabular relational data, using a traditional nosql solution instead of nosql in sql (http://goo.gl/VCv0 http://goo.gl/FLS7A) would probably be a good idea [15:03] indutny has joined the channel [15:03] ManuelKiessling has joined the channel [15:03] piscisaureus: mrcaron: http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#code_ev_idle_code_when_you_ve_got_no [15:03] mrcaron: So liboio... how's that built in windows? [15:03] piscisaureus: using a solution [15:03] piscisaureus: so that should be easy :-) [15:04] piscisaureus: I'm using MSVS 2010 [15:04] mrcaron: Nice. 2010 or 2008? [15:04] mrcaron: ok. [15:04] mrcaron: Me too. Should be pretty straight forward then. [15:04] piscisaureus: mrcaron: what we at least need is api tests [15:04] piscisaureus: mrcaron: because we need to validate that both implementations behave correctly / the same [15:04] |sWORDs|: bradleymeck: What would be the upside of using nosql in sql versus mongodb? [15:05] mrcaron: Ah, that should be a great place to start then... it'd help me get familiar [15:05] bradleymeck: sWORDs, mostly just migration over time [15:05] tmpvar has joined the channel [15:05] Kirklander has left the channel [15:05] mrcaron: I can at least use the MS test stuff to make some unit tests, not sure how I'd do that for the linux side. [15:05] bradleymeck: or if you have a situation where you simply dont have a way to access nosql easily [15:05] piscisaureus: yeah. You're lucky to be early. Files, timers, hooks , pipes are next up [15:06] mrcaron: piscisaureus: are you working full time on this? [15:06] piscisaureus: ~ .5 fte [15:07] mrcaron: ah, what's your other half? [15:07] |sWORDs|: bradleymeck: The solution is just to easy to come up with myselve. They simply put the complete json object in a single field. That's pure genious. [15:08] bradleymeck: |sWORDs| the indexes is where it gets funky, but thats just preprocessing / postprocessing by a worker job [15:08] ManuelKiessling_ has joined the channel [15:08] |sWORDs|: bradleymeck: Yeah I know, but the base is so simple and perfect. [15:09] bradleymeck: yep :) [15:09] piscisaureus: me afk [15:09] skm has joined the channel [15:09] |sWORDs|: Will have a look at it, but I don't know if I can install it, (neither did couchdb) [15:10] wvl has joined the channel [15:10] wvl: t [15:10] |sWORDs|: The systems that will be running it have no real package manager, only ipkg, and there is no os source. [15:11] |sWORDs|: Which is why mongodb's binaries would be nice. [15:11] ruggedcoder has joined the channel [15:13] jakehow has joined the channel [15:13] timmywil has joined the channel [15:14] wink_: |sWORDs|: mongo distributes binaries for a number of archs [15:14] mrcaron: piscisaureus: I forked joyent/liboio and added a todo list for myself. I'll stay updated that way by fetching upstream. If I have any thing to add I'll send pull requests... how's that sound? [15:14] gwoo has joined the channel [15:15] piscisaureus: ok good [15:16] tmedema has joined the channel [15:16] roidrage has joined the channel [15:16] tmedema: How does Cluster share access to variables between workers? Is there any documentation about the inner workings of cluster? [15:17] mrcaron: cheers gents & ladies [15:17] mrcaron has left the channel [15:17] Know1edge has joined the channel [15:19] sako has joined the channel [15:19] harth has joined the channel [15:20] mattrobenolt: @tmedema, it can't. They are technically separate processes. [15:20] briznad has joined the channel [15:20] mattrobenolt: At least that I'm aware of. But you can use something like Memcache or Redis to have central storage for data that all workers can utilize. [15:21] |sWORDs|: wink_: That's what I ment, mongo seems the best option because of the binaries [15:21] pietern has joined the channel [15:22] wink_: if you're looking for a place to dump js objects, its definitely on the short list of good choices [15:22] bradleymeck: tmedema it doesnt actually [15:22] jmhnilbog has joined the channel [15:23] tmedema: bradleymeck: oh, so a prebuild application cannot be transformed into a cluster app by just changing the listen method as the intro implies [15:23] halfhalo: optware should have binaries for couch as well (and if I ever get around to it, node also) [15:23] xandrews has joined the channel [15:23] seivan has joined the channel [15:23] pcardune has joined the channel [15:24] bradleymeck: tmedema if it is truly async (ie. data can be accessed from multiple places at same time) you can just remove the server creation from your app (make it export the handler function) then cluster will take that function and handle the rest [15:24] bradleymeck: so its like 3 line change generally if the data thing isnt a problem [15:25] bradleymeck: (wont work on in-memory based dbs) [15:25] tmedema: bradleymeck: that's what I mean, eg. if I use now.js each client will have a different set of clients in the everyone pool. [15:25] tmedema: even though the everyone pool is supposed to contain.. well.. everyone [15:26] oskude has joined the channel [15:26] oskude has left the channel [15:26] bradleymeck: well, idk if thats cluster's fault [15:27] beawesomeinstead has joined the channel [15:27] beawesomeinstead has joined the channel [15:27] tmedema: bradleymeck: not saying it is, but the intro should atleast mention that you have to use a specific design structure [15:27] themiddleman_itv has joined the channel [15:27] bradleymeck: would be nice if cluster / other multi-node managers could be detected though (and grab a config from them) [15:27] tmedema: at the moment it looks like you indeed only need to change 3 lines :) got me confused [15:27] tmedema: I figured it'd be using shared memory or something [15:28] mattrobenolt: It would be nice to allocated shared memory down to the master process or something. [15:29] tjholowaychuk has joined the channel [15:29] themiddleman_itv: Anyone know of a service that we can (somehow) send 'events' like api requests and that service can graph and report on those 'events'? [15:30] bradleymeck: for now it works, bigger fish to fry, like how to get an in memory db to work w/ cluster [15:30] torgeir has joined the channel [15:30] |sWORDs|: halfhalo: I'm using optware on a Qnap, I've thought about releasing a qpkg (qnap package) for node, but because building source is so easy and node changes so often I've decided not to [15:30] torgeir: anyone with mongodb, mongoose, and expresso installed mind testing something for me? [15:30] bradleymeck: themiddleman_itv look at http://projects.nuttnet.net/hummingbird/ ? [15:31] skm has joined the channel [15:31] themiddleman_itv: bradleymeck: oh nice [15:32] bradleymeck: idk if it does what you want though haha [15:32] max_dev has joined the channel [15:33] tmedema: bradleymeck: so could you tell me what exactly I need to take into consideration if I want to keep the opportunity to migrate to a cluster infrastructure later? My app will first be build for a single instance, but I probably will have to take advantage of multiple cores later. Basically, I need to use an independent key-value storage like Redis where I would otherewise have used in-memory variables that need to be accessible to al [15:33] bradleymeck: you got cut off by the char limit [15:34] tmedema: Oh sorry [15:34] tmedema: Basically, I need to use an independent key-value storage like Redis where I would otherewise have used in-memory variables that need to be accessible to all workers? [15:34] themiddleman_itv: bradleymeck: yeah not really, it's not for a website, it's for an api and this uses a tiny image in a webpage for tracking :) its pretty sweet though [15:34] |sWORDs|: torgeir: I'm not that far yet, sorry. [15:35] bradleymeck: tmedema, ya basically just need the shared stuff to stay outside of your workers somewhere [15:36] charybdis has left the channel [15:37] daniellindsley has joined the channel [15:37] tekky has joined the channel [15:37] james_gary has joined the channel [15:38] spetrea-home has joined the channel [15:38] deedubs: torgeir: I have those deps [15:38] badboy_: why is http.createClient not documented in http://nodejs.org/docs/v0.4.5/api/http.html ? [15:38] liar has joined the channel [15:39] piscisaureus: mrcaron: sorry I got disturbed. [15:39] piscisaureus: - The other half of the week I'm working on my thesis. [15:39] piscisaureus: - Pull requests are good. [15:39] bradleymeck: tmpvar: late pong [15:39] mikegerwitz: badboy_: it's old. Use http.request() instead [15:39] badboy_: ok. [15:39] badboy_: just looked through the source of evilbot and it uses createClient [15:39] torgeir: deedubs: sec, gist on the way [15:39] wvl: speaking of http.request -- can you connect to a unix domain socket with it? [15:39] skm has joined the channel [15:40] badboy_: unix domain sockets are not http.. [15:40] wvl: server will listen on a unix socket, but I need the client half of the equation too [15:40] davemo has joined the channel [15:41] badboy_: you can use net.createConnection for unix domain sockets [15:41] ruggedcoder has joined the channel [15:41] jakehow has joined the channel [15:42] torgeir: deedubs: I may very well be mistaken, but should this test not pass? https://gist.github.com/913721 [15:42] flippyhead has joined the channel [15:43] wvl: badboy_: Can I not reuse the http request/response handling already written though? [15:44] lukus has joined the channel [15:44] tmpvar: bradleymeck, yo.. the thought has passed heh [15:44] bradleymeck: K [15:44] baudehlo1 has joined the channel [15:44] badboy_: wvl, i don't think so [15:46] unomi has joined the channel [15:47] sreeix has joined the channel [15:48] johnnywengluu: is there a way to assert on terminal output? [15:48] varioust has joined the channel [15:50] timcosgrove has joined the channel [15:50] timcosgrove has left the channel [15:50] dyer has joined the channel [15:51] james_gary has joined the channel [15:52] tomask has joined the channel [15:53] stonecobra has joined the channel [15:53] sreeix has joined the channel [15:53] ljounce has joined the channel [15:54] Yuffster_work has joined the channel [15:55] ngs has joined the channel [15:55] skm has joined the channel [15:56] meandi has joined the channel [15:56] oskude has joined the channel [15:56] dwiash has joined the channel [15:57] steph021 has joined the channel [15:58] steph021_h has joined the channel [15:59] meandi has joined the channel [15:59] colinclark has joined the channel [16:01] astropirate has joined the channel [16:02] F1LT3R has joined the channel [16:02] davidvanleeuwen has joined the channel [16:02] dguttman has joined the channel [16:04] isaacs has joined the channel [16:05] torgeir: johnnywengluu: make your function take process.stdin as an argument, then from your test send a fake and assert that its write() is called with your expected arguments [16:05] torgeir: stdout, that is [16:06] isaacs: or just run it in a child proc for the test [16:06] robotarmy has joined the channel [16:06] johnnywengluu: i dont quite get it .. the functions i want to test is using console.log [16:07] isaacs: yeah, run in a child process. [16:07] johnnywengluu: wait .. i should mock console.log right? [16:07] isaacs: write a little script that does your little thing. then do: var child = child_process.spawn("node", ["my-script.js"]) and listen to child.stderr and child.stdout [16:07] isaacs: and write to child.stdin [16:07] isaacs: you don't have to [16:08] brianm has joined the channel [16:08] brianm has joined the channel [16:08] torgeir: or isaacs way [16:08] johnnywengluu: what are the advatanges to run in a child process like you descired vs mocking console.log [16:08] isaacs: it's less code that exists solely for the purpose of test wankery [16:08] romainhuet has joined the channel [16:08] johnnywengluu: isn't this what mocking is about .. also .. the child process way wont work on browser right [16:08] jeremyselier: don't you think req should be tested before calling emit error here: https://github.com/joyent/node/blob/master/lib/http.js#L1201 [16:08] isaacs: mocks should only mock *very* well defined interfaces [16:08] isaacs: and as minimally as possible [16:08] jeremyselier: because, sometimes, it's not defined [16:09] brianm has joined the channel [16:09] brianm has joined the channel [16:10] dyer has joined the channel [16:10] johnnywengluu: okay [16:10] isaacs: ok, then write a different test for browsers. [16:10] isaacs: (don't they have their own unit tests...?) [16:11] boaz has joined the channel [16:11] roidrage_ has joined the channel [16:12] steph021_h has joined the channel [16:12] aguynamedben has joined the channel [16:13] zylo has joined the channel [16:13] gmci has joined the channel [16:13] Druide_ has joined the channel [16:14] ceej has joined the channel [16:14] tylerstalder has joined the channel [16:14] torgeir: speaking of tests, shouldnt this test pass? https://gist.github.com/913721 anyone? [16:15] jtsnow has joined the channel [16:15] indexzero has joined the channel [16:16] qFox has joined the channel [16:19] broofa has joined the channel [16:20] Phyllio has joined the channel [16:20] jmar777 has joined the channel [16:21] malkoma__ has joined the channel [16:23] Aria has joined the channel [16:26] davidascher has joined the channel [16:26] indutny has joined the channel [16:26] indutny: V1: around? [16:26] indutny: ryah: around? :) [16:27] shansen has joined the channel [16:28] arpegius has joined the channel [16:28] slickplaid has joined the channel [16:29] pyrony has joined the channel [16:29] Ori_P has joined the channel [16:30] matjas has joined the channel [16:32] Ori_P has joined the channel [16:33] liquidproof_ has joined the channel [16:33] kenbolton has joined the channel [16:33] charlenopires has joined the channel [16:34] hellp has joined the channel [16:34] unomi has joined the channel [16:35] pyrotechnick has joined the channel [16:35] pyrotechnick: evening lads [16:35] jakehow has joined the channel [16:35] perezd has joined the channel [16:35] pyrotechnick: how goes the nodin? [16:36] robotarmy has joined the channel [16:37] hornairs has joined the channel [16:39] rafacv has joined the channel [16:40] erock has joined the channel [16:40] indexzero has joined the channel [16:40] jeffmoss has joined the channel [16:41] TheJH has joined the channel [16:41] deedubs: tjholowaychuk: Is there a teardown for expresso? Trying to get mongoose working wit hit :/ [16:43] McMAGIC--Copy has joined the channel [16:43] pomodoro has joined the channel [16:44] TheJH: can someone point me to a js library for math that can calculate the nearest point on a segment to another point? or to a snippet in another language that does it? it should also handle cases like delta x = 0 [16:45] no-gooder has joined the channel [16:45] softdrink: TheJH: https://github.com/thelonious/js-intersections [16:47] hkjels has joined the channel [16:47] malkomalko has joined the channel [16:47] sivy has joined the channel [16:48] TheJH: softdrink: thanks, but that library only seems to be able to handle intersections [16:48] softdrink: doh, sorry [16:48] softdrink: it's been a while since i played with that one. [16:49] jeffmoss has joined the channel [16:49] jeffmoss has left the channel [16:50] sreeix has joined the channel [16:50] m64253 has joined the channel [16:51] TheJH: maybe I'll just figure it out myself - I basically just have to convert my segment to a line, rotate it by 90°, shift it so that it goes through the point, get the intersection of that line and the original line and then check whether that point is inside my segment, right? [16:51] eee_c has joined the channel [16:51] McMAGIC--Copy has joined the channel [16:52] lupomontero has joined the channel [16:52] softdrink: i'm sure there's some vector magic that can be done. i just don't know offhand [16:53] softdrink: http://paulbourke.net/geometry/pointline/ [16:54] ljounce has joined the channel [16:54] llkazu has joined the channel [16:55] TheJH: softdrink, thanks [16:55] joshthecoder has joined the channel [16:56] jmar777: trying to make sense of some --prof output. can anyone shed some light on what "_token_table_add" would refer to? it's accounting for ~89% of my ticks in C++ land. [16:56] softdrink: np [16:57] M3l7D0wN has joined the channel [16:57] Aria has joined the channel [16:59] Tidwell has joined the channel [17:01] jpld has joined the channel [17:01] pyrotechnick: TheJH: sylvester can do what you want [17:01] pyrotechnick: it's a little slow though if you need ultra performance [17:01] zcopley has joined the channel [17:02] pyrotechnick: tjholowaychuk: what happened to rapid [17:02] tjholowaychuk: pyrotechnick: never really used it so i removed it [17:02] pyrotechnick: :( [17:02] hosh_work has joined the channel [17:03] pyrotechnick: it seems like every couple of weeks i go through the whole process of reviewing all of the adapters and node-friendly dbs [17:03] pyrotechnick: feels like groundhog day [17:03] TheJH: pyrotechnick: ah, thanks! spped isn't that important for me [17:03] TheJH: *speed [17:03] pyrotechnick: well then i suggest sylvester it's pretty comprehensive [17:04] pyrotechnick: and yes you can do some "vector magic" [17:04] pyrotechnick: it's called a projection [17:04] pyrotechnick: or a cast [17:04] harth has joined the channel [17:05] patcito has joined the channel [17:06] pyrotechnick: if u wanna do any more vector stuff check out glMatrix [17:06] pyrotechnick: it's the fastest i know [17:06] pyrotechnick: there's also three.js but the API is queer [17:06] pyrotechnick: it's half OO half functional [17:06] pyrotechnick: whereas glMatrix is purely functional [17:07] softdrink: ♥ three.js [17:07] malkomalko has joined the channel [17:08] TheJH: pyrotechnick: how do I install sylvester? "rake build" and then copy the resulting file in the folder with my project? [17:08] TheFuzzball has joined the channel [17:08] mrcaron has joined the channel [17:08] V1 has joined the channel [17:09] pyrotechnick: it doesnt need building [17:09] pyrotechnick: just drop the js in where you need it [17:09] saikat has joined the channel [17:09] pyrotechnick: unfortunately it's not commonjs, do you need it in node or the browser? [17:09] varioust has joined the channel [17:10] deebo: any tips for debugging the mysql module, it can't seem to be able to connect: Error: ECONNREFUSED, Connection refused [17:10] mrcaron has left the channel [17:10] deebo: mysql -u user -ppass works fine tho [17:10] deebo: as do connections from all the lan machines etc... [17:10] TheJH: pyrotechnick: both, I've got a Cakefile (coffeescript makefile) that compiles my compiled .js files into one and mimics `require()` [17:10] bnoguchi has joined the channel [17:11] deebo: mmh doh, its not listening on localhost... [17:11] pyrotechnick: then you should port it to commonjs [17:11] M3l7D0wN has joined the channel [17:11] pyrotechnick: might be easier just to strip out the particular algorithm you need than to port then entire thing to commonjs it's up to you [17:11] pyrotechnick: it wudnt be hard to get it into commonjs though [17:12] pcardune has joined the channel [17:12] tiago-a has joined the channel [17:13] pyrotechnick: tjholowaychuk: so you're not into redis anymore? [17:13] darshanshankar has joined the channel [17:13] tjholowaychuk: pyrotechnick: of course I am [17:13] robotarmy has joined the channel [17:13] pyrotechnick: or did you find something snazzier? [17:13] arlolra has joined the channel [17:13] tjholowaychuk: just didn't use that project, I just use node_redis [17:14] pyrotechnick: ahh ok [17:14] nibblebot has joined the channel [17:15] pyrotechnick: we used rapid for an app in production, there was only 1 thing that pissed us off, i think it was that you didnt get the model as a parameter to the success callback or something [17:15] pyrotechnick: other than that it was sweet [17:15] pyrotechnick: you have keys too [17:15] pyrotechnick: so i guess you already have redis covered by an ORM somewhat [17:15] pyrotechnick: oh is not ORM [17:15] pyrotechnick: still [17:16] pyrotechnick: you were double dipping [17:16] tiagoa has joined the channel [17:16] pyrotechnick: anyone seen this? [17:16] tjholowaychuk: lol i just like redis as-is [17:16] pyrotechnick: github.com/languages [17:16] pyrotechnick: js ftw [17:16] Aria: Oh, wow. [17:16] bartt has joined the channel [17:17] pyrotechnick: im not sure if it's because js is verbose [17:17] pyrotechnick: or badass [17:17] pyrotechnick: you decide [17:17] kmwallio has joined the channel [17:17] mjr_ has joined the channel [17:17] tbranyen: JS has been the most popular/used language for a long time now [17:17] pyrotechnick: well [17:17] tbranyen: might have something to do with that www thing or something [17:17] bojicas has joined the channel [17:17] pyrotechnick: lol [17:17] tbranyen: i hear its gotten pretty big [17:17] pyrotechnick: nah man [17:18] pyrotechnick: well you may be right in practise [17:18] pyrotechnick: but in terms of github [17:18] pyrotechnick: js was under ruby just 3 months ago [17:18] pyrotechnick: maybe they changed how they count it [17:18] mjr_: Do you have a source for that "most popular" thing? I know Crockford says that a lot, but I've looked for data, and it looks like C is still way more used than JS. [17:18] pyrotechnick: or maybe js has taken 2% ground [17:19] pyrotechnick: i think crockford means it in terms of people who could probably write a simple app in it [17:19] pyrotechnick: because script kiddies have all played with it [17:19] pyrotechnick: it has had a massive exposure [17:19] tbranyen: mjr_: cite: github :3 [17:19] tbranyen: actually my source for that was probably crockford [17:19] tbranyen: i know i've heard it a bunch of times [17:19] harth_ has joined the channel [17:20] pyrotechnick: regardless of the actual numbers tbranyen i think if you're not correct now it will certainly not be long until you can safely assume you are correct [17:20] tbranyen: well also depends on what you mean by more popular either [17:20] pyrotechnick: i remember watching a lecture called the NBL [17:20] pyrotechnick: the next big language [17:20] pyrotechnick: like 8 years ago [17:20] tbranyen: as well* not either [17:20] liquidproof has joined the channel [17:20] pyrotechnick: that said JS would be it [17:20] pyrotechnick: we laughed [17:20] jmar777: "regardless of the actual numbers...", and other phrases that may or may not end well... :p [17:20] TooTallNate has joined the channel [17:22] johnnywengluu: first time unit testing .. its hard to write good tests =) [17:22] Garo_ has joined the channel [17:22] Charuru has joined the channel [17:23] meandi has joined the channel [17:25] pyrotechnick: glhf johnnywengluu [17:25] johnnywengluu: thanks =) [17:25] johnnywengluu: love vowsjs! [17:25] johnnywengluu: going to miss is on the browser side [17:26] johnnywengluu: miss it [17:26] hvgotcodes has joined the channel [17:27] TooTallNate: Does anybody here know the answer to this one? [17:27] TooTallNate: http://stackoverflow.com/questions/5618406/how-can-i-make-a-wscript-file-that-compiles-a-c-file-with-one-set-of-cxxflags [17:27] TooTallNate: it involves compiling a node binding and the wscript file [17:28] dguttman has joined the channel [17:28] adambeynon has joined the channel [17:28] systemfault: Anyone knows if 5.0 is going to have strict mode? [17:29] mcantelon has joined the channel [17:29] TooTallNate: systemfault: I'm pretty sure the current version has _some_ support for strict mode [17:30] hkjels: mongoose is confusing. I think theres a lot of deprecated documentation. [17:30] systemfault: TooTallNate: Ah ok :) [17:30] zemanel has joined the channel [17:31] TooTallNate: systemfault: See here https://github.com/coolaj86/node-bufferjs/issues/1 [17:31] Ori_P has joined the channel [17:31] indutny: V1: around? [17:31] indutny: V1: Can I ask you to install latest openssl on local machine? [17:31] TooTallNate: SubStack: ping [17:32] RusAlex: can anyone recommend a node package for parsing pages ? [17:32] RusAlex: html pages [17:32] TooTallNate: JSDom [17:32] V1: pong [17:32] synkro has joined the channel [17:32] V1: indutny: Uhm, I'll see what I can do [17:32] RusAlex: TooTallNate: thankx [17:34] varioust has joined the channel [17:34] josh_ has joined the channel [17:34] ardcore has joined the channel [17:34] kmiyashiro has joined the channel [17:34] adambeynon has joined the channel [17:34] malkomalko: does socket.io not work in firefox with no flashsocket? should firefox work with this line: transports: ['websocket', 'htmlfile', 'xhr-multipart', 'xhr-polling', 'jsonp-polling'] ? [17:35] pyrotechnick: yes [17:35] pyrotechnick: it can do [17:35] pyrotechnick: htmlfile [17:35] pyrotechnick: xhr [17:35] pyrotechnick: at least [17:35] malkomalko: hmm, wonder why it isn't working [17:35] indutny: V1: https://github.com/donnerjack13589/node/tree/openssl-npn [17:35] pyrotechnick: id change the order though [17:35] SubStack: TooTallNate: pong [17:35] malkomalko: working fine in chrome [17:35] V1: HTMLFile is only ie [17:35] malkomalko: firefox nothing [17:35] orospakr has joined the channel [17:35] TheJH has left the channel [17:35] bergie has joined the channel [17:35] V1: indutny: Still compiling ;) [17:36] indutny: V1: yep, that's long process [17:36] V1: malkomalko: make sure you set rememberTransport:false during development [17:36] pyrotechnick: ahh is that the flag? [17:36] pyrotechnick: been wondering that [17:36] pyrotechnick: it's a PITA [17:36] pyrotechnick: when it drops websocket and never gets it back [17:36] pyrotechnick: thanks man [17:36] malkomalko: V1 what does tha tdo? [17:36] pyrotechnick: stops it getting stuck on a sub-optimal transport [17:37] V1: malkomalko: It tell socket to stop remembering your last used transport [17:37] pyrotechnick: at least while you're developing [17:37] blueadept has joined the channel [17:37] TooTallNate: SubStack: I know you're good at these native bindings Have any idea on this one? [17:37] TooTallNate: http://stackoverflow.com/questions/5618406/how-can-i-make-a-wscript-file-that-compiles-a-c-file-with-one-set-of-cxxflags [17:38] V1: indutny: OpenSSL 1.0.0a 1 Jun 2010 ;) [17:38] dahankzter has joined the channel [17:38] indutny: V1: great. btw what OS do you use? [17:38] indutny: V1: wait a minute, 1.0.0a doesn't have NPN [17:38] indutny: V1: AFAIK [17:38] V1: Mac OSX 10.6 [17:38] indutny: V1: Oh... you'll probably will need to pass openssl options to node.js configure [17:38] malkomalko: what order would you try pyrotechnick? because I still can't get it working with firefox [17:39] indutny: V1: and download OpenSSL from CVS repo http://cvs.openssl.org/ [17:39] V1: ._.' than don't tell me to install the latest openssl indutny ;D [17:39] indutny: V1: haha :) [17:39] V1: CVS? people still use that? [17:39] mikegerwitz has joined the channel [17:39] mikegerwitz has joined the channel [17:39] pyrotechnick: put htmlfile later in the list [17:40] pyrotechnick: malkomalko: put xhr higher up [17:40] V1: just don't touch the socket.io list unless you know what you are doing [17:40] pyrotechnick: yeah or that [17:40] pyrotechnick: use defaults [17:40] SubStack: TooTallNate: try obj.source = [ 'cpp-file.cc', 'c-file.c' ] [17:41] V1: indutny: that's gonna take a while, I don't even have csv installed anymore and I'm going to the gym in a few minutes :) [17:41] seegeekrun has joined the channel [17:41] TooTallNate: SubStack: Well the .c file is really an Objective-C file, so I need to add '-x objective-c' to g++, but those same args don't work right on the .cc file [17:42] SubStack: hmm [17:42] indutny: V1: np, if you don't have that's ok. All this is just for your interest :D [17:43] V1: But I see you have been working hard :p [17:43] TooTallNate: do you know what the commands are to manually create the .node file? I can create the object files no problem. F this waf stuff [17:43] visa_ has joined the channel [17:43] malkomalko has joined the channel [17:44] jimt_ has joined the channel [17:46] RusAlex has joined the channel [17:47] emattias has joined the channel [17:48] bingomanatee: Has anyone found a good regex pair for emails and urls? [17:49] indutny: ryah: https://github.com/donnerjack13589/node/commit/81466940ac67c09e1e4019ce07f2191c554b26b9 one step closer for NPN in tls module [17:49] pyrotechnick: bingomanatee: http://www.regular-expressions.info/email.html [17:49] zed0: http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html [17:49] kkaefer: bingomanatee: emails: /.@./ [17:49] bingomanatee: thx :D [17:49] kkaefer: bingomanatee: urls: /: [17:50] pyrotechnick: bingomanatee: http://stackoverflow.com/questions/201323/what-is-the-best-regular-expression-for-validating-email-addresses [17:50] kkaefer: bingomanatee: please don't use overly restrictive regexes [17:51] baudehlo1: bingomanatee: https://github.com/baudehlo/Haraka/blob/master/plugins/data.uribl.js#L73 [17:51] zed0: Email addresses are surprisingly complex. For example, in theory you are allowed to have additional @ symbols if they are escaped. [17:52] ryanj has joined the channel [17:53] cardona507 has joined the channel [17:53] baudehlo1: may as well just use .+@[\w.-]+\.[\w.-]+ for emails. [17:53] mikegerwitz: http://ex-parrot.com/~pdw/Mail-RFC822-Address.html :D (..no don't use that. JS's regex engine may not even support it, since that's writen for Perl) [17:53] pyrotechnick: http://isemail.info/ [17:53] GriffenJBS has joined the channel [17:53] jimt has joined the channel [17:54] 36DABHWA2 has joined the channel [17:54] zed0: Heh, I wasn't suggesting using it, (I'm not sure anyone sane would) but it was an example of how stupid a regex you need. /o\ [17:55] baudehlo1: yeah plus the full regexp allows things like foo@local and just plain "foo" [17:55] shajith has joined the channel [17:56] kkaefer: baudehlo1: there are non-latin charsets for domains too [17:56] ryah: <3 node [17:57] bingomanatee: yeah the regex is wild - I have decided to use a borrowed function for email rather than regex. [17:57] baudehlo1: kkaefer: fuck 'em :) [17:57] kkaefer: :( [17:57] baudehlo1: or let people type in the punycode equivalent. [17:57] dgathright has joined the channel [17:57] bingomanatee: I want an email address like \@validate\@this\@suckers!@wonderlandlabs.com [17:57] kkaefer: that won't work with your version either [17:57] kkaefer: as there are also punycode tlds [17:58] Charuru: does this page work for anyone else? [17:58] Charuru: http://pjax.heroku.com/dinosaurs.html [17:58] baudehlo1: honestly we haven't seen any used in email addresses in the wild yet that I know of. [17:58] nail__: because they dont validate! [17:58] zed0: Isn't it easiest just ot let people put in whatever they want for email addresses and if it doesn't work then that's their lookout? [17:58] baudehlo1: no I don't do web stuff. I'm talking about in real emails. [17:59] joshfng has joined the channel [17:59] baudehlo1: zed0: pretty much, but if I was writing something I'd check it at least had an @ and one dot in the domain. [18:00] joshfng has left the channel [18:01] zed0: Fair enough. [18:01] baudehlo1: (rather than have your mail server queue a mail for N days if you can avoid it) [18:02] mike5w3c has joined the channel [18:02] dguttman_ has joined the channel [18:03] zpao has joined the channel [18:05] heythisisdave has joined the channel [18:05] markc_ has joined the channel [18:06] kaichenxyz has joined the channel [18:07] eirikurn_ has joined the channel [18:07] figital has joined the channel [18:08] javaanse_jongens has joined the channel [18:08] ryanj has joined the channel [18:09] pcardune has joined the channel [18:09] timcosgrove has joined the channel [18:09] BillyBreen1 has joined the channel [18:10] tokumine has joined the channel [18:12] timcosgrove has left the channel [18:12] piscisaureus has joined the channel [18:14] norviller has joined the channel [18:14] wereHamster: ryah: btw, about the failure to compile node on a smartmachine. All I did was clone the nodejs repo and run make. Don't know what the exact problem was though. [18:14] carsonm has joined the channel [18:14] wereHamster: I don't have the machine anymore, so I can't reproduce. [18:15] kriszyp has joined the channel [18:16] clee has joined the channel [18:16] clee: TooTallNate: ping [18:17] tylerstalder has joined the channel [18:17] eb4890 has joined the channel [18:17] tbranyen: hmmm how hard is it to use the node fastbuffer instead of slow buffer? [18:17] tbranyen: in C++? [18:18] TooTallNate: clee: yo [18:18] tbranyen: looks like it accepts a handle object, offest and length [18:18] tbranyen: samcday_away: have you looked into it at all>? [18:19] clee: TooTallNate: so I have some code here that parses binary plists [18:19] clee: I haven't integrated it into node-plist yet, but I wanted to get your input [18:19] zpao has joined the channel [18:19] TooTallNate: ok, got a gist or something? [18:19] clee: yeah, sec [18:21] M3l7D0wN has joined the channel [18:22] Phyllio has joined the channel [18:23] jimt_ has joined the channel [18:24] heavysixer has joined the channel [18:24] malkomalko has joined the channel [18:25] BillyBreen has joined the channel [18:26] davidsklar has joined the channel [18:27] dgathright_ has joined the channel [18:28] malkomalko: tjholowaychuk: possible to use locals in client side jade? looks like when I have a hidden template for client side it's trying to find the locals that don't exist on server side [18:28] harth has joined the channel [18:28] tjholowaychuk: malkomalko: not sure what you mean. jade.compile(str)({ locals: { foo: 'bar'}}) are the locals [18:29] tjholowaychuk: malkomalko: just invoke the function returned with an object [18:29] malkomalko: right.. I'm hiding client side templates in jade in my view and grabbing the content via .html() so I don't have to inline everything [18:29] bojicas has joined the channel [18:29] tjholowaychuk: gotcha [18:30] coreb has joined the channel [18:30] tjholowaychuk: oh [18:30] tjholowaychuk: i see what you mean [18:30] malkomalko: just wondering if you've done something with that before.. if not no worries [18:30] langworthy has joined the channel [18:30] MikhX has joined the channel [18:31] rfay has joined the channel [18:31] tjholowaychuk: malkomalko: yup I have, didn't have any issues though [18:32] malkomalko: k, must be doing something wrong, I'll play around [18:32] reid has joined the channel [18:32] tjholowaychuk: malkomalko: one sec ill see what i did [18:33] tjholowaychuk: oh right nvm i did something a bit different [18:33] dguttman has joined the channel [18:33] tjholowaychuk: malkomalko: basically you want a block of jade without evaluating foo= etc correct? [18:33] malkomalko: https://gist.github.com/2d9a9f1829e21afa770c [18:34] malkomalko: but since message doesn't exist when the view loads, jade goes boom [18:34] tjholowaychuk: yeah [18:34] tfe_ has joined the channel [18:34] tfe_ has joined the channel [18:34] tjholowaychuk: as expected [18:34] tjholowaychuk: it wont just magically know you want that as a literal [18:34] tjholowaychuk: hmm [18:35] tylerstalder has joined the channel [18:35] malkomalko: yah figured as much, just didn't know if there was a good solution [18:36] tjholowaychuk: malkomalko: not at the moment, it would be awkward too currently since text can use interpolation so you would have to escape \#{} [18:36] indutny: tjholowaychuk: hi! I want to use connect for my spdy server, but looks like it can work only w/ predefined 'http' and 'https' modules [18:36] tjholowaychuk: malkomalko: for "meta-jade" haha. hmm, maybe we need some kind of filter [18:37] malkomalko: I think client side jade has much more value if you can put templates like that right in your view instead of inlining via code in js.. that becomes a hassle [18:37] malkomalko: I think a filter would probably be perfect [18:37] tjholowaychuk: I'll add an issue [18:37] malkomalko: cool, I'll hack on it too [18:39] tjholowaychuk: malkomalko: https://github.com/visionmedia/jade/issues/202 [18:39] tjholowaychuk: the trailing "." already makes it text-only [18:39] tjholowaychuk: so it does kinda work however there are some edge cases that wont [18:41] malkomalko: solid.. I think some template naming filter so you can just reference your template by name inside your client side code would be pretty neat [18:42] malkomalko: seems like that trailing . works well though.. even for each foo in foos [18:43] tjholowaychuk: the indentation output is not currently the exact same as the input [18:43] tjholowaychuk: which kinda sucks [18:43] tjholowaychuk: but it should mostly work [18:43] snearch has joined the channel [18:44] jimt has joined the channel [18:45] maushu has joined the channel [18:47] malkomalko: yah, I see what you mean, everything is at the same level [18:48] johnnywengluu: i have a vowsjs issue..could someone help me get how to use this.callback: https://gist.github.com/914038 [18:48] hkjels has joined the channel [18:48] johnnywengluu: arg2 is undefined .. shouldn't it be "world" [18:48] thomblake has left the channel [18:49] meandi has joined the channel [18:49] thomblake has joined the channel [18:51] Venom_X has joined the channel [18:52] fr0stbyte: hello undefined [18:53] Levi has joined the channel [18:55] johnnywengluu: what is the problem? [18:55] johnnywengluu: arg1 is hello .. but arg2 is undefined [18:55] jimt_ has joined the channel [18:56] cbiscardi has joined the channel [18:57] kmiyashiro: wait(this.callback); [18:57] kmiyashiro: how does that work? [18:57] davidwalsh has joined the channel [18:59] BillyBreen has joined the channel [19:00] mbrevoort has joined the channel [19:01] johnnywengluu: its a function i used to test [19:01] johnnywengluu: its in the gist [19:01] hackband has joined the channel [19:03] ybit has joined the channel [19:05] colinclark has joined the channel [19:06] insin has joined the channel [19:06] defstream has joined the channel [19:07] heythisisdave has joined the channel [19:08] rafacv has joined the channel [19:08] kmiyashiro: I'm a js nub, what is this in that context? [19:09] heythisisdave has joined the channel [19:09] maxter has joined the channel [19:10] deedubs: johnnywengluu: What does console.log(arguments) say/ [19:11] jimt has joined the channel [19:11] johnnywengluu: the only argument is hello [19:11] ziro` has joined the channel [19:11] johnnywengluu: weird [19:11] ziro`: anyone familiar with the mu package? [19:11] ziro`: the readme seems out of date :/ [19:14] cbiscardi has joined the channel [19:14] amacleod has joined the channel [19:15] indutny: Hey guys, check this: https://donnerjack13589.dyndns.tv:8081/ [19:16] indutny: Node.js TLS NPN SPDY server [19:16] indutny: :) [19:17] jimt_ has joined the channel [19:17] __tosh has joined the channel [19:17] carsonm: indutny: what did you use for that? [19:18] indutny: carsonm: custom node.js build w/ NPN and my SPDY server [19:18] indutny: carsonm: https://github.com/donnerjack13589/node/tree/openssl-npn [19:18] carsonm: I've got the same going just haven't exposed it. [19:18] indutny: carsonm: https://github.com/donnerjack13589/node-spdy.git [19:18] indutny: carsonm: you'd implemented npn in nodejs ? [19:18] carsonm: just patched it [19:19] dambalah has joined the channel [19:19] bradleymeck: is spdy full duplex or just request/response single? [19:19] carsonm: indutny: did this for the spdy to test spdy https://gist.github.com/911761 [19:20] carsonm: indutny: The gist is out of date though, I've got it working better now [19:20] clee: how do I profile my nodejs code? [19:20] indutny: carsonm: good are you using zlib lib? [19:20] indutny: bradleymeck: not really full duplex, only response and headers of request, not body [19:21] carsonm: indutny: yeah, but I had to hack the crap out of it [19:21] indutny: carsonm: I'd patched zlib too, it's called zlibcontext. So I can control Stream Resetion and dictionary [19:21] indutny: carsonm: what'd you patched to get NPN working in node.js? [19:22] carsonm: indutny: I used SVN OpenSSL and then added the NPN callback stuff to the crypto source. [19:22] indutny: carsonm: haha :D I really done same work. Why you hadn't published it? [19:23] carsonm: indutny: I did but via twitter... :) [19:23] marshall has joined the channel [19:23] marshall: hey node [19:23] indutny: carsonm: https://github.com/donnerjack13589/node/compare/master...openssl-npn [19:23] marshall: I'm messing around with express [19:23] marshall: and jade [19:23] indutny: carsonm: I's added some functionality to tls module, so you can control NPN [19:23] M3l7D0wN has joined the channel [19:23] carsonm: indutny: I was going to patch each part before pushing it all out and it really isn't that useful without npn support in node's tls module. [19:24] ardcore has left the channel [19:24] indutny: carsonm: yep [19:24] cbiscardi: marshal: doing anything interesting with them? [19:25] indutny: carsonm: you have many function callers in your spdy proxy, is it fast to do that? [19:25] marshall: according to express' docs, by default when rendering a jade template, it will pass the template you give it as the variable `body` to layout.jade. This seems to be happening for me, but the rendered template text is being escaped and not displaying as html elements on the page. Anybody encounter this before? [19:25] marshall: cbiscardi: yeah, it's pretty neat. I'll show you once I get it working [19:26] phing_work has joined the channel [19:26] cbiscardi: marshall: I've never had it happen to me before, but If you have a code sample i'd be happy to take a look [19:27] carsonm: indutny: are you talking about the BufferList/binary stuff? [19:27] indutny: carsonm: yep [19:27] Lorentz has joined the channel [19:28] jimt has joined the channel [19:28] RusAlex: guys, what i need to use in node if i need to Determine type of FILEs ? like in unix file ./filename [19:29] marshall: cbiscardi: I'll show you my layout.jade and the output I'm getting [19:29] cbiscardi: marshall: ok, it may be that your declaring the body variable wrong in the layout.jade [19:29] ZeroCoder has joined the channel [19:30] bnoguchi: marshall: ctrl-f "!=" on this page https://github.com/visionmedia/jade [19:30] bnoguchi: marshall: You need to do '!=', not '=' [19:30] cbiscardi: marshall: it should be something like... like what bnoguchi just posted [19:31] javaanse_jongens has joined the channel [19:31] sugardave has joined the channel [19:32] Phunky has joined the channel [19:32] marshall: cbiscardi: http://dpaste.com/531021/ [19:32] newy_ has joined the channel [19:33] marshall: bnoguchi, cbiscardi: haha, thanks [19:33] stonebranch has joined the channel [19:33] JojoBoss has joined the channel [19:33] marshall: bnoguchi: hey, you're the creator of redis-node! [19:34] bnoguchi: marshall: Yea, but try to use matt ranney's node_redis going forward [19:34] bnoguchi: marshall: npm install redis [19:34] papandreou has joined the channel [19:34] TooTallNate has joined the channel [19:35] cbiscardi: well that won't be confusing at all haha [19:35] torgeir has joined the channel [19:36] sonolin has joined the channel [19:36] sonolin: Hey guys [19:36] cbiscardi: sonolin: hello [19:36] sonolin: I'm trying to figure out something for Node.js.. maybe you guys can help [19:37] Draggor: sonolin: Just ask [19:37] carsonm: indutny: Any reason you went with setting/getting the npn protos instead of just pushing that callback down to node and letting the user handle it? [19:37] sonolin: Ok... One second I'm making a jsfiddle now to explain easier [19:37] indutny: carsonm: performance [19:38] indutny: carsonm: setting buffer once is much faster [19:38] beawesomeinstead has joined the channel [19:38] beawesomeinstead has joined the channel [19:38] mjr_: bnoguchi: our group fragmented the other day in SF before I got a chance to introduce myself. [19:38] indutny: carsonm: And actually user doesn't need this flexibility [19:38] dyer has joined the channel [19:38] mjr_: bnoguchi: that's some cool mongo stuff you've put together. [19:38] indutny: carsonm: getting current npn protocol doesn't work for now [19:39] bnoguchi: mjr_: thanks. i really like your node_redis implementation. so clean. [19:39] bnoguchi: mjr_: are you still in the bay area? [19:39] mjr_: Thanks, a lot of people have helped by running it and reporting bugs. I've still got a queue of incoming bugs on tricky issues. [19:40] mjr_: I live in Hawaii, so I'm only in SF one week/month. [19:40] sonolin: Ok guys... see http://jsfiddle.net/nqdYs/ to see what I'm trying to do please [19:40] Kryckan has joined the channel [19:40] sonolin: I'mm using express + tropo's webapi (tropo part should be irrelevant here) [19:40] sonolin: I need to send a response to tropo when an event is fired [19:41] bnoguchi: mjr_: cool, i have relatives in hawaii. We should meet up the next time you're in town. [19:41] sonolin: But if I try to re-use the "res" variable from express, the script errors saying I can't set headers on a response that's already been used or something like that [19:41] heythisisdave has joined the channel [19:41] tfe_ has joined the channel [19:41] tfe_ has joined the channel [19:41] mjr_: bnoguchi: Yeah, for sure. Next month's trip is around the same time as nodeconf + jsconf, so I'll probably only be in SF for a couple of days. [19:41] tjholowaychuk has joined the channel [19:42] marshall: bnoguchi: okay, thanks for your contributions though :D [19:42] jetienne has joined the channel [19:42] sonolin: And I can't do a while loop waiting for the agent to accept the call because this stops the holds up the script (maybe I should be doing this in another event, I don't know) [19:42] sonolin: Sorry really new to node.js/express so any help would be appreciated [19:44] cbiscardi: sonolin: isn't response.send old? what version of node are you using? [19:45] m64253 has joined the channel [19:45] sonolin has joined the channel [19:45] tjholowaychuk: cbiscardi: express has res.send() [19:45] Remoun has joined the channel [19:45] sonolin: node 0.4.2 [19:45] tjholowaychuk: it's a convenience method to respond with json etc [19:45] sonolin: sorry stupid browser irc client [19:46] tjholowaychuk: sonolin: what's going wrong with res.send()? [19:46] cbiscardi: tjholowaychuk: well i'll go check that out now [19:46] ryah: does anyone know how to get shutdown(2) to return a ENOTCONN? [19:46] ryah: seems really difficult.. [19:46] carsonm: indutny: are you going to ask for that change to be pulled? [19:46] ryah: i'd think if the connection got a reset packet you'd get ENOTCNN [19:46] indutny: carsonm: when all work will be done [19:47] indutny: ryah: btw what do you think about NPN in node.js TLS module? [19:47] ryah: indutny: i looked at it briefly - i'm excited about it [19:47] V1: Released: new plugin for cluster, aka cluster.exception: https://github.com/3rd-eden/cluster.exception ^_^ [19:47] cbiscardi: tjholowaychuk: so is res.send better than res.write when using express? [19:47] ryah: indutny: im trying to catch up - so it may take me a little bit to get to it [19:47] indutny: ryah: do you mean my implementation or npn generally? [19:48] sonolin: .... weird now all the sudden it doesn't error on me any more [19:48] ryah: npn generally [19:48] sonolin: also doesn't hang up the call though, I guess I'll play around with it some more [19:48] tjholowaychuk: cbiscardi: well not better, just different, completely different [19:48] marshall: I'm trying to move a slugify function into an external requirement file called utils.js, how exactly should I write a basic utility file that can be included in node scripts? [19:48] tjholowaychuk: V1: sweet :) [19:49] carsonm: indutny: The big issue is that npn isn't in a released version of openssl yet. [19:49] indutny: ryah: please take a look at mine: http://github.com/donnerjack13589/node/tree/openssl-npn [19:50] indutny: carsonm: yep, that's problem. so if we want it in node.js we'll need to add it to the deps dir [19:50] kriszyp has joined the channel [19:50] indutny: carsonm: btw, new page - https://donnerjack13589.dyndns.tv:8081/ [19:50] V1: tjholowaychuk: Yeah, I was working on it for a while.. and than you released cluster-mail.. But I just decided to finish it anyways :p [19:50] indutny: carsonm: using connect's static router [19:51] tjholowaychuk: V1: yeah totally, cluster-mail is tiny. I've just been trying to seperate concerns into separate plugins [19:51] tjholowaychuk: mail / log / etc [19:51] tjholowaychuk: V1: looks like a good alternative though, great for debugging with all that info [19:52] V1: tjholowaychuk: That was the reasoning behind it.. Now that I got this covered, I will most likely use the `history` module that I created to build a cluster-metrics module :) [19:52] V1: ACTION hopes without duplicate efforts this time [19:53] tjholowaychuk: well I have cluster-live on the go haha [19:53] M3l7D0wN has joined the channel [19:53] tjholowaychuk: just gotta finish it up a bit [19:53] cbiscardi: sonolin: res.send ends the response(res.end), you'll have to use res.write because you're writing multiple times. The connection is closed after your first res.send which is why you get the error when you try to write the second time (res.send trys to write headers after the connection is closed) [19:53] pomodoro has joined the channel [19:53] tjholowaychuk: cbiscardi / sonolin: ah, yeah if you are just streaming data you wont want to use res.send() [19:54] mike5w3c_ has joined the channel [19:54] cbiscardi: tjholowaychuk: thanks for the heads up, i have no idea how i missed that the docs weren't using res.write [19:54] no-gooder has joined the channel [19:55] marshall: nvm, I dot it [19:55] marshall: *got it [19:55] baudehlo1: when the callback for fs.close() is called, is the file guaranteed flushed to disk? [19:55] tjholowaychuk: cbiscardi: I should probably document that a bit better, I'm pretty sure I mention that it invokes end() [19:55] no-gooder has left the channel [19:56] V1: tjholowaychuk: doh ;D [19:56] tjholowaychuk: V1: but hey, that's the point of the plugins. choice! [19:56] Croms has joined the channel [19:56] ziro`: i love node but i'm worried about the state of npm and people's involvment in their projects - there are too many projects dating back to 2010 that haven't been maintained [19:56] McMAGIC--Copy has joined the channel [19:56] V1: tjholowaychuk: true, but duplicating functionality isn't gonna help anyone [19:56] drudge: dating back to 2010 :P [19:56] isaacs: ziro`: ALL THE WAY BACK TO 2010!!! [19:56] cbiscardi: tjholowaychuk: the documentation is fine, it's just out of the way. it does mention that it uses res.end [19:57] isaacs: :D [19:57] ziro`: all the way [19:57] ziro`: like July [19:57] ziro`: JULY! [19:57] mjr_: I remember 2010. Good times. [19:57] Croms: Yikes, 620 people. Surely that's a record? [19:57] isaacs: ziro`: a lot of things just don't need changing, dude. [19:57] tjholowaychuk: V1: nope lol well maybe hold off on that one a bit, and I'll open source what I have already so you can see if it would be similar or what [19:57] isaacs: ziro`: sometimes software really is "done" [19:57] V1: tjholowaychuk: sure [19:57] indutny: carsonm: so what do you think about my implementation? [19:58] indutny: carsonm: does it makes sense? [19:58] bradleymeck: ziro, unfortunately some ppl like me dev things, and then work / job / lack of people showing interest makes us move on (though like 80% of my stuff from last july works oddly) [19:58] Venom_X_ has joined the channel [19:58] MarkMenard has joined the channel [19:58] aguynamedben: lol probably a record because of http://soundcloud.com/marak/marak-the-node-js-rap [19:58] bradleymeck: croms not quite we got up to 29, though im waiting for triple six [19:58] nycinake has joined the channel [19:59] nycinake has left the channel [19:59] ziro`: in NPM, I've installed `mu`, `mustache` and am in the end having to install a fork on GH manually cos neither of the existing packages have been developed to a point where they're useful for my purpose [19:59] Croms: Hehe. [19:59] ziro`: now i'm battling with ruby and rake [19:59] isaacs: ziro`: you should send patches to the author! [19:59] isaacs: ziro`: i can't help you with ruby [19:59] ziro`: neither can the lord [19:59] c4milo has left the channel [20:00] c4milo has joined the channel [20:02] meandi has joined the channel [20:02] mikl has joined the channel [20:02] ghost has joined the channel [20:03] hij1nx has joined the channel [20:03] breccan has joined the channel [20:04] meandi has joined the channel [20:05] rburhum has joined the channel [20:06] piscisaureus has joined the channel [20:10] davidsklar1 has joined the channel [20:11] dgathright has joined the channel [20:12] varioust has joined the channel [20:14] TooTallNate: ryah or anybody else who knows waf, can you help me? [20:14] TooTallNate: I'm trying to build a binding for node [20:14] baudehlo1: is there any library that does chown() right now? [20:15] piscisaureus: ACTION enter [20:15] TooTallNate: for OSX, using 2 or more '-framework' flags in the wscript, and only the first framework is ever found [20:16] TooTallNate: In other words, in my 'wscript', there's this: obj.linkflags = ["-framework", "ScriptingBridge", "-framework", "Foundation"] [20:16] TooTallNate: and only the "ScriptingBridge" is found, "Foundation" is not [20:16] TooTallNate: It gives me: i686-apple-darwin10-g++-4.2.1: Foundation: No such file or directory [20:17] clee: TooTallNate: I got the unicode byte-swapping working :) [20:17] riven has joined the channel [20:17] riven has joined the channel [20:17] sdecastelberg has joined the channel [20:17] ajct has joined the channel [20:17] tfe__ has joined the channel [20:18] mattly has joined the channel [20:19] ryah: TooTallNate: use 'node-waf -v build' to see the actual commands being executed [20:20] tfe_ has joined the channel [20:20] TooTallNate: ryah: 13:20:16 runner system command -> ['/usr/bin/g++', 'default/tunes_1.o', 'default/helloworld_1.o', '-o', '/Users/nrajlich/tunes/build/default/helloworld.node', '-framework', 'ScriptingBridge', 'Foundation', '-bundle', '-undefined', 'dynamic_lookup', '-L/usr/local/lib'] [20:20] mrcaron has joined the channel [20:20] TooTallNate: Interesting, the second '-framework' flag gets removed for some reason [20:21] carsonm: indutny: I think the node.js npn part seems fine, as you can see from my gist I did the parser differently. [20:21] indutny: carsonm: k [20:21] McMAGIC--Copy has joined the channel [20:21] carsonm: indutny: I like the BufferList/binary state machine setup better than rolling everything by hand. [20:21] indutny: carsonm: That's better in some cases, but performance is really much worse [20:22] tmpvar: TooTallNate, can you link to your wscript? [20:22] carnivore: 14topic: Liboio design (http://convore.com/nodejs-7/liboio-design/) [20:22] ryah`c: hello? [20:22] carsonm: indutny: I wouldn't believe that until I see it [20:22] piscisaureus`c: Hello! [20:22] indutny: carsonm: and when you're implementing protocol that should be faster than http, it's ok to think about performance [20:22] ryah`c: i feel like convore could have fewer levels of channels [20:23] TooTallNate: tmpvar: something akin to this: ttps://gist.github.com/336b84dfa9bcb7b86189 [20:23] ryah`c: group -> topic [20:23] TooTallNate: https://gist.github.com/336b84dfa9bcb7b86189 [20:23] ryah`c: seems too much [20:23] ryah`c: would rather just have global topic [20:23] ryah`c: anyway. [20:23] ryah`c: Yes I guess that would be better. [20:23] ryah`c: But it makes the convore->irc bot easy though [20:23] mrcaron has left the channel [20:24] piscisaureus`c: maybe even #defines [20:24] meandi has joined the channel [20:24] tmpvar: TooTallNate, https://github.com/tmpvar/node-ogl/blob/osx-glfw/wscript#L64 [20:24] dmcquay has joined the channel [20:24] ryah`c: oio_timer_init(ol_handle* h, double timeout, double repeat) [20:24] piscisaureus`c: So I think [20:24] Kryckan has joined the channel [20:25] piscisaureus`c: int oio_timer_handle_new(*oio_handle handle) [20:25] cloudhea2 has joined the channel [20:25] cloudhea3 has joined the channel [20:25] indutny: carsonm: are you sending request body too? [20:25] piscisaureus`c: int oio_timer_set(oio_handle *handle, oio_req *req, double timeout) [20:26] springmeyer has joined the channel [20:26] carsonm: indexzero: In that proxy example? I haven't had time to do that part yet. [20:26] ryah`c: what about for setInterval? [20:26] TooTallNate: tmpvar: thanks, thats how it's done [20:26] carsonm: indutny: Sorry, not yet. [20:26] ryah`c: just force people to call timer_set again? [20:26] piscisaureus`c: maybe have an optional repeat [20:27] tmpvar: TooTallNate, no problemo.. took me a while to find as well ;) [20:27] indexzero: carsonm: Which proxy example? the simple round robin? [20:27] piscisaureus`c: 14topic: Liboio design (http://convore.com/nodejs-7/liboio-design/) [20:27] ryah`c: oio_timeout(oio_req *req, double timeout) [20:27] newy_ has joined the channel [20:27] carsonm: indexzero: sorry, too many people I hit tab too early [20:27] piscisaureus`c: I don't think calling timer_set again is that bad [20:27] indexzero: carsonm: ok, np [20:28] PhilK: isaacs: I'm trying to set up a private registry for npm and it works fine until I put it behind apache with basic auth turned on (401 authorization required). known issue? [20:28] carsonm: indexzero: last time I was in here was feb of last year and there were way fewer people back then. [20:28] PhilK: npm - 1.0.1rc7 [20:28] isaacs: PhilK: in the latest 1.0 rc (or maybe not yet released?) there's an option to always send auth [20:28] piscisaureus`c: Also, there is this problem: you don't want to naively reuse the oio_req [20:28] isaacs: PhilK: see if it works with HEAD [20:29] isaacs: carnivore: a more aggressive dino name? [20:29] TooTallNate: tmpvar: Well I guess that makes it possible to write Objective-C bindings as well! [20:29] gh0stz has joined the channel [20:29] ryah`c: i like the consistency of having these oio_req objects be associated with each async function call. [20:30] cloudhead has joined the channel [20:30] cloudhea1 has joined the channel [20:30] piscisaureus`c: yes me too. So oio_interval(oio_req *req, double interval) is not a good idea because the req will be sent to a callback multiple times [20:30] mjr_: I don't yet get convore. Is the idea that twitter doesn't have conversations, so you want to have web-based conversations with people you don't want to be facebook friends with? [20:31] PhilK: isaacs: just git pulled and installed and still getting it (already had always-auth set) [20:32] PhilK: isaacs: am I just being stupid by trying it as --registry "https://user:pass@myregistry.com"? [20:32] isaacs: PhilK: ahhh, ok [20:32] isaacs: PhilK: so, the registry will send your user/pass that you create with `npm adduser` [20:32] isaacs: you could set it up as a proxy server, and then have a proxy config AND a registry config [20:33] isaacs: but the --registry should be just a url only [20:33] PhilK: ah, so I have to have the user/pass coming from cloudkick, not an htpasswd file with apache? [20:33] PhilK: hah, from couchdb [20:33] isaacs: ha, i thought you might've been a cloud-kicker ;) [20:34] PhilK: yup, one of the new guys :) [20:34] isaacs: PhilK: the user/pass that you create with npm adduser is what goes into the couchdb, yes [20:34] isaacs: you can maybe configure apache to use that as its auth store or something, or you can make http proxy requests through apache using a user/pass in a htpasswd file. [20:34] carnivore: 14topic: Liboio design (http://convore.com/nodejs-7/liboio-design/) [20:34] ryah`c: yeah [20:35] isaacs`c: oh, so this gets dumped into the node.js chat? [20:35] isaacs: it does, indeed. [20:35] piscisaureus`c: Hmm looks like I was a little stuck on the old api. [20:35] piscisaureus`c: int oio_timer_handle_init(oio_handle *handle, *oio_close_cb); [20:35] piscisaureus`c: int oio_timer_timeout(oio_req *req, double timeout); [20:35] piscisaureus`c: int oio_timer_cancel(oio_handle *handle); [20:36] danbeam has joined the channel [20:36] piscisaureus: ïsaacs: yeah it gets dumped. A little experiment. If it's too annoying I will shut it down. [20:36] gilesgoatboy has joined the channel [20:36] PhilK: ah, so I can use the htpasswd? the 401 I'm receiving is coming back from apache, not couch. it's more like npm isn't passing the http basic auth credentials over so it's never getting into couch [20:36] ryah`c: i suspect there is some optimization that can be done when you know that the timer will fire again [20:37] piscisaureus: isaacs: ^ [20:37] isaacs: piscisaureus: i see it :) [20:37] isaacs: PhilK: so, there are two things that npm sends auth to. [20:37] danbeam: assuming you guys have seen this, but, ... http://soundcloud.com/marak/marak-the-node-js-rap [20:37] danbeam: if you haven't [20:37] piscisaureus: isaacs: yeah I wasn't sure if your irc client would be smart about ï == i [20:37] isaacs: 1. the registry - this is from the "_auth" config param that you create using npm adduser. It's a couchdb thing. [20:37] isaacs: 2. the proxy - this is from the "proxy" config param, and it's sent to the proxy xerver. [20:38] isaacs: piscisaureus: it's not, but my brain is ;) [20:38] Gelegrodan has joined the channel [20:39] ajct: anyone used node-sqlite (https://github.com/orlandov/node-sqlite) I've followed the build instructions, checked out into /usr/loca/src, and I'm trying to use it but it just errors saying it can't find the library? any ideas what I'm doing wrong? https://gist.github.com/914266 [20:39] Sami_ZzZ__ has joined the channel [20:39] isaacs: PhilK: so, you could set up an apache server that is a transparent wrapper around the registry, and uses couchdb as its auth store, or you could set up apache as a proxy server, and have it proxy to a (perhaps not exposed) couchdb server, and everyone does `npm config set proxy http://user:pass@server:8080" or something [20:39] mythril has joined the channel [20:39] isaacs: and then you could even do: registry = http://localhost:5984/registry/_design/app/_rewrites [20:40] carnivore: 14topic: Liboio design (http://convore.com/nodejs-7/liboio-design/) [20:40] piscisaureus`c: I don't know, I don't think libev optimizes it. The pain with timers is in keeping your list with timeouts sorted. I don't think that is going away when you have a repeating timer. [20:40] isaacs: or you could set it up with a rewrite like i do, and have something like http://registry.cloudkick.local/ or something [20:41] ryah`c: i think the cancel should be general to all oio_req [20:41] ryah`c: oio_cancel() [20:41] PhilK: isaacs: ahh, setting the proxy sounds like it'll fix it, thanks. I'll come back and bug you if I'm still stumped [20:41] McMAGIC--Copy has joined the channel [20:41] isaacs: okie dokie [20:42] isaacs: PhilK: "always send auth" will always send your *registry* auth info, not necessarily the proxy [20:42] piscisaureus`c: allright [20:42] isaacs: the proxy auth is always sent if the proxy url has auth on it [20:42] piscisaureus`c: but how do you free a timer? [20:42] piscisaureus`c: you need something like close and close_cb [20:42] piscisaureus`c: oh, right.hm [20:42] Gelegrodan: its not possible for multiple clients to share one child process in some way? if i for example wanna do like this but i dont want X vnstat -l running: https://gist.github.com/914287 [20:42] isaacs: piscisaureus: looks like the convore util isn't waiting any time between /nick and message [20:43] isaacs: piscisaureus: i'm seeing it post as "carnivore" rather than "piscisaureus`c" [20:43] ryah`c: if the timer isnt in progress then i think the handle can be released [20:43] isaacs: piscisaureus: probably ought to wait a bit of time for the message to send before /nick-ing back [20:44] ohtogo has joined the channel [20:45] piscisaureus`c: maybe we should not have a oio_timer handle [20:45] carnivore: 14topic: Liboio design (http://convore.com/nodejs-7/liboio-design/) [20:45] piscisaureus`c: just send oio_timeout straight [20:45] piscisaureus: isaacs: hmm are nicks propagated slowly? [20:46] piscisaureus: like do race conditions between /nick and messages exist? [20:46] isaacs: piscisaureus: well, they're both just messages, afaik. [20:48] javaanse_jongens has joined the channel [20:49] ryah`c: nod [20:49] danbeam has left the channel [20:51] papandreou has joined the channel [20:51] bingomanatee: why on earth is this forum entitled "The Java Age"? [20:52] AAA_awright: bingomanatee: What forum? Oh, this channel? [20:52] coreb: should probably be "javascript" [20:52] papandreou: SubStack: You there? [20:53] SubStack: yes [20:54] xandy: hi i tried to build node-gearman but i got this error: http://cxg.de/_f6f0a2.htm [20:54] carnivore: 14topic: Liboio design (http://convore.com/nodejs-7/liboio-design/) [20:54] piscisaureus`c: typedef void (*oio_timer_cb)(oio_req *req, double skew); [20:54] piscisaureus`c: int oio_timer_timeout(oio_req *req, double timeout); [20:54] piscisaureus`c: int oio_cancel(oio_req *req); [20:54] piscisaureus`c: ^- does this *guarantee* to cancel a request? On windows that's gonna be hard. [20:55] xandy: i tried to compile it under debian. under ubuntu it worked [20:55] ryah`c: guarantees that the callback is not made and oio_req can be freed [20:55] papandreou: SubStack: I'm a huge seq fan, but there's one particular pattern I find myself repeating all the time when my seq-powered functions have to call _their_ callbacks at the end of their chain: ...seq(function () {outerCb();}).catch(outerCb); [20:55] piscisaureus`c: can be freed immediately? -> can't be done on windows [20:55] tbranyen: xandy: different python version? [20:56] figital has joined the channel [20:56] xandy: hm that's possible [20:56] ryah`c: ah right.. because you hav ethe OVERLAPPED inside the req? [20:56] jimt_ has joined the channel [20:56] piscisaureus`c: yes [20:56] papandreou: SubStack: How do you handle that yourself? Did I miss a variant of seq() that gets the err as the first arg? [20:56] SubStack: catch is the only way right now [20:57] piscisaureus`c: I want to keep it that way I think [20:57] papandreou: SubStack: Ok, just wanted to make sure. [20:57] xandy: tbranyen 2.6.5(works) and 2.6.6 but that shouldn't be the problem i think [20:58] tbranyen: yeah probably not [20:58] papandreou: SubStack: +1 for .seqErr() or .escape() or something :) [20:59] Aria has joined the channel [21:00] xandy: hm what else coud cause this error? [21:00] mbrevoort has joined the channel [21:00] Kryckan has left the channel [21:00] mikeal has joined the channel [21:01] eldar has joined the channel [21:02] Gelegrodan: its not possible for multiple clients to share one child process in some way? if i for example wanna do like this but i dont want X vnstat -l running: https://gist.github.com/914287 [21:02] kriszyp has joined the channel [21:02] indutny: carsonm: yahoo [21:03] indutny: carsonm: I got request body working [21:03] indutny: https://donnerjack13589.dyndns.tv:8081/ [21:04] max_dev has joined the channel [21:05] Gruni has joined the channel [21:06] shiawuen has joined the channel [21:06] Gruni has joined the channel [21:07] sako has joined the channel [21:08] perezd: ryah: u around? [21:09] tokumine has joined the channel [21:10] M3l7D0wN has joined the channel [21:10] zkirill has joined the channel [21:15] adambeynon_ has joined the channel [21:15] ryah: perezd: kind of [21:16] perezd: ryah: ping me later if u have a chance, interesting developments are happening on my github issue [21:17] f7u12 has joined the channel [21:17] f7u12: Anyone here have experienece with installing Now.js [21:17] MattAdams has joined the channel [21:17] MacDiva_ has joined the channel [21:18] MattAdams: I seem to recall being able to use $ npm build with a package.json in any directory to fetch dependencies into that directory and install them under node_modules/ [21:18] MattAdams: This doesn't seem to be working with later versions of npm. Is there a better way to do this? [21:20] ajct: so I built an external library - node-waf configure build - and if I try and load it it can't be found. I'm thinking I should have built it somewhere else or whispered something magically so node knows where to find it? any tips (bearing in mind I have no idea what I'm doing ;)? [21:20] ajct: it was node-sqlite btw [21:22] ryah: perezd: okay - are you updating the issue? [21:22] tfe_ has joined the channel [21:22] perezd: ryah: yeah, I have been [21:23] carsonm: indutny: Nice, have you tried out page benchmarking extension on it yet? [21:23] varioust has joined the channel [21:23] indutny: carsonm: Developer tools or Page speed? [21:23] carsonm: indutny: http://www.chromium.org/chrome-benchmarking-extension [21:24] indutny: carsonm: thanks [21:25] MattAdams: Oh, $ npm bundle. Jeeze. [21:25] indutny: carsonm: looks like I can't, I'm using chrome-dev version on ubuntu 64 bit [21:26] indutny: carsonm: and it just halts [21:26] indutny: can I ask you to test it? [21:26] Gelegrodan: its not possible for multiple clients to share one child process in some way? if I for example wanna do like this but I dont want one 'vnstat -l' for each client connecting : https://gist.github.com/914287 [21:26] ryah: okay. im still trying ot get a test case going for GH-670 [21:27] carnivore: 14topic: Liboio design (http://convore.com/nodejs-7/liboio-design/) [21:27] ryah`c: how does CancelIoEx() work? [21:27] perezd: ryah: thats related to mine too, right? [21:27] ryah`c: it seems we should follow that [21:28] mheadd has joined the channel [21:28] indutny: carsonm: sorry it was offline for awhile, I's tested something [21:28] heythisisdave has joined the channel [21:29] ryah: perezd: yes, related [21:29] gtramont1na has joined the channel [21:30] mike_miller has joined the channel [21:31] `a: isaacs: I think the convore bot is too annoying [21:31] springmeyer has left the channel [21:31] AddZero has joined the channel [21:31] piscisaureus: that was me [21:32] ryah: yeah, it'skind of annoying [21:32] jetienne has left the channel [21:32] ryah: it would be nice if it was bidirectional [21:33] teemow has joined the channel [21:33] gtramont1na_ has joined the channel [21:33] carnivore: 14topic: Liboio design (http://convore.com/nodejs-7/liboio-design/) [21:33] piscisaureus`c: CancelIoEx *might* cancel your io. But it doesn't cancel if your operation has already completed or is about to be completed. [21:34] piscisaureus: ryah: yes but that would require the bot to impersonate you at convore [21:34] piscisaureus: ryah: ... and to know which message you were responding to [21:34] blueadept: does convore use node? [21:35] piscisaureus: they should :p [21:35] blueadept: oh they use python or somehting? [21:36] blueadept: i think i remember reading about that [21:36] gtramont1na: isaacs: Hey dude, using 'npm bundle install' will install all libs I have specified in my dependencies key inside package.json, right? How do I install the devDependencies? Something like 'npm bundle install --dev' ? [21:37] ardcore has joined the channel [21:37] Croms has joined the channel [21:38] wink_: anyone have any idea what could cause a setTimeout to stop firing without a clearTimeout? [21:38] wink_: something im doing is gumming up node, but im not sure how to track it down, im not getting a crash or any errors [21:39] mraleph has joined the channel [21:39] MarkMenard has joined the channel [21:40] jakehow has joined the channel [21:42] blueadept: did convore crash? [21:42] blueadept: lol [21:42] blueadept: Traceback (most recent call last): [21:42] blueadept: OperationalError: asynchronous connection failed [21:43] blueadept: back up [21:43] n2liquid has joined the channel [21:44] n2liquid: does anyone know how to troubleshoot mongoose connection problems? [21:44] blueadept: b2liquid: what's the issue? [21:44] rfay has joined the channel [21:44] n2liquid: I do mongoose.connect('mongodb://localhost/db'); [21:44] n2liquid: then I inspect mongoose.connection [21:44] perezd: ryah: cool, let me know how I can be useful [21:44] n2liquid: and its status is always "notConnected" [21:44] skm has joined the channel [21:45] n2liquid: I checked mongod is running [21:45] n2liquid: no idea where to go from here [21:45] blueadept: http://nodetuts.com/tutorials/21-nodejs-mongodb-and-mongoose-11.html#video [21:45] gtramont1na: Hey y'all, is there any command like "npm bundle update"? Which would install/update/remove libs based on my package.json? [21:46] indutny: carsonm: and final thing, I'd implemented https fallback for it [21:46] blueadept: n2liquid: medro teixeria does a great tut on mongoose [21:46] blueadept: check it out [21:46] MattAdams has left the channel [21:46] indutny: carsonm: so you can now open that page in firefox [21:46] gtramont1na: Couldn't find anything in its man. [21:46] blueadept: medro*pedro [21:46] n2liquid: blueadept: so, I was following one of his tutorials, but I'll check this one, then [21:46] MarkMenard has joined the channel [21:47] eventi has left the channel [21:47] blueadept: yeah this one is up to date with the latest mongoose install [21:47] blueadept: i think convore has a serious crash bug [21:48] blueadept: or at least with viewing members, there's serious lag [21:49] blueadept: when you try to view all members from a group, you can tell there's some serious churning on the backend [21:49] indutny: ryah: please take a look at this when you'll have a free minute: https://github.com/donnerjack13589/node/compare/master...openssl-npn [21:49] indutny: ryah: if you don't mind I can open pull request for that [21:50] seegeekrun has joined the channel [21:50] tmpvar has joined the channel [21:50] k1ttty has joined the channel [21:51] indutny: ryah: that will do nothing when used on machine w/ regular openssl 0.9.8, but if you have latest openssl lib you'll be able to serve NPN requests and even run multiple servers on same port (thanks, c.npnProtocol feature) [21:54] catshirt has joined the channel [21:54] catshirt has left the channel [21:55] catshirt has joined the channel [21:56] tfe__ has joined the channel [21:56] n2liquid: blueadept: oh, I just noticed my mongodb shell fails to connect to the server [21:56] carnivore: 14topic: Liboio design (http://convore.com/nodejs-7/liboio-design/) [21:56] piscisaureus`c: So what do you think of the cancel_cb idea? [21:56] n2liquid: it says [21:56] n2liquid: Error: couldn't connect to server localhost:27017} (anon):1139 [21:56] n2liquid: exception: connect failed [21:57] tfe_ has joined the channel [21:57] n2liquid: what does that mean? I'm pretty sure the server is running [21:57] nym has joined the channel [21:57] blueadept: n2liquid: that could be it :) [21:57] blueadept: hm [21:58] n2liquid: blueadept: /etc/init.d/mongodb start says it's already running [21:58] n2liquid: :o [21:58] n2liquid: should I try running it as my current user, maybe? [21:58] kriszyp has joined the channel [21:59] Tidwell: n2liquid: missed if you already answered this, but are you able to get to the web admin on (i think) 27018? [21:59] n2liquid: Tidwell: nope, but I'll try, thanks [21:59] Shrink has joined the channel [21:59] Shrink has joined the channel [21:59] blueadept: you're saying if you type 'mongo' in shell you can't connect? [21:59] n2liquid: Tidwell: so, I can't connect too [21:59] n2liquid: blueadept: yeap [22:00] n2liquid: no shell nor web admin access [22:00] blueadept: what version are you running? [22:00] n2liquid: I'll check [22:00] n2liquid: 1.6.0 [22:00] steveklabnik has joined the channel [22:00] blueadept: i'd upgrade [22:00] pHcF has joined the channel [22:00] n2liquid: oh, yeah [22:00] n2liquid: it's 1.8.0 now, right? [22:00] blueadept: yeah [22:00] n2liquid: damned portage [22:00] blueadept: get the latest version, doa fresh install [22:01] n2liquid: alright, I'll do that [22:01] n2liquid: thx [22:03] sako: hey guys anyone using express+handlebars? [22:03] dgathright has joined the channel [22:04] baudehlo1: ryah: how come there's no fs.seek() ? [22:04] sako: or is everyone pretty much using jade? [22:04] sako: or ejs [22:04] blueadept: using jade here [22:04] Tidwell: sako: jqtpl :\ [22:04] blueadept: haven't built anything too complex yet, so i may switch [22:05] blueadept: sort of getting used to it [22:05] Schuyler has joined the channel [22:05] _sri has joined the channel [22:05] sako: ugh [22:05] sako: ya i just hate the jade way.. reminds me of haml [22:06] sako: i'd much rather use handlebars.. seems like its buggy though :( [22:06] tjholowaychuk: sako: the only people I knew that went with handlebars, switched to jade [22:06] tfe__ has joined the channel [22:06] tjholowaychuk: so cant help you there [22:06] corey_ has joined the channel [22:07] sako: haha seems like im gonna do the same [22:07] corey_: hi, i am looking for assistance in configuring cygwin for use with node.js [22:07] tjholowaychuk: dont if you hate the haml-ish syntax, but there are other alternatives [22:08] tjholowaychuk: sako: you can always set the delimiter options of ejs to make it look more like mustache [22:08] tjholowaychuk: or use mustache [22:08] tjholowaychuk: instead of handlebars [22:08] Tidwell: sako: yea, after looking at jade, and doing loads of custom html/css/js, it just seems overly complicated - html is easy enough that I want it to have as much control as possible over the markup [22:08] tfe_ has joined the channel [22:08] corey_: has anyone in here been able to properly configure cygwin for node.js? [22:09] Tidwell: corey_: yea - whatcha running into? [22:09] tjholowaychuk: Tidwell: indenting is complicated? [22:09] tjholowaychuk: I find looking at a soup of markup and braces spewed all over complicated [22:10] tjholowaychuk: tough to manage [22:10] kmiyashiro: plain html is just as easy to read as haml [22:10] corey_: tidwell: i am trying to set up for using a kinect and i am at the step where i have to type ./configure [22:10] kmiyashiro: with syntax highlighting that is [22:10] tjholowaychuk: not when you have a bunch of {} {}{}{}{}{}{}} in there [22:10] kmiyashiro: yeah, not mustache [22:10] corey_: in order to get node.js to run [22:10] tjholowaychuk: nor <% %> [22:10] Tidwell: tjholowaychuk: To each their own - I like that I can just take my templates and, with minimal work, move them over to another language etc, without having to hunt down a parser [22:11] tjholowaychuk: Tidwell: totally, that's a valid reason [22:11] tjholowaychuk: I just find it verrrrry difficult to manage. if our 100+ templates were ejs or somehing I would kill myself [22:11] zcopley has joined the channel [22:12] Tidwell: corey_: have you taken a look at this tutorial: https://github.com/joyent/node/wiki/Building-node.js-on-Cygwin-%28Windows%29 [22:12] tjholowaychuk: i think the other one that is kinda missing in node is liquid [22:12] tjholowaychuk: thats pretty much the only thing I would use a side from a haml-ish thing [22:12] hackband: anybody been using weld? [22:13] hackband: seemed pretty clever, and thats pure html [22:13] hackband: plus a little js on the side [22:13] corey_: tidwell: yes, in fact that is where I am following the steps. I'm at the third to last command of step 3 [22:13] mheadd has joined the channel [22:13] sako: Tidwell: what are you using as the template engine? [22:13] Nexxy: ACTION listens closely. [22:14] timmywil_ has joined the channel [22:14] jimt has joined the channel [22:14] Tidwell: sako: jqtpl, because I am using node to serve pre-rendered and sometimes using the same templates client-side rendered w/ js [22:15] javaanse_jongens has joined the channel [22:15] sako: i see [22:16] Tidwell: corey_: is it throwing some kind of error when you ./configure? [22:16] sako: eh i guess im gonna stick to jade for now.. seems like its the best supported engine with express.. at least till i learn it [22:16] k0Nn3c739 has joined the channel [22:17] tjholowaychuk: sako: they are all supported the same [22:17] tjholowaychuk: sako: other people just need to write more engines, if they want others [22:17] tjholowaychuk: express can potentially support anything [22:17] sako: handlebars apparently has show stopping bugs? [22:17] hackband has joined the channel [22:17] tjholowaychuk: we already have hbs, ejs, jade, mustache, jqtpl [22:17] tjholowaychuk: probably [22:17] tjholowaychuk: i've heard of issues [22:17] sako: also i dont like that there is a wrapper right now.. [22:17] tjholowaychuk: but that doens't mean express does not support it [22:17] sako: yea [22:18] corey_: Tidwell: yes, looks like some kind of python error says unable to remap (path) I'm trying to find the config.log that it asks me to look up but i can't seem to locate it, even though I followed the path it says the .log is in [22:18] Epeli: In Mongoosejs, can say in schema that a certain field in mandatory? [22:18] tschundeee has joined the channel [22:18] sako: also one more thing.. with express.. how do you deploy something i understand that you set the listener [22:19] sako: do i need anything else to deploy? [22:19] Nexxy: missile launchers. [22:19] Nexxy: always a must. [22:19] sako: hah [22:19] Nexxy: pew pew ;3 [22:19] jimt_ has joined the channel [22:20] Tidwell: corey_: Down below in that same github tut there is some advice about "Unable to Remap to Same Address as Parent" - sounds similar? [22:20] Nexxy: I need recommendations on templates too ;< [22:20] sako: Nexxy: you dont like jade? [22:20] patcito_ has joined the channel [22:20] tjholowaychuk: sako: mannny many different deployment strategies, however typically you just add NODE_ENV=production [22:20] baudehlo1: shouldn't pushes to github be instantaneous? I've just pushed two new files and they haven't showed up... [22:20] tjholowaychuk: then the rest is up to you [22:20] tjholowaychuk: whatever you want to do [22:21] sako: cool [22:21] Nexxy: sako, I am a baby @ node atm... just learning what's out there ;3 [22:21] sako: tjholowaychuk: are there any resources online that you know of? [22:21] sako: i been following along with your screencasts [22:21] tjholowaychuk: sako: I know there are lots of blog posts etc, but I dont have any links for you [22:21] tjholowaychuk: can't remember where I saw them [22:21] tjholowaychuk: I'll try and put some suggestions in the guide some time [22:22] sako: tjholowaychuk: eh no worries im sure i can find it.. just wondering if you knew off the top of your head [22:22] sako: thanks alot for the great work on expressjs :) [22:22] Leonidas: hmm, I am also looking for templates [22:22] Nexxy: it's a templatey kinda day ! [22:22] xandrews has joined the channel [22:22] tjholowaychuk: baha [22:23] corey_: Tidwell: Sigh... I overlooked that. Thank you very much I am following those steps now [22:23] tjholowaychuk: Nexxy / Leonidas: http://expressjs.com/guide.html#template-engines [22:23] Leonidas: (coming from django, btw, so I tend to miss template inheritance) [22:23] tjholowaychuk: there are more that can be added [22:23] sako: tjholowaychuk: just curious what language/framework did you come from.. [22:23] jpick has joined the channel [22:23] Tidwell: corey_: no prob man, cygwin is still a bitch... [22:23] mattikus has joined the channel [22:23] sako: Leonidas: im on the same boat :P [22:23] tjholowaychuk: sako: I was a ruby guy for quite a while [22:23] Leonidas: tjholowaychuk: yeah, I saw them. Also saw a dust-plugin on the npm registry [22:23] sako: Leonidas: that's why i was trying to make handlebars work with express :) [22:23] Nexxy: ooh tjholowaychuk ty ;3 [22:24] corey_: Tidwell: it tells me to run dash, or ash. Both exist, does it matter which one I use? [22:24] tjholowaychuk: Leonidas: yeah, I have plans to support similar, just tough to find features that will work with all engines as-is [22:24] tjholowaychuk: since I dont want to lock express to a specific template engine like django does [22:24] tjholowaychuk: but I do want some of those features [22:24] tjholowaychuk: blocks mostly [22:24] Leonidas: tjholowaychuk: yeah, definitely a sensible thing. [22:24] astropirate has joined the channel [22:25] tjholowaychuk: other than that the django one looks a lottttttt like liquid [22:25] carnivore: 14topic: Liboio design (http://convore.com/nodejs-7/liboio-design/) [22:25] ryah`c: okay, i like it [22:25] Tidwell: corey_: I don't believe so, but if one doesn't work, I'd just restart the steps and try the other :P lol [22:25] Leonidas: But I saw quite a bit interesting techniques in the template systems that are linked in the node wiki page [22:25] ryah`c: another 64 bits per req, but - okay [22:25] sako: templating is one of the hardest parts of a damn framework :P [22:26] corey_: Tidwell: sounds good. just wanted to make sure i didnt mess up any settings or anything [22:26] tjholowaychuk: Leonidas: yeah that's the problem, soooooo many options [22:26] tjholowaychuk: I'd hate to restrict the choice [22:26] tjholowaychuk: sako: nah it's just a very opinionated portion [22:26] piscisaureus`c: it's debatable :-) [22:26] sako: tjholowaychuk: +1 for liquid lol [22:26] piscisaureus`c: I think cancelling reads and writes is actually a bad idea. [22:26] tjholowaychuk: sako: I've thought about writing liquid for node [22:26] sako: tjholowaychuk: can i help with that? i would love to get the ball rolling [22:26] Leonidas: dust is a bit like django templates on speed, and jade looks like haml (and I have no clue how to write code for haml) and there are nice selector based engines that look tedious and there is weld. [22:27] piscisaureus`c: It is hard to get conceptually right and people are not going to cancel a read/write unless they want to close the file or socket. Then they should just do that. [22:27] Tyrkul has joined the channel [22:27] Tidwell: tjholowaychuk: I love the fact that with express I can rip out and use whatever engine I want, especially because I often have some *weird* choices in templating :P [22:27] sako: tjholowaychuk: i will start looking through express code get a feel for what i would need to do.. any suggestions on where to look? [22:27] Leonidas: to be honest, I think Jinja2 is way better than django… and possibly liquid, no idea about that [22:28] tjholowaychuk: sako: no need, all you need to support express is to export .compile(str) => Function [22:28] tjholowaychuk: sako: and that function is called with an object containing the locals [22:28] Leonidas: tjholowaychuk: what influenced the choice of the templates that Express supports out of the box? [22:28] piscisaureus`c: If that 64 bits per req is a problem, then we could reintroduce the `err` parameter (maybe just call it `cancelled`?) that gets passed to eio_whatever_cb [22:28] tjholowaychuk: Leonidas: technically nothing works out of the box, people just support express through their module [22:29] sako: interesting [22:29] chrisdickinson: tjholowaychuk: any plans to make the templating engine optionally accept a callback in the future? [22:29] Leonidas: tjholowaychuk: ah, I see. Good that there is a semi-standard [22:29] muk_mb has joined the channel [22:29] tjholowaychuk: chrisdickinson: yup there is an issue for that [22:29] chrisdickinson: awesome [22:30] ryah`c: yeah - maybe just a flags [22:30] ryah`c: like in libev - revents [22:30] chrisdickinson: I've been hoping to make my template language express-compatible, but since it's callback-based it's been... difficult :\ [22:30] carnivore has joined the channel [22:30] ryah: sorry - it's annoying me [22:30] Leonidas: me too, thanks [22:31] lorhko has left the channel [22:31] mjr_: ryah: did you see my message about https connection leaks? [22:31] ryah: mjr_: yes [22:33] Leonidas: uhm, I don't really understand how to do templating with jade (or haml, fwiw). It looks like an alternative syntax for html, but how do I get my content in? [22:33] Epeli: what do you mean? [22:33] davidc_ has joined the channel [22:33] tjholowaychuk: Leonidas: attrs: input(type='text', value=someJsExpression) [22:33] tjholowaychuk: Leonidas: tags: p my paragraph [22:34] tjholowaychuk: Leonidas: p= myParagraphFromJSLand [22:34] Leonidas: Epeli: for example, if I have a list of stuff, [1,2,3] and want the template to make it
  • 1
  • ...
[22:34] Leonidas: tjholowaychuk: oh, I see. [22:34] tjholowaychuk: Leonidas: i'll show you one sec [22:34] Leonidas: tjholowaychuk: thanks a lot :) [22:34] CIA-72: node: 03Ryan Dahl 07v0.4 * r9ccf0e5 10/ (lib/http.js lib/net.js test/disabled/GH-670.js): Don't error on ENOTCONN from shutdown() - http://bit.ly/gFom3q [22:35] tjholowaychuk: Leonidas: https://gist.github.com/dccb5a6e3da38ac902bb [22:35] tjholowaychuk: stuff like that [22:35] CiRlE has joined the channel [22:35] Leonidas: tjholowaychuk: thanks! [22:35] Tyrkul has left the channel [22:36] Kinbote has joined the channel [22:37] gh0stz has joined the channel [22:37] gh0stz has joined the channel [22:37] Leonidas: but I think I'll go with something different. certainly a nice idea and others seem to like it. [22:37] Booths has joined the channel [22:38] tjholowaychuk: Leonidas: yeah it's a love/hate thing lol but I certainly think at times it is valid to just use regular html with some tags [22:38] tjholowaychuk: less of a learning curve for sure, and better for designers [22:38] xiackok has joined the channel [22:38] dotcomstu has joined the channel [22:39] ryah: perezd: hey [22:39] perezd: heya! [22:39] Leonidas: tjholowaychuk: yeah, definitely. My only no-go-criterion is "code in the templates" [22:39] ryah: perezd: please test on https://github.com/joyent/node/commit/9ccf0e527f066ca69e610beb04d9507ee5bf187c [22:39] 20QAAK1YC has joined the channel [22:39] 36DABHXV5 has joined the channel [22:40] perezd: ryah: okay, does this address ssl thing? [22:41] bnoguchi: Epeli: Yes, mongoose can specify required fields. Just e.g., in your Schema def - {... fieldName: {type: String, required: true } ...} [22:41] Epeli: bnoguchi: oh, thanks. Where is that documented? [22:42] bingomanatee has joined the channel [22:42] bnoguchi: Epeli: grep 'required' in the tests [22:42] Epeli: :D [22:42] bnoguchi: Epeli: Or it may also be on the documenation at mongoosejs.com [22:43] Leonidas: anyone here already used normal-templates, mu and/or nun? they all seem very similar [22:43] Epeli: did not find it there and the api-page is a mess [22:43] ryah: perezd: not sure - i can't reproduce your issue here [22:43] piscisaureus: ryah: ah you finally banned carnivore? [22:43] bnoguchi: Epeli: Yeah, we need to re-write the documentation. That's on the horizon. [22:43] ryah: piscisaureus: yeah, sorry [22:43] perezd: ryah: okay, but its related to that then alrighty [22:44] Epeli: bnoguchi: cool [22:44] ryah: perezd: yes, you were also hitting that error [22:44] piscisaureus: ryah: np, was going to stop it anyway [22:44] sh1mmer has joined the channel [22:44] tjholowaychuk has joined the channel [22:45] corey_ has joined the channel [22:45] saikat has joined the channel [22:46] flippyhead has joined the channel [22:46] ceej has joined the channel [22:46] corey_: Tidwell: I am trying to change the ect/resolv.conf file but i do not know whats happening with the vim command. and if the resolv.conf existed before, it's no longer there and i think it's because i did something wrong with vim [22:46] sspencercon has joined the channel [22:47] zcopley has joined the channel [22:47] sspencercon: is EventEmitter synchronous when I call emit() ? [22:48] mikeal has joined the channel [22:48] isaacs: sspencercon: yes [22:48] isaacs: sspencercon: only IO is async [22:48] sspencercon: thanks (and hi from former yahoo colleague) [22:48] isaacs: sspencercon: if you *want* to run something after the current tick is finished, you can use process.nextTick(function () { ... }) [22:48] isaacs: :) [22:49] isaacs: you steve spencer? [22:49] sspencercon: yes [22:49] isaacs: welcome to the party, man :) [22:49] cloudhead: hey isaacs, is node going to have `/usr/local/lib/node_modules` in the path soon, or how does that work? cause non of the modules are found by default with npm 1.0, unless I add that path. [22:49] heythisisdave has joined the channel [22:49] cloudhead: none* [22:49] sspencercon: no longer at yahoo ... working on big node.js installation, servicing billions of request per day :) [22:49] isaacs: cloudhead: no. if you want to require() stuff then install it locally [22:50] isaacs: sspencercon: right on. congrats on graduating from yu [22:50] isaacs: Y.U. [22:50] isaacs: cloudhead: or add that path to the NODE_PATH environ [22:50] isaacs: but really local installs. that's where it's at. [22:50] cloudhead: isaacs: is there a way to do that when people install from npm though? [22:51] cloudhead: how does that make sense? [22:51] isaacs: cloudhead: if you want to require() it, then install it locally. [22:51] isaacs: cloudhead: if you want to $run it, then install it globally [22:51] cloudhead: so I have to bundle all dependencies in my git repo? [22:51] cloudhead: for every package? [22:51] isaacs: cloudhead: no, you can git ignore them if you want. [22:51] isaacs: cloudhead: and npm will be smart about only including the ones you tell it to when you publish [22:52] cloudhead: hmm [22:52] gtramont1na has joined the channel [22:52] isaacs: "bundledDependencies": ["these", "deps", "will", "be", "bundled"] [22:52] cloudhead: can I link instead of bundling? [22:52] isaacs: cloudhead: sure, `npm help link` will tell you what to do :) [22:52] cloudhead: ok [22:53] sveisvei has joined the channel [22:54] cloudhead: isaacs: so bundledDependencies will auto-bundle when I publish? [22:54] cloudhead: or do I still do that manually [22:55] cloudhead: and is "dependencies" still useful? [22:55] zkirill_ has joined the channel [22:55] isaacs: cloudhead: you should install all your deps in your project, and list them in "dependencies", yes [22:55] isaacs: cloudhead: link/install whatever [22:55] dachary has joined the channel [22:55] isaacs: cloudhead: "bundledDependencies" is a list of dependency names that should be packaged with your lib, rather than fetched separately. [22:56] isaacs: note: even if they're not installed globally, you'll still be able to access the "bin" files from your deps in npm scripts. [22:56] isaacs: so, { "scripts": { "test" : "vows foo.js", "preinstall" : "cake *.coffee" } } <-- that will still work [22:56] isaacs: as long as coffee-script and vows are listed as dependencies. [22:56] cloudhead: gotcha [22:56] isaacs: you should not have to do crazy mumbo jumbo in the scripts. if you find yourself doing any complex bashery, lmk [22:57] dachary: Hi, what package would you recommend I use to implement long polling for a webservice (carrying JSON) ? [22:57] sspencercon has left the channel [22:57] isaacs: because either your'e doing it wrong, or i am [22:57] cloudhead: but I still don't quite get bundledDeps, does it actually do anything, or does it just specify? [22:57] cloudhead: hehe [22:57] isaacs: cloudhead: it tells npm to not pass over that folder in the publish process, when it creates the tarball [22:57] isaacs: otherwise it'll see ./node_modules/foo and go "Oh, well, foo's a dependency, that'll get installed later, don't need that" [22:58] cloudhead: so the dependencies are fetched later? [22:59] tjholowaychuk: cloudhead: yes, just like they are now [22:59] tjholowaychuk: npm still resolves them for you [22:59] isaacs: yes ^ [22:59] isaacs: tjholowaychuk++ [22:59] v8bot: isaacs has given a beer to tjholowaychuk. tjholowaychuk now has 22 beers. [22:59] tjholowaychuk: just in a slick hierarchy of node_modules dirs [22:59] cloudhead: isaacs: so what is the purpose of bundling, if it fetches the deps anyway? [23:00] cloudhead: I'm missing something [23:01] flippyhead has joined the channel [23:01] KRTac has joined the channel [23:02] KRTac: mornin' [23:02] isaacs: cloudhead: that's why the bundle command went away in 1.0 :) [23:02] isaacs: cloudhead: the purpose of installing deps locally is to use them whiel you develop [23:02] cloudhead: isaacs: oh! [23:02] cloudhead: ok that makes more sense [23:03] cloudhead: so when you `npm install`, it'll still fetch all the deps and take care of that, depending on what's in "dependencies" [23:03] isaacs: yeah [23:03] isaacs: :) [23:03] isaacs: like how `npm bundle` without any args used to work [23:03] cloudhead: ok yea [23:03] isaacs: npm install foo; require("foo") [23:04] isaacs: npm install; require("all my deps") [23:04] ryah: perezd: is that fixing that issue? [23:04] ryah: perezd: i wish i had your laptop again [23:04] perezd: ryah: have not checked yet...sorry... [23:04] perezd: ryah: I can meet you somewhere :) [23:04] perezd: or [23:04] perezd: give u iChat control [23:04] ryah: hm, i don't have ichat [23:04] ryah: where are you? [23:04] perezd: Skype or something? [23:04] perezd: Palo Alto [23:05] cloudhead: isaacs: gotit, so bundledDependencies is only useful if you specifically want to bundle a dependency, vs let npm do it itself [23:05] ryah: perezd: i'll go home and get on my mac [23:05] isaacs: cloudhead: yes, exactly [23:05] cloudhead: \o/ [23:05] ryah: then we can ichat? [23:05] perezd: sure! [23:05] ryah: perezd: will you be around in an hour? [23:05] cloudhead: ok [23:05] isaacs: cloudhead: that feature is mostly there so that npm can install itslef. [23:05] cloudhead: isaacs++ [23:05] perezd: ryah: yes indeed! [23:05] v8bot: cloudhead has given a beer to isaacs. isaacs now has 15 beers. [23:05] ryah: okay [23:05] cloudhead: ok [23:05] isaacs: cloudhead: since it can't rely on being able to fetch its dependencies at bootstrap time [23:05] cloudhead: yea [23:06] isaacs: cloudhead: it's also useful if, say, you install connect, make some patches, and wnat to use your changed version [23:06] kmwallio has joined the channel [23:06] cloudhead: yea [23:06] [[zzz]] has joined the channel [23:07] jonpacker has joined the channel [23:08] Gelegrodan: its not possible for multiple clients to share one child process in some way? if I for example wanna do like this but I dont want one 'vnstat -l' for each client connecting : https://gist.github.com/914287 [23:10] piscisaureus has joined the channel [23:12] jonpacker has joined the channel [23:12] copongcopong has joined the channel [23:12] ji0n has joined the channel [23:14] bingomanatee has joined the channel [23:14] bingomanatee: ACTION is now the co-organizer of the SF JS group. [23:14] cloudhead: isaacs: yea for sure [23:15] dnolen has joined the channel [23:15] dahankzter has joined the channel [23:18] xandrews has joined the channel [23:18] meandi has joined the channel [23:20] CIA-72: node: 03Ryan Dahl 07v0.4 * r0b1920b 10/ (19 files in 5 dirs): Upgrade v8 to 3.1.8.10 - http://bit.ly/gaisEb [23:20] CIA-72: node: 03Ryan Dahl 07v0.4 * r6b5a703 10/ (19 files in 5 dirs): Merge branch 'v8-3.1' into v0.4 - http://bit.ly/ekeiMe [23:21] Viki has joined the channel [23:21] sako: can i contribute to node.js? [23:22] sako: is there a bug tracker somewhere? i know where the git repo is :) [23:22] perezd: sako: yes, its on github as well [23:22] perezd: sako check this out: [23:22] sako: cool thnanks [23:22] perezd: http://blog.derekperez.com/post/4489069081/debugging-errors-within-nodejs [23:22] perezd: this is a helpful walkthrough of how to get your hands dirty on committing/debugging [23:26] KRTac has left the channel [23:26] tim_smart has joined the channel [23:27] Nevtus has joined the channel [23:28] forzan has joined the channel [23:28] jonpacker has joined the channel [23:29] sako: thanks! [23:31] meandi has joined the channel [23:33] b0t has joined the channel [23:34] meandi has joined the channel [23:34] Allen_ has joined the channel [23:34] Remoun has joined the channel [23:35] Allen_: hello [23:35] b0t has joined the channel [23:37] Allen_: How does this work, is anybody here? [23:38] ryah: module.exports = <-- hate [23:38] SubStack: ryah: then make `exports =` work :p [23:38] dyer has joined the channel [23:39] ryah: nah [23:39] ryah: how about we just have crappy exports [23:39] brianloveswords has joined the channel [23:40] tokumine has joined the channel [23:41] SubStack: I like how getting back a function from require() makes the entrypoint really obvious [23:41] bnoguchi has left the channel [23:41] cloudhead: ACTION whiches vm.runInNewContext was easier to use [23:42] cloudhead: SubStack: yea, that's pretty useful [23:42] james_gary has joined the channel [23:42] SubStack: require('vm') should return a function :p [23:42] cloudhead: ACTION spelt wishes wrong [23:42] cloudhead: hehe [23:42] SubStack: require('vm')('var x = 10', context) [23:42] tjholowaychuk: SubStack: yeah it's pretty redundant to do stuff like require('stream').Stream [23:43] tjholowaychuk: SubStack: although conceptually the module.exports thing we all use is kinda dirty [23:43] gtramont1na has joined the channel [23:43] ChrisPartridge has joined the channel [23:43] Allen_ has joined the channel [23:44] cloudhead: `return foo` should == `module.exports = foo` [23:44] SubStack: node could just check the context it passes in for `exports` [23:44] SubStack: then `exports = ` would work [23:44] Viki: Hi, I'm new to nodejs and was checking out this example http://nodejs.org/docs/v0.4.5/api/child_processes.html#child_process.spawn [23:45] Viki: in the 'ls -lh /usr' example [23:45] Viki: when does the actual initiation of the command 'ls' start? [23:45] james_gary has joined the channel [23:45] Allen_: I'm having a problem installing node using Cygwin. I've entered: git clone git://github.com/joyent/node.git which returns "error: cannot run index-pack: No such file or directory" [23:45] mheadd has joined the channel [23:46] SvenDowideit_ has joined the channel [23:48] norviller has joined the channel [23:48] Phyllio has joined the channel [23:48] tfe_ has joined the channel [23:49] insin: curl -O http://nodejs.org/dist/node-v0.4.5.tar.gz :) [23:51] Allen_: insin, was that in response to me or someone else? [23:52] timcosgrove has joined the channel [23:52] MikhX has joined the channel [23:52] gtramont1na: hey y'all. How does npm devDependencies work? [23:52] timcosgrove has left the channel [23:53] piscisaureus: ryah: is it okay to nick some source code from freebsd and add it to node (its 2-clause-bsd licensed) [23:53] Allen_: Is anyone here right now who could help me out? [23:54] gtramont1na: Allen_: on what? [23:54] Zurich has joined the channel [23:54] Allen_: Hey thanks. :-) I'm having a problem installing node using Cygwin. I've entered: git clone git://github.com/joyent/node.git which returns "error: cannot run index-pack: No such file or directory" [23:54] tim_smart: Allen_: You need git help, not node help [23:55] ryah: piscisaureus: we have to put it in a separate file [23:55] piscisaureus: ok that'd be ok [23:55] ryah: yes [23:55] gilesgoatboy has joined the channel [23:55] piscisaureus: it's this -> http://svn.freebsd.org/base/head/sys/sys/tree.h [23:55] astropirate has joined the channel [23:55] ryah: see https://github.com/joyent/node/blob/master/src/platform_darwin_proctitle.cc [23:55] Zurich: hey, first time trying Node, getting the error 'throw e; // process.nextTick error, or 'error' event on first tick' when I try to create a file(?) with 'node app.js' - the tutorial is this one http://net.tutsplus.com/tutorials/javascript-ajax/this-time-youll-learn-node-js/ [23:55] tim_smart: Allen_: Try poking around #git [23:55] piscisaureus: ah :-) [23:56] b0t has joined the channel [23:56] graysky has joined the channel [23:56] Remoun has joined the channel [23:56] ryah: piscisaureus: it'd be nice to have tests if they have them [23:56] bingomanatee has joined the channel [23:56] Allen_: Ok, I'm here cause that's where teh Building node.js on Cygwin page led me to for help. I'll look around on the git site I guess. [23:57] tim_smart: Zurich: What is the contents of app.js? [23:58] piscisaureus: ryah: I want to keep it untouched. If I can find tests I'll add them. But this code is from 2005 or so and it's in the freebsd kernel so I assume there are no bugs [23:58] piscisaureus: and if there are bugs, the freebsd tests don't detect 'em [23:58] Zurich: @tim_smart nothing. I've just made a directory and typed 'node app.js' at the command prompt [23:58] tjholowaychuk: fuck instanceof is a useless peice of shit [23:59] ryah: insin: k [23:59] tim_smart: Zurich: node.js doesn't create files, it is just a runtime [23:59] ryah: er [23:59] ryah: piscisaureus: ok [23:59] bingomanatee: tjholowaychuk: yeah; if you want to do reflection you are better off with manual property hints. [23:59] tim_smart: Zurich: Think of node.js as Ruby, rather than Rails. [23:59] Zurich: Oh god my bad, the video I was watching was so small I didn't see he wrong 'mate app.js' hahah [23:59] CIA-72: node: 03Ben Weaver 07master * rd63a551 10/ lib/repl.js : [23:59] CIA-72: node: Update how REPLServer uses contexts [23:59] CIA-72: node: * Always use `this.context` or `self.context`. [23:59] CIA-72: node: * Move `resetContext` to `REPLServer.createContext`. [23:59] CIA-72: node: * Add `REPLServer.resetContext`, memoize `context` here. [23:59] CIA-72: node: * Memoize `exports.repl` in `start`. [23:59] CIA-72: node: Closes GH-851. - http://bit.ly/dJb6Dl [23:59] Zurich: assumed it said Node :)