[00:00] chjj: pure unadulterated evil [00:00] Postmodernist: I LOLed at the telly when Hitler gave speeches mocking FDR's silly letters. [00:01] Postmodernist: Flash is so evil only George Bush could have commissioned its construction. [00:01] chjj: george bush isnt evil, hes just dumb, regardless of which one youre talking about* [00:02] ryanfitz has joined the channel [00:03] azend: hey has anyone tested how many connections node can handle concurrently? [00:03] azend: and therefore how many users [00:04] AvianFlu has joined the channel [00:04] Jalava: azend: depends a lot on what node process has to do [00:04] azend: alright [00:04] Jalava: it can range anywhere between 10 requests / s to 300 req / s [00:05] killfill: hey guys.. when using nStore and saving a document with key K, and after, save another document with the same key K, i see two registry on the db file [00:05] killfill: is this normall?.. [00:05] azend: just trying to see how scaleable it is [00:05] azend: if I use it for some higher traffic projects [00:05] Jalava: well, scalability comes from adding more processes [00:05] killfill: after some duplicate data, i get targetStart out of bounds [00:06] Jalava: we use node for processing around 700 req / s for targeted ad distribution, not sure if that counts as higher traffic [00:06] chjj: killfill: its append-only [00:06] darshanshankar: has anyone been using cloudfoundry? [00:07] chjj: killfill: could always try my in-process db ;) https://github.com/chjj/node-tiny [00:07] killfill: chjj, i guess that means users should vacuum it regulall [00:07] chjj: its like nstore, but easier on memory with regards to querying [00:08] chjj: yeah, compacting might get necessary at some point [00:08] chjj: append-only is usually the way to go with dbs though, its safer, more resilient to crashes [00:09] quackslike: lol someone put my mobile number on a car sales web site.. friggin bogans ringing me all the time. [00:09] killfill: i guess im doing something wrong then.. its 'crashing' with not a too big db file.. [00:10] chjj: whats the error message? [00:10] chjj: does it crash on load? [00:15] hybsch has left the channel [00:18] bingomanatee has joined the channel [00:18] jacter has joined the channel [00:19] Torkn2U has joined the channel [00:19] gtramont1na has joined the channel [00:21] killfill: why do i get this? http://pastebin.ca/2060771 [00:22] mdaisuke has joined the channel [00:23] abraham has joined the channel [00:24] eyesUnclouded has joined the channel [00:25] [[zz]] has joined the channel [00:26] mscdex: killfill: maybe it has to do with your loop. have you tried saving without it? [00:28] dgathright has joined the channel [00:29] themiddleman has joined the channel [00:30] tahu has joined the channel [00:31] killfill: mscdex, if i copy/paste the db.save 13 times, it happends too [00:31] mscdex: right, but if you just do it once, does it happen? [00:32] killfill: oh its works.. for 1 to 12 times.. :P [00:32] mscdex: why are you saving the same thing 13 times in a row anyway? [00:33] Postmodernist: SubStack: Hosted xen is looking really attractive right now as a developer [00:33] killfill: well im trying to see what happend when you save a document with a key n times [00:34] baudehlo has joined the channel [00:34] Postmodernist: Can nStore save to disc? [00:35] hassox has joined the channel [00:35] killfill: Postmodernist: its what it does.. :P [00:35] arturadib has joined the channel [00:35] Postmodernist: cool [00:35] Yuffster: This is a ridiculously edge-case scenario, but is there a way to get console.log to not replace %s with undefined? [00:35] halfhalo: http://www.amazon.com/HP-Veer-webOS-Phone-Black/dp/B00505SPYS/ref=sr_1_1?s=wireless&ie=UTF8&qid=1305506105&sr=1-1 << 49 dollar phone that runs node [00:35] Postmodernist: What's the easiest way to save a really big array to disc? [00:35] Yuffster: \%s works in Chome but not in node. [00:36] Postmodernist: \\%s maybe [00:36] Yuffster: Also doesn't work. [00:36] Yuffster: (Messing in the console now.) [00:36] Postmodernist: =( [00:36] mscdex: killfill: try: https://gist.github.com/26091491f9caaf7d4b03 [00:36] Yuffster: It's not a huge deal, it's just that I made my test framework use console.log and these particular tests actually do replacement on %s, which means the test descriptions are messed up. [00:37] Yuffster: It seems like it'd be silly to change the framework to use sys.puts just because of this one edge case. [00:37] mscdex: Yuffster: that's because console.log applies formatting like printf [00:37] Yuffster: Yeah, I know *why* it does it. :) [00:37] mscdex: so then don't use console.log [00:37] Yuffster: In Chrome it doesn't do it if I escape the \%s, though. [00:37] mscdex: or monkey patch it locally [00:38] Yuffster: Yeah, I can do that, I was just wondering if there was a way to escape it. [00:38] mscdex: Chrome shouldn't do the printf formatting [00:38] mscdex: afaik [00:38] Yuffster: It does. [00:38] jakehow has joined the channel [00:38] Postmodernist: I hate maintaining local patches of stuff [00:38] Yuffster: Yeah, monkeypatching is like a nuclear missile for this. :D [00:38] aconbere has joined the channel [00:38] killfill: mscdex, happends the same.. [00:38] mscdex: it doesn't matter if you try escaping it, because it looks for % [00:39] Yuffster: (FYI, console.log("Put your hands up for %s.", "Detroit") in Chrome.) [00:39] mscdex: Chrome uses some other formatting implementation [00:39] mscdex: killfill: i dunno then, might have to bug creationix about it [00:40] Yuffster: Chrome is actually interesting... [00:40] mercer_ has joined the channel [00:40] Yuffster: console.log("Put your hands up for \%s.", "Detroit") [00:40] Yuffster: vs [00:40] Yuffster: console.log("Put your hands up for \%s.") [00:40] killfill: ok.. but i guess you did run the gist you pasted?.. does it work for you? [00:40] mscdex: node's format() doesn't check for escaped %'s [00:40] k1ttty has joined the channel [00:40] jfmercer has joined the channel [00:40] mscdex: killfill: i don't use nstore, sorry [00:40] arturadib has joined the channel [00:40] Yuffster: mscdex: Yes, this is evident by the fact that it's not checking. :) [00:41] Yuffster: I was just talking to you guys about this interesting JS thing I noticed because I don't have anyone else who would care. [00:41] mscdex: heh [00:42] Yuffster: Though escaping would be a nice feature to add in, I think. But there are probably a whole lot of cooler features. [00:42] mscdex: well, patches are welcome [00:43] arturadib: any way to gain precedence over npm's installed packages? npm seems to have precedence over all require.paths()... [00:43] kriszyp has joined the channel [00:43] Druide_ has joined the channel [00:44] ryah: mscdex: ping [00:44] mscdex: ryah: pong [00:44] arturadib: just out of curiosity - where in the code base is the implementation of require() ? [00:44] ryah: mscdex: you need to move the "Fair Oaks Labs" code into a separate file [00:45] mscdex: ok, i wasn't sure about that. where at? [00:45] ryah: mscdex: and it must be noted as an exception in the LICENSE file [00:45] mscdex: will do [00:45] ryah: mscdex: hm - buffer-iee754.js [00:46] ryah: buffer_iee754.js [00:46] AvianFlu has joined the channel [00:46] ryah: bonus points for lazy require [00:47] chjj: hey, ryah: whats the word on the crypto module? :) [00:47] ryah: mscdex: also - it would be nice if you could give a ref to where you got the code in your commit msg [00:47] ryah: chjj: ? [00:47] ryah: mscdex: otherwise looks good [00:47] chjj: is it being removed? ive heard talk of it [00:47] ryah: chjj: not in the foreseeable future [00:47] chjj: ah [00:47] chjj: good to know then [00:47] Yuffster: Where do the lib/ files live on the system after installation with default configs? [00:48] ryah: Yuffster: they're compiled into the executable [00:48] Yuffster: Ah, darn. [00:48] Yuffster: So I have to recompile to see my new changes? [00:48] ryah: yes [00:48] ryah: welcome to my life - recompiling node 100 times a day [00:49] chjj: hehe [00:49] arturadib: ryah: I'm reading through the pseudo-algorithm at http://nodejs.org/docs/v0.4.7/api/all.html#all_Together... [00:49] arturadib: what's Y ? [00:49] Yuffster: Haha. :D [00:51] arturadib: (trying to figure that out to see if I can get precedence over npm's packages that now go into ~/node_modules) [00:51] bene has joined the channel [00:51] ryah: arturadib: i think the cwd [00:54] arturadib: ryah: makes sense, thanks. [00:55] arturadib: ryah: I guess other than cwd, there's no other directory with precedence over ~/node_modules then? [00:55] ryah: arturadib: $NODE_PATH [00:56] arturadib: ryah: tried that. ~/node_modules comes first [00:56] ryah: huh [00:56] ryah: *shrug* [00:56] quackquack has joined the channel [00:57] Druide_: ahah http://www.youtube.com/watch?v=KhCdlygmSJ4&feature=player_embedded [00:57] chjj: arturadib, i think you could put your modules in a node_modules dir higher up in the directory structure, but still ancestral to the requiring file [00:57] chjj: that should take precedence if my understanding is right [00:57] arturadib: ryah: npm now installs everything in ~/node_modules ... it makes it really tough to override an installed package with a dev version [00:57] arturadib: :( [00:58] chjj: so ~/dir/node_modules takes precedence over ~/node_modules for ~/dir/my/module.js [00:58] dgathright has joined the channel [00:59] ryah: arturadib: which version? [01:00] stepheneb has joined the channel [01:02] ryah2 has joined the channel [01:02] arturadib: ryah: I mean, a new version of an arbitrary package. say I have npm-installed several packages in ~/node_modules, but some of them are buggy. ideally, I'd have a separate directory, say ~/node_modules-dev, where I could install more recent versions of the buggy packages [01:03] astropirate has joined the channel [01:03] arturadib: ryah: when the packages are fixed on npm I could just update them and remove that dev directory altogether [01:05] ryah: arturadib: ask isaac when he's around [01:05] arturadib: ryah: but maybe there's a more elegant solution to this problem... how do you deal with this? [01:05] arturadib: ryah: ok [01:05] arturadib: :)_ [01:05] arturadib: ryah: thanks [01:05] ryah: well - node_modules is a special name [01:05] ryah: i suspect your project is inside ~ somewhere [01:05] k1ttty has joined the channel [01:05] arturadib: yep. [01:05] ryah: and require() is walking up the tree and finding node_modules [01:06] ryah: you can get dev modules in there by putting them closer to where your code is [01:06] ryah: e.g. ~/projects/node_modules [01:06] arturadib: ha [01:07] gavin_huang has joined the channel [01:08] darshanshankar has joined the channel [01:08] arturadib: that's probably going to do the trick, I just have to move all my Node projects to a single directory like that [01:09] ChrisPartridge: arturadib: you have a seperate node_modules for each project [01:09] ArtistConk has joined the channel [01:10] arturadib: ChrisPartridge: I think I get it now. it would be nice to have a global node_modules of my choice with precedence over ~/node_modules though... at first I thought that's what require.paths was there for, so I could choose my own precedence scheme [01:10] ryah: arturadib: we're explicitly trying to keep people from having global modules [01:11] ryah: we consider it dangerous practice [01:11] arturadib: ryah: got it. one set per project... [01:11] ChrisPartridge: so you can have version X of package Z on project A and version z of package Z on project B, if required [01:11] ChrisPartridge: s/version z/version Y/ [01:12] boogyman has joined the channel [01:12] ChrisPartridge: arturadib: Just use npm link [01:12] ChrisPartridge: if you have a module installed globally, and you want all projects to use it, just npm link [01:12] ChrisPartridge: any changes to the global package will be reflected in those linking it [01:13] arturadib: ChrisPartridge: thanks, I'm looking into that now [01:15] johnnywengluu: anyone here has used joyent? [01:15] arturadib: hehe, nice questions [01:15] mscdex: johnnywengluu: ryah does :) [01:15] arturadib: hehe, nice question [01:15] catshirt has joined the channel [01:15] johnnywengluu: i dont get what its for .. wanting to make node.js development simpler with CI (jenkins) [01:15] ditesh|cassini has joined the channel [01:15] MikhX has joined the channel [01:16] abraxas has joined the channel [01:16] mscdex: joyent is the company [01:16] johnnywengluu: git repo changes -> trigger build, deploy, test and reporting [01:17] johnnywengluu: but dont want to manage a jenkins server of my own .. is there a PaaS that takes care of everything if I just commit a change into github repo? [01:17] sherod has joined the channel [01:17] matyr has joined the channel [01:17] johnnywengluu: suggestions? [01:18] fairwinds has joined the channel [01:18] kawaz_air has joined the channel [01:20] kawaz_air has joined the channel [01:21] hassox has joined the channel [01:22] chalaschek has joined the channel [01:22] neoesque has joined the channel [01:23] aaronblohowiak: johnnywengluu: *shrug* [01:24] ExsysTech has joined the channel [01:26] mscdex: ryah: patch updated: https://gist.github.com/350707057b57a7348f7b [01:26] arturadib: ChrisPartridge: couldn't get npm link to work, but good old "ln -s ~/override-node_modules ~/project/node_modules" worked! :) [01:27] brettgou_ has joined the channel [01:29] arturadib: ChrisPartridge: or not... [01:30] roar has joined the channel [01:32] ChrisPartridge: arturadib: npm link will link from global [01:32] fr0stbyte_ has joined the channel [01:32] roar has joined the channel [01:32] roar: woo [01:33] draginx: mscdex: very cool :D (ur gist) [01:33] Emmanuel__ has joined the channel [01:34] mscdex: buffer parsing ftw! [01:35] AAA_awright: Oh of course... new require("x") means you want to create a new "require" object with an argument of "x" [01:35] pyrony has joined the channel [01:36] febits has joined the channel [01:37] postwait has joined the channel [01:37] draginx has joined the channel [01:37] balaa has joined the channel [01:38] wwww5 has joined the channel [01:40] zentoooo has joined the channel [01:40] roar has joined the channel [01:42] Mrfloyd has joined the channel [01:43] ditesh|cassini has joined the channel [01:45] avalanche123 has joined the channel [01:46] tonymilne: Yo, does anyone know if you can do something like "echo" or "print" in EJS (embedded JavaScript) templates? [01:48] kawaz_air has joined the channel [01:48] Hamms has joined the channel [01:49] vikstrous has joined the channel [01:50] aaronblohowiak: AAA_awright: use parens new (require("x")) [01:51] draginx: what does that do? O_o [01:51] perlmonkey2 has joined the channel [01:51] draginx: the parens [01:51] aaronblohowiak: draginx: it changes the precedence [01:51] aaronblohowiak: of the new operator [01:51] AAA_awright: aaronblohowiak: Yeah yeah [01:51] draginx: Hmm [01:52] draginx: gibberish to me :( [01:52] Mrfloyd_ has joined the channel [01:52] yozgrahame has joined the channel [01:52] AAA_awright: aaronblohowiak: issacs said something about that yesterday for some reason and it just occured to me why that's true [01:53] matyr_ has joined the channel [01:53] aaronblohowiak: AAA_awright: =) [01:56] pskept has joined the channel [01:57] matyr has joined the channel [01:58] johnnywengluu: im so fed up with joyent [01:58] draginx: whats wrong with joynet? [01:58] johnnywengluu: what the heck is a coupon code and why do i need to do curl -u USERNAME:PASSWORD https://api.no.de/v1/heart -X POST [01:58] aaronblohowiak: johnnywengluu: that isn't very customer friendly [01:59] aaronblohowiak: but it is also kind of neat [01:59] nivoc has joined the channel [02:00] bruce has joined the channel [02:01] prettyrobots has joined the channel [02:01] johnnywengluu: i get heroku within 1 min by just reading their doc [02:01] nivoc has joined the channel [02:01] tiglionabbit_ has joined the channel [02:01] johnnywengluu: a question i still ask is what does joyent do for you? [02:01] johnnywengluu: in a very practical way [02:01] tiglionabbit_: hi. I'm trying to build a deb of node on ubuntu but it fails. http://friendpaste.com/5xIbWGGEs5fw28NasR4N3X [02:01] prettyrobots has joined the channel [02:02] tiglionabbit_: is deps/libev supposed to exist? [02:02] johnnywengluu: aaronblohowiak: it says im added to the queue [02:02] johnnywengluu: it has said that 3 months now [02:03] johnnywengluu: i dont even get what i need that for [02:03] aaronblohowiak: johnnywengluu: then you should send them an email, they drain the queue a couple times a week [02:03] aaronblohowiak: i am not affiliated with joyent [02:03] johnnywengluu: what is the coupon code? [02:03] aaronblohowiak: johnnywengluu: they generate a unique one per user [02:04] brettgoulder has joined the channel [02:04] johnnywengluu: so what is it for? [02:04] aaronblohowiak: johnnywengluu: you use the coupon code to sign up for hosting [02:05] johnnywengluu: why? [02:05] fusianasan has joined the channel [02:05] johnnywengluu: why cant i just sign up with username and password [02:05] aaronblohowiak: johnnywengluu: because they want to control how many new accounts are created [02:06] aaronblohowiak: johnnywengluu: i agree that it isn't as good. [02:06] Corren has joined the channel [02:06] johnnywengluu: its just for now? [02:06] aaronblohowiak: BUT, on the plus side, they give you SSH access to the account [02:06] aaronblohowiak: johnnywengluu: of course [02:06] johnnywengluu: its still in beta? [02:06] aaronblohowiak: i think so [02:06] aaronblohowiak: you can't ssh into the other "cloud" providers [02:07] johnnywengluu: they are running solaris? [02:07] marknel has joined the channel [02:07] tiglionabbit_: lol wtf. That directory exists on the tag, "works" [02:07] hassox has joined the channel [02:07] mscdex: tiglionabbit_: https://launchpad.net/~jerome-etienne/+archive/neoip [02:08] tiglionabbit_: ? [02:08] JJMalina has joined the channel [02:08] tiglionabbit_: oh I only get version 0.2.6 because I'm on lucid [02:08] mscdex: not updating? [02:09] tiglionabbit_: huh? [02:09] mscdex: i compile from source anyway [02:09] tiglionabbit_: mscdex: I am trying to compile from source [02:09] mscdex: on ubuntu [02:09] tiglionabbit_: exactly [02:09] mscdex: what's the problem? [02:09] tiglionabbit_: I'm trying to make a deb [02:09] tiglionabbit_: but cmake expects this libev directory to exist, but on master it doesn't [02:09] tiglionabbit_: it exists on other tags though [02:09] mscdex: i've never used cmake to build [02:09] mscdex: i just use node-waf [02:10] mscdex: ./configure && make [02:10] tiglionabbit_: what's that? [02:10] mscdex: && make install [02:10] tiglionabbit_: well yeah but that doesn't make a deb [02:10] mscdex: right, as i said, i just install from source [02:10] mscdex: ;) [02:10] tiglionabbit_: well that's silly when there is an option to use packages [02:10] tiglionabbit_: anyway, lets see, how do I get the tags [02:10] mscdex: you're still compiling it anyway [02:10] mscdex: heh [02:11] tiglionabbit_: well [02:11] tiglionabbit_: if you just compile and install it without a package, how do you update it? [02:11] mscdex: just do the same step with newer versions: ./configure && make && make install [02:11] mscdex: that's it [02:12] tiglionabbit_: just clobber everything, yeah [02:12] mscdex: it overwrites, yeah [02:12] tiglionabbit_: anyway, I'm checking out a tag and using cmake there [02:13] AaronMT has joined the channel [02:13] tiglionabbit_: but like, I find it strange that master has this directory deleted [02:13] mscdex: you can install it to a different location by specifying a prefix with ./configure [02:13] mscdex: tiglionabbit_: there was a recent commit that merged libuv, which replaces ev [02:14] tiglionabbit_: ah [02:14] mscdex: so i doubt the cmake scripts have been updated yet [02:14] mscdex: you should use 0.4.7 [02:14] AvianFlu has joined the channel [02:15] marknel_ has joined the channel [02:19] jamescarr has joined the channel [02:21] seivan has joined the channel [02:23] Mrfloyd has joined the channel [02:23] marknel_ has joined the channel [02:23] themiddleman has joined the channel [02:27] jacter has joined the channel [02:27] tilgovi has joined the channel [02:27] tilgovi has joined the channel [02:27] Postmodernist: How am I going to install node.js module from this? https://github.com/brianc/node-postgres [02:28] Postmodernist: Do I need npm to install the module? [02:31] drudgeAnywhere has joined the channel [02:31] bobba has joined the channel [02:31] bobba: ACTION looks around [02:33] CIA-104: node: 03Brian White 07master * re505a12 10/ (8 files in 4 dirs): [02:33] CIA-104: node: Add reading/writing of floats and doubles from/to buffers [02:33] CIA-104: node: Code for readIEEE754/writeIEEE754 is from jspack: http://code.google.com/p/jspack/ - http://bit.ly/lhxy29 [02:33] bobba: Hello Node creatures. I have made Node module what contains asynchronous code that populates the "exports" thing. Problem is when I require module code after the require executes before "exports" gets populated. Any idears how I deal with this elegantly? [02:36] mikegerwitz: bobba: Consider exporting a single function (e.g. create()), which will perform your asynchronous procedure and return a new instance of a constructor, or even a basic object, via a callback. That ctor/object can contain the data you're exporting. [02:36] AvianFlu has joined the channel [02:36] mbrevoort has joined the channel [02:36] bobba: mikegerwitz: Great suggestion! Thanks!!! [02:37] mikegerwitz: bobba: Performing complex logic on require() may give the user a false sense of what's actually going on. Most don't expect require() to do much besides load exports [02:37] mikegerwitz: bobba: np [02:38] zomgbie has joined the channel [02:38] rfay has joined the channel [02:38] bobba: mikegerwitz: Yeah, hopefully I can do it in a not too complicated way. [02:39] jacter has joined the channel [02:40] ChrisPartridge: Postmodernist: you can npm install it, or clone it from git and require('./path/to/module') [02:40] mikeal has joined the channel [02:40] mbrevoort has joined the channel [02:41] Postmodernist: ChrisPartridge: Would that be to the libs directory? [02:42] Aria has joined the channel [02:43] ChrisPartridge: Postmodernist: I would recommend using npm to manage your packages, but otherwise you can put it where you want and require it from where you want [02:43] jacter has joined the channel [02:44] Postmodernist: ChrisPartridge: Since npm still has a broken version of pg, I have to maintain a patch [02:44] ChrisPartridge: Postmodernist: git clone it [02:44] ChrisPartridge: and cd to the dir [02:45] ChrisPartridge: and npm -g install . [02:46] astropirate has joined the channel [02:46] Postmodernist: Right [02:49] ryah has joined the channel [02:50] Postmodernist: ChrisPartridge: How do I tell npm to build it and install the module to specific directory? [02:56] Postmodernist: npm install module-source.tar.gz /usr/special_modules/ [02:56] Postmodernist: How do I get it to put the result in a specific folder? [02:57] Postmodernist: man pages look fucked in this vt100 terminal [02:58] boehm has joined the channel [02:58] indexzero has joined the channel [02:58] Postmodernist: No such command: /bin/sh [02:59] Postmodernist: omg, the initrd got fucked [02:59] a|i: http://www.ostinelli.net/a-comparison-between-misultin-mochiweb-cowboy-nodejs-and-tornadoweb/ [02:59] a|i: node is still too young :( [02:59] Postmodernist: a|i: What cmae out on top? [02:59] a|i: erlang is 20 years old, v mature [03:00] seivan has joined the channel [03:00] bobba has left the channel [03:00] rfay has joined the channel [03:00] mcantelon has joined the channel [03:02] marknel_ has joined the channel [03:02] Postmodernist: So how do I tell npm where to install the module? [03:02] context: postmodernist: it installs in the current directory [03:02] Postmodernist: I'm installing five different instances of the same module [03:03] Postmodernist: Okay, I'll have to shuffle files it around with mv then [03:03] a|i: current dir? again? [03:03] a|i: why is that npm changes so drastically [03:03] Postmodernist: a|i: The changes to npm/node.js make my boss yell at me. [03:03] a|i: package manager should install globally by default [03:04] a|i: like any other package managers [03:04] Postmodernist: The cute little change to current directory in npm got me fucked with executive management [03:04] Aria: why? So apps can conflict? [03:04] Aria: And so you can not play nice with the system's package management in addition? [03:05] Postmodernist: Aria: If it is not global, I should be able to at least specify the directory as an option. [03:05] a|i: you don't want many copies of many versions polluing your disk [03:05] Postmodernist: Aria: And software won't conflict -- we're in the cloud era. Every application gets its own virtual machine. [03:05] mbrevoort has joined the channel [03:06] malkomalko has joined the channel [03:06] Postmodernist: Each app gets an entire fucking operating system :) [03:06] Postmodernist: Software conflicts are the past [03:07] ChrisPartridge: Postmodernist: you should be able to git clone the repo, go to the directory and run "npm -g install .", it should build and place it in global. You can then npm link in a project folder to use it [03:07] ChrisPartridge: Your modules will be placed under a "node_modules" folder. [03:07] Postmodernist: okay [03:08] bbttxu has joined the channel [03:08] Postmodernist: ChrisPartridge: Trying that. Thanks again :-) [03:08] pyrotechnick has joined the channel [03:11] zivester has joined the channel [03:13] secoif: Postmodernist: do you dev on a remote machine or local? [03:14] jacter has joined the channel [03:14] chjj: ACTION needs more web scale [03:15] mscdex: you need more cowbell! [03:15] halfhalo: ... [03:15] mscdex: node-cowbell.js [03:16] ajpiaNOU has joined the channel [03:16] matyr_ has joined the channel [03:17] aconbere has joined the channel [03:18] pcardune has joined the channel [03:18] AAA_awright: mongodb-cowbell.js [03:19] PhilK has joined the channel [03:19] AAA_awright: Someone totally ought to create a programming language called Cowbell [03:20] sivy has joined the channel [03:20] ericnakagawa has joined the channel [03:20] dgreensp has joined the channel [03:21] brettgoulder has joined the channel [03:24] poincare101 has joined the channel [03:25] pyrotechnick has joined the channel [03:25] pyrotechnick: morning [03:27] scoates has joined the channel [03:28] matyr has joined the channel [03:28] superjudge has joined the channel [03:28] ChrisPartridge: afternoon :-) [03:30] matyr__ has joined the channel [03:31] secoif: anyone know if there's a way to use metadata in javascript [03:31] secoif: ? [03:31] secoif: as in [03:31] secoif: not html metadata [03:31] secoif: like metadata in the code itself [03:32] secoif: javascript preprocessor stuff [03:34] tilgovi has joined the channel [03:34] tilgovi has joined the channel [03:34] mscdex: secoif: why? [03:35] secoif: ACTION used to coding with metadata in actionscript [03:36] secoif: you can do awesome stuff with it [03:37] secoif: people use it a lot in dependency injection frameworks, but you can use it for all sorts of other configuration magic [03:37] Votaguz has joined the channel [03:38] indexzero has joined the channel [03:40] jacobolus has joined the channel [03:45] NuckingFuts: uggggh [03:46] dgreensp: secoif: no, but then, there are no classes in JS either [03:46] NuckingFuts: I'm trying to build a better subdomain middleware for connect/expressjs, and it's giving me hell [03:46] indutny has joined the channel [03:48] mercer: I'm having trouble installing node on Amazon Linux. AFAIK, I've installed all the dependencies for node. Compiling from source goes well until I hit "make test" and then I get this error: http://goo.gl/h0T6O . Any ideas? [03:48] PhilK has joined the channel [03:49] secoif: dgreensp: idea would be to attach that shit to the prototype or the object itself or something [03:49] secoif: oh [03:49] poshenghsu has joined the channel [03:50] secoif: yeah something like that [03:50] ericnakagawa has joined the channel [03:52] tilgovi has joined the channel [03:52] tilgovi has joined the channel [03:52] dgreensp: could probably come up with your own system; maybe that's even an advantage of JavaScript's prototypal inheritance [03:53] gazumps has joined the channel [03:53] dgreensp: different JS frameworks tend to layer their own OO systems on top of JS; not actually that much OO built in, for better or for worse [03:55] secoif: yeah, I've been using Spine's class system for a little while now, I quite like it but yeah I'm getting sick of everyone rolling their own [03:55] secoif: instead of just standardising on something [03:55] secoif: problem is those frameworks usually only package their class system in with the rest of the system [03:56] tonymilne: Anyone known if in Mongoose you can not use a defined getter function in one circumstance, but most of the time you do use it? [03:57] JackeyChan has joined the channel [04:00] hassox has joined the channel [04:05] raidfive has joined the channel [04:05] bruce has joined the channel [04:06] mikegerwitz: http://easejs.org is a nearly complete OO impl, if you need proper encapsulation (protected/private members) and such. Started creating it to make my life easier at work then it grew into its own thing. Been used in production for 6 months. Got frustrated with incomplete implementations. [04:06] quackslike: tonymilne: cant you just if(useGetter){..} else {..} [04:08] quackslike: mikegerwitz: holy cow! documentation! :) [04:09] mikegerwitz: quackslike: Poor documention is a huge pet peeve of mine. [04:09] SubStack: gross [04:10] quackslike: mikegerwitz:i find it frustrating [04:10] mercer has left the channel [04:10] prettyrobots: SubStack: What's gross? [04:11] SubStack: classical OO [04:11] mikegerwitz: SubStack: If that's at me, OO in JS is a love or hate kind of thing ;) I personally find the prototypal model very poor for managing very large projects. Thus this library. [04:11] mikegerwitz: classical OO* [04:12] quackslike: mikegerwitz: i think a lot of people will like that, and the docs will make it so most people can use it fairly easily. [04:12] quackslike: mikegerwitz: nice job all round. [04:12] SubStack: I like tiny little libraries all doing their own thing and completely separated [04:12] mikegerwitz: quackslike: Hopefully. I expect a lot of lashback too from people who hate classes in JS :) [04:12] ericnakagawa has joined the channel [04:13] quackslike: mikegerwitz: yep you'll prob get that. But noone is forcing them to use it, they will need to grow up a little bit. [04:13] prettyrobots has joined the channel [04:13] tiglionabbit_ has joined the channel [04:13] prettyrobots: I use CoffeeScript to get classical OO. [04:13] SubStack: oh I don't care that stuff like this exists, I just don't see the use of classical OO in javascript [04:13] prettyrobots: Or Node.js sort of OO. [04:13] SubStack: I barely use prototype-style OO [04:14] prettyrobots: I find it useful still, to have classes. [04:14] SubStack: using callbacks for custom behavior instead of classical inheritance is where it's at [04:14] mikegerwitz: SubStack: Just another way of structuring your software. I find it very useful for large software. [04:14] prettyrobots: But, I have a new way of doing things. [04:14] mikegerwitz: SubStack: Oh, I definatly agree. I use OO in JS much like Scala uses it [04:15] mikegerwitz: SubStack: combination of functional and classical OO [04:15] SubStack: yeah classical OO style is occasionally useful when you want objects like Buffers that seem to pretty obviously be "things" [04:16] SubStack: but most of the time I like to just return a hash of functions closed over some internal private state [04:16] mikegerwitz: SubStack: OOP is excellent for separating projects into many managable pieces. Prototypes can be used to the same extend, but lack proper encapulation. When working on projects more than a few thousand lines of code, OOP greatly reduces maintetnance and development costs. [04:16] SubStack: which is far different from how private/protected/public inheritence works in classical OO [04:17] tiglionabbit_: SubStack: that is hard to distinguish from a class on the outside though [04:17] mikegerwitz: extent* [04:17] NuckingFuts: Ugh [04:17] tiglionabbit_: mikegerwitz: if you want encapsulation, use your closure [04:17] mikegerwitz: tiglionabbit_: that's a hack ;) [04:17] tiglionabbit_: how is that a hack? [04:18] SubStack: tiglionabbit_: it's pretty different because you can nest the closures arbitrarily which gives you a lot more control over the little bits of state that you need to get shit done [04:18] SubStack: in classical OO like java or c++ those are stuck at the class root namespace [04:18] NuckingFuts: I wish I could use ExpressJS's definition syntax for subdomains [04:18] tiglionabbit_: mikegerwitz: I think using closures to control access is a much more elegant way to do things that designating things as "private" [04:18] mikegerwitz: tiglionabbit_: Well, firstly, protected members cannot exist in that manner. As far as private members go, that works, but it becomes very difficult and hacky when working with multiple instances. [04:19] SubStack: tiglionabbit_: exactly what I was getting at [04:19] NuckingFuts: I'd kill for the ability to do ':user.example.com/' [04:19] mikegerwitz: tiglionabbit_: If using closures, your options are to (a) declare it outside the constructor/prototype or (b) redeclare the method for each instance, within the ctor [04:19] mikegerwitz: tiglionabbit_: Nethier are clean, or ideal. [04:19] SubStack: mikegerwitz: but you can turn the OO model on its head and have functions that accept callbacks in order to do custom things to the internal state [04:20] SubStack: I'm pretty uncomfortable exposing internal state to "friendly" classes [04:20] tiglionabbit_: mikegerwitz: The way I do "classes", I make a function that returns an object. [04:20] SubStack: because if I want to change how the internal state works those "friendly" classes need updated too [04:20] mikegerwitz: SubStack: Classical OO simply has a different approach to the same issues. [04:20] tiglionabbit_: if you want to do inheritance, just call another function and mess with the object it returned [04:20] SubStack: whereas if I've got nice hooks instead I can mix up the internals all I like so long as the external interface is the same [04:21] NuckingFuts: Any ideas of how I can lodge myself into ExpressJS such that I can modify the resource name parsing? [04:21] SubStack: mikegerwitz: you can do much fancier footwork when you've got lambdas at your disposal [04:21] mikegerwitz: tiglionabbit_: Yes - I'm not doing any magic with my library. That's what I have to do in the background. But after years of doing that, I found that there are better ways to organize code. [04:21] perlmonkey2 has joined the channel [04:21] mikegerwitz: SubStack: Classical OO doesn't prevent that ;) [04:21] SubStack: mikegerwitz: but it gets in the way :p [04:22] mikegerwitz: SubStack: Scala is a beautiful and elegant example of that. Too bad is uses JVM.. [04:22] admc has joined the channel [04:23] mikegerwitz: SubStack: Classical OO is meant to get in the way. All it does is define a set of rules that *restrict* the developer and the users. [04:23] dgreensp: I'm using Connect -- what's this "helper" called "simpleBody" that I see in examples? I tried calling res.simpleBody in a handler, and it doesn't exist [04:24] NuckingFuts: dgreensp: that's a piece of MiddleWare, that parses the body of POSTed data [04:24] NuckingFuts: And I dunno how to use it in Connect, jsut Express [04:24] mikegerwitz: SubStack: There are many scenerios where a pure OO solution is inappropriate. I don't argue that ;) I prefer functional style myself. Different approaches. [04:26] Nican has joined the channel [04:26] SubStack: if you want a functional approach, all you need is functions! [04:26] tiglionabbit_: it sure takes a while to compile nodejs [04:26] dgreensp: I'm looking at example code like this one, which simply doesn't work: http://howtonode.org/connect-it/connect-http.js [04:26] rubydiamond has joined the channel [04:26] dgreensp: maybe simpleBody was removed or renamed [04:26] SubStack: to support classical oo you need all manners of additional machinery [04:27] NuckingFuts: dgreensp: I think it's now bodyParser middleware [04:27] SubStack: which sometimes are useful but I never really felt any of the classical oo tools were aesthetically satisfying [04:28] Lorentz has joined the channel [04:28] dgreensp: NuckingFuts: this is not for parsing, just writing a basic response to the client: res.simpleBody(200, "Hello Connect"). heh [04:28] prettyrobots has joined the channel [04:28] tiglionabbit_: dgreensp: a lot of stuff changes. Here's the docs for connect http://senchalabs.github.com/connect/connect.html [04:29] tiglionabbit_: er, should go up a level there http://senchalabs.github.com/connect/ [04:30] pquerna: ryah: are there any c server impls on top of http-parser? [04:30] johnnywengluu: cloudfondry looks very cool [04:31] ryah: pquerna: no [04:31] ryah: not that i know of [04:31] ryah: doing one in libuv would be interesting :) [04:31] pquerna: just wanted to isolate what http-parser's performance is before trying to figure out what v8 is doing. [04:31] ryah: are you looking into that benchmark? [04:31] pquerna: i guess i'll write a little one on top of libuv [04:31] pquerna: yes [04:32] ryah: good man [04:32] pquerna: rough profiling says 12% time in http-parser, most of it seems to be crossing the boundry/scopes [04:32] pquerna: but if i have a little c app that goes 20x faster than node... [04:32] ryah: how do you tell the cross boundry scopes? [04:32] pquerna: well then you have a good baseline for the libuv + http-parser [04:33] ryah: it would be a nice example for libuv [04:33] bbttxu_ has joined the channel [04:33] pquerna: 5763.0ms 12.6% v8::internal::HandleScope::ZapRange(v8::internal::Object**, v8::internal::Object**) [04:33] ryah: also you might give some suggestions on the API - that would be helpful for us [04:33] ryah: ZapRage indicates boundry cross? [04:34] ryah: ACTION looks for mraleph [04:34] ryah: meh [04:34] pquerna: yeah, its the callchain for v8::internal::HandleScope::~HandleScope() [04:34] grncdr has joined the channel [04:34] ryah: hm - okay [04:34] quackslike: anyone seen any hint of a node-oracle driver? [04:35] Aria: I've not. [04:36] sh1mmer has joined the channel [04:36] dgreensp: tiglionabbit_: Thanks. I still don't see how to simply add a handler, rather than middleware. If I just pass a function, but the res/req objects have new methods, I'd like to find those methods. [04:36] tiglionabbit_: dgreensp: sorry, I don't really know much about this and I'm not sure what you're trying to do etiher [04:37] dgreensp: haha, just trying to write a "hello world" with the Connect library ;) [04:37] pquerna: now i just need a way to program c on the ipad while on a plane for 12 hours today [04:38] marknel has joined the channel [04:38] ChrisPartridge: pquerna: might be hard without a keyboard? [04:38] bojicas has joined the channel [04:38] quackslike: pquerna: just buy an macbook air on the wya to the airport [04:40] ryah: pquerna: look forward to seeing what you come up with! [04:41] ryah: do make some notes about the API if you notice anything stupid - we're still messing around quite a bit [04:41] k1ttty has joined the channel [04:41] dgathright has joined the channel [04:43] astropirate has joined the channel [04:44] kPb_in has joined the channel [04:45] mcantelon has joined the channel [04:47] gtramont1na: Yo guys... Would you check my app out and give some feedback? Please use github to report issues! Thanks a lot! http://writeboard.nodester.com | http://github.com/gtramontina/Writeboard [04:47] mbrevoort has joined the channel [04:47] gtramont1na: Please RT http://twitter.com/#!/gtramontina/status/66947102860775425 I'd like to test how's nowjs/nodester behave under relative high demand. [04:47] gtramont1na has left the channel [04:49] darshanshankar: oo its getting better [04:51] dgathright has joined the channel [04:51] seivan has joined the channel [04:52] pyrotechnick: how do you get npm to check out dependencies on install? [04:58] \sega has joined the channel [04:58] Emmanuel__: hm. Is there a way to perform a synchronous http.get with node ? [04:58] matyr has joined the channel [04:58] Emmanuel__: (ie : stop execution until I get all the page) [05:01] NuckingFuts: FUCK YEAH [05:01] NuckingFuts: I figured out a solution to this problem [05:01] SubStack: \o/ [05:02] NuckingFuts: I made a middleware that rewrites subdomains to /u/subdomain/ [05:02] ChrisPartridge: SubStack: check out the dnode package I made? [05:02] mendel_ has joined the channel [05:02] vikstrous has joined the channel [05:02] quackslike: ChrisPartridge: can you share it? [05:03] ChrisPartridge: quackslike: dnode-smoothiecharts in npm, or http://github.com/dynmeth/dnode-smoothiecharts [05:03] Emmanuel__: (I actually have the feeling it's a dumb question : if I just wrap it in myFunctionWithAGet(whatToGet, function(res){ // do something with res }), that should work synchronously, no ?) [05:03] quackslike: cheers [05:03] JackeyChan: are there have any example for longPoll?? [05:05] path[l] has joined the channel [05:05] kPb_in has joined the channel [05:05] path[l]: hi. Has anyone here used express? Im trying to figure out how to get the gzip middleware going for static files [05:05] mykul has joined the channel [05:07] ChrisPartridge: path[l]: http://groups.google.com/group/express-js/browse_thread/thread/e4deba852baef654 <-- read response from tj [05:07] SubStack: ChrisPartridge: looks pretty excellent! [05:08] Ond has joined the channel [05:09] Squeese has joined the channel [05:09] quackslike: ChrisPartridge: nice [05:09] vikstrous has joined the channel [05:10] sreeix has joined the channel [05:14] path[l]_ has joined the channel [05:14] path[l]: ChrisPartridge: ah ok. let me see if I can find that middleware. thanks [05:16] McMAGIC--Copy has joined the channel [05:17] superjudge has joined the channel [05:18] ezmobius has joined the channel [05:21] zackattack has joined the channel [05:22] seivan has joined the channel [05:22] Rodtusker has joined the channel [05:26] brownies has joined the channel [05:26] wookiehangover has joined the channel [05:27] johnnywengluu: cloudfoundry is using joyent for node.js deployments .. does this mean that it's easier for developers to use cloudfoundry than joyent for their applications? [05:28] mykul|Home has joined the channel [05:28] pyrotechnick: how do you get global npm modules to use their local dependencies? [05:29] Viriix has joined the channel [05:30] Votaguz: Hi i'm noob in this world of Node.js. I need some help i'm trying to run this sample project http://tinyurl.com/3qlcv9x but i get the following error " Error: EISDIR, Is a directory " Anybody can to guide me how solve it ? thanks [05:30] Aria: (No need to tinyurl things) [05:30] mykul|Home: Hi everyone. I'm fiddling around with express and node for the first time as well. [05:30] mykul|Home: Any strong opinions on template engines? [05:31] Aria: Votaguz: What part are you running? Is it not giving you a backtrace where the error occurs? [05:31] Votaguz: Aria: Sorry i think that paste the entire url is disrespectful [05:32] Aria: Nah, just means nobody knows what they go to before they click. IRC isn't limited to 140 characters ;-) [05:32] coreb has joined the channel [05:32] Votaguz: Aria: Thanks, In the console i don't have any errors votaguz-macbook:yiwang-node-tweet-5c9a1f5 Votaguz$ node tweet.js [05:32] Votaguz: Server running at port 8000 [05:33] Votaguz: This error i get it from the browser .... [05:33] Votaguz: Error: EISDIR, Is a directory [05:33] pyrotechnick: http://gist.github.com [05:33] pyrotechnick: show us your code [05:34] mykul|Home: does anyone use jade? it looks too good to be true.. [05:34] Aria: Ah, okay, so the code isn't returning the backtrace there. What are you accessing? The static file server? [05:34] Aria: (Should it handle directories? (urls ending in /) [05:35] Votaguz: Aria: Let me see... the code is a sample that i get from internet... [05:35] Aria: It may only serve files -- if it's expecting to just open() something and send it, I'd expect it to do just what it's doing if you tell it to look at a directory. [05:36] MrTopf has joined the channel [05:38] mscdex: node.js rules! [05:38] Votaguz: Aria: theres no have any access to files in disk... The app only read the stream from twitter an show in a page https://github.com/yiwang/node-tweet/blob/master/tweet.js [05:38] Aria: What are you actually running? [05:39] Aria: What commandline? [05:39] matyr has joined the channel [05:39] Votaguz: In my commandline i put the following node tweet.js [05:40] Votaguz: And its responds " Server running at port 8000 " [05:40] Votaguz: So i access from the browser to 127.0.0.1:8000 and get the messsage Error: EISDIR, Is a directory [05:40] Aria: Ah, okay. So you're running tweet.js, not one of the others. [05:41] Votaguz: yes Aria [05:41] Aria: Look at the bottom there: if you request /stream, it does the twitter stuff. Otherwise it falls back to static fules. [05:41] Aria: So if you're hitting http://127.0.0.1:8000/, not http://127.0.0.1:8000/stream, you'll get the static file handler. [05:42] Aria: Which, you can see looks in the current directory + the uri added in the request: [05:42] Aria: var filename = path.join(process.cwd(), uri); [05:42] Aria: And it's a dumb handler: open, read, send. [05:43] Aria: (in fact, it's really dumb, and reads the whole file into RAM to send it, rather than pumping it.) [05:43] marknel has joined the channel [05:43] Aria: So it's trying to read the current directory ... as a file. [05:43] Aria: So you get that error, as you should. [05:44] Votaguz: Aria: you are right, when i access to http://127.0.0.1:8000/stream get the following console error [05:44] Votaguz: var req = twitter_client.request("GET","/1/statuses/public_timeline.json", {"host":"api.twitter.com"}); [05:44] Votaguz: Sorry [05:44] Votaguz: events.js:129 [05:44] Votaguz: throw new Error('removeListener only takes instances of Function'); [05:44] Votaguz: ^ [05:44] Votaguz: Error: removeListener only takes instances of Function [05:44] Votaguz: at EventEmitter.removeListener (events.js:129:11) [05:44] Votaguz: at Object._onTimeout (/Users/Votaguz/Downloads/yiwang-node-tweet-5c9a1f5/tweet.js:61:18) [05:44] Votaguz: at Timer.callback (timers.js:62:39) [05:44] Votaguz: This error [05:44] Aria: Oof. Gist if it's more than a couple lines. [05:45] Votaguz: Aria: ok Sorry ... [05:45] Aria: Line 52 is bad, there. [05:46] Aria: It should be var listener; tweet_emitter.addListener("tweets", listener = function(tweets){ [05:46] jacobolus has joined the channel [05:47] tonymilne: Anyone from LearnBoost here? [05:48] mscdex: s/addListener/on/ [05:48] mscdex: :-D [05:49] pauls has joined the channel [05:49] mscdex: tonymilne: doesn't look like it [05:50] tonymilne: Bummer, was hoping to ask some questions about some Mongoose bugs. [05:51] tonymilne: Can't update numbers, and also can't push an embedded document. [05:52] mscdex: silly mongoose [05:52] mscdex: :p [05:53] Votaguz: Aria: Youre right, now it's works but i have a lot of JSON ( I guess ) in all the page look https://gist.github.com/973988 :) [05:53] avalanche123 has joined the channel [05:54] pzich has joined the channel [05:54] quackslike: tonymilne: makes it pretty useless really.. :/ [05:54] Aria: Interesting. Bet that's what it's supposed to do. [05:56] Votaguz: Aria: yes but i need a more clean output in the HTML how i can format the output in the page ? [05:56] Aria: Votaguz: ... that would depend. What are you trying to do? Parse the json, print out how you see fit. The other 90% is mere details ;-) [05:57] febits has joined the channel [05:57] Aria: GYEAGH. scons and gyp and everything v8 build related makes me want to tear my hair out and write my own crappy build system still. [05:58] Votaguz: Aria: well i only need a more clean output, so i guess that i need parse the JSON right ? [05:58] Aria: Yeah. [05:58] indexzero has joined the channel [05:58] Aria: JSON.parse(thejsondata) [05:58] Aria: Then do what you want with it. [05:59] Votaguz: Aria: sorry if my questions are too obvious... I'm starting in the javascript world... Thanks for your help [05:59] Votaguz: :) [06:00] Aria: No worries. You're just hitting the open-ended questions. "How do I do something interesting with this?" "Well, what interesting thing do you want to do?" [06:04] k1ttty has joined the channel [06:07] abraham has joined the channel [06:07] gavin_huang has joined the channel [06:09] mrx has joined the channel [06:10] Aria: .oO(Why didn't Javascript on the server take off until 2010? Because nobody could get the damm thing to build.) [06:13] indutny has joined the channel [06:15] brettgoulder has joined the channel [06:16] JackeyChan: how to get current code line ?? I want to print it in the console [06:17] Aria: 'current' as of when? [06:17] Aria: (I'm not sure you can get the line of the code) [06:17] JackeyChan: when catch error [06:17] JackeyChan: line number [06:18] Aria: The line number of the catch? [06:18] tdegrunt has joined the channel [06:18] JackeyChan: Capture the number of lines of code errors [06:19] Aria: Like the first line of the backtrace? [06:19] JackeyChan: yes! [06:20] Aria: catch(e) { e.stack.split("\n")[1] } [06:21] pyrotechnick: fffff [06:22] pyrotechnick: whoever is doing that import shit for rails better pull their fucking head in soon [06:22] balaa has joined the channel [06:22] pyrotechnick: it's wildly inconsiderate to make such a dick move [06:22] pyrotechnick: how about getting in touch with github [06:22] Aria: Hm? [06:22] JackeyChan: I am working on the mysql, I want to put the error in console when error occur. the line number of code that be error occur + error [06:22] pyrotechnick: and sorting something a little better than spamming everyones feeds for an entire day [06:23] chapel: link pyrotechnick? [06:23] zomgbie has joined the channel [06:23] Aria: Yeah. Log e.message and e.stack.split("\n")[1] [06:24] Aria: (or, log the whole backtrace -- more useful that way, really) [06:24] JackeyChan: but in the callback I can not get the e variable [06:24] JackeyChan: the callback like function (error, data, fields) {} [06:24] JackeyChan: no e.message can be used [06:25] tobiassjosten has joined the channel [06:25] Aria: That's what error is. [06:26] abraxas: mscdex: you around by any chance? [06:26] yozgrahame has joined the channel [06:26] JackeyChan: the error be passed by mysql (mysql-native) [06:27] Aria: Right... [06:28] JackeyChan: so how can i get ? [06:28] Aria: Get? [06:28] Aria: The error? You have it, right? [06:29] JackeyChan: yes [06:30] philtor has joined the channel [06:30] JackeyChan: Aria: thanks a lot ! [06:30] JackeyChan: Aria: ^~^ [06:30] Aria: Hehe, sure thing! [06:30] Aria: Takes a while to get used to async error passing vs exceptions. [06:32] JackeyChan: another question, how to throw a exceptions in nodejs ? [06:33] JackeyChan: ok i can get the answer with google [06:33] JackeyChan: thanks [06:33] Aria: Sure thing. (throw exception ;-)) [06:33] sirdancealot has joined the channel [06:33] Aria: But generally, if you're in async code, you want to pass an exception to a callback, not throw. [06:34] JackeyChan: yes.. i think so. i can get the exception in my callback and handle it [06:35] brettgoulder has joined the channel [06:35] Aria: ACTION nods. [06:35] Aria: It's that exact pattern why node hands you error as the first argument. [06:35] Aria: Since by the time the exception's thrown, node's code is calling your callback, and you've escaped your handler. [06:37] `3rdEden has joined the channel [06:38] JackeyChan: Aria: you are so familiar nodejs ! [06:38] JackeyChan: aha ! good teaser [06:38] Aria: <-- human encyclopaedia. [06:38] JackeyChan: teather [06:38] Aria: Teacher ;-) [06:39] mraleph has joined the channel [06:42] McMAGIC--Copy has joined the channel [06:42] Viriix has left the channel [06:44] muhqu has joined the channel [06:47] Aria: ... I just realized, build systems need prototypical inheritance. [06:47] pyrotechnick: https://github.com/rails/rails/issues/1084 [06:47] Aria: No wonder nobody gets it right. Nobody's done it in JS yet. [06:48] matyr_ has joined the channel [06:49] Aria: dear god, pyrotechnick. Wow. [06:49] `3rdEden: Well atleast there is no coffeescript in your screenshot [06:49] pyrotechnick: not yet [06:49] `3rdEden: ;D [06:50] rsms has joined the channel [06:51] Aredridel has joined the channel [06:52] JackeyChan: I am question: [06:52] JackeyChan: in my node.js file, the code look like: [06:52] JackeyChan: var node = module.exports; [06:52] JackeyChan: var db = require('mysqldb').connect; [06:52] JackeyChan: var loadNodes = function () { [06:52] JackeyChan: db.query("xxxxx"); [06:52] JackeyChan: } [06:52] JackeyChan: my question is when I call loadNodes() function in another module file, the db will be created many time, does it ? [06:52] pauls has joined the channel [06:53] SubStack: JackeyChan: requires get cached [06:53] hassox has joined the channel [06:53] qFox has joined the channel [06:53] JackeyChan: sorry ? I do not understand .. [06:53] SubStack: so if you require('foo'); require('foo') the contents of foo.js will only be run once [06:53] JackeyChan: ok. thanks ! [06:55] groom has joined the channel [06:56] dekz: mscdex: I did once i was checking on libpurp bindings [06:59] eee_mk has joined the channel [06:59] JackeyChan: hi, I want to replace string like {table} to pre_table, is there any function can do ? like replace? [07:00] djcoin has joined the channel [07:02] seivan has joined the channel [07:02] Aria: Yeah, there's replace [07:02] Aria: And the whole Regexp object. [07:03] k1ttty_ has joined the channel [07:03] Sidnicious has joined the channel [07:03] JackeyChan: ok. I try now [07:03] Sidnicious: http://cl.ly/1L0T2o2s3S1G1l0a2Z0D [07:03] JackeyChan: thanks all time [07:03] Sidnicious: um [07:04] mscdex: dekz: ah [07:04] sherod has joined the channel [07:04] tdegrunt has joined the channel [07:06] mscdex: Sidnicious: what version of node are you running? [07:06] aliem has joined the channel [07:06] Sidnicious: mscdex: just built it from GitHub [07:06] mscdex: master or 0.4.7 or ? [07:06] Sidnicious: master [07:06] Sidnicious: --debug [07:07] mscdex: don't use master right now, it's still being worked on [07:07] fangel has joined the channel [07:07] mscdex: a lot of stuff is undergoing a rewrite [07:07] stonebranch has joined the channel [07:08] Sidnicious: all right, thanks. I'm trying to track down a strange bug from 0.4.7, let me give that tag a try [07:09] mscdex: hmmm what bug? [07:09] Aria: AAA_awright -- you still have a URL for thoughts on an RDF-based build system? [07:10] stonevo has joined the channel [07:10] AAA_awright: Aria: http://69.72.216.27/guru/ [07:10] AAA_awright: I ought to make a subdomain at least [07:10] stonevo: hi [07:10] Aria: Thanks! [07:10] asabil has joined the channel [07:10] Aria: I'm seriously considering starting an implementation. [07:11] mscdex: yuck, xml! [07:11] mscdex: :p [07:11] Aria: Where?! [07:11] stonevo: do anyone install the server of ajaxim on node.js [07:11] AAA_awright: Aria: Here use this instead http://bzfx.net/guru/ [07:11] hij1nx has left the channel [07:11] Aria: Awesome. [07:11] mscdex: stonevo: no, it uses a very ancient version of node and the author hasn't updated ajaxim to work with the latest stable version [07:11] AAA_awright: mscdex: XML is useful for what it was designed for [07:11] Sidnicious: mscdex: I think it's in node-mongodb-native. When a few requests come in on top of each other (a live search field), node sometimes gets stuck and eats RAM until it segfaults. [07:12] Sidnicious: AAA_awright: What was is designed for? [07:12] truedat101 has joined the channel [07:12] Sidnicious: ENTERPRISE!? [07:12] AAA_awright: WEB SCALE [07:12] Country has joined the channel [07:12] AAA_awright: Sidnicious: A markup language [07:13] mscdex: json is easier to parse than xml! [07:13] AAA_awright: For tagging text and annotating and authoring, you just can't beat it [07:13] stonevo: it means ajaxim doesn't support node.js for server base, isn't it? [07:13] mscdex: :-D [07:13] AAA_awright: mscdex: Yeah but try writing papers with it, ew [07:13] Sidnicious: eval for the win [07:13] mscdex: AAA_awright: i thought we were talking about a build system, not a paper [07:14] mscdex: stonevo: it does use nodejs, but the version it uses is very very old [07:14] mscdex: stonevo: contact the author of ajaxim and tell them to update it to work with the latest stable version of node instead [07:14] AAA_awright: mscdex: Well the XML I have on that page is just how DOAP works, but you could go with another friendlier format like Turtle or JSON-RDF [07:15] stonevo: mscdex: oh man [07:15] mscdex: stonevo: it happens. node is a fast mover [07:16] mscdex: at least for now [07:16] stonevo: mscdex: thank you so much, i stuck on the mess too long [07:16] NuckingFuts: DOAP? [07:16] NuckingFuts: WTF is that? [07:16] NuckingFuts: Some variant or misspelling of SOAP> [07:16] `3rdEden: D=S [07:16] mscdex: stonevo: although, you could easily write your own ajax im server with existing components [07:16] NuckingFuts: okay [07:16] NuckingFuts: I was about to say, is there another thing out there now? lol [07:17] mscdex: stonevo: ajaxim was written a long time ago before most of the modules that exist today were in existance [07:17] stonevo: mscdex: oh beside the version for node.js there is the php version for ajaxim [07:17] sooli has joined the channel [07:17] mscdex: stonevo: yeah but php sucks :) [07:17] roidrage has joined the channel [07:17] mscdex: stonevo: you won't get the concurrency you get with node, with php [07:17] sooli has left the channel [07:17] stonevo: mscdex: really?? what are the sucks? [07:18] Esteb has joined the channel [07:18] matyr has joined the channel [07:19] NuckingFuts|Away: stonevo: PHP is a slower interpreter, for one. Also, it's not event-driven and doesn't revolve around async stuff [07:19] NuckingFuts|Away: So overall, NodeJS has the edge on it [07:19] mscdex: stonevo: you could easily whip something up like ajaxim with two node modules: express and socket.io [07:20] MrTopf has joined the channel [07:20] stonevo: mscdex: oh nice [07:21] mscdex: stonevo: http://expressjs.com/ http://socket.io/ [07:21] stonevo: mscdex: thank you so much [07:21] stonevo: mscdex: i'll try to dig it, thanks [07:22] mscdex: stonevo: here's some sites for learning node: http://nodeguide.com/ http://nodebeginner.org/ http://nodetuts.com/ http://www.youtube.com/watch?v=jo_B4LTHi3I http://howtonode.org/ [07:22] mscdex: fwiw [07:22] matyr has joined the channel [07:22] jdub has joined the channel [07:23] astropirate has joined the channel [07:23] jeff_horton has joined the channel [07:24] stonevo: mscdex : i'll sink in your references but it's useful, thanks [07:24] AAA_awright: NuckingFuts|Away: Descriptin of a Project [07:24] AAA_awright: NuckingFuts|Away: DoaP, Description of a Project [07:24] bbttxu has joined the channel [07:24] AAA_awright: It's an RDF vocabulary [07:25] bartt has joined the channel [07:26] quackslike has joined the channel [07:26] stalled has joined the channel [07:27] SamuraiJack has joined the channel [07:27] Me1000 has joined the channel [07:27] ryan0x2 has joined the channel [07:28] FireFly|n900 has joined the channel [07:29] hellp has joined the channel [07:31] Xano has joined the channel [07:31] indutny has joined the channel [07:35] bergie_ has joined the channel [07:35] hybsch has joined the channel [07:36] Me1000 has joined the channel [07:37] [AD]Turbo has joined the channel [07:37] [AD]Turbo: yo all [07:37] isaqual has joined the channel [07:37] hebz0rl has joined the channel [07:38] Druide_ has joined the channel [07:40] Aria: Ha! I beat v8 into building as a shared library with a reasonable soname, and to build d8 linked against that library rather than being another 50mb of debug symbols. [07:41] mendel_ has joined the channel [07:44] superjudge_ has joined the channel [07:44] emattias has joined the channel [07:44] Aria: And I am shocked at how stable V8's ABI is. [07:47] pyrony has joined the channel [07:47] seivan has joined the channel [07:48] AAA_awright: Awww I got my first node crash [07:48] mc_greeny has joined the channel [07:48] AAA_awright: node: ../src/node.cc:1212: ssize_t node::DecodeWrite(char*, size_t, v8::Handle, node::encoding): Assertion `b[1] == 0' failed. [07:49] Bj_o_rn has joined the channel [07:49] AAA_awright: This is on master, just compiled a few hours ago [07:50] AAA_awright: Aria: You jinxed me [07:50] Aria: Oh yeah? [07:50] nyholt has joined the channel [07:50] Aria: Hah. [07:50] matjas has joined the channel [07:52] zomgbie_ has joined the channel [07:54] ASY has joined the channel [07:54] ASY has left the channel [07:56] jacobolus has joined the channel [07:56] msucan has joined the channel [07:57] JackeyChan: I want to create small micro blog with nodejs. I am doing the longpoll work. but I do not know how to ? there have any example? [07:59] mscdex: JackeyChan: why not use socket.io? [07:59] JackeyChan: I am just interesting longpoll [08:00] rgabo has left the channel [08:00] JackeyChan: sorry for that ^~^ [08:00] harth has joined the channel [08:00] uchuff has joined the channel [08:00] MikhX_ has joined the channel [08:06] jonathantaylor has joined the channel [08:11] brsh has joined the channel [08:14] seutje has joined the channel [08:15] jacter has joined the channel [08:15] kawaz_air has joined the channel [08:17] seivan_ has joined the channel [08:18] robhawkes has joined the channel [08:21] path[l]: is there any auth plugin for express or connect that lets me protect static files? [08:25] mhausenblas has joined the channel [08:26] dies_el has joined the channel [08:26] q_no has joined the channel [08:26] stiang has joined the channel [08:27] stephen_mcd has joined the channel [08:27] nmd6168 has joined the channel [08:27] sucrenoir has joined the channel [08:28] tmzt: JackeyChan: I had a simple one working, it just queues up req's and the sends them when data is available [08:28] tmzt: it was based on an example but I can't remember which one [08:29] naniya_ has joined the channel [08:29] JackeyChan: tmzt: did you push on the github? [08:29] pyrony has joined the channel [08:29] tmzt: no, it's integrated into a site I'm working on [08:29] tmzt: it's really basic though [08:30] JackeyChan: so ? can i have it ? [08:31] jetienne has left the channel [08:31] tmzt: I'm going to gist [08:31] jacobolus has joined the channel [08:31] tmzt: do you need it for broadcast or to serfve to one client at a time? [08:31] JackeyChan: yeah, i want to share board message for people [08:32] JackeyChan: when user post message, everybody on the site can see it [08:33] stiang: with express, is there any way to render an EJS template to a string and then return the string as part of a JSON payload? I have an existing rails app which uses ajax to get something like {html: {el1: "some html for el1 here", el2: "some html for el2 here"}}, which is then parsed by some client code. I’d love to be able to use node.js/express for this instead of rails. [08:33] eldios has joined the channel [08:34] tmzt: JackeyChan: https://gist.github.com/974100 [08:34] tmzt: if you don't need per-client just replace queues[sessionID] with queues [08:34] JackeyChan: thanks a lot [08:35] tmzt: also, take this out [08:35] nyholt has joined the channel [08:35] tmzt: if (!clients[req.sessionID].requests.length) [08:35] tmzt: basically you just queue up reqs for all the users, then in sendevents go through and .send() to each one [08:35] Nori has joined the channel [08:35] tmzt: stiang: in 2.0 just use res.partial() [08:36] kawaz_air has joined the channel [08:36] Nori: Omg.. [08:36] tmzt: in 1.0 you can just make a view with !=body [08:36] Nori: Hello World [08:36] tmzt: well, i don't know about dealing with layout in that case, I think you can override it [08:36] tmzt: Nori: congradulations [08:36] JackeyChan: tmzt: hot heart [08:36] mikey_p: with express-resource is there a simple way to specify resource specific middleware? [08:36] hellp has joined the channel [08:38] kawaz_air has joined the channel [08:38] ewdafa has joined the channel [08:38] uchuff has joined the channel [08:39] jeff_horton has joined the channel [08:39] herbySk has joined the channel [08:40] bbttxu has joined the channel [08:40] SamuraiJack has joined the channel [08:42] stiang: tmzt: thanks, I’ll look into using partials. [08:46] mnemonic has joined the channel [08:47] mnemonic: hi [08:48] matyr_ has joined the channel [08:48] kawaz_air has joined the channel [08:49] pyrony has joined the channel [08:50] roidrage has joined the channel [08:53] bluekite2000_ has joined the channel [08:54] hassox has joined the channel [08:54] hassox_ has joined the channel [08:58] thalll has joined the channel [09:01] kawaz_air has joined the channel [09:04] kawaz_air has joined the channel [09:07] bzinger has joined the channel [09:08] muhqu_ has joined the channel [09:09] matyr has joined the channel [09:11] superjudge has joined the channel [09:11] philhawksworth has left the channel [09:12] sirdancealot has joined the channel [09:13] JackeyChan: I want to change the count of space when new line in eclipse , but not found in google. how to change it ? [09:16] xeodox: How come when I do <%= myvar %>, it does not display the new lines (\n) [09:17] markwubben has joined the channel [09:19] bluekite2000_ has joined the channel [09:20] pyrony has joined the channel [09:21] mhausenblas has joined the channel [09:23] nmd6168 has joined the channel [09:24] nmd6168 has left the channel [09:24] tdegrunt has joined the channel [09:26] path[l] has joined the channel [09:27] TomY_ has joined the channel [09:28] tmzt has joined the channel [09:28] [[zz]] has joined the channel [09:28] saschagehlich has joined the channel [09:32] Murugaratham has joined the channel [09:35] jeremyselier has joined the channel [09:36] pyrotechnick has joined the channel [09:37] beawesomeinstead has joined the channel [09:37] beawesomeinstead has joined the channel [09:44] tmzt has joined the channel [09:46] matyr_ has joined the channel [09:47] bluekite2000_ has joined the channel [09:48] pyrony has joined the channel [09:49] seivan has joined the channel [09:49] Twelve-60 has joined the channel [09:55] FireFly|n900 has joined the channel [09:56] mehlah has joined the channel [09:58] tilgovi has joined the channel [09:58] tilgovi has joined the channel [10:08] secoif has joined the channel [10:08] eee_mk has joined the channel [10:10] hellp has joined the channel [10:12] pyrony has joined the channel [10:15] mike5w3c has joined the channel [10:15] sherod has joined the channel [10:16] lupomontero has joined the channel [10:24] Wizek has joined the channel [10:26] vic_ has joined the channel [10:26] medikoo has joined the channel [10:28] vic_: I get this erro when I run make on windows 7 - Build failed: -> task failed (err #126): {task: libv8.a SConstruct -> libv8.a} [10:28] aliem has joined the channel [10:28] vic_: can anyone point to any resource to correct this? [10:28] Mrfloyd has joined the channel [10:36] pyrony has joined the channel [10:36] Spookz has joined the channel [10:39] bluekite2000_ has joined the channel [10:41] fly-away has joined the channel [10:41] heavysixer_ has joined the channel [10:44] dies_el has joined the channel [10:44] margle has joined the channel [10:47] beawesomeinstead has joined the channel [10:48] Murugaratham has joined the channel [10:49] k1ttty has joined the channel [10:49] okuryu has joined the channel [10:51] jonasen has joined the channel [10:54] dyer has joined the channel [10:55] fairwinds has joined the channel [10:59] MattJ has joined the channel [11:01] superjudge_ has joined the channel [11:02] hebz0rl has joined the channel [11:02] pomodoro has joined the channel [11:05] secoif: vic_: http://www.ubuntu.com [11:05] vish_ has joined the channel [11:05] eee_c has joined the channel [11:05] w_wilkins has joined the channel [11:05] aliem has joined the channel [11:05] mnemonic has joined the channel [11:06] p|2 has joined the channel [11:07] bluekite2000_ has joined the channel [11:10] febits[0] has joined the channel [11:11] azeroth_ has joined the channel [11:11] hdon has joined the channel [11:12] deedubs has joined the channel [11:13] pyrotechnick has left the channel [11:13] aliem has joined the channel [11:15] jacter has joined the channel [11:15] tsesame has joined the channel [11:17] Sami_ZzZ has joined the channel [11:18] Hamms has joined the channel [11:20] pyrotechnick has joined the channel [11:21] Sami_ZzZ has joined the channel [11:22] p|2 has left the channel [11:24] hebz0rl has joined the channel [11:26] Sami_ZzZ has joined the channel [11:28] ivanfi has joined the channel [11:30] Wizek: hi [11:30] Wizek: Amy I using Crypto right this way: [11:30] Wizek: require('crypto').Hash('sha256').createHash('sha256').update('a').digest('binary') [11:30] Wizek: (apart from the require at the beginning, that'd be a variable later) [11:30] Wizek: it doesn't feel so [11:31] Wizek: For example, why do I have to tell it sha256 twice? [11:31] Wizek: both func seems to require it, but why? [11:32] pyrotechnick: umm [11:32] pyrotechnick: not sure thats right [11:33] pyrotechnick: you shouldnt need the Hash('sha256') bit [11:33] planetic has joined the channel [11:33] planetic: Anyone have used browserify? http://substack.net/posts/24ab8c [11:33] pyrotechnick: https://github.com/dekz/dcrypt/blob/master/test/test.coffee [11:33] pyrotechnick: see this for some examples [11:33] pyrotechnick: planetic: yes [11:33] aliem has joined the channel [11:34] zomgbie has joined the channel [11:35] planetic: Is it ok in comparison with require.js? Does it load modules asyncronously? [11:35] troessner has joined the channel [11:35] Sami_ZzZ has joined the channel [11:36] eee_c1 has joined the channel [11:37] pyrotechnick: planetic: no it's much different and IMHO better [11:37] hlindset has joined the channel [11:37] hlindset has joined the channel [11:37] saschagehlich has joined the channel [11:37] pyrotechnick: it bundles them up at boot time [11:37] pyrotechnick: and then when clients request a file it mounts like /browserify.js [11:37] pyrotechnick: it contains a require() implementation [11:37] pyrotechnick: as well as all of the modules wrapped up in some simple wrappers to make them work with require [11:39] neoesque has joined the channel [11:39] mAritz has joined the channel [11:39] planetic: Ok thank you. [11:40] Sami_ZzZ has joined the channel [11:44] tmzt: anybody have a express-to-ORM REST solution or know a better way to handle child documents in mongo? [11:44] adambeynon has joined the channel [11:45] makuchaku has joined the channel [11:45] hebz0rl has joined the channel [11:45] matyr has joined the channel [11:46] Wizek: Thanks pyrotechnick , that works [11:47] superjudge has joined the channel [11:47] pyrotechnick has left the channel [11:47] pyrotechnick has joined the channel [11:47] pyrotechnick: no problem [11:48] pyrotechnick: what you have looks like old and new api trying to be used together [11:48] pyrotechnick: its a bit simpler now [11:48] pyrotechnick: check out the link if you need ecdsa :) [11:49] Wizek: pyrotechnick, What's ecdsa for? [11:49] Xano has joined the channel [11:50] pyrotechnick: better security [11:50] squeeks has joined the channel [11:50] pyrotechnick: better scalability [11:50] awenkhh has joined the channel [11:52] stepheneb has joined the channel [11:52] SamuraiJack_ has joined the channel [11:54] azend has joined the channel [11:55] Skola has joined the channel [11:55] Skola: what auth modules are recommended to go with express? [11:55] aliemmo has joined the channel [11:57] eldar has joined the channel [11:57] kriszyp has joined the channel [12:00] bluekite2000_ has joined the channel [12:01] tiagoa has joined the channel [12:01] bergie_ has joined the channel [12:01] abraham has joined the channel [12:02] Mrfloyd has joined the channel [12:04] papandreou has joined the channel [12:05] papandreou: SubStack: Eeee, you removed .camelCase() from optimist, what would it take to get that back in there? [12:05] TheDeveloper has joined the channel [12:05] bshumate has joined the channel [12:09] confoocious has joined the channel [12:09] confoocious has joined the channel [12:09] sherod has joined the channel [12:12] jarek has joined the channel [12:12] Wa has joined the channel [12:15] tmzt has joined the channel [12:15] jxck has joined the channel [12:16] herbySk has joined the channel [12:17] zorzar: the npm one line install wants to install to /usr, i'd like it to install to ~/.local how do i do this? [12:17] dyer has joined the channel [12:17] dyer has joined the channel [12:19] roidrage has joined the channel [12:20] SamuraiJack_ has joined the channel [12:24] jonaslund has joined the channel [12:24] pinksy has joined the channel [12:25] lukegalea has joined the channel [12:26] jed___ has joined the channel [12:28] mike5w3c has joined the channel [12:29] copongcopong has joined the channel [12:29] tmzt has joined the channel [12:30] nichdiekuh has joined the channel [12:31] micheil has joined the channel [12:31] MGT has joined the channel [12:32] piscisaureus has joined the channel [12:32] FireFly|n900 has joined the channel [12:35] VovaZaycev has joined the channel [12:39] matyr_ has joined the channel [12:40] postwait has joined the channel [12:41] eee_c has joined the channel [12:41] jonaslund has joined the channel [12:41] SeyZ has joined the channel [12:41] nonnikcam has joined the channel [12:42] tmzt has joined the channel [12:42] aliemmo has joined the channel [12:45] jacter has joined the channel [12:46] rfay has joined the channel [12:46] MGT has joined the channel [12:47] taf2 has joined the channel [12:47] fumanchu182 has joined the channel [12:51] jason has joined the channel [12:53] inverselimit has joined the channel [12:53] mattmcmanus has joined the channel [12:53] bluekite2000_ has joined the channel [12:53] FireFly has joined the channel [12:56] mattmcmanus has left the channel [12:57] aheckmann has joined the channel [12:57] AaronMT has joined the channel [13:00] confoocious has joined the channel [13:00] confoocious has joined the channel [13:00] softdrink has joined the channel [13:01] MGT has joined the channel [13:04] bbttxu_ has joined the channel [13:05] Visualiza has joined the channel [13:06] Visualiza: hey, anybody get node working on Mac OS 10.4? [13:06] robhawkes has joined the channel [13:07] thomblake has joined the channel [13:08] mscdex: wow 10.4? [13:08] \sega has joined the channel [13:09] Visualiza: not sure if it's possible, couldn't find any google results about 10.4 [13:10] mscdex: no idea, have you tried yet? [13:10] Visualiza: yes [13:10] mscdex: what's the problem? [13:10] Visualiza: i'm a bit out of my depth though [13:10] Visualiza: well the node directory is listed [13:11] Visualiza: but i'm not sure if it's 'installed' properly, and even if it is, i'm not sure i've added it to PATH correctly [13:11] tiemonster has joined the channel [13:11] mscdex: how did you build it? [13:12] mscdex: er install it [13:12] c4milo has joined the channel [13:12] Visualiza: i followed the second snippet on this page https://gist.github.com/579814 [13:12] Visualiza: now i'm trying the first, but it didn't work at all [13:12] beejeebus has joined the channel [13:13] viz has joined the channel [13:13] Visualiza: i have /usr/bin/node directory, but i'm not sure if there's supposed to be an executable file in their after installation? [13:14] mscdex: not /usr/bin usually [13:14] quackslike: Visualiza: i think you chose ~/local to install to - which means your home directory [13:14] F1LT3R has joined the channel [13:14] viz: I'm trying to make relational models with backbone, and have that saved via backbone-couchdb. is that possible out-of-the-box (i was planning on using backbone-relational)? [13:14] Visualiza: ~ [13:15] quackslike: so look in /Users/your login/local [13:15] Poetro has joined the channel [13:16] Visualiza: hmm, i have the directory local but it's empty [13:16] Visualiza: i'll go through the installer script line by line again [13:16] jtrudeau has joined the channel [13:16] sjbreen has joined the channel [13:17] mscdex: i'd just download the tarball, extract it, run `./configure && make` and see if it compiles and works correctly first [13:17] mscdex: i'm not sure anyone has tested on 10.4 before [13:17] quackslike: i use the first way, or somethng close(node-and-npm-in-30-seconds.sh) to install on OSX (up to date though) [13:18] Visualiza: ok i'll let you know if i get it working [13:18] quackslike: Visualiza: i'd give the way mscdex just described a shot first.. [13:18] quackslike: Visualiza: cant you just updte your mac? [13:18] Visualiza: installing Git was enough of a pain, but worth it in the end [13:19] Visualiza: it's a PPC so i'd need a new one. i have an iMac running snow leapord too, but i'd like to get it working on this. as much just to help me understand Unix better [13:19] quackslike: k [13:20] quackslike: node is my fav env to work in.. it kicks arse. [13:20] quackslike: nothing better. [13:20] quackslike: love the node [13:20] boaz has joined the channel [13:20] Visualiza: i want it right now for using the CoffeeScript tool [13:21] chjj: ew coffeescript =/ [13:21] quackslike: i have a real problem with CoffeeScript [13:21] demastrie has joined the channel [13:21] Visualiza: what's that [13:21] quackslike: i dont know why.. i just really do not like it [13:21] chjj: i dont, actually i do [13:21] demastrie has left the channel [13:21] chjj: youre compiling into a high level language [13:21] chjj: ... [13:21] chjj: ! [13:22] chjj: makes your code less portable [13:22] augustl: it's pretty bad that some beginners get the impression that plain JavaScript sucks ass, and CoffeeScript is the only way to write JavaScript. [13:22] chjj: yeah, that is a shame [13:22] quackslike: i think for me, i just like JS - the main reason i wanted to learn node.. [13:22] augustl: other than that, I don't mind that people want to use processors [13:22] quackslike: augustl: one thing that pisses me off is when modules i want to use are CoffeeScript - i refuse. [13:22] chjj: js is better than people think, it just has some stupid idiosyncracies you need to get used to [13:22] quackslike: lol [13:23] Visualiza: well, i refactored my WebApp by changing all the JS to CS. i liked it, cut down on the LOC and made it easier for me to focus on the real problems, not little details [13:23] adambeynon has joined the channel [13:23] augustl: quackslike: hmm true, that haven't happened to me yet [13:23] quackslike: chjj: yeah i'm no JS expert.. but i think it's well worth becoming one. [13:23] chjj: quakslike, i know what you mean, i usually end up porting them to js by hand [13:23] chjj: out of spite [13:23] drudge: Visualiza: how's performance [13:23] quackslike: chjj: nice :) [13:23] SamuraiJack_ has joined the channel [13:23] sunblush has joined the channel [13:23] chjj: thats actually how i learned cs [13:23] chjj: lol [13:23] quackslike: hehe [13:23] chjj: by porting stuff to js [13:24] quackslike: ironic isnt it.. [13:24] chjj: yes [13:24] chjj: but thats the only way i could justify learning it [13:24] quackslike: fair enough, i guess i will learn it one day... but i wont like it ;) [13:24] Visualiza: performance seems the same, haven't benchmarked or anything though. i'm not getting the browser to compile it for me, of course, i'm converting the code then putting the generated javascript in. i don't see why performance would change [13:24] Mrfloyd has joined the channel [13:25] chjj: i just dont see why people are attracted to it, if it were its own language fine, but youre compiling to a high level language [13:25] quackslike: Visualiza: it's pretty popular.. so i guess it must have something going for it. [13:25] Visualiza: the main attraction is high level loops [13:25] Visualiza: (for me anyway) [13:25] Rob- has joined the channel [13:25] telemachus: chjj: I think it's as simple as "tastes vary" - some people like the syntax better and things like list comprehensions [13:26] quackslike: back to working on my node-oracle-franken-driver [13:26] brolin has joined the channel [13:26] squeeks: Hey, you know we should probably make a DBI equivilant. [13:26] Visualiza: 'dosomething(item) for item in array when item.name isnt 'test' [13:26] squeeks: might solve this problem of "HAY GUYS WHAT MYSQL MODULE DO YOU GUYS REOCMMEND". [13:26] Visualiza: how much JS could would that take [13:27] quackslike: actually, fuck it, i'm gunna watch an ep of house and have a web scale latte [13:27] chjj: i dont like that syntax either [13:27] chjj: i dont like when the logical operators are at the end of the statement [13:27] Visualiza: you don't need to use long lines if you don't want [13:27] Visualiza: you could do [13:27] Visualiza: for item in array [13:27] chjj: its trying to look like a sentence or something [13:27] Visualiza: do something [13:28] eikaas_ has joined the channel [13:28] chjj: it would take a lot more than truncating some commonly used code [13:28] chjj: to get me to use a language that compiles to a high level one [13:28] Visualiza: i try to keep my lines short so usually i don't use the max possible expressiveness, but it's handy to ahve sometimes [13:30] Visualiza: the ouput is fairly readable, i mean you can debug it as pure javascript easily enough [13:30] jano has joined the channel [13:30] chjj: so if youre going to end up debugging it as javascript anyway... [13:30] chjj: i dont think i need to finish that sentece [13:30] chjj: sentence* [13:31] drudge: quackslike: you messed with node-odbc at all? [13:31] gf3: node- ol' dirty bastard code [13:35] gtramont1na has joined the channel [13:36] jonasen has joined the channel [13:37] bartt has joined the channel [13:37] Visualiza: hmm well here's the output of my attempt to install after extracting the tarball [13:38] Visualiza: http://paste.pound-python.org/show/6695/ [13:38] Visualiza: it appears i'm missing some files or components - not sure if they're all necessary? [13:38] chalaschek has joined the channel [13:39] squeeks: What's your python -V ? [13:39] pskept has joined the channel [13:39] Visualiza: also, looks like i get a Python error when it tries to install. perhaps i need to switch python default from 2.5 to 2.6 [13:39] Visualiza: 2.5 because i use Google App Engine [13:39] squeeks: might be an idea to put 2.6.1 in with pythonbrew or so [13:40] mscdex: i'd use at least 2.6 [13:40] Visualiza: so i need to tell it to use 2.6... or change the default version to 2.6 (i have it installed, just trying to remember how to make it default) [13:40] secoif has joined the channel [13:41] bbttxu_ has joined the channel [13:41] cbibler_ has joined the channel [13:42] bartt has joined the channel [13:42] dies-el has joined the channel [13:43] squeeks: or use pythonbrew/virtualenv and override the env vars set to the python install to somewhere else. [13:43] jxck has joined the channel [13:44] Visualiza: hmm, alarmingly the /usr/bin/python is 2.3.5... maybe 2.5 would work [13:44] SamuraiJack_ has joined the channel [13:44] timmywil has joined the channel [13:45] TroyMG: hey guys, noob question: how do I do console.log style string interpolation without using... console.log? [13:45] TroyMG: in other words, I'd like to do: var foo = fmt("blah %s", bar); [13:45] johndahlstrom has joined the channel [13:46] robhawkes has joined the channel [13:48] fermion has joined the channel [13:48] piscisaureus has joined the channel [13:50] mikegerwitz: TroyMG: You're looking for sprintf-style functionality, which unfortunately doesn't exist in node. I've used this in the past: http://phpjs.org/functions/sprintf:522 [13:52] chjj: you could copy and paste the `format` function from lib/console.js [13:53] brolin has joined the channel [13:53] fermion has joined the channel [13:53] mikegerwitz: chjj's option will work if you're just looking for the format console.log provides. sprintf() provides a great deal more. console.log simply follows firebug's impl, which is unfortunate [13:54] balaa has joined the channel [13:56] mbrevoort has joined the channel [13:56] baoist has joined the channel [13:56] ceej has joined the channel [13:56] jet18 has joined the channel [13:56] amacleod has joined the channel [13:57] crohr_ has joined the channel [13:58] eyesUnclouded has joined the channel [13:58] crohr has joined the channel [13:59] kmwallio has joined the channel [13:59] medikoo has joined the channel [14:01] slyphon has joined the channel [14:02] pcardune has joined the channel [14:03] eee_mk has joined the channel [14:03] dies_el has joined the channel [14:03] bbttxu_ has joined the channel [14:10] yhahn has joined the channel [14:10] jxck has joined the channel [14:10] dnolen has joined the channel [14:11] postwait has joined the channel [14:12] jet18: I've got a http.get function running with different paths but the rest of the options stay the same. Is it possible to set the path of the options object independantly or do I have to reset it every time? [14:13] jarek has joined the channel [14:13] jarek has joined the channel [14:13] matbee has joined the channel [14:13] jarek has joined the channel [14:14] Guest43985 has joined the channel [14:14] igl has joined the channel [14:14] TroyMG: thanks chjj and mikegerwitz [14:14] matbee: Is anyone aware of a .NET/Mono implementation of a Websocket which can connect to node's websocket? [14:15] jarek has joined the channel [14:15] jarek has joined the channel [14:15] jarek has joined the channel [14:15] jarek has joined the channel [14:16] jarek has joined the channel [14:16] BillyBreen has joined the channel [14:16] jdalton has joined the channel [14:17] jdalton has left the channel [14:17] willwhite has joined the channel [14:18] drudge: matbee: you tried superwebsocket? http://superwebsocket.codeplex.com/ [14:19] matbee: i think that's the websocket server [14:19] dies-el has joined the channel [14:19] matbee: i could be wrong [14:19] brettgoulder has joined the channel [14:20] zemanel has joined the channel [14:20] awenkhh has joined the channel [14:21] liar has joined the channel [14:21] bayashi has joined the channel [14:21] SeyZ has joined the channel [14:23] awenkhh_ has joined the channel [14:23] yhahn has joined the channel [14:24] logik-bomb has joined the channel [14:24] slyphon has joined the channel [14:24] edude03 has joined the channel [14:25] trotter has joined the channel [14:25] edude03 has left the channel [14:25] bzinger has joined the channel [14:26] pifantastic has joined the channel [14:26] logik-bomb: Currently I'm injecting an iframe to stablish a websocket connection from any website into my node.js server. Is it possible to do that without the iframe bit? Injecting just the required js into the existent DOM? [14:26] logik-bomb: thanks [14:27] kmiyashiro has joined the channel [14:29] thoolihan has joined the channel [14:29] dcampano has joined the channel [14:30] Visualiza: meh, tried changing default python to 2.6.5 still get an error upon trying to install Node (on Mac OS 10.4). if i type node into terminal i get command not found. however, it's just possible that Node did install sufficiently and i've just not got it in my PATH or whatever. the question is, what exactly should you put in your path -- is there a specific file somewhere that launches node? [14:30] drudge: what error do you get [14:31] Visualiza: http://paste.pound-python.org/show/6695/ [14:31] Visualiza: File "/Users/amcneill/Desktop/node-v0.4.7/wscript", line 641, in build [14:31] Visualiza: print "DEST_CPU: " + bld.env['DEST_CPU'] [14:31] Visualiza: TypeError: cannot concatenate 'str' and 'list' objects [14:31] davidwalsh_ has joined the channel [14:32] Visualiza: actually looks to me that it was just about to start installing using Python script then fell over immediately [14:32] bartt has joined the channel [14:33] mscdex: are you sure it's using python 2.6? [14:34] Visualiza: not entirely... i mean if i type Python that's what opens. [14:34] Visualiza: maybe i can go into the Python script itself and investigate [14:34] k1ttty has joined the channel [14:34] drudge: python --version [14:34] Visualiza: also in the Node directory it has an alias 'python' that doesn't point to anything. [14:34] Visualiza: python --version [14:34] Visualiza: oops [14:35] Visualiza: 2.6.5 [14:35] cbibler has joined the channel [14:35] SamuraiJack_ has joined the channel [14:36] bergie has joined the channel [14:36] mscdex: matbee: superwebsocket includes a client [14:37] drudge: indeed it does [14:38] yhahn1 has joined the channel [14:39] ryanfitz has joined the channel [14:39] jlecker has joined the channel [14:41] pcardune has joined the channel [14:41] yhahn has joined the channel [14:43] mynyml has joined the channel [14:43] cbibler_ has joined the channel [14:45] Visualiza: hmm i seem to get an error around the value DEST_CPU [14:45] yhahn1 has joined the channel [14:45] Visualiza: which has something to do with the destination CPU architecture it's trying to build for [14:45] Visualiza: i'm betting it doesn't recognize PPC cpu architecture properly [14:46] Visualiza: and doesn't build on it [14:46] Visualiza: although... maybe someone has tested Node on 10.5 with a G5 machine? which would disprove that [14:46] Visualiza: but i'm going to give up on it for now [14:46] eb4890 has joined the channel [14:46] nibblebot has joined the channel [14:48] avalanche123 has joined the channel [14:48] squeeks: Visualiza: won't work on a G5. [14:48] squeeks: V8 doesn't support PPC. [14:48] Visualiza: m = {'x86': 'ia32', 'i386':'ia32', 'x86_64':'x64', 'amd64':'x64'} # this line seems to denote some of the architectures, not even the supported ones. doesn't menetion PPC at all [14:49] Visualiza: yeah squeeks i just figured as much [14:49] Visualiza: forgot you can't even get Chrome installed on this comp [14:49] Visualiza: thanks anyway [14:52] omni5cience_ has joined the channel [14:53] Venom_X has joined the channel [14:53] Nican has joined the channel [14:53] gmonnerat has joined the channel [14:53] jtsnow has joined the channel [14:53] MrTopf has joined the channel [14:54] sivy has joined the channel [14:54] Visualiza has left the channel [14:55] ewdafa has joined the channel [14:55] w_wilkins has joined the channel [14:55] azend_ has joined the channel [14:56] Sidnicious has joined the channel [14:56] Sidnicious has joined the channel [14:57] strmpnk has joined the channel [15:01] mike5w3c has joined the channel [15:02] gmonnerat has left the channel [15:03] gmonnerat has joined the channel [15:04] sonnym1 has joined the channel [15:04] draginx has joined the channel [15:04] catch has joined the channel [15:05] sub_pop has joined the channel [15:05] gazumps has joined the channel [15:06] alek_br_ has joined the channel [15:06] jonaslund has joined the channel [15:08] gmonnerat has left the channel [15:08] d0k has joined the channel [15:08] nuba has joined the channel [15:09] colinclark has joined the channel [15:09] aho has joined the channel [15:11] davidsklar has joined the channel [15:11] Tidwell has joined the channel [15:11] ezl has joined the channel [15:12] aconbere has joined the channel [15:14] m64253 has joined the channel [15:16] nuba has joined the channel [15:16] glimpsenirvana has joined the channel [15:16] patcoll has joined the channel [15:16] pyrony has joined the channel [15:17] binarypie has joined the channel [15:18] briznad has joined the channel [15:18] slyphon has joined the channel [15:19] jacter has joined the channel [15:23] mbarnes679 has joined the channel [15:24] MikhX has joined the channel [15:25] zeade has joined the channel [15:26] fangel has joined the channel [15:27] criswell has joined the channel [15:28] keeto has left the channel [15:28] keeto has joined the channel [15:30] kmiyashiro has joined the channel [15:31] pyrony has joined the channel [15:31] catshirt has joined the channel [15:32] pcardune has joined the channel [15:33] bzinger has joined the channel [15:34] mbrevoor_ has joined the channel [15:34] matjas has joined the channel [15:35] criswell has joined the channel [15:35] dkords has joined the channel [15:36] bbttxu_ has joined the channel [15:37] jzacsh has joined the channel [15:37] jzacsh has joined the channel [15:39] indutny has joined the channel [15:39] zomgbie has joined the channel [15:39] jakehow has joined the channel [15:41] kioopii has joined the channel [15:41] matjas has joined the channel [15:43] kioopii: looking into implemeting 'connect via twitter'. would node-oath and https://gist.github.com/555607 be the way to go? any experiences? [15:43] heino_ has joined the channel [15:43] kioopii: *node-oauth [15:43] sub_pop has joined the channel [15:44] zeade has joined the channel [15:44] awenkhh has joined the channel [15:45] ewdafa has joined the channel [15:45] _1marc has joined the channel [15:46] thalll has joined the channel [15:46] Sidnicious: Hey. I was just trying out mongoose in the REPL, and couldn't, for the life of me, get setters to work. I boiled it down to a few line example pulled from the docs, pasted it into a fresh repl, and ran it. Failure. But, I finally discovered that the same code saved to a .js file and executed with node WORKS PERFECTLY. [15:46] ryankirkman has joined the channel [15:47] Sidnicious: When would the same code behave differently in the REPL vs in a .js file? [15:47] jtsnow has joined the channel [15:47] Sidnicious: https://gist.github.com/c878382fed072b1902d7 [15:48] Aikar: Sidnicious: when the stars are aligned [15:49] Sidnicious: Aikar: Very helpful :p [15:49] chjj: i heard repl acts different on 2012 [15:49] chjj: ! [15:49] Aikar: didnt you hear [15:49] Aikar: the words ending this saturday [15:49] Aikar: there is no 2012 [15:49] chjj: damn [15:49] halfhalo: good times... [15:49] Aikar: worlds* [15:50] Yuffster_work has joined the channel [15:50] Aikar: dunno bout you guys, but ima ride out the apocalypse at the beach! [15:50] chjj: but in seriousness, i suppose repl doesnt have a __dirname or __filename [15:50] Aikar: drinking yuengling! [15:50] chjj: or module [15:50] Aikar: yeah [15:50] Aikar: the initial module doesnt [15:50] Aikar: but required modules will [15:51] chjj: yeah [15:51] tdegrunt has joined the channel [15:51] norviller has joined the channel [15:51] Aikar: imo __dirname should be filled to CWD [15:51] chjj: thats what im saying, those are the differences i can think of [15:51] chjj: yeah [15:51] Sidnicious: Yeah, it doesn't fail hard, it just doesn't behave right. Y'all can try it yourselves from that Gist. [15:51] chjj: the filename should just be stdin [15:51] Insanity5902 has joined the channel [15:52] hybsch has joined the channel [15:52] Bj_o_rn has joined the channel [15:53] jtsnow has joined the channel [15:53] eldios: is anyone aware of some nodejs code to have slides online? [15:54] criswell has joined the channel [15:54] tbranyen: eldios: huh [15:54] eldios: like all those "ppt"-like sites which are spreading [15:54] tbranyen: thats not really related to nodejs [15:54] telemachus: Like a slidemaker program? Not sure node would be good for that [15:54] tbranyen: those are just html5 slidedecks [15:54] chjj: why would you need node for that [15:54] eldios: oh.. tnx tbranyen [15:54] telemachus: I like slidedown (ruby gem) for htat [15:54] eldios: look for that =) [15:54] telemachus: You write the slides in Markdown (easy) [15:54] amerine has joined the channel [15:54] tbranyen: eldios: i wrote code to synchronize slides with nodejs :D [15:54] Corren has joined the channel [15:55] eldios: anyway to answer all of you.. I would need that to say in my talk "even my slides are online just now with NodeJS" [15:55] planetic: http://wiki.commonjs.org/wiki/Modules/AsynchronousDefinition, has anyone used such modules from normal node modules? Such sigtanure comes from the require.js. It is a way to use them in reverse direction: I can require a "normal" module from AMD via r.js script but I can't figure out how to do it in oposite direction. [15:55] eldios: ^^ [15:55] sirganya has joined the channel [15:55] Corren has joined the channel [15:56] chjj: planetic: what? [15:57] slyphon has joined the channel [15:58] pyrony has joined the channel [15:59] planetic: Require.js specifies its modules in so-called "AMD" fasion. I want to use such a modules from my node modules. [16:00] planetic: Maybe someone have done this already? [16:00] Me1000 has joined the channel [16:00] sirganya: I'm having a problem where one of my requests takes about a minute to end, other ones are fine using exactly the same methods, where would I start debugging this? [16:00] tbranyen: planetic: last i read require.js is compatible with existing node modules [16:01] dingomanatee has joined the channel [16:03] tjholowaychuk has joined the channel [16:04] pyrotechnick has left the channel [16:04] aberry has joined the channel [16:04] philtor has joined the channel [16:05] bbttxu_ has joined the channel [16:08] luisbug has joined the channel [16:08] kjeldahl has joined the channel [16:10] kmiyashiro has joined the channel [16:10] V1 has joined the channel [16:11] sandropadin has joined the channel [16:11] ryah has joined the channel [16:15] aberry has left the channel [16:15] btipling has joined the channel [16:16] sh1mmer has joined the channel [16:16] Schmallon has joined the channel [16:17] caolanm has joined the channel [16:17] stephank has joined the channel [16:17] boehm has joined the channel [16:17] awenkhh has joined the channel [16:19] towski has joined the channel [16:19] alek_br_ has joined the channel [16:20] Tom-Tomaso has joined the channel [16:26] beldur has joined the channel [16:26] \sega has joined the channel [16:27] FireFly|n900 has joined the channel [16:28] bluekite2000_ has joined the channel [16:28] ryah has joined the channel [16:29] perezd has joined the channel [16:29] saschagehlich: did anyone try dropbox-node yet or does anyone have experiences with pushing large file through oauth? [16:29] kmiyashiro has joined the channel [16:32] springmeyer has joined the channel [16:34] donaldpcook has joined the channel [16:37] broofa has joined the channel [16:37] chrislorenz has joined the channel [16:38] rfay has joined the channel [16:38] superjudge has joined the channel [16:39] ezl has joined the channel [16:39] \sega has joined the channel [16:39] FredFred has joined the channel [16:40] dnunes has joined the channel [16:44] awenkhh has joined the channel [16:46] azend has joined the channel [16:46] sonnym1 has joined the channel [16:47] zcopley has joined the channel [16:48] sreuter has joined the channel [16:48] eresair has joined the channel [16:48] sreuter: hello * [16:49] q_no has joined the channel [16:49] arpad_ has joined the channel [16:49] Skola: what's currently the best documented/easiest authentication module for node? Only need basic authentication, no oauth etc. [16:50] draginx: skola: goooood luck [16:50] TroyMG: Skola: are you using connect/express? [16:50] draginx: thats the only thing missing from this community [16:50] draginx: wait troy :O [16:50] Skola: express [16:50] sreuter: i'm still looking for somebody who used crypto.createDecipher(); to decrypt binary-streams… :-) http://groups.google.com/group/nodejs/browse_thread/thread/a1cac854f7ff319a# [16:50] draginx: u know of one?! I am using express [16:50] TroyMG: pretty sure I saw a connect one - just a sec [16:51] luisbug has joined the channel [16:51] draginx: Also, how does nodejs stack compared to ruby on rails in terms of web development and benchmarking (we'll say express for convience sake) [16:51] baudehlo has joined the channel [16:51] squeeks: draginx: apples, and oranges. [16:51] Skola: in terms of web dev? how do you mean? [16:52] draginx: Like developing websites [16:52] draginx: squeeks: sort of except im really comparing the deployment using express compared to ruby on rails (obviously we don't have a controller/model interface within express) [16:52] draginx: Like if I were to make a pretty big website, what would u use? [16:52] tjholowaychuk: generalized auth usually kinda sucks but yeah there are a few connect middleware [16:53] squeeks: draginx: I would use the best tool for the job. [16:53] c4milo: tjholowaychuk: ++ [16:53] tjholowaychuk: draginx: you would research and use something that you think will work well :p [16:53] Skola: why does it suck tj? [16:53] KirinDave has joined the channel [16:53] TroyMG: Skola & draginx: https://github.com/ciaranj/connect-auth [16:53] Skola: should I roll my own? [16:53] c4milo: tjholowaychuk: I hate auth frameworks that have tons of auth schemas [16:53] tjholowaychuk: Skola: I've just never seen it work well [16:53] squeeks: tjholowaychuk: rahh. dox is broken. patches welcome? [16:54] Skola: TroyMG thanks [16:54] tjholowaychuk: squeeks: I'm like mid-rewrite with dox haha [16:54] tjholowaychuk: still quite a bit to go though [16:54] Skola: was just looking at it, seems a bit dead [16:54] context: any node specific doc generators ? :x [16:54] squeeks: tjholowaychuk: feature request: dump out pure markdown! [16:54] TroyMG: tjholowaychuk: generally agree re auth fxs, but I'm really digging everyauth [16:54] squeeks: that way, I can just build doc/ in my npm dists from code comments [16:54] draginx: tjholowaychuk: right but i mena like in terms of performance and scalability which would be favored? [16:55] Skola: draginx for what? [16:55] tjholowaychuk: squeeks: yeah totally, I'll try and make sure to add that to the next one [16:55] TroyMG: (and specifically mongoose-auth: https://github.com/bnoguchi/mongoose-auth) [16:55] draginx: Skola: for web? Sorry dont understand ur question [16:55] tjholowaychuk: draginx: well obviously not rails [16:55] sleeplessinc has joined the channel [16:55] saschagehlich: ryah: TypeError: Cannot call method 'emit' of undefined at CleartextStream. (http.js:1202:9) << why does this happen? :( [16:55] squeeks: tjholowaychuk: ta! [16:55] sreuter: Skola: https://gist.github.com/b15774d6ac7b4f2082e5 [16:55] squeeks: draginx: you're making assumptions which is really bad form. [16:56] Skola: draginx I mean what scale, what kind of app etc [16:56] Skola: sreuter thanks, ;D [16:56] draginx: Skola: the app would be a website in which people can post tutorials on how to do things [16:56] context: draginx: use the language/framework thats proper for the project. [16:56] stepheneb has joined the channel [16:56] draginx: context: how do i know whats proper for the project? <— this s essentially what i was getting at [16:57] context: "which lang/framework is better?" is a very broad and vague question. [16:57] context: draginx: its like asking which shoes help you run faster in the fog [16:57] Skola: draginx: both nodejs and rails will do, but I don't think performance matters that much in your usecase [16:57] TroyMG: I <3 node, but if you just want to stand up a simple website for posting tutorials and don't care much about performance, rails is going to be an easier path [16:57] sreuter: skola: no problem, hope this helps… [16:57] frewsxcv has joined the channel [16:57] ryah: saschagehlich: upgrade to v0.4 HEAD [16:57] draginx: right.. ok thanks :D [16:57] frewsxcv: is there a vector version (or at least higher quality) verson of the node.js logo available? [16:58] Marak has joined the channel [16:58] abraham has joined the channel [16:58] yozgrahame has joined the channel [16:58] TroyMG: the library ecosystem for rails just has a much larger head start [16:58] MGT has joined the channel [16:58] tjholowaychuk: if you hate writing code use rails [16:58] Marak: TroyMG: I tried out some rails, the community is full of retards. [16:59] draginx: lol =x [16:59] saschagehlich: ryah: so what's the problem there? [16:59] Marak: TroyMG: I've never seen more poorly put together modules [16:59] TroyMG: Marak: the rails community is just bigger [16:59] chjj: rails = worst name for anything ever [16:59] TroyMG: more people, more retards [16:59] Marak: TroyMG: Even is PHP [16:59] tjholowaychuk: Marak: isn't the plugin system great? [16:59] Marak: TroyMG: the entry barrier is lower [16:59] tjholowaychuk: spews itself over your structure [16:59] tjholowaychuk: good times [16:59] Marak: tjholowaychuk: its cool man, just overwrite the Net module [16:59] Marak: tjholowaychuk: Also, we overwrote the logger [16:59] TroyMG: tjholowaychuk: agreed. npm is far more elegant (well, 1.0 is anyway) [16:59] tjholowaychuk: as soon as i saw how rails plugins worked [16:59] tjholowaychuk: i never touched it again [17:00] tmzt has joined the channel [17:00] Marak: tjholowaychuk: so if you do http requests you might actually be doing a file system read [17:00] jonasen has joined the channel [17:00] steffkes has joined the channel [17:00] Marak: im not sure who is monkey patching who first [17:00] febits has joined the channel [17:00] MGT_ has joined the channel [17:00] c4milo: I don't like to have spread out in different directories all my plugin's logic [17:00] c4milo: that sucks [17:00] TroyMG: rails is messy, yes - but draginx's use case sounds to me more like a "lets get this thing out the door" [17:00] sreuter: ryah: did you already made a final decision about dropping the crypto stuff from the node core. i mean the decipher/cipher stuff… i notice you wanted to so in some chat logs from a few months ago. [17:01] TroyMG: it isn't a complicated app. rails or django et all would work fine [17:01] TroyMG: pick the right tool for the job [17:01] draginx: TroyMG: aye I'll also be needing to use nodejs no matter what though =/ [17:01] draginx: need a drawboard :P [17:01] ryah: sreuter: it's not being dropped [17:01] TroyMG: ah [17:01] TroyMG: well that changes things [17:01] Skola: lol [17:01] Skola: sort of [17:01] draginx: Right, I mean I could do BOTH technically then run node on a seperate port [17:01] TroyMG: right, but :effort: [17:01] draginx: lol [17:01] ryah: sreuter: we're beyond the point where we can drop api in the name of minimalism [17:02] draginx: the only thing eeping me away from nodejs is lack of a good auth system :| [17:02] TroyMG: does it have to be basicauth draginx? [17:02] tjholowaychuk: draginx: just write one [17:02] tjholowaychuk: its not that hard [17:02] chjj: draginx: thats strange, why? [17:02] TroyMG: just curious. most folks use forms [17:02] Corren_ has joined the channel [17:02] [[zz]] has joined the channel [17:02] FredFred has joined the channel [17:02] chjj: basic auth is trivial to do [17:02] draginx: chjj: idk..? TroyMG idk what basicauth is, tjholowaychuk ill see what I can do :P [17:02] kmiyashiro has joined the channel [17:03] deedubs: draginx: I'm liking everyauth [17:03] snearch has joined the channel [17:03] matjas has joined the channel [17:03] TroyMG: deedubs: +1 to everyauth https://github.com/bnoguchi/everyauth [17:03] sirganya: I'm stuck, for some reason the body of my POST won't trigger the end event. [17:03] draginx: deedubs: https://github.com/bnoguchi/everyauth this? [17:03] draginx: ahh yer [17:03] TroyMG: (and if you're using MongoDB Brian's mongoose-auth is super duper) [17:03] chjj: mongoose is a monster [17:03] TroyMG: draginx: basicauth is the shitty auth you get popup dialogs for to enter your username/pwd [17:03] MGT has left the channel [17:03] deedubs: draginx TroyMG yeah that's the one. I'm working on adding google openid+oauth hybrid in as well [17:03] sreuter: ryah: ahh, sounds great.. at least to me :-) you have any ideas about somebody using crypto.createDecipher for binary stream decoding? like described in this post? http://groups.google.com/group/nodejs/browse_thread/thread/a1cac854f7ff319a# .. [17:03] draginx: deedubs: this is ur app? [17:04] deedubs: draginx: no its not [17:04] TroyMG: chjj: meh, mongoose isn't that bad. the author of everyauth just added adhoc schemas to mongoose a few days ago [17:04] TroyMG: that was my big beef with it until then [17:05] TroyMG: (besides the fact that the NPM published version - 1.3.3 - is horribly broken) [17:05] chjj: mongoose just seems so heavyweight, id rather just use mongo-db-native if i were using mongo [17:05] draginx: deedubs: it seems like it *has* to use mongoos? O_o cant use mysq [17:05] deedubs: ACTION runs to check mongoose version [17:05] deedubs: draginx: wrong [17:05] deedubs: It doesn't care how the user objects are stored and returned [17:05] chjj: draginx: whered you get that idea? [17:06] deedubs: draginx: you write your own findOrCreateUser [17:06] draginx: express helpers on the wiki [17:06] TroyMG: draginx: mongoose-auth is an implementation of everyauth using mongoose [17:06] draginx: right [17:06] TroyMG: you could use everyauth with whatever [17:06] deedubs: which could use pigeons if you use promises and not sync [17:06] TroyMG: mysql, flatfile [17:06] chjj: flat files for life [17:06] chjj: whos with me! [17:06] chjj: ... [17:06] TroyMG: chjj: the problem with mongo-db-native is how do you add functionality to your models? [17:06] bruce has joined the channel [17:06] TroyMG: you end up rebuilding half of mongoose [17:07] nadirvardar has joined the channel [17:07] chjj: exactly, half [17:07] TroyMG: when you want methods on your model [17:07] indutny has joined the channel [17:07] chjj: that means that at least half of mongoose is useless bloat, by your own concession [17:07] deedubs: ... [17:07] deedubs: 1/2 is adding functionality to your models [17:08] deedubs: 1/64 is validations [17:08] TroyMG: it wasn't exactly a scientific measurement, but yes, I'll concede that when using a library you often pull down stuff you don't need [17:08] deedubs: 1/256 is callbacks [17:08] deedubs: 1/1024 might be plugins [17:08] deedubs: I'm sure we can add this up to [17:08] deedubs: 1 [17:08] matbee: Also, on Webos their apps don't support websockets--- but the new webos 2.x include node.js... Is it possible to connect to another node websocket via node? [17:08] TroyMG: deedubs: what in mongoose is it that you never ever need? [17:08] TroyMG: virtuals? static methods? [17:08] deedubs: TroyMG: I'm agreeing with you, sorry [17:09] deedubs: I quite enjoy mongoose [17:09] TroyMG: ah [17:09] TroyMG: I should've addressed that at chjj then :-) [17:09] TroyMG: mongoose is mostly a wrapper around mongodb-native now anyway [17:09] Skola: sreuter, basicAuth did the trick, thanks [17:10] harth has joined the channel [17:10] sridatta has joined the channel [17:10] sreuter: Skola: wonderful, don't forget to add it to all routes you need. or global. [17:11] Skola: yeah did that [17:11] Skola: it's nice and tiny [17:11] Skola: just what I need for now [17:11] sreuter: awesome. [17:11] jbpros has joined the channel [17:13] blueadept has joined the channel [17:15] gf3: tjholowaychuk: yao, did express lose it's generator? [17:16] bene1 has joined the channel [17:16] tjholowaychuk: gf3: express(1) ? nope should still be there [17:16] tjholowaychuk: npm -g install express [17:16] aphelion has joined the channel [17:17] tmzt has joined the channel [17:18] jeremyselier: hi guys, is there a way to set a timeout when fetching data with http.get ? [17:18] langworthy has joined the channel [17:19] gf3: tjholowaychuk: ahh, right, defaults to local install [17:19] tjholowaychuk: gf3: yeah, should still be there somewhere [17:19] tjholowaychuk: not sure where npm puts it in node_moduels [17:19] tjholowaychuk: or if you have to ./node_modules/express/bin/express [17:20] NetRoY has joined the channel [17:21] frewsxcv: is there a vector version (or at least higher quality) verson of the node.js logo available? [17:21] draginx: http://pastie.org/private/opachoclcyzjhkmumul9w any idea why this error would pop up? (connect is not working correctly..?) [17:21] tjholowaychuk: draginx: let's see your config [17:21] tjholowaychuk: for the middleware [17:22] CIA-104: node: 03koichik 07v0.4 * rd4f82ea 10/ (lib/dns.js test/simple/test-c-ares.js): [17:22] CIA-104: node: Fix dns.resolve() with 'PTR' throws Error: Unknown type "PTR" [17:22] CIA-104: node: Fixes #1038 - http://bit.ly/kaBJR4 [17:22] draginx: tjholowaychuk: http://pastie.org/private/yybtpcjhzacoceljrddiq [17:22] tjholowaychuk: draginx: you need cookieParser() above session() [17:22] tjholowaychuk: should work after that [17:22] draginx: ah ur right sorry bout that :S [17:22] admc1 has joined the channel [17:22] mikey_p: i know this may be an odd question, but with express-resource is there anyway to lookup a route for a resource, i.e. to get the URL in a template? [17:23] tmzt has joined the channel [17:23] tjholowaychuk: mikey_p: not that odd, pretty sure I got that same question a few days ago [17:23] tjholowaychuk: but not easily (yet) no [17:23] ryah: it's almost time for another stable release [17:23] ryah: please bother me if we need to fix something [17:24] mikey_p: ah, i just found myself looking at the docs to remember what the route for each action/resource is [17:24] tjholowaychuk: mikey_p: ah gotcha [17:24] tjholowaychuk: oh noes [17:24] tjholowaychuk: dyld: bad weak bind opcode 47 [17:25] jtsnow has joined the channel [17:26] eyesUnclouded has joined the channel [17:26] jayfresh has joined the channel [17:26] tedsuo has joined the channel [17:26] mikeal has joined the channel [17:27] mikeal: anyone know if this memory leak in jsdom was fixed? [17:27] sreuter: ryah: hm, that depends.. if this crypto glitch I see is a bug or just my silly fault :-) [17:27] JojoTheBoss has joined the channel [17:28] balaa has joined the channel [17:28] jano has joined the channel [17:30] hij1nx has joined the channel [17:30] Overv: for some reason I can only access my node.js server with ip 127.0.0.1 when it's running on my pc in cygwin [17:30] Tom-Tomaso has joined the channel [17:30] Overv: not even lan ips like 192.168.0.100 work [17:30] Overv: any idea what's up? [17:31] Overv: when I run an apache server on the same port, it works fine [17:33] dguttman has joined the channel [17:35] perlmonkey2 has joined the channel [17:38] Country has joined the channel [17:38] vnaren has joined the channel [17:38] vnaren has left the channel [17:38] vnaren has joined the channel [17:38] MikeMakesIt has joined the channel [17:40] dve_ has joined the channel [17:41] coreb has joined the channel [17:42] mcantelon has joined the channel [17:43] NetRoY has joined the channel [17:44] eguest309 has joined the channel [17:44] mikegerwitz: Overv: I do not run node under cygwin, but ensure you're binding to the appropriate IP. If no IP is given, it should bind to all interfaces by deafult. If you specify localhost, it'll bind only to localhost. [17:45] mikegerwitz: default* [17:45] Overv: ah, silly me [17:45] Overv: I should just bind to the LAN ip, right? [17:45] NetRoY has joined the channel [17:45] mikegerwitz: Overv: That's generally better than binding to all interfaces, yes [17:45] Overv: mikegerwitz: thanks [17:47] dve_ has joined the channel [17:47] eguest309: hello guyys.a question.i am running node on rhe 5.7.is there any utility or way for me to start a node process in the background without resorting to writng /etc/init.d/ scripts and editing the iniitab so it can restart automatcally once an error occurs.i used upstart in ubuntu and that was simple .wondering if there is any simple alternative for dhe5.7 [17:47] ryan0x2 has joined the channel [17:50] darshanshankar has joined the channel [17:51] kioopii has joined the channel [17:51] Rodtusker has joined the channel [17:52] harth has joined the channel [17:52] Opaque has joined the channel [17:54] eguest309: any ideas? [17:54] sridatta has joined the channel [17:55] sridatta has joined the channel [17:56] truedat101 has joined the channel [17:56] CIA-104: node: 03Ryan Dahl 07v0.4 * re83c695 10/ src/node_crypto.cc : [17:56] CIA-104: node: Disable compression with OpenSSL. [17:56] CIA-104: node: This improves memory and speed. Users may apply compression in "userland" [17:56] squeeks has left the channel [17:56] bartt has joined the channel [17:56] derencius has joined the channel [17:57] NetRoY has joined the channel [17:58] NetRoY has joined the channel [17:59] rauchg has joined the channel [18:00] dmcquay has joined the channel [18:00] _1marc has joined the channel [18:01] febits has joined the channel [18:01] Tom-Tomaso has joined the channel [18:02] tmzt has joined the channel [18:02] phiggins has left the channel [18:02] Aria has joined the channel [18:03] Votaguz has joined the channel [18:03] NetRoY has joined the channel [18:03] patcito has joined the channel [18:03] Marak has joined the channel [18:04] Marak: does anyone know what causes this error: dlopen(/Users/maraksquires/dev/nodejitsu/node_modules/daemon/build/default/daemon.node, 1): no suitable image found. Did find: /Users/maraksquires/dev/nodejitsu/node_modules/daemon/build/default/daemon.node: mach-o, but wrong architecture [18:04] Marak: seems to be happening for all my c add-ons [18:04] c4milo: Marak: recompile ? [18:05] c4milo: did it work recompiling? [18:05] ryah has joined the channel [18:06] niftylettuce has joined the channel [18:06] piscisaureus has joined the channel [18:06] niftylettuce: I'm using emailjs and after the first email, any further attempts at using email.send fail, it gives me an auth error code 7, yet it works the first time [18:07] elijah has joined the channel [18:07] brolin has joined the channel [18:07] jacobolus has joined the channel [18:07] Xano has joined the channel [18:08] NetRoY has joined the channel [18:08] niftylettuce: { code: 7, [18:08] niftylettuce: message: 'no form of authorization supported', [18:08] niftylettuce: smtp: undefined } [18:09] Guest75677 has joined the channel [18:09] NetRoY has joined the channel [18:11] mjr_ has joined the channel [18:11] tilgovi_ has joined the channel [18:11] Rob- has joined the channel [18:11] NetRoY has joined the channel [18:12] sreeix has joined the channel [18:13] NetRoY has joined the channel [18:14] brownies has joined the channel [18:14] NetRoY has joined the channel [18:15] NetRoY1 has joined the channel [18:16] balaa has joined the channel [18:18] jmoyers has joined the channel [18:18] mbrevoort has joined the channel [18:19] syskk has joined the channel [18:19] syskk: What is everyone using Node.js for here? [18:19] springmeyer_ has joined the channel [18:20] NetRoY has joined the channel [18:20] kmiyashiro: a web server/api proxy [18:20] brownies: a side project web app [18:20] xeodox has joined the channel [18:21] NetRoY has joined the channel [18:21] mikl has joined the channel [18:21] mikl has joined the channel [18:21] mikegerwitz: syskk: Sharing code between server and client for web apps, primarily. [18:22] lorinc has joined the channel [18:22] jonaslund has joined the channel [18:23] syskk: great [18:23] mjijackson has joined the channel [18:24] syskk: I guess topic refers to the node.js vs erlang server performance benchmark [18:24] eguest309 has left the channel [18:24] sreuter: syskk: a simple, speedy & secure "document" management system :-) [18:25] mbrevoort has joined the channel [18:25] niftylettuce: anyone here use emailjs? [18:28] syskk: sreuter: cool [18:29] jonaslund: hrrrm [18:29] jonaslund: syskk: any particular benchmark ? [18:29] jonaslund: benchmarks are useless anyhow [18:30] jonaslund: erlang will never be faster than node [18:30] jonaslund: and node will never be faster than erlang [18:30] jonaslund: at particular stuff [18:30] puffpio has joined the channel [18:31] syskk: sure, anyways, what makes Node.js awesome to me is that it's javascript [18:31] jonaslund: same here [18:31] syskk: is there any node extension that allows meta-programming like this: http://ejohn.org/blog/javascript-getters-and-setters/ [18:31] Rodtusker has joined the channel [18:31] tiglionabbit_ has joined the channel [18:32] stagas: these benchmarks would have meaning if they were against identical complex web apps that also access db, which are 99% of the cases [18:32] zeade has joined the channel [18:32] tjholowaychuk: syskk: v8 has accessors [18:32] rauchg has joined the channel [18:32] syskk: I just found this: http://dailyjs.com/2010/03/12/nosuchmethod/ [18:32] stagas: optimizing hello world doesn't mean anything [18:32] tbranyen: $( this ).bind( "newcomponentinfo", $.proxy( function( evt, info ) { [18:32] tbranyen: this.data = info.data; [18:32] tbranyen: this.render(); [18:32] tbranyen: my b [18:33] syskk: can't find the full documentation of V8's non standard features though [18:33] jonaslund: stagas: that's just stupid [18:33] jonaslund: stagas: you'll prolly have a quite different design in some regards between a erlang and node based app [18:33] tbranyen: syskk: how is that non-standard? [18:34] AsDfGh123 has joined the channel [18:34] stagas: jonaslund: so, they're useless [18:34] syskk: tbranyen: Rhino has those non standard methods: __defineGetter__, __defineSetter__, __lookupGetter__ and __lookupSetter__ [18:34] syskk: I was wondering if the equivalent was available in V8 [18:34] jetienne has joined the channel [18:34] systemfault: ecmascript 5 setters/getters? [18:34] tbranyen: syskk: virtually all mozilla non standard shit is absent from the purity of v8 [18:35] Aikar: syskk: Object.defineProperty is the standard [18:35] tbranyen: mozilla treats their engines like a personal sandbox [18:35] tbranyen: defineProperty rules ++ [18:35] systemfault: The problem is that mozilla has "javascript" and people see their implementation as being some kind of standard. [18:36] jonaslund: bah [18:36] tbranyen: just had to use it on a project that has a static string reference that i needed to make dynamic [18:36] jonaslund: most people target multiple browsers [18:36] jonaslund: and chrome has alot of developer mindshare [18:36] systemfault: True that [18:36] jonaslund: together with Node the V8 developers will have pretty much to say about what V8 is [18:37] syskk: getters/setters would help with writing an ORM [18:37] jonaslund: erm [18:37] systemfault: syskk: Use them then. [18:37] jonaslund: what JS is thatis [18:37] draginx has left the channel [18:37] tbranyen: syskk: what part of v8 has getters/setters are you not getting? [18:37] tbranyen: jonaslund: everyone has an opinion of what JS should be [18:37] KirinDave has joined the channel [18:37] systemfault: syskk: V8 supports ecmascript 5... that standard has getters/setters... [18:37] syskk: ah didn't know about that [18:38] temp01 has joined the channel [18:38] tbranyen: and unfortunately right now seems to be the time when the fate of JS is being decided [18:38] jonaslund: tbranyen: yeah.. but i don't think all these Mozilla toys will define where JS will go in the end [18:38] tbranyen: jonaslund: exactly [18:38] tbranyen: its just a playground [18:38] systemfault: I agree with tbranyen on that. [18:38] tbranyen: most of the toys will break [18:38] tbranyen: and never seen again [18:39] tbranyen: although some stuff like mozilla object proxying looks so fucking amazing i wish v8 had it right now [18:39] syskk: I guess there isn't a method_missing / property_missing thing right? [18:39] tbranyen: syskk: thats exactly what object proxying is [18:40] tbranyen: grants you the ability to complete lookups when the prototype chain lookup fails [18:40] SubStack: no [18:40] AsDfGh123 has joined the channel [18:40] liquidproof has joined the channel [18:40] Aikar: syskk: google "node-proxy" on github "Harmony Proxies" [18:40] baudehlo: syskk: http://utahjs.com/2010/09/24/using-ecmascript-5-getters-and-setters-with-nodejs/ [18:40] SubStack: harmony proxies give you a hook into all accesses it's not a fallback like method_missing [18:40] syskk: right. perhaps it could be implemented as a native extension? [18:41] Aikar: it is [18:41] Aikar: i use it :P [18:41] SubStack: they're also not the same as getters and setters [18:41] xeodox has joined the channel [18:41] syskk: Aikar, baudehlo: thanks [18:41] AsDfGh123 has joined the channel [18:41] SubStack: tbranyen: npm install node-proxy [18:41] tbranyen: SubStack: i'm kind of worried about what kind of code is going on under the hood to make that work [18:41] bergie has joined the channel [18:41] tbranyen: not just gonna install and use it without investigating first :D [18:42] Aikar: syskk: https://github.com/aikar/cosmos/blob/master/node_modules/autoloader/autoloader.js ive modified that module a lil but still same usage [18:42] AsDfGh1231 has joined the channel [18:42] tbranyen: SubStack: oh holy shit its actually patching v8 under the hood [18:42] syskk: Aikar: great, thanks. looks exactly like what I was looking for [18:42] Aikar: though that code isnt fully usable and ima prolly have to abanadon use of node-proxy as proxied functions return typeof == 'object' instead of function which screws instanceof :( [18:42] jonaslund: ACTION thinks immutable data in the language would rock for node [18:43] tbranyen: SubStack: figured it was just a sloppy attempt to add that functionality in with pure js [18:43] fakewaffle has joined the channel [18:43] fakewaffle: hi [18:44] Aikar: and i think ima abandon joose and use Google Traceur for classes. gotta do some more consideration [18:45] jonaslund: We have webworkers but to properly use them to push threading it'd be good to allow for data sharing. JS as a language however is allergic to mutable sharing and erlang has shown that immutable sharing works well. [18:46] ryah has joined the channel [18:48] slloyd has joined the channel [18:48] trotter_ has joined the channel [18:48] harth has joined the channel [18:48] robhawkes has joined the channel [18:49] brianseeders has joined the channel [18:49] mjijackson has joined the channel [18:52] ardcore has joined the channel [18:52] chalaschek has joined the channel [18:54] rfay has joined the channel [18:54] ardcore has left the channel [18:54] tjholowaychuk: where's the isaac man [18:54] tjholowaychuk: we need a plugin module solution [18:54] tjholowaychuk: shit is fundamentally flawed right now [18:55] Skola has joined the channel [18:56] robhawkes has joined the channel [18:56] atsuya has joined the channel [18:56] ryah: isaac is in germany [18:57] atsuya: ryan: there is typo in documentation on child_process http://nodejs.org/docs/v0.4.7/api/child_processes.html [18:57] norviller has joined the channel [18:57] atsuya: "err.code will be the exit code of the child process, and err.signal will be set to the signal that terminated the process" [18:58] atsuya: "err" should be "error" [18:58] tjholowaychuk: ryah: ah good to know cool thanks [18:58] _64k has joined the channel [18:58] ako has joined the channel [19:00] maushu has joined the channel [19:00] Corren has joined the channel [19:00] Tom-Tomaso has joined the channel [19:00] Corren has joined the channel [19:02] Swimming_bird has joined the channel [19:02] saschagehlich: ryah: Assertion failed: (b[1] == 0), function DecodeWrite, file ../src/node.cc, line 1212. [19:02] saschagehlich: wtf? [19:03] `3rdEden: saschagehlich y u run stuff from master instead of stable releases ;) [19:03] saschagehlich: `3rdEden: ryah told me to do this [19:03] chapel: tjholowaychuk: plugin module solution? [19:04] tcurdt has joined the channel [19:04] `3rdEden: saschagehlich let me guess you where also running socket.io when you got that error [19:04] mscdex: saschagehlich: that's been happening since the libuv merge [19:04] `3rdEden: mscdex it also happend before libuv [19:04] saschagehlich: `3rdEden: yes, on a websocket connection... I'll try whether I still get that error in http.js on 0.4.7 (that was the reason why I switched to head) [19:05] mscdex: eh? [19:05] mscdex: shows how much i use master [19:05] mscdex: :p [19:06] tcurdt: baaa ... still no recent version of nodejs for ubuntu :-( ... does everyone here build from source on deployments? [19:06] Skola: I built from source on ubuntu [19:06] brianseeders: i do on rhel [19:06] Skola: pas de problem [19:07] saschagehlich_ has joined the channel [19:07] mikegerwitz: tcurdt: I build from source, but there are debian packages available through 3rd parties [19:07] chapel: what is the node.js video transcoding service? [19:07] tcurdt: mikegerwitz: yeah ... saw (and tried that) ... but it's 0.2 something [19:07] ryah: saschagehlich: hm - that seems bad [19:08] ryah: saschagehlich: can you reproduce? [19:09] ryah: ideally with a single string... [19:09] mikegerwitz: tcurdt: https://launchpad.net/~jerome-etienne/+archive/neoip/ [19:09] mscdex: tcurdt: it's only 0.2.x if you're on lucid [19:09] tiglionabbit_ has joined the channel [19:09] mscdex: for that url ^ [19:11] saschagehlich_: `3rdEden: Stack: TypeError: Cannot call method 'emit' of undefined at CleartextStream. (http.js:1202:9) [19:11] saschagehlich_: and socket.io does not work on 0.5.0-pre [19:11] saschagehlich_: fuck yeah, total messup [19:11] tcurdt: mscdex: hm ... since that's the LTS release one would wish for backport then [19:12] mscdex: tcurdt: meh, i always compile from source [19:12] tcurdt: :) [19:12] muhqu has joined the channel [19:12] ryah: saschagehlich_: do not use 0.50 [19:12] mscdex: it takes all of 39 seconds for me [19:12] `3rdEden: saschagehlich_ yeh iknow it throws that error poked ryah about, I still have no clue why [19:12] tjholowaychuk: chapel: /clear [19:12] tjholowaychuk: woah [19:12] tjholowaychuk: .. [19:12] mscdex: hah [19:12] `3rdEden: saschagehlich_ I'm just ignoring 0.5.0 atm untill there is another stable release [19:12] mscdex: tj's trying to clear you out chapel [19:13] chapel: ACTION runs [19:13] fyskij has joined the channel [19:13] a|i has joined the channel [19:13] a|i has joined the channel [19:13] saschagehlich_: `3rdEden: this is 0.4.7... [19:13] ryah: okay [19:13] tcurdt: mscdex: I know ... that's fine for dev work ... but not really great for a deployment [19:13] saschagehlich_: lol ryah you just told me up update to 0.5 [19:13] `3rdEden: ohhhhh saschagehlich_ thats nice is it reproduceable [19:13] ryah: saschagehlich_: i meant v0.4 HEAD [19:13] Aikar: ryah: maybe switch default branch on github to 0.4.0? [19:13] logik-bomb has left the channel [19:14] ryah: Aikar: github is for developers not users [19:14] saschagehlich_: `3rdEden: don't know yet [19:14] Tom-Tomaso has joined the channel [19:14] Aikar: ryah: people get node from elsewhere? :P [19:14] `3rdEden: saschagehlich_ give me a poke when you have something :D [19:14] ryah: yes, from the tarballs i publish [19:14] mscdex: tcurdt: well, you can create your own with checkinstall, it's not difficult to use [19:14] Aikar: lol, i just checkout/switch branch and that way can pull updates with git pull [19:14] `3rdEden: if it doesn't break it just not good enough [19:14] a|i: I want rails to talk to node, which one is more efficient? (1) rails posting to an express route (2) rails talks to node via redis pubsub. [19:15] mraleph has joined the channel [19:16] tcurdt: mscdex: never used that before ... sounds interesting [19:16] tcurdt: thanks [19:16] guybrush: a|i: you could use rpc too [19:16] kersurk has joined the channel [19:16] mscdex: yeah, i used to use it all the time when automating .deb building for new stable node releases [19:17] guybrush: there is even a wrapper for socketio which works with ruby and node [19:17] kersurk: Hi [19:17] guybrush: https://github.com/substack/dnode [19:17] kersurk: Any cool ideas for node.js presentation? [19:17] mscdex: and rpm builds [19:17] a|i: guybrush: rpc from rails? rails being a socket client? [19:17] dve: tcurdt: you running natty? [19:17] tcurdt: dve: lucid [19:17] claudio has joined the channel [19:17] dve: tcurdt: oh ok [19:18] Guest15089 has joined the channel [19:18] guybrush: a|i: yes, checkout dnode (didnt use it with rails though - just read that there is a ruby-client) [19:18] darshanshankar has left the channel [19:18] guybrush: but maybe this is not very efficient :p [19:18] darshanshankar has joined the channel [19:19] perezd: anyone in here using coffee-resque [19:19] a|i: guybrush: why would it be less efficient? [19:19] guybrush: a|i: https://github.com/substack/dnode-ruby/tree/master/examples/simple [19:19] springmeyer_ has joined the channel [19:20] Nodemonster has joined the channel [19:20] guybrush: hm i dont know, just guessing [19:20] Nodemonster: Is this OK? enter 'yes' or 'no' <-- How do I tell this message on npm install to get fucked? [19:20] guybrush: but imho the rpc-style is much more elegant [19:20] Nodemonster: This script will find and eliminate any shims, symbolic links, and other cruft that was installed by npm 0.x. -- Who gives a fuck! [19:20] guybrush: since it is so simple to implement [19:21] SamuraiJack has joined the channel [19:21] Guest15089: Hey... I'd like to use one only socket from nodeserver1 to nodeserver2. Through this socket are flowing messages from clients (web pages) connected to server1 (via socket.io). Is there a pattern or some kind of module to use? Messages arriving at the same time are sent all togheter to server2 :) [19:21] tjholowaychuk: chapel: this is the issue i was talking about https://github.com/isaacs/npm/issues/930 [19:21] chapel: thanks tjholowaychuk [19:21] chapel: glad you aren't trying to /clear me anymore [19:21] Nodemonster: I want npm to have a stfu parameter [19:21] tjholowaychuk: chapel: haha :) [19:22] Nodemonster: Sorry for the pejoratives, but seriously... I see this stupid 'This script will find and eliminate any shims, symbolic links, and other cruft that was installed by npm 0.x. is this OK?' message like a hundred times a day. [19:22] CarterA has joined the channel [19:22] CarterA has left the channel [19:23] Nodemonster: If I walk back to the console only to find it has been waiting for ten minutes for me to type in 'yes' one more time, I will probably smash the monitor. [19:23] Nodemonster: What if I cat 'yes' to the program? [19:24] ion-: rtfm [19:24] piscisaureus has joined the channel [19:24] Nodemonster: ion-, get fucked. [19:24] ezmobius has joined the channel [19:24] Nodemonster: And I have rtfm [19:25] chapel: rtfc [19:25] chapel: :) [19:25] bencc has joined the channel [19:25] quackquack has joined the channel [19:26] Nodemonster: chapel: What? [19:26] chapel: read the fucking code [19:27] chapel: it was a joke [19:27] saschagehlich_: ryah: I get this node.cc assertion error on 0.4.8-pre as well (which should be v0.4 head, right?) [19:27] ryah: saschagehlich_: can you make a simple reproducible test case? [19:27] Nodemonster: Why are you being hostile? [19:27] saschagehlich_: ryah: urgh... try using socket.io :S [19:28] perezd: "Nodemonster: ion-, get fucked." [19:28] chapel: Nodemonster: ?? it was a joke [19:29] Nodemonster: Okay, sorry. [19:29] harth has joined the channel [19:29] Nodemonster: I'm reading install.sh right now [19:29] dmcquay_ has joined the channel [19:30] tim_smart has joined the channel [19:30] Marak: c4milo: yeah i've tried rebuilding a few times, i cant get it to go away [19:30] herbySk has joined the channel [19:31] Marak: Error: dlopen(/Users/maraksquires/dev/nodejitsu/node_modules/daemon/build/default/daemon.node, 1): no suitable image found. Did find: /Users/maraksquires/dev/nodejitsu/node_modules/daemon/build/default/daemon.node: mach-o, but wrong architecture [19:31] admc1 has joined the channel [19:31] Nodemonster: How often is install.sh updated? Is it updated as frequently as npm? [19:31] Marak: ive been seeing this same error for a week whenever i try to use any c addons [19:31] Marak: Nodemonster: prob not [19:31] Marak: Nodemonster: i would think major version releases [19:31] jetienne has joined the channel [19:32] Nodemonster: Marak: I'm thinking about patching install.sh to suppress the warning where it makes you type 'yes' [19:32] Marak: Nodemonster: k [19:32] Nodemonster: But then my patch will break when npm is updated [19:32] Marak: Nodemonster: it asked me that once, you prob should uninstall and reinstall npm [19:33] Marak: Nodemonster: maybe you have migration issue from 0.3.18 to 1.0 [19:33] Nodemonster: Ah [19:33] ryah: is npm down? [19:34] mikeal has joined the channel [19:34] bluekite2000_ has joined the channel [19:34] ryah: nm [19:36] Nodemonster: How difficult is it to build node.js modules without npm if they are v8 bindings (v8.h)? [19:37] indutny has joined the channel [19:37] dve: Anyone know if its possible to supply args to joyent node service? [19:38] herbySk74 has joined the channel [19:38] context: nodemonster: i imagine they have a Makefile. [19:38] Aikar: Nodemonster: simple as running 'make' usually [19:38] Rob- has joined the channel [19:39] konobi: dve: use a config file or environment variables [19:39] Nodemonster: Aikar: Interesting. [19:39] Aikar: Nodemonster: npm simply has a 'preinstall script' which usually does 'make', so simply running the exact same command in package.json should do the trick [19:39] dve: konobi: ok, ta [19:40] Aikar: Nodemonster: http://github.com/aikar/magic look at the package.json and makefile there [19:40] Nodemonster: Do people who develop for node.js always use npm? [19:40] ryah: saschagehlich_: looking into it [19:40] arian has joined the channel [19:40] Aikar: Nodemonster: it makes things simpler to pull in dependencies into your project [19:40] asabil has joined the channel [19:41] arian: hai [19:41] Nodemonster: Aikar: Right. [19:41] Aikar: Nodemonster: most use npm yes [19:41] matbee: On Webos their apps don't support websockets--- but the new webos 2.x include node.js... Is it possible to connect to another node websocket via node? [19:41] Guest95341: I wrote this realllly sexy piece of code in coffee [19:41] syskk: Nodemonster: what do you mean without npm? perhaps this could help: https://github.com/olalonde/node-notify/blob/master/TUTORIAL.md wrote it 2 days ago [19:41] Guest95341: http://pastebin.com/YyQUKLir [19:41] Nodemonster: Aikar: The change away from global in npm 1.x got me nearly killed by my boss. [19:41] Guest95341: enjoy [19:41] Guest95341: :3 [19:41] syskk: https://github.com/olalonde/node-notify/blob/master/package.json [19:42] addisonj has joined the channel [19:42] Aikar: Nodemonster: its for a good cause, global is bad mkay [19:42] Marak: maushu: you alive? [19:42] maushu: zombie [19:42] syskk: why is global bad? seriously [19:42] Aikar: Nodemonster: your boss should be HAPPY tho, globals are harder to deploy [19:43] Nodemonster: The IT goons tried to deploy with the new version of npm and we ended up with a S.O. compliance system that silently failed. [19:43] Aikar: because when you checkout your project, you shouldnt then have to npm install dependencies, and then worry bout versioning [19:43] Aikar: and you shouldnt need npm to deploy your code either [19:43] Aikar: code for your project should be in your SCM [19:44] Nodemonster: Aikar: I always use a different VPS guest for each node app anyway, but local is find now that I can expect it. [19:44] syskk: right. what about native extensions with a build script? should the binary be versioned? [19:45] Aikar: syskk: modules with helper binaries are able to be installed globally, [19:45] addisonj: this is the weirdest thing, bash is freaking out on my about a relative path, don't have any symlinks to mess it up, bash just doesn't like it apparently [19:45] Aikar: or install locally and reference its local bin [19:46] Nodemonster: Why did the developers choose to go local dependencies -> global dependencies -> then back to local? [19:46] Aikar: because anyone who works profesionally as a developer should know local is the right way [19:47] Aikar: your code should be tied to SCM [19:47] c4milo: hey does npm have support to specify the url in some dependencies? [19:47] killing-joke has joined the channel [19:47] c4milo: like rubygems [19:48] Nodemonster: Aikar: Absolutely, but why did they go global in the first place? [19:48] Aikar: Nodemonster: idunno, prolly due to stuff like rubygems who do it that way [19:48] Aikar: but im glad ry didnt take node down the path to be like gems [19:49] Nodemonster: :) [19:49] Aikar: "to use our software you need to install node, and from npm, then you can run it" [19:49] Aikar: that design is lame for deployment and management [19:49] Aikar: simply having all your code in SCM "just works great" [19:50] killing-joke: hi. is there a tool i can use at the command line to load an entire page (all assets), execute all js, and give me timestamps for each asset? [19:50] Nodemonster: Aikar: npm does software configuration management? [19:50] drudge: Aikar: that's what a package.json and dependencies are for [19:50] killing-joke: i have tried phantomjs, and maybe i could write something for it that would be close. [19:50] Aikar: want to update a ver of your dep? checkout branch, run the upgrade locally, test it, commit it, integration test it, merge [19:51] Nodemonster: You're all in the past. Software deployment isn't done that way anymore. We're in the cloud era. [19:51] Aikar: cowboy code it huh [19:51] kristsk has joined the channel [19:52] Nodemonster: Aikar: You just distribute a virtual machine with OS, dependencies, and your software ready to go. [19:52] mscdex: storm clouds! [19:52] c4milo: mscdex: ++ [19:52] Nodemonster: Black clouds [19:52] shpyo has joined the channel [19:53] yozgrahame has joined the channel [19:53] shpyo: hi guys! [19:53] killing-joke: would i be better off rolling my own in expresso? [19:53] MrNibbles has joined the channel [19:53] Aikar: Nodemonster: Server architecture/infrastructure and your source code management are 2 diff things :P [19:53] markbao has joined the channel [19:53] PhilK has joined the channel [19:54] shpyo: any1 had problem with mac 10.5.8 with install noje.js? [19:54] mscdex: shpyo: what's your problem? [19:54] Nodemonster: Aikar: The hardest part is managing dependencies that rapidly change :-/ [19:54] shpyo: error: could not configure a cxx compiler! [19:54] Aikar: and drudge sure you could keep the versions perfectly in match in package.json, but why? rather just keep the code on my own SCM servers. what if npm goes down for a day? I assure you your managers not going to care that you cant get a working branch running due to npm being down :P [19:54] Nodemonster: ACTION is learning [19:54] mscdex: shpyo: install xcode [19:54] shpyo: oh... [19:55] shpyo: damn / [19:55] shpyo: ;/ [19:55] shpyo: ok i try :) [19:55] drudge: Aikar: real men host their own npm registries [19:55] mscdex: real men don't use package management [19:55] shpyo: thanks for advide [19:55] Aikar: i host my own too, its called git ;) [19:55] mscdex: ! [19:55] Nodemonster: drudge: That's ridiculous. [19:55] mscdex: shpyo: np [19:55] Squeese has joined the channel [19:55] levi501d has joined the channel [19:55] shpyo: :P [19:56] drudge: Nodemonster: it is? [19:56] PhilK has joined the channel [19:56] Nodemonster: My policy is that if I have to patch a node.js module, I keep it locally hosted. [19:56] MrNibbles: hey guys [19:56] mscdex: pacman! [19:56] Nodemonster: Right now, I have to maintain a patch for the pg module :( [19:56] MrNibbles: anyone here from poland? Im heading to falsyvalues on wed, need a bit of advice [19:57] Aikar: npm module installs should be treated just like a git submodule (except that its better to a degree that its not a submodule so your not relying on an external repo being up. npm install foo && git add node_modules/foo && git commit. then when its time to update, git branch, npm update foo, test, git add node_modules/foo && git commit [19:57] Aria has joined the channel [19:57] MrNibbles: mscdex: wakka wakka :P [19:58] kmiyashiro has joined the channel [19:58] Nodemonster: Can anyone with npm up tell me what the latest version of pg is? [19:59] slyphon has joined the channel [19:59] gf3: hey tjholowaychuk, in jade, does interpolation work in attributes? [19:59] killing-joke: pg == 0.4.1 from May 1. does anyone use something besides a browser window to test their site? [19:59] tjholowaychuk: gf3: nope attrs are just js expressions [19:59] tjholowaychuk: a(foo: 'bar ' + baz) [20:00] Aikar: killing-joke: ZombieJS with Vows you can write unit tests to tests aspects [20:00] Nodemonster: killing-joke: I don't understand the question. [20:00] gf3: tjholowaychuk: thx [20:00] Nodemonster: Thanks though. [20:00] killing-joke: Aikar, do you think it can load a page and fire all JS? [20:00] Nodemonster: ACTION badly needs pg 0.4.1 [20:00] Aikar: killing-joke: yes it can [20:00] mamund has joined the channel [20:00] Aikar: killing-joke: its a headless web browser [20:00] Nodemonster: But I'm not allowed to release my patch for pg :( [20:01] Aikar: Nodemonster: sounds like you work for a lame ass company .... [20:01] Aikar: a company that uses OSS but wont contribute its fixes back? = fail [20:01] Nodemonster: So I have to wait for brianc to fix my problem without giving him my patch, so I will be maintaining a patch for a while [20:01] killing-joke: Aikar: thanks! have you used zombie.js for something substantial? [20:01] Nodemonster: Aikar: I have tried for *weeks*, but they keep losing my request tickets [20:01] Aikar: killing-joke: no, but my local JS meetup did a demonstration on it and it was nice [20:02] Nodemonster: But we are very agile for a Wall St. company :) [20:02] Aikar: Agile doesnt mean OSS friendly :P [20:02] killing-joke: Aikar, very cool. would you happen to have a pointer to the speaker? or the slides/notes? [20:02] sreuter: still diggin in node_crypto.cc … looks like something weird happens in the binary ouput decoding… [20:03] Aikar: Nodemonster: you could release it and tell your manager it was required due to Open Source license requirements and so you released it to not get the company sued :P [20:03] Nodemonster: They told me I can't even tell brianc which file in his pg module has the problem [20:03] rauchg has joined the channel [20:03] Aikar: killing-joke: https://github.com/jadell/undeadwedding [20:03] Nodemonster: So we have ever more patches being maintained, which executive management is attacking as "walled off from the ecosystem" [20:04] Aikar: killing-joke: that was his demo repo [20:04] Nodemonster: Aikar: Hmm, depends on the license [20:04] dmcquay has joined the channel [20:04] Aikar: Nodemonster: i said you could SAY that :P didnt say it had to be true lol [20:04] wookiehangover has joined the channel [20:04] drudge: what confidential info is in those patches that you can't release [20:05] Nodemonster: drudge: Absolutely nothing. It's a bug in a string parser. [20:05] Aikar: or you could just do it anyways and if they fire you it might score you browny points at a better company [20:05] drudge: Nodemonster: then why does it matter? [20:05] Nodemonster: Aikar: We have a sluggish IP review process [20:05] Nodemonster: drudge: If you don't get approval, you get terminated [20:06] Nodemonster: Or at least in trouble [20:06] Aikar: Nodemonster: shoulda made the fix outside of work :P [20:06] viz has joined the channel [20:07] Nodemonster: I guess. Hopefully someone else will find the bug or I will get permission. [20:08] Aikar: Nodemonster: just post under an alias github account and tweak the style a bit lol [20:08] Nodemonster: Yeah. I don't think they even know what github is :) [20:09] Nodemonster: At least the job has one perk: Getting to meet Lady Gaga [20:09] TomY has joined the channel [20:09] Nodemonster: That and unlimited NYC taxi fare [20:09] Aikar: has anyone else even seen the code to notice its the same? could just submit it and then do 'upgrading pg to latest version' which contains your fix! [20:09] TomY has joined the channel [20:09] Nodemonster: Things will get better probably. [20:10] halfhalo: even my work uses github! [20:10] halfhalo: and _i_ work for a CSU as a student assistant! [20:10] Nodemonster: Our CEO still uses phonographs :) [20:10] Aikar: Crime Scene Unit?! [20:11] halfhalo: California State University [20:11] Nodemonster: But meeting Lady Gaga makes my job > * [20:11] dies_el has joined the channel [20:11] halfhalo: See, meeting her would be a - for me [20:11] Nodemonster: She is so sweet :) [20:12] Aikar: i dare you to google "lady gaga no makeup" [20:12] Aikar: see how quick that changes for you [20:12] baudehlo: when you do npm publish is there any way to tell it to only publish files stored in git? [20:12] Nodemonster: Aikar: My porn collection [20:12] Bonuspunkt: "lady gaga no makeup" is that a blue waffle thing? [20:12] Nodemonster: Is what that is [20:12] Aikar: baudehlo: it uses .gitignore as the default .npmignore [20:12] halfhalo: oh god [20:12] baudehlo: Aikar: ah right, but it doesn't check the files are actually *stored* in git? [20:13] Nodemonster: Who cares. She's a brilliant culture developer. :) [20:13] mraleph has joined the channel [20:13] systemfault: Culture? What culture? :/ [20:13] systemfault: Sluttism? [20:13] Aikar: baudehlo: you mean unstaged/commited files? nah. but any files you specifically dont want added to git should be in gitignore :P [20:13] brianmario has joined the channel [20:13] Aikar: Nodemonster: i sure dont want to be in her culture. her videos are entertaining, but just like kesha, fun to watch, never would actually do my self :P [20:14] baudehlo: Aikar: yeah fair enough. I'll just keep a separate Haraka-publish clone. [20:14] mraleph: ryah: ping [20:14] Nodemonster: Yeah, I would only ever do Madonna. [20:14] mraleph: ryah: were you looking for me? [20:14] ryah: mraleph: hi [20:14] mraleph: ryah: hi. [20:14] isaacs has joined the channel [20:14] ryah: mraleph: Wondering if ZapRange was related to C++/JS boundary jumping [20:15] mraleph: ryah: I think it should be used only in debug builds [20:15] ryah: ok [20:16] baudehlo: ugh, .gitignore doesn't automatically ignore .gitignore?? [20:16] taf2: ACTION wonders why you would want that... [20:16] tjholowaychuk: baudehlo: no it's part of the tree :p [20:16] tjholowaychuk: which is a good thing [20:16] baudehlo: ohhh, duh. [20:16] tjholowaychuk: usually at least [20:16] chjj: baudehlo: its not supposed to [20:17] baudehlo: I guess.... Except I probably have different requirements on different machines. [20:17] baudehlo: hmm [20:17] a|i: anyone using a pubsub implementation other than redis with node here? doe smongo do pubsub? [20:17] baudehlo: a|i: seems to be a few using message queues. [20:18] a|i: baudehlo: message queues replacing pubsub? [20:18] mraleph: ryah: I have an interesting observation for you about that infamous and sad comparison with erlang. If I throttle accept (i.e. accept return after 50 accepted connections from https://github.com/joyent/node/blob/master/lib/net.js#L907 then response rate seems to improve by 20-30% and number of errors drops. [20:18] baudehlo: haven't they always? [20:18] baudehlo: a|i: https://github.com/squaremo/rabbit.js [20:19] ryah: mraleph: interesting [20:19] mjr_: mraleph: I figured it was something like that [20:19] ryah: do you think we're blocked on accepting? [20:19] kersny has joined the channel [20:19] ryah: that's an easy fix [20:19] a|i: baudehlo: any ideas which approach is more efficient? [20:19] AsDfGh1231 has joined the channel [20:19] mjr_: Every time I've looked at node performance, it always goes into some kind of concurrency explosion and needs some kind of throttling. [20:19] baudehlo: in qpsmtpd I had the accept queue automatically ramp up and down. [20:20] mraleph: well connections arrive in batches like 100 − 200 connections per call to that function. [20:20] baudehlo: might be worth stealing. [20:20] mraleph: sometimes it takes upto 30ms to process all of them [20:20] onar has joined the channel [20:20] ryah: i wonder if there's a smart way to choose when to stop [20:20] Lagnus has joined the channel [20:20] mraleph: I don't think stupid trottling is an anwer. [20:20] mraleph: just wanted to share [20:20] dnyy has joined the channel [20:21] ryah: mraleph: yeah, that's interesting [20:21] baudehlo: ryah: here's what I do in qpsmtpd: https://github.com/smtpd/qpsmtpd/blob/master/qpsmtpd-async#L375 [20:21] dnyy: is this http://stackoverflow.com/questions/4871932/using-npm-to-install-or-update-required-packages-just-like-bundler-for-rubygems (first answer) the standard way of doing it? [20:21] chapel: those brute force testers aren't very realistic either [20:22] baudehlo: ryah: the basic idea is that we want to balance getting back to the main loop with accepting as much as we can. [20:22] chapel: has anyone thought of using node to build a reddit/digg simulator? [20:22] mraleph: I am curious what will happen if you put more meat into request handler. [20:22] ryah: baudehlo: i'd think the timer would be unnecessary [20:22] chapel: where it could span over multiple servers and hit one target? [20:22] mjr_: baudehlo: that's interesting. How do you know when to slow it down? [20:23] ryah: baudehlo: you just want to get back to processing other sockets and not stuck in a accept loop [20:23] mraleph: like fetching file or image or something from fs, or rendering a template, etc. [20:23] xtianw has joined the channel [20:23] mw____ has joined the channel [20:23] quackquack: tjholowaychuk: does Jade have a logo? [20:23] tdegrunt has joined the channel [20:23] baudehlo: mjr_: it's imperfect. [20:24] baudehlo: it needs down-throttling as well as up-throttling. [20:24] mjr_: I see. Tricky problem. [20:24] baudehlo: right now if there's no more connections in 30 seconds it resets it back to 20. [20:24] perezd: anyone in here using RQueue? [20:24] ryah: i wonder if libev priorities could be used here... [20:25] baudehlo: I tried a bunch of different methods and that just seemed to work without too much hassle. [20:25] ryah: like give accept fd high priority but decrement it each time you accept a connection in a loop [20:25] ryah: or something.. [20:25] tjholowaychuk: quackquack: nope [20:25] quackquack: tjholowaychuk: k, thx [20:26] mjr_: Honestly, I think node performance is "fine" for now. [20:26] tjholowaychuk: dont have a express logo either [20:26] tjholowaychuk: some day [20:26] baudehlo: ryah: I think just have a maximum number of accept() calls is a good first step [20:26] mjr_: Lots of bugs out there that are more important IMO than beating Erlang. [20:26] baudehlo: agreed. [20:26] mraleph: ryah: I also still see that V8 goes to runtime for some properties like 'emit', '_headers' and some others pretty often. but that does not seem to be the bottleneck. it tried fighting it by changing code here and there, but it had no effect. so I think the main overhead is in something else [20:26] ryah: mjr_ definitely [20:26] chapel: mjr_: I don't think its to beat erlang, but ryah has always wanted node to be fast [20:27] mraleph: bugs are always important more than anything else [20:27] baudehlo: For Haraka which is entirely unoptimised it's already as fast as a competitor's C smtp server (that using async i/o). [20:27] ryah: especially since im in the middle of the network rewrite from hell [20:27] chapel: and if a way forward can be found to improve it, then why not? [20:27] onar has joined the channel [20:27] baudehlo: ACTION might submit a patch [20:27] quackquack: tjholowaychuk: i was wondering cause im building a text editor, and putting litter icons by the files to indicate type [20:27] olauzon has joined the channel [20:28] tjholowaychuk: quackquack: ah cool :) [20:28] baudehlo: ryah: is the accept code the same for all Net stuff or specific to http? [20:28] ryah: mraleph: that's promising.. [20:28] ryah: baudehlo: same for all [20:28] baudehlo: cool, I'll have a poke. [20:28] ryah: lib/net.js [20:28] baudehlo: *nod* I figured :) [20:29] CiRlE has joined the channel [20:30] knirhs has joined the channel [20:30] nibblebot has joined the channel [20:30] darshanshankar has joined the channel [20:32] figital has joined the channel [20:32] piscisaureus: ryah: this (and that misultin bench) was one of the reasons that I wanted prioritized threads [20:32] piscisaureus: it makes sense to use a separate loop to accept connections [20:33] piscisaureus: one that runs with a higher priority [20:34] AsDfGh1231 has joined the channel [20:36] kuhrt has joined the channel [20:37] piscisaureus: ryah: I think that priorities are not particularly useful when the epollt backend is used because fds still come out of that in a fixed order [20:37] morgabra has joined the channel [20:37] piscisaureus: prolly the same for kqueue [20:38] kuhrt has joined the channel [20:38] rauchg has joined the channel [20:39] `3rdEden: Oh btw, Socket.IO 0.6.18 is out, `npm install socket.io` yo! [20:39] pquerna: thread. . priorities :-/ [20:39] guybrush: `3rdEden: nice! [20:39] eb4890 has joined the channel [20:39] piscisaureus: pquerna: ? [20:41] jbpros has joined the channel [20:41] pquerna: piscisaureus: they aren't always that... reliable. [20:41] pquerna: piscisaureus: but i agreee in general that for certain benchmarks, having a separate accept loop thread could make a big difference [20:41] pquerna: (ATS has this for example) [20:42] lmorchard has joined the channel [20:43] isaacs: dnyy: I just posted another answer to that SO thread [20:43] gazumps has joined the channel [20:43] dnyy: isaacs: awesome, thanks. neat that this is built into NPM. [20:43] Corren: ok I'm stumped. Clean install of node & npm; getting package not found errors [20:44] Corren: module rather [20:44] piscisaureus: pquerna: I believe having a thread pool with managed priorities have the potential to really outperform (green) threaded solutions [20:44] nohorse has joined the channel [20:45] tiagoa_ has joined the channel [20:45] isaacs: Corren: don't install globally [20:45] piscisaureus: pquerna: but managing priorities is key, you must avoid that your "important" work gets stuck in the queue waiting for "slow" stuff [20:45] isaacs: Corren: or, use `npm link` to link it locally as well [20:46] CIA-90 has joined the channel [20:46] nohorse: nube: just set up my joyent node smartmachine and looking for a hello world example how-to get started. [20:47] baudehlo: ryah: pull req sent: https://github.com/joyent/node/pull/1056 [20:47] baudehlo: see the note though - not sure how to test that. [20:47] bluekite2000_ has joined the channel [20:48] baudehlo: as you're kind of at the mercy of the kernel at that point. [20:48] onar has joined the channel [20:48] andi5 has joined the channel [20:48] baudehlo: I guess you can see if flooding it with connections ever results in a connect() fail on the client end. [20:49] andi5: I have released schema.js 0.2 today: http://github.com/akidee/schema.js [20:50] liar has joined the channel [20:51] Sidnicious: When might some code work differently in the REPL from a .js file? I was just trying out mongoose, and couldn't, for the life of me, get one feature (setters) to work, playing in the REPL. I finally tried the same code in a .js file and executed it with node and it WORKS PERFECTLY. [20:51] Sidnicious: https://gist.github.com/c878382fed072b1902d7 [20:53] Swimming_bird has joined the channel [20:53] jhurlima0: andi5, nice work, i've been following that project [20:54] andi5: jhurlima0: Thanks, I expect your feedback [20:55] jhurlima0: i'll need to set aside some time to actually implement it in our system, but we badly need "json schemas" [20:55] jhurlima0: to serve as documentation if nothing else [20:55] jhurlima0: brb [20:57] AsDfGh1231 has joined the channel [21:00] eresair has joined the channel [21:00] puffpio has joined the channel [21:01] febits has joined the channel [21:02] chapel: andi5: I have been using kriszip's json-schema [21:02] chapel: seems to work as needed fo rme [21:02] chapel: for me [21:02] chrislorenz has joined the channel [21:03] andi5: chapel: It's good that there are several implementations. The question is if you need validation tolerance. [21:03] chapel: tolerance? [21:04] temp01 has joined the channel [21:04] andi5: Yep, for example a numeric server param is a string when received in a request [21:04] andi5: Many validators can only validate strictly [21:05] andi5: I use schema.js heavily for securing API calls etc. [21:06] nrajlich has joined the channel [21:07] chapel: ah [21:07] chapel: I will take a look at it, but for my purposes right this moment, simpler is better [21:07] hosh_work has joined the channel [21:07] chapel: appreciate the work though [21:07] copongcopong has joined the channel [21:07] chrislorenz has joined the channel [21:09] andi5: Chris Zyp's intention for JSON schema was, as far as I know, to write client side validators for securing mashups [21:09] langworthy: Is there any way to get Jade generated markup to have linebreaks/formatting? [21:09] andi5: schema.js is more focussed on the serverside [21:09] chapel: yeah andi5 [21:10] febits[0] has joined the channel [21:10] highermath_away has joined the channel [21:11] chapel: andi5: I see you support yabble for client? [21:11] chapel: you should add in support for browserify [21:11] chapel: `v git browserify @ andi5 [21:11] v8bot: andi5: substack/node-browserify - GitHub - https://github.com/substack/node-browserify [21:11] andi5: chapel: I have created a stable branch of Yabble [21:12] chapel: just saying, since browserify allows you to use commonjs modules in the browser [21:12] andi5: chapel: How does load modules. I prefer script tags, no eval() [21:13] andi5: My workflow is even creazier [21:13] tbranyen: no mine is crayzeeer [21:13] andi5: One codebase, but strip out the serverside code etc. [21:13] mscdex: no mine is! [21:13] tbranyen: andi5: i don't get the point of that stuff [21:14] tbranyen: unified codebase seems kind of dumb [21:14] tbranyen: sharing stuff liek templates and contexts around thats cool [21:14] andi5: tbranyen: It works very well [21:14] andi5: I don't want to miss it [21:14] chapel: andi5: well browserify just takes your commonjs module and includes it in the browser side js file [21:14] robhawkes has joined the channel [21:14] chapel: and has code that makes require work [21:14] tbranyen: andi5: i doubt it, its hard enough to share stuff like templates correctly between the browser and the client, i can't imagine sharing an entire codebase [21:14] tbranyen: server and client are so different [21:14] chapel: tbranyen: browserify :P [21:14] chapel: works great [21:14] andi5: Let's take a look i browserifiy support require.ensure() [21:14] mscdex: dnode! [21:14] tbranyen: chapel: i mean philosophically [21:15] tbranyen: they do different things [21:15] andi5: tbranyen: It works [21:15] chapel: yeah tbranyen [21:15] andi5: Believe me, it's slick [21:15] chapel: I think it is case by case [21:15] chapel: sometimes its just right [21:15] chapel: sometimes its not worth forcing it [21:15] andi5: A client-side controller is in the smae way a module like node module [21:15] andi5: chapel: I would suggest ir for more complex projects [21:16] andi5: dnode is great [21:16] tbranyen: andi5: well i look forward to you changing the world and me sulking for being a laggard [21:16] andi5: tbranyen: They are not that different. But you should NEVER expect that you can share the code [21:17] tbranyen: but as of right now i reserve my doubts [21:17] chapel: but stuff like browserify makes it much easier [21:17] tbranyen: since i've done a shit load of work on sharing templates and object contexts between the client and the server and already thats ridiculously hard to get right [21:17] tbranyen: especially trying to keep it not a waste of time [21:17] tbranyen: chapel: yea i can agree with that [21:17] andi5: It's just because of node's awesomeness [21:17] chapel: tbranyen: depending on what templating engine you use, it doesn't have to be hard [21:17] tbranyen: chapel: how do you deal with partials? [21:17] chapel: specially when they can be precompiled [21:17] tbranyen: do you ajax them every single time? [21:17] fakewaffle: How do I see the message in req.flash(...) in express? [21:17] chapel: eh, I haven't done much of it [21:17] chapel: tbh [21:18] tbranyen: andi5: i was working with spine.js and thought it would be cool to share the codebase for no-script fall backs [21:18] chapel: fakewaffle: add it in your template [21:18] tbranyen: but as i was working with it, i realzied it just wasn't worth it [21:18] chapel: fakewaffle: http://japhr.blogspot.com/2010/08/expressjs-flash.html [21:18] hij1nx: anyone know how to combine a passphrase and a cert for the options passed to https.createServer? [21:18] andi5: Probably I will release the package soon, strips server code, packs modules into one file, but you can load modules independently as well [21:19] fakewaffle: chapel: thanks man! [21:19] aconbere has joined the channel [21:19] chapel: andi5: unless you have specific serverside dependencies, browserify should work for you [21:20] andi5: chapel: I will take a look again, but I have investigated all those loaders, and I don't like the overblownness of the most ones [21:20] andi5: See requireJS, this is too big [21:20] nrajlich: ACTION want's to know my nickname... [21:20] chapel: well browserify is more than a loader [21:21] andi5: I see, I like the idea to reuse node functionality [21:22] yozgrahame: does anyone have code examples of the same code running on client and/or server? Where the code itself makes the decision where to run. [21:22] yozgrahame: I mean, something substantial. [21:23] yozgrahame: or maybe I'm misunderstanding. [21:23] chapel: I think you are [21:23] andi5: yozgrahame: Code never decides where it runs [21:23] chapel: its very rare that you could use the exact same code on server and browser [21:23] chjj: agree^ [21:23] chapel: just because they have different things involved [21:23] yozgrahame: andi5: I mean, there's some control code that decides where the templating and such are run [21:23] chjj: two different ballparks [21:24] chapel: but there is a lot of code you can share, that don't care about those specifics [21:24] mikeal: http://jsbbq.org/ [21:24] mikeal: booyah! [21:24] Poetro1 has joined the channel [21:24] chapel: mikeal: you crack me up [21:24] chapel: I want a new podcast!!! [21:24] mikeal: haha [21:24] andi5: It's about sharing the basics, the basic struct of your project, modules, classes etc. [21:24] mikeal: micheil bailed on me [21:24] chapel: really? [21:24] chapel: rope in substack or something [21:25] mikeal: yeah, that's a good idea [21:25] mikeal: then we could do it all in person [21:25] chapel: yep [21:25] chapel: and interview bay area noders [21:25] baudehlo: ryah: ignore that pull request I sent [21:25] mikeal: yeah, that's a good idea [21:25] chapel: :) [21:25] mikeal: Marak would come over the bridge for it too [21:25] chapel: could get marak to rap an intro [21:26] mikeal: yeah, that's a good idea [21:26] mikeal: podcasts are work [21:26] chapel: yep, but they are worth it [21:26] chapel: I would donate production time if need be, though that can be a pain to do remotely [21:27] ryah: baudehlo: k - im good at ignoring stuff [21:28] gahlberg has joined the channel [21:28] AsDfGh1231 has joined the channel [21:29] chapel: andi5: do you have custom error messages with schema.js? [21:29] andi5: Yes, you can plugin your own i18n modules [21:29] andi5: And you can pass own messages in pre and post [21:29] chapel: hmm, might have to investigate more [21:29] chapel: I mean, I don't need translation [21:30] chapel: but I would like to have better error messages, related to what I am validating [21:30] mc_greeny has joined the channel [21:30] andi5: I need to write a better doc [21:30] AsDfGh1231 has joined the channel [21:30] chapel: so instead of having to check for errors from schema.js I can just pass the error stuff to the client, and then display it as needed [21:31] chapel: not a huge issue, but was curious [21:31] andi5: Yes this depends [21:31] CIA-90: node: 03isaacs 07v0.4 * r249361c 10/ doc/api/modules.markdown : Close #1054 More clear documentation for module system - http://bit.ly/mdS5Uz [21:31] andi5: If you add some specific hints, it's better to add messages in the validator [21:32] chapel: yeah, thats what I mean, like if failure, I could have it spit out a custom error [21:32] chapel: but again, I need to look at it more first [21:32] gahlberg: hi I just installed nodejs and I'm in love. However, latest npm throws Error: Cannot find module 'semver' [21:32] andi5: Correct [21:32] chapel: ACTION is busy right this moment [21:32] chjj: ACTION needs more web scale! [21:32] gahlberg: Any help? [21:33] chapel: chjj: you need more web scale [21:33] ryah: ACTION gives chjj some webscale [21:33] andi5: Take the time, the code structure is now a little better for reading [21:33] ryah: i'm actually trading bitcoins for webscale [21:33] chapel: ryah: bitcoin is webscale! [21:33] chapel: haha [21:33] ryah: 5 bitcoins per unit of webscale [21:33] chapel: so when you say you want a node client, there are node clients [21:34] chapel: no miners that I know of though [21:34] ryah: oh [21:34] ryah: i want someone to build an example shop store in node [21:34] ryah: which accepts bitcoins [21:34] chapel: ah [21:34] chapel: that would be slick [21:34] ryah: and does the transactions along-side express [21:34] chapel: ACTION thinks node.js would be perfect for handling mining pools as well [21:35] chjj: ah web scale, youre my only friend [21:35] andi5: But it's just a game like the global financial market, right? Besides that it's tranferable to real money. [21:35] chalaschek has joined the channel [21:36] chapel: its only transferable if people will take it [21:36] chapel: or pay for it [21:36] chapel: the only way it will fail is if no one uses it [21:36] chalaschek_ has joined the channel [21:37] ryah: chapel: there are many ways it could fail other than no one using it [21:37] kkaefer: is there a way to have connect/express create an Error object and call the error handler instead of replying with "Cannot METHOD /path"? [21:38] baudehlo: ryah: ok, fixed and re-submitted. It does actually work this time :) [21:38] chapel: well, sure ryah, but that is the deathknel [21:38] tjholowaychuk: kkaefer: just add a middleware at the bottom [21:38] tjholowaychuk: and implement your own 404 [21:38] tjholowaychuk: or throw within there [21:38] tjholowaychuk: well next(err) would be better but yeah [21:38] robotarmy has joined the channel [21:38] kkaefer: that's what I have, but I kind of feel like a 404 should end up in an error [21:38] tjholowaychuk: nah [21:38] tjholowaychuk: besides [21:38] tjholowaychuk: once it's at that point [21:38] thomblake has left the channel [21:38] tjholowaychuk: there are no more middlware (including error handling middleware) to handle it [21:39] kkaefer: hmm [21:39] tjholowaychuk: so connect has to default [21:39] tjholowaychuk: unless we special-case 404s / 500s etc [21:39] tjholowaychuk: but im not interested in that [21:39] kkaefer: reason is: I want to send back JSON when the user sent accept: application/json [21:40] kioopii has joined the channel [21:40] markwubben has joined the channel [21:40] tjholowaychuk: kkaefer: so on 404 you want to respond with some json? saying what? [21:41] drudge: { "error": "You shouldn't be reading this right now" } [21:41] tjholowaychuk: just do app.use(function(res, res){ res.send({ message: 'oh noes 404!' }); }) [21:41] chapel: if you are doing a rest style api, it should see a 404 and know how to handle it [21:41] chjj: thats a lot of responses [21:41] skyloid has joined the channel [21:41] tjholowaychuk: yeah [21:41] tjholowaychuk: errorHandler supports text/plain text/html and application/json [21:41] tjholowaychuk: though [21:42] kkaefer: hm, I'll check whether I can work with that [21:42] kkaefer: thanks, tjholowaychuk [21:42] tjholowaychuk: np let me know if it doesnt work out the way you want [21:43] kkaefer: ah, erroHandler always returns 500 [21:43] kkaefer: basically what I'm doing is to channel all errors (>= 400) through next(err) [21:44] kkaefer: and then send the error with the status code if the object has a "status" property [21:44] mamund: fwiw, i need to have 4xx and 5xx status codes return XML or JSON bodies, too. [21:44] kkaefer: https://github.com/developmentseed/bones/blob/master/server/middleware.js#L32-52 [21:44] tjholowaychuk: kkaefer: the thing is that [21:44] tjholowaychuk: app.error() etc [21:44] tjholowaychuk: are really just middleware [21:44] tjholowaychuk: might be a bit confusing i guess since they appear to be special-cased [21:44] tjholowaychuk: which might be an argument to remove them [21:44] jet18 has joined the channel [21:45] kkaefer: app.error callbacks take err as the first parameter though [21:45] kkaefer: so they /are/ kind of special [21:45] kkaefer: and they always seem to run last [21:45] tjholowaychuk: nope [21:45] tjholowaychuk: app.use(function(err, req, res, next){}) [21:45] tjholowaychuk: is the error handling sig [21:45] kkaefer: oh, it introspects the function it gets passed? [21:45] tjholowaychuk: when there is an error *only* those with an arity of 4 [21:45] tjholowaychuk: are executed [21:46] tjholowaychuk: but still in order of definition [21:46] tjholowaychuk: app.error() basically just wraps with a closure so that the arity can be < 4 [21:46] tjholowaychuk: and express does a bit of fiddling to make sure they are at the bottom [21:47] tjholowaychuk: I believe what I have right now is that the error handlers via app.error() are not even added to the app until "listening" is emitted [21:47] tjholowaychuk: to ensure they are last [21:47] kkaefer: will it keep the middleware at the bottom? [21:47] AsDfGh1231 has joined the channel [21:48] Opaque has joined the channel [21:48] AsDfGh1231 has joined the channel [21:48] exstrudel has joined the channel [21:48] tjholowaychuk: I could remove app.error() and force people to understand middleware haha [21:48] tjholowaychuk: but [21:48] tjholowaychuk: hmm [21:48] AsDfGh1232 has joined the channel [21:48] tjholowaychuk: tough call [21:49] kkaefer: not without some other way of ordering [21:49] AsDfGh1233 has joined the channel [21:50] tjholowaychuk: people would have to do require('./routes');\nrequire('./error-handlers') [21:50] tjholowaychuk: etc [21:50] tjholowaychuk: to make sure they are last yeah [21:50] djcoin has joined the channel [21:51] tjholowaychuk: the nice thing about NOT having app.error [21:51] tjholowaychuk: is that it woudl force people to learn connect a bit more [21:51] tjholowaychuk: it's definitely not going anywhere until 3.x anyway though [21:51] ryah: question. what should be the behavior here: [21:51] ryah: var b = Buffer(4); [21:51] ryah: var s = String.fromCharCode(0xffff); [21:51] ryah: b.write(s, 0, 'binary') [21:52] ryah: assert.equal(0xff, b[0]) [21:52] ryah: true [21:52] ryah: what about b[1] ? [21:52] kkaefer: b[1] should be undefined [21:52] ryah: ACTION agrees [21:52] kkaefer: undefined not as in JS' undefined but as in non-defined behavior [21:52] kkaefer: or rather [21:53] kkaefer: whatever the buffer had in it before the b.write() [21:53] ryah: binary encoding is one byte per character [21:53] tbranyen: throw new Error("index out of range, kaboom") [21:53] kkaefer: isn't that the current behavior? [21:54] ryah: var b = Buffer(4); [21:54] ryah: b[0] = 0xde; [21:54] ryah: b[1] = 0xad; [21:54] ryah: b[2] = 0xbe; [21:54] ryah: b[3] = 0xef; [21:54] nexxy has joined the channel [21:54] ryah: var s = String.fromCharCode(0xffff); [21:54] ryah: b.write(s, 0, 'binary') [21:54] ryah: assert.eqaul(0xff, b[0]); [21:54] ryah: assert.eqaul(0xad, b[1]); [21:54] ryah: assert.eqaul(0xbe, b[2]); [21:54] ryah: assert.eqaul(0xef, b[3]); [21:54] nexxy: ACTION agrees [21:54] konobi: ryah, should buffers really care about what's written into them... it's just a series of bytes... it's up to the encoder/decoder to ensure they pull it out properly [21:55] kkaefer: konobi: yeah, 'binary' is the codex [21:55] kkaefer: codec [21:55] konobi: b.splice().toString [21:55] tmzt has joined the channel [21:56] gf3: do we have a node replacement for capistrano yet? [21:57] sherod has joined the channel [21:57] nexxy: I don't suppose anyone knows what this could be caused by? [21:57] nexxy: node: ../src/node.cc:1210: ssize_t node::DecodeWrite(char*, size_t, v8::Handle, node::encoding): Assertion `b[1] == 0' failed. [21:57] a|i: which package is require('redis') corresponded to? so many node redis clients.. [21:57] konobi: gf3: yes... it's called bash [21:58] rauchg has joined the channel [21:58] konobi: hehe [21:58] nexxy: ACTION is waiting for jsh [21:59] ryah: s = String.fromCharCode(0xaaee); [21:59] ryah: b.write(s, 0, 'binary') [21:59] ryah: ^--- what should this be? [21:59] nexxy: I guess it'd be jssh [21:59] jacobolu_ has joined the channel [21:59] ryah: b[0] == 0xee [21:59] kkaefer: ee? [22:01] tjholowaychuk: it's not 0xee right now? [22:01] ryah: i turned on asserts [22:01] CIA-90: node: 03Ryan Dahl 07v0.4 * r103a450 10/ (src/node.cc test/simple/test-buffer.js): [22:01] CIA-90: node: Remove 'binary' encoding assert - add tests [22:01] CIA-90: node: Don't write large characters to buffers with binary encoding. You will be [22:02] ryah: for the production build now [22:02] ryah: socket.io is broken [22:02] ryah: it's [22:03] eldar_ has joined the channel [22:03] TooTallNate has joined the channel [22:04] WarriorSl has joined the channel [22:05] Adman65 has joined the channel [22:05] dmcquay_ has joined the channel [22:05] ryah: seems that it's fixed in head [22:06] slyphon has joined the channel [22:06] ryah: nexxy, saschagehlich_ your issue is fixed in node HEAD [22:07] ryah: v0.4 [22:07] nexxy: ryah, yay [22:07] nexxy: I was using 0.5.0-pre [22:07] context: Topic| do not run master/v0.5 - under heavy unstable development [22:07] nexxy: well that topic wasn't there when I installed it ;P [22:08] context: you should not be surprised when unstable code does not work [22:08] context: :p [22:08] nexxy: ACTION rolls eyes [22:08] nexxy: thank you captain obvious! [22:09] AsDfGh1231 has joined the channel [22:10] mikey_p: in other news tautology is tautology [22:10] nexxy: and I certainly feel more like I do now than I did before! [22:11] piscisaureus: ryah: the interesting question is, what should b.write("픇", 0, "binary"); do? [22:12] Aria: AAA_awright: http://aredridel.dinhe.net/2011/05/16/thoughts-on-a-maybe-sane-build-system/ [22:12] chapel: nexxy: it's all about context [22:12] AAA_awright: Aria: Awesome [22:12] ryah: piscisaureus: write the first byte [22:12] eyesUnclouded has joined the channel [22:12] nexxy: chapel, don't say that, you'll inflate his ego even further! [22:12] lukejohn has joined the channel [22:12] piscisaureus: ryah: but what is the first byte of a non-bmp character? [22:12] chapel: haha [22:13] ryah: piscisaureus: s.charCodeAt(0) | 0xff [22:14] ryah: make that ^ [22:14] ryah: er [22:14] ryah: & [22:14] springmeyer_ has joined the channel [22:14] piscisaureus: v8: "픇".charCodeAt(0) ^ 0xff [22:15] v8bot: piscisaureus: 65282 [22:15] piscisaureus: "픇".charCodeAt(1) ^ 0xff [22:15] ryah: > (String.fromCharCode(0xaaee).charCodeAt(0) & 0xff).toString(16) [22:15] ryah: 'ee' [22:15] ceej_ has joined the channel [22:15] ryah: v8: (String.fromCharCode(0xaaee).charCodeAt(0) & 0xff).toString(16) [22:15] piscisaureus: 01"픇".charCodeAt(1) ^ 0xff01 [22:15] v8bot: ryah: "ee" [22:15] piscisaureus: v8: 01"픇".charCodeAt(1) ^ 0xff01 [22:15] v8bot: piscisaureus: SyntaxError: Unexpected token ILLEGAL [22:16] piscisaureus: 01v8: "픇".charCodeAt(1)^ 0xff01 [22:16] ryah: why ^? [22:16] piscisaureus: that's a non-bmp char [22:16] ryah: what's its code? [22:17] chapel: piscisaureus: black is bad [22:17] sreuter1 has joined the channel [22:17] piscisaureus: ryan: 0x1D507 [22:17] piscisaureus: ryah: ^ [22:18] ryah: v8: (String.fromCharCode(0x1d507).charCodeAt(0) & 0xff).toString(16) [22:18] v8bot: ryah: "7" [22:18] ryah: 0x07 [22:18] piscisaureus: v8: 01String.fromCharCode(0x1d507)01 [22:18] v8bot: piscisaureus: SyntaxError: Unexpected token ILLEGAL [22:19] hellp has joined the channel [22:19] ryanfitz has joined the channel [22:19] newy_ has joined the channel [22:19] piscisaureus: ryah: fromCharCode doesnt work with that because 0x1d507 > 0xffff [22:20] piscisaureus: ryah: sorry, I'm just bullying, forget about it [22:20] jacobolus has joined the channel [22:21] tjholowaychuk: Y U SUCH BULLY [22:21] piscisaureus: yes. kill me. [22:21] gf3: ACTION kills piscisaureus  [22:22] halfhalo: I'm in [22:22] tjholowaychuk: kill -s SIGKILL piscisaureus [22:22] foobarfighter: does npm publish work for anybody else? I'm getting socket hangup errors [22:22] foobarfighter: granted this is the first package ive tried to publiush [22:22] tjholowaychuk: foobarfighter: i've used it a few times today [22:22] foobarfighter: so i may be doing something wrong [22:22] tjholowaychuk: works fine for me [22:22] foobarfighter: ok [22:23] foobarfighter: probably doing something wrong then [22:23] mikeal has joined the channel [22:24] piscisaureus: I'm going to follow @zedshaw [22:24] saschagehlich_: ryah: thanks! :) [22:24] mjr_: oh, you should talk about trademarks and licensing [22:24] piscisaureus: repent [22:26] binarypie has joined the channel [22:28] heavysixer has joined the channel [22:31] mcmx5 has joined the channel [22:31] slyphon has joined the channel [22:32] mcmx5: Hey all [22:33] secoif has joined the channel [22:34] balaa_ has joined the channel [22:34] mcmx5: Quick node question: I have a node http server if i trigger a function from in the http server function that does a loops for a period of time, why does it cause other connecting client to hang until its complete? Any advice? [22:35] chjj: because its blocking [22:35] Guest75743 has joined the channel [22:35] chjj: if its a regular synchronous loop doing some regular synchronous stuff, it will always block until its done [22:36] chjj: depends on what youre doing [22:37] mcmx5: i'm just trying to get to know node really, ultimately i want to achieve long polling [22:37] chjj: what is your loop doing? [22:37] mikeal has joined the channel [22:38] mcmx5: its just counting at the moment just as a test. [22:38] chjj: well if youre doing for (var i = 0xfffffffffff; i--;); that might block for a while [22:38] chjj: but normally you wouldnt have gigantic loops like that in production [22:39] chjj: the synchronous stuff you do in node should ideally be minimal [22:39] mcmx5: what i really want is x amount of clients to connect to /, and wait until another client goes /send and then they all print out some content [22:40] mcmx5: i can't seem to find a straight forward enough example [22:40] sreuter1: mcmx5: http://socket.io/ is not an option for you? [22:41] nexxy: nowjs! [22:41] vilfredo has left the channel [22:41] mcmx5: ah, i thought that was purely WebSocket, which is not fully supported yet i believe [22:41] darshanshankar: i heard nowjs! [22:42] chjj: its not purely websockets [22:42] mcmx5: i see that now [22:42] chjj: it can use all kinds of different transports to fall back on [22:42] chjj: it just abstracts them all away [22:43] sreuter1: yeah. none of the fallbacks really work if you have an reverse-proxy between (like Amazon ELB) .. but if you got a single node i would give a try. [22:43] timmywil has joined the channel [22:43] x_or has joined the channel [22:44] mcmx5: so i can't reverse proxy through apache or nginx? [22:44] bencc has left the channel [22:44] mcmx5: i intend it to be added to existing php web projects [22:44] chjj: seems to be a trend lately [22:45] a|i: anyone using backbone + redis? [22:46] ryah: someone with a stackoverflow account should respond to http://stackoverflow.com/questions/6024232/timeout-issues-on-upgrade-of-node-js-from-0-2-6-to-0-4-7?utm_medium=twitter&utm_source=twitterfeed [22:46] ryah: and say that there is a maximum connections per agent [22:46] sreuter1: no, xhr-longpoll doesnt work great trough reverse-proxies.. at least, thats what i learned from my last experience.. ended up with a special ha-proxy configuration, very special / long timeouts… and stunnel, because ha-proxy doesnt support ssl……. after all, i throw everything away and build my own lib with basically just polls a resource on the server every 5 seconds... [22:46] mcmx5: to be honest, i am a bit worried about the concurrency issue. From what i gather, callbacks are kind of concurrent? [22:47] zeade has joined the channel [22:48] tmzt has joined the channel [22:50] chjj: mcmx5: i dont know what kind of concurrent means, node/libeio/libuv manages a thread pool to make normally blocking calls asynchronous, so all you have to do is give a callback - node is one thread, but one thread can serve you well when it doesnt have to wait on io [22:50] chapel: mcmx5: dnode [22:50] chapel: `v git dnode @ mcmx5 [22:50] v8bot: mcmx5: substack/dnode - GitHub - https://github.com/substack/dnode [22:51] otaku_coder has joined the channel [22:53] mraleph has joined the channel [22:54] mcmx5: ah so if i have a heavy IO call. I trigger it passing a callback, and when its ready the callback will fire, but the program will continue as normal. [22:54] mcmx5: in the mean time [22:55] chjj: yes [22:56] mcmx5: cool, im with it now [22:56] gtramont1na has joined the channel [22:57] ezl has joined the channel [22:58] hij1nx has joined the channel [22:58] chjj: mcmx5: but regular javascript constructs will always block, theres still the potential of significantly blocking with non-io calls if youre doing something really intensive, like you saw with the loop you were talking about [23:00] tdegrunt has joined the channel [23:01] mcmx5: yeah, is it not possible to do things like that then, without blocking the whole server? [23:02] chjj: yeah, while (1) {} will block the entire server forever [23:03] chapel: v8: while(1) {}; [23:03] mcmx5: ah ok [23:03] v8bot: chapel: Error: Timeout [23:03] chapel: :) [23:04] nexxy: ooh chapel got put on timeout [23:04] chapel: ACTION sulks [23:07] yhahn1: tjholowaychuk: express [23:07] kmiyashiro has joined the channel [23:07] tjholowaychuk: yes? [23:07] tjholowaychuk: what's up? [23:07] yhahn1: wow it worked [23:07] yhahn1: tjholowaychuk: seeing that connect server stacking works? e.g. a.use(b) // where b is a connect server [23:07] tjholowaychuk: haha [23:07] tjholowaychuk: yup [23:08] yhahn1: do you plan on removing this in the future or is this an actually supported feature [23:08] tjholowaychuk: doesn't have to be a connect server [23:08] tjholowaychuk: nah it'll stay [23:08] yhahn1: o any HTTP server works? [23:08] tjholowaychuk: yup [23:08] tjholowaychuk: though personally I've still never seen app mounting work properly [23:08] tjholowaychuk: and actually be overly useful [23:08] kkaefer: tjholowaychuk: we think we have a use case for app mounting [23:08] tjholowaychuk: it's fine for app-level separation of concerns but as far as like "hey here's my blog app chuck it in your app" [23:08] tjholowaychuk: that sucks [23:09] tjholowaychuk: we use it in learnboost but basically just for namespacing [23:09] yhahn1: greato [23:10] Xano has joined the channel [23:10] beriberikix has joined the channel [23:12] mikeal has joined the channel [23:12] darshanshankar: tjholowaychuk: you work at learnboost now? [23:12] tjholowaychuk: darshanshankar: have for about 6 months or so [23:12] tjholowaychuk: or more [23:12] darshanshankar: didn't know that! thats cool! [23:13] materialdesigner has joined the channel [23:13] tjholowaychuk: :D [23:15] AsDfGh1231 has joined the channel [23:16] PhilK has joined the channel [23:16] mikey_p: the screencasts kinda give it away [23:16] Marak: ryah: do you have any desire to bring back the twitter announcer bot? we brought it back to life in a test room, but searching for #nodejs and "node.js" is super busy these days, lots of results [23:17] AsDfGh1231 has joined the channel [23:17] bene has joined the channel [23:18] boaz_ has joined the channel [23:20] nexxy: Marak, I want one! I had one in my channel for a while but it got too loud to not be in its own channel [23:20] Marak: nexxy: its OSS, working on a new release [23:20] nexxy: oh [23:20] azeroth__ has joined the channel [23:20] nexxy: all I did was weld a node-irc bot to the twitter-realtime thingy [23:20] nexxy: and let it go [23:21] ChrisPartridge has joined the channel [23:21] nexxy: or twitter-stream, w/e [23:21] Marak: nexxy: same deal, we are starting with that but making a plugin system [23:22] nexxy: yay ;3 [23:22] nexxy: giz me repo [23:22] nexxy: I follow [23:22] AsDfGh123 has joined the channel [23:22] chapel: Marak: are you using dnode? [23:22] Daeken has left the channel [23:22] nexxy: dnode uses you. [23:22] chapel: and as it should [23:23] Marak: chapel: im sitting next to SubStack right now with nlco taking about dnode [23:23] Marak: lol [23:23] nexxy: uh oh [23:23] chapel: just saying [23:23] chapel: ask SubStack about his dnode irc bot [23:23] chapel: :) [23:23] nexxy: inb4 markov rap battle part deux [23:23] AsDfGh123 has joined the channel [23:23] chapel: also Marak did SubStack mention doing a podcast with him and mikeal? [23:23] SubStack: hackedy hack [23:24] kmiyashiro has joined the channel [23:24] chjj: is that giant dnode logo on the github page [23:24] chjj: a ninja turtle rapping? [23:24] SubStack: yes [23:24] Marak: chjj: FUCK YEAH [23:24] chjj: haha [23:24] chjj: nice [23:24] chapel: SubStack: is there video of your presentation yet? [23:24] SubStack: there is a video, I just don't know where it is [23:25] unomi has joined the channel [23:25] nexxy: the one from nodeconf? [23:25] frewsxcv: is there a vector version (or at least higher quality) verson of the node.js logo available? [23:25] mbarnes679 has joined the channel [23:26] AsDfGh123 has joined the channel [23:26] AsDfGh123 has joined the channel [23:26] qwebirc43910 has joined the channel [23:26] edude03 has joined the channel [23:28] Tubarao_Sartinha has joined the channel [23:28] tahu has joined the channel [23:29] AsDfGh123 has joined the channel [23:31] AsDfGh123 has joined the channel [23:35] hij1nx has joined the channel [23:35] tonymilne has joined the channel [23:36] AsDfGh123 has joined the channel [23:36] sherod has joined the channel [23:38] tmzt_ has joined the channel [23:40] AsDfGh123 has joined the channel [23:41] beriberikix_ has joined the channel [23:42] marknel has joined the channel [23:42] jmoyers has joined the channel [23:42] wookiehangover has joined the channel [23:43] mscdex: node.js rules! [23:43] sechrist has joined the channel [23:46] azeroth__ has joined the channel [23:47] tjholowaychuk: mscdex rules! [23:48] mscdex: tjholowaychuk: /clear [23:48] mscdex: :-D [23:48] tjholowaychuk: hehe [23:48] temp01 has joined the channel [23:48] jacter1 has joined the channel [23:49] Xano has joined the channel [23:49] materialdesigner has left the channel [23:49] MrNibbles has joined the channel [23:50] tonymilne: tjholowaychuk: Is LearnBoost still using Mongoose in it's codebase? [23:50] tjholowaychuk: yup [23:51] tonymilne: Theres a couple of bugs that stumped me yesterday. Made me so confused. ;) [23:51] tjholowaychuk: I dont work with it much really, that's mostly aaron and guillermo [23:51] tonymilne: I was trying to update a number column, and also push an item on to an array and save. [23:52] tonymilne: ah, yep. [23:57] m0hit: join #flask [23:59] ardcore has joined the channel [23:59] ardcore has left the channel [23:59] dnolen has joined the channel [23:59] marknel has joined the channel