[00:00] JAAulde has joined the channel [00:00] JAAulde: hi all. any news on the buildbot site? [00:01] muk_mb: paypal's sandbox can die in a fire [00:02] [[zz]] has joined the channel [00:03] tyfighter has joined the channel [00:03] fizx has joined the channel [00:04] Yuffster has joined the channel [00:05] evanpro has joined the channel [00:06] gsmcwhirter has joined the channel [00:06] CrabDude has joined the channel [00:09] dicon has joined the channel [00:12] CrabDude has joined the channel [00:18] tapwater has joined the channel [00:19] Cainus: hey can anyone tell me what I'm doing wrong in general when a script won't return? Is that some asynch op not returning for some reason? [00:19] gsmcwhirter: Cainus, gist / pastebin? [00:20] jesusabdullah: What kinda errors (if any) are you getting, Cainus? [00:20] Cainus: it's just hanging [00:20] Cainus: I have to CTRL-C to get the script to finish [00:20] jesusabdullah: In that case: pastebin. [00:20] Cainus: I'd pastebin, but I have to spend an hour prepping it first to whiddle it down... I was just wondering if it's a common asynch programming thing [00:21] gsmcwhirter: Cainus, really depends on what you are trying to do i think [00:21] jesusabdullah: What I would imagine is that you have something still running, yeah--if it's a connection, maybe the connection isn't getting closed and it's still listening [00:21] jesusabdullah: Or, if you have a watchFile, you have to un-watch the file or it'll watch the file indefinitely [00:21] Cainus: it's likely my mysql connection [00:21] Cainus: alright cool... thanks guys... fair enough [00:21] jesusabdullah: If you have a "setInterval," you need a way to break it [00:21] jesusabdullah: Things like that [00:22] Cainus: yeah makes sense [00:32] Me1000 has joined the channel [00:36] BrianTheCoder has joined the channel [00:36] c4milo has joined the channel [00:37] deepthawtz has joined the channel [00:39] kevwil has joined the channel [00:41] pedrobelo has joined the channel [00:46] BrianTheCoder: is there a way to get the public directory path from inside an express app? [00:46] rkieffer: Hey folks, does anyone here have easy access to IE9 beta? [00:48] c4milo1 has joined the channel [00:48] c4milo1 has left the channel [00:49] tjholowaychuk: BrianTheCoder: that is usually passed to staticProvider [00:49] tjholowaychuk: so not realy [00:49] tjholowaychuk: BUT [00:49] c4milo2 has joined the channel [00:49] halfhalo: dundunDUN.... [00:49] BrianTheCoder: so just store it as a var and pass it to staticProvider and then re use it? [00:49] tjholowaychuk: you could do var pub = 'whatever'; app.set('public', pub); app.use(staticProvider(pub)) [00:50] saikat: mjr_: did you get a chance to benchmark your redis client vs. fictorial's? [00:51] mjr_: saikat: sort of. It's awkward because you need an older node to run fictorial's [00:52] saikat: does yours run with 0.2 or does it rely on fast buffers? [00:52] mjr_: it should run on older nodes. It benefits from fast buffers, but doesn't depend on them. [00:52] mjr_: As far as I know. [00:52] saikat: cool [00:52] saikat: yeah i will probably wait a bit then to try it out, but thanks for making it [00:52] mjr_: But I never test it on older nodes, so who knows. :) [00:53] mjr_: It probably works. [00:53] saikat: my redis client currently is the obvious bottleneck on response times [00:53] saikat: or well, my hits to redis [00:53] saikat: not sure how much is due to client how much is due to just, hitting any DB is slow [00:53] mjr_: At some point, your node will get old enough that Buffer isn't a global, and then my lib will break. [00:53] EyePulp: this might be a dumb question, but can socket.io connect across domains (different origin) under SSL? [00:54] mjr_: fictorial's client really chews up GC time if you are grinding through a lot of replies. [00:54] saikat: EyePulp: last i talked with rauchg, SSL isn't really tested/supported that well [00:54] saikat: mjr_: interesting - that might be what's causing my sharp CPU spikes constantly [00:54] saikat: EyePulp: he suggested taking a look at stunnel [00:54] saikat: i'm not sure what the state of SSL is with node currently, i know it was buggy not too long ago [00:54] EyePulp: saikat: and that's a limitation more with socket.io rather than node at this point? [00:54] saikat: but this project improves fast [00:55] saikat: at the time, it seemed more an issue with node [00:55] saikat: but i don't know very much about SSL in node [00:55] Cainus: this 10-line script hangs when I run it: http://gist.github.com/592866 ... can anyone throw me a clue? [00:55] saikat: so i can't really talk on that [00:55] jashkenas has joined the channel [00:56] EyePulp: saikat: no worries - still working on my own understanding [00:59] mjr_: Cainus: I wonder if that's the same issue I have with my redis client, if you try to end() a net stream while it is still connecting, it sort of hangs. [00:59] mjr_: I haven't used mysql in node though. [00:59] derencius has joined the channel [01:00] s0enke: still not sure how heroku does define "high scale" [01:01] Cainus: mjr: it hangs without the end() as well :\ [01:01] mjr_: Well, that's the it then. [01:01] mjr_: er, not it then. [01:01] s0enke: moah i have to configure my bouncer to provide more backlog ;) [01:04] Yuffster has joined the channel [01:08] matt_c has joined the channel [01:12] satori_ has joined the channel [01:15] prettyrobots has joined the channel [01:15] prettyrobots: What is a good proxy for Node.js? [01:15] isaacs: prettyrobots: depends on what you want to do. i've heard good things about haproxy and varnish [01:15] prettyrobots: Which ones work with websockets. I'm using nginx now, but I'm trying to build an ideal stack. [01:15] isaacs: yeah, nginx not so much [01:16] isaacs: great for serving static files, though. the best. [01:16] nerdEd has joined the channel [01:18] isaacs: we need a node version of this: http://www.indigostar.com/perl2exe.php [01:19] isaacs: then "windows support" would be "compile into an exe and run it" [01:20] prettyrobots: Just have to wait 15 years and someone will get around to it, Im [01:20] prettyrobots: sure. [01:20] prettyrobots: Varnish can't do static files, then? [01:21] sechrist: iirc haproxy has a shitload of options [01:22] sechrist: you can send non-http traffic to another service and stuff like that [01:22] sechrist: so for websockets it would just proxy the tcp data and not http-parse it [01:22] sechrist: or at least that's my understanding [01:23] sechrist: it could also load balance websockets etc [01:25] jacobolus has joined the channel [01:25] isaacs: prettyrobots: you could run nginx on one port, and node on another, and have varnish send all requests for static.foo.com to the nginx port, for example [01:26] prettyrobots: So, you use varnish. [01:26] isaacs: prettyrobots: no, i use nginx, and i hate the world. [01:26] prettyrobots: Ah. [01:26] isaacs: because, like you, i learned that nginx is fast, and good, and then once i had it set up, i was like, "wut, it can't do streaming? well that's dumb." [01:26] halfhalo: cherokee ftw [01:27] isaacs: at this point, i dunno, i'd probably go with some kind of cloud hosted something or other. [01:27] isaacs: i hear joyent's got a cool no.de service that they're working on. those guys are smart. [01:27] isaacs: and handsome. [01:27] prettyrobots: Great domain. [01:27] isaacs: inorite!? [01:29] prettyrobots: I need a coupon code. [01:29] prettyrobots: :( [01:29] prettyrobots: I"m going to try "bob". [01:29] prettyrobots: Nope. [01:29] halfhalo: icanhascheezburger? [01:29] hsuh has joined the channel [01:29] isaacs: prettyrobots: there are no codes atm. [01:30] prettyrobots: isaacs: Are you at Joyent? [01:30] isaacs: prettyrobots: yeah [01:30] ekidd has joined the channel [01:30] isaacs: prettyrobots: i started right after nodeknockout [01:30] prettyrobots: Ah. [01:31] isaacs: hence the comment about joyent guys being smart and handsome ;) [01:31] prettyrobots: Ohh.... HaProxy looks good. [01:31] prettyrobots: isaacs: So, hey, what does it take to get you to collaborate on a tar parser? [01:31] fizx has joined the channel [01:32] isaacs: prettyrobots: so, there are basically three problems i can see with yours, and it's been way too long since i parsed anything. [01:32] isaacs: 1) coffeescript. it's cute, but... meh. npm needs to be in just js [01:33] isaacs: 2) the dependency on node-packet. seems like there's a more efficient way that's less general for this case. [01:33] isaacs: 3) should follow the writestream-that-emits-readstream pattern [01:33] prettyrobots: What is 3? [01:33] isaacs: r = tar.createReader() ; r.on("file", function (f) { f.on("data" ...) }) ; sys.pump(somefile, r) [01:34] isaacs: r = tar.createReader() ; r.on("file", function (f) { sys.pump(r, process.stdout) }) ; sys.pump(somefile, r) [01:34] LFabien has joined the channel [01:34] muk_mb has joined the channel [01:34] isaacs: or even: sys.pump(someFile, tar.createReader(function (f) { sys.pump(r, process.stdout) })) [01:35] c4milo2 has left the channel [01:35] isaacs: er... the "r" inside the function should be an "f" there [01:38] benreesman has joined the channel [01:38] skampler_ has joined the channel [01:38] benreesman: hi, has anyone seen node fail to build on mac os x with a build error pertaining to 'NearLabel'? [01:39] steadicat has joined the channel [01:39] benreesman: someone posted a gist of it: http://gist.github.com/592728 [01:39] prettyrobots: So, creating closures on every file. [01:41] isaacs: prettyrobots: well, not just that [01:41] isaacs: prettyrobots: i dont' always have a tar *file*, i want to read. [01:41] prettyrobots: And then readable streams of files. [01:41] isaacs: maybe i just want to stream in a tar from an upload,or from a process, or something [01:41] isaacs: so the "createParser" or whatever creates a writable stream. [01:41] prettyrobots: Yeah. My implementation handles that. [01:41] isaacs: that writable stream parses out the tar header, and emits a "file" event for each file it finds. [01:42] isaacs: the "file" event gets an argument that is a readable stream [01:42] isaacs: and while it's nice to have a "header" event, it should be kinda like the http server, where the "file" emitter just has a "headers" object or somethign [01:42] isaacs: or maybe jsut file.uid and file.filename and such [01:43] prettyrobots: Right. [01:43] isaacs: parser.on("file", function (file) { file.on("data", function (chunk) { ... }) etc [01:43] prettyrobots: So their is a "file" event an in that handler, a readable stream is provided. [01:43] prettyrobots: And the user reads that stream. [01:43] isaacs: suresure [01:43] isaacs: then, also, i need a writer. [01:43] prettyrobots: How do you implement writable stream? Is it duck typed? [01:43] isaacs: so, for the writer, you'd do it like this, the same, but in reverse: [01:43] matt_c: benreesman: Do you use homebrew at all? You can just "brew install node" with that. [01:44] prettyrobots: Ah. [01:44] prettyrobots: You derive from WritableStream, right? [01:44] isaacs: sure, you could do that. [01:44] isaacs: or you could just derive from EventEmitter [01:44] isaacs: i think net.WriteableStream has a few tcp-isms in there. [01:44] matt_c: benreesman: It thinks your arch is linux too, you might try "export MACOSX_DEPLOYMENT_TARGET=10.6" before building. [01:45] prettyrobots: Okay. So then WriteableStream is a duck type. [01:45] isaacs: fs.FileWriteStream is the same [01:45] isaacs: yeah [01:45] isaacs: it's more an interface [01:45] prettyrobots: Sure. [01:45] isaacs: sys.pump is the best example of what it absolutely needs to implement [01:45] benreesman: matt_c thanks i'll give that a shot [01:45] huyhong has joined the channel [01:45] isaacs: sys.pump basically is the definition of how it needs to behave [01:45] isaacs: it'd be good to have a general "Stream" thing to inherit from,though [01:45] matt_c: benreesman: if you're on 10.5 set that instead. I have node installed via homebrew on 10.6 but have built it from a tarball successfully too so that doesn't look familiar. [01:46] prettyrobots: Okay. So, I can do 3. [01:46] huyhong has left the channel [01:46] prettyrobots: That is helpful. [01:46] benreesman: matt_c the export didn't change anything [01:46] prettyrobots: But, if you want to implement Tar, you're going to need most of whats in Packet. [01:46] matt_c: benreesman: I'm not sure then, it was worth a shot :( [01:46] benreesman: yeah [01:46] benreesman: i built from git checkout [01:47] benreesman: the guy who posted the gist did so about two hours ago so i think it might be something new [01:47] prettyrobots: Some edge cases of tar have binary. [01:47] benreesman: i'm running a vanilla snowy 10.3 that i installed from scratch yesterday [01:47] prettyrobots: Seems to be about a half dozen different tar formats in the wild. [01:47] isaacs: prettyrobots: that's fine [01:48] isaacs: prettyrobots: well, the parser should be just walking down a set of buffers anyway [01:48] isaacs: stateful, one-char scope, etc. [01:48] prettyrobots: Yes. [01:48] prettyrobots: That's what Packet does. [01:48] isaacs: you get to points where you know "the rest of this buffer, or the next 'n' bytes, are all file body" so you can just dump it all in one shot [01:48] fizx has joined the channel [01:48] isaacs: so there, it doens't matter if it's binary or not [01:49] benreesman: matt_c you don't happen to be rebelvox matt do you? [01:49] isaacs: just skip past the "\0"s [01:49] isaacs: etc. [01:49] prettyrobots: isaacs: Yes. [01:49] matt_c: benreesman: nope. [01:49] prettyrobots: Don't buffer packing in headers. [01:49] prettyrobots: Don't buffer the two blocks at the end that are all zeros. [01:49] benreesman: matt_c: ah cool. he's into node as well. i'm going to try the tarball [01:50] isaacs: prettyrobots: well, yeah. [01:50] prettyrobots: No buffering of the file bodies. [01:50] prettyrobots: All done. [01:50] prettyrobots: Implemented. [01:50] gsmcwhirter: i kinda want to get rid of the jspack dependency i have in this project. is there anything that will do the equivalent unpack stuff built into node? http://github.com/gsmcwhirter/node-zoneinfo [01:50] isaacs: prettyrobots: yeah... but in coffeescript. [01:50] prettyrobots: I was under the impression that this wasn't a problem. [01:51] isaacs: prettyrobots: it's not a problem, in general. [01:51] malkomalko_ has joined the channel [01:52] isaacs: benreesman: rebelvox matt is mjr_ [01:52] cloudhead has joined the channel [01:52] mjr_: oh hey benreesman [01:53] isaacs: and thus he is summoned... [01:53] benreesman: mjr_: how's it going? [01:53] isaacs: ok, train time. have fun, noders. [01:53] mjr_: good, just about to head home. Have to talk to you later. [01:53] benreesman: take it easy [01:54] isaacs: prettyrobots: i encourage you to write this and many other parsers. http://twitter.com/izs/status/25266789408 [01:55] isaacs: it is a zen exercise, writing an interruptible streaming state machine parser [01:55] isaacs: like pruning a bonsai [01:56] prettyrobots: Isn't the point of NPM to manage these dependencies? Why should it matter that the JavaScript is CoffeeScript generated? [02:01] tmpvar has joined the channel [02:01] tmpvar: hello [02:01] tmpvar: wasn't there something added to core that allowed you to get at sub ms timings? [02:02] ysynopsis has joined the channel [02:05] retrofox has left the channel [02:07] Tim_Smart: Heh I just read 'therapist' as 'the rapist' [02:07] Tim_Smart: I never want therapy :/ [02:07] bpadalino: if you're ever looking for some pens, check out penisland.net - it's great [02:08] bpadalino: i know the CEO personally .. very nice guy [02:08] prettyrobots: ACTION Laughing out loud. [02:08] muk_mb: lol penisisland [02:09] tmpvar: does he put his penisinyourhand.com? [02:09] bpadalino: ooh, that's a good one [02:11] jbenesch has joined the channel [02:14] malkomalko_: hmmm [02:16] aho has joined the channel [02:19] tav_ has joined the channel [02:20] CIA-77: node: 03Ryan Dahl 07master * r4df999f 10/ (73 files in 10 dirs): [02:20] CIA-77: node: Revert "Upgrade V8 to 2.4.5" [02:20] CIA-77: node: This reverts commit e2274412488ab310decb8494ab41009342b3c2f6. [02:20] CIA-77: node: Build fails on mac - http://bit.ly/cMgUww [02:21] matt_c: benreesman: That may be the answer you were looking for earlier :) [02:28] marshall_law_ has joined the channel [02:29] TomsB has joined the channel [02:41] tpryme has joined the channel [02:44] brianmario has joined the channel [02:45] benreesman: matt_c: looks like it [02:47] paulwe has joined the channel [02:47] jbenesch has joined the channel [02:50] danielzilla has joined the channel [02:51] mjr_ has joined the channel [02:51] Tim_Smart: You would think v8 tests their releases on Mac... [02:53] ehaas has joined the channel [02:58] bpot has joined the channel [02:58] tapwater has joined the channel [02:59] Tim_Smart: mjr_: Take a look at my little commit note. [03:00] mjr_: Yeah, I was just responding to it. [03:00] mjr_: I dunno what the right answer is. Did you see tj's pull request? [03:00] dipser_ has joined the channel [03:00] mjr_: http://github.com/mranney/node_redis/pull/17#issuecomment-424328 [03:00] Tim_Smart: Looking now. [03:01] Tim_Smart: Doesn't that do the same thing, except he just added chaining support? [03:01] Tim_Smart: Oh nope. [03:02] Tim_Smart: I'm probably -1 for that. [03:02] Tim_Smart: As I can't make multi transactions dynamically. [03:03] mjr_: I think you can make them dynamitcally with tj's chaining thing, no? [03:03] Tim_Smart: Use case: http://github.com/biggie/biggie-orm/blob/master/lib/adapter/redis.js#L178-203 [03:03] mjr_: it's sort of like a different syntax for what you proposed. [03:04] Tim_Smart: mjr_: A little awkwardly yeah [03:04] malkomalko_: it seems like the data and end listener event inside bodyDecoder is not firing for me, hmm [03:04] mjr_: time to go eat [03:05] Tim_Smart: mjr_: With his patch it would be: var trans = client.multi(); loop { trans.del(); ... } trans.exec(); [03:05] Tim_Smart: Which isn't too bad I guess. [03:09] aconbere has joined the channel [03:10] emmanueloga has joined the channel [03:15] ako has joined the channel [03:18] Guest87852: substack you around? [03:20] SubStack: Guest85824: yep [03:21] omygawshkenas has joined the channel [03:21] Guest85824: cool, so in dnode, for the web dnode.js client, why dont you allow the port to be specified for socket.io? dnode.js has delete kwargs.port [03:22] Me1000 has joined the channel [03:22] SubStack: Guest85824: you can use whatever port you like with the http server [03:24] Guest85824: right, i mean on the client side, /lib/web/dnode.js, since delete kwargs.port it forces socket.io to default to the port of the current page, unless im reading it wrong [03:25] Guest85824: so say i have on page at test.com:3030, but i want open a connection on port 8080 [03:26] Guest85824: DNode(...).connect(8080, function ... [03:26] Guest85824: doesnt seem to work, i think it's because of delete kwargs.port, not sure though [03:27] omygawshkenas has joined the channel [03:27] SubStack: looking into socket.io a bit more [03:28] iwasbiggs has joined the channel [03:28] jashkenas has joined the channel [03:29] Guest85824: cool, thanks, http://github.com/substack/dnode/blob/master/lib/web/dnode.js line 30 and http://github.com/LearnBoost/Socket.IO/blob/master/lib/socket.js is where ive been looking [03:30] emmanueloga has joined the channel [03:33] jashkenas has joined the channel [03:33] SubStack: Guest85824: aha it looks like you're right about the ports [03:34] noahcampbell has joined the channel [03:34] siculars has joined the channel [03:34] SubStack: I'll try to whip up a cross-domain example to test this first [03:34] Guest85824: alright cool, thanks for looking into it [03:34] EyePulp has joined the channel [03:34] Guest85824: ive just commented out the delete kwargs.port on my fork, no need to merge [03:36] crodas has joined the channel [03:38] SubStack: Guest85824: open up an issue anyways [03:38] Guest85824: ok will do [03:40] visnup has joined the channel [03:43] Guest85824: issue opened - thanks substack! dnode is awesome, im really enjoying it [03:44] mattly has joined the channel [03:46] SubStack: k now I've got a multiport example [03:47] SubStack: works! [03:47] Guest85824: awesome! [03:48] cardona507 has joined the channel [03:48] SubStack: pushed and published [03:50] SubStack: github is great for managing this stuff [03:50] Guest85824: looks good, thanks, and agreed [03:50] benburkert has joined the channel [03:56] isaacs has joined the channel [03:57] bradleymeck1 has joined the channel [03:57] bradleymeck1 has left the channel [03:58] cataska has joined the channel [03:59] ajpiano has joined the channel [04:02] sh1mmer has joined the channel [04:02] xslasherx has joined the channel [04:22] saikat has joined the channel [04:26] emmanueloga has joined the channel [04:32] dilvie has joined the channel [04:33] jarfhy has joined the channel [04:34] zomgbie has joined the channel [04:39] fictorial has joined the channel [04:40] fictorial: Anyone from Rocket Pack here? I'm curious if they are using node on the server side. [04:42] mjr_: Hey fictorial. [04:42] Tim_Smart: BP needed closures: http://github.com/biggie/biggie-orm/blob/master/lib/adapter/redis.js#L96 [04:43] dohtem has joined the channel [04:43] dohtem has joined the channel [04:43] mjr_: Yeah, global namespace pollution is pretty equivalent to Gulf of Mexico pollution. [04:46] mr_daniel has joined the channel [04:48] mytrile has joined the channel [04:49] ryah: fictorial: they are [04:49] micheil: morning ryah, mjr_ [04:49] ryah: did you see the second video? http://www.youtube.com/watch?v=zZyoDfau3is [04:50] emmanueloga has joined the channel [04:55] ryah: micheil: hey [04:55] micheil: hmm.. this feels odd, knowing that I've now finished school [04:55] gsmcwhirter: is there a way to get a connect/express app router to spit out the routes that are registered with it? (for purposes of a sitemap, for instance) [04:56] Me1000 has joined the channel [04:57] micheil: gsmcwhirter: yeah, I think so [04:58] micheil: gsmcwhirter: you'd need to inspect a bunch of stuff to find it though [04:58] gsmcwhirter: micheil, ok, thanks [05:00] matt_c has joined the channel [05:03] matt_c_ has joined the channel [05:05] danielzilla has joined the channel [05:10] mikew3c_ has joined the channel [05:10] okuryu has joined the channel [05:12] saikat has joined the channel [05:12] falconair has joined the channel [05:17] falconair: hi, isn't this supposed to print the elements of the array, rather than numbers "0 1 2": "for (var testx in [ 'A1', 'B1', 'C1']) { console.log(testx);}" ? [05:19] aconbere has joined the channel [05:19] muk_mb: yeah that for loop gets you the index [05:19] muk_mb: so you can do array[textx] [05:19] a_meteorite has joined the channel [05:20] rwaldron has joined the channel [05:20] micheil: or just do a for(var i...) [05:21] micheil: loop [05:21] falconair: muk_mb: got it, thanks! (i actually tried treating it as an array index, but a typo caused even stranger results :) ) [05:22] muk_mb: hehe [05:23] Duncan_ has joined the channel [05:26] mattly has joined the channel [05:26] bpot has joined the channel [05:28] a_meteorite has joined the channel [05:31] ryah: someone should do a web irc client with node.. [05:31] ryah: i'm kind of disappointed that there isn't one [05:31] ryah: (it was my first project with node...) [05:32] stephenjudkins has joined the channel [05:33] ryan[WIN]: ryah, web irc client? [05:33] amerine has joined the channel [05:33] MikhX has joined the channel [05:33] ryah: ryan[WIN]: to get a connection to freenode [05:33] ryan[WIN]: what, use node to basically bnc a web thing? [05:33] ryah: irc proxy [05:34] ryah: bnc? [05:34] mape: bouncer [05:34] HAITI: Im working on something similar ryah, ill put on github soon =) [05:35] mape: A good webIRC client that is customizable seems like it could be useful [05:35] jesusabdullah: I'd like a web irc client that doesn't suck [05:35] ryah: a minimal one :) [05:35] mape: Only issue is still that all connections come from one location so asshats get everyone banned [05:35] ryah: hehe, i forgot about http://chat.nodejs.org/ [05:35] ryah: still running [05:36] ryah: i rebooted it last month when i moved the server - but i think it's been going 3 months straight [05:36] ryah: super low traffic though [05:36] jesusabdullah: I guess it would be easy enough to mash the chat and an irc lib together [05:36] figital has joined the channel [05:37] ryah: actually i built node to make that program [05:37] HAITI: mape: My approach is to use a twitter login for access to make any PRIVMSG [05:37] halfhalo: I tried a webirc client but never got tabs working [05:37] ryah: i wish i still had it [05:37] HAITI: on that tw accounts behalf [05:37] halfhalo: Ub [05:37] ryah: but it basically looked like that [05:37] halfhalo: Backend was completely finished though [05:38] jesusabdullah: I'd do it if I weren't so busy [05:38] jesusabdullah: Can't even work on the stuff I already have :( [05:38] halfhalo: Although my irc backend doesn't like 005 numerical replies iirc [05:38] benburkert has joined the channel [05:39] ryah: http://s3.amazonaws.com/four.livejournal/20090107/screenshot.png <-- [05:39] halfhalo: Speaking of my irc class, I should push it to github... But that's effort [05:39] ryah: well not the client but some code :) [05:39] micheil: ryah: what was the go with the website work [05:39] micheil: ? [05:40] halfhalo: Honestly, if I could afford ext designer I could make a web irc interface easily [05:40] jesusabdullah: There's already a pretty nice irc module [05:40] ryah: still haven't dealt with it -_- [05:40] jesusabdullah: that's all you'd need [05:40] jesusabdullah: well, that and some web communication stuff [05:40] ryah: http://four.livejournal.com/944885.html <-- [05:41] ryah: http://s3.amazonaws.com/four.livejournal/20090107/index.html yes! [05:41] halfhalo: Lemme push mine.. I removed input since it's just being used for logging but meh [05:43] jesusabdullah: Man that would be rad [05:44] micheil: ryah: we should probably organise a team together to work on it. [05:44] halfhalo: http://github.com/halfhalo/Node.js-IRC [05:45] halfhalo: My god it takes a long time to paste stuff on an iPad [05:45] prettyrobots has joined the channel [05:45] micheil: ryah: like, I've got a fair bit of time on my hands now, so I'll be able to work more on it. [05:45] path[l] has joined the channel [05:45] micheil: is there a project for it on github or something? [05:45] micheil: ryah: also, are you doing jsconf.eu? [05:46] ryah: micheil: http://github.com/robrighter/node/tree/new-website [05:46] ryah: micheil: yes [05:46] Yuffster has joined the channel [05:46] ryah: node.robrighter.com [05:46] ryah: i hope when i get back i'll be motivated to do that [05:47] micheil: k [05:47] skampler_ has joined the channel [05:47] micheil: btw, I never heard back about those logo concepts? [05:47] halfhalo: Oh... Hey... My logger is still running... Imagine that... [05:48] halfhalo: Would have thought it would have crashed by now since it does no error checking at all [05:49] yrashk has joined the channel [05:53] benburkert has joined the channel [05:58] daglees has joined the channel [06:02] hannesw__ has joined the channel [06:05] spetrea has joined the channel [06:07] jbenesch has joined the channel [06:07] markwubben has joined the channel [06:08] dgathright has joined the channel [06:12] jakehow has joined the channel [06:15] dohtem has joined the channel [06:15] dohtem has joined the channel [06:16] ajsie: holy mother [06:16] ajsie: have you checked out node inspector? [06:16] ajsie: thats kinda what i missed all the time in Ruby [06:17] ryah: ajsie: yeah - it's pretty sweet. [06:18] ryah: kind of buggy though [06:18] ajsie: yeah [06:24] CIA-77: node: 03isaacs 07master * r4d0456f 10/ (lib/fs.js test/simple/test-fs-read-file-sync-hostname.js): [06:24] CIA-77: node: Don't use stat in fs.readFile[Sync] [06:24] CIA-77: node: Original patch c/o Evan Larkin - http://bit.ly/9G6ij9 [06:24] JimBastard has joined the channel [06:24] JimBastard: considering i just woke up an hour ago, i think working from home is starting to takes its toll on my sanity [06:25] micheil: JimBastard: find a coworking place then? [06:25] JimBastard: we have one, its under construction atm [06:25] micheil: oh [06:25] JimBastard: i got corner office with bay windows [06:25] micheil: nice [06:25] JimBastard: huge space [06:25] JimBastard: 15k+ square ft [06:25] JimBastard: prime location [06:26] JimBastard: >.< [06:26] micheil: must've cost a bit in NYC [06:26] JimBastard: not costing us anything [06:26] micheil: oh? [06:26] JimBastard: its complicated [06:26] micheil: okay.. [06:26] JimBastard: we are putting in tons of time though [06:26] JimBastard: but yeah, it cost a few hundred k to get into the door [06:27] JimBastard: these other guys are putting it all together, my business partner is the CTO over there too [06:27] JimBastard: http://generalassemb.ly/ [06:28] micheil: nice [06:28] ajsie: is it recommended to use npm or seedjs? [06:28] micheil: npm [06:31] ajsie: seedjs wont be defacto? [06:31] ajsie: in the future either? [06:31] JimBastard: i dont think its even supported [06:31] JimBastard: http://seedjs.org/ [06:31] JimBastard: is that the site? [06:32] ajsie: yeah [06:32] ajsie: :) [06:32] ajsie: http://github.com/seedjs/seed [06:32] ajsie: looks unmaintained [06:34] nroot7 has joined the channel [06:35] ivanfi has joined the channel [06:39] mikew3c: well, node-static sure is a nice piece of work [06:39] mikew3c: makes things dead simple [06:40] mikew3c: and it's very useful to local testing of apps that use XHR [06:40] mikew3c: ACTION notices that cloudhead is on the channel [06:40] Anti-X has joined the channel [06:40] mikew3c: cloudhead: thanks extremely much for putting node-static together [06:40] codetonowhere has joined the channel [06:46] path[l] has joined the channel [06:48] prettyrobots has joined the channel [06:49] level1 has joined the channel [06:50] level1: hello, I'm feeling really dumb here. I'm trying to find out how I include multiple js files in node.js. I'm sure its obvious [06:51] JimBastard: level1: use require? [06:51] crodas has joined the channel [06:52] level1: JimBastard, thanks [06:55] mjr_: Just watched the Rocket Engine Networking video. Super cool. [06:58] Anti-X: link [06:58] freeall has joined the channel [06:58] hassox has joined the channel [06:58] mjr_: http://www.youtube.com/user/rocketpackgames [06:59] mjr_: Sounds like there's some serious node piece in there. [07:01] Anti-X: what does it have that AVES doesn't? [07:04] pydroid has joined the channel [07:06] nroot7 has joined the channel [07:10] jbenesch has joined the channel [07:13] adambeynon has joined the channel [07:27] virtuo has joined the channel [07:29] Nohryb has joined the channel [07:31] javajunky has joined the channel [07:31] delapouite has joined the channel [07:35] jbenesch has joined the channel [07:39] tisba has joined the channel [07:39] prettyrobots: Anyone ever dare to run Node as root? Create some sort of system level server? [07:39] ryah: ajsie: npm [07:40] ryah: prettyrobots: i have [07:40] ryah: it's scary [07:41] prettyrobots: I'd like to have some Heroku like stuff going on in my deployment enviornment. [07:41] prettyrobots: But that means updating some configuration files, that sort of thing. [07:42] prettyrobots: Does Node.js have sandboxing of some sort? [07:45] romainhuet has joined the channel [07:46] tobiassjosten has joined the channel [07:47] nwhite has joined the channel [07:47] ph^ has joined the channel [07:53] JimBastard: prettyrobots: not built in [07:54] JimBastard: we provision a new server instance for each of our node apps right now [07:54] prettyrobots: Hmm? [07:54] JimBastard: sandboxing node processes [07:54] prettyrobots: Ah. [07:54] JimBastard: there are a few solutions though [07:54] JimBastard: we are sorting it out [07:54] prettyrobots: Where are you at? [07:55] JimBastard: apartment jail [07:55] JimBastard: ohhh, you mean with sandboxing? [07:55] prettyrobots: I mean we. [07:55] prettyrobots: We provision... [07:55] JimBastard: www.nodejitsu.com [07:55] prettyrobots: Just, if you had a company website, I'd... [07:55] prettyrobots: Oh, hai! Love the site. [07:55] JimBastard: :p [07:55] margle has joined the channel [07:55] prettyrobots: Lost track of names. I know you. [07:56] JimBastard: it happens [07:56] JimBastard: working on the admin interface for the site and what not [07:56] JimBastard: should be pushing it out soon [07:57] FuzzYspo0N has joined the channel [07:58] prettyrobots: Oh. Well, I'm trying to build a generic Ubuntu Node.js stack with some Heroku like configuration. [07:58] prettyrobots: For use on EC2 or Webbynode. [07:58] mbrochh has joined the channel [07:58] mbrochh has joined the channel [07:58] JimBastard: ec2 has images right? [07:58] JimBastard: you could just build an image? [07:59] prettyrobots: Looking to kind of chunk up services and then install them from Launchpad PPA. [07:59] prettyrobots: So like Heroku grained server admin for small startups. [08:00] prettyrobots: And then, rather than build an image, start with the stock Ubuntu 10.10 image and patch it with debs from a Launchpad PPA, then spin up. [08:00] prettyrobots: Which makes it a lot easier to tweak your startup, because building images is sloooow. [08:00] hassox has joined the channel [08:02] olegp has joined the channel [08:03] Tim_Smart: mjr_: ping [08:06] ayo has joined the channel [08:12] EyePulp has joined the channel [08:12] MikhX has joined the channel [08:13] pdelgallego has joined the channel [08:16] mies has joined the channel [08:17] stagas has joined the channel [08:19] Throlkim has joined the channel [08:19] gthb has joined the channel [08:21] tisba has joined the channel [08:24] ryah: the original node design doc: http://four.livejournal.com/963421.html [08:25] micheil: wow [08:26] teemow has joined the channel [08:26] dgathright has joined the channel [08:28] p3sho has joined the channel [08:29] saikat has joined the channel [08:29] JimBastard: ryah: i dunno if that is a good idea [08:29] JimBastard: no one will use JS [08:29] JimBastard: maybe python? [08:30] JimBastard: :p [08:30] ayo: haha [08:31] caolanm has joined the channel [08:31] themiddleman has joined the channel [08:32] TomY has joined the channel [08:32] ayo: i really wonder if my last design doc brain fart will also turn into something useful one day :> [08:32] rnewson has joined the channel [08:32] dgathright_ has joined the channel [08:33] felixge has joined the channel [08:33] felixge has joined the channel [08:33] aho: anyone wants to read it? :> [08:34] felixge: has setting keys on object gotten a lot slower at some point? [08:34] aho: (it's sorta boring and about css) [08:34] felixge: it seems like V8 could set keys with ~50Mhz, but now I'm benchmarking it at ~10Mhz [08:35] aho: well, if you feel bored enough it's here: http://groups.google.com/group/object-oriented-css/browse_thread/thread/03f8ae6b9df3aad7# [08:35] zum: aho: is it like LESS, Sass or something completely different? [08:35] aho: different... very different :> [08:36] aho: it's all about arbitrarily nestable sub tree structures [08:36] aho: and building sites exclusively out of those [08:36] ajsie: are u guys using firefox or chrome for debugging? [08:37] zum: firefox & firebug here [08:37] ryah: felixge: maybe node got slower? [08:38] aho: and having spec files for those structures in order to run static code analysis checks on your markup and css [08:38] ryah: felixge:you should try on an older build [08:38] ryah: it would be interesting to know if that's true. [08:38] felixge: ryah: why would node get slower at telling v8 to execute a script? [08:38] felixge: ryah: anyway, I'll try [08:38] prettyrobots has left the channel [08:38] felixge: ryah: are you in berlin already? [08:38] ryah: felixge: no still in sf [08:39] aho: by the looks of it there are about 5 people in the world who think it's interesting and 1 person who thinks it's super exciting (me) :> [08:39] felixge: ryah: when are you coming in / how long will you stay? [08:39] ryah: felixge: leaving tomorrow [08:39] ryah: jst staying until monday unfortunately [08:39] felixge: guess I'll have to come to SF for some hacking at some point : ) [08:40] ryah: looking forward to when my gf has a visa and we can go to de for an extended amount of time [08:40] ajsie: you must have ; in javascript [08:40] ajsie: ? [08:41] felixge: ryah: I thought she is german? [08:41] margle has left the channel [08:42] ryah: felixge: visa to come back :) [08:42] felixge: ryah: I see :) [08:43] felixge: ajsie: no, but some people will think lowly of you if you don't put ';' in your code ;) [08:43] ajsie: hah [08:44] felixge: ajsie: see: http://news.ycombinator.com/item?id=1547647 [08:45] felixge: ajsie: if you prefer non-semicolon's, you might like coffee script: http://jashkenas.github.com/coffee-script/ [08:45] ajsie: felixge: i like to be able to code native [08:45] ajsie: cause the tutorials and books are using native js [08:45] ajsie: so i dont want to switch between 2 "modes" [08:46] ajsie: but it seems that ; is optional for native js [08:47] sveisvei has joined the channel [08:48] felixge: ryah: building node as of March 30 now, lets see what I get :) [08:49] felixge: ryah: btw. since when does the repl have colorful inspect output, that's wonderful! [08:52] stagas: ryah: is it possible to tap onto the audio stream with node? [08:53] micheil: stagas: I think so. [08:53] ThePub has joined the channel [08:53] micheil: I think someone is working on it. [08:54] ryah: stagas: why not? [08:55] stagas: ok, 2nd thought: would it be possible to bundle node in a vst? [08:55] stagas: :) [08:57] nwhite has joined the channel [08:57] caolanm: felixge: there's colour inspect output now?? [08:57] caolanm: :O [08:57] felixge: ryah: ok, good news. Node got faster since March 30 [08:57] felixge: (well v8 that is) [08:58] felixge: ryah: Object set was ~12.6 Mhz, it is now ~13.5 Mhz [08:58] felixge: ryah: Object get was ~138 Mhz, it is now ~166 Mhz [08:58] micheil: who loves big patch files? [08:58] ryah: felixge: that's good [08:59] felixge: but I do need to find out why I vividly remember seeing Object set at 50 Mhz. Must have been one hell of a night :) [09:00] xla has joined the channel [09:00] felixge: I think I probably benchmarked Object get at 50 Mhz with the Dirty abstraction arround it, and Object set was 5 Mhz. That seems about right [09:03] callen has joined the channel [09:03] callen has joined the channel [09:05] callen has left the channel [09:06] dgathright has joined the channel [09:07] vvsh has joined the channel [09:08] aho: felixge, how does array set/get compare? [09:09] felixge: aho: just working on that. It seems like array.push() got a lot faster since I last benchmarked it, it's now clocking in at ~20 Mhz (vs. 13.5 for object set) [09:09] aho: nice [09:09] aho: array[i] instead of push is supposed to be faster though [09:10] aho: not really sure how far that's true for v8 [09:10] ryah: ACTION is compiling node with clang ^_^ [09:10] felixge: yeah, this was at 10Mhz on March 30 [09:10] felixge: (the old node version I'm testing) [09:11] felixge: aho: array[i] = val; is as fast as object[key] = val; in v8 [09:11] felixge: aho: at least in my current benchmarking [09:11] aho: hum k [09:16] ryah: sweet. node is compiling out of the box with clang [09:16] MikhX has joined the channel [09:21] felixge: porting my v8 benchmark suite to PHP for the fun of it [09:21] felixge: ryah: any performance benefits to be expected from this? [09:22] felixge: php is slow :) [09:22] Egbert9e9 has joined the channel [09:22] ajsie: great tech talk [09:22] ajsie: listen the first minute =) [09:22] ajsie: http://www.youtube.com/watch?v=F6k8lTrAE2g [09:22] ajsie: "The first time I heard about Node.js I thought, What a crazy guy he's trying to put JavaScript on the server when everybody is trying to put Java on the client" [09:23] ajsie: it took more than 10 years for everyone to realize the other way around .. holy mother .. how foolish [09:23] felixge: $array[$i] access is 7.8 Mhz in PHP vs ~170 Mhz in node/v8 :) [09:24] ajsie: like apple .. while others keep lauchning mobile phones with computer functions, apple launched a computer with mobile functions [09:28] Nohryb has joined the channel [09:29] herbySk has joined the channel [09:32] agnat has joined the channel [09:32] jakehow has joined the channel [09:35] V1 has joined the channel [09:38] stride: good god ryah, stop working so fast, I missed like.. 3 revisions already :-) [09:38] felixge: ryah: just realized that you talked about mysql in that google talk video saying: "You are probably not willing to rewrite libmysql" [09:38] felixge: :) [09:39] felixge: ACTION hadn [09:39] ryah: felixge: :) [09:39] felixge: Whenever you think something is crazy, you just have to find a crazy enough person :) [09:39] ryah: indeed! [09:39] felixge: I talked to a former MySql engineer, and even he told me I was slightly nuts ^^ [09:39] stride: hehe [09:39] felixge: but the lib is coming along nicely, so I'm happy [09:40] ryah: yeah, it looks great [09:40] ryah: i still haven't tested it - but soon [09:41] ryah: we've got a couple mysql dbs around [09:41] ryah: (who doesn't!) [09:41] felixge: A bunch of people are using it, and there are very few bug reports coming in [09:41] felixge: I'll put it in transloadit soon [09:41] felixge: in fact it's kinda next on my list [09:41] felixge: :) [09:42] felixge: ryah: it's kind of awesome that your approach to parsing http also works for something like mysql [09:42] felixge: (in fact it works even better for mysql as the sequence of things is more predictable) [09:42] ryah: my list is: get req.pause() working, build some good automated perf benches, merge long stacktraces, and move write syscalls to the end of the iteration [09:43] felixge: ryah: req.pause() is broken? [09:43] ryah: it emits a 'data' event [09:43] ryah: after pause [09:43] felixge: ryah: yeah, true [09:43] ryah: people hate that [09:43] viktors has joined the channel [09:43] felixge: ryah: well, it just means another layer of buffering, so yes - it'd be nice to have it pause() right away [09:43] ryah: so i've undertaken a crazy rewrite in order to support it [09:44] felixge: ryah: couldn't it just be a simple buffer in JS that gets emptied on resume() ? [09:44] ryah: (instead of going for the simple 20 line js patch) [09:44] felixge: ok, I see :) [09:44] felixge: You wanted the difficult path [09:44] gthb has joined the channel [09:45] ryah: i'm having the parser return an array of events [09:45] ryah: rather than calling callbacks [09:45] rmetzger has joined the channel [09:46] felixge: that's to avoid function call overhead? [09:46] ryah: hopefully [09:46] ryah: but also to "pause" [09:46] ryah: mid buffer [09:47] FuzzYspo0N: win, UPX added TLS support not long ago [09:47] FuzzYspo0N: finally, more recent apps can be compressed massivley [09:47] felixge: sounds nice [09:48] MikhX has joined the channel [09:49] EyePulp: anyone have some socket.io experience? I'm explicitly not allowing "flashsocket" as a transport, but am still getting an error on .send() related to missing the proper .swf [09:51] rmetzger: Hi. I've a question concerning http.createClient()... I'm trying to send a PUT Request to a WebDav Server. My local webdav apache answers correctly (there is a response). But with the server of my provider, I receive nothing (the response event isn't fired): https://gist.github.com/c1f3b660566fc97bfa83 [09:52] mies has joined the channel [09:53] JimBastard: rmetzger: maybe add an error handler? [09:53] JimBastard: see if its bombing out? [09:54] JimBastard: request.on('error' [09:54] rmetzger: okay .. i'll try it .. thanks [09:54] caolanm: doesn't an unhandled 'error' event throw? [09:55] skampler_ has joined the channel [09:57] FuzzYspo0N: oh yea i wondered about this : can my server (http) respond with a password challenge? I am unsure how to do this on the server side [09:57] jetienne has joined the channel [09:57] rmetzger: you have to send the "WWW-Authenticate: Basic realm="RealmName"" header [09:57] FuzzYspo0N: var listener = function(req, res) would mention that it requires basi auth? [09:58] FuzzYspo0N: but would it be in the listener? [09:59] FuzzYspo0N: im using http.createServer(listener) which might be too simple to add headers, or im just not reading the docs well enough [09:59] FuzzYspo0N: feel free to link me to the ones in question [10:01] rmetzger: there is a response.writeHead method [10:01] rmetzger: there you can send response headers [10:01] FuzzYspo0N: cool, i see that but do i do it in the listener itself? or prior somewhere? [10:02] FuzzYspo0N: oh wait man, im already using it. [10:02] FuzzYspo0N: adding it to the headers though, does it send them into the request twice? [10:02] FuzzYspo0N: like once for auth challenge, one for response after? [10:03] TomsB has joined the channel [10:03] caolanm: FuzzYspo0N: that would be 2 seperate requests [10:03] FuzzYspo0N: thanks guys. I wanted to be sure (i have that implemented) [10:04] rmetzger: there is a good example: http://en.wikipedia.org/wiki/Basic_access_authentication [10:04] stride: the client sends it's credentials with every request after the user entered it, so you know if you have to send the header or not [10:04] jetienne: Tim_Smart: how hard would it me to put oauth in twitter-node ? any estimation ? [10:04] FuzzYspo0N: stride: yea thats what i am doing , i check the header for the authorization , then send back if its not valid [10:04] Tim_Smart: jetienne: Not sure. Probably not that hard. [10:05] jetienne: Tim_Smart: hmm ok, i will look [10:05] stride: twitter is taking basic auth down at the end of the month or so, isn't it? [10:05] jetienne: stride: yes [10:05] FuzzYspo0N: was august already [10:05] FuzzYspo0N: or is that the total removal? [10:05] jetienne: twitter is oauth only now [10:05] stride: oh.. okay :) [10:06] FuzzYspo0N: yea, since aug 31 [10:06] ThePub has joined the channel [10:06] rmetzger: JimBastard: there is no error event during the request [10:07] sveimac has joined the channel [10:07] JimBastard: hrmmm [10:08] JimBastard: you could try using the request module [10:08] JimBastard: rmetzger: http://github.com/mikeal/node-utils/tree/master/request/ [10:09] rmetzger: okay .. thank you [10:09] mape: http://engineering.twitter.com/2010/09/tech-behind-new-twittercom.html [10:09] mape: lots of JS [10:11] ChrisPartridge has joined the channel [10:11] path[l] has joined the channel [10:12] skampler1 has joined the channel [10:18] jetienne: so node? or another ssjs? [10:19] Tim_Smart: Doesn't mention anything about server ecmascript in that post. [10:20] jetienne: true i may be assuming too much... but client side js deosnt seem newsworthy to me... [10:21] mape: In order to support crawlers and users without JavaScript, we needed a rendering system that runs on both server and client. [10:21] mape: To meet this need, we've built our rendering stack around Mustache, and developed a view object system that generates HTML fragments from API objects. We�ve also extended Mustache to support internationalized string substitution. [10:21] Tim_Smart: Ruby has mustache... [10:21] mape: Then I'm way off track [10:23] fermion has joined the channel [10:24] aliem has joined the channel [10:26] agnat has joined the channel [10:26] jetienne: With this in mind, we began implementing a new architecture almost entirely in JavaScript. <- if it is not ssjs, they call a "new arch in js" what other are calling "refactoring frontend" [10:26] jetienne: ACTION thinks it is nodejs [10:28] christophsturm has joined the channel [10:28] jetienne: to start something rhino java vm when nodejs is available and not too unstable would be madness [10:28] stride: sparta.js [10:32] malkomalko_ has joined the channel [10:33] ajsie: oh .. im really not good at server js =) [10:37] hassox has joined the channel [10:38] FuzzYspo0N: wasnt someone already rumouring twitter using node already the other day? [10:45] stagas: JimBastard: check my fork of webservice.js [10:45] JimBastard: stagas: k [10:47] stagas: JimBastard: to sum it up now you can do something like: /fs/readFile/Readme.md/utf8.html or *.json for a json view :) [10:47] stagas: it's a little far from what you were building, I basically did it more web-framework alike [10:47] JimBastard: peepin, give me a few minutes [10:48] stagas: ok [10:52] JimBastard: stagas: i dont understand why you have to specify async or sync as an option for the module [10:52] JimBastard: http://github.com/stagas/webservice.js/blob/5e0f0ba3676b6247010aaee05910e00be43965bd/server.js#L24 [10:53] stagas: it's a general option so you don't have to type the argument in the url [10:53] stagas: you can also do /sys/inspect/sync/[1,2,3] [10:53] stagas: for example [10:53] stagas: and it's sync [10:53] JimBastard: what argument in the url? [10:53] stagas: or async [10:53] stagas: it's an override [10:53] JimBastard: i dont see a reason you need / should specify a sync/async option for a module [10:54] JimBastard: it doesnt make sense [10:54] stagas: the difference is, async adds a callback to the arguments so it can output a view [10:54] JimBastard: could you elaborate on what /fs/readFile/Readme.md/utf8.html does? [10:55] stagas: it's fs.readFile('Readme.md', 'utf8') [10:55] JimBastard: what is Readme.md ? [10:55] FuzzYspo0N: markdown [10:55] JimBastard: hrmmm [10:55] stagas: and the .html suffix just tells it to use the 'html' view [10:55] JimBastard: the convention was that function arguments are represented as query params [10:55] stagas: for the callback [10:55] JimBastard: and modules / methods were routes [10:56] JimBastard: thats kinda important, no? [10:56] stagas: yes I know, i did it more rest-alike [10:56] JimBastard: how do you know whats an argument and whats a route? [10:56] stagas: I told you it's a little far from what you were doing :) [10:56] JimBastard: you are assuming a structure now [10:56] stagas: meryl knows when I route it [10:56] JimBastard: of one module and one method [10:56] stagas: then I split '/' [10:57] JimBastard: hrmmmm [10:57] JimBastard: i think i like it better this way actually [10:57] JimBastard: just gotta think it over a bit [10:57] stagas: the .html and .json suffix decide the view output [10:57] JimBastard: but most of the other stuff isnt really the direction im going in at all [10:57] stagas: but html is default so you don't have to use it [10:58] mape: Anyone had issues with TypeError: Cannot read property '_bytesRead' of undefined [10:58] mape: ? [10:58] stagas: yeah I want to build a rest api using modules [10:58] JimBastard: thats what im doing [10:58] JimBastard: you started to add a view server [10:59] stagas: I ditched the ?query thing so it's more like a resource [10:59] JimBastard: yeah, i think thats good [10:59] JimBastard: everything else though im not sure about [10:59] JimBastard: also, why rip out journey and use meryl [11:00] stagas: cause it's more low level and it allows me to manipulate the requests the way I want it [11:00] stagas: it could be any other [11:00] JimBastard: i dont think its more low level then journey [11:00] JimBastard: journey is JUST a router [11:01] JimBastard: you should have full access to the req resp, no? [11:01] stagas: I couldn't figure out how to do the parameters routing with journey [11:01] bradleymeck1 has joined the channel [11:01] bradleymeck1: i return~ [11:01] JimBastard: yeah, its really easy [11:01] JimBastard: kinda [11:01] stagas: with meryl I just tell it (/)? and I have the resource string everything after the module method [11:02] JimBastard: yeah, same idea [11:02] JimBastard: except you specify a regex [11:03] stagas: it could be any, I chose meryl cause I felt it was easier to do the stuff I wanted right now, maybe journey can do more I don't know :) [11:03] JimBastard: it does way less [11:03] JimBastard: thats the point [11:05] bradleymeck1: mmm its interesting how hard it is to just make a window.open call not show up (lol actively trying to get popup blockers to hit it) [11:06] dohtem has joined the channel [11:06] dohtem has joined the channel [11:08] stagas: I'm just playing with it atm, I want to figure out how to do put, post, delete and stuff [11:08] stagas: maybe apply a context so they're passed onto the module [11:08] ekidd has joined the channel [11:10] stagas: but I want to make it super easy to build rest apis with views for a project I'm building and it seemed like a cool place to start cause I had a similar thing in mind before you posted it [11:10] hellp has joined the channel [11:11] stagas: so it might drift away a lot, do you think I should use a new repo? [11:11] zorzar has joined the channel [11:15] rauchg_ has joined the channel [11:16] skampler_ has joined the channel [11:26] stride: meh, need more coffee.. I can't even get the tests for twitter-node running today.. [11:27] stride: is there an official replacement for process.mixin or should you use the function out of an older commit for that? [11:29] stagas has joined the channel [11:31] bradleymeck1 has joined the channel [11:33] pwrfail has joined the channel [11:33] genexp has joined the channel [11:33] ntelford has joined the channel [11:34] stagas has joined the channel [11:46] kjeldahl has joined the channel [11:47] Nohryb has joined the channel [11:49] Tim_Smart: stride: Yeah the tests are way out of date for twitter-node [11:50] Tim_Smart: I'll give it some more attention after I get biggie-orm to a reasonable state. [11:54] wakawaka has joined the channel [12:00] FuzzYspo0N: is this retarded : res.writeHead(200, { 'WWW-Authenticate' : 'Basic realm="server"' }); [12:00] Neil has joined the channel [12:01] jashkenas has joined the channel [12:02] FuzzYspo0N: lol, iv been half assing this for a while while eating and so on, it still wont work . Someone hit me [12:03] JimBastard: stagas: do whatever you want with it. im not trying to pull in any changes that start to implement view servers. [12:03] JimBastard: ill keep an eye on it though [12:05] stagas: JimBastard: ok :) I just pushed another change, I added a /return// option to determine which value you want displayed to the view from the callback [12:05] stagas: JimBastard: and a .txt view. so this one works: /asciimo/write/hello%20world/graffiti/return/1.txt [12:05] stagas: :) [12:05] stagas: it starts on 1, not 0 [12:06] JimBastard: thats cool [12:07] c4milo has joined the channel [12:08] stagas: defaults to 2, which is usually what happens in node modules --> (err, returnvalue) [12:08] stagas: hehe I'm having a lot of fun [12:12] JimBastard: :-) [12:15] hannesw_ has joined the channel [12:17] nerdEd has joined the channel [12:26] shockie has joined the channel [12:29] javajunky has joined the channel [12:29] EyePulp has joined the channel [12:30] rkieffer has joined the channel [12:31] huyhong has joined the channel [12:31] stagas: I added an echo module with eval method, /echo/eval/fs.readFile.toString() :PPPPP [12:34] stride: FuzzYspo0N: what's the problem with your basic auth? [12:34] mikew3c has joined the channel [12:34] mikew3c: v8: parseInt('08'); [12:34] v8bot: mikew3c: 0 [12:35] mikew3c: v8: parseInt('07'); [12:35] v8bot: mikew3c: 7 [12:35] mikew3c: v8: parseInt('010'); [12:35] v8bot: mikew3c: 8 [12:36] stagas: v8: parseFloat('08'); [12:36] v8bot: stagas: 8 [12:36] stagas: there. [12:36] stagas: :P [12:36] stride: v8: parseInt('08', 10); [12:36] v8bot: stride: 8 [12:36] stride: there :p [12:36] stride: :> [12:36] FuzzYspo0N: stride: im sending headers asking for a user/password, but its not asking me. And i know _what_ its expecting and how basic auth works, i just dont know the format to send it via node res.writeHead() [12:36] stagas: hehe [12:37] FuzzYspo0N: i could use npm install http-basic-auth [12:37] rkieffer: v8: parseInt('010', 10) [12:37] v8bot: rkieffer: 10 [12:37] FuzzYspo0N: right? [12:37] rkieffer: v8: parseInt('010', 16) [12:37] v8bot: rkieffer: 16 [12:37] stride: wasn't that module a middleware for connect or something? [12:38] FuzzYspo0N: yea, doesnt helpe as much [12:38] rkieffer: mikew3c: stagas EcmaScript 15.1.2.2 "parseInt (string , radix)" [12:39] FuzzYspo0N: mines simple, i just wanna challenge the user. I already have the auth code done if i manually type user:pass@ip [12:39] mikew3c: rkieffer: yeah, was just testing to confirm [12:39] FuzzYspo0N: so, i have if no auth header in req, respond with enter user pass. But its not showing up the dialog [12:39] mikew3c: I'm working on putting together a mechanism for collaboratively annotating the EcmaScript 5 spec [12:39] javajunky: fwiw I wrote http://github.com/ciaranj/connect-auth that will probably give you a clue [12:41] FuzzYspo0N: javajunky: looks like a nice complete module [12:42] javajunky: well its meant to be pluggin-able so you can put in whatever auth strategies you want, simply, but also get some fairly decent ones straight out of the box. [12:42] FuzzYspo0N: yea, seems that way [12:42] FuzzYspo0N: but without pulling the whole repo [12:42] FuzzYspo0N: i just wanna find the line that sends the header to enter a pw [12:43] javajunky: http://github.com/ciaranj/connect-auth/blob/master/lib/auth.strategies/http/base.js#L13 [12:44] FuzzYspo0N: cool thanks [12:44] javajunky: np. [12:44] FuzzYspo0N: if i need more robust support later ill use this, it looks more complete [12:44] FuzzYspo0N: and more generic [12:44] FuzzYspo0N: ah see, is it the 401 header that makes it a login? [12:44] javajunky: yeah, the browser sees that and pops a dialog [12:45] FuzzYspo0N: rofl. [12:45] FuzzYspo0N: so, noone this whole time saw my 200 in there ? :P [12:45] FuzzYspo0N: i forgot about the response code as well, damn copy paste. [12:45] javajunky: well you'll need the WWW-Authenticate as well [12:45] javajunky: 401 just says 'nahh you're not allowed in' [12:45] FuzzYspo0N: 02:00 FuzzYspo0N is this retarded : res.writeHead(200, { 'WWW-Authenticate' : 'Basic realm="server"' }); [12:45] FuzzYspo0N: thats what i asked 45 minutes ago is what i meant :) [12:46] javajunky: wasn't around ;) .. Getting this stuff right is a PiTA .. use a 3rd party module, like *cough* connect-auth *cough* [12:46] stride: just tried res.writeHead(401, "Authorization required", {'Content-Type': 'text/plain', 'WWW-Authenticate:' : 'Basic realm=foobar'}); and chrome doesn't challenge [12:46] FuzzYspo0N: weird [12:46] FuzzYspo0N: i tested in all 3, FF, chrome, opera [12:46] javajunky: should do [12:46] FuzzYspo0N: ill test that now [12:46] FuzzYspo0N: uploaded [12:47] stride: meh, silly me [12:47] stride: FuzzYspo0N: res.writeHead(401, "Authorization required", {'Content-Type': 'text/plain', 'WWW-Authenticate' : 'Basic realm=foobar'}); works [12:47] FuzzYspo0N: http://208.88.124.45:8889/ [12:47] javajunky: basic + digest are pretty useless fwiw, unless you're behind http(s) .. the Oauth strategies are pretty neat. [12:47] FuzzYspo0N: this works, so thanks javajunky. I forgot the 401 is all. [12:47] javajunky: np. [12:47] FuzzYspo0N: yea, i will get around to that. [12:47] javajunky: (its drop in , no code change with connect-auth ) .. I'll leave it now, honest. [12:48] FuzzYspo0N: javajunky: when i do my api ill probably use that [12:48] FuzzYspo0N: thanks ;) [12:49] ysynopsis has joined the channel [12:49] FuzzYspo0N: rather wrap the api. node is too easy >.> [12:49] FuzzYspo0N: <3 [12:49] ajsie: someone successfully used yui, dojo, mootools, extjs, prototype or jquery on node? [12:49] FuzzYspo0N: mootools yes, but in what way? [12:49] javajunky: yeah several have used yui [12:50] ajsie: i want to extend core classes [12:50] ajsie: dont know why i cant get it to work [12:50] jherdman has joined the channel [12:50] javajunky: http://www.yuiblog.com/blog/2010/04/09/node-js-yui-3-dom-manipulation-oh-my/ [12:50] aubergine has joined the channel [12:52] FuzzYspo0N: ajsie: also http://mootools.net/download "server side download" [12:53] ajsie: javajunky: is this the same thing: http://github.com/yui/nodejs-yui3 [12:54] trotter has joined the channel [12:54] javajunky: ajsie: yarp [12:56] ajsie: cannot get that to work [12:56] ajsie: installed all the packages here: http://github.com/yui/nodejs-yui3 .. then i required yui3 .. but when i use YUI.JSON it says undefined [12:57] JimBastard: ajsie: http://blog.nodejitsu.com/jsdom-jquery-in-5-lines-on-nodejs ? [12:58] evanpro has joined the channel [12:58] JimBastard: wtf happened to the formatting on that [12:59] FuzzYspo0N has left the channel [13:01] matschaffer has joined the channel [13:01] sideshowcoder has joined the channel [13:02] ooooPsss has joined the channel [13:02] JimBastard: fucking idiots [13:02] javajunky: sorry ajsienot used it myself. [13:03] Nietecht has joined the channel [13:03] ysynopsis has joined the channel [13:03] ntelford has joined the channel [13:06] christophsturm has joined the channel [13:06] ajsie: JimBastard: i dont get it .. why should i use jsdom? [13:06] javajunky: JimBastard: not seen that article before, real nice and elegant. [13:06] JimBastard: javajunky: im fixing that formatting right now [13:07] ajsie: javajunky: u get why i shoud use jsdom? [13:07] JimBastard: its fucked up, doing it now [13:07] JimBastard: one sec [13:07] JimBastard: >.< [13:07] javajunky: ajsie: I don't know what you're doing, but a lot of jQuery functionality requires a DOModel to operate on, so I would imagine if you wanted to use any features of it that did, you would need to ? [13:08] javajunky: if you're just using it for some logic sugar then I imagine you wouldn't need it ? (assuming it bootstraps ok without the presence of a DOM) [13:08] JimBastard: okay, formatting fixed : http://blog.nodejitsu.com/jsdom-jquery-in-5-lines-on-nodejs [13:08] JimBastard: ajsie: the YUI wrapper uses JSDOM [13:10] JimBastard: im soo mad right now [13:10] JimBastard: mad at unit tests [13:10] JimBastard: lol [13:10] JimBastard: whyyyyy [13:10] JimBastard: stupid indexzero and his computer science [13:11] JimBastard: soo many unit tests for broodmother [13:11] JimBastard: ughhhh [13:11] papyromancer: ACTION sends JimBastard a cookie [13:12] JimBastard: i think we might get another round of funding in the next month :-) [13:13] c4milo: ahah [13:17] FuzzYspo0N has joined the channel [13:17] FuzzYspo0N has left the channel [13:18] sh1mmer has joined the channel [13:20] javajunky has joined the channel [13:24] karboh has joined the channel [13:24] ajsie: JimBastard: yeah i know ,, i have installed it already [13:24] ajsie: http://stackoverflow.com/questions/3778788/how-to-use-yui3-on-node [13:25] ajsie: it says: has no method 'Object' [13:25] jashkenas has left the channel [13:26] davidsklar has joined the channel [13:27] nerdEd has joined the channel [13:28] karboh: anybody good at async testing with expresso? [13:28] karboh: I'd like to assert that an event is emitted [13:30] CrabDude has joined the channel [13:31] JimBastard: karboh: no clue, i use www.vowsjs.org [13:32] dnolen has joined the channel [13:33] javajunky: karboh: maybe take a look at one of thelargeer packages that uses expresso.. I think connect does ? [13:34] karboh: JimBastard: thnx, that looks a lot more documented at least [13:35] JimBastard: we are building cuke on top of it too [13:35] pgriess has joined the channel [13:36] karboh: javajunky: I'll dig around a little and see what I can find [13:38] javajunky: I struggled with vows, (lack of understand on my side I fear) .. but I couldn't work out how to stop/test things that had been kicked off on setIntervals … [13:39] ben_alman has joined the channel [13:39] Ori_P has joined the channel [13:47] CrabDude has joined the channel [13:50] Tim_Smart: yay http://github.com/biggie/biggie-orm/commit/f1bacc7a9c5d0b4d9f732c9698eccfe56e83b631 [13:50] JimBastard: javajunky: hrmmm [13:50] Tim_Smart: Highly optimized collections with redis. [13:51] JimBastard: javajunky: id have to think about that for a minute [13:51] javajunky: JimBastard: well it really points at code that needs a re-factor, no benefit to testing whether setInterval itself works, but still I didn't want to have to re-write the code ;) [13:53] Tim_Smart: I'm using expresso personally. I found vows a little to force-ful. [13:53] Tim_Smart: And verbose. [13:53] c4milo: and nested [13:53] Tim_Smart: Plus you get jscoverage bundled with expresso, if coverages tests are your thing. [13:53] javajunky: Tim_Smart: if you can get it working ;) [13:54] Tim_Smart: javajunky: It works fine... [13:54] javajunky: I've not tried in a while, but for me jscov just didn't link properly ? [13:54] Tim_Smart: He had a bad package.json, so I got him to fix it :p [13:54] javajunky: ah, perhaps I need to take another look at it (not expresso, I'm fine with that, the cov part) [13:55] Tim_Smart: npm install expresso [13:55] javajunky: ;) [13:55] JimBastard: vows is kinda a pain to use by hand [13:55] JimBastard: kyuri makes it a lot easier, but its just not ready yet [13:55] galaxywatcher has joined the channel [13:57] matschaffer has joined the channel [14:00] karboh: JimBastard: Could you take a quick look at this vows gist? [14:00] karboh: http://gist.github.com/593645 [14:00] skampler_ has joined the channel [14:01] karboh: JimBastard: It seems to me that when the topic is an EventEmitter, the assertion part never gets executed [14:01] JimBastard: i dont use .run() [14:01] JimBastard: i export the tests [14:01] JimBastard: vows.describe('broodmother/master/master/api').addBatch({ [14:01] JimBastard: }).export(module); [14:01] malkomalko has joined the channel [14:01] hpoydar has joined the channel [14:02] karboh: yeah, tried that too [14:02] karboh: exactly the same behaviour [14:02] Tim_Smart: karboh: You have to emit 'success' on the event emitter from memory. [14:03] Tim_Smart: Either that or have a function where you call this.callback() [14:03] karboh: Tim_Smart: thanks, didn't know that [14:03] marshall_law has joined the channel [14:04] karboh: that's beeing a little bit too smart on vows side though, I think [14:04] Tim_Smart: karboh: Usually topics are functions... [14:05] Tim_Smart: But I'm not too sure about vows tbh. [14:05] karboh: ok, I saw topic as 'system under test' [14:06] karboh: so I just newed up my object with some params. And the object happened to be an EventEmitter [14:06] karboh: ->fail [14:08] Tim_Smart: This is the expresso equivalent: http://gist.github.com/593648 [14:08] Tim_Smart: karboh: So you managed to get it working? [14:09] mies has joined the channel [14:09] karboh: well, I think I must reconsider my choice of topic. But yes, I can fix it now [14:10] tobiassjosten has joined the channel [14:10] Nietecht: Does anyone know of a good implementation of generic functions in javascript? [14:12] Tim_Smart: Nietecht: Generic functions? [14:12] Tim_Smart: Like a standard library? [14:13] Nietecht: No. Ehm, it's a CLOS thing. [14:13] Nietecht: Similar to parameter overloading, but better [14:14] dpritchett has joined the channel [14:14] Nietecht: Well, couldn't find a proper one on first glance. Guess I'll have to work out my version some more [14:16] Egbert9e9 has joined the channel [14:17] ceej has joined the channel [14:19] nefD has joined the channel [14:22] noahcampbell has joined the channel [14:22] ryanfitz has joined the channel [14:23] mischief has joined the channel [14:24] admc has joined the channel [14:28] siculars has joined the channel [14:29] ajpiano has joined the channel [14:31] LFabien has joined the channel [14:34] rmetzger has joined the channel [14:36] fictorial: ryah: sorry, continuing conversation from 10 hrs ago about Rocket Pack. I figured they were. Nice. Some competition! [14:36] Yuffster has joined the channel [14:37] Me1000 has joined the channel [14:38] cardona507 has joined the channel [14:38] gerad has joined the channel [14:39] jpld has joined the channel [14:39] jetienne has joined the channel [14:39] softdrink has joined the channel [14:40] tisba_ has joined the channel [14:40] Tim_Smart: fictorial: Your redis library is start to get a lot of competition these days :p [14:40] Tim_Smart: s/start/starting/ [14:40] sonnym has joined the channel [14:41] d0k has joined the channel [14:43] nefD: felixge: Ping? [14:43] felixge: nefD: sup? [14:43] nefD: felixge: Ok If I message you? [14:43] felixge: nefD: sure [14:44] galaxywatcher has joined the channel [14:44] fictorial: Tim_Smart: Yeah, I haven't really been able to maintain it much lately. I'm not using it for my startup which I'm pushing super hard to launch by Jan 1, and I have a tiny baby to maintain (!) for the first few months. It always seems so silly that people start over from scratch instead of just forking my version. But, oh well. [14:46] fictorial: (especially when they rip a good chunk of the code out of my version but whatever :) [14:46] alexb_ has joined the channel [14:46] Tim_Smart: fictorial: :) mjr_, with some help from me and tj (visionmedia) have been working on a new one. Managed to get it performing 5x faster. [14:46] fictorial: Nice! [14:47] fermion has joined the channel [14:47] pdelgallego has joined the channel [14:47] fictorial: What part was made faster? I mean, it's just a client and doesn't do any heavy lifting. [14:47] Tim_Smart: http://github.com/mranney/node_redis [14:47] Tim_Smart: fictorial: Buffers are a wild beast... [14:47] Anti-X has joined the channel [14:48] kuya_ has joined the channel [14:49] fictorial: Tim_Smart: what was the wall-clock speed up though for whatever you were benchmarking? I would really think you'd be waiting on Redis most of the time and these speed-ups wouldn't really matter. Do they? [14:49] davidwalsh has joined the channel [14:50] fictorial: Perhaps you are referring to the time it takes to parse a response when you get a response to dispatching to a handler? Also, is your client binary-safe? I didn't think it was but I only glanced at the code. [14:51] aconbere has joined the channel [14:51] hannesw_ has joined the channel [14:51] prettyrobots has joined the channel [14:52] muk_mb has joined the channel [14:53] matt_c has joined the channel [14:54] Tim_Smart: fictorial: As in it sends buffers as buffers? [14:55] sahazel has joined the channel [14:55] fictorial: in that it does not auto-convert responses to strings [14:55] fictorial: i.e. can it store a PNG in Redis and get it back out ok? [14:56] fictorial: anyway, it's good that work is being done on redis clients. at some point it would be better to merge all the projects into one canonical redis client for node instead of 3 (i.e. fork mine). [14:57] Tim_Smart: fictorial: Yeah it keeps buffers as buffers etc. [14:58] Tim_Smart: Sends them straight to socket. [14:58] fictorial: good [14:58] Tim_Smart: fictorial: Here it is, http://github.com/mranney/node_redis/issuesearch?state=closed&q=fast#issue/3/comment/413584 [14:59] Tim_Smart: Probably take that comment with a grain of salt though. [15:00] fictorial: heh, yes. it's not real-world to do anything with 1m sets. I haven't optimized anything for that case since it'll never happen in practice :) [15:00] rkieffer has joined the channel [15:00] Tim_Smart: Then again, we are all speed freaks :p [15:01] ehaas has joined the channel [15:02] Tim_Smart: Things like, buffer.toString() is slower when you have less than 15ish bytes. [15:02] Tim_Smart: (Than a home-grown method) [15:02] Anti-X: slower per byte or slower than actually having more bytes? [15:03] eazyigz has joined the channel [15:03] Tim_Smart: Anti-X: When buffer.length > 15-20, use toString(), otherwise do it manually. [15:03] Anti-X: i got that, but you still didn't answer my question :p [15:03] fictorial: Tim_Smart: meh, seems like micro-optimizations to me. Time better spent elsewhere and all that. [15:04] Tim_Smart: Lots of micros add up I guess. [15:04] Anti-X: like.. is 13bytebuffer.toString() slower in total than say 50bytebuffer.toString() ? [15:05] fictorial: not if you are benchmarking pie-in-the-sky 1m set type things. benchmark the real everyday cases and compare and see if there is any difference. if there is then there's a serious problem with how I wrote my command serializer and parser. [15:05] fictorial: which I'd of course love to fix! [15:05] Tim_Smart: Anti-X: Not by much, its the overhead of calling into C++ land. [15:06] BrianTheCoder has joined the channel [15:06] gsmcwhirter has joined the channel [15:06] admc has joined the channel [15:06] Tim_Smart: fictorial: Yeah, all is well. We are just having a bit of fun :p [15:07] Nietecht: Is there a way to load a script/module in the same global scope you're in? [15:08] fictorial: Tim_Smart: all is good. but you have unqualified "6X faster" marketing on your project page which is a little unfair since you didn't say "for absolutely huge data sets" or something ;) [15:08] Anti-X: bottlenecks in node.js is not something you should fix inside your app.. that's something you should fix in node [15:08] Tim_Smart: fictorial: I didn't put that there >.> [15:08] Tim_Smart: Haha. [15:08] fictorial: Tim_Smart: Don't shoot the messenger!! [15:09] Anti-X: why not [15:09] Anti-X: i'd love to see a shooting [15:09] Tim_Smart: Anti-X: ryah was around when we were discussing some of it. [15:09] loincloth has joined the channel [15:10] Tim_Smart: Anti-X: It isn't *that* slow really, but it interesting to note. [15:10] Tim_Smart: *it is [15:10] Tim_Smart: Yeah I need to sleep, I can't type straight. [15:11] eazyigz: I am trying to use node-memcached, and getting an error: "No such native module nMemcached" [15:11] eazyigz: has anybody seen this? [15:11] mw_ has joined the channel [15:12] jakehow has joined the channel [15:14] freeall has joined the channel [15:16] evanpro has joined the channel [15:16] hellp has joined the channel [15:20] beawesomeinstead has joined the channel [15:21] gsmcwhirter: eazyigz, from a .js file or from the repl? [15:21] tilgovi has joined the channel [15:21] eazyigz: js file [15:21] ehaas has joined the channel [15:22] benburkert has joined the channel [15:24] jashkenas has joined the channel [15:24] gsmcwhirter: eazyigz, are you sure that is the correct name of the module, and that it is in the require paths? [15:24] cferris has joined the channel [15:24] eazyigz: absolutely [15:24] eazyigz: I created a new vmware machine [15:25] eazyigz: and have the same setup as my previous machine [15:25] eazyigz: it worked on the previous machine, but not on this one [15:25] rkieffer has left the channel [15:26] gsmcwhirter: wierd... not sure if i have any other guesses at what might be wrong myself... is your node the 0.2.2 stable, or the github master (or something else)? [15:27] aheckmann has joined the channel [15:27] jashkenas has left the channel [15:27] steadicat has joined the channel [15:27] mattly has joined the channel [15:27] eazyigz: I got node from http://nodejs.org [15:28] eazyigz: and I can run the node shell [15:28] eazyigz: just cannot import node-memcached [15:28] eazyigz: so f%#$ing frustrating [15:29] gsmcwhirter: 0.2.2 has a bug in the shell i believe with require. if you run node script.js things tend to work. but you said it was from a .js file, so i dunno [15:31] kjeldahl_ has joined the channel [15:32] jamescarr has joined the channel [15:32] eazyigz: ok, so if I decide to ditch node-memcached because of this stupid issue, is there an alternative memcached client? [15:33] hpoydar has joined the channel [15:33] herbySk: eazyigz: if it's from the shell, then there's a bug. Here's the fix: http://github.com/herby/node/commit/1daa9abce3ce48f31df733fd042c4b5f84f18e0a [15:35] eazyigz: that page doesn't exist [15:36] herbySk: eazyigz: sorry, http://github.com/herby/cute/commit/1daa9abce3ce48f31df733fd042c4b5f84f18e0a [15:36] benreesman has joined the channel [15:36] tj has joined the channel [15:38] matt_c: javajunky: (doing the morning scrollback read) Nice work on connect-auth, it looks quite useful. [15:38] eazyigz: herbySK: you mean the latest commit? [15:40] herbySk: easyigz: strange, it existed, maybe it got gc'd... here the same commit is now: [15:40] sh1mmer has joined the channel [15:40] herbySk: (yes, the latest one) [15:41] herbySk: but I don't know if it will be applicable to 0.2.2 code. Hopefully yes. [15:41] eazyigz: herbySK: pardon my ignorance, so I have to install cute first? [15:42] benburkert has joined the channel [15:42] tjholowaychuk: ohh snap [15:42] tjholowaychuk: just rebuild ps3's menu with jquery [15:42] tjholowaychuk: looks cool [15:42] herbySk: eazyigz: no, it's my just my fork of node, not too different [15:43] herbySk: (yet) [15:44] herbySk: easyigz: just cherry-pick the commit and make [15:44] figital has joined the channel [15:45] eazyigz: ok, so if I run "node" command, which one will get run - the orig node or cute? [15:46] figital has joined the channel [15:46] herbySk: easyigz: you need not to install anything, just use your node 0.2.2, just apply this one commit to it. Then just make your copy of node and run it. [15:47] dnolen has joined the channel [15:49] prettyrobots: So, I'm having a go at building a Heroku like stack management utility for Node.js in CoffeeScript. [15:49] prettyrobots: In anyone has any thoughts... [15:50] eazyigz: ok, I'm kinda new to git. When I run "make" for the cute module, I get an error "build failed -> task failed cxx node_net.cc -> node_net_4.o" [15:50] herbySk: easyigz: (oh, you don't have node downloaded from git and compiled, you just downloaded a from nodejs.org? then use 0.2.1 until the issue is fixed...) [15:50] prettyrobots: ACTION Goes back to work. [15:51] malkomalko: tjholowaychuk: what's the proper way to store something in the session with connect-redis? I worked through those other obscure bugs.. is it req.store.whatever = 'bar' or req.sessionStore.set('whatever', 'bar') [15:52] tjholowaychuk: malkomalko: its just req.session.foo = 'bar'; [15:52] tjholowaychuk: that object gets commited on the response [15:52] herbySk: easyigz: I don't know why you get the error, sorry (it works for me). Any way, if you have your copy of node cloned from git, I can help you to include the fix. If you just downloaded .tgz from nodejs.org, then I don't know of simple way to fix it, so download 0.2.1 version ands use it instead... [15:52] tjholowaychuk: malkomalko: but both req.session and req.sessionStore are available, and req.session has destroy() regenerate() etc [15:53] figital has joined the channel [15:53] malkomalko: danke [15:53] malkomalko: session stuff and current_user stuff with node was tricking me up, but I think I got it now... thanks [15:53] javajunky: matt_c: cheers, all patches welcomed ;) … desperate to reify the tests ! [15:54] eazyigz: herbySK: If I clone node from git, how can I find the version? [15:54] tjholowaychuk: malkomalko: np [15:54] stephank has joined the channel [15:54] femtoo has joined the channel [15:54] boaz_ has joined the channel [15:54] Anti-X: anyone have any experience with socket.io working on two separate browser windows/tabs connecting to the same server? will it send all messages to both? [15:55] boaz_ has joined the channel [15:55] matt_c: javajunky: testing things like oauth is particularly fun/challenging. [15:56] herbySk: easyigz: there are two versions there, if you make the master branch (the default), you get 0.3.0-pre (there this issue is fixed), if you make the v0.2 branch (the stable branch for 0.2.x release, you get 0.2.2) [15:56] herbySk: easyigz: so it depends on your decision which one you want [15:57] eazyigz: herbySK: what do ya know, I uninstalled node 2.2, got a clone from git, and am now able to import node-memcached! [15:58] javajunky: matt_c: it sure is ;) seems to work with most of the providers I've tried so far (it depends on one of my other libraries http://github.com/ciaranj/node-oauth) [15:58] aliem has joined the channel [15:58] javajunky: matt_c: and the provider was one I ported from an older express plugin (with permission ;) ) [15:58] eazyigz: herbySK: what is it about node 2.2 that was causing this problem? [15:58] herbySk: easyigz: because now you have 0.3.0-pre from master branch, which has this fixed, as I said a minute ago. [15:58] eazyigz: ok [16:00] matt_c: javajunky: Cool. I probably have a reason to write this up to a project pretty soon so I'll send patches back if I run in to anything. [16:00] aconbere: tjholowaychuk: does the yaml spec specify what kinds of string delimiters can be used (aka ' vs ") [16:00] aconbere: I'm seeing some strange behavior with js-yaml [16:00] tjholowaychuk: aconbere: no clue [16:00] herbySk: easyigz: refactorings were accepted that made the module code clearer and decoupled native modules into their own layer and external modules on top of them. The side-effect was, native modules were only able to include native modules. Which was fine for all cases, except for the shell (repl is native module, too), which needs access to external modules. [16:00] tjholowaychuk: js-yaml is not even remotely done really [16:00] tjholowaychuk: I just had it working enough to parse seed.yml [16:00] herbySk: easyigz: the fix I sent open this to repl [16:00] tjholowaychuk: back in the day [16:01] tjholowaychuk: aconbere: it would be fun to rewrite it but I have no need for yaml anymore really [16:01] herbySk: easyigz: ryah did not like the fix, and reverted the whole refactoring in 0.3.0-pre, but in 0.2.2 it is still present, unfixed and unreverted [16:01] javajunky: matt_c: cool, more eyes is always good ;) [16:02] aconbere: tjholowaychuk: gotcha, well maybe I'll poke at it a bit more [16:02] aconbere: thanks [16:02] aconbere: :) [16:03] aconbere: tjholowaychuk: I could always just... try to use JSON, but it's a little ackward in this instance [16:04] deepthawtz has joined the channel [16:04] tjholowaychuk: aconbere: json sucks for config n stuff, yaml is way nicer to look at dont get me wrong, its just not really practical in a js world [16:04] tjholowaychuk: until I finish that parser [16:04] tjholowaychuk: haha [16:04] aconbere: haha [16:04] aconbere: right! [16:04] Anti-X: what about good ole .ini files [16:04] brianmario has joined the channel [16:05] aconbere: I've just got this static blog enginy thing in Node and writing "headers" in JSON is a lot uglier than reusing a YAML parser [16:05] tjholowaychuk: I just use a js file and export stuff I want [16:05] tjholowaychuk: hmm [16:05] tjholowaychuk: "headers"? http headers? [16:05] tjholowaychuk: if you just mean h1 h2 etc [16:05] tjholowaychuk: use markdown [16:05] dysinger has joined the channel [16:05] aconbere: no sorry, have you ever used jekyll? [16:06] tjholowaychuk: nope [16:06] rkieffer has joined the channel [16:07] aconbere: so basically the idea is, you take a directory of static files, and you suck them all up, apply some simple transformations to them, and output another directory that's useful for web viewing. So your blog for instance, doesn't run through a ruby or node web server, it's just static file hosting. [16:07] aconbere: but the files you want to transform, it's useful to have some metadata associated with them [16:08] rkieffer: Is there a simple way to have node run as a service on Linux? [16:08] aconbere: so in most of these types of tools (I suspect all largely inspired by jekyll) you put a chunk of YAML at the top that is the meta data [16:08] rkieffer: E.g. I'd like "node server.js > http.log" to auto-launch when my EC2 instance (re)boots. [16:09] jashkenas has joined the channel [16:10] jashkenas: rkieffer: I've been using nohup around Node, in an upstart script. [16:12] rkieffer: jashkenas: nice, I'll look into it. [16:12] JimBastard: anyone here using journey? [16:13] slaskis has joined the channel [16:14] slaskis: how can i get the request url with an expressjs app? [16:14] jashkenas: rkieffer: to be specific .... nohup node script.js args > log/script.log 2>&1 & echo $! > run/script.pid [16:14] skampler_ has joined the channel [16:14] romainhuet has joined the channel [16:14] slaskis: i only seem to be able to get the path but i'd like to get the host and scheme and port etc... [16:15] mape: tjholowaychuk: Is the bug I encountered 0.3* specific? [16:15] SingAlong has joined the channel [16:16] tjholowaychuk: mape: AFAIK, I have seen quite a few bugs going around with different libraries via 0.3.x [16:16] tjholowaychuk: but 0.2.2 is fine for me at least [16:16] mape: k [16:16] mape: Bleeding for being a cutting edge community ;) [16:17] mape: Seems we are at a point where the version is a big issue with bug reports [16:18] slaskis: tjholowaychuk: any suggestion on how to get the host and scheme of a connect server? [16:18] tjholowaychuk: I will be doing what I can to get master working with 0.3.x once 1.0 is out [16:19] tjholowaychuk: slaskis: you can do server.address().port etc [16:19] mape: tjholowaychuk: any idea what broke staticProvider with latest node? [16:19] slaskis: tjholowaychuk: great, couldn't find it in the docs. but now i realize it must be in the nodejs docs. thanks though :) [16:19] LowValueTarget has joined the channel [16:19] tjholowaychuk: mape: with 0.2.5 connect? no clue off hand [16:20] tjholowaychuk: slaskis: yup! thats a node thing [16:20] mape: Well latest of npm [16:20] tjholowaychuk: weird no im not sure nothing really changed in that version for static [16:20] mape: Even though I tell express I use ejs it tries to serve index.html as static when I use get('/', function(){}) [16:21] tjholowaychuk: haha wtf [16:21] mape: using ***.***('index', **) that is [16:21] tjholowaychuk: well i have a 1.x branch in the works so give me a minute I will compile 0.3.0 [16:22] mape: No worrys :) [16:22] JimBastard_ has joined the channel [16:22] tjholowaychuk: its probably something really small [16:22] tjholowaychuk: hopefully [16:22] tjholowaychuk: haha [16:23] benburkert has joined the channel [16:23] tjholowaychuk: I had that issue with a non express connect app then realized I didnt check out v0.2.2 [16:23] tjholowaychuk: so its definitely a 0.3.0 thing [16:23] mape: the best bugs are small ones [16:23] sh1mmer has joined the channel [16:25] tjholowaychuk: weird, express tests all pass and connect's dont [16:25] mape: tjholowaychuk: Let the people who built connect know! [16:25] mape: ... ;) [16:25] tjholowaychuk: haha [16:25] tjholowaychuk: im on it [16:26] benreesman has left the channel [16:26] tjholowaychuk: oh duh its probably the query string thing [16:27] tjholowaychuk: for most of this [16:27] mape: the none cosy for php people thingy? [16:27] alexb_ has joined the channel [16:27] tjholowaychuk: yeah lol [16:27] javajunky: tjholowaychuk: no idea on that mailing list thing, you ? [16:27] tjholowaychuk: javajunky: dunno, I didnt really read it [16:28] tjholowaychuk: ive just been assuming issue are from 0.3.0-pre haha [16:28] tjholowaychuk: without reading [16:28] javajunky: ;) I'm on 0.2.2 [16:28] javajunky: i can replicate his fault. [16:28] tjholowaychuk: grr i dont know if i want to support 0.3.x yet [16:28] slaskis: tjholowaychuk: hmm, and can i see if it's http or https somehow? [16:29] tjholowaychuk: slaskis: not to sure, I havent needed that yet [16:29] ph^ has joined the channel [16:29] mjr_: fictorial: totally fair comment about unqualified speed claims which happen only in certain usage patterns. [16:29] slaskis: tjholowaychuk: hmm, how about hostname, needed that? ;) [16:30] tjholowaychuk: slaskis: console.log(server.address()) [16:31] mape: tjholowaychuk: does express have better test coverage then connect or is the qs issue just wonky? [16:32] nerdEd has joined the channel [16:32] tjholowaychuk: mape: express has 99% coverage as far as statements go, of course not full path coverage since I would need like 5 tests per conditional haha [16:32] tjholowaychuk: but [16:32] tjholowaychuk: its pretty solid [16:33] tjholowaychuk: which in some ways helps solidify connect's [16:33] mape: Nice, and connect is the same? [16:33] bpot has joined the channel [16:33] JimBastard: do any frameworks modify the a response's contentType based on the request accept headers? [16:33] mape: And I guess tests are only as good as every test you can think of [16:33] tjholowaychuk: connect's coverage is a bit worse since I didnt want to write tests for all tims stuff lol and I didnt have assert.response() yet [16:33] JimBastard: is that a practice anyone does? [16:34] tjholowaychuk: JimBastard: I think some people check Accept, I do sometimes, most people just use an extension I guess [16:34] tjholowaychuk: which is really explicit, but I get pissed off when I use a webservice and I get xml when I ask for json [16:34] mape: JimBastard: Letting the user decide what it responds as? [16:34] JimBastard: yeah [16:34] JimBastard: im messing around with this webservice stuff [16:35] JimBastard: if you have /fs [16:35] mape: Seems like that might be an issue [16:35] mape: But handy at the same time [16:35] JimBastard: like im thinking, if you it from the browser, it will give an HTML UL / LI [16:35] tjholowaychuk: Accept's format is just a clusterfuck [16:35] JimBastard: but if you hit it with application/json, it responds with JSON [16:35] tjholowaychuk: but helpful other than that [16:35] JimBastard: no file extensions anywhere [16:35] JimBastard: maybe file extensions would be sane [16:35] mape: JimBastard: Just feels like someone will fuck it up [16:35] JimBastard: and easier then parsing the accept headers [16:35] tjholowaychuk: it is really explicit [16:35] xslasherx has joined the channel [16:35] tjholowaychuk: which is nice [16:36] mape: But that it seems like a good idea of the bat [16:36] JimBastard: yeah true [16:36] JimBastard: cool, thanks guys [16:38] vmthehut has joined the channel [16:38] Ori_P_ has joined the channel [16:39] mape: JimBastard: why not use &type=***** ? [16:39] mape: or the like [16:39] mape: too explict? [16:39] JimBastard: mape: trying to keep query params out of the picture for now [16:39] huyhong has left the channel [16:39] JimBastard: and keep it like epic simple [16:40] JimBastard: i think file extensions are good [16:40] derencius has joined the channel [16:40] tjholowaychuk: id just do an indexOf w/ Accept [16:40] tjholowaychuk: and extension [16:40] JimBastard: and i'll make no extension do friendly docs [16:40] tjholowaychuk: fuck the q=0 ppl [16:40] mape: Automagic stuff is epicly hard to do ;( [16:40] javajunky: tjholowaychuk: I'll track down the mailing list guy's issue in a bit, I'm swapping disks on the MBP so I'll be out of action fora few hours, but I can replicate his fault. strange. [16:40] JimBastard: so localhost/fs, returns html docs [16:40] tjholowaychuk: javajunky: ya that sounds realllllllly weird man [16:40] tjholowaychuk: really weird [16:40] JimBastard: but localhost/fs.json returns json docs [16:40] JimBastard: which is list of exports [16:41] tjholowaychuk: javajunky: I thought maybe he was messing around with some properties [16:41] evilhackerdude: mjr_: http://twitter.com/antirez/status/25322720960 did you do benchmarks? [16:42] mjr_: evilhackerdude: another guy on the redis list did. [16:43] nwhite has joined the channel [16:43] maqr has joined the channel [16:43] mjr_: evilhackerdude: and it turns out that mine is slower than his for larger responses, which I knew about. But that's the beauty of multiple implementations. [16:44] evilhackerdude: indeed [16:44] evilhackerdude: maybe you can both benefit from each other. [16:45] sprout has joined the channel [16:46] c4milo: tjholowaychuk: hey TJ [16:46] tjholowaychuk: c4milo: yp [16:46] tjholowaychuk: yo [16:47] c4milo: tjholowaychuk: a friend of mine is asking why express download dependencies of aprox 80MB [16:47] c4milo: tjholowaychuk: is that right ? [16:47] tjholowaychuk: tarball? or the repo? [16:48] tjholowaychuk: repo I get 17mb [16:48] skampler1 has joined the channel [16:48] c4milo: he did a git clone and submodule update [16:48] richcollins has joined the channel [16:48] mape: c4milo: That sounds insane.. [16:49] tjholowaychuk: c4milo: sounds a little funky, node-jscoverage is large though [16:49] c4milo: what is wrong ? [16:49] mape: 80MB is like.. A lot of TOC [16:49] tjholowaychuk: keep in mind ALL of those submodules are for running the tests [16:49] mape: Or LOC [16:49] mape: Or one hell of a readme [16:49] tjholowaychuk: haha [16:50] tjholowaychuk: if he did a recursive submodule update/init then it would be massive [16:50] skampler1 has joined the channel [16:50] tjholowaychuk: but yeah if you dont plan on running the tests you dont need those at all [16:50] mape: tjholowaychuk: You use submodules? :S [16:50] tjholowaychuk: mape: for test support libs yes [16:50] noahcampbell has joined the channel [16:50] tjholowaychuk: I dont use npm [16:50] mape: Harassment of adding to npm would be better [16:50] c4milo: yes, actually he lives in a third world country :P He lost his connection and did a submodule update :P [16:50] AAA_awright has joined the channel [16:51] mape: tjholowaychuk: Are you of the same crazy I hate people ideas as creationix? [16:51] hpoydar has joined the channel [16:51] tjholowaychuk: I just dont really like package managers lol including kiwi I prefer things consolidated into my little safe box [16:51] tjholowaychuk: and deploying with npm is kinda wonky I dont like that I use ndistro [16:52] dicon has joined the channel [16:52] mape: tjholowaychuk: Well how different is ndistro? [16:52] tjholowaychuk: submodules are not great for deps but great for conditional deps [16:52] mape: Code to solve common issues [16:52] samsonjs has joined the channel [16:52] mape: Just want it to be as general as possible? [16:52] dicon has joined the channel [16:53] tjholowaychuk: I just dont see why I need a package manager at all [16:53] tjholowaychuk: ive been totally fine without one [16:53] tjholowaychuk: its great for checking out new stuff [16:53] mape: tjholowaychuk: I needed it when express broke ;) [16:53] gerad has joined the channel [16:53] slaskis: if i console.log(app.address()) i only seem to be able to get: { address: '0.0.0.0', port: 80 } and the address there seems to be 0.0.0.0 both on the server and locallyt [16:53] deadlyic_ has joined the channel [16:53] fizx has joined the channel [16:53] c4milo: tjholowaychuk: yes, they guy did a recursive update :S [16:54] tjholowaychuk: c4milo: oh yeah that will fuck you over [16:54] tjholowaychuk: since most my projects use expresso and each expresso has node-jscoverage [16:54] tjholowaychuk: haha [16:55] tjholowaychuk: mape: I guess the thing is, If I am going to "bundle" for deployment, why not just do that right out the gate [16:55] tjholowaychuk: so I dont have to install node, and npm on my server first [16:55] tjholowaychuk: ndistro is just a shell script, so in < 1 minute I can have a precompiled node binary, and all my deps [16:56] mape: tjholowaychuk: But that means I need to have bash? :P [16:56] tjholowaychuk: it supports most shells [16:56] tjholowaychuk: and wget / curl [16:56] tjholowaychuk: transparently [16:56] mape: So if everyone has npm it is ok? [16:57] tjholowaychuk: what [16:57] tjholowaychuk: im not bashing npm at all it is a wicked piece of code, I just dont need it [16:57] tjholowaychuk: personally [16:58] xslasherx: wow just tried node js [16:58] tjholowaychuk: xslasherx: good wow? :D [16:58] xslasherx: its so different from anything ive ever tried [16:58] xslasherx: it doesnt even feel like a web server [16:58] tjholowaychuk: s/different/much better/ [16:59] xslasherx: i like it [16:59] xslasherx: =) [17:00] xslasherx: only thing i think is that, i feel like nodejs lacks a lot of website libraries [17:00] claudiu__ has joined the channel [17:00] xslasherx: i guess im looking for mvc framework for nodejs [17:00] xslasherx: anyone know of any? [17:00] tjholowaychuk: geddy [17:01] drudge: express can be used in an mvc style [17:01] drudge: check the examples/mvc directory [17:01] admc_ has joined the channel [17:02] santiago has joined the channel [17:03] Draggor has joined the channel [17:03] c4milo has left the channel [17:04] jpld has joined the channel [17:07] siculars has joined the channel [17:08] JimBastard: _frankie brb [17:08] cardona507 has joined the channel [17:09] benburkert has joined the channel [17:11] severla: npm says not to use it with sudo, but if i don't use sudo it just does not work [17:11] severla: so what? [17:11] tg: edit ~/.npmrc [17:11] SingAlong has joined the channel [17:11] tg: and set root binroot manroot in there [17:12] evilhackerdude: or something like chown -R $USER /usr/local if your on os x. always a good idea to go with that (esp. with homebrew) [17:12] evilhackerdude: *you're [17:12] stephenjudkins has joined the channel [17:12] path[l]2 has joined the channel [17:14] SingAlong has left the channel [17:14] dgathright has joined the channel [17:14] mikew3c_ has joined the channel [17:14] severla: what's the reason it is almost always recommended to install stuff as git submodules instead of using kiwi or npm? [17:15] tjholowaychuk: kiwi is deprecated dont use it [17:15] tjholowaychuk: well it doesnt work anymore anyway [17:15] tjholowaychuk: because i took the server down :) [17:15] tjholowaychuk: haha [17:15] severla: ok [17:15] JimBastard: npm is good enough [17:16] JimBastard: sometimes you just gotta vendor the shit though [17:16] JimBastard: depends what you need to do [17:16] severla: but what's the reason to prefer using submodules rather than npm? [17:16] JimBastard: privacy? [17:16] JimBastard: npm modules are all public [17:16] severla: the submodule update thingy is a nightmare [17:16] JimBastard: submodules dont require npm [17:16] tjholowaychuk: npm is technically nice for module dependencies, but for deploying something you want it localized as submodules or similar [17:17] tjholowaychuk: but even with npm deps for modules I find you are screwed over as far as using any other option [17:17] tjholowaychuk: so I use npm with dependencies in my modules as fake submodules [17:19] severla: tjholowaychuk: would you please tell me what´s exactly i've got to put in .npmrc? [17:19] tjholowaychuk: no clue [17:19] severla: i mean tg [17:19] benreesman has joined the channel [17:19] severla: it's lame that npm says it should not be used with sudo but it requires sudo to work properly [17:21] drudge: severla: i don't use sudo with npm and it works just ifne [17:21] drudge: fine* [17:22] severla: it's not true [17:23] severla: i've tried in both osx and linux, with the same result [17:23] severla: http://gist.github.com/594011 [17:23] severla: so it's not me [17:23] JimBastard: so if you have a web-service that can accept arbitrary callbacks that are scoped inside one specific commonjs module....how do you disallow them to call something like process.exit as the callback... >.< [17:23] JimBastard: and what else will i have to search for that will caus ruckus [17:23] drudge: severla: either change your root or chown /usr/local/ to your user [17:24] severla: it makes no sense i've got to do such changes just to get a package manager for a specific language to work [17:25] drudge: change the root in .npmrc [17:25] severla: ok, what is it i've got to put in npmrc? [17:25] mjr_ has joined the channel [17:25] cardona507 has joined the channel [17:25] stride: JimBastard: is process et al. accessible if you run your callbacks those RunScriptInContext functions node offers? [17:26] jameshome_: homebrew also doesn't want a sudo'ed /usr/local [17:26] JimBastard: stride: does RunScriptInContext work now? [17:26] jameshome_: it seems like an engineering workstation trend rather than an npm peculiarity [17:26] JimBastard: i assumed it was voodoo [17:26] JimBastard: also, im gonna not allow people to send callbacks [17:26] JimBastard: thats more of a hook.io thing, not a web-service thing [17:27] JimBastard: its too much power [17:27] JimBastard: not something you want to slap together with an eval [17:27] stride: JimBastard: don't know about HEAD, last time I tried it was 0.1.x, but there it at least did stuff [17:27] jacobolus has joined the channel [17:27] path[l] has joined the channel [17:27] drudge: severla: read the man page for npm config, or the wiki, there is a root variable [17:28] deepthawtz has joined the channel [17:28] drudge: severla: http://github.com/isaacs/npm/blob/master/doc/config.md [17:29] CIA-77: node: 03Fedor Indutny 07master * r5535aa3 10/ (lib/http.js test/simple/test-http-upgrade-client2.js): [17:29] CIA-77: node: Fixed 'upgrade' event for httpclient [17:29] CIA-77: node: onend and ondata was cleaning on parser end - http://bit.ly/aKh9XV [17:29] saikat has joined the channel [17:29] nefD has joined the channel [17:30] stride: JimBastard: last time I looked at the context stuff it seemed like something that could be used to set stuff up and run it sandboxed / reuse it later on, but the docs suggest that you use child processes so I didn't look into it any further [17:30] nwhite has joined the channel [17:30] figital has joined the channel [17:30] rmetzger: how can I avoid that node adds further headers to a HTTP Request? [17:30] streampunk has joined the channel [17:31] ryah: rmetzger: it only adds what is necessary [17:31] rmetzger: I've the problem that everything works using curl to make the request, but if I use node, it doesn't [17:32] rmetzger: is it possible to see which headers node sends? [17:32] drudge: use telnet or if you are on mac, use HTTP Client [17:32] rmetzger: okay .. thanks [17:32] jacobolus has joined the channel [17:32] tjholowaychuk: rmetzger: curl -v http://foo [17:33] LFabien has joined the channel [17:33] rmetzger: the problem is, that everything works with curl .. but it seems that node adds header's I don't want to have [17:33] drudge: like what [17:34] rmetzger: If I use exactly the same Headers as curl does, it doesn't work [17:34] ben_alman_ has joined the channel [17:34] rmetzger: thats the working curl: curl -vX MKCOL http://home.local/webdav/testaaabbbhh [17:35] rmetzger: but wen sending the request with node, there is a 415 error: "415 Unsupported Media Type" [17:35] rmetzger: but first I'll try it with the HTTP Client to check it [17:37] ryah: rmetzger: tcpdump? [17:37] ben_alma_ has joined the channel [17:37] ryah: eg sudo tcpdump -s 0 -X -i lo0 tcp port 9999 [17:37] rmetzger: I think that's better .. or i'm setting up a node http server ;) [17:37] saikat has joined the channel [17:38] sudoer has joined the channel [17:39] skampler has joined the channel [17:40] fermio has joined the channel [17:41] figital has joined the channel [17:42] iganapolsky has joined the channel [17:42] Mezriss has joined the channel [17:42] JimBastard: wow uhh, is there anyway to figure out if a method is going to expect a callback...lol [17:43] JimBastard: before you call it [17:44] tjholowaychuk: not really [17:44] tjholowaychuk: you will have to whitelist exports that support callbacks [17:44] tjholowaychuk: or something [17:44] JimBastard: yeah its a lame problem [17:44] dmcquay has joined the channel [17:45] JimBastard: im thinking im just going to push a callback as the last arg [17:45] JimBastard: and hope it doesnt fuck with people too much [17:45] JimBastard: >.< [17:45] JimBastard: but yeah, it would be a route setting maybe, i dunno [17:46] claudiu_ has joined the channel [17:46] ngw has joined the channel [17:46] ajpiano has joined the channel [17:46] claudiu__ has joined the channel [17:46] vnguyen has joined the channel [17:47] badaxx has joined the channel [17:47] badaxx: hey, anyone familiar with redis-node-client? is there a way to call a function synchronously? [17:47] mjr_: rmetzger: you might also have a nice time with http_trace, from "npm install pcap" [17:48] rmetzger: thanks [17:48] mjr_: badaxx: the underlying networking is all async, so you'd need to put everything in the callback from a redis command. [17:49] Mezriss: hi. I'm trying to compile node.js (0.2.2) with cygwin, but I get this error: http://img227.imageshack.us/img227/5961/nodeerrorg.png Is there a way to fix this? [17:49] claudiu_ has joined the channel [17:49] aglemann has joined the channel [17:49] dilvie has joined the channel [17:50] JimBastard: yeah thats lame, forcing that extra argument when a callback isnt needed [17:50] JimBastard: hrmmmm [17:50] JimBastard: i gotta enforce a convention here [17:50] tjholowaychuk: ya would be nice to support it transparently [17:50] tjholowaychuk: but technically you would not want to expose anything unless explicitly meaning to [17:50] aglemann: how would you use node together with django for example? would they both be listening on the same port and whatever didnt match in node would fall through to python or should it be different ports? [17:51] claudiu__ has joined the channel [17:51] tjholowaychuk: s/clear [17:51] tjholowaychuk: durr [17:51] tjholowaychuk: ACTION OCD about clearing [17:52] JimBastard: im gonna think on it, gotta do some real work [17:53] JimBastard: indexzero is yelling at me [17:53] ryah: aglemann: different port [17:53] aglemann: tks ryah! [17:53] badaxx: well, i created a dynamicHelper with expressjs called "downloads" which should return a value from redis... but since redis is asynchronous there is no way to do that, right? [17:53] tjholowaychuk: JimBastard: you could easily just re-export whitelisted stuff from another module that you wanted [17:53] disq has joined the channel [17:53] JimBastard: tjholowaychuk: how do you mean? [17:53] agnat has joined the channel [17:54] tjholowaychuk: badaxx: not ATM [17:54] BrianTheCoder has joined the channel [17:54] badaxx: tjholowaychuk: any workarounds? [17:54] tjholowaychuk: JimBastard: like exports.foo = require('./realfoo').foo to be more explicit [17:55] tjholowaychuk: not sure how useful it would be to expose stuff not made specifically as a service though [17:55] JimBastard: ohh yeah, ehh [17:55] JimBastard: im trying to expose all the native modules without mod if possible [17:55] JimBastard: lol, not all i guess [17:55] tjholowaychuk: why lol that would be brutally insecure [17:55] iganapolsky: I am passing a stringified dictionary from my python program to javascript. It looks like this: json.dumps({'return_results': 'test'}). In my javascript callback function I. have JSON.parse(data.return_results), but I'm getting undefined error [17:56] iganapolsky: can somebody tell me how to read a json object in javascript, because I am obviously doing something wrong? [17:56] JimBastard: yeah, mostly as a proof of concept [17:56] JimBastard: the old way of me passing an anonymous function actually worked really well, because i could just try to eval it and see if typeof == function [17:56] JimBastard: but that was epic insecure [17:57] JimBastard: if the last argument was typeof function, its a callback [17:57] adambeynon has joined the channel [17:57] tjholowaychuk: badaxx: not right now sorry. we would have to wait around for dynamic helpers to resolve before rendering [17:57] tjholowaychuk: well before starting to render [17:57] badaxx: doh - thats a big showstopper :( [17:58] tjholowaychuk: badaxx: I will see if I can implement a sane solution [17:58] badaxx: tjholowaychuk: thank you, that would be really nice :) [17:58] stephenjudkins has joined the channel [17:59] bradleymeck1 has joined the channel [18:00] saikat has joined the channel [18:00] cardona507 has joined the channel [18:02] aglemann_ has joined the channel [18:02] tjholowaychuk: badaxx: if promises were standard we could do some decently elegant stuff with templates waiting around for stuff [18:02] tjholowaychuk: but personally I kinda dont like that [18:02] tjholowaychuk: because if your db query fails you may want to respond in a logical manor [18:03] tjholowaychuk: opposed to a half rendered template that has to fail [18:03] tjholowaychuk: half rendered/flushed [18:03] arc^^ has joined the channel [18:03] tjholowaychuk: does node 0.2.2 not check ~/.node_libraries anymore? [18:03] arc^^: hi guys, is nodejs already capable of being compiled on mingw? [18:04] fod has joined the channel [18:04] badaxx: tjholowaychuk: yea, i see... hm. what about putting it in the middleware and call next() as soon as the redis call is done and put the result into the request object. then, in the dynamic helper, return the value we stored in the request object? [18:04] badaxx: tjholowaychuk: not nice either but it would work [18:05] dgathright has joined the channel [18:05] skampler_ has joined the channel [18:05] hansek__ has joined the channel [18:07] aglemann has joined the channel [18:08] MikhX has joined the channel [18:09] rbelo has joined the channel [18:09] mytrile has joined the channel [18:10] MikhX_ has joined the channel [18:11] Mezriss: luckily /usr/bin/rebaseall command was enough to solve my problem [18:12] ajpiano has joined the channel [18:13] benreesman has joined the channel [18:13] cloudhead has joined the channel [18:14] ben_alman has joined the channel [18:15] prettyrobots has joined the channel [18:16] hellp has joined the channel [18:17] figital has joined the channel [18:17] ben_alma_ has joined the channel [18:18] severla has joined the channel [18:19] severla: this is a git question, but think someone here could help ... how do i recursively update a given submodule? [18:19] tjholowaychuk: git submodule update --init --recursive [18:19] severla: that would recursively update all submodules [18:20] severla: i have two submodules express and mongoose [18:20] severla: only want to do the recursive thingy to moongose, cause if i do it for express ... hell! [18:20] tjholowaychuk: haha [18:21] severla: :$ [18:21] tjholowaychuk: yeah you should not really ever need to --recursive [18:21] severla: mongoose requires it :( [18:23] drudge: there is only 1 submodule for mongoose [18:23] severla: so, do i have to delete express, then do the recursive thing to mongoose and then bring express again? [18:23] tjholowaychuk: git help submodule [18:23] tjholowaychuk: im sure you can specify [18:23] tapwater has joined the channel [18:23] eazyigz has joined the channel [18:23] severla: i tried it already [18:24] severla: it's got a path parameter [18:24] jesusabdullah: Try asking #git [18:24] jesusabdullah: those guys are really smart [18:24] severla: but i get this ... [18:24] severla: neohomerico:rails santiago$ git submodule update --recursive support/mongoose [18:24] severla: error: pathspec 'support/mongoose' did not match any file(s) known to git. [18:24] severla: Did you forget to 'git add'? [18:24] pengwynn has joined the channel [18:24] severla: ok, going to git then, sorry :$ [18:25] drudge: cd to support/mongoose and just run git submodule update --init [18:25] pedrobelo has joined the channel [18:26] deepthawt has joined the channel [18:26] boaz_ has joined the channel [18:26] joeshaw has joined the channel [18:27] severla: does not work like that drudge [18:27] severla: it will say go to the working tree root [18:27] jesusabdullah: Seriously, ask #git [18:27] jesusabdullah: They will be WAY more helpful than we are [18:27] node has joined the channel [18:29] skampler has joined the channel [18:30] stagas has joined the channel [18:31] siculars has joined the channel [18:34] figital has joined the channel [18:34] ben_alman_ has joined the channel [18:34] codetonowhere has joined the channel [18:34] boaz_ has joined the channel [18:36] langworthy has joined the channel [18:37] langworthy has joined the channel [18:37] abiraja has joined the channel [18:37] path[l] has joined the channel [18:37] wink_ has joined the channel [18:37] rwaldron has joined the channel [18:38] abiraja: hey guys, so i installed node 0.2.2 with hopefully SSL support. but when i run some code that uses that library, i get "WARNING: SSL not supported in your version of node JS" [18:38] abiraja: is there a way to get SSL to work with node? [18:38] stephenjudkins: abiraja: need to have openssl and devel headers installed [18:38] SamuraiJack has joined the channel [18:39] stephenjudkins: what OS? [18:39] abiraja: stephenjudkins: this is what configure gives me: Checking for openssl : not found [18:39] abiraja: Checking for function SSL_library_init : yes [18:39] abiraja: Checking for header openssl/crypto.h : yes [18:39] abiraja: stephenjudkins: mac os x (locally) [18:39] stephenjudkins: abiraja: are you using macports or homebrew? [18:40] alexb_ has joined the channel [18:40] abiraja: stephenjudkins: um.. i'm not sure, how do i check? [18:40] stephenjudkins: abiraja: how did you install node? [18:40] MikhX_ has joined the channel [18:40] abiraja: stephenjudkins: by compiling it locally? make/make install [18:41] stephenjudkins: abiraja: i would recommend you start using a package manager. personally i would recommend homebrew on OS X [18:41] abiraja: stephenjudkins: ok, i'm installing homebrew right now, thanks [18:45] sprout has left the channel [18:45] sprout has joined the channel [18:47] pgriess has joined the channel [18:47] mrbrdo has joined the channel [18:49] pgriess1 has joined the channel [18:50] sveilin has joined the channel [18:50] ben_alman has joined the channel [18:51] adambeynon has joined the channel [18:54] jbenesch has joined the channel [18:57] slaskis: how can i get the hostname of my http server? i'm using express js but i guess these things are more low level... [18:57] tjholowaychuk: express.Server is the same as http.Server [18:57] tjholowaychuk: well it inherits from it [18:58] Tobsn has joined the channel [18:59] slaskis: tjholowaychuk: yeah, so i see, but i still can't figure out how to get a hostname or scheme from it [18:59] ph^ has joined the channel [19:00] tjholowaychuk: slaskis: dunno havent tried, that is usually something you control via listen() anyways so you would not need to grab it via property [19:00] pedrobelo has joined the channel [19:00] slaskis: tjholowaychuk: hmm, maybe i should look into how rack does it... [19:01] tjholowaychuk: no clue what you are trying to do [19:01] isaacs has joined the channel [19:01] tjholowaychuk: with that [19:01] ircretary has joined the channel [19:01] slaskis: i just simply want to build an url of the page currently being requested [19:01] nerdEd has joined the channel [19:01] slaskis: http://example.com/path?etc but i can only get /path?etc [19:02] tmpvar has joined the channel [19:02] slaskis: using sinatra i'd simply use request.url [19:02] slaskis: which is why i kind of expected that in connect/express [19:02] isaacs: slaskis: that's because sinatra is more magical than node or connect/express [19:02] isaacs: slaskis: look at request.headers.host [19:03] isaacs: slaskis: node (and connect/express, i believe) gives you what was actually in the HTTP conversation [19:03] isaacs: slaskis: so, if request.url has a host in it, and the request.headers.host is different, then you know you're being asked to act as a proxy [19:03] isaacs: slaskis: if you watch the packets, it's usually "HTTP/1.1 GET /path?etc" [19:04] isaacs: and hten on the next line, Host: example.com [19:04] slaskis: isaacs, thanks, i'll give that one a shot, although i though i looked through it all using sys.inspect [19:04] tjholowaychuk: oh i see [19:04] slaskis: isaacs: if it's over https will it be HTTPS/1.1 ? or more magic than that? [19:05] isaacs: slaskis: no, if it's over https, you'll know because you did setSecure() on the server :) [19:05] slaskis: isaacs: hah, in that case :) [19:05] isaacs: slaskis: the actual http conversation is still HTTP/ [19:05] pgriess has joined the channel [19:06] slaskis: isaacs: just over a ssl connection right? [19:06] isaacs: slaskis: yeah [19:06] isaacs: a tls-encrypted tcp stream [19:07] rbelo has joined the channel [19:08] benreesman has joined the channel [19:09] c4milo has joined the channel [19:09] melpad has joined the channel [19:10] slaskis: so those env variables (HTTP_HOST,SERVER_NAME etc) used by rack is set by the webservers like thin or mongrel? [19:10] Ori_P has joined the channel [19:11] sveimac has joined the channel [19:12] ben_alman has joined the channel [19:14] JimBastard: would it be stupid to be in a property to all the core modules that exported the name of the module? [19:14] JimBastard: to have, err [19:17] streampunk: JimBastard: Not a bad idea though I believe the Common JS guys bikeshedded that. [19:17] JimBastard: hey streampunk [19:18] JimBastard: hows the land of chocolate [19:18] streampunk: Also, the chance of code depending on that seems pretty bad. I can see it helping devs though. [19:18] streampunk: Actually back in the land of summer here in NYC. [19:18] Astro has joined the channel [19:18] JimBastard: ahaha [19:18] JimBastard: nice [19:18] JimBastard: you should come by [19:18] streampunk: Crazy... I thought it was Fall in Berlin and here I am with my sleeves all rolled up. [19:18] programble has joined the channel [19:18] programble has joined the channel [19:19] JimBastard: we working out of apartment jail full time until ga is ready [19:19] c4milo: ga ? [19:19] streampunk: JimBastard: Yeah. It's been only about 24hrs back so I'm slowly reconnecting. [19:19] JimBastard: webservice.createServer({ 'demoModule': demoModule, 'fs': fs, 'sys': sys }).listen(8080); [19:19] JimBastard: is fail [19:19] JimBastard: should be [19:19] streampunk: JimBastard: Noticed an entry from you guys on cobot. [19:19] JimBastard: webservice.createServer({ demoModule, sys, fs }).listen(8080); [19:19] JimBastard: streampunk: what did i do? [19:20] streampunk: JimBastard: Exactly. Just keep thinking like that and my plan will work! :P (nothing, prob. charlie) [19:21] streampunk: (https://www.cobot.me/spaces has jail listed) [19:22] JimBastard: ahaha great [19:22] JimBastard: i dont need to website to find homeless hackers [19:22] prettyrobots has joined the channel [19:22] JimBastard: :p [19:22] streampunk: Hahah! [19:23] aheckmann has joined the channel [19:23] streampunk: Anyway... I'll see if I can drop in sometime. Still getting my time back in sync. I need someone like Einstein to tell me how to cheat jetlag. [19:24] streampunk: (though I am getting good at it, it's still not a free ride between schedules) [19:24] ben_alman_ has joined the channel [19:24] SamuraiJack has joined the channel [19:24] streampunk: Anyway... gtg. Meeting in Chelsea with some money type. [19:25] richcollins has joined the channel [19:29] Guest64223 has joined the channel [19:32] badaxx: any user authentication modules you could recommend? [19:32] matt_c: badaxx: haven't used it yet, but http://github.com/ciaranj/connect-auth looks like just the ticket if you're using connect. [19:32] badaxx: matt_c: well, I'm using express.js which is just connect [19:32] badaxx: so should not be a problem :) thank you [19:33] deepthawtz has joined the channel [19:33] dilvie has joined the channel [19:34] tjholowaychuk: badaxx: I also added an auth example to express [19:34] tjholowaychuk: if you wish to roll your own [19:34] ryanfitz has joined the channel [19:34] badaxx: tjholowaychuk: well the cool thing with connect-auth is that it supports facebook connect etc [19:34] boaz_ has joined the channel [19:34] tjholowaychuk: for sure :) [19:34] drudge: ew facebook! [19:35] fizx has joined the channel [19:35] badaxx: drudge: ive got 7k likes on my facebook fan page so I'm kinda forced to do fb connect :/ [19:36] drudge: that number is skewed, how many dislikes do you have? :P [19:36] jkyle has joined the channel [19:36] badaxx: drudge: honestly, im still waiting for that button :D [19:37] bronson has joined the channel [19:37] technoweenie has joined the channel [19:38] BrianTheCoder has joined the channel [19:39] sechrist: facebook does skew the share numbers [19:39] sechrist: but the likes are pretty organic [19:39] sechrist: ACTION has worked a lot with their apis [19:42] prettyrobots_ has joined the channel [19:44] sechrist: So I'm checking out ringojs [19:45] sechrist: I wouldn't use it for a server but it does seem pretty cool [19:45] Salve has joined the channel [19:45] sechrist: kind of slow though [19:46] amerine has joined the channel [19:48] figital has joined the channel [19:49] pdelgallego has joined the channel [19:54] ryah: pquerna: maybe i cahnge my mind about the arrays of buffers [19:54] ryah: pquerna: would be nice to have fs.readFile just return an array [19:54] ryah: instead of making a link list then doing the alloc again... [19:57] isaacs: ryah: what about a Buffer.flatten() function or somethign? [19:57] isaacs: like, give it an array of buffers, and it gives you a new (sliced) object that indexes all the same data [19:58] isaacs: but starting from 0 through (sum of lengths) [19:58] ryah: hard to do... [19:59] ryah: also the b[] wouldn't be O(1) anymore.. [19:59] ryah: (although who knows what it actually is - i'm sure the v8 implementation is not naive) [19:59] isaacs: fair enough. [20:00] isaacs: but, even if it was slow, like a copy or something, if that convenience method was there, then you coudl say "you get an array of buffers, deal with it" and if you want it flattened, you could flatten it [20:00] isaacs: it'd be handy [20:00] frodenius has joined the channel [20:00] wang has joined the channel [20:00] Noya has joined the channel [20:00] s0enke has joined the channel [20:00] mrbrdo has joined the channel [20:00] frodenius has joined the channel [20:00] shachaf has joined the channel [20:00] sugardave has joined the channel [20:00] tmpvar has joined the channel [20:00] chewbranca has joined the channel [20:00] tg has joined the channel [20:00] nefD has joined the channel [20:01] yrashk has joined the channel [20:01] elliottcable has joined the channel [20:01] beawesomeinstead has joined the channel [20:01] beawesomeinstead has joined the channel [20:01] micheil: but how would you merge them? [20:01] nerdEd has joined the channel [20:01] LionMadeOfLions has joined the channel [20:01] zemanel has joined the channel [20:01] Draggor has joined the channel [20:01] zz_rubydiamond has joined the channel [20:01] xla has joined the channel [20:03] tjholowaychuk: whoop. jade can now manipulate itself via parse tree / filters [20:05] JimBastard: griiiiit hub [20:05] JimBastard: yaaargg [20:05] JimBastard: technoweenie [20:05] technoweenie: yea we know [20:05] matt_c: Kaaaaaaaah! [20:05] matt_c: +n [20:05] sudoer has joined the channel [20:05] JimBastard: http://status.github.com/ [20:05] JimBastard: 10-4 [20:06] matt_c: with FB down earlier I wonder if it's a general routing-of-the-intarnets thing. [20:06] jashkenas has joined the channel [20:06] JimBastard: matt_c: http://www.internetpulse.net/ [20:07] isaacs has joined the channel [20:07] matt_c: JimBastard: Nice. I used to use http://www.internettrafficreport.com/ which is a little too cute for its own good. [20:07] vnguyen has joined the channel [20:09] abiraja has joined the channel [20:09] dilvie has joined the channel [20:09] thejefflarson has joined the channel [20:10] amerine has joined the channel [20:12] gwoo has joined the channel [20:13] coreh has joined the channel [20:13] amerine has joined the channel [20:14] coreh: hi [20:14] coreh: I just found out about node.js, and I think it's amazing [20:15] ben_alman has joined the channel [20:15] coreh: kudos to all the devs [20:15] coreh: however, on my install it's performing quite slowly [20:15] ysynopsis has joined the channel [20:16] coreh: may I be making some common mistake? [20:16] javajunky has joined the channel [20:16] a_meteorite has joined the channel [20:18] omygawshkenas has joined the channel [20:19] isaacs: coreh: what os/platform/program? what does "slowly" mean in this context? [20:20] sveilin: coreh: Hi there! Mayyou provide some more information :)? What are you doing(codez?)= [20:20] coreh: Hey :) [20:20] coreh: Hey. I'm running it on Ubuntu Linux, with the v8 engine. [20:20] tyfighter has joined the channel [20:20] coreh: For some reason, It takes like... 1s or more to respond to my request [20:21] isaacs: coreh: gist your code, please. [20:21] coreh: I'm running the hello world code from the node.js website [20:21] isaacs: coreh: the program you're running. [20:21] sveisvei: yeah, gist that shitz [20:21] isaacs: yes, gist it. [20:21] isaacs: the actual bytes, i want to touch them. [20:21] isaacs: with my eyes. [20:21] tmpvar: lol [20:21] sveisvei: lols [20:21] tmpvar: its the timeout example, right? [20:22] coreh: ahn? Timeout example? [20:22] isaacs: cuz, if it's the setTimeout(function () ..., 1000) example, then... yeah. it's taking a second to respond. [20:22] coreh: var sys = require('sys'); [20:22] coreh: var path = require('path'); [20:22] coreh: var http = require('http'); [20:22] coreh: http.createServer(function(req, res) { [20:22] coreh: res.writeHead(200, {'Content-Type': 'text/plain'}); [20:22] coreh: res.end('Hello World!\n'); [20:22] coreh: console.log('servi'); [20:22] coreh: }).listen(1337, "localhost"); [20:22] tmpvar: WOAH [20:22] isaacs: oh, no [20:22] isaacs: gist.github.com [20:22] isaacs: that is your friend ^ [20:22] nerdEd has joined the channel [20:22] coreh: oh. Sorry [20:22] tmpvar: hrm, no setTimeout.. should be speedy :) [20:22] fizx_ has joined the channel [20:23] coreh: http://gist.github.com/594283 even if now it's too late [20:23] ben_alman has joined the channel [20:23] coreh: It's strange. [20:23] coreh: Sometimes it doesn't take any long [20:23] coreh: but usually it takes 1second or so to respond [20:24] coreh: The node.js server is installed on a VPS, but I don't think that should make it slow [20:24] ironfroggy_ has joined the channel [20:24] coreh: I mean, I use apache and php on the same vps and the speed is like, normal [20:25] sveisvei: whats the ping :P? [20:25] coreh: ~150ms [20:26] coreh: since i'm in brazil, and the server is at the US [20:26] coreh: but that doesn't explain the 1s latency [20:26] coreh: maybe I made some mistake when compiling it? [20:27] ph^ has joined the channel [20:27] sveisvei: my gut feeling says non-node related ( my gut also wants beer, so might just ignore that feeling) [20:28] amrnt has joined the channel [20:29] coreh: you guys have any idea on where should I start looking to find out what's wrong? [20:29] javajunky has joined the channel [20:29] coreh: maybe a perf/profiling tool [20:30] javajunky: tjholowaychuk: dude on the mailing list wasn't actually using express ;) [20:30] nefD: hahahaha.. facebook is down [20:30] nefD: http://techcrunch.com/2010/09/23/facebook-down/ [20:30] tjholowaychuk: javajunky: oh what! [20:30] tjholowaychuk: wtf [20:31] nefD: ⚑⚐ FTW ⚐⚑ [20:31] coreh: lol [20:31] javajunky: tjholowaychuk: yeah, he was actually using the connect.router app ;) [20:31] javajunky: not the express app [20:32] tjholowaychuk: ahh i see [20:32] tjholowaychuk: i forget what the issue was now [20:32] tjholowaychuk: ohh [20:32] tjholowaychuk: right [20:32] nefD: tjholowaychuk: How difficult is it to handle image/file uploads via a form with express? [20:32] tjholowaychuk: nefD: easy, look at ./examples/multipart [20:32] nefD: tjholowaychuk: danke [20:32] coreh: The strange part is that while facebook is down, Like buttons are working normally here [20:33] nefD: coreh: apparantly like buttons are sporadic.. they sometimes show up, sometimes not [20:33] nefD: the situation might be improving though [20:33] dicon has joined the channel [20:33] coreh: oh, I see [20:35] sveisvei: I think its dns stuff most likely [20:35] skampler has joined the channel [20:35] dilvie has joined the channel [20:36] coreh: Ok, now, this is strange. The speed was good when i opened the pages from the VPS, but not trom my local machine [20:37] coreh: but when I open pages hosted on apache on the VPS from my local machine, the speed is also OK [20:37] TobiasFar has joined the channel [20:37] coreh: so I used apache as a proxy to perform local requests to node.js [20:37] coreh: and now it's fast [20:37] coreh: WTF [20:38] necro has joined the channel [20:38] sam_ has joined the channel [20:41] sam_ has joined the channel [20:41] ehaas has joined the channel [20:42] eisd has joined the channel [20:42] MikhX has joined the channel [20:42] sam_: Hey all, I'm trying out node.js for a project and I was hoping someone could help me with exception handling [20:42] mjr_ has joined the channel [20:44] xla has joined the channel [20:44] fizx has joined the channel [20:44] JRCARR2 has joined the channel [20:45] ben_alman has joined the channel [20:45] EyePulp: would anyone know why socket.io tries to load WebSocketMain.swf even though it's connected via xhr-multipart (and the swf is 404 where it's trying to look). [20:47] zigfrew has joined the channel [20:48] MikhX_ has joined the channel [20:51] thedayturns has joined the channel [20:53] thedayturns: okay, im trying to figure out how to render a webpage with some sort of templating language. ive gotten as far as using jade and sass for css, but i just can't find any docs or references at all. does anyone have any recommendations? [20:53] JRCARR2: thedayturns, check the github page for jade [20:54] thedayturns: yah, ive been reading through it [20:54] JRCARR2: anyone here use couchone.com for couchdb hosting? [20:54] thedayturns: i would really like, say, some full examples or something [20:54] JRCARR2: ever have it mysteriously go down? [20:54] JRCARR2: like? [20:54] tjholowaychuk: thedayturns: ./examples [20:54] tjholowaychuk: ... [20:54] tjholowaychuk: lol [20:54] tjholowaychuk: no one looks these days [20:55] JRCARR2: I thought the examples dir of expressjs has them? [20:55] tjholowaychuk: both do [20:55] tjholowaychuk: I almost always add examples [20:55] tjholowaychuk: to my repos [20:55] thedayturns: they uh... they aren't that good :P [20:55] hannesw_ has joined the channel [20:55] thedayturns: coming from someone with no background in haml or anything, i have no idea what's going on [20:56] prettyrobots: isaacs: You left yesterday before I could address point 1, that the tar parser is written in CoffeeScript. [20:56] ryanfitz has joined the channel [20:56] isaacs: prettyrobots: yeah [20:56] sam_: How can I catch the 'TypeError: undefined is not a function' exception when using meryl-extras' staticfile() routine? [20:56] prettyrobots: Which was that, isn't NPM supposed to make the implementation details irrelivent? [20:56] sam_: (It throws that error when the file doesn't exist) [20:56] isaacs: prettyrobots: sure. if you want to use your tar parser for any other purpose besides being a part of npm itself. [20:56] prettyrobots: As long as the JavaScript installs and is correctly, found. [20:56] tjholowaychuk: thedayturns: so lol what are you expecting [20:57] isaacs: prettyrobots: but i can't install your tar parser without your tar parser. [20:57] tjholowaychuk: the readme documents what is possible [20:57] tjholowaychuk: and express has TONS of examples [20:57] isaacs: prettyrobots: and for the same reason you choose to write coffeescript, i choose to avoid it. [20:58] prettyrobots: Fair enough. [20:58] norviller has joined the channel [20:59] thedayturns: oh neat, i didn't think to dig into express for examples [20:59] MikhX_ has joined the channel [20:59] thedayturns: although in retrospect that makes some sense [20:59] sam_: Any ideas? [21:00] amrnt has joined the channel [21:00] tjholowaychuk: thedayturns: the examples in express are more realistic [21:00] saikat: in most browsers or even in node, when a timer fires, does it context switch out of the current execution block, run the timer's callback, then switch back? or does it wait for the current execution block to finish? [21:00] prettyrobots: Where is process.stderr? [21:01] SubStack: saikat: in v8 it waits for the block to finish [21:01] jamescarr_ has joined the channel [21:01] saikat: SubStack: thanks [21:01] SubStack: easy to test [21:01] SubStack: setTimeout(function () { console.log('timeout') }, 1000); while (true); [21:01] boaz_ has joined the channel [21:01] jamescarr: aaaaahhhhh [21:02] mjr_: SubStack: it must wait, right? Otherwise who knows what state things will be in when you come back. [21:02] SubStack: mjr_: my thoughts yeah [21:02] saikat: yeah, it does wait [21:02] saikat: sorry should have realized i could test that myself =) [21:02] nerdEd has joined the channel [21:02] mjr_: Are there JS implementations where a timer interrupts the current run? [21:02] mjr_: Because I would like to avoid those. [21:02] saikat: i hope not [21:02] jamescarr has joined the channel [21:02] saikat: i haven't been programming in a race condition mindset much when i write my JS [21:03] mjr_: That's one of the really liberating things about JS/node [21:03] saikat: agreed [21:03] softdrink: what's the best way to pass binary data to/from web workers? string? array?... [21:03] mjr_: Although sometimes I still find myself missing events because of the order of adding event listeners. Pretty rare an obvious what's going on once it happens. [21:04] skampler_ has joined the channel [21:04] saikat: oh like you add an event but it has already fired before you added it? is that possible? [21:04] saikat: if it's all in the same execution block i mean [21:05] mjr_: yeah, you do something that ends up emitting an event, and then you add a listener for it too late. [21:05] saikat: oh i suppose if it emits the event synchronously [21:05] saikat: that would happen [21:05] saikat: but not if it's an async event, right? [21:05] mif86 has joined the channel [21:05] saikat: unless you are adding your listeners asynchronously [21:06] saikat: since the event firing will wait for the exec block to finish first? [21:07] jamescarr: is it me or are a lot of sites down today? [21:08] saikat: i heard facebook was having trouble [21:08] saikat: which probably means connect is down [21:09] jamescarr: which brings the rest of the web down [21:10] saikat: i think last year, AWS went down on christmas eve? [21:10] saikat: maybe i made that up [21:11] wink_: bradleymeck: ping :> [21:12] saikat: btw, mjr_ apparently [21:12] saikat: IE's JS implementation will context switch out of the current execution block [21:12] saikat: to fire timers [21:12] saikat: on occassion [21:12] saikat: according to tolmasky (the cappuccino guy) [21:13] jashkenas: saikat: link? [21:13] saikat: eh, i'm just talking to him in the channel [21:13] saikat: but he said they had to deal with it [21:13] saikat: in their objective-j loader [21:14] pdelgallego has joined the channel [21:14] saikat: and, lucky for me, cappuccino abstracts over it and does any necessary locking for me if it's in IE [21:15] FuzzYspo0N has joined the channel [21:16] badaxx: did anyone ever experience that express.js freezes on a post request? [21:17] sam_: If anyone wants to help me, http://stackoverflow.com/questions/3782571/basic-node-js-question-handling-an-exception [21:17] tjholowaychuk: badaxx: hmm resolved that for someone a few days ago [21:17] tjholowaychuk: forget who/what it was though [21:17] badaxx: do you remember when exactly that was? [21:17] tjholowaychuk: badaxx: send a gist of your middleware setup [21:17] tjholowaychuk: nope sorry [21:17] tjholowaychuk: also what --version of node [21:18] jchris has joined the channel [21:18] tjholowaychuk: 0.3.0-pre and that is your problem [21:18] badaxx: nope its 0.1.104 [21:19] FuzzYspo0N: tjholowaychuk: i used express for the first time earlier, way cool stuff. [21:19] jchris has joined the channel [21:19] tjholowaychuk: FuzzYspo0N: thanks :) [21:19] tjholowaychuk: badaxx: oh wow really old [21:19] tjholowaychuk: update [21:19] tjholowaychuk: 0.2.2 [21:19] badaxx: okay, one sec [21:21] figital has joined the channel [21:21] derencius has joined the channel [21:21] mjr_: sam_: I think you might need to talk to the meryl author(s) about that. [21:21] sam_: hmm [21:21] FuzzYspo0N: tjholowaychuk: makes me want to stab rails in the heart. [21:22] tjholowaychuk: FuzzYspo0N: ahahaha very good :) [21:22] badaxx: can't remember how i installed node [21:22] sam_: mjr_: I've only spent today experimenting with node.js, so I still don't know what I'm doing, but you don't think I can catch that exception from where I'm calling it? [21:22] tjholowaychuk: badaxx: id be suprised if express even worked at all with a node that old [21:23] mjr_: sam_: maybe you can, but this is a bug in meryl. [21:23] skampler1 has joined the channel [21:24] sam_: mjr_: and all day I thought it was just me :) [21:24] boaz_ has joined the channel [21:25] abiraja: how do you install libssl-dev with homebrew? [21:27] mjr_: sam_: I've never used meryl, but that type of stacktrace is not what I would expect from a common operation of requesting a missing file. [21:28] abiraja: anyone know how to fix "WARNING: SSL not supported in your version of node JS" on a mac? [21:28] FuzzYspo0N: build with SSL ? [21:29] abiraja: FuzzYspo0N: yep, i did that (at least i think i did) but it still gives me that error. [21:30] abiraja: FuzzYspo0N: i used homebrew to install node [21:30] c4milo has joined the channel [21:30] mjr_: homebrew must not have set it up right then [21:30] mjr_: Which sucks [21:30] rnewson: It worked fine here. [21:30] rnewson: homebrew/node/ssl [21:30] mjr_: homebrew is so great for just about everything. For node + npm there is so much sadness. [21:30] FuzzYspo0N: abiraja: verbose output? [21:31] abiraja: rnewson: you mean like brew install node/ssl? [21:31] abiraja: rnewson: which packages did you install? [21:31] rnewson: I mean 'brew install node' worked fine, ssl works. [21:31] abiraja: FuzzYspo0N: from the installation? [21:31] rnewson: well, as far as it actually works in node, which isn't very far. [21:32] abiraja: how would you tell if ssl is working? [21:33] rnewson: crypto.createCipher, etc. [21:33] rnewson: ssl with http doesn't really work too well, but the crypto module is fine. [21:34] abiraja: rnewson: hmm, well crypto works for me too i suppose. [21:34] abiraja: but i'm using a ssl/http library that gives me the warning [21:34] rnewson: abiraja: I think it's true that the crypto module is linked to the ssl library. [21:34] abiraja: http://github.com/danwrong/Restler/ [21:35] abiraja: i'm not sure the crypto module is linked to ssl actually.... [21:36] badaxx: what does the bodyDecoder in express.js do? [21:36] tjholowaychuk: badaxx: it checks for a few different request body content types and parses them [21:36] tjholowaychuk: to req.body [21:37] tjholowaychuk: supports application/json and application/x-www-form-urlencoded or whatever [21:37] tjholowaychuk: BUT with latest node bodyDecoder will break since the querystring mod is gone [21:37] tjholowaychuk: well changed [21:38] akahn has joined the channel [21:38] akahn has left the channel [21:39] rnewson: abiraja: I'll try .setSecure locally. [21:39] rnewson: but the homebrew script doesn't disable it, but also doesn't require the dev library either. [21:40] abiraja: rnewson: i'll give that a try to see if its working or not. thanks for your help, gotta run now. [21:41] rnewson: abiraja: seems to work fine for me. [21:42] badaxx: tjholowaychuk: okay, that was my problem. i removed bodydecoder and everything works fine [21:42] tjholowaychuk: badaxx: still using that old node? [21:42] benburkert has joined the channel [21:42] tjholowaychuk: because more things will fail [21:42] rnewson: abiraja: try this if you have time: http://friendpaste.com/4pDjy3UCRHxeWFjTIXrLBO [21:45] badaxx: tjholowaychuk: nope, its 0.2.2 now [21:45] sveisvei_ has joined the channel [21:45] tjholowaychuk: badaxx: ah ok. bodyDecoder should not be failing on you though with 0.2.2, i dont think the querystring module was altered until after that [21:45] tjholowaychuk: unless you are doing something weird [21:46] tjholowaychuk: like Sencha sending Content-Type: application/json for a GET request lol [21:46] tjholowaychuk: failll [21:46] badaxx: tjholowaychuk: well, I'm just doing a post request [21:47] tjholowaychuk: badaxx: details? [21:47] badaxx: tjholowaychuk: a post request with form data - nothing special [21:47] tjholowaychuk: yeah but I cant help without details :p [21:48] badaxx: tjholowaychuk: well I fixed my problem :D I guess I don't need help [21:48] badaxx: well one more thing [21:48] badaxx: how can I get the post params out of the request? [21:48] badaxx: can't find anything like that in the requests [21:48] tjholowaychuk: that is because bodyDecoder was removed :p [21:48] tjholowaychuk: it would be req.body [21:49] badaxx: aaaaarrr [21:49] tjholowaychuk: so for example req.body.username [21:49] tjholowaychuk: or req.param('username') [21:49] tjholowaychuk: param() is actually something I dont really use but it checks the querystring / request body / path segments [21:50] cardona507 has joined the channel [21:50] sveisvei_ has joined the channel [21:52] BrianTheCoder has joined the channel [21:53] badaxx: tjholowaychuk: okay, let me send you a gist [21:53] badaxx: are you familiar with coffeescript? [21:53] tjholowaychuk: ughhh [21:53] tjholowaychuk: kind of but it makes things so much harder to read [21:53] badaxx: tjholowaychuk: okay, so JS... ;) [21:53] badaxx: it makes things harder to read? [21:53] tjholowaychuk: very much so [21:53] badaxx: not for me [21:54] badaxx: https://gist.github.com/e19dcf77338d4a46f47e [21:54] badaxx: this is my middleware [21:54] badaxx: and post requests keep loading and loading [21:55] tjholowaychuk: methodOverride needs to be below bodyDecoder [21:55] tjholowaychuk: for one [21:55] tjholowaychuk: umm [21:55] badaxx: tjholowaychuk: no difference, still loading ;) [21:56] tjholowaychuk: no i know [21:56] tjholowaychuk: thats not the problem [21:56] prettyrobots has joined the channel [21:56] slaskis: tjholowaychuk: what's the ~ thing here? http://github.com/visionmedia/express/blob/master/lib/express/response.js#L236 ? [21:58] tjholowaychuk: slaskis: an unary operator [21:58] tjholowaychuk: NOT [21:58] tjholowaychuk: and by NOT I mean that is what it is called haha [21:59] badaxx: isn't it doing sth like -(n+1) [21:59] nerdEd has joined the channel [22:00] tjholowaychuk: slaskis: since -1 is truthy, you can use it to assert indexOf return values, so !~foo.indexOf('bar') [22:00] slaskis: ahaa, i read it as it was something on the array, but of course it's on the integer returned... [22:00] tjholowaychuk: etc [22:00] slaskis: nice trick [22:01] Anti-X: hm [22:01] sstephenson: talk about hard to read :) [22:01] Anti-X: ACTION changes his 5 lines of indexof [22:01] benburkert has joined the channel [22:01] slaskis: haha [22:01] Druid_ has joined the channel [22:01] Druid_: woot [22:02] skampler has joined the channel [22:03] wink_ has joined the channel [22:04] dylang: Did anything change with the latest Node 0.3.0-pre (github trunk) that would break Connect's StaticProvider? [22:04] tjholowaychuk: 0.3.0 will break [22:04] tjholowaychuk: its not supported ATM [22:04] pdelgallego has joined the channel [22:06] slaskis: was reloading of modules something that would be fixed in 0.3.0 ? [22:06] slaskis: or fixed, but you know, worked on... [22:08] badaxx: tjholowaychuk: did you find out what could be the problem? [22:08] tjholowaychuk: badaxx: sorry i dont have tons of time to look [22:08] tjholowaychuk: its a tinnny middleware though if you want to do a little debugging [22:09] tjholowaychuk: and i just remembered the async dynamicHelpers thing ill try and get to that soon [22:09] chorrell has joined the channel [22:09] badaxx: okay ;) thanks so far [22:09] mape: tjholowaychuk: found the issue? [22:10] dylang: just looking at the code for two seconds maybe this? return err.errno === process.ENOENT ? next() : next(err); [22:10] path[l] has joined the channel [22:11] tjholowaychuk: mape: for what? sorry im getting confused haha at who had what issues [22:12] mape: tjholowaychuk: staticProvider trying to serve res.render('index'******) as index.html [22:12] tjholowaychuk: dylang: which middleware? staticProvider? [22:12] tjholowaychuk: ah [22:12] tjholowaychuk: didnt look into it really [22:12] mape: k [22:12] dylang: tjholowaychuk: yes, staticProvider [22:12] mape: dylang: same issue I'm having [22:12] tjholowaychuk: if your staticProvider is below app.router it shoudl take precedence [22:13] tjholowaychuk: still a bug, but should not be getting that on res.render() [22:13] mape: tjholowaychuk: I have it at the very bottom and it still tries to serve it over the templates [22:13] tjholowaychuk: thats fucked [22:13] tjholowaychuk: i havent been following the changes made in 0.3.x [22:16] aconbere has joined the channel [22:18] dylang: it seems that process.ENOENT is undefined in 0.3.x [22:18] ysynopsis has joined the channel [22:18] tjholowaychuk: ah! [22:18] tjholowaychuk: where did it go?? [22:18] dylang: tjholowaychuk [22:18] dylang: tjholowaychuk: http://github.com/ry/node/commit/6eca948ca24338743afdfbcadeefa928701d1c07 [22:19] dylang: "Move constants out of process object" [22:19] tjholowaychuk: ah i see [22:19] tjholowaychuk: coll [22:19] tjholowaychuk: cool* [22:20] saikat has joined the channel [22:20] tjholowaychuk: id probably rather errno.ENOENT or something [22:20] tjholowaychuk: doesnt matter much [22:21] tjholowaychuk: ACTION goes to work on async dynamic helpers [22:22] chorrell has left the channel [22:25] badaxx: tjholowaychuk: the problem seems to be that the data and end events on the req are never being called in the bodyDecoder when I send a POST request [22:25] badaxx: but ONLY if next() is called from a redis callback inside the middleware [22:25] badaxx: if I call next() outside of the callback everything works fine [22:25] badaxx: => wtf [22:25] tjholowaychuk: badaxx: because you miss the emission of those events [22:26] tjholowaychuk: by waiting around in that middleware [22:26] tjholowaychuk: its a fucked up problem [22:26] badaxx: ah shit I see [22:26] tjholowaychuk: forgot about that [22:27] tjholowaychuk: fuck, async dynamic helpers [22:27] badaxx: :D [22:27] tjholowaychuk: will be a huge clusterfuck actually [22:27] badaxx: but it will help a lot of people I think [22:28] tjholowaychuk: I need to redo a bunch of the internals but im willing to bet the view system will be much slower with the overhaul i have in mind [22:28] slaskis: what's async dynamic helpers? [22:28] tjholowaychuk: to support all this async stuff [22:28] zum: any socket.io users? [22:28] tjholowaychuk: I will look into adding before()/after() first [22:28] zum: where can I get WebSocketMain.swf? [22:28] tjholowaychuk: you could do the same thing with these [22:29] zum: ah, searching for the logs helped: http://cdn.socket.io/stable/WebSocketMain.swf [22:30] badaxx: tjholowaychuk: so, putting my own middleware after bodyDecoder helped ;) [22:30] kenstar has joined the channel [22:30] tjholowaychuk: badaxx: hehe :) BUT if you have multipart requests that are deferred to connect-form [22:30] tjholowaychuk: you will get burnt there too [22:31] badaxx: tjholowaychuk: i hope I won't have em ;) [22:31] tjholowaychuk: uploads? [22:32] badaxx: tjholowaychuk: later... hope there will be a fix for that then [22:32] tjholowaychuk: ah [22:32] BrianTheCoder has joined the channel [22:32] badaxx: development will take a few months I think so I'll have a look at that later [22:32] tjholowaychuk: gotcha [22:33] genexp has joined the channel [22:34] kenstar: Anyone wanna take a stab at giving me a second opinion on some optimization for this script right here? http://pastie.org/1177979 [22:37] mjr_: kenstar: line 30 is doing a bitwise or, you probably want ||, right? [22:37] mjr_: I think it might be faster to do +totals[object.string] + 1 [22:38] mjr_: But I dunno, or mightbe faster. [22:38] kenstar: mjr_: True, but I do need to dynamically assign the var as 0 before adding at all. [22:38] kenstar: mjr_: You're right about the bitwise though. [22:39] kenstar: mjr_: The oddity I'm looking at, is if you remove those two lines at 17 & 18, you it drops about 40ms off the execution time. [22:39] mjr_: +totals[object.string] will coerce it to a Number, and I think that works for undefined as well [22:39] mjr_: oh, no that makes it NaN. nm [22:39] siculars has joined the channel [22:39] kenstar: :D [22:40] Nietecht: That's a number though (cheeky bastard) [22:40] mjr_: Objects with lots of properties start getting slow unfortunately. [22:40] kenstar: Try running that code in node, then drop those two manually pushed objects & you'll notice what I'm talking about [22:43] sonnym has joined the channel [22:45] kenstar: The ultimate goal I'm trying to accomplish is for a large grouping mechanism. That only creates 2 properties on the hash object, so I don't think the property count should be the issue in this particular instance. Anyone know of a better (faster) way to take care of grouping a large amount of objects? [22:46] pedrobelo has joined the channel [22:46] jashkenas: kenstar: what do you mean by "grouping" exactly? splitting up a bunch of JS objects into array buckets, based on some criteria? [22:47] felixge has joined the channel [22:47] felixge has joined the channel [22:47] hsuh has joined the channel [22:48] kenstar: jashkenas: Basically. Ultimately it will be used for clustering x/y coordinates based on distance from one another. [22:49] jashkenas: if you know what the size of the clusters is going to be, creating an array of that length first, and using indexing instead of "push()" can help... [22:52] dgathright_ has joined the channel [22:54] matschaffer has joined the channel [22:54] zhesto has joined the channel [22:55] hannesw_ has joined the channel [22:56] pedrobelo has joined the channel [22:56] Druid_: is anyone using nginx http_push module with node.js? [22:59] prettyrobots: Any easy way to mask stdin for accepting passwords? [22:59] prettyrobots: Or no echo it? [22:59] hsuh has joined the channel [23:03] blowery_zzz has joined the channel [23:03] hassox has joined the channel [23:05] kenstar has left the channel [23:06] ivong has joined the channel [23:09] pedrobelo has joined the channel [23:12] pedrobelo has joined the channel [23:13] jakehow has joined the channel [23:13] gerred has joined the channel [23:14] mikew3c_ has joined the channel [23:14] rauchg_ has joined the channel [23:15] pedrobelo has joined the channel [23:17] pedrobelo has joined the channel [23:18] lachlanhardy has joined the channel [23:19] zith_: prettyrobots: in linux i think you're supposed to use the tcgetattr() and tcsetattr() functions [23:19] zith_: in c that is [23:19] christophsturm has joined the channel [23:19] ryan[WIN] has joined the channel [23:19] prettyrobots: I'm using exec("stty -noecho"). [23:20] prettyrobots: That's what I've figured out since asking. [23:30] bpot has joined the channel [23:32] cloudhead has joined the channel [23:32] jamescarr has joined the channel [23:33] jamescarr: help! [23:33] jamescarr: lo [23:34] Druid_: loo [23:35] WALoeIII has joined the channel [23:35] Anti-X: help yourself help yourself [23:39] pgriess has joined the channel [23:40] mw_ has joined the channel [23:45] logix812 has joined the channel [23:46] zmbmartin has joined the channel [23:46] logix812: when deploying a node application on Ubuntu.. where have people generally decided to place the files? /home/? some other acceptable place? [23:46] zmbmartin: tjholowaychuk: How do I do a link on the same line as a p tag so the link doesn't wrap around in jade --> p Sorry an error has occurred, please try refreshing the page or navigate back to a(href='/') home. [23:47] tjholowaychuk: wrap around? [23:47] tjholowaychuk: jade does not parse text bodies [23:47] tjholowaychuk: you have to do what haml ppl do and break it into different tokens [23:47] tjholowaychuk: so [23:47] tjholowaychuk: one sec ill gist it [23:48] tjholowaychuk: zmbmartin: http://gist.github.com/594616 [23:48] tjholowaychuk: or use a :markdown filter [23:48] tjholowaychuk: which is overkill usually [23:50] zmbmartin: tjholowaychuk: cool thanks [23:50] tjholowaychuk: np [23:55] ajpiano has joined the channel [23:56] bradleymeck1 has joined the channel [23:58] tk has joined the channel [23:58] Druid_: did anyone played around with faye? [23:58] quirkey has joined the channel