[00:02] jamescarr: heh... today at work I had to meddle in a decade old codebase [00:02] jamescarr: that bitch had webservices implemented as JSPs [00:03] JimBastard: overra: you guys are gonna get soo sued [00:04] JimBastard: apple is gonna cease and desist that sooo hard when they see the layout [00:04] JimBastard: :-\ [00:04] JimBastard: btw, it looks pretty good [00:04] overra: i'm not doing anything [00:04] jamescarr: heheheh [00:04] overra: just css :) [00:04] JimBastard: jobs is gonna get on a plane to NZ to beat up Tim [00:04] jamescarr: vows has no way to share verifications across contexts does it? [00:04] jamescarr: "behaves like" [00:04] Tim_Smart: lolwut, in NZ we have shotguns. [00:05] overra: same in TX [00:05] JimBastard: you mean assert something across contextes? you mean run a test on a value across contextes? [00:05] jamescarr: JimBastard, a test [00:05] Tim_Smart: Jobs will try shoot we with his iPhone app, and will fail. [00:05] JimBastard: (im piping this to indexzero) [00:05] jamescarr: for example, in jspec I would have a couple examples that I'd have run in different describes [00:05] jamescarr: using the "behave like" functionality [00:05] eazyigz has joined the channel [00:06] JimBastard: jamescarr: you could just make a method, like assertFoo() and then call it multiple tests? [00:06] jamescarr: thanks, you answered my question [00:06] jamescarr: kind of :) [00:06] JimBastard: okay, i think alexis has a nice example of doing HTTP tests [00:06] jamescarr: I'll just extract method for now [00:06] bradleymeck has joined the channel [00:07] figital has joined the channel [00:07] bradleymeck: i live! [00:07] JimBastard: if you scroll down http://vowsjs.org/ to the bottom it gets kinda interesting [00:08] Yuffster has joined the channel [00:10] ehaas has joined the channel [00:10] eazyigz has joined the channel [00:10] jamescarr: JimBastard, yeah, just needed to make a macro [00:10] jamescarr: that was easy [00:11] JimBastard: nice [00:11] jamescarr: 'it should render the index page':renders('index.jade') [00:11] mattikus has joined the channel [00:14] bradleymeck: ugg anyone know about extended memory addresses in gcc assembly [00:14] _announcer: Twitter: "@dN0t If you go V8, take one out of Palm's playbook and add Node as well. That would open up a whole slew of low-level services for JS devs" -- Derek Gathright. http://twitter.com/derek/status/23960923677 [00:15] huyhong1 has joined the channel [00:18] nerdEd has joined the channel [00:18] tmpvar has joined the channel [00:19] Tim_Smart has joined the channel [00:19] [[zz]] has joined the channel [00:19] _announcer: Twitter: ""Pixel Ping is a minimalist pixel-tracker written in CoffeeScript for Node.js" http://t.co/4a2pANP #nodejs #coffeescript #javascript" -- Régis Gaidot. http://twitter.com/rgaidot/status/23961191484 [00:21] marienz has joined the channel [00:23] lhardy has joined the channel [00:24] lhardy has joined the channel [00:25] bradleymeck: bleh since node is 32bit i guess we can stick to 32bit address spacing [00:27] bsstoner has joined the channel [00:30] lachlanhardy has joined the channel [00:31] eazyigz has joined the channel [00:31] jamescarr: heh.. hit the point where Object.freeze came in handy [00:31] bradleymeck: where? [00:31] jamescarr: var expectedTalk = talk [00:31] jamescarr: I thought that made a copy [00:32] jamescarr: apparently, I thought WRONG [00:32] bradleymeck: not of objects [00:32] techwraith: Hey, does anyone have some advice about profiling node.js apps? [00:32] Astro: will node retry on A records if a connection to AAAA timed out? [00:32] techwraith: Any way to tell why node crashed? [00:32] bradleymeck: astro, rephrase that? [00:32] bradleymeck: dtrace? [00:32] saikat has joined the channel [00:32] jamescarr: bradleymeck, yeah, wish Es5 included Object.clone(obj) [00:32] jamescarr: we need it [00:33] bradleymeck: not really [00:33] jamescarr: who is drudge on github? [00:33] Astro: bradleymeck: v6 & v4 dns records [00:33] bradleymeck: potential for abuse is pretty damn high [00:34] bradleymeck: astro i think it uses cares [00:34] bradleymeck: http://c-ares.haxx.se/ [00:35] techwraith: No advice? [00:35] bradleymeck: techwraith isnt there something, jsprofiler or somesuch to see line counts [00:35] atmos has joined the channel [00:35] bradleymeck: i know expresso can print coverage [00:36] techwraith: bradleymeck, thanks [00:36] bradleymeck: oh duh! -v8log [00:37] ryah: techwraith: --prof [00:38] techwraith: Thanks Ryah! [00:38] bpot has joined the channel [00:39] endor has joined the channel [00:42] Zuardi1 has joined the channel [00:44] Alex-SF has joined the channel [00:45] _announcer: Twitter: "google instant: an example of a node.js application." -- Joe Damato. http://twitter.com/joedamato/status/23962879058 [00:46] cognominal has joined the channel [00:46] techwraith: Ryah, is there documentation for --prof anywhere? [00:49] jamescarr: heheheh [00:49] jamescarr: var talk = (req.session.talk?fromSession:fromRequest)(req) [00:50] drudge: jamescarr: me [00:51] jamescarr: :) [00:51] _announcer: Twitter: "@joedamato did they really build it on node.js? I thought it might be a good use of node.js" -- Mike Grace. http://twitter.com/MikeGrace/status/23963272234 [00:51] jamescarr: drudge, I saw you forked paynode... I was curious what goodness you might be adding :) [00:51] drudge: jamescarr: 2checkout, possibly google checkout [00:52] jamescarr: awesome [00:52] jamescarr: let me know if you need anything, looking for all the help I can get :) [00:52] Tim_Smart: isaacs: Did you patch npm for the upcoming Fast Buffers? [00:52] Tim_Smart: I got a patch here if you haven't [00:52] isaacs: Tim_Smart: yeah. fixed in head [00:52] Tim_Smart: Brilliant. [00:53] isaacs: Tim_Smart: http://github.com/isaacs/npm/commit/5429db9efa21fb81405699bccf7156b30099b0b6 [00:53] Tim_Smart: Great minds think alike, exactly what I did. [00:54] paulwe has joined the channel [00:55] jashkenas: what's the general compatibility issue with fast buffers? [00:56] jamescarr: do you guys think this kind of stuff is pushing it? [00:56] jamescarr: (req.session.loggedIn?storeAndForward:storeAndRequestLogin).call(this, talk, req, res); [00:56] Tim_Smart: jashkenas: [object Object] vs [object Buffer], and that is all. [00:56] jashkenas: jamescarr: just break it up into two lines, and it'll be alright. [00:57] jashkenas: Tim_Smart: ah, but I thought I heard some chatter about it breaking CoffeeScript compiles. Is there anything else I should be watching out for? [00:57] jamescarr: jashkenas, yeah, just dont use coffeescript [00:57] Tim_Smart: jashkenas: No, that was a bug me and ryah ironed out. [00:57] jamescarr: :-P [00:57] jashkenas: Tim_Smart: cool. [00:57] ryah: jashkenas: and the c++ api brakes [00:57] saikat has joined the channel [00:58] jashkenas: ryah: thanks. [00:58] CIA-77: node: 03isaacs 07v0.2 * r2f071ac 10/ (lib/fs.js test/simple/test-fs-realpath.js): Fix issue #262. Allow fs.realpath to traverse above the current working directory. (+47 more commits...) - http://bit.ly/d6at6l [00:59] lakin has joined the channel [01:02] _announcer: Twitter: "@ Fouzi It will probably interest you seen Node.js is the "word of the day". Getting Started with Windows is Node.js http://bit.ly/aqRIxe" [fr] -- Pascal Paradis. http://twitter.com/pparadis/status/23964102431 [01:03] jamescarr: my articles on paynode got published, but sadly they bungled the code samples on the first one [01:03] jamescarr: https://www.x.com/docs/DOC-2507 and https://www.x.com/docs/DOC-2508 [01:04] mikew3c has joined the channel [01:05] _announcer: Twitter: "node.js or in PostgreSQL. Big whoop. http://bit.ly/dpkL5E" [ja] -- Atsushi Nakatsugawa. http://twitter.com/moongift/status/23964334579 [01:06] overra_ has joined the channel [01:06] dgathright: creationix1: So it looks like you created the FB event page for the Node meetup next week? Do you guys have much of an agenda put together yet for the event? A few of us SoCal Noders are thinking about heading up. [01:09] wakawaka: non-node question : what's a good fast light weight http server? [01:09] bradleymeck: ugg libffi is the way to go for calling random stuff at run time, but jeez, no support for bitfields, i would think that to be an easy thing [01:10] dohtem has joined the channel [01:10] dohtem has joined the channel [01:10] jashkenas: wakawaka: nginx. [01:10] wakawaka: jashkenas: cool thanks, that's what i was thinking, just wanted to see if there were any different opinions [01:13] Tim_Smart: wakawaka: There is also lighttpd if you want some options. [01:13] wakawaka: more options how so? which do you think has better doc / is easier to learn? [01:13] ryah: patches patches everywhere [01:13] bradleymeck: lighttpd still has leaks though :( [01:14] jashkenas: yeah, and this: http://www.google.com/trends?q=lighttpd%2C+nginx [01:14] Tim_Smart: ryah: Are they welcome patches? :D [01:14] ryah: of course [01:14] jamescarr: ryah, the amqp plugin worked out awesomely at my rabbimq presentation at a java usergroup last night [01:14] Tim_Smart: Yay! [01:14] ryah: jamescarr: glad to hear it [01:14] jamescarr: it really impressed everyone, got a lot of questions about node.js because of it [01:15] bradleymeck: ryah, did you see the talk about getting dlopen / dlsym for node working. any thoughts on it? [01:15] jamescarr: the demo had me modifying a java app and having the output displayed in real time in my node.js app [01:15] ryah: bradleymeck: the link problem? [01:16] jamescarr: I really think amqp will be a big helper at getting node.js into the enterprise where existing java services exist [01:16] bradleymeck: there wasnt really a problem, just if you had thoughts on a design for it / if you would be up to adding it to core if we do add it [01:17] _announcer: Twitter: "@voidfiles, could ironmeme be written using node.js for non-blocking continuous updates?" -- Andrew Davis. http://twitter.com/papyromancer/status/23965242694 [01:17] ryah: bradleymeck: i didn't see what you wanted to add - maybe i missed that part of the thread [01:18] bradleymeck: was looking into libffi to get dlopen and dlsym to have function calls be translated from js to c and returns back to js. [01:18] ryah: bradleymeck: why? [01:19] ryah: i've got bindings for them [01:19] ryah: (not in general, but for node addons...) [01:19] bradleymeck: just cause you dont know function signatures for everything you may want at compile time [01:20] bradleymeck: basically, just lets ppl write simple function bindings to almost anything at runtime, no struct resolution though [01:21] ryah: an ffi addon would be great, but i wouldn't want it in core [01:21] aliem_ has joined the channel [01:21] bradleymeck: k thats what i wanted to know [01:22] joshbuddy has joined the channel [01:23] ryah: go home or fix bugs? hmm.. [01:23] Tim_Smart: decisions decisions... [01:25] Tim_Smart: 0 for stay here, 1 to go home: [01:25] Tim_Smart: js> Math.round(Math.random) [01:25] gbot2: Tim_Smart: NaN [01:25] Tim_Smart: js> Math.round(Math.random()) [01:25] gbot2: Tim_Smart: 1 [01:25] x_or has joined the channel [01:26] jashkenas: later, Tim. [01:26] Tim_Smart: jashkenas: (13:23:01) ryah: go home or fix bugs? hmm.. [01:27] x_or: Anyone here using http-proxy within a connect application? It seems the API changed in http-proxy, and I cannot for the life of me figure out how to pass it into a connect handler. [01:27] Tim_Smart: x_or: JimBastard can tell about a new http proxy on the block. [01:28] Tim_Smart: Or are you already using nodejitsu's one? [01:28] JimBastard: hey x_or [01:28] x_or: Hi there. [01:28] JimBastard: are you using v0.2.0 ? [01:28] x_or: Back from Burning Man. [01:28] x_or: Yes. [01:28] x_or: v0.2.0 [01:28] JimBastard: yeah, there is an API change in 0.2.0, can you show me your usage code? i can prob help [01:28] x_or: I am using the nodejitsu one. [01:29] JimBastard: x_or: yeah i know, i helped write it :-) [01:29] MikhX has joined the channel [01:29] JimBastard: we removed the ability to proxy inside of an existing httpServer instance, but you can make the old code work with a minor change [01:29] JimBastard: i'd just need to see where you are calling it [01:29] nerdEd has joined the channel [01:30] rnewson has joined the channel [01:30] x_or: I used to be able to do an init method and do something like "proxy = httpProxy.HttpProxy". Then in my handler I would call "proxy.watch(req,res)" and then http.proxyResponse(…) after modifying a few headers. [01:30] JimBastard: yeah [01:30] x_or: I'm just unclear how to instantiate and then "watch" a request.. [01:30] JimBastard: x_or: did you look at the new documentation? you will want to do something like this, http://gist.github.com/571196 [01:30] x_or: Does that give you enough context? I could provide more code. [01:31] JimBastard: (we updated the docs on github as well) [01:31] x_or: I was looking, perhaps I missed it. I will check it out now. [01:31] JimBastard: we are actively working on making the proxy battle hardened, its getting better [01:31] ryah: do people like the color REPL? [01:31] JimBastard: the previous version wasnt doing to well under high loads [01:31] x_or: I'm confused about how I can use it without calling listen, since the connect application will be doing the listen, no? [01:31] ryah: or is it too much? [01:32] daniellindsley has joined the channel [01:32] x_or: I need to use it within a connect app, so I'm confused how I can reuse the existing server object for my proxy. Does that make sense? [01:32] JimBastard: x_or: a little bit, im thinking [01:32] JimBastard: x_or: i dont use connect much [01:32] x_or: Thanks. [01:33] kaichen has joined the channel [01:34] x_or: JimBastard: This is actually all I am doing. http://gist.github.com/571199 [01:34] x_or: I load the module, call setProxy with the place I want to hit with the proxy, and then send the handler into connect. [01:34] Utkarsh has joined the channel [01:34] x_or: It worked with a prior version of http-proxy, but unsure if this is possible now. [01:35] JimBastard: yeah, x_or we need to add that back in i think. would it be possible to open up an issue on the github with the details and i can make sure that indexzero patches it? in the meantime, you can checkout http://github.com/nodejitsu/node-http-proxy/commit/6661753f07dcf4e5ae684df4d1709f3c238346c9 and that should still work with the previous api [01:36] JimBastard: indexzero and mikeal did a complete re-factor of the proxy this week, that one little feature got taken out, should be in there imo [01:36] x_or: OK, I will do that. [01:36] JimBastard: i would roll back to the previous version though, that SHOULD fix you up for now [01:36] saikat has joined the channel [01:36] JimBastard: are you expecting high load on your site? [01:36] JimBastard: like 300 + concurrent users for hours at a time? [01:36] gerred has joined the channel [01:36] x_or: Should I be expecting to clone that URL, it died. [01:36] JimBastard: no [01:36] x_or: No, I am not worried about a bunch of concurrent users. [01:37] JimBastard: x_or: are you using npm? [01:37] x_or: Yes, using npm. [01:37] JimBastard: so i think npm can do it [01:37] JimBastard: if we did proper versions [01:37] JimBastard: one sec [01:37] x_or: Ah, good point. :) [01:37] JimBastard: http-proxy@0.1.5 =indexzero =marak installed remote [01:38] JimBastard: im trying to remember how to checkout a specific version [01:38] JimBastard: in npm [01:38] isaacs: JimBastard: npm install http-proxy@0.1.5 [01:38] JimBastard: word! [01:38] JimBastard: x_or: you wanna try that out? npm install http-proxy@0.1.5 [01:38] JimBastard: thanks isaacs ! [01:38] isaacs: JimBastard: that's why npm ls lists them that way :) [01:38] isaacs: JimBastard: npm help install [01:39] isaacs: it can do a LOT of stuff. [01:39] JimBastard: hee hee [01:39] JimBastard: i feel bad about breaking the http-proxy api, but its < 1.0.0 [01:39] x_or: OK, this is workable for me. [01:39] zikes_ has joined the channel [01:39] JimBastard: it should be able to play nice with connect / express though [01:39] Esteth has joined the channel [01:39] JimBastard: x_or: cool, if you could take a minute to report issue, we'll get on it. thanks! [01:40] x_or: I'll get it done, thanks for your support. [01:40] tmpvar has joined the channel [01:41] BrianTheCoder has joined the channel [01:41] softdrink has joined the channel [01:41] zikes_: is someone available that could give me a hand figuring out monit+node.js? I've followed every tutorial I could find but I just can't get it working [01:42] JimBastard: zikes_: you read the Tim_Smart one on howtonode? [01:42] Alex-SF has joined the channel [01:42] Tim_Smart: zikes_: Ello. [01:42] Tim_Smart: What is your monit config currently? [01:42] zikes_: JimBastard: yeah, I couldn't get upstart to launch it [01:43] Tim_Smart: zikes_: Right. What OS you running on? [01:43] _announcer: Twitter: "Check out the power of Web Workers and Node.js in this Massive Multi-Player Scrabble: http://seattle-js.no.de" -- Jason Wicker. http://twitter.com/Logrythmik/status/23967256837 [01:43] zikes_: Tim_Smart: I'm running ubuntu 10.04 on a slicehost server [01:44] _announcer: Twitter: "@voidfiles I still haven't figured out mongoDB from node.js, but here's a baseline with oauth and sessions: github.com/papyromancer/memetec" -- Andrew Davis. http://twitter.com/papyromancer/status/23967321998 [01:45] Tim_Smart: zikes_: Nice. My laptop is 10.04 so I'll dig up my upstart config now... [01:45] zikes_: Tim_Smart: I've got monitrc including /etc/monit/services wherein I have a file called 'zikesnode' with a file almost exactly like the one in your article, except it tries to launch the node process directly [01:45] zikes_: Tim_Smart: the first monit+node.js article I read didn't include upstart, but I've tried to work that in after I found your article [01:47] zikes_: Tim_Smart: the monit logs show a successful launch of the node process, however I can't reach the node server via TCP [01:47] Tim_Smart: OK. [01:47] zikes_: Tim_Smart: I'm wondering if there are some sort of environmental settings I'm missing that need set up before monit can launch node [01:47] zikes_: Tim_Smart: I'm running node 0.2.0, by the way [01:48] Tim_Smart: Yeah I need to update that upstart article, but nether-the-less it should still work. [01:50] rauchg_ has joined the channel [01:52] zikes_: Tim_Smart: the strange thing is that if I run the command I put in the 'start program' line manually it runs the node process just fine, and I've used the full paths to the node executable and .js files [01:52] _announcer: Twitter: "All day in PHP and JS. I'm understanding why people diss PHP and why node.js is taking off." -- Matt Wiebe. http://twitter.com/mattwiebe/status/23967985888 [01:53] _announcer: Twitter: "Limiting Concurrency in Node.js - http://su.pr/1Yqfh0" -- Richard Laksana. http://twitter.com/rlaksana/status/23968029075 [01:55] hdon: does Node have an I/O pass-through API? [01:56] zikes_: Tim_Smart: I've also tried wrapping the node start process in a bash script and calling that in monit, read somewhere that worked for someone [01:56] atourino has joined the channel [01:57] _announcer: Twitter: "@fogus you wouldnt happen to be playing around with node.js today would you?" -- Sean T Allen. http://twitter.com/SeanTAllen/status/23968310562 [01:57] _announcer: Twitter: "Time to write some JavaScript #, # as the Flemish have gone to the bag. # Nodejs" [pt] -- Emerson Macedo. http://twitter.com/emerleite/status/23968315170 [01:59] techwraith has left the channel [02:01] maushu: I've been working for 15 hours. [02:01] dipser_ has joined the channel [02:01] maushu: I don't need to sleep! Mwahahahaha [02:01] maushu: The pink unicorn said so. [02:03] pgriess has joined the channel [02:04] davidwalsh has joined the channel [02:05] hdon: maushu, actually, you're getting very sleepy [02:05] maushu: Not really. [02:05] hdon: you can feel your head drooping forward [02:06] Tim_Smart: zikes_: OK this is my script: https://gist.github.com/cc4de9828fa3df297044 [02:06] hdon: your eyelids close involuntarily [02:06] hdon: ACTION hypnotizes [02:06] hdon: does Node have an I/O pass-through API? [02:07] Tim_Smart: zikes_: And my monit script https://gist.github.com/cc4de9828fa3df297044#file_gistfile2.txt [02:08] hayeah has joined the channel [02:11] jamescarr: too many people are commenting too much on connect and node on github these days :) [02:11] bpot has joined the channel [02:11] aliem has joined the channel [02:11] jamescarr: it fills up my dashboard :) [02:11] zikes_: Tim_Smart: that's got it! thank you =D [02:12] hdon: does NodeJS 0.2.0 support getters and setters in object literal notation [02:12] jamescarr: hdon, if you mean ES5 setters/getters, yes [02:12] jamescarr: http://blog.james-carr.org/2010/07/19/defining-getters-and-setters-in-nodejs/ [02:13] zikes_: Tim_Smart: my upstart script didn't have the sh -c options and I think I may have misunderstood how the check host line was supposed to work [02:13] zikes_: Tim_Smart: changed those two lines and that seems to have done the trick [02:14] zikes_: Tim_Smart: thank you very much for your help, I've been looking forward to playing with node for a while [02:18] mikew3c has joined the channel [02:18] brianmario has joined the channel [02:22] hdon: jamescarr, thanks :) i was trying to combine that with the shorthand function syntax and that's why it didn't work, like: function f()555 [02:22] lakin: does expressjs support multiple layouts? or is this even the right place to ask that? [02:23] jamescarr: what do you mean by multiple layouts? [02:23] jamescarr: it supports different templating engines [02:23] Alex-SF has joined the channel [02:23] lakin: well right now, if layout != 'false' when I call res.render, it takes the value of the rendered template and sets it to 'body' in the layout.jade (or layout.haml) depending on the engine [02:24] lakin: is there a way to get it to use a different layout.jade for a particular res.render call [02:25] lakin: from some random examples on the interwebs and just hoping it would work I tried setting res.render('template.jade', { layout: 'layout-b.jade', locals: {}}) but that didn't work [02:28] lakin: Although, looking at express js source it appears that should work, I'll dig into it more [02:28] bpadalino: i'm apparently not having any good luck with mongoose :(.. i keep getting some non native constructor [02:28] Esteth: Does anyone know of a service similar to ec2 but selling less hefty vps. ec2 is a bit pricey for what I want to use it for [02:29] Esteth: ACTION just realized that asking about cloud providers doesn't really have anything to do with #Node.js [02:31] wakawaka: node-websocket-server vs. socket.io? any thoughts? [02:31] lakin: jamescarr, yeah - thanks. It does work - apparently I have to restart the server to get it to pick up the new template. [02:32] JimBastard: did someone say node cloud servers? http://github.com/nodejitsu/node-cloudservers [02:32] jamescarr: lakin, there's a setting for that too [02:32] lakin: cool, I'll look into it [02:32] lakin: ACTION reads TFM [02:32] jamescarr: app.set('reload views', 1000); [02:32] jamescarr: reloads the views at intervals you set it at [02:34] hdon: so here is what i've just written and gotten working pretty easily http://pastebin.mozilla.org/785838 [02:34] hdon: but i'm thinking Node probably has something liek this built in? [02:35] jamescarr: oh no no no [02:35] langworthy has joined the channel [02:35] Anti-X: that looks scary [02:36] hdon: i mean [02:36] SubStack: wakawaka: dnode if you like continuations [02:37] hdon: what i really want is a derivative of the http server that will look up documents on the disk and serve them, but defer to the handler i provide for resources that aren't found on the disk [02:37] lakin: jamescarrthanks [02:37] Tim_Smart has joined the channel [02:38] SubStack: hdon: you could just use express/connect's staticProvider [02:38] SubStack: pretty much does exactly what you want [02:38] hdon: nothing built into node then? [02:39] hdon: i dont' really need much more because i only have like, two or three files at most [02:39] _announcer: Twitter: "ok i am going to cheat a little... going to get mongodb installed on my node.js server" -- Brian Mavity. http://twitter.com/bmavity/status/23971601376 [02:39] SubStack: node's core is intentionally sparse [02:39] hdon: ACTION nods [02:39] hdon: an honourable policy [02:40] SubStack: you can just do var app = express.createServer(); app.use(express.staticProvider(__dirname + '/static')) [02:41] SubStack: then app.get('/someroute', function (req, res) { /* ... */ }) [02:41] hdon: ACTION yawns [02:42] hdon: my needs are pretty well met for my app [02:42] hdon: i am just using node for things the browser isn't capable of [02:42] hdon: cross-domain and local storage [02:46] [[zz]] has joined the channel [02:47] mattikus has joined the channel [02:48] _announcer: Twitter: "Reading up on #nodejs #commonjs #html5 and #webworkers . My brain is blissfully overloaded." -- Benjamin P Lee. http://twitter.com/leebenjp/status/23972362065 [02:54] _announcer: Twitter: "anyone know how to handle subdomains with node.js?" -- Brian Mavity. http://twitter.com/bmavity/status/23972790679 [02:55] mikew3c has joined the channel [02:56] Tim_Smart: OK verdict of static file serving: sendfile is awesome http://gist.github.com/570420 [02:57] jacoblyles has joined the channel [02:58] mikew3c: sendfile++ [02:58] v8bot: mikew3c has given a beer to sendfile. sendfile now has 1 beers. [02:58] softdrink has joined the channel [02:58] Anti-X: !tweet @bmavity url.parse(request.uri).hostname ? [02:58] Anti-X: if i can tweet [02:58] Anti-X: at all [02:59] Tim_Smart: Anti-X: request.url, aswell. [02:59] Tim_Smart: (Instead of uri) [02:59] Anti-X: oh yeah [02:59] Anti-X: whatever, he'sll figure it out [03:01] _announcer: Twitter: "The #nodejs API docs are impressive" -- Benjamin P Lee. http://twitter.com/leebenjp/status/23973362581 [03:02] Tim_Smart: Anti-X: The url does contain the hostname http://nodejs.org/api.html#request-url-173 [03:02] Tim_Smart: Anti-X: Maybe request.headers['host'] [03:03] [[zz]] has joined the channel [03:03] jashkenas has left the channel [03:03] Tim_Smart: doesn't* [03:03] Anti-X: aha [03:03] Anti-X: is the host header required? [03:03] Anti-X: in http [03:03] Tim_Smart: Anti-X: Yeah. [03:03] Tim_Smart: All clients must supply it. [03:04] murz has joined the channel [03:05] _announcer: Twitter: "Anti-X thanks. I will try that out node.js ;)" -- Brian Mavity. http://twitter.com/bmavity/status/23973663545 [03:06] Anti-X: !tweet @bmavity I stand corrected, request.headers['host'] is the right way to get the hostname. [03:06] Tim_Smart: Anti-X: http://github.com/ry/node/blob/master/lib/http.js#L1086 [03:06] Tim_Smart: Yeah http.Client auto sets it if it isn't specified. [03:06] hdon: does node support destructuring bind like var [url, host, port, res] = re.match... [03:06] Anti-X: auto sets it to what? [03:06] Anti-X: :P [03:06] Tim_Smart: hdon: Nope, but coffeescript does. [03:07] hdon: what is coffeescript [03:07] Tim_Smart: Anti-X: What ever you set the client host to. [03:07] _announcer: Twitter: "@billgaroutte you still doing ruby Bill? I've gone all JS crazy myself. Doing lots of browser stuff as well as some node.js on the server." -- Henrik Joreteg. http://twitter.com/HenrikJoreteg/status/23973773790 [03:07] Tim_Smart: hdon: http://jashkenas.github.com/coffee-script/ [03:10] hdon: Tim_Smart, looks interesting. are you familiar with haxe? [03:10] Tim_Smart: Anti-X: Nevermind about http.Client setting host, it appears that only `cat` does that. [03:10] Tim_Smart: Not really.. [03:10] brapse has joined the channel [03:11] Anti-X: server.listen(port, [hostname], [callback]) [03:11] Anti-X: i think that would be the place [03:11] Tim_Smart: You would have to use different ports for each host though? [03:11] Anti-X: in that case, yes [03:12] Anti-X: if you just read the host header, you wouldn't [03:12] abiraja has joined the channel [03:12] abiraja_ has joined the channel [03:18] hdon: writing an http proxy method to be called from the http server callback: http://pastebin.mozilla.org/785852 [03:19] Me1000 has joined the channel [03:20] huyhong1 has left the channel [03:20] hdon: when should i send the headers? [03:20] hdon: there doesn't seem to be a headers event [03:20] huyhong has joined the channel [03:20] lakin: I'm switching a simple app that is based heavily on the structure that the express program creates - it was working with jade templates, i just made new templates use ejs instead of jade and now am getting this error - http://paste.pocoo.org/show/259774/ [03:21] huyhong has left the channel [03:21] _announcer: Twitter: "Where are #npm #nodejs modules published to / stored online? Is there a common repo? Am I missing something? #lazyweb" -- Benjamin P Lee. http://twitter.com/leebenjp/status/23974820015 [03:21] JimBastard: hdon: you could try: http://github.com/nodejitsu/node-http-proxy [03:21] JimBastard: !tweet @leebenjp npm list [03:21] hdon: that looks like an http proxy [03:21] hdon: as opposed to a transparent proxy method [03:23] hdon: well that was fairly easy [03:23] hdon: i just created a closure variable headersSent = false and just wait for the first data event to send the headers to my client [03:25] dnolen_ has joined the channel [03:26] SubStack: !tweet @leebenjp also http://registry.npmjs.org/ and `npm config get registry` [03:27] bpadalino: did someone send them http://npm.mape.me/ as well ? [03:29] ThePub has joined the channel [03:29] JimBastard: !tweet @leebenjp http://npm.mape.me/ [03:30] mu-hannibal has joined the channel [03:31] kriszyp_ has joined the channel [03:32] _announcer: Twitter: "Node.js and MongoDB are super cool. Past me may time travel to kick me in the nuts over JavaScript. Good thing past me doesn't know Kung Fu" -- John. http://twitter.com/radiofreejohn/status/23975670280 [03:33] _announcer: Twitter: "w00t! just did the "hello, world!" for node.js... global domination soon to follow. or not. whatever." -- Michael D. Hall. http://twitter.com/just3ws/status/23975718815 [03:34] JimBastard: !tweet just3ws its node time! [03:34] jamescarr: leebenjp? [03:34] jamescarr: I know him! [03:34] jamescarr: in person [03:35] _announcer: Twitter: "@leebenjp http://npm.mape.me is a good listing of the #npm repository. #node.js" -- jamescarr. http://twitter.com/jamescarr/status/23975910639 [03:36] tmpvar: i think npm.mape.me would be more useful if all of the "descriptions" we 1 line in the list view. clicking 'more info' would show the full desription or the readme with links at the top for downloading [03:36] tmpvar: s/we/were [03:36] JimBastard: tmpvar: there is a rebuild of it too [03:36] tmpvar: ? [03:37] lakin: dagnabit. I suppose installing an ejs compatible with node is the first step to using ejs [03:37] JimBastard: mape has an alternate view of the repo, forgot the link [03:37] _announcer: Twitter: "#narwhaljs / #nodejs newbie tip: module ids behave differently in each, but (require.main.id === module.id) works in both." -- Ken Franqueiro. http://twitter.com/kfranqueiro/status/23976002279 [03:37] tmpvar: ah [03:38] tmpvar: interesting [03:38] _announcer: Twitter: "@me1000 even for your timetableapp? Cool! What do you use for backend? PHP? Nodejs? :-)" -- Dhi Aurrahman. http://twitter.com/diorahman/status/23976116189 [03:40] danielzilla has joined the channel [03:40] _announcer: Twitter: "@aaronheckmann Where are #npm #nodejs modules published to / stored online? Is there a common repo? Am I missi... http://bit.ly/cfkF4h" -- Julia. http://twitter.com/JPazella/status/23976237375 [03:40] _announcer: Twitter: "@indexzero nice post on #nodejs and #jquery . Using it right now." -- Benjamin P Lee. http://twitter.com/leebenjp/status/23976237658 [03:42] jamescarr: frak frak frak [03:42] jamescarr: I really need to freaking get a consulting business off the ground [03:42] Anti-X: hey i've been thinking the same for 5 years [03:42] Anti-X: doesn't seem to be happening [03:43] jamescarr: Anti-X, you in St.Louis? [03:43] Anti-X: i think it might require something i've heard referred to as 'initiative' [03:43] Anti-X: not at all [03:43] SubStack: you could do a non-consulting business [03:43] SubStack: seems more fun [03:44] Anti-X: i'm aiming for the non-business experiment suddenly becoming popular and turning into a business [03:45] Anti-X: the odds arent on my side, but i am on my side, that's all i need ;p [03:46] Anti-X: [03:46] voodootikigod_ has joined the channel [03:48] tmpvar: hah [03:49] tmpvar: it takes balls and effort [03:49] tmpvar: zing :P [03:49] EyePulp has joined the channel [03:50] bpadalino: whenever i run a node script, it ends up 'hanging' somewhere .. something is not finishing .. is there an easy way for me to find out what node is waiting on ? [03:53] _announcer: Twitter: "Node.js, MsgPack, Python, Bottle.py, Redis, UNIX domain datagram sockets, all playing nicely. Love it when things just work as expected." -- Fictorial LLC. http://twitter.com/fictorial/status/23977162870 [03:53] _announcer: Twitter: "Listening to great talks on encodings at the SF Ruby meetup and finding myself wondering how node.js's is." -- James A Rosen. http://twitter.com/jamesarosen/status/23977186777 [03:56] davidwalsh has joined the channel [03:58] mikew3c has joined the channel [04:03] joshbuddy has joined the channel [04:04] Utkarsh has joined the channel [04:04] path[l] has joined the channel [04:05] mikew3c has joined the channel [04:05] JimBastard: !tweet @just3ws its node time! [04:06] tmpvar: i love how useful a level 1 dom is on the server, make me happy :) [04:07] JimBastard: tmpvar: you actually using it for something? [04:08] tmpvar: not currently [04:08] tmpvar: :/ [04:08] Tim_Smart: I might do some web scraping with it soon. [04:08] JimBastard: we really need to fix this html-parser problem [04:08] Tim_Smart: How much head-way does the HTML parser have? [04:08] tmpvar: nice, do sent me issues [04:08] JimBastard: the web is full of terribly formed html [04:10] Anti-X: just like the world is full of terribly formed people [04:12] _announcer: Twitter: "Very proud (and maybe disappointed) that the #ATLRUG could not topple my #NodeJS app. And @srbiv said it wouldn't hold!" -- lorennorman. http://twitter.com/lorennorman/status/23978498071 [04:12] Utkarsh has joined the channel [04:12] brapse has joined the channel [04:13] mechanate has joined the channel [04:19] hassox has joined the channel [04:29] amerine has joined the channel [04:30] dohtem has joined the channel [04:30] dohtem has joined the channel [04:30] dgathright has joined the channel [04:34] mattikus has joined the channel [04:36] _announcer: Twitter: "nodejs is good for some fun! like the experience:sendBody to write, finish to close but then close to end; oh and sendHeader is writeHead ;)" -- Jeremiah Johnson. http://twitter.com/mrtidy/status/23980080023 [04:40] brapse has joined the channel [04:40] saikat has joined the channel [04:43] overra_ has joined the channel [04:43] _announcer: Twitter: "For more documentation on what you have versus what you have in the browser for NodeJS: http://bit.ly/aqImSx" -- Jaime Bueza. http://twitter.com/jbueza/status/23980553624 [04:44] _announcer: Twitter: "What is the Skywriter and Bespin. You know you're based on what happens node.js "Mozilla Labs» skywriter »Blog Archive» Bespin is now Mozilla Skywriter, ... "http://is.gd/f1SLW" [ja] -- azu. http://twitter.com/azu_re/status/23980578492 [04:44] mikew3c has joined the channel [04:45] Utkarsh has joined the channel [04:48] keyvan has joined the channel [04:48] [[zz]] has joined the channel [04:49] _announcer: Twitter: "@ Ispirate but what twisted, node.js? IMHO, better for such a task" [ru] -- Tony Darko. http://twitter.com/hybro1d/status/23980899865 [05:00] _TS has joined the channel [05:00] Utkarsh has joined the channel [05:01] Zuardi has joined the channel [05:04] gerad has joined the channel [05:11] _announcer: Twitter: "want to know more about libs and frameworks for node.js? http://github.com/ry/node/wiki/modules" [pt] -- andrewsmedina. http://twitter.com/andrewsmedina/status/23982237920 [05:11] Aria has left the channel [05:11] _announcer: Twitter: "@DanielEricLee - What's funny (in context of your recent post) is *literally* one day ago I attended a talk on Node.js (at a Ruby meet-up)." -- Nathan Smith. http://twitter.com/nathansmith/status/23982256821 [05:16] tekky has joined the channel [05:20] bpot has joined the channel [05:22] Utkarsh has joined the channel [05:23] atmos has joined the channel [05:25] _announcer: Twitter: "I'm totally diggin' these <canvas> impact graphs on @github. Check out the one for node.js: http://bit.ly/bURP6q (keep scrolling right)" -- Henrik Joreteg. http://twitter.com/HenrikJoreteg/status/23983059270 [05:26] _announcer: Twitter: "Node.js Development & Consulting » Debuggable Ltd http://bit.ly/c19kvR" -- Delicious Over 50. http://twitter.com/delicious50/status/23983104265 [05:30] marshall_law has joined the channel [05:31] _announcer: Twitter: "#nodejs and #riak, nice! http://www.slideshare.net/frank06/nodejs-riak" -- Sébastien Nadon. http://twitter.com/snadon/status/23983350912 [05:31] Utkarsh has joined the channel [05:32] Tim_Smart has joined the channel [05:38] SubStack: I bet there is a ton of code that would break if people started inputting values like __proto__ and __defineGetter__ into forms [05:40] SubStack: I wish javascript had a container type not coupled to the object system [05:42] _announcer: Twitter: "A great article on #nodejs frameworks: http://bit.ly/bx8pA0" -- David J. Kordsmeier. http://twitter.com/dkords/status/23983957623 [05:45] BryanWB has joined the channel [05:47] Utkarsh has joined the channel [05:47] _announcer: Twitter: "@rkalla I don't know if it's just us. I know the JS guys are working on Rhino, but attention may have moved on towards node.js" -- Marc Chung. http://twitter.com/heisenthought/status/23984243117 [05:49] saikat has joined the channel [05:54] ph^ has joined the channel [05:56] guybrush: miksago you are here? [05:56] joshbuddy has joined the channel [06:02] Nohryb has joined the channel [06:08] hassox has joined the channel [06:08] H7777 has joined the channel [06:09] _TS has joined the channel [06:16] noahcampbell has joined the channel [06:17] JJJJJJ has joined the channel [06:18] _announcer: Twitter: "Checking out Node.js." -- Calvin Chan. http://twitter.com/calvintychan/status/23985842384 [06:25] _TS has left the channel [06:26] _announcer: Twitter: "Palm webOS 2.0 includes node.js - Node JS (the server side JavaScript runtime based on Google's V8 engine) now ... http://ow.ly/18VBXa" -- Javascript News. http://twitter.com/del_javascript/status/23986234234 [06:27] adambeynon has joined the channel [06:30] ph^ has joined the channel [06:31] aubergine has joined the channel [06:34] _announcer: Twitter: "Node.js streams are awesome, it really is a playground for geeks;)" [nl] -- Richard Tuin. http://twitter.com/Richard_Tuin/status/23986624558 [06:36] AAA_awright has joined the channel [06:38] jetienne has joined the channel [06:40] kjeldahl has joined the channel [06:43] SamuraiJack has joined the channel [06:43] _announcer: Twitter: "If only there's a Google AppEngine-like site for #nodejs" -- Lim Chee Aun. http://twitter.com/cheeaun/status/23987015801 [06:46] jamescarr_ has joined the channel [06:47] _announcer: Twitter: "@leebenjp #npm #nodejs #lazyweb registry.npmjs.org" -- Adam R Klunick. http://twitter.com/adamklunick/status/23987233878 [06:48] kjeldahl_ has joined the channel [06:48] _announcer: Twitter: "@leebenjp #npm #nodejs #lazyweb Never added a project, but I think you add them at http://npm.mape.me/" -- Adam R Klunick. http://twitter.com/adamklunick/status/23987275972 [06:51] Zuardi1 has joined the channel [06:56] SubStack: ACTION is looking for a way to disown child processes in node [06:56] _announcer: Twitter: "Built my first node.js app using the express.js, jade, and npm. http://bit.ly/bY8VwP #nodejs" -- Dave Mosher. http://twitter.com/dmosher/status/23987637535 [06:56] siculars has joined the channel [06:58] mape: Anyone had issues with node-oauth? [06:58] fyskij has joined the channel [06:58] SubStack: can't just do .on('CHLD', 'IGNORE') since .on doesn't roll that way [06:59] peol has joined the channel [07:00] SubStack: probably only perl does it the 'IGNORE' way anyhow [07:00] SubStack: for SIG_IGN [07:01] k3yvn has joined the channel [07:06] tav has joined the channel [07:09] langworthy has joined the channel [07:12] _announcer: Twitter: "Pixel Ping: Minimal Pixel Tracking with Node.js & CoffeeScript - http://su.pr/3bL339" -- eBot. http://twitter.com/kicauan/status/23988423534 [07:16] nofxx has joined the channel [07:16] ahc has joined the channel [07:17] nofxx: Think I'm missing something, trying to keep listen to a serial input, how to keep this looping? http://pastie.org/1147546 [07:18] Tim_Smart has joined the channel [07:18] lgomez has joined the channel [07:21] freeall has joined the channel [07:22] delapouite has joined the channel [07:23] Tim_Smart has joined the channel [07:25] njero has joined the channel [07:26] _announcer: Twitter: "# HackingPartyPari18 plan - NodeJS / GEOLOC API (Faidherbe - Chaligny) Tue, Sep 9, 2010, 8:00 pm http://planca.st/9lW" [nl] -- Glenn Y. R.. http://twitter.com/glenux/status/23989061311 [07:28] themiddleman has joined the channel [07:30] pdelgallego has joined the channel [07:32] jetienne: nofxx: is "cat /dev/ttyUSB1" blocking ?* [07:33] nofxx: jetienne: no, it isn't [07:33] FuzzYspo0N has joined the channel [07:33] jetienne: nofxx: i assume this is for the same reason [07:33] jetienne: nofxx: not that i know this reason, but it may give you an hint [07:34] nofxx: jetienne: it's an arduino connected to the usb port. It's a pseudo rs232 serial [07:35] nofxx: wrote a "listener" in ruby that is working, it sends to a node server using faye and then to my browser, was playing with the idea of this "listener" wrote in js [07:36] Tim_Smart: nofxx: You have the code for the listener on Github or something? [07:37] nofxx: Tim_Smart: http://github.com/nofxx/subduino [07:38] nofxx: Tim_Smart: it's pre-alpha ;) [07:38] siculars has joined the channel [07:39] nofxx: http://github.com/nofxx/subduino/tree/master/webapp/node/ [07:43] SubStack: nofxx: the web server is only to do ipc? [07:44] SubStack: ACTION should finish up that ruby implementation of the dnode protocol [07:44] SubStack: s/finish up/start writing/ [07:44] nofxx: SubStack: sorry man, what ipc stands for ? [07:44] SubStack: inter-process communication [07:44] stagas has joined the channel [07:45] nofxx: you mean server.js on gh ? [07:45] SubStack: yes [07:45] nofxx: just to publish the sensor data, or whatever, to the browser [07:45] DoNaLd` has joined the channel [07:46] nofxx: taugh I was going to need some MQ thing, but faye already does the pubsub thing between ruby and the node server [07:48] nofxx: SubStack: hm.. sorry, you mean just to connect the clients ? [07:51] FuzzYspo0N: any cool boost based json libs around [07:54] aliem has joined the channel [08:00] _announcer: Twitter: "I was so lost with charsets in #nodejs but then I found http://github.com/bnoordhuis/node-iconv to rescue me. Totally awesome! FTW!!!!!" -- Andris Reinman. http://twitter.com/andris9/status/23990591893 [08:02] voodootikigod_ has joined the channel [08:06] adambeynon has joined the channel [08:07] peutetre has joined the channel [08:07] _announcer: Twitter: "Owl presentation node.js + Riak http://slidesha.re/aKdTry" [fr] -- Jean-Louis Huynen. http://twitter.com/gallypette/status/23990917852 [08:08] tobiassjosten has joined the channel [08:10] beppu: in the node repl, is there a way to configure the various colors it uses when it serializes objects. (blue numbers are hard for me to see on a dark background) [08:12] paulwe has joined the channel [08:18] adambeynon has joined the channel [08:21] TomY has joined the channel [08:21] V1 has joined the channel [08:22] V1: ahoy happy campers [08:24] guid has joined the channel [08:26] mbrochh has joined the channel [08:31] caolanm has joined the channel [08:31] bradleymeck has joined the channel [08:36] mikew3c_ has joined the channel [08:42] Throlkim has joined the channel [08:43] JimBastard has joined the channel [08:44] Tim_Smart: beppu: Nope :/ [08:44] Tim_Smart: Unless you manually alter node's source. [08:44] shockie has joined the channel [08:44] mattikus: might be a good project, add a themable repl [08:45] Zuardi has joined the channel [08:45] bradleymeck: i would still like multiple repls to work with ctrl+trab [08:45] bradleymeck: tab* [08:46] _TS has joined the channel [08:47] HAITI has joined the channel [08:48] zum: also, repl is just a library, as is readline that node uses [08:48] _announcer: Twitter: "4lberto @ your brother told me about the truth NodeJS seems something worth looking too ... so what the SD ... much there!!" [es] -- Mario Vega. http://twitter.com/malcomx92/status/23992779752 [08:48] zum: just roll your own and require() it [08:49] _announcer: Twitter: "@binarytales Shame! Was looking forward to the node.js info..." -- Mark Perkins. http://twitter.com/allmarkedup/status/23992842484 [08:49] genbit has joined the channel [08:50] Tim_Smart: Doesn't look half bad with my terminal: http://ubuntuone.com/p/FUC/ [08:50] _announcer: Twitter: "listening to node epidose podcast frm changelog..thinking about a live log viewer - nodejs svr - log4net udp appender client" -- Matt Freeeman. http://twitter.com/mattcodes/status/23992901658 [08:51] Tim_Smart: Still, I might play with the values :p [08:51] V1: Lol, I just realized something.. Speedo is actually usability clone of twitter. You can follow and unfollow users on your site, and receive there messages and status updates in realtime XD. And I can actually visualize these updates in a heat map ;) [08:52] V1: All what i'm missing now is direct messages and the clone is complete ;) [08:52] KungFuHamster has joined the channel [08:52] HAITI: v1: [08:52] V1: elo [08:53] markwubben has joined the channel [08:53] _announcer: Twitter: "Nice comparison of #ringojs and #nodejs http://bit.ly/dvRJV0" -- Chris Zumbrunn. http://twitter.com/zumbrunn/status/23993021124 [08:54] paulwe_ has joined the channel [08:56] teemow has joined the channel [08:56] _announcer: Twitter: "From deep node.js little interest had been hanging on Twitter first time entries to come back to the stream. http://d.hatena.ne.jp/sfujiwara/20100621/1277090751" [ja] -- jean. http://twitter.com/jean926/status/23993140767 [08:59] _announcer: Twitter: "Should I laugh or cry? http://journal.paul.querna.org/articles/2010/09/04/limiting-concurrency-node-js/" -- William Louth. http://twitter.com/williamlouth/status/23993302652 [08:59] Zuardi1 has joined the channel [09:00] xla has joined the channel [09:00] sideshowcoder has joined the channel [09:02] adambeynon has joined the channel [09:05] ntelford: anyone here the maintainer of this? http://github.com/fictorial/redis-node-client [09:05] bradleymeck: hes not in here right now, but he is sometimes [09:06] Tim_Smart: ntelford: There is a apparently nicer redis client... [09:06] ntelford: o rly? [09:06] Tim_Smart: s/nicer/a nicer/ [09:06] Tim_Smart: http://github.com/bnoguchi/redis-node [09:07] Tim_Smart: Supports multi transactions etc. [09:07] ntelford: cool [09:07] wmealing has joined the channel [09:08] ntelford: although tbh, we're only using a very small subset of commands that are all supported by redis-node-client [09:08] HAITI: Tim_Smart: [09:09] Tim_Smart: ntelford: I have used redis-node-client a bit, and poked around the source. What were you going to ask fictorial? [09:09] zomgbie has joined the channel [09:11] wmealing: can you embed V8 in C ? i only ever see people doing it in C++ [09:11] Tim_Smart: wmealing: Not sure, but V8 is implemented in C++ [09:12] Tim_Smart: You can definitely embed C into C++ though. [09:12] wmealing: ACTION nods [09:12] wmealing: the problem is I don't know C++ [09:12] HAITI: wmealing [09:12] wmealing: that is me. [09:13] Tim_Smart: HAITI: Are you looking at the wargamez map? [09:13] Tim_Smart: Oh, it is down :/ [09:14] Tim_Smart: mape: >.> [09:14] h77777 has joined the channel [09:15] HAITI: I [09:15] bradleymeck: vmealing, you can use c in c++ just fine, but the v8 api is strictly c++ w/ classes and namespaces etc [09:15] ntelford: Tim_Smart: I've identified a race-condition that I believe was a total mistake [09:15] HAITI: NETCAT [09:15] ntelford: line 464 "return false;" should be "return true;" [09:15] h77777: hah [09:16] _announcer: Twitter: "I still need to rebrand my Node.js Knockout entry from Speedo... Something better.. If you have suggestions let them rip http://speedo.no.de" -- Arnout Kazemier. http://twitter.com/3rdEden/status/23994088976 [09:16] bradleymeck: for the most part if you learn about destructors and namespaces you can do v8 without knowing the rest of c++ wmealing [09:17] wmealing: ok [09:18] HAITI: ON+IRC+WITH+NETCAT+SORRY [09:18] christophsturm has joined the channel [09:18] Tim_Smart: Heh that would be interesting... chatting on IRC with telnet [09:19] HAITI: ITS+WACKY [09:19] adambeynon has joined the channel [09:19] wmealing: bradleymeck: obviously i'm asking here because the end game is to write a module to talk to this C library in node [09:19] bradleymeck: !tweet @3rdEden BrowserEye [09:20] h77777 has left the channel [09:20] Tim_Smart: wmealing: Yeah you would have to use C++ to do that. [09:20] V1: BrowserEye? [09:21] Tim_Smart: ntelford: I think it should be return false, but I could be wrong. Why return true? [09:21] bradleymeck: wmealing, im just saying you dont really need to know much about c++ just some very very basic concepts for v8 [09:21] V1: bradleymeck: Seems someone already registered that: http://browsereye.com/ [09:22] bradleymeck: heh [09:22] wmealing: ACTION nods [09:23] hellp has joined the channel [09:23] wmealing: just hope that i'm smart enough, guess we'll see [09:23] bradleymeck: Handle , Handle <- templated types , String::New(...) <- namespaces. You can get by without the rest if you are just working a c library, but for the love of god, cleanup your garbage with Persistent::MakeWeak [09:27] adambeynon has joined the channel [09:29] ntelford: Tim_Smart: the comment in the middle of the function states that it should return true if the reply is a message, regardless of whether it was handled [09:29] ntelford: and there's a check to ensure that the reply is a message further back, which returns false [09:30] ntelford: at line 464, the only way it can get there is if somehow, the callback is no longer a valid function [09:30] ntelford: which should still return true, because the reply was a message (it just wasn't handled) [09:30] ntelford: if it returns false, then line 390 erroneously treats a published message as a reply to a command [09:31] Tim_Smart: No callback === no way to handle the message? [09:31] ntelford: and it bombs out when trying to find the command [09:31] ntelford: Tim_Smart: the return value isn't anything to do with the handling of the message [09:31] ntelford: simply whether the reply is a valid message at all [09:31] ntelford: (or at least, it's meant to be) [09:31] Tim_Smart: Oh right, well I haven't really look at all yet. [09:32] Tim_Smart: *looked [09:32] Tim_Smart: I haven't used pubsub yet :p [09:35] zemanel has joined the channel [09:35] kennon has joined the channel [09:38] bsstoner has joined the channel [09:38] [[zz]] has joined the channel [09:44] gthb has joined the channel [09:52] ThePub has joined the channel [09:54] V1: Does anyone know a database than can do allot, allot of writes? [09:54] sts193 has joined the channel [09:54] FuzzYspo0N: all of them? [09:54] SamuraiJack_ has joined the channel [09:55] V1: I need something to record, my realtime socket events.. So there will a idiot amount of writes to the database [09:55] sts193: This might sound stupid.. but how do make my node app serve to the web instead of through localhost:8000? [09:56] FuzzYspo0N: sts193: put it on a webserver [09:56] V1: FuzzYspo0N: almost any sql based database would already be fucked with the amount of data I will be sending [09:56] FuzzYspo0N: V1: i dunno, your info is super vague, and by the sounds of it you havent tried any yet, just assuming :) [09:56] sts193: It's on my web server... Do I have to run it on top of apache or something similar? I thought it did its own thing? (sorry, I'm really new to this) [09:56] FuzzYspo0N: so, choose one, and try it. [09:57] FuzzYspo0N: sts193: if you are running it on your own machine, you need your external IP address to let people view it. [09:57] MrTopf has joined the channel [09:57] FuzzYspo0N: sts193: or, a DNS pointing to your external IP, which i highly doubt any of which you have. [09:57] sts193: I have something [09:57] sts193: through No-IP [09:58] sts193: which routes to my IP address [09:58] sts193: And I forwarded some ports, 80 and 22 [09:58] FuzzYspo0N: so run node on port 80? [09:58] sts193: I'm completely lost though [09:58] sts193: But do i provide a host? [09:58] V1: FuzzYspo0N: My current mySQL setup on a 16 core server can handle about 30.000 updates, with replication this is about 10.000. I'm aiming for something that will get me atleast to 50.000 updates per second [09:58] sts193: Because if I don't it will just run through localhost [09:59] FuzzYspo0N: V1, not sure then. I have no metrics on that sort of data throughput sorry :) [09:59] V1: FuzzYspo0N: ohkaay [10:00] FuzzYspo0N: sts193: if you listen on port 8000, it will be listening on port 8000. Meaning if you have a dns pointing to your IP, like mytestserver.com:8000 [10:00] FuzzYspo0N: it should work. [10:00] sts193: aha! [10:00] sts193: port 80 worked, but it's still through localhost [10:00] FuzzYspo0N: or, 162.93.43.3:8000 <- whatever your address is [10:01] sts193: howcome I am able to view it from other computers then? [10:01] ntelford has joined the channel [10:01] FuzzYspo0N: sts193: are you on a LAN? and can view it from another lan pc? [10:02] sts193: yes [10:02] sts193: and now port 8080 works as well [10:02] FuzzYspo0N: http://www.whatsmyip.org/ [10:02] sts193: interesting [10:02] sts193: i am accessing it through my IP [10:02] sts193: not the router address [10:02] FuzzYspo0N: that should show you the gateway/router ip address, if you give that IP to someone else to test [10:02] sts193: ok [10:02] FuzzYspo0N: they can try that ip:8000 [10:02] FuzzYspo0N: and it should work. [10:03] path[l] has joined the channel [10:03] zomgbie has joined the channel [10:03] sts193: does the app have to live in /var/www/ ? [10:03] FuzzYspo0N: lol, node is a server, right :P [10:03] sts193: :) [10:03] sts193: Thanks! [10:03] FuzzYspo0N: it should already be listening if you can view it. [10:03] FuzzYspo0N: just try that ip the site gives , and port nunmber you are listening on [10:04] FuzzYspo0N: if you see the site, then its working. [10:04] sts193: yup it works [10:04] sts193: awesome [10:04] FuzzYspo0N: yea, so point a DNS at that IP if that IP is static [10:04] sts193: now off to do some more work, thanks again! [10:04] FuzzYspo0N: cool, np [10:04] ThePub has joined the channel [10:05] omarkj has joined the channel [10:06] ntelford has joined the channel [10:07] mies has joined the channel [10:14] ahc has joined the channel [10:18] christophsturm has joined the channel [10:19] _announcer: Twitter: "downloaded http://visionmedia.github.com/masteringnode/ , planning more nodejs funtimes this weekend. w00t" -- Carl. http://twitter.com/carlmw/status/23997145484 [10:20] zemanel has joined the channel [10:23] Ezku_ has joined the channel [10:26] mr-rock has joined the channel [10:33] _announcer: Twitter: "Faye: Simple pub/sub messaging for the web http://bit.ly/9SC34M (Node.js Server or Ruby Server)" -- Kyungwook, Park. http://twitter.com/kyungw00k/status/23997884922 [10:35] Ori_P has joined the channel [10:39] ntelford has joined the channel [10:40] ngw has joined the channel [10:42] _announcer: Twitter: "[Node-mysql-libmysqlclient] http://bit.ly/dm684H Oleg Efimov - Fix conn.connectErrorSync () -> conn.connectError in JS interface test" [de] -- Oleg Efimov. http://twitter.com/SannisDev/status/23998323532 [10:45] hassox has joined the channel [10:45] V1: Does anybody happen to know a way to css selector string based on HTML element that receive from a function call? [10:46] V1: to create a css selector string* [10:50] paulwe has joined the channel [10:51] dnolen_ has joined the channel [10:53] mape: V1: just look for stuff that is good for uniqueness? [10:53] mape: Seems more robust then something like xpath [10:53] V1: I'm currently thinking of doing a while( node.parentNode ) css += " " + node.parentNode.nodeName; node = node.parentNode; [10:54] mape: like trying to find if the element has an id, or if you can find a close parent with an id and get a specific position in relations to that [10:54] mape: more or less xpath? [10:54] V1: yeh, [10:54] mape: And a lot slower then finding stuff by id [10:55] mape: V1: looked at selectorgadget? [10:55] V1: I need this to send out the correct document.createEvents in my interface [10:55] V1: selectorgadget? [10:55] mape: V1: hehe yeah been fiddling with the same [10:55] V1: Never head of it [10:55] mape: V1: http://www.selectorgadget.com/ [10:55] V1: http://www.selectorgadget.com/ [10:55] V1: :D [10:55] V1: Your google powers > mine [10:56] Nohryb has joined the channel [10:56] mape: This tries to find patterns that match and not a specific one [10:56] mape: but might be handy to take a look at [10:56] christophsturm has joined the channel [10:57] christophsturm has joined the channel [10:57] V1: Yeah it looks good enough, thanks for the heads up [10:58] ThePub: just use jquery and selectors? :) [10:58] christophsturm has joined the channel [10:58] mape: ThePub: what? [10:58] aubergine_ has joined the channel [10:59] V1: ThePub: I need reverse engineer elements to a unique css selector not find elements based on css selectors [11:00] bsstoner has left the channel [11:00] digitalsanctum has joined the channel [11:00] dmcquay has joined the channel [11:06] V1: Already found a good way [11:06] V1: Thanks again for info mape [11:06] mape: V1: np :) [11:06] V1: My hack is really dirty but it works :p [11:06] mape: how did you solve it? [11:10] zorzar has joined the channel [11:11] hassox: hey guys [11:11] hassox: anyone from the socketio team here? [11:11] V1: mape: I'll post a gist in a second [11:11] V1: one more small bug to solve [11:13] jspiros has joined the channel [11:14] dmcquay has joined the channel [11:16] wakawaka has joined the channel [11:17] aubergine has joined the channel [11:22] phil- has joined the channel [11:23] V1: mape: I'll post it later, got to push a new ab-test online first ;p [11:23] Nohryb has joined the channel [11:25] mape: V1: kk [11:25] Nohryb has joined the channel [11:30] _announcer: Twitter: "it's amazing to see so much people are already working with/on #nodejs" -- Christiaan VdPoel. http://twitter.com/christiaanvdp/status/24000922958 [11:30] _announcer: Twitter: "If you look at the small counters of views long enough, you can see them live http://alt-i.fr/ increment # # nodejs powa" [fr] -- Hadrien Lanneau. http://twitter.com/hadrienl/status/24000941138 [11:31] Throlkim_ has joined the channel [11:31] _announcer: Twitter: "any Belgium developers working with/on #nodejs?" -- Christiaan VdPoel. http://twitter.com/christiaanvdp/status/24000997004 [11:32] maushu has joined the channel [11:36] stagas_ has joined the channel [11:37] sideshowcoder has joined the channel [11:37] jetienne has joined the channel [11:39] _announcer: Twitter: "I have been thinking about how cool Node.js is... and then I remembered that I did all of this shit in Twisted 5 fucking years ago." -- Calvin Spealman. http://twitter.com/ironfroggy/status/24001475585 [11:40] FuzzYspo0N: heh [11:41] mape: All this shit? [11:43] freeall: Installed mongodb and mongoose with npm. I run the example here, http://gist.github.com/raw/400207/4244821708d049abdb977565149326c59227dc97/mongoose - but I get TypeError: Object # has no method 'noSchema' [11:43] freeall: Anyone know why? [11:43] xraid has left the channel [11:44] omarkj: What do you guys use for logging? [11:44] omarkj: If anything special ? [11:44] freeall: omarkj, me? [11:44] omarkj: Just a general question. [11:44] freeall: ahh, ok [11:45] omarkj: So yes, also you. :) [11:45] freeall: console.log :) [11:45] omarkj: Now I'm using something I hacked together, not that happy with it. [11:46] freeall: Should probably write to memory and then store it once in a while, when the cpu load isn't too heavy [11:46] _announcer: Twitter: "[node-mysql-libmysqlclient] http://bit.ly/9fDGhV Oleg Efimov - Include Nodelint.JS config for project linting" -- Oleg Efimov. http://twitter.com/SannisDev/status/24001905686 [11:47] aliem has joined the channel [11:47] omarkj: freeall: Depends on the importance of the logs I guess, but a good point. [11:48] freeall: omarkj, sure, that, but more how heave the load on your site will be [11:48] omarkj: It's not a webpage, but I get your point. [11:48] _announcer: Twitter: "Just installed CouchDB on my Android. Cool. Now I need node.js and php ;)" -- tobmaster. http://twitter.com/tobmaster/status/24002007138 [11:49] mikew3c has joined the channel [11:50] xraid has joined the channel [11:51] fermion has joined the channel [11:52] xraid has left the channel [11:53] okuryu has joined the channel [11:54] xraid has joined the channel [11:54] freeall: nevermind about my question. It seems that Mongoose no longer supports noSchema(). Would be nice if that was shown in the docs instead of a "it's very good to have this feature ... noSchema" [12:00] anne_a has joined the channel [12:00] anne_a: hello [12:00] FuzzYspo0N: yes [12:01] freeall: como estas? [12:01] anne_a: I`m looking for some examples of use raphaeljs with node.js (svg/graph) [12:01] anne_a: Anybody know some? [12:01] sideshowcoder has joined the channel [12:03] dipser has joined the channel [12:04] _announcer: Twitter: "[Node-mysql-libmysqlclient] http://bit.ly/dxEPEV Akzhan Abdulin - nodelint.js Fix" [ms] -- Oleg Efimov. http://twitter.com/SannisDev/status/24003008544 [12:06] zomgbie has joined the channel [12:09] d0k has joined the channel [12:12] _announcer: Twitter: "How to put Ubuntu lucid node.js http://bit.ly/d8FpZ8" [ja] -- Hirohisa Mitsuishi. http://twitter.com/bongole/status/24003562096 [12:13] Nohryb has joined the channel [12:15] crohr has joined the channel [12:16] thisj has joined the channel [12:17] [[zzz]] has joined the channel [12:19] thisj: hi, what is the cleanest way to interupt a http.client connection in progress? Closing the socket, inside or does the http.Client have a cancel function (doesn't show in the documentation)? [12:20] _announcer: Twitter: "pubsub using node.js + communication between browsers + jquery + magic moving boxes http://github.com/gleicon/pubsub_ws /cc @giovanigenerali" -- gleicon. http://twitter.com/gleicon/status/24004077400 [12:20] Egbert9e9 has joined the channel [12:25] herbySk has joined the channel [12:25] nerdEd has joined the channel [12:31] c4milo has joined the channel [12:31] nerdEd has joined the channel [12:37] wmealing has left the channel [12:40] ker2x has joined the channel [12:40] ker2x: after somes days of syslog parsing and 3 millions insert in mongodb : [12:40] ker2x: Scavenge 9.6 -> 6.1 MB, 1 ms. [12:40] ker2x: Mark-sweep 10.3 -> 4.3 MB, 1 / 16 ms. [12:41] ker2x: no more memory leak \o/ [12:42] FuzzYspo0N: gj [12:43] joshowens has joined the channel [12:45] genbit1 has joined the channel [12:45] aubergine has joined the channel [12:46] rwaldron has joined the channel [12:46] boaz has joined the channel [12:46] _announcer: Twitter: "node.js compiles without a problem on the mac. sweet." -- Aditya Gore. http://twitter.com/aditya_gore/status/24005941513 [12:46] bcg has joined the channel [12:47] figital has joined the channel [12:51] _announcer: Twitter: "Trying to finish up my NodeJS work today so I can start on next weeks presentation while I'm in Sunnyvale." -- Dav Glass. http://twitter.com/davglass/status/24006315375 [12:56] dantalizing has joined the channel [12:56] dantalizing has joined the channel [12:57] sonnym has joined the channel [12:59] herbySk1974 has joined the channel [13:00] kriszyp has joined the channel [13:00] sonnym has joined the channel [13:02] ben_alman has joined the channel [13:03] Nohryb has joined the channel [13:03] gerred has joined the channel [13:04] TrisMcC has joined the channel [13:05] Ori_P has joined the channel [13:05] niemeyer has joined the channel [13:05] sideshowcoder has joined the channel [13:05] _announcer: Twitter: "node-simple-models - ORM-ish module I've been using for some #nodejs projects GitHub http://bit.ly/97owGc" -- Brian Stoner. http://twitter.com/bsstoner/status/24007370622 [13:09] sveimac has joined the channel [13:09] elliottkember has joined the channel [13:12] ahc has joined the channel [13:12] aubergine_ has joined the channel [13:16] adambeynon has joined the channel [13:17] jherdman has joined the channel [13:17] pgriess has joined the channel [13:17] pdelgallego has joined the channel [13:18] bradleymeck has joined the channel [13:19] zapnap has joined the channel [13:22] evanpro has joined the channel [13:24] dmcquay has joined the channel [13:24] mies has joined the channel [13:24] TheEnd2012 has joined the channel [13:25] ehd__: http://news.ycombinator.com/item?id=1675131 [13:26] Esteth has joined the channel [13:26] ehd__: let's do node on iphone, too [13:26] _announcer: Twitter: "Anyone working on Node.js on iPhone? http://news.ycombinator.com/item?id=1675131" -- Stephan Seidt. http://twitter.com/evilhackerdude/status/24009010118 [13:26] _announcer: Twitter: "Wow there are loads of modules available for NodeJS http://bit.ly/9JzUKP" -- A Rees. http://twitter.com/adrees/status/24009010864 [13:27] ceej has joined the channel [13:27] sideshowcoder has joined the channel [13:28] sideshowcoder has joined the channel [13:33] _announcer: Twitter: "collectiveToDoList.push(function () { nodejs.embedInto(ObjectiveC) })" -- Malte Ubl. http://twitter.com/cramforce/status/24009530093 [13:33] _announcer: Twitter: "If you have time tomorrow with jQuery.Proxy node.js in OOP that did it to test how much you can Poi." [ja] -- fu_su. http://twitter.com/fu_satou/status/24009556387 [13:35] ceej has joined the channel [13:37] ngw has joined the channel [13:38] Ori_P has joined the channel [13:43] olauzon has joined the channel [13:43] V1: mape: http://gist.github.com/571870 my element to "css3" converter [13:44] davidwalsh has joined the channel [13:53] robotarmy has joined the channel [13:56] pydroid has joined the channel [13:56] voodootikigod_ has joined the channel [13:57] _announcer: Twitter: "Getting Started with node.js on Windows: http://bit.ly/aKl1p2" -- Josh Schultz. http://twitter.com/veryfancy/status/24011510743 [14:00] mape: V1: neat [14:00] mape: although there are surely some edge cases, crazy people multiple of the same id and whatnot [14:01] V1: mape: True about that, i might need to "index" all elements than :p [14:02] V1: it might actually be easier to just get do a getElementsByTagName on the same nodeName and return correct index.. Now i think of it... [14:02] c4milo: http://confreaks.net/videos/282-lsrc2010-real-software-engineering [14:02] _announcer: Twitter: "pretty hunger. editing some fla's. Considering getting nwn2. Thinking about my node.js work" -- Thomas. http://twitter.com/tjgillis/status/24011910744 [14:02] mape: V1: I think the finding parent id and then xpathish down from there might be a better solution [14:03] mape: then it would be more flexible for modules of the page to move around and still not break to bad [14:03] _announcer: Twitter: "@ Rainux a ruby on the mongodb framework (perhaps you called the library), but the resentment of a framework for the article can not be used to piss in? Such as Javascript and Node.js Gotchas complaints about articles." [zh-CN] -- 爱德华·纽盖特 . http://twitter.com/zhenning/status/24011992862 [14:03] V1: mape: But not all elements has id's [14:03] kaichen has joined the channel [14:03] mape: V1: For sure, but if there is a parent that has then it is better [14:04] V1: yeh [14:04] mape: #parent > li > span:nth-child(3) rather then body>div>div>div>ul>li>span:nth-child(3) [14:04] mape: then you can move #parent around and it would still work [14:04] mdg has joined the channel [14:04] mape: as long as the chain withing the parent relationship stays intact [14:05] nerdEd has joined the channel [14:05] V1: I had some issues with nth-child as I also check on classNames. and a ele.classname:nth-child(3) doesn't seem to work properly [14:05] mape: hmm [14:05] _announcer: Twitter: "If you're dying to play with Node.js, but unfortunately it's Windows user, do not cry anymore, his turn came: http://bit.ly/at5cdh" [pt] -- Leandro Silva. http://twitter.com/codezone/status/24012191507 [14:06] mape: #parent > :nth-child(4) ? [14:06] softdrink has joined the channel [14:07] noahcampbell has joined the channel [14:11] _announcer: Twitter: "using Mozilla Rhino for the first time and starting to like the idea of JavaScript on servers/desktop. should try node.js soon.." -- Miller Medeiros. http://twitter.com/millermedeiros/status/24012680161 [14:11] pydroid has joined the channel [14:12] Sembiance: morning :) [14:13] mu-hannibal has joined the channel [14:14] trotter has joined the channel [14:15] _announcer: Twitter: ""@codebetter; Getting Started with Node.js on Windows" by @MattPodwysocki #tech #javascript http://bit.ly/bOJyyv" -- Elijah Manor. http://twitter.com/elijahmanor/status/24013002438 [14:15] testing has joined the channel [14:17] _announcer: Twitter: "Setting up Node.js in nginx – web technologist http://bit.ly/8YvWzR" -- masahiro hayashi. http://twitter.com/masahiroh/status/24013188793 [14:20] Yuffster has joined the channel [14:20] V1: mape: Didn't try that out yet. But I now got DOM event emulation working :D! [14:21] V1: Really awsome :D [14:21] mape: V1: nice, bring the source ;) [14:21] V1: It's still the same css3 path finder [14:21] mape: Well more the emulation part [14:22] mape: V1: Was wondering, when using your project, will you actually emulate everything? [14:22] V1: http://gist.github.com/571923 that's my event emulation for clicks atm [14:23] mape: V1: So if I am a mail service ala mail chimp, I follow a user and he is creating a newsletter, press "send" that does an ajax thingy that sends a mail to 30k people [14:23] mape: Would it suddenly be sent twice if someone was watching and emulating events? [14:23] rwaldron_ has joined the channel [14:23] V1: mape: That would probably be the case at this point. But I still need to build in a "options" panel [14:24] mape: Yeah [14:24] mape: Might be a pita for big sites though [14:24] mape: Might also be easier to just have a watch cursor mode [14:24] V1: so even the events can be turned off and on. But the amount event's that i'm going to emulate is still a point of thought.. All mouse events, hovers, focus, blur, double click, key presses. [14:24] mape: yup [14:25] mape: any way to emulate the css hover? Or would you have to regexreplace the css and add classes on mouseover? [14:25] V1: You can emulate the browser hovers [14:25] mape: Handy [14:25] V1: instead of "click" event you just fire 2 events, a mouseover, and a mouse out [14:26] mape: but would that trigger a:hover{color: red;} ? [14:26] V1: yes [14:26] mape: hmm k [14:26] tmpvar has joined the channel [14:26] V1: I was able to emulate the :hover event on the big signup button on the speedo home page [14:27] V1: but having mouseover and mouseout event will probably make things really heavy on the client side [14:27] mape: hmm yeah [14:28] V1: So I might need to do some browser sniffing there as I don't IE6 users, and users that don't support native sockets or flash sockets. Because a shit load of events will be send to the server [14:28] aubergine has joined the channel [14:28] mape: hehe yeah [14:29] _announcer: Twitter: "Understanding Node.js: http://debuggable.com/posts/understanding-node-js:4bd98440-45e4-4a9a-8ef7-0f7ecbdd56cb" -- Hugo Lopes Tavares. http://twitter.com/hltbra/status/24014218759 [14:29] bradleymeck has joined the channel [14:29] cbrake: is there anyway to access environment variables in node.js? [14:30] Sami_ZzZ has joined the channel [14:30] rob__ has joined the channel [14:30] V1: process.evn? [14:30] aubergine has joined the channel [14:31] cbrake: V1: yes, thanks! [14:31] nwhite has joined the channel [14:33] _announcer: Twitter: "Mastering Node: Open source eBook for Node.js http://bit.ly/bIS4tm" -- Peter C. Host. http://twitter.com/PeterHost/status/24014592379 [14:34] PyroPeter has joined the channel [14:35] bradleymeck: so all this talk on eventemitters and errors / sync behavior, what do people think [14:35] altamic has joined the channel [14:36] FuzzYspo0N: its a lot to read :p [14:36] bradleymeck: i would be fine with emit being async and having an emitSync method personally. not sure what to do about errors in constructor though [14:37] temp01 has joined the channel [14:39] loincloth has joined the channel [14:42] bradleymeck: cause if you make errors in construction defer to the event listener you have to use a try catch, or be ready for all possible input (wrong types even). [14:42] rwaldron_ has joined the channel [14:43] rwaldron_ has joined the channel [14:43] rwaldron_ has joined the channel [14:43] rwaldron_ has left the channel [14:44] _announcer: Twitter: "high-perf JS port of AS3's ByteArray http://bit.ly/9VmQvM - Node.js has Buffer but this is useful browser-side" -- Don Park. http://twitter.com/donpark/status/24015568117 [14:44] dilvie has joined the channel [14:45] elijah-mbp1 has joined the channel [14:45] BrianTheCoder has joined the channel [14:46] _announcer: Twitter: "@philo23 Thanks, but this is for node.js I originally did a quick google for JS trim & found a load of blogs with custom imp hence confusion" -- Matt. http://twitter.com/BRMatt/status/24015701034 [14:47] _announcer: Twitter: "@renshao nodejs sounds so familiar? what's it?" -- Liang Zhao. http://twitter.com/akivaz/status/24015797645 [14:48] EyePulp has joined the channel [14:48] temp01 has joined the channel [14:50] atourino has joined the channel [14:51] JohnnyL has joined the channel [14:51] EyePulp: yo ho ho [14:51] matschaffer has joined the channel [14:51] mape: Wa ha ha? [14:52] jetienne: (with an evil tone ?) [14:52] mape: Depends on the context [14:52] jetienne: oh [14:52] EyePulp: Mu ha ha - implicit evil tone [14:52] FuzzYspo0N: hmm [14:53] _announcer: Twitter: "- @DanielEricLee Yeah. Presenter said: "I use Rails to build things fast. I use Node.js to build fast things."" -- Nathan Smith. http://twitter.com/nathansmith/status/24016312863 [14:53] jetienne: google open a dev center in france, and suddently google bomb on french president disapears... :) [14:54] jetienne: i dont like french president but i like google. im all confused now [14:55] njero has joined the channel [14:56] bradleymeck has joined the channel [14:56] skampler has joined the channel [14:58] rnewson has joined the channel [14:58] zapnap has joined the channel [14:58] philippbosch has left the channel [15:03] stagas__ has joined the channel [15:05] jelveh has joined the channel [15:06] altamic has joined the channel [15:06] stagas: anyone working on a mm game module? [15:06] bradleymeck: creationix had something a while ago [15:07] mape: stagas: rpg/fps? [15:07] bradleymeck: i know there was on on ajaxian a month or so ago [15:07] stagas: for the browser [15:07] pydroid has joined the channel [15:07] zith_: what is mm? [15:07] stagas: mape: physics states mostly [15:07] mape: http://www.dextrose.com/en/projects/aves-engine [15:08] mape: stagas: hmm then I haven't seen much [15:09] c4milo1 has joined the channel [15:09] stagas: zith: massively multiplayer [15:09] zith_: ah, i see [15:09] bradleymeck: bleh, js is bad at doing math so might want to find/build a binding to a c/c++ lib [15:10] c4milo has joined the channel [15:10] stagas: would there be any interest for a module like that? I'm thinking of making one [15:10] stagas: I have most of the stuff laid already [15:11] stagas: but I'm having thoughts on how the api should look like [15:11] zith_: i was thinking about the same thing earlier [15:11] c4milo: bradleymeck: isn't it possible to write it in plain javascript ? It will helpful to be able to use it from browser and server [15:11] bradleymeck: idk, game physics is pretty specific, im sure people would use it if it supported enough. maybe flash game engines would have some answers [15:11] _announcer: Twitter: "@ Davidetarasconi Make good good. It is rumored that the future could become even server-side language (see node.js)." [it] -- Nicola Junior Vitto. http://twitter.com/njvitto/status/24017943745 [15:12] bradleymeck: c4milo it is possible, but float math is :( [15:12] tj has joined the channel [15:12] nefD: stagas: I'd be interested [15:13] c4milo: bradleymeck: did you test with BigDecimal.js ? [15:13] c4milo: or dojox.math ? [15:13] nefD: stagas: Though, i've kinda hobbled together a decent amount of the necessary functionality over time on my own.. It'd still be cool to tinker with a more solid solution [15:13] zith_: is it even possible to have javascript use the SIMD instruction set and such? [15:13] zith_: that's a pretty big performance boost for vector math [15:13] bradleymeck: i didnt test with anything, i tried to do matrix operations on 4x4s in browser with Arrays of Arrays [15:14] c4milo: bradleymeck: http://stackoverflow.com/questions/287744/good-open-source-javascript-math-library-for-floating-point-operations [15:14] danielzzz has joined the channel [15:15] c4milo: bradleymeck: please let me now if you have success with those libraries. I'm interested to know it [15:15] danielzzz: hi, one quick question: is it possible to get node rps somehow? [15:15] bradleymeck: im a couple months off that project haha [15:15] bradleymeck: routes per second of what [15:15] danielzzz: ticks per second [15:16] danielzzz: I remember there was an idea to expose something like this [15:16] _announcer: Twitter: "node.js is up and working :) just waiting for you @tiagocorrea" -- Éber F. Dias. http://twitter.com/eber_freitas/status/24018337121 [15:16] bradleymeck: var oldtick = process._tickCallback; process._tickCallback = function() {blah blah} ? [15:17] danielzzz: hmm, not really - with this I think I should count it myself [15:17] dgathright has joined the channel [15:18] danielzzz: I can't see anything what would look like this in process [15:19] _announcer: Twitter: "Not everyone can use node.js heroku in or not. ." [ja] -- jugyo [十行]. http://twitter.com/jugyo/status/24018567502 [15:19] bradleymeck: what are you trying to get info on [15:19] bradleymeck: ticks per second means other peoples callbacks etc will be counted [15:20] bradleymeck: well, module's [15:21] _announcer: Twitter: "@alex_young NEW NODE.JS NEWS NEW!" -- HELLO I AM RUBY BOTS. http://twitter.com/elotente/status/24018797590 [15:21] danielzzz: I would like to know how many loops node executes per second [15:23] daniellindsley has joined the channel [15:24] jetienne: danielzzz: bogomips [15:24] ph^ has joined the channel [15:25] skampler has joined the channel [15:25] danielzzz: jetienne, ? [15:25] _announcer: Twitter: "Sucks I was completely ignored by @heroku for nodejs beta access. You could atleast tell me "not accepting people" or something." -- Jayme Davis. http://twitter.com/jaymed/status/24019152278 [15:25] nolan_d has joined the channel [15:26] jetienne: danielzzz: this is the name of this "bench" on linux kernel. but as the name suggests this is a bogus metric [15:26] danielzzz: ah, ok - thx for the info [15:26] jetienne: danielzzz: with modern js, emptyloop get optimised out [15:26] jetienne: for(var i = 0; i < 10000000000000000; i++); is instantaneous [15:26] danielzzz: well, I just need it to have some extra info [15:27] bradleymeck: setInterval(function(){var x=1},0) <- [15:27] danielzzz: but I will survive if I don't have it [15:27] danielzzz: it's just for a "server status" page [15:27] danielzzz: I remember ry talking about this long time ago [15:28] bradleymeck: danielzzz im writing up something, the metric itself is rather useless but give me a sec [15:28] danielzzz: so I just wondered if it got implemented [15:28] jetienne: euhh mybad... google closure doesnt optimize empty loop [15:28] danielzzz: bradleymeck, great, thx [15:28] aheckmann has joined the channel [15:28] danielzzz: ok [15:28] bradleymeck: jetienne thats cause the var is not in its own scope :( [15:28] bradleymeck: damn you js spec! [15:29] jetienne: bradleymeck: good catch. in a function(){} it is optimized [15:29] wattz: Sometimes i forget how much fun django is to dev in (not saying it's the greatest, just fun) [15:30] pengwynn has joined the channel [15:30] wattz: django for the web app and node for the webservices [15:30] wattz: now this is a godo day [15:30] wattz: good [15:30] _announcer: Twitter: "Someone. Anyone. Get me node.js on the iPhone." -- Steve Streza. http://twitter.com/SteveStreza/status/24019595237 [15:30] caolanm: wattz: stop making me jealous! [15:31] jetienne: i would be interested by a comparison between java and nodejs ... like ram+cpu [15:31] mape: jetienne: doing what? [15:31] jetienne: mape: not sure :) [15:31] wattz: caolanm: i have to say it.... up until today i was doing php on windows........... [15:32] caolanm: ok, now I don't feel so bad ;) [15:32] bradleymeck: jetienne as a note, async io in java is not at all optimized [15:32] caolanm: wattz: sounds like this new project is quite an improvement! [15:32] jetienne: this is more about the android case. even with last google froyo java engine is supposed to be much faster. is it on part with nodejs ? [15:32] mape: bradleymeck: well it doesn't have to be async? If it performs as well [15:32] bradleymeck: it doesnt [15:32] jetienne: bradleymeck: yep i guess so likely more memory [15:33] wattz: caolanm: yeah, working for a big company is fun because i can slip cool shit under radar [15:33] qFox has joined the channel [15:33] bradleymeck: mape, its just a different beast, should make the tests exploit the optimized paths of each [15:33] jetienne: but yeah how to compare this ... :) [15:34] mape: bradleymeck: for sure, so either you choose what is important or the tests are broad enough to be conclusive [15:34] mape: one is probly easier ;) [15:35] caolanm: wattz: haha, nice work ;) [15:35] femtoo has joined the channel [15:36] robinduckett has joined the channel [15:36] robinduckett: Hallo [15:36] robinduckett: :) [15:36] _announcer: Twitter: "How do I do if I node.js You know you're running on the server" [ja] -- jugyo [十行]. http://twitter.com/jugyo/status/24020107020 [15:36] bradleymeck: danielzzz => var lastTick;var tps;var oldtick = process._tickCallback; process._tickCallback = function() {tps=(tps + Date.now()-lastTick/1000)/ 2;dosomething(tps);oldtick.apply(this,arguments);};lastTick = Date.now(); [15:37] bradleymeck: it blew up my past any sane number when i ran it and hit infinity on an empty function [15:37] _announcer: Twitter: "Anyone got an Amazon ec2 micro instance running node.js yet?" -- Darren Stuart. http://twitter.com/ninjamonk/status/24020192226 [15:37] danielzzz: bradleymeck, ok, I will give it a try - thanks a lot! [15:38] _announcer: Twitter: "Check out my scriptable IRC bot written in #nodejs :D" -- haxd. http://twitter.com/haxd/status/24020269489 [15:38] _announcer: Twitter: "http://github.com/haxd/scriptable-node-irc-bot # nodejs" [lv] -- haxd. http://twitter.com/haxd/status/24020289870 [15:40] sudoer has joined the channel [15:40] zimbatm has joined the channel [15:41] JohnnyL: do you guys use git for RCS? [15:42] jtoy has joined the channel [15:42] bradleymeck: generally [15:43] jetienne: JohnnyL: this is the default standard with nodejs [15:43] ehaas has joined the channel [15:47] JohnnyL: ok [15:48] danielzzz: rcs? [15:48] bradleymeck: revision control system [15:48] Alex-SF has joined the channel [15:49] danielzzz: ah, ok [15:49] _announcer: Twitter: "today I'll be working on LAMP stuffs, JS, MongoDB, Node.JS, obj-c. I should touch design 2. What will you be working on today? #dev #coding" -- mediahack. http://twitter.com/mediahack/status/24021209167 [15:51] _announcer: Twitter: "I'm feeling pretty proud of myself for setting up the new team server. Slightly annoyed that there's no repo package for node.js, though." -- Thomas Wilburn. http://twitter.com/thomaswilburn/status/24021440507 [15:52] isaacs has joined the channel [15:53] _announcer: Twitter: "@thomaswilburn i made Node.js deb package on ubuntu repository -- http://bit.ly/bmSfck" -- Jerome Etienne. http://twitter.com/jerome_etienne/status/24021608027 [15:54] jetienne: announcer is faster than me switching the window... im finding it scary every time [15:54] amerine has joined the channel [15:55] bradleymeck has joined the channel [15:55] bradleymeck: hehe [15:56] nefD: jetienne: deb package! nice.. [15:56] jetienne: nefD: yep i keep it updated [15:58] mu-hannibal has joined the channel [15:58] bradleymeck: ugg im torn, rewriting RegExp in js so that i can have chunked regexps would be nice, but i have better ways to spend time [15:58] gerred has joined the channel [15:59] _announcer: Twitter: "@thomaswilburn yes my nodejs ppa is only for 10.04, nodejs will be available by default on 10.10. so no transition issue" -- Jerome Etienne. http://twitter.com/jerome_etienne/status/24022083036 [16:01] beawesomeinstead has joined the channel [16:02] temp02 has joined the channel [16:02] robotarmy has joined the channel [16:03] altamic has joined the channel [16:04] stephank` has joined the channel [16:04] omarkj: Anyone here using creationix1's STEP library to do parallel work ? [16:06] temp02 has joined the channel [16:06] bradleymeck: i use it on _frankie, its peppered through various work stuff [16:06] deepthawtz has joined the channel [16:07] omarkj: Okay. Had any problems with not the results from both callback ? [16:07] omarkj: I'm using it to query a database, I see it queried twice (so, correct), but the second argument into the callback is undef.. [16:08] gerred has joined the channel [16:08] Sembiance: omarkj: I am, I LOVE 'step' [16:08] omarkj: I'm a fan, but having this problem. [16:09] Sembiance: omarkj: best approach I've seen so far [16:10] bradleymeck: gist code? [16:10] kjeldahl has joined the channel [16:10] nefD: anyone using ejs for templates, by chance? [16:10] mape: nefD: jup [16:10] omarkj: bradleymeck: Yup, I'm on it. [16:11] gerred has joined the channel [16:11] marshall_law has joined the channel [16:11] omarkj: http://gist.github.com/572080 [16:12] gerred has joined the channel [16:12] omarkj: I think it's rather straightforward. [16:12] nefD: mape: In my layout, im wanting to display a partial that shows a nice error box with all errors inside of it (for a form page), but it isn't always the case that there will be errors (checks the length), however, i don't like the idea of ALWAYS having to declare it in the locals.. if i dont, though, it'll throw an undefined error and refuse to render the template, even if i do a 'typeof ' test for undefined.. any suggestions? [16:12] nefD: ie: i'm wanting to show the error partial on every page if there are errors to display [16:13] tjholowaychuk: nefD: http://github.com/visionmedia/express-contrib [16:13] tjholowaychuk: has a "messages" module [16:13] nefD: i thought about maybe making a dynamic helper with the same name as the var, but im not sure if thats the best way to go (nor am i sure that the local will override the helper) [16:13] tjholowaychuk: for displaying the flash messages [16:13] c4milo has joined the channel [16:13] tjholowaychuk: if that is what you are going for [16:13] nefD: tjholowaychuk: Ah! I've seen that, but i wasn't sure what the 'flash' part meant.. [16:13] mape: nefD: locals.var? [16:14] bradleymeck: omarkj, yea, seems to be ok, im wondering though how errors are handled by Step, it might assume error first callback style so it could be eating things [16:14] guid has joined the channel [16:14] away01 has joined the channel [16:14] nefD: mape: locals.var? first time i'd seen that.. is that something I can reference from inside the template? [16:14] omarkj: bradleymeck: I'm getting one resultset, and two undefined (error is one of them). [16:14] omarkj: No error as such. [16:15] deepthawtz has joined the channel [16:15] tjholowaychuk: nefD: its just a stupid term for semi persisted messages, might alias as req.notify() or something [16:15] jakehow has joined the channel [16:15] bradleymeck: not sure creationix will probably be along in a bit though [16:15] mape: nefD: had a couple of beers but I think so. myVar == locals.myVar so doing if(locals.myVar) won't go batshit crazy, tjholowaychuk probly knows better [16:15] c4milo1 has joined the channel [16:15] nefD: tjholowaychuk: Actually, this looks like exactly what I need. thanks for the tip! im guessing (im using node-boilerplate) I can clone this in lib per the boilerplate docs.. will give it a shot [16:16] nefD: mape: Ah! Nice! Did not know that.. thanks :D [16:16] tjholowaychuk: mape: yup that should work fine :D [16:16] omarkj: bradleymeck: Okay. [16:16] mape: nefD: should check out my boilerplate, totally better ;) (at least if you want some asset management) [16:17] nefD: mape: HMMmmm..! I'll look for it under your account on github :D [16:17] joshbuddy has joined the channel [16:18] mape: nefD: pretty basic, but gives a good idea of how I use my own stuff, hopefully it is usefull, if not, let me know why and I'll (most likely) fix it :) [16:18] nefD: mape: Rad. Thanks again.. [16:19] mape: :) [16:19] Zuardi has joined the channel [16:20] bradleyprice has joined the channel [16:21] icey has joined the channel [16:21] _announcer: Twitter: "48 hours Hakkason node.js bind. http://j.mp/dxMdEd" [ja] -- チェレンコフ. http://twitter.com/cherenkov/status/24023948543 [16:21] omarkj: bradleymeck: Ah, I figured it out. [16:23] altamic has joined the channel [16:23] _announcer: Twitter: "node.js where I'm moving. Do not you just play with it bit by bit jGate." [ja] -- チェレンコフ. http://twitter.com/cherenkov/status/24024167080 [16:23] _announcer: Twitter: "Byron McCollum: jsdom + jQuery in 5 lines with node.js - blog.nodejitsu.com - scaling node.js applications one... http://ff.im/qs8u9" -- Christopher Cantu. http://twitter.com/chriscantu/status/24024173288 [16:25] vvsh has joined the channel [16:26] bradleymeck: i really wish i had say.js automatically spew out announcer's japanese translations [16:26] ben_alman has joined the channel [16:26] rwaldron has joined the channel [16:28] omarkj: Does anyone remember them name of the JS project that was all about handy prototypes to native types? [16:28] omarkj: Like arrays etc? [16:28] tjholowaychuk: which one? there has to be at least 20 [16:28] bradleymeck: underscore? prototype? mootools? [16:28] tjholowaychuk: omarkj: http://github.com/visionmedia/ext.js ? [16:29] rauchg_ has joined the channel [16:29] omarkj: I was thinking about underscore. [16:29] omarkj: Thanks. [16:30] dilvie has joined the channel [16:30] mtodd has joined the channel [16:31] guid has joined the channel [16:32] _announcer: Twitter: "Bookmark: CompilED | Node.js frameworks review: http://bit.ly/beyMri" -- jehu. http://twitter.com/jehu/status/24024902391 [16:32] _announcer: Twitter: "Bookmark: Geddy web framework for Node.js: http://geddyjs.org/" -- jehu. http://twitter.com/jehu/status/24024902921 [16:33] rnewson has joined the channel [16:33] x_or has joined the channel [16:34] Anti-X has joined the channel [16:35] boaz has joined the channel [16:36] aliem has joined the channel [16:36] Sembiance: Man, node.js popularity and media coverage is going insane lately. I wonder if this trend is going to continue [16:36] Anti-X: insane is maybe a bit of an exaggeration [16:38] FuzzYspo0N: id call it insane. [16:38] FuzzYspo0N: im seeing it on everyday blogs, and sites. Not only in mailing lists and user groups [16:38] FuzzYspo0N: thats insane [16:39] Anti-X: if the NYT had an article on how everybody should drop their servers now and install node.js, that would be insane [16:39] FuzzYspo0N: they did. [16:39] FuzzYspo0N: totally. [16:39] Anti-X: orly [16:39] benburkert has joined the channel [16:40] bpot has joined the channel [16:40] Sembiance: Anti-X: palm just announced today that they use node.js behind webos [16:41] FuzzYspo0N: that was pretty old though i thought [16:41] Sembiance: err, crap [16:41] Sembiance: I forgot I'm a few weeks behind on my news [16:41] nefD: tjholowaychuk: Hrm. So, is it incorrect to queue multiple flash messages of the same type ('error') at once? I'm getting a "TypeError: Cannot read property 'length' of undefined" when I try to assign two messages via req.flash('error', 'msg') one after another [16:41] FuzzYspo0N: heh [16:41] Sembiance: yah, it looks old :) [16:42] tjholowaychuk: nefD: nope that should be fine, I do it all the time [16:42] nefD: wierd [16:42] Sembiance: I have 195 'coding' articles on my google reader that I need to read heh. that's what happens when you go to vegas for a few days I guess ;) [16:42] tjholowaychuk: nefD: gist of the stack trace? [16:42] tjholowaychuk: nefD: oh you need sessions tho [16:42] tjholowaychuk: that is probably what is exploding [16:43] nefD: http://gist.github.com/572138 [16:43] nefD: i have sessions [16:43] figital has joined the channel [16:44] Nohryb has joined the channel [16:44] c4milo1: anybody could tell me what does fs.realpath ? [16:44] robinduckett has left the channel [16:44] tjholowaychuk: nefD: hmm ill check it out [16:45] JohnnyL: Is there anything else better than EJS? [16:45] Anti-X: c4milo1, if your path contains symbolic links, realpath changes all that to the actual path [16:46] c4milo1: resolve sym links ? [16:46] Anti-X: no, reverse [16:47] hayeah has joined the channel [16:48] tjholowaychuk: JohnnyL: there are tons of template engines out there for node [16:48] paulwe has joined the channel [16:49] tjholowaychuk: nefD: d50d2f8 of express-contrib should hopefully fix that [16:49] tjholowaychuk: if I can reproduce it and add a test that would be sweet lol [16:50] Anti-X: c4milo1, say you hav /path/to/symlink, where symlink points to /some/other/path, and then you do realpath(/path/to/symlink/somefile) that returns /some/other/path/somefile [16:50] rnewson has joined the channel [16:50] rnewson has joined the channel [16:50] Alex-SF has joined the channel [16:50] c4milo1: Anti-X: that's all ? [16:51] Anti-X: so yeah, sort of resolves symlinks, but in a path that may or may not point to an actual symlink, just contain one [16:51] Anti-X: yeah [16:51] c4milo1: ok, thanks Anti-X [16:52] Anti-X: readlink resolves the path of an actual symlink, while realpath just makes sure that any symlink in the path are resolved [16:52] c4milo1: I asked because the code of fs.realpath() scares me [16:52] noahcampbell has joined the channel [16:52] nefD: tjholowaychuk: Ah ok, i'll check it out.. do i just do a git pull or something? im only moderately skilled with git [16:53] nefD: tjholowaychuk: did a git pull.. worked! [16:53] niko has joined the channel [16:54] tjholowaychuk: nefD: k cool [16:55] nefD: tjholowaychuk: Thanks for the help.. your "the man" score raised by +1 again [16:56] nefD: your the man now dog!!11``~ [16:56] benv has joined the channel [16:57] tjholowaychuk: woot :D [16:57] deepthawtz has joined the channel [16:57] FuzzYspo0N: dawg* [16:58] cardona507 has joined the channel [16:59] benburkert has joined the channel [17:01] ctp has joined the channel [17:01] nefD: express is kinda awesome.. ive enjoyed using it so far [17:01] eisd has joined the channel [17:02] V1 has joined the channel [17:02] eisd has left the channel [17:10] malkomalko has joined the channel [17:10] aubergine_ has joined the channel [17:10] jelveh has joined the channel [17:11] jelveh has joined the channel [17:11] _announcer: Twitter: "node.js Hakkasonreberu too high." [ja] -- チェレンコフ. http://twitter.com/cherenkov/status/24028002733 [17:13] langworthy has joined the channel [17:15] adambeynon has joined the channel [17:15] Anti-X: thewatnow? [17:20] _announcer: Twitter: "As expected - a deep node.js Kiren'll understand one day." [ja] -- jean. http://twitter.com/jean926/status/24028678173 [17:20] _announcer: Twitter: "So I played a bit with node.js - very nice! But I'm not sold on async programming with callbacks (turns to nasty nesting soon enough)." -- Dominik Susmel. http://twitter.com/Keyframe/status/24028713854 [17:20] FuzzYspo0N: lol [17:21] FuzzYspo0N: i wonder how many of these people realise their dumbass comments are pushed in here, and we all chuckle at their expense. [17:21] Anti-X: hehe [17:21] nefD: lol [17:22] nefD: the nested callbacks thing is semi-legitimate, i guess.. its especially noticeable when dealing with database calls.. obviously, if they knew about step or flow, they'd have a *much* easier time :) [17:22] V1: nefD: you can just create a wrapper for it and your done [17:23] nefD: V1: Well, yeah, that too [17:23] Anti-X: refactoring in node.js is about deciding at what levels do you separate out to its own function rather than keep making anonymous callbacks [17:23] markwubben has joined the channel [17:23] tjholowaychuk: yeah that is all i do [17:23] tjholowaychuk: im not really into the whole Step / Do / whatever [17:23] nefD: well, the one spot where step has really, really shined for me is processing forms [17:23] tjholowaychuk: just complicates things [17:24] Anti-X: i just got "Twitter is over capacity"... does that happen a lot? :P [17:24] nefD: ie: i want to validate the supplied field data (are they empty? do they have disallowed characters?), verify that certain fields are unique in the database (as long as they are valid), and finally, attempt to perform a database transaction if no errors have occurred [17:25] daniellindsley: Anti-X: You should adjust your expectations. If you don't get that error from Twitter, you should be surprised. [17:25] Anti-X: aha [17:25] path[l] has joined the channel [17:25] c4milo has joined the channel [17:25] Anti-X: i assume they don't use node.js [17:25] FuzzYspo0N: rofl [17:25] FuzzYspo0N: send them a mail , clearly they are misguided [17:25] Anti-X: :D [17:26] c4milo: you could use events instead of nesting callbacks as well [17:27] tjholowaychuk: nefD: usually you handle that stuff at the model level [17:27] herbySk1974: [blasphemy] I want continuations for node.js... the speed of non-blocking i/o is fine, but the price when I must callback every piece is tiresome... [17:27] c4milo: messaging passing to call it in another way :) [17:27] c4milo: s/messaging/message/i [17:27] nefD: tjholowaychuk: you mean in an mvc sense? [17:28] vnguyen has joined the channel [17:28] V1: FuzzYspo0N: They actually have some guys over at twitter working with Node, so don't be to surprised ;) [17:30] Anti-X: i'd be surprised if they had node in prodcution at this stage [17:30] V1: Anti-X: It can be done, Plunk also runs on node.js [17:31] CIA-77: node: 03Ryan Dahl 07master * r17f3ffa 10/ (src/node.cc test/simple/test-next-tick-ordering2.js): [17:31] CIA-77: node: Call Tick() after coming out of select() [17:31] CIA-77: node: Previously we would only call it before going into select(). This is needed [17:31] CIA-77: node: to fix test/simple/test-next-tick-ordering2.js. - http://bit.ly/c6DoT5 [17:33] Anti-X: who said irc was dead!? just integrate twitter and github into it and you're fine! :P [17:35] moesian has joined the channel [17:36] amerine has joined the channel [17:37] digitals1aghetti: tjholowaychuk: what markdown libary do I need to get the markdown package to install? [17:37] tjholowaychuk: digitals1aghetti: discount [17:37] tjholowaychuk: brew install discount [17:37] jesusabdullah: Ooh, I should work on twitterage [17:37] jesusabdullah: on my bot [17:37] digitals1aghetti: hmm, i need the source version as i need to install on webfaction [17:38] tjholowaychuk: digitals1aghetti: source version? [17:38] tjholowaychuk: oh like the repo [17:38] tjholowaychuk: one sec [17:38] tjholowaychuk: http://github.com/Orc/discount [17:38] digitals1aghetti: oh wait i have it [17:38] digitals1aghetti: i downloaded it last night at 3am [17:39] _announcer: Twitter: "Nice, I missed the new Amazon EC2 micro instance type. $0.02/hour for a linux microinstance. Nice node.js playground." -- Scott Koon. http://twitter.com/lazycoder/status/24030057778 [17:39] digitals1aghetti: ahh yea that was the problem [17:40] digitals1aghetti: it's installed, but npm won't find it [17:40] digitals1aghetti: nor my custom node path :/ [17:40] felixge has joined the channel [17:40] felixge has joined the channel [17:40] felixge: ryah: now that nextTick is fixed, you should be able to land: http://github.com/felixge/node/commit/1c6e3750a479fb87aa46e9372ffadfd9d3086791 [17:41] zeekay has joined the channel [17:42] sstephenson_ has joined the channel [17:42] ryah: felixge: yeah, applying now [17:42] trodrigues has joined the channel [17:42] sudoer has joined the channel [17:42] polyrhyt1mic has joined the channel [17:43] bradleymeck: could we get ctrl+tab to swap between repls if multiple are running? [17:43] dgathright_ has joined the channel [17:43] mr_daniel has joined the channel [17:43] dgathright_ has joined the channel [17:43] jelveh has joined the channel [17:43] ryah: i don't like that we need to nextTick the runMain... [17:43] benburkert has joined the channel [17:43] bradleymeck: herbSk1974, was that sarcasm? [17:44] orlandov: bradleymeck: C-z; %2; [17:44] bradleymeck: i am quite confused now orlandov [17:45] orlandov: i mean... if you want multiple repl's couldn't you use the shell's job control? [17:45] orlandov: or maybe i'm not understanding [17:45] bradleymeck: if i run 2 repls in a single node process it goes really badly [17:46] felixge: ryah: well, there is also that other patch I suggested first [17:46] orlandov: bradleymeck: what's the usecase for 2 repls? [17:46] Nohryb has joined the channel [17:46] felixge: ryah: things would be easier if we could tell v8 to continue after an exception [17:47] gthb has joined the channel [17:47] bradleymeck: orlandov, mostly just testing out things that fire up repls [17:47] CIA-77: node: 03Felix Geisendörfer 07master * ref54777 10/ (3 files in 3 dirs): [17:47] CIA-77: node: Fix: uncaughtException was broken for main module [17:47] CIA-77: node: See: http://github.com/ry/node/commit/635986e4338cf34cf8e1abc4343ffd69d109bb4e - http://bit.ly/cA7pGT [17:48] logix812 has joined the channel [17:48] ryah: i'm afraid adding that nextTick is going to add to the startup time. [17:49] ryah: unfortunately we don't have a CI perf test for this. [17:49] nofxx: How to keep this reading, and thus listen to a pseudo rs232 (arduino) http://github.com/nofxx/subduino/blob/master/node/arduinode.js#L31-44 [17:49] _announcer: Twitter: "nodejs.org logo is bad ace, IMO. the site's minimalism works well." -- mediahack. http://twitter.com/mediahack/status/24030780573 [17:49] mikew3c_ has joined the channel [17:49] logix812: starting out with node.. it's installed, I installed npm, and then installed connect via npm. I copied and pasted the example on github for connect, but when I start the application I get an error that it cannot find the module 'connect', what step am I missing here? [17:50] Me1000 has joined the channel [17:50] ryah: btw - if anyone wanted to make a script which started node 10,000 times and took the average of it's start time... [17:50] ryah: that'd be a welcome addition to benchmarks/ [17:51] ryah: s/it's/its/ [17:51] ryah: whatever.. [17:51] bradleymeck: in what manner did you install node? and can you check that npm's path matches the require.paths in node? [17:52] logix812: bradleymeck: lemme look [17:52] logix812: installed node via brew [17:52] dshaw has joined the channel [17:52] logix812: installed npm via brew as well [17:54] zomgbie has joined the channel [17:54] logix812: ahhh I don't think it's in my require.paths [17:55] jimmyjazz14 has joined the channel [17:56] jimmyjazz14: anyone know how to get a ReadableStream on stderr?? [17:56] JohnnyL: tjholowaychuk : which one do you like? [17:56] sveimac has joined the channel [17:56] tjholowaychuk: JohnnyL: jade [17:56] jimmyjazz14: fs.createReadStream("/dev/stderr") does not seem to do what I hoped [17:57] ryah: jimmyjazz14: .. [17:57] JohnnyL: tjholowaychuk: ty [17:57] ryah: jimmyjazz14: stderr is outgoing... [17:57] nofxx: stderr at least is blocking ... I'm trying to make node loop through an nonblocking socket with no luck yet... [17:57] bmavity has joined the channel [17:59] jimmyjazz14: perhaps I should have asked, is there a way to intercept stderr? [17:59] sveimac has joined the channel [17:59] ryah: jimmyjazz14: define "intercept" [18:00] vvsh has joined the channel [18:00] logix812: bradleymeck: This did the trick: require.paths.unshift("/usr/local/lib/node"); [18:00] nofxx: ryah: seek & destroy [18:00] bradleymeck: logix812, i forget the env variable you can set to add to path [18:00] digitals1aghetti: tjholowaychuk: sorry to bug again, got it finding discount now, but do you know why the wscript would not find node path (it does find node prefix) [18:00] jimmyjazz14: ryah: like for example any text sent to stderr could be handled by some custom function [18:00] digitals1aghetti: i don't see in the wscript where i can set this [18:01] ryah: jimmyjazz14: stderr is outgoing [18:01] tjholowaychuk: digitals1aghetti: not sure :s [18:01] pquerna: global.process.stderr.write = function(data) {...} [18:01] ryah: jimmyjazz14: console.error("print to stderr" [18:01] Alex-SF has joined the channel [18:02] jacobolus has joined the channel [18:02] jimmyjazz14: ryah maybe I should say I would like to be able to override the handler that is normally used to for stderr in node [18:03] jimmyjazz14: kinda like you can in python [18:03] aubergine has joined the channel [18:03] pquerna: jimmyjazz14: ^^ see the line i pasted, you can monkey patch it. [18:03] pquerna: its terrible, don't do it, but anyways. [18:04] jimmyjazz14: pquerna: ah sorry didn't see that [18:04] jimmyjazz14: thanks [18:04] jelveh has joined the channel [18:04] _announcer: Twitter: "# # Iconv # nodejs epicfail> <" [lv] -- eudj1n. http://twitter.com/eudj1n/status/24031813594 [18:04] skohorn has joined the channel [18:04] tjholowaychuk: jimmyjazz14: you can just provide a custom writable stream to whatever your lib is [18:04] tjholowaychuk: like connect's logger accepts a stream option [18:04] tjholowaychuk: i dunno [18:05] _announcer: Twitter: "@nathansmith We are using Node.js for chat in our new Online Campus. So far, it is working fairly well." -- David Russell. http://twitter.com/davidrussell/status/24031866862 [18:05] dmcquay has joined the channel [18:06] _announcer: Twitter: "@csl_ what did you need more than http://nodejs.org/api.html#_file_system ? Just learning node.js so an honest question :)" -- Dominik Susmel. http://twitter.com/Keyframe/status/24031928652 [18:06] digitalsanctum has joined the channel [18:07] dipser has joined the channel [18:08] mattikus has joined the channel [18:08] digitals1aghetti: ahhhhhhh. I take it node-waf needs waf? [18:09] ryah: digitals1aghetti: no [18:09] ryah: node-waf is waf. [18:09] digitals1aghetti: hmm [18:09] digitals1aghetti: i'm flummoxed then [18:10] ryah: node-waf does need python though [18:10] herbySk: ryah: nextTick time must be totally negligible, but the gain is enormous - not only you fix this error, but anything similar which may occur at the future - the code of main module runs with the same conditions as any other code. It's a definite plus. [18:10] digitals1aghetti: yea, i have python. I'm trying to compile node-discount on webfaction [18:11] x_or: Is there a way to use nvm at the system level? I have been using it on a personal user level, but when I try to run as root, things get wonky because it requires installation into the home directory. [18:11] ryah: digitals1aghetti what's the error [18:12] ryah: herbySk: i'm not sure... it's definitely more work than not doing it [18:12] rtomayko has joined the channel [18:12] ryah: i fear it might add a millisecond ... [18:13] digitals1aghetti: ahh, seems to be a path thing: http://pastebin.com/5WSwQ47t [18:13] bradleymeck: ryah on empty loops i was getting crazy numbers like 12million iterations of an empty function per second, i doubt it will be near a full milli [18:14] CIA-77: node: 03Ryan Dahl 07master * r98683d2 10/ (12 files in 4 dirs): Merge branch 'fast-buffer' (+27 more commits...) - http://bit.ly/aYp3uv [18:14] herbySk: ryah: not definitely... with try / catch you must set up an exception handler, a millisecond is wayy too much [18:15] ryah: herbySk: prove me wrong :) [18:15] _announcer: Twitter: "I finally watched the node.js presentation http://tinyurl.com/ylbx7f5. Cool stuff but JS needs a do-notation: http://tinyurl.com/27pu4es" -- bokowski. http://twitter.com/bokowski/status/24032566329 [18:16] herbySk: ryah: is process.loop() restartable after it exits? [18:16] bradleymeck: why must everyone want exposure style /headdesk [18:16] ryah: ACTION uses reverse psychology to get people to create benchmarks for him [18:16] bradleymeck: too busy getting some stuff for creationix [18:16] ryah: herbySk: yes [18:17] jimmyjazz14: _announcer: agree on the 'do notation' thing though it probably needs a standard monad convention before that would be useful [18:17] FuzzYspo0N: ryah: they bill by the hour [18:18] mu-hannibal has joined the channel [18:18] herbySk: ryah: then, the benchmark must be easy to do, just repeat startup sequence for empty user script many times with one or the other solution [18:18] bradleymeck: i disagree with do notation, separating out logic with clear flow of control > hiding flow of control [18:18] herbySk: (inside src/node.js) [18:18] felixge: ryah: woa fast buffers! [18:19] felixge: ryah: how much gain is to be expected here? What benchmarks did you do? [18:19] bradleymeck: ryah have you tried using GetPointerFromInternalField etc instead of a full on External::Wrap? [18:19] jimmyjazz14: bradleymeck: Monads are nice because they allow you to kinda get the best of both worlds [18:20] bradleymeck: they hide things though, which i think is bad juju [18:20] njero has joined the channel [18:20] bradleymeck: well monads themselves dont but that style in the context of js does [18:22] wattz: hey if you have a js object {}. If you are using a for instead of a for-in, how do you get the key? [18:22] tjholowaychuk: wattz: Object.keys(myObj) ? [18:22] ryah: felixge: try this: [18:22] ryah: for i in benchmark/*_creation.js; do echo -n "$i... "; time ./node $i; done [18:22] bradleymeck: for(var propertyname in x) {console.log(propertyname)} [18:22] wattz: bradleymeck: in a formal for [18:22] jimmyjazz14: bradleymeck: abstraction is all about hiding things [18:23] wattz: for(var i = 0;.... [18:23] altamic has joined the channel [18:24] ryah: bradleymeck: wow, no i have'nt [18:24] ryah: bradleymeck: i'm going to try that [18:24] deepthawtz has joined the channel [18:24] bradleymeck: wrap is damn expensive [18:24] digitals1aghetti: yay \o/ fixed it [18:24] felixge: ryah: still running the first test, is it suppose dot take minutes? [18:24] bradleymeck: jimmyjazz14 im all for abstracting operations, not abstracting flow of control [18:24] digitals1aghetti: god damn shared hosting :/ [18:25] jimmyjazz14: bradleymeck: why is that? [18:26] bradleymeck: if you abstract flow of control all shared objects must be locked or all changes of flow of control must be known anyway to ensure you dont blow up a shared object's state [18:26] icey has joined the channel [18:26] bradleymeck: but if you explicitly show when you change control, viola those go away at minimal expense, also, dont use anonymous nested callbacks, those are just as bad [18:27] bradleymeck: basically, i see the expense of showing when i change control to be less than that of aggressively and perhaps improperly using locks for things im not sure if they need them cause it has been abstracted away [18:28] Zuardi has joined the channel [18:28] JohnnyL: any of you use CoffeeScript? [18:29] c4milo1 has joined the channel [18:29] ryah: bradleymeck: http://gist.github.com/572286 [18:30] bradleymeck: ryah, id check benchmarks just to be sure, but yea seems fine, i find it much nicer to code with [18:30] jimmyjazz14: bradleymeck: perhaps, Monads work well in haskell due to it being purely functional, it may not translate so well to javascript [18:30] bradleymeck: thats my thought :( [18:30] jimmyjazz14: IMHO javascript should just be haskell :) [18:31] bradleymeck: i like procedural XD [18:31] bradleymeck: ACTION actually prefers prolog [18:31] bradleymeck: creationix1 ping [18:32] saikat: in node, if i have code that takes a long time to run because it's CPU-bound but it's called in a callback (so for example, i call it only after I get a response from my DB), am I right in thinking that this code will still block my entire server while it's running? [18:32] mbrochh has joined the channel [18:32] mbrochh has joined the channel [18:32] saikat: and so new connections won't be made and also any other messages on other queues that can be processed at the same time will also wait? [18:32] bradleymeck: yes [18:32] bradleymeck: connections will be queued [18:32] icey: so is anyone using node (via express or another framework) for regular old boring crud apps yet? or are most people still using their usual frameworks and using node for realtime only? [18:33] saikat: hm [18:33] bradleymeck: all events are buffered saikat, so they dont do anything til the next tick but they will be attempted to be brought back up to speed [18:33] c4milo has joined the channel [18:33] codelotus has joined the channel [18:33] tjholowaychuk: icey: quite a few people are using express in production already [18:34] ryah: bradleymeck: seems slower [18:34] ryah: 10% or so [18:34] saikat: bradleymeck: i see - also in my app i have multiple queues (basically messages to be processed for separate pub/sub channels) that can be processed in parallel. i'm right though that one of these messages taking a while to process will block every other channel too? [18:34] ryah: oh wait [18:34] icey: tjholowaychuk: that's awesome to hear, thanks [18:34] saikat: they aren't using events [18:34] ryah: nm [18:34] saikat: just callbacks to notify when the message is done being processed [18:35] bradleymeck: saikat only one control flow of js can execute at a time, so yes [18:35] _announcer: Twitter: "@getify i know what you mean. we need a cross-platform "native" application shim for node.js!" -- Peter van der Zee. http://twitter.com/kuvos/status/24033912418 [18:35] saikat: bradleymeck: is the correct way then (other than just profiling and speeding up this code) to do this better to process the message in chunks and wait till next tick to process the next chunk? [18:36] qFox: damn skippy we do [18:36] ctp has joined the channel [18:36] saikat: basically, in my case, the message is a giant list of deltas that need to get applied to a project [18:36] saikat: they need to be processed in order though [18:37] saikat: so i can't just do them all asynchronously [18:37] saikat: though i guess doing them in chunks doesn't actually get me anything [18:37] bradleymeck: yep, try to do it in chunks, if you cant (and i mean cant), look into webworkers or something [18:37] lakin has joined the channel [18:37] _announcer: Twitter: "got a tour of nodejs package management systems by @skylar. so far we've got seedjs and npm. interesting stuff." -- lloydhilaiel. http://twitter.com/lloydhilaiel/status/24034047768 [18:38] saikat: bradleymeck: actually, why would chunking it help? [18:38] bradleymeck: chunked handling generally saves a lot of memory if a lot of things are being processed [18:38] saikat: ah, so for memory purposes [18:38] saikat: but if i'm CPU-bound [18:38] saikat: it wouldn't help me any? [18:38] joshbuddy has joined the channel [18:38] bradleymeck: plus a negligible amount of cpu [18:38] saikat: right [18:38] saikat: ok thanks a lot for the info [18:38] maushu has joined the channel [18:41] bcg has joined the channel [18:41] felixge: ryah: the benchmark you were asking for: http://github.com/felixge/node/commit/9f327b8c96a8691f70f66d4929233f99d2e3bded [18:42] zemanel has joined the channel [18:42] felixge: ryah: node startup time is pretty constant at ~40ms for me, with or without the nextTick patch [18:43] jimmyjazz14: pquerna: seems you can not "monkeypatch" global.process.stderr because there is no global.process.stderr [18:44] fyskij has joined the channel [18:46] digitals1aghetti: any of the http://nodul.es/ authors around? [18:46] langworthy has joined the channel [18:48] freeall has joined the channel [18:51] nefD: felixge: How goes node-mysql? :D [18:54] herbySk: felixge: is that function you sent me some three weeks ago still actual or you already translated it? [18:55] JohnnyL: how stable/reliable/fast is node.js? [18:55] wattz: JohnnyL: pretty freaking fast [18:55] wattz: JohnnyL: let you know, i work for a fortune 40 company and we are using it now for all our webservices [18:55] ryan[WIN] has joined the channel [18:55] _announcer: Twitter: "Juggernaut 2 looks awesome. node.js/redis/ruby/WebSocket http://github.com/maccman/juggernaut" -- Thibaud G.-Gentil. http://twitter.com/thibaudgg/status/24035218309 [18:55] ryan[WIN]: i just got a palm pre [18:56] wattz: :X [18:56] ryan[WIN]: so that i could play with webos 2.0 [18:56] ryan[WIN]: ACTION wrings his hands [18:56] wattz: ryan[WIN]: off plan? [18:56] mau2 has joined the channel [18:56] JohnnyL: wattz: wow thats great. [18:56] ryan[WIN]: nah i was due for upgrade and hp's site gave it to me for free [18:56] ryan[WIN]: NO MONEY DOWN [18:57] wattz: JohnnyL: i wasn't trying to be an ass or anything [18:57] JohnnyL: wattz: I just finished up an assignment for Panasonic's dealer website in Django. But now I'm off writing my own web pages to strike out on my own. [18:57] wattz: for personal stuff, im not using django for web apps and node for webservices [18:57] crodas has joined the channel [18:57] wattz: err [18:57] wattz: I am using django for webapps [18:57] wattz: 'cuse me [18:58] digitals1aghetti: same here [18:58] digitals1aghetti: because i'm lazy and need an ORM :) [18:58] JohnnyL: I like Django's model and tempalte system. [18:58] JohnnyL: But Node.js and Jade look really nice. [18:58] wattz: JohnnyL: i <3 their forms [18:58] wattz: JohnnyL: mde's Geddy is pretty good too [18:58] wattz: I wrote a little port of django forms for node js [18:58] JohnnyL: I prefer handling forms the old fashioned way in Django. Referencing all the names and syntax for form ids and routines is a bit cumbersome. [18:58] digitals1aghetti: once there is something as feature rich as django on node.js, there will be no point using anything else :) [18:59] jhojho has left the channel [18:59] wattz: digitals1aghetti: i agree [18:59] digitals1aghetti: (or flask + sqlalchemy) [18:59] wattz: flask seemed clunky to me [19:00] JohnnyL: what's normally used for databases in Node.js? (this is my first time to the channel) [19:00] wattz: JohnnyL: loaded question [19:00] wattz: haha [19:00] wattz: there are drivers/modules for most things [19:00] digitals1aghetti: JohnnyL: there are drivers for mysql, postgres, mongo, couchdb, redis and possibly more [19:00] wattz: from block to nonblock, to pure js sockets for just about any db out there [19:00] justin__: JohnnyL: what are you using it for? [19:00] digitals1aghetti: there is also nstore [19:01] digitals1aghetti: nstore is node's native documentdb, which i'm about to try for my app :) [19:01] JohnnyL: justin__: a graphical mud. [19:01] ph^ has joined the channel [19:02] wattz: digitals1aghetti: it's not pure memory, it writes to file right? [19:02] crodas has joined the channel [19:02] digitals1aghetti: wattz: yes [19:02] JohnnyL: digitals1aghetti wow great [19:03] wattz: digitals1aghetti: that's really cool [19:03] wattz: i want to build a little storage engine around google protobuffs [19:03] digitals1aghetti: yea, sounds good but don't know what it's like [19:03] justin__: JohnnyL: sounds like a good opportunity to try out one of the nosql solutions, which i think are better supported in node than the sql solutions [19:03] digitals1aghetti: i'm going to write a small app that parses npm's list for new modules and tweets it [19:03] justin__: so nostore, redis, maybe mongo [19:03] digitals1aghetti: kinda like @rubygems [19:03] justin__: *nstore [19:03] crodas has joined the channel [19:04] digitals1aghetti: http://twitter.com/nodemodules [19:04] digitals1aghetti: trying to find out it npm has some kind of feed, or if i'll have to parse the site [19:04] JohnnyL: justin__: thanks man, I"ll look into it. [19:05] digitals1aghetti: wondering how http://nodul.es/ does it [19:05] jegade has joined the channel [19:05] _announcer: Twitter: "Done chatting about #sencha, #nodejs, and #couchdb. Now to actually do it." -- JR Liwag. http://twitter.com/JR_Liwag/status/24035863062 [19:06] ctp has joined the channel [19:06] moesian has joined the channel [19:06] jegade: hi, howto simulate a couple of client in front of the node.js? Maybe 1000 or more? [19:06] digitals1aghetti: jegade: use apache benchmark [19:06] _announcer: Twitter: "From the node.js list: "Speaking of databases, judging by the community size, MySQL seems to be the winner. But with it, you'll lose."" -- Ed Ceaser. http://twitter.com/asdf/status/24035940153 [19:07] tjholowaychuk: jegade: siege [19:07] Aria has joined the channel [19:09] zomgbie has joined the channel [19:09] aurynn: Damn, I wish I had more time to work on postgres.js [19:11] malkomalko: tjholowaychuk: is there anything in connect/express to capture the action of the submit button pressed to do different things based off a specific form button click? I didn't see it in my body params [19:11] _announcer: Twitter: "How to use sendfile(2) with #nodejs: http://bit.ly/dlB8Py" -- Peter Griess. http://twitter.com/pgriess/status/24036200253 [19:12] _announcer: Twitter: "Limiting Concurrency in Node.js | Paul's Journal http://bit.ly/96VSLj <- sounds counter intuitive but has a point in there" -- Hernan Garcia. http://twitter.com/theprogrammer/status/24036266717 [19:12] FuzzYspo0N has left the channel [19:13] tjholowaychuk: malkomalko: give your buttons a name, then you can do req.body.operation or something [19:13] tjholowaychuk: malkomalko: i usually just call it "op" lol and switch on that [19:13] tjholowaychuk: ruby people call it commit i think [19:13] aubergine has joined the channel [19:14] malkomalko: schwing! [19:14] malkomalko: creating a suite of form helpers using jade/express helpers [19:14] tjholowaychuk: :) [19:16] matschaffer: malkomalko: do want [19:16] malkomalko: what? :) [19:17] matschaffer: a suite of jade/express form helpers [19:17] malkomalko: are you saying you want them? [19:17] matschaffer: yep, I'd love to have a suite of form helpers [19:17] matschaffer: link and route helpers could be cool too [19:18] digitals1aghetti: tjholowaychuk: is there anyone at Sencha making Ext available for node? ;) that would rock for forms :) [19:18] malkomalko: looks something like this [19:18] malkomalko: https://gist.github.com/c5d6e52601a10a5e91e5 [19:18] tjholowaychuk: digitals1aghetti: dunno :p [19:18] matschaffer: nice! [19:19] V1: a dedicated library will alway be better than client side library for node.. [19:19] matschaffer: the use of field/clear and h2 seems a little intrusive for what I'd want [19:19] tjholowaychuk: V1: agreed [19:19] matschaffer: still, a good start [19:19] malkomalko: yah, it's just for my needs [19:19] malkomalko: but you get the gist right? [19:19] matschaffer: yep yep [19:20] matschaffer: thanks :) [19:20] malkomalko: no pun intended [19:20] malkomalko: I like how I did the select helper though [19:21] malkomalko: you can either pass it an array, or an object, and it'll automatically give you option groups or whatever [19:21] tjholowaychuk: malkomalko / matschaffer myself and guillermo have talked a bit about making jade extensible on the tag level, so that helpers like this could be baked in by the developer [19:21] tjholowaychuk: potentially [19:22] matschaffer: that could be the hotness [19:22] matschaffer: potentially [19:22] malkomalko: yah, not sure I really understand that yet :) [19:22] matschaffer: gtg, thanks for the info malkomalko/tjholowaychuk! [19:22] malkomalko: no probs [19:24] stalled has joined the channel [19:25] gthb has joined the channel [19:25] crodas has joined the channel [19:26] malkomalko: input(type="submit", value=label, style="display: none;", name="op") [19:26] malkomalko: didn't seem to show up in my req.body tj [19:27] malkomalko: maybe it's because of the display: none :D [19:27] BryanWB has joined the channel [19:27] herbySk: ryah, felixge: http://gist.github.com/572391 [19:28] mattikus has joined the channel [19:28] Nohryb has joined the channel [19:28] tjholowaychuk: malkomalko: it should [19:31] bradleymeck: ugg mac os x does not like sfml, is sdl nice on mac anyone know? [19:36] bradleymeck: pixel map seems working on linux [19:36] mcarter_ has joined the channel [19:38] felixge: herbySk: it's all ported :) [19:38] felixge: herbySk: cal henderson didit [19:38] felixge: * did it [19:38] felixge: nefD: it's going well [19:39] nefD: rmdb hating aside, it's nice to see mysql getting some love [19:40] elijah-mbp has joined the channel [19:42] rwaldron has joined the channel [19:42] boaz has joined the channel [19:42] ben_alman has joined the channel [19:42] figital has joined the channel [19:42] felixge: nefD: nosql is overhyped [19:42] wattz: "Tool for the job" [19:43] path[l] has joined the channel [19:43] felixge: nefD: it's solving performance issues that 95% of all internet applications don't have [19:43] herbySk has joined the channel [19:43] felixge: and even mysql can be sufficiently scaled for a lot of stuff [19:43] felixge: i [19:43] bradleymeck: well, most people would rather grab new tech than fix design [19:43] saikat: yeah, on the flip side, large transactional databases are solving ACID issues that tons of internet applications don't have =) [19:43] nefD: felixge: *nod* agreed.. though, I am using mongo for one of my current projects for reasons other than performance, I do think theres a ridiculous amount of mysql hate out there [19:44] saikat: and a lot of the "nosql" databases, like redis, are just way easier to get up and running [19:44] felixge: well, there are other good reasons - like when you have non-relational data or data that is more documentish [19:44] saikat: but right tool for the job, of course [19:45] saikat: i'm just in a particularly bad mood with postgresql [19:45] nefD: felixge: Is your mysql module async? If so, have you had trouble going that route given mysql's synchronous nature? [19:46] felixge: nefD: it is non-blocking [19:46] jsilver_ has joined the channel [19:46] felixge: nefD: but the protocol is sync, so you need a connection pool for parallel queries [19:46] c4milo has joined the channel [19:46] nefD: felixge: Ahh ok, gotcha [19:46] nefD: felixge: Seems like connection pooling is one of the things most previous node+mysql efforts have missed [19:47] felixge: nefD: well, another option is to just create 1 connection / query [19:47] dilvie: felix: noSQL doesn't ONLY solve performance issues. [19:47] felixge: which isn't unreasonable for some cases [19:47] aurynn: If you have a relational dataset, you should use a relational DB. [19:47] aurynn: If you don't, you shouldn't [19:47] felixge: dilvie: I haven't said so. But that's the easiest argument people understand and which derails their thinking [19:48] loincloth has joined the channel [19:48] aurynn: document stores have been explored before - look at berkeleyDB. [19:48] nefD: felixge: As soon as your module is at a comfortable spot, i'm wanting to write an express mysql session adapter.. sessions would be an example of where something like redis would be ideal, but there are some legacy applications I work with which store session data in mysql (multiple web servers, one db server) and it'd be nice to be able to integrate [19:49] felixge: nefD: I will put it into production use soon at transloadit [19:49] felixge: nefD: If it works I will recommend people using it : ) [19:50] Alex-SF has joined the channel [19:54] mikew3c_ has joined the channel [19:54] nefD: felixge: Awesome. Looking forward to id :D [19:54] nefD: s/id/it [19:55] alexo has joined the channel [19:55] zimbatm has joined the channel [19:56] alexo: hi noders [19:57] alexo: does anyone know how to work with sessions in an expressjs app? [19:57] tjholowaychuk: alexo: req.session [19:57] tjholowaychuk: alexo: req.session.destroy(function(){}), req.session.regenerate(function(){}) etc [19:58] alexo: with app.use(express.session()); ? [19:58] hober has joined the channel [19:58] brianmario has joined the channel [19:58] tjholowaychuk: alexo: you need app.use(express.cookieDecoder()) above session() [19:58] alexo: got that [19:58] tjholowaychuk: but yup you will have a req.session object [19:59] tjholowaychuk: so you can do req.session.name = 'tj' and it will be saved on the response [19:59] hassox has joined the channel [19:59] tjholowaychuk: and use those methods to destroy sessions n whatnot [20:00] alexo: tjholowaychuk: works like a charm [20:00] alexo: I couldn't find any docs on how to _access_ the session [20:00] tjholowaychuk: alexo: good good :) sorry the docs are sparse right now [20:00] alexo: thanks for the quick help! [20:00] elijah-mbp has joined the channel [20:01] tobiassjosten has joined the channel [20:01] digitals1aghetti: right, if i understand this correctly - with twitter i need to register my app, then when i start my app up I need to make an OAuth request to do stuff? [20:01] tjholowaychuk: alexo: np [20:01] _announcer: Twitter: "Need to learn how to update a running #node.js Now, I have to kill the process but Node is so fast, prstat -j doesn't always show the id" -- Rod Boothby. http://twitter.com/rod11/status/24039385874 [20:01] dilvie: I need to store currenncy data for an accounting ledger, along with a whole bunch of other stuff that's more document-oriented. I definitely want to store my document-oriented data using something like CouchDB. Should I also store the ledger using CouchDB, or should I use a datastore that supports fixed precision data types for money? [20:01] bradleymeck has joined the channel [20:02] programble has joined the channel [20:03] herbySk: dilvie: maybe use something like corckford's 9e6 to store the currency data [20:03] wink_: dilvie: how familiar with finance applications are you? [20:03] V1: ARGH@ It's not working anymore :@.. and it was working yesterday >_> [20:03] dilvie: wink_: Enough to know that I don't want to store finance data using floats. =) [20:03] herbySk: s/corckford/crockford/ [20:03] dilvie: but I could use scaling to overcome float precision issues. [20:03] wink_: i've always heard the rule of thumb is to store your money values as whole numbers using your lowest fraction as your base [20:04] wink_: so if you dont use precision smaller than cents, store all your money in pennies (us currency of course) [20:04] dilvie: herbySk: Thanks, I'll look into that. [20:05] aurynn: the numeric type in postgres is nice; arbitrary precision [20:07] wink_: aren't there funky rounding rules in finance? :P [20:08] aurynn: Yes [20:08] aurynn: :) [20:09] wink_: ACTION shivers [20:09] t3h_awesome has joined the channel [20:09] herbySk: Math.funkyRound()? [20:11] aurynn: Math.finance.round() [20:12] dgathright has joined the channel [20:13] coobr has joined the channel [20:14] dgathright_ has joined the channel [20:18] huyhong has joined the channel [20:20] TheEnd2012 has left the channel [20:20] bradleymeck: var bigcorporationsteps = [Math.largeNumbersOfBadIdeas(), mapreduceassets, profit ] [20:22] Tim_Smart has joined the channel [20:23] freeall has joined the channel [20:23] c4milo1 has joined the channel [20:24] c4milo2 has joined the channel [20:25] delapouite has joined the channel [20:26] hellp has joined the channel [20:28] karboh has joined the channel [20:28] nofxx: How to keep this reading, and thus listen to a pseudo rs232 (arduino) http://github.com/nofxx/subduino/blob/master/node/arduinode.js#L31-44 [20:28] nofxx: http://comments.gmane.org/gmane.comp.lang.javascript.nodejs/3642 [20:28] huyhong has left the channel [20:29] nofxx: totally lost trying this... [20:32] Aria: Oh interesting bug! [20:32] ryan[WIN]: mn [20:32] ryan[WIN]: i'm so stoked for my pre to come [20:32] SubStack: nofxx: you might have to stty the device [20:32] zapnap has joined the channel [20:33] SubStack: this is what I did for my underwater rov serial link: stty raw clocal 57600 cs8 -parenb parodd cstopb -echo < /dev/ttyUSB0 [20:33] _announcer: Twitter: "Anyone has a clue how to parse base64 encoding in #nodejs on the fly? At 1st grouping 12 chars seemed a good idea but UTF-8 chars broke it." -- Andris Reinman. http://twitter.com/andris9/status/24041371039 [20:34] aurynn: isn't there a base64 lib baked in? [20:35] nofxx: SubStack: hmm... gonna try it, thank you [20:35] SubStack: I can't remember what any of those options do anymore though :p [20:36] _announcer: Twitter: "I mean the base64 data in #nodejs is a stream, not a complete data. I want to parse mime-messages which have base64 encoded attachments" -- Andris Reinman. http://twitter.com/andris9/status/24041547932 [20:36] nofxx: SubStack: some parity and bauds should be hehe [20:36] bradleymeck: aurynn: (new Buffer("test","utf8")).toString("base64") [20:37] nofxx: SubStack: intersting tho, every lang uses some kind of infinite loop to do this, but there aren't no loops in evented node, are ? heh [20:37] SubStack: there are some loops in the thread pool [20:37] SubStack: but we don't like to talk about it [20:38] nofxx: SubStack: yup... and this rs232 read thing is so async... [20:38] _announcer: Twitter: "Swarmation is awesomely interesting, challenging, and simple. Now impressed with node.js http://swarmation.com/" -- Nick Cooper. http://twitter.com/nickcooper/status/24041681189 [20:38] digitals1aghetti: has anyone done a twitter app with node since the auth changes? [20:38] bradleymeck: frankie and announcer [20:38] bradleymeck: well, i only did frankie [20:39] digitals1aghetti: does frankie post messages to twitter? [20:39] bradleymeck: !tweet @digitals1aghetti yes [20:40] digitals1aghetti: did you have to register it as an application then? and get a token to do oauth stuff? [20:40] digitals1aghetti: (and it's @tanepiper on twitter :p) [20:40] bradleymeck: !tweet @tanepiper yes, needed to register my "app" on twitter and used npm's oauth module [20:41] aurynn: So it's pretty easy to wire up something that watches TwitteR? [20:41] aurynn: is announces' code open? [20:41] digitals1aghetti: npm's? [20:41] digitals1aghetti: do you mean http://github.com/ciaranj/node-oauth ? [20:41] digitals1aghetti: oh [20:42] SubStack: nofxx: you could also spawn('cat /dev/ttyUSB0') >:) [20:42] digitals1aghetti: do'h [20:42] digitals1aghetti: ignore me [20:42] SubStack: or spawn('cat', ['/dev/ttyUSB0']) rather [20:42] SubStack: make cat do the buffering for you [20:42] bradleymeck: aurynn its rediculously easy with the various twitter modules, and maushu has his source around somewhere [20:43] aurynn: Awesome. [20:43] aurynn: :) [20:43] nofxx: SubStack: but that's the issue, it is non-blocking [20:43] nofxx: SubStack: woa.. it's not anymore oO [20:45] nofxx: SubStack: damn... I'm reading ! it's working... darn, was something else wrong later, the usb needed a unplug/plug [20:45] nofxx: SubStack: thanks hehe [20:46] nofxx: now to set the encoding right hehe, getting some crazy chars [20:47] _announcer: Twitter: "Playing with node.js, if you've made something interesting using node recently open source it and I'll give you a http://forrst.com/ invite." -- Umar. http://twitter.com/umaar/status/24042225724 [20:47] claudiu__ has joined the channel [20:48] bradleymeck: wow that site takes a while to load [20:51] bradleymeck: v8 [2]%3 [20:51] v8bot: bradleymeck: 2 [20:51] HAITI has joined the channel [20:52] HAITI: cheers [20:52] _announcer: Twitter: "Inception must have been coded in #nodejs - Callbacks are kicks, it fits perfectly :)" -- Daniel Erickson. http://twitter.com/TechWraith/status/24042567121 [20:54] rauchg_: ACTION grabs inception.js  [20:54] rauchg_: ACTION gets http://github.com/guille/inception.js [20:54] rauchg_: ACTION tries to think what to do with it [20:54] _announcer: Twitter: "Credit to the Inception + #nodejs goes to @xdamman, very astute observation." -- Daniel Erickson. http://twitter.com/TechWraith/status/24042700369 [20:57] daniellindsley: rauchg_: I dunno, but you need to go deeper. [20:58] guid: :> [20:58] guid: beware of the limbo [20:58] digitals1aghetti: god dammit i hate oAuth - I could never get it working right :/ and twitter's error messages are not very helpful [20:59] bradleymeck: well what does it spew at you, you can pm me if you need help or can gist code [20:59] digitals1aghetti: 2error :{ statusCode: 401, data: ' ' } [20:59] digitals1aghetti: -2 [20:59] digitals1aghetti: I registered it as a desktop app, as it's not under a URL but just runs as an app [21:00] bradleymeck: unauthorized :( probably bad login tokens? [21:02] SubStack: isaacs should make npm throw an error if somebody tries to publish a module starting with /^(npm|node|js)\b/ [21:03] digitals1aghetti: bradleymeck: http://pastebin.com/YWn1hrbW [21:03] digitals1aghetti: it's .getOAuthAccessToken that it's getting the error on [21:03] dmcquay has joined the channel [21:04] digitals1aghetti: http://pastebin.com/MX2rd148 is the output i get so far, i', just using the example provided [21:04] vvsh has joined the channel [21:04] HAITI has joined the channel [21:06] digitals1aghetti: hmm, maybe i should just use connect and throw in connect-auth and try using that, it seems to have twitter support out the box [21:06] Nohryb has joined the channel [21:06] c4milo has joined the channel [21:07] bradleymeck: digitals1aghetti you are missing the pin number for twitter [21:08] bradleymeck: i had did a patch that i sent out, idk how he implemented it himself [21:08] teemow has joined the channel [21:08] digitals1aghetti: ahh [21:08] bradleymeck: oa.getOAuthAccessToken(oauth_token, oauth_token_secret, pin.toString().trim(), function(error, oauth_access_token, oauth_access_token_secret, results2) [21:09] bradleymeck: pins are grabbed by the user from "https://twitter.com/oauth/authorize?oauth_token="+oauth_token [21:09] Alex-SF has joined the channel [21:10] ryanfitz has joined the channel [21:11] JohnnyL: can you access win32 functions from within Node.js? [21:11] _announcer: Twitter: "@laktek Hi, Just forked ur realie project @ GitHub, I'm hoping to learn more about Node.js, support the project & add new features. Greetz!" -- Benji Orozco. http://twitter.com/benoror/status/24043742436 [21:11] bradleymeck: JohnnyL if you write a binding, yes [21:11] JohnnyL: bradleymeck: how would one go about that? [21:12] bradleymeck: c++ addon, small description in the docs [21:12] digitals1aghetti: bradleymeck: ahh, so that's the auth/deny page a user see's, so what do i do for my server app? [21:12] JohnnyL: like powershell output or something? [21:12] digitals1aghetti: if i call that URL via http client, how can i auth? [21:13] bradleymeck: well thats a little tricky [21:13] bradleymeck: are there going to be multiple people using this app? [21:13] digitals1aghetti: no, the app basically is a node version of @rubygems [21:13] hassox has joined the channel [21:13] digitals1aghetti: tweets when a new or updated module is released on npm [21:14] codelotus has left the channel [21:14] digitals1aghetti: so all the app will do is parse the npm registry, and if it sees an update post a tweet - it won't accept any input [21:14] bradleymeck: then just do it yourself once and keep the getOAuthAccessToken info (they dont expire for twitter) [21:17] digitals1aghetti: gotcha [21:17] _announcer: Twitter: "The downside of using new technologies is the solutions don't always work as expected. #node.js #annoyed" -- Georg_Tavonius. http://twitter.com/Georg_Tavonius/status/24044120491 [21:18] JohnnyL: bradleymeck where you talking to me? [21:20] satori_ has joined the channel [21:20] bradleymeck: no, just look into a c++ addon for the bindings you want [21:21] _announcer: Twitter: "I got my Palm webOS2 invite, can't wait to go exploring into their node.js" -- Drew Wells. http://twitter.com/coldfuser/status/24044396496 [21:22] ctp has joined the channel [21:24] JohnnyL: bradleymeck: thanks [21:24] LowValueTarget has joined the channel [21:29] _announcer: Twitter: "Video: node.js + javascript Riak power http://tumblr.com/xl6i321sd" [es] -- karlos g liberal. http://twitter.com/patxangas/status/24044907223 [21:31] _announcer: Twitter: "@a2hosting I don't see support for django, couchDB or node.js in any of your plans - I pretty much need root access to a virtual server" -- Stephen Bussard. http://twitter.com/sbussard/status/24045015898 [21:33] HAITI has joined the channel [21:36] MarkusT has joined the channel [21:36] ctp_ has joined the channel [21:37] freeall has joined the channel [21:38] MarkusT: Sorry in advance, but I just can't figure it out: How do I get stdin.on to stop listening after the first newline? [21:39] _announcer: Twitter: "Getting Started with Node.js on Windows #bookmark #javascript http://icio.us/013btc" -- Andy Parkhill. http://twitter.com/MagicAndi/status/24045537876 [21:40] Tim_Smart: ryah: <3 fast buffers on master. [21:41] eazyigz has joined the channel [21:43] eazyigz: I am really at a loss how to use logging when I deployed my node in production. I am using runit to supervise node, and attempted to call svlogd, but nothing is logging [21:43] eazyigz: what are some successful strategies for logging that you guys use? [21:44] aliem has joined the channel [21:46] bradleymeck: i tend to just dump to files [21:47] SubStack: MarkusT: removeListener after you grab a line [21:49] dgathright has joined the channel [21:49] MarkusT: SubStack: Like this? stdin.on('data', function (chunk) { process.stdout.write('data: ' + chunk); stdin.removeListener('data', function () {});}); Unfortunately, it doesn't work. I guess I still don't understand the concept :-) [21:50] SubStack: MarkusT: you have to removeListener with the original function as the second argument [21:50] SubStack: or if you're not bound to any other events you can removeAllListeners [21:52] MarkusT: SubStack: Tried that too. I guess it doesn't work as long as I'm trying to remove the event inside the callback function itself? [21:52] _announcer: Twitter: "node.js has pretty ./configure and make scripts." -- Kyle Terry XVX. http://twitter.com/kyleterry/status/24046380832 [21:53] SubStack: MarkusT: nope you can do that [21:53] SubStack: em.on('baz', function f (x) { em.removeListener('baz', f) }) [21:53] dgathright_ has joined the channel [21:54] _announcer: Twitter: "@ Clmntlxndr you knew? HackingPartyParis18 - NodeJS / API Geoloc http://minu.me/2x7e" [fr] -- Jonathan Benoudiz. http://twitter.com/bJonathan/status/24046523983 [21:55] MarkusT: SubStack: I don't get what I'm doing wrong. Would you mind having a look at this tiny example? http://pastebin.com/JZBn9saH [21:56] dipser has joined the channel [21:56] _announcer: Twitter: "@ BJonathan hey not bad your link, we work with and geolocation nodejs!" [fr] -- eMeRiKa. http://twitter.com/eMeRiKa/status/24046628572 [21:56] SubStack: MarkusT: what should it be doing? [21:56] MarkusT: SubStack: Read a line, echo it and exit. [21:57] SubStack: stdin isn't line buffered [21:57] elijah-mbp has joined the channel [21:58] MarkusT: SubStack: Then how do I get a "readline" in node.js? [21:58] bradleymeck: you get it when the data comes in [21:59] MarkusT: bradleymeck: O.k., so I just search for the newline and exit afterwards. Allright, will try it :-) [21:59] MarkusT: Thanks SubStack and bradleymeck! [22:00] hassox has joined the channel [22:01] Esteth has joined the channel [22:02] Alex-SF has joined the channel [22:02] MarkusT: bradleymeck: Wait, that doesn't make sense (to me :->). I'm able to output the chunks with a trailing "data: " in my example. And I'm able to run additional output after that. So shouldn't that be enough to detect newlines? I'm really confused now. [22:03] dmcquay has joined the channel [22:03] _announcer: Twitter: "I find myself using node.js to do ANY task now. This can't be healthy" -- Sergi Mansilla. http://twitter.com/sergimansilla/status/24047120864 [22:04] bradleymeck: im not sure i understand you [22:06] MarkusT: bradleymeck: See http://pastebin.com/JZBn9saH I'm able to read a line and echo it to stdout (and do so for every following line). I'm just unable to remove the eventlistener after the first "chunk" of data comes in. [22:07] zk has joined the channel [22:08] digitals1aghetti: anyone have a module for npm they need to update? I would like to test my new npm update twitter bot :D [22:09] bradleymeck: https://gist.github.com/a180726ec51b047f34b0 works fine for me MarkusT [22:09] _announcer: Twitter: "#Node.js looks interesting - server side javascript :-) http://nodejs.org/" -- netsi1964. http://twitter.com/netsi1964/status/24047504959 [22:10] ooooPsss has joined the channel [22:11] ooooPsss: Hi. I'm new to node.js and would like your opinion on something. Is it plausible to create a real-time event tool like MixPanel.com by using only Node.js + database (mongoDb) ? [22:11] ph^_ has joined the channel [22:12] MarkusT: bradleymeck: It doesn't for me. Which means I need to check my node.js installation. At least I'm now sure how to solve the problem. Thank you so much for your time! [22:12] zeekay has joined the channel [22:13] zum_ has joined the channel [22:15] nofxx: SubStack: ouch, now I get it, the stty "mounts" it in a blocking way [22:16] nofxx: thanks again [22:16] SubStack: serial communication is super annoying like that [22:18] ooooPsss: can I get an answer please? [22:19] orlandov: ooooPsss: yes [22:20] ooooPsss: orlandov: thanks. one more question, is it worth it as opposed to using Javascript + Rails ? [22:20] ooooPsss: (also, if there's any benchmarks) [22:20] orlandov: ooooPsss: that's subjective, i think so [22:20] orlandov: node.js will go further than rains given the same physical set of resources [22:20] indexzero has joined the channel [22:20] orlandov: *rails [22:21] elijah-mbp has joined the channel [22:21] kriszyp has joined the channel [22:21] [[zzz]] has joined the channel [22:21] wakawaka has joined the channel [22:22] ooooPsss: I see. but you think is plausible to do everything in node? Even generating views with reports in real-time, etc? (just like any analytical tool) [22:23] orlandov: for sure [22:23] ooooPsss: ok! very nice! :) [22:23] ooooPsss: thanks! [22:26] dgathright: ooooPsss: There's nothing I can think of that you can do in other frameworks that you can't do in Node. Node is still relatively immature though, so you'll have to figure a lot out as you go. But that's the fun part IMO. :) [22:26] orlandov: ooooPsss: if you run into any obstacles or have questions, you can ask here or on the list [22:26] _announcer: Twitter: "Top story on the #nodejs Daily http://bit.ly/aOxf1J ▸ Pixel Ping" -- Samuel Morello. http://twitter.com/ouvanous/status/24048676258 [22:27] ooooPsss: orlandov: thank you, I'll do that. It's hard to understand javascript doing server processing and rendering the data but I'll get over it :) [22:27] orlandov: really? i have a much easier time with server-side javascript [22:27] MarkusT: bradleymeck: Just to make sure: Your gist really exits after execution? I just recompiled and installed node 0.2 and it still doesn't exit. It does however stop echoing. Any idea on what I might doing wrong? [22:27] orlandov: its just a matter of learning to use some libraries and gluing them together [22:27] dgathright: Best to just get out of the mindset of thinking of DOM scripting as JavaScript. Just think of JS as any other programming language. [22:28] ooooPsss: orlandov: being a first time learner of Javascript (I have done some web site stuff but nothing very complex) and node.js, where shall I start? [22:28] tjholowaychuk: ooooPsss: http://visionmedia.github.com/masteringnode/ [22:28] tjholowaychuk: lol [22:29] orlandov: there you go :) [22:29] tjholowaychuk: but yeah like dgathright said you just have to think of it like any other general purpose language [22:29] ooooPsss: isn't that very incomplete? (I+ve been therE) :p [22:29] dgathright: Another good resource, http://howtonode.org/ [22:29] tjholowaychuk: with tons and tons of callbacks lol [22:29] tjholowaychuk: ooooPsss: yeah it is pretty incomplete right now [22:29] ooooPsss: ok! ;) [22:30] ooooPsss: I'll have to learn. however, isn't there any benchmark comparing node.js with other languageS? (I can only find vs php) [22:31] _announcer: Twitter: "Now I'm asking myself why is there no method in #express, #connect or even #node.js for getting post parameters? #justwondering" -- Georg_Tavonius. http://twitter.com/Georg_Tavonius/status/24049002178 [22:31] dgathright: tjholowaychuk: No doubt. oooopsss, definitely gotta understand callbacks when you are doing event-based programming (such as Node). It's a very important concept in Node. [22:31] HAITI: no tweet entities [22:32] ooooPsss: dgathright: the best way to understand callbacks is learning javascript, correct? ;) [22:32] tjholowaychuk: clear [22:32] tjholowaychuk: haha [22:32] tjholowaychuk: did it again [22:32] dmcquay has joined the channel [22:32] aurynn: Callbacks and asynch will hurt your brain. [22:32] HAITI: ugh i dont think I like colloquy for irc [22:32] HAITI: back to netcat? lol [22:33] HAITI: what should i be using on mac? [22:33] ooooPsss: colloquy is nice [22:33] HAITI: hmm maybe ill get used to it [22:34] pquerna has joined the channel [22:34] dgathright: ooooPsss: Yeah. Pick up a few books. I really liked Pro JavaScript Techniques (Resig) and Professional JavaScript for Web Developers (Zakas). While those are DOM centric books, they're very comprehensive of best practices in JS and all the fundamentals. [22:35] ooooPsss: ok dgathright, I'm reading "JS, the good parts" [22:35] ooooPsss: but I'll pick up those [22:35] dgathright: Unfortunately I don't think there are many non-DOM centric JS books out there, yet. [22:36] dgathright: The Good Parts is the best book out there IMO. But, I'd hesitate to suggest it for JS newbs as it was written with people who have JS experience in mind. But, if you are understanding it just fine, then more power to you. [22:37] c4milo has joined the channel [22:37] tableton has joined the channel [22:38] dgathright: High Performance JavaScript (Zakas) is one of the best to understand the nuts & bolts of how the language and the browser work, so it's another I'd highly recommend. Anyways, enough about JS books (I could go on forev). :) [22:38] bradleymeck has joined the channel [22:38] aurynn: HAITI, I like xchat-aqua [22:39] ooooPsss: dgathright: they all have something in common.. 800+ pages :P [22:39] joshbuddy has joined the channel [22:39] joshbuddy has joined the channel [22:39] HAITI: aurynn i like a look thanks =) [22:40] ooooPsss: dgathright: Murach's JavaScript and DOM Scripting, focus on DOM? [22:40] ooooPsss: 5 stars [22:42] BrianTheCoder has joined the channel [22:42] dgathright: haha, true. some of them can be long. The Yahoo! Press ones tend to be the most concise and focused at this point. [22:42] ChrisPartridge has joined the channel [22:43] digitals1aghetti: woop! My new node.js powered twitter bot for node modules is up and running :) [22:43] ooooPsss: dgathright: there are many web applications using node.js only in production mode? (sorry for so many questions) [22:44] _announcer: Twitter: "if you want to be notified when node.js modules are updated, follow @nodemodules" -- Brian Mavity. http://twitter.com/bmavity/status/24049904801 [22:44] tg has joined the channel [22:44] aurynn: If you want to be really awesome, write a script to follow @nodemodules that runs npm update module for stuff you have installed. [22:45] webr3: aurynn, only if they haven't broken BC [22:45] aurynn: True. [22:46] webr3: ooooPsss: we're building on node.js for a production environment (cloud service w/ high traffic) in dev but will be production v soon [22:46] _announcer: Twitter: "By far the only thing to compete with NodeJS for the 'Best new use of Java Script' award for 2010 so far - http://bit.ly/bYcUF5" -- slajax. http://twitter.com/slajax/status/24050069629 [22:46] dgathright: ooooPsss: I don't think too many people are using Node in production environments just yet, aside from small little projects. Yahoo has some projects in the works w/ it, and Palm's webOS 2.0 will have Node baked into it (replacing the previously Java-based layer). [22:46] digitals1aghetti: aurynn: that would be cool - could maybe use twitter annotations for that :D [22:47] ooooPsss: webr3: nice! what are your main advntages of using it? [22:47] aurynn: digitals1aghetti, exactly :) [22:47] ooooPsss: dgathright: I understand. [22:47] bmavity: didn't mean to steal your thunder ;) [22:47] digitals1aghetti: oh no probs bmavity [22:47] zemanel has joined the channel [22:48] Anti-X: !tweet @slajax that's not a new use of javascript, they just happened to be the best at advertising that use. [22:48] webr3: ooooPsss, main advantages are async processing, lightweight, fast | coupled with redis it let's us do the HTTP job well, which is all about responding to requests and clearing them asap [22:48] _announcer: Twitter: "I have just launched @nodemodules - A new twitter service to get updates and new module notifications for #nodejs - still very alpha!" -- Tane Piper. http://twitter.com/tanepiper/status/24050192002 [22:49] eazyigz has joined the channel [22:49] digitals1aghetti: now i just need people to update their modules to make sure it doesn't break (often) [22:50] digitals1aghetti: needs a lot of re-writing as well, but at least I have the basics working [22:50] bradleymeck: MarkusT, no it shouldnt exit cause stdin is still open, (sorry had a disconnect) [22:51] MarkusT: bradleymeck: I solved it by adding process.exit(0) until I find a better solution :-) [22:51] CIA-77: node: 03Ryan Dahl 07master * r5d42cc3 10/ src/node_object_wrap.h : Use SetPointerInInternalField - http://bit.ly/age1At [22:51] CIA-77: node: 03Felix Geisendörfer 07master * rf870240 10/ (benchmark/startup.js test/fixtures/empty.js): Simple benchmark for node's startup time - http://bit.ly/bfsZoK [22:52] ryah: fucking 44ms startup time [22:52] ryah: man. [22:52] ryah: i think 30ms should be maximum [22:53] bradleymeck: ryah whats the kosher way to close stdin after opening it? [22:54] ryah: closing stdin should be left up to the person writing ito it [22:54] ryah: stdin.destroy() can be used.. but it's ugly [22:54] bradleymeck: im just looking for how to do it so the watcher on it stops really unless it is reopened [22:56] aubergine has joined the channel [22:56] bradleymeck: destroy seems to be ok, but cant reopen it, heh oh wells for now [22:57] SubStack: ACTION wonders where isaacs went [22:57] Anti-X: does the startup time matter? you're not using node.js for cgi?? [22:58] Anti-X: as, rather [22:58] digitals1aghetti: creationix1: I'm using nStore, it's rather nice :D [22:58] ryah: Anti-X: we don't want to be the next java. [22:58] Anti-X: 44ms doesn't make you the next java :P [22:59] overra_: ryah: have any idea why i might get "virtual memory exhausted: Cannot allocate memory" when trying to 'make' node? [23:01] ryah: overra_: maybe you're out of memory [23:02] Anti-X: close down some porn tabs [23:02] bradleymeck: ryah is there a bench on how long it is taking to require Buffer, path, and events in node.js [23:02] overra_: ryah: strange, i just got another server at MT, only difference is ubuntu instead of debian [23:02] bradleymeck: the file [23:02] overra_: it compiled fine on the debian server [23:03] ryah: bradleymeck: no [23:03] joshbuddy has joined the channel [23:03] elijah-mbp has joined the channel [23:03] kriszyp has joined the channel [23:03] [[zzz]] has joined the channel [23:03] wakawaka has joined the channel [23:03] bradleymeck: i think preventing the js parser from starting up again on those could save some time [23:04] HAITI has left the channel [23:04] c4milo1 has joined the channel [23:04] HAITI has joined the channel [23:04] HAITI has left the channel [23:04] HAITI has joined the channel [23:05] themiddleman has joined the channel [23:06] bradleymeck has left the channel [23:06] joshdulac has joined the channel [23:08] overra_: according to the only article that refers to this error and nodejs, says the only way is to upgrade your server lol. using 9mb out of 512mb, so i'm not out of memory :\ [23:12] sonnym has joined the channel [23:16] mostlygeek has joined the channel [23:16] vvsh has left the channel [23:17] mattikus: overra_: do you have a computer at home with the same arch? [23:17] mattikus: you could duplicate the install, build it at home then tar it up and install it on your server [23:18] njero has joined the channel [23:19] indexzero_ has joined the channel [23:21] indexzero_: creationix1: you around? [23:23] bpadalino: i find it hard to believe only 9MB of RAM is being used .. that just seems too low [23:23] overra_: sorry i checked again, it was 700mb+ [23:23] bpadalino: especially when compiling something [23:23] bpadalino: ah ok [23:24] overra_: my vps is supposed to have 512mb, but it shows it has 924mb [23:24] ooooPsss: overra_: which vps provider are you using? Linode? [23:24] overra_: mediatemple [23:25] ryah: overra_: try "export JOBS=1" [23:25] ryah: and try to build [23:26] hassox has joined the channel [23:27] mattikus: their logo looks a lot like movable type [23:28] a_meteorite has joined the channel [23:28] jelveh_ has joined the channel [23:31] JohnnyL: Any of you get Node.js working with v8 under Windows? [23:31] Anti-X: yeah [23:32] Anti-X: in cygwin [23:32] JohnnyL: Anti-X: ah ok. is it tough? [23:32] Anti-X: nope [23:32] JohnnyL: ok [23:32] Anti-X: there are instructions somewhere [23:32] Anti-X: just be thorough and it's painless [23:33] atourino has joined the channel [23:33] Anti-X: and uninstall python first if you have it, before you install cygwin, or it will act up [23:33] abiraja has joined the channel [23:35] joshdulac: anyone run any benchmarks on their node server? i cant seem to remember what that http client is for creating thousands of requests [23:35] JohnnyL: Anti-X: yup that swhat I got. [23:36] JohnnyL: Anti-X: perhaps there is a setting somewhere. [23:36] JohnnyL: I have my python just where I want it. [23:36] Anti-X: which version [23:36] JohnnyL: 2.7 [23:36] Anti-X: the cygwin python dll and the regular dll don't go together [23:36] JohnnyL: regular dll? [23:37] Anti-X: regular python dll [23:37] Anti-X: or [23:37] Anti-X: exe [23:37] Anti-X: or something [23:38] Anti-X: been a few months since i installed it.. but you need to install the cygwin python, because it can't use the windows python, and for some reason the two are incompatible [23:38] jesusabdullah: It makes sense [23:38] jesusabdullah: imo [23:39] overra_: ryah: switched to debian instead, looks like it's installing fine sofar [23:39] jesusabdullah: Because the cygwin python uses unix-style action underneath, while the windows python doesn't [23:39] JohnnyL: ah ok, thatnks for the eye opener. [23:39] Anti-X: must be cygwin using some sort of path 'python' and mixing it up with the windows path [23:39] eazyigz has joined the channel [23:39] JohnnyL: i'll just take my python out of the path [23:39] Anti-X: you can try to install it without uninstalling python, but if you get an error you know what it is [23:39] overra_: ryah: i would have tried the exports command but i had just started the install :( [23:40] joshdulac: jesusabdullah: have you run benchmarks on your node server? [23:40] sudoer has joined the channel [23:41] Anti-X: JohnnyL i don't think the error occured until the node config thing, where it wouldn't do what it was supposed to [23:41] overra_: <3 'build' finished successfully (3m27.493s) [23:43] CIA-77: node: 03Ryan Dahl 07master * r7628905 10/ (3 files in 2 dirs): Don't use empty.js - breaks module test - http://bit.ly/aG8MwQ [23:43] CIA-77: node: 03isaacs 07master * r85fb47c 10/ (5 files in 3 dirs): [23:43] CIA-77: node: Better temporary directory handling for tests. [23:43] CIA-77: node: Add a setUp and tearDown function to the test case class, and use it to [23:43] CIA-77: node: create and remove the test/tmp directory for each test. [23:43] CIA-77: node: TODO: amend other tests. - http://bit.ly/cB218r [23:45] rtomayko has joined the channel [23:45] eazyigz has joined the channel [23:45] Aria has joined the channel [23:46] [[zz]] has joined the channel [23:50] saikat: do tools exist to help me find memory leaks in my node program? [23:50] c4milo1: valgrind ? [23:50] saikat: oh right, i guess underneath it all v8 is just C++ [23:51] mirko_ has joined the channel [23:51] saikat: thanks [23:51] c4milo1: or did you mean in your js ? [23:51] saikat: well i suspect the leak is due to my JS [23:51] mikew3c_ has joined the channel [23:51] saikat: since all my code is written in JS [23:51] joshdulac: wow someone removed my module from the module listing [23:52] davidwalsh has joined the channel [23:53] Tasser has joined the channel [23:53] DTrejo has joined the channel [23:53] c4milo1: saikat: hum you can use valgrind but it's still hard to find the leaks [23:53] saikat: yeah that's what it seems like =/ [23:54] saikat: well my program isn't giant, maybe i can just start commenting out parts of it to see what makes the leaking stop [23:54] saikat: might be faster [23:54] saikat: was wondering if anyone had a better technique [23:56] rauchg_: saikat: [23:56] saikat: hey [23:57] rauchg_: you can snapshot the heap with node-profiler [23:57] saikat: oh interesting, didn't know abotu node-profiler [23:57] saikat: thanks rauchg_ [23:58] rauchg_: how are you detecting the memory leaks ? [23:58] rauchg_: ab ? [23:58] saikat: no just top [23:58] rauchg_: are you hitting it with a lot of traffic though ? [23:58] saikat: nope [23:58] rauchg_: or just leaks like a monster ? [23:58] saikat: yeah [23:58] rauchg_: i see [23:58] saikat: per-request, it's getting a huge bump and then not going down much after the request is over [23:58] saikat: likely i'm just doing something dumb [23:59] zith_: how does the v8 garbage collector usually act? [23:59] tjholowaychuk: saikat: memory session store? [23:59] rauchg_: i usually run ab on my modules to test for increasing memory usage and watch out for references that can't be garbage collected [23:59] saikat: tjholowaychuk: i have a few long-living objects [23:59] rauchg_: a common pattern i see is saving a reference to the request [23:59] saikat: that could be an issue, i need to inspect it a bit more [23:59] tjholowaychuk: saikat: ah :p [23:59] rauchg_: and requests can have large buffered req.body or similar