[00:00] ajpiano has joined the channel [00:01] _announcer: Twitter: "@caolan just started my first node.js server last night and was wondering about TDD and unit testing for Node. Thanks for the link" -- Daniel ツ Lamb. http://twitter.com/daniellmb/status/25070205146 [00:03] mape: killfill: responded on github [00:03] jameshome: isn't there an npm command for nuking old versions? [00:03] isaacs: jameshome: npm update [00:03] seangrove has joined the channel [00:04] creationix: Is it just me or are ryah, shimmer and myself all giving the same topic at jsconf? [00:04] AAA_awright has joined the channel [00:04] evilhackerdude: isaacs: i have a feeling update never deletes old versions for me [00:04] jameshome: issacs: nor for me [00:04] isaacs: evilhackerdude: it only deletes the old versions if nothing depends on them [00:04] isaacs: jameshome: does it say "not removing: ...." at any point? [00:04] evilhackerdude: how can i find out which package depends upon, say, redis@0.2.0? [00:05] isaacs: evilhackerdude: it says so when it's not-updating [00:05] CIA-77: node: 03Ryan Dahl 07master * r754fde7 10/ wscript : More explicit openssl configure warning - http://bit.ly/adwQVi [00:06] CIA-77: node: 03Ryan Dahl 07master * r9922e4e 10/ wscript : [00:06] CIA-77: node: Don't choose jobs based on processor [00:06] CIA-77: node: Leads to lots of builds with out-of-memory. - http://bit.ly/aGA5Bt [00:06] jameshome: yeah, it's explicit about it [00:06] evilhackerdude: http://gist.github.com/588898 [00:07] ooooPsss has joined the channel [00:07] isaacs: evilhackerdude: redis@0.2.2 is the lates.t [00:08] evilhackerdude: there's still redis@0.2.0 and oauth@0.8.1 installed. any way to find out who is using those old versions? (be it am ugly grep command) [00:08] evilhackerdude: *an [00:08] isaacs: evilhackerdude: redis 0.2.2 IS the latest. [00:08] isaacs: ohh, nvm [00:08] isaacs: evilhackerdude: probably you installed them with an old version of npm or something? try npm rm redis@0.2.0 [00:10] evilhackerdude: isaacs: nope, i installed redis@0.2.0 today with npm 0.2.1 [00:10] _announcer: Twitter: "webOS 2.0 coming later this year, with lots of neat stuff in it (e.g. writing system services using node.js) http://tinyurl.com/webOStwo" -- Felix Lange. http://twitter.com/fmakunbound/status/25070913298 [00:11] aconbere has joined the channel [00:11] isaacs: evilhackerdude: oh, i see. fix one bug, it makes another... [00:11] isaacs: evilhackerdude: yeah, that's a little broken. i have to comb through update again anyway, i'll test for that [00:12] jameshome: isaacs: after it failed on 'npm update' because express 1.0.0rc2 needed connect@0.2.4, I did 'npm uninstall express@1.0.0rc2' which worked, but 'npm uninstall connect@0.2.4' fails [00:12] evilhackerdude: let me know if i can help you [00:12] isaacs: in any event, npm rm redis@0.2.0 should work [00:12] aconbere: I'm getting an offset out of bounds error from fs.writeFile, it could obviously be an encoding issue on my end, I just want to know if I'm missing a common error. [00:12] isaacs: jameshome: gist [00:12] evilhackerdude: jameshome: i think i had the same problem. [00:12] _announcer: Twitter: "While divided to debug web while on the run and trotted. / MOONGIFT: NodeJS for IDE "Nodify" Open Source Software / Free Software Daily Information http://htn.to/Ad6Wdz" [ja] -- hiroyuki. http://twitter.com/ionis_h/status/25071090840 [00:12] isaacs: jameshome: installing express and connect, and then removing first one, then the other, definitely works with the latest code. [00:13] isaacs: but this "update not removing" thing is new-ish [00:14] Cainus: anyone use node-mysql? I'm getting "TypeError: undefined is not a function" off a simple call to connect()... [00:16] jameshome: issacs: http://gist.github.com/588910 [00:16] sprout has joined the channel [00:16] jameshome: I'm sure if I just uninstall them both entirely and reinstall it'll be fine [00:16] jameshome: but if I can help surface a bug, let me know [00:17] s0enke: writing a url matching regexp for the 10000000000000st time... ;) [00:17] sechrist: s0enke: bleh [00:18] s0enke: languages should have it built-in, like e-mail ;) [00:18] _announcer: Twitter: "Trying to get a Palm Pre again so I can do some Node.js hacking. It looks like a ton of fun!!" -- Dav Glass. http://twitter.com/davglass/status/25071516364 [00:18] sechrist: wait what.. node.js ON the palm pre? [00:19] isaacs: s0enke: var obj = require("url").parse(str) [00:19] sechrist: now I'm sad that I missed the nodejs event at palm inc last week [00:19] isaacs: s0enke: don't write a url parser. it sucks. [00:19] jameshome: sechrist: http://bit.ly/9cZpQg [00:20] tjholowaychuk: we should add node-jscoverage reporting to node core :D [00:20] sechrist: oh that is totally baller [00:21] sechrist: my kindle has a build of node on it :) [00:21] sechrist: but not near as useful [00:21] evilhackerdude: has someone gotten node on iphone to work? [00:21] s0enke: isaacs, i just need to match out url(s) out of a string, no more parsing - just .match(/https?:/\/\.*?\s|$/ig or so [00:21] sechrist: is there an inherent problem with building it, or are you asking if somebody has? [00:22] _announcer: Twitter: "I put NicoProxy. http://d.hatena.ne.jp/hayori/20080609/1213005114 is quite useful and I'm sorry but the video not seen any cash during the download. The rewrite Node.js." [ja] -- edvakf. http://twitter.com/edvakf/status/25071786308 [00:22] evilhackerdude: sechrist: (1) no idea (2) yes [00:22] gerred_ has joined the channel [00:22] sechrist: I build nodejs on the actual kindle so I assume building it on the iphone with the jailbreak libstds should work just fine [00:22] sechrist: I mean as a console app.. not a xproj [00:22] jesusabdullah: On the kindle? [00:23] isaacs: s0enke: "My favorite wikipedia entry is http://en.wikipedia.org/wiki/Tar_(file_format)." [00:23] sechrist: Yeah.. I got a kindle awhile back and I got a shell on it. I wrote a node-based proxy to abuse the 3G on it [00:23] isaacs: s0enke: parsing urls in text is HARD. [00:23] sechrist: but it's so restricted that I don't really care [00:23] sechrist: hard to do properly* [00:23] jameshome: isaacs: another gist, showing more clearly npm maintaining a dependency to support something that isn't installed [00:23] dnolen has joined the channel [00:23] jameshome: http://gist.github.com/588925 [00:24] MattJ: isaacs: my IRC client stops before the '(' :) [00:24] alishah has joined the channel [00:24] sechrist: an actual regex made to spec of URLs [00:24] isaacs: jameshome: yeah, probably there's a symlink in there that shouldn't be. this happens a lot if you install something pre-0.2.0 and then update npm [00:24] sechrist: probably wouldn't work properly [00:25] jameshome: okie, I'll dig around. thanks! [00:25] isaacs: jameshome: also, i see this a lot more frequently with the homebrew installed npm [00:25] isaacs: jameshome: i dont' recommend using npm like that. [00:26] jameshome: no? [00:26] alishah: hi can i install node on windows xp i have minGW compiler and python 2.6? [00:26] isaacs: nope [00:26] sechrist: for posixy stuff you need cygwin [00:26] sechrist: at the very least [00:26] jameshome: isaacs: fair enough. I'll rethink [00:27] alishah: sechrist, thanks [00:27] _announcer: Twitter: "WebOS2.0 is improving could services, html5 support, and node.js . Cool! #mobile20" -- John Arne S.. http://twitter.com/jonarnes/status/25072193182 [00:27] _announcer: Twitter: "MOONGIFT - NodeJS package manager for "npm" http://bit.ly/dCaUYu" [ja] -- マルコ式. http://twitter.com/malko73/status/25072199700 [00:27] _announcer: Twitter: "MOON POISON - NodeJS 用 IDE "Nodify" http://bit.ly/afICsh" [da] -- マルコ式. http://twitter.com/malko73/status/25072224409 [00:29] _announcer: Twitter: "web0S 2.0 is cool. geoloc. better canvas. local and session storage integration of node.js. DAvid Balmer #palm #mobile20 #html5" -- Vidhya Gholkar. http://twitter.com/vgholkar/status/25072314098 [00:29] bsstoner has joined the channel [00:30] jakehow has joined the channel [00:30] isaacs: jameshome: this way works really well: http://gist.github.com/579814 [00:32] peten has joined the channel [00:33] jameshome: using that methodology makes updating node a manual process, yes? [00:34] _announcer: Twitter: "webOS is making node.js on a device! #mobile20 #mobile #ajax #mobileapps #developer" -- Vidhya Gholkar. http://twitter.com/vgholkar/status/25072740070 [00:34] aheckmann has joined the channel [00:35] _announcer: Twitter: "WebOS2.0: Node.js available on the device... #mobile20" -- John Arne S.. http://twitter.com/jonarnes/status/25072763945 [00:35] peten has left the channel [00:37] hansek_ has joined the channel [00:42] s0enke: isaacs, https?:\/\/.*?)(?=\s|$)/ig does the job quite well (watching a live twitter live stream with many kinds of strange urls ;) ) [00:43] isaacs: s0enke: yeah, that's probably gonna get you 90-something percent there [00:43] isaacs: surely good enough :) [00:44] richcollins has joined the channel [00:44] technoweenie has joined the channel [00:45] s0enke: isaacs, probably. next step: de-shortify urls ;) [00:45] isaacs: s0enke: see if you can get the code for the "long url please" firefox extension. [00:45] isaacs: i'm willing to bet it's in js [00:46] isaacs: but probably full of javascript-isms [00:46] isaacs: er, firefox-isms [00:46] isaacs: mozillisms? [00:46] zith_: i hate it when people use shortened url outside of twitter [00:46] zith_: urls [00:47] s0enke: heheh. yeah but i guess the extension is just GETting the url and looking for Location: header [00:50] vmthehut has joined the channel [00:53] pengwynn has joined the channel [00:53] gthb has joined the channel [00:55] MikhX_ has joined the channel [00:56] tk has joined the channel [00:56] vmthehut has joined the channel [00:57] franksvalli has joined the channel [00:58] nerdEd has joined the channel [00:59] rtomayko has joined the channel [01:05] aconbere: ah hah! [01:05] aconbere: I was accidentally slurping in a png [01:05] aconbere: and then splitting on \n\n [01:05] aconbere: oops! [01:05] aconbere: :) [01:06] aconbere: (will apparently cause a utf8 offset error) [01:14] _announcer: Twitter: "@chpapa @royuen We can do node.js +trigger on mongodb, it also useful for @pandaform!" -- rickmak. http://twitter.com/rickmak/status/25075898137 [01:16] Anti-X: does mongodb solve a problem? at all? [01:17] _announcer: Twitter: "VM debian -> up! VM's network config -> up! Node.js server -> up! = D for a noob to linux get to have this joke ... =)" [pt] -- Couto. http://twitter.com/coutoantisocial/status/25076139934 [01:18] pedrobelo has joined the channel [01:18] _announcer: Twitter: "Experimenting with node.js" -- Nathan Stehr. http://twitter.com/laserdeathstehr/status/25076218759 [01:20] HAITI has joined the channel [01:21] callen: JimBastard: boo. [01:22] HAITI: cheers [01:22] ehaas has joined the channel [01:22] JimBastard: ? [01:23] zith_: mksession might be the best vim command ever [01:23] zith_: <3 [01:24] isaacs: jameshome: found the error. [01:24] isaacs: jameshome: fixed on 165cfda698fcc36b70ff535a35ec0297eccd25a4 [01:24] jameshome: issacs: sweet! I set things up in a saner way anyway [01:24] isaacs: s0enke: more likely HEADing the url [01:24] jameshome: thanks for the prompt on that [01:24] isaacs: jameshome: the issue is that it was only going through the "update and prune" code path if there were dependencies to update. [01:25] isaacs: otherwise it was like "eh. nothing to do!" [01:25] jameshome: ah, makes sense [01:25] derencius has joined the channel [01:25] isaacs: which looked totally sane reading the code because it's like "if there are dependents, update dependents, otherwise return" [01:25] isaacs: :) [01:25] jameshome: right [01:25] s0enke: isaacs, also thought of that. will try, should save some bandwidth and performance ;) [01:27] jakehow has joined the channel [01:28] lkajlkasjd has joined the channel [01:28] s0enke: yeah, it's de-shortifying [01:29] saikat has joined the channel [01:30] Yuffster has joined the channel [01:31] saikat_ has joined the channel [01:31] technoweenie has joined the channel [01:34] sprout has joined the channel [01:37] s0enke: any hint what this means? -> http://pastie.org/1171292 ( i wrapped the whole http client thing in a try/catch block but it's not triggered) [01:37] steadicat has joined the channel [01:37] JimBastard: s0enke: request.on('error', function(err) [01:38] lhardy has joined the channel [01:38] s0enke: thx [01:38] Anti-X: you'd probably be better off with process.on('uncaughtException'.. also [01:38] aconbere: so ... if I want to get the latest changes to the stable branch from the node git repository. I do a git pull (retrieve all the changes), and then a git pull origin master (get the latest changes for master), is there some point where this magically updates my tracking branch for stable? [01:39] s0enke: Anti-X, ok. thx. :) [01:39] JimBastard: Anti-X: not really [01:39] JimBastard: thats not really good advice [01:39] Anti-X: i said ALSO [01:39] JimBastard: fair enough [01:39] JimBastard: im in the middle of an uncaught error battle [01:39] evilhackerdude: and it's ok if it's only for debugging, isn't it? [01:39] JimBastard: i could fix it with that [01:39] JimBastard: but i refuse! [01:40] Anti-X: yeah of course, you should catch it as close to the problem as possible [01:40] Anti-X: but you don't want your server to crash if one slips past! [01:40] evilhackerdude: powerful jedi know which emitter emits the error [01:40] Anti-X: imaginary creature is imaginary [01:40] evilhackerdude: Anti-X: you're saying the server should catch the exception and go on like nothing happened? [01:41] Anti-X: evilhackerdude, if it's in production, yeah [01:41] Anti-X: JimBastard, what you could do is catch the exception and print .stack [01:41] Anti-X: that should give you a clue [01:41] Anti-X: :P [01:41] Anti-X: as to where it is [01:41] s0enke: Anti-X, mhm. uncaught exception means your application is in bad state. i'd not like it to resume then [01:41] evilhackerdude: well, i have no realy experience with that but check out this: http://debuggable.com/posts/node-js-dealing-with-uncaught-exceptions:4c933d54-1428-443c-928d-4e1ecbdd56cb [01:41] jacobolus has joined the channel [01:42] _announcer: Twitter: ". @joyent rocks! Thx for the sponsorship of my #NodeJS #ignite talk @dosug on 10/5! Mega giveaway! U better go! http://yfrog.com/miokvj" -- Andy E.. http://twitter.com/virtualandy/status/25078063387 [01:42] s0enke: rather an angel script that restarts node [01:42] _announcer: Twitter: "I've decided on the stack for my new mobile project: Appcelerator Titanium, node.js, MongoDB" -- Sam Gilbert. http://twitter.com/sam1vp/status/25078077630 [01:42] evilhackerdude: s0enke: his code is so awesome, it constantly expects to be raped by carebears [01:42] evilhackerdude: i agree with the angel script approach [01:43] evilhackerdude: i think if you're doing it right [tm], you don't mess with the global state. the problem would be libraries though. [01:46] s0enke: sledgehammer method (die, log, restart) is the safest way for me in such cases -> never assume anything ;) [01:48] tk has joined the channel [01:49] ysynopsis has joined the channel [01:49] _announcer: Twitter: "@pipioinc Did I awaken the almighty Pipio giant? =D Yes, websockets and node.js #FTW for Twitter streaming. Streamie is #opensource too." -- John Pyper. http://twitter.com/jpyper/status/25078677707 [01:51] davidwalsh has joined the channel [01:53] yrashk: did anybody see node.js binding for zookeeper? [01:55] bradleymeck1 has joined the channel [01:57] kjy112 has joined the channel [01:58] s0enke: JimBastard, mhm i'm still getting the error even with on('error') >> http://pastie.org/1171331 [01:58] s0enke: any idea= [01:58] JimBastard: ending the request before you put a response handler on it is prob not a good idea [01:59] s0enke: indeed ... [02:01] s0enke: well i moved the end() call to the end of the block, but it still happens :-/ [02:02] lachlanhardy has joined the channel [02:03] bradleymeck1: whats doing who now? [02:04] bradleymeck1: why is that callback wrapped with something that just gives it a reference to an object in the scope above? [02:05] _announcer: Twitter: "@davglass the node.js stuff in webos 2.0 might totally un-defect me from android" -- l.m. orchard. http://twitter.com/lmorchard/status/25079862902 [02:10] mjr_ has joined the channel [02:10] s0enke: bradleymeck, yes this is superfluous :) [02:11] ivong has joined the channel [02:12] wilmoore_ has joined the channel [02:12] benburkert has joined the channel [02:15] saikat: rauchg_: around? [02:18] ivong has left the channel [02:19] q_no has joined the channel [02:19] cardona507 has joined the channel [02:21] matschaffer has joined the channel [02:30] _announcer: Twitter: "#nodejs, simply put, is the new Rails. There, I said it. Get on board, or get left behind." -- NodeCore. http://twitter.com/nodecore/status/25081766968 [02:32] _announcer: Twitter: "Decided to stick with jQuery as opposed to Google Closure for tweet.cache (http://j.mp/bM1dd2), will implement node.js for server side code." -- Michael Diolosa. http://twitter.com/mbrio/status/25081913519 [02:32] _announcer: Twitter: "It's slowly becoming more clear to me, just how awesome #node.js is." -- Ryan Lazuka. http://twitter.com/lazukars/status/25081927284 [02:33] bradleymeck1: i find this interesting http://jsperf.com/closure-vs-argumentmask [02:34] matschaffer has joined the channel [02:35] Anti-X: what [02:35] Anti-X: with 3 million operations per second, the closure was 2% slower [02:35] Anti-X: that means, it doesn't matter [02:38] bradleymeck1: yea, but it just surprised me it isnt optimized out, oh wells [02:39] Anti-X: safari took a performance hit on it even [02:39] bradleymeck1: wait a min, looks like safari is doing optimization to remove that scape [02:39] bradleymeck1: scope* [02:39] s0enke: mhm i don't get it - still dieing after some urls: http://pastie.org/1171387 - anyone? [02:40] bradleymeck1: ryah about? [02:40] Anti-X: bradleymeck1, did chrome really do 10 times as many ops per second as opera? [02:40] Anti-X: sheesh [02:40] bradleymeck1: yes [02:40] Anti-X: v8 rules [02:40] v8bot: Anti-X: "ReferenceError: rules is not defined" [02:40] Anti-X: shut up [02:40] jimmybaker has joined the channel [02:40] bradleymeck1: and safari beats chrome on argument masking optimization by doing it [02:41] Anti-X: v8 eval = 1 [02:41] v8bot: Anti-X: 1 [02:41] bradleymeck1: whew, that with value beats v8 hard [02:41] Anti-X: v8 eval = 1;stuff [02:41] v8bot: Anti-X: "ReferenceError: stuff is not defined" [02:41] bradleymeck1: never set eval to one in your browser lol [02:42] ajsie: someone that could explain what blocking is? [02:42] bradleymeck1: sure [02:42] ajsie: i have read a lot but still dont get it [02:42] bradleymeck1: do you know threads? [02:42] ajsie: kinda [02:42] ajsie: but not exactly [02:42] bradleymeck1: ok well then ill do the long version [02:42] ajsie: they are CPU resources [02:42] ajsie: that execute a code? [02:42] ryah: bradleymeck1: kind of [02:43] jesusabdullah: ajsie: How about normal programming? [02:43] ajsie: jesusabdullah: i know normal programming [02:43] jesusabdullah: Okay [02:43] ajsie: i know ruby, rails, javascript [02:43] ajsie: php =) [02:43] bradleymeck1: seems there is a http parser error http://pastie.org/1171387 [02:43] jesusabdullah: So, you know how in normal programming, you execute things in order? [02:43] jesusabdullah: Like, let's say you do something like [02:43] ajsie: jesusabdullah: yeah [02:43] jesusabdullah: thisFunctionTakesAges(); [02:43] jesusabdullah: console.log('I just ran that function!'); [02:44] Anti-X: http://en.wikipedia.org/wiki/Threads_(programming) (wild guess on the url there) [02:44] jesusabdullah: If it's blocking, first we run ThisFunctionTakesAges, and when that's aaaaaaall done [02:44] jesusabdullah: THEN we run the next command [02:44] jesusabdullah: So you wait like 20 minutes, then the second function kicks in [02:44] endtwist has joined the channel [02:44] jesusabdullah: If it's non-blocking, the first function goes and does its own thing and lets the second line execute *while* that happens [02:44] ryah: bradleymeck1: maybe the server is serving bad http [02:45] ajsie: jesusabdullah: that was a good and simple explanation [02:45] bradleymeck1: fair enough s0enke can you check the http you got? [02:45] jesusabdullah: Thanks [02:45] ajsie: like ajax i guess [02:45] ajsie: they fire off functions..and have a callback for it right [02:45] bradleymeck1: a dump from socket pref [02:45] jesusabdullah: Yeah [02:45] s0enke: bradleymeck1, do you have a code snippet how to dump? [02:45] jesusabdullah: In fact, it's no accident that node.js is javascript [02:46] wakawaka has joined the channel [02:46] ajsie: jesusabdullah: i dont get the threads and processes and workers however [02:46] jesusabdullah: javascript works pretty well with async code [02:46] jesusabdullah: Not my forte ;) [02:46] ajsie: in serial programming or what u call it...does it consume one thread? [02:46] bradleymeck1: not on my home machine, heh, preferably something like wireshark were you can dump the hex values [02:46] s0enke: btw i just upgraded to shiny new v2.2 [02:46] jesusabdullah: ajsie: Basically, yeah [02:47] s0enke: ah will try some tcpdump [02:47] _announcer: Twitter: "Package manager NoteJS npm. I'm beginning a NodeJS ... / MOONGIFT: NodeJS for package management "npm" Open Source Software / Free Software Daily Information http://htn.to/JPtd8T" [ja] -- まっは. http://twitter.com/mach3ss/status/25082996962 [02:47] ajsie: but node.js runs only one process it says [02:47] jesusabdullah: well [02:47] richcollins has joined the channel [02:47] bpadalino: get the web workers working [02:47] jesusabdullah: processes are a sort of abstraction--basically a list of commands for the operating system to figure out [02:47] jesusabdullah: then the OS decides what to run from what [02:48] jesusabdullah: One strategy for non-blocking code is to write code such that it can run on two or more threads that communicate with each other [02:48] jesusabdullah: also allows for parallelism [02:49] ajsie: okay [02:49] evilhackerdude: riak is fun. [02:49] bradleymeck1: processes are akin to threads that dont share memory (very basic abstraction. they have more overhead memory wise but not sharing memory can allow some nice optimizations. could go on for hours on actual diffs) [02:49] Tim_Smart has joined the channel [02:49] jesusabdullah: Node just juggles everything inside one thread [02:49] jesusabdullah: (I may be wrong) [02:50] ajsie: bradleymeck1: ok so like threads but not sharing memory pool [02:50] Aria: Node uses threads to deal with APIs that block. [02:50] bpadalino: there's a threadpool i think in eio .. but it's pretty limited [02:50] Aria: Indeed. [02:50] bradleymeck1: it juggles what it can, some stuff is really hiding threads so that memory doesnt share (due to lack of async API's) [02:50] Aria: But code node runs is single-threaded. [02:50] s0enke: bradleymeck1, ryah - mhm it's kinda random. last run i got "Error: ETIMEDOUT, Connection timed out". [02:50] jesusabdullah: one v8 thread right? [02:50] jesusabdullah: That makes sense [02:50] Aria: Yes, one V8 thread. [02:51] jesusabdullah: i mean, that .node files would use other threads [02:51] ajsie: so when a browser is retrieving a page .. then it runs a separate thread? [02:51] jesusabdullah: Hard to get blocking code to not-block otherwise, I'd think [02:51] s0enke: this time "Error: ENOTFOUND, Domain name not found" in dns - [02:51] ajsie: if i have 100 browsers connecting to my node.js server .. do it start 100 threads? [02:51] ajsie: like php/ruby [02:51] ajsie: or does it only use that one thread? [02:51] bpadalino: one thread [02:51] jesusabdullah: the javascript interpreter should only use one thread [02:52] ajsie: hmm [02:52] bradleymeck1: ajsie no [02:52] jesusabdullah: which is why it's all speedy gonzales >:P [02:52] jesusabdullah: VROOM VROOM [02:52] bradleymeck1: you have one thread that has many things just waiting on socket callbacks [02:52] ajsie: but how can it allow asyncrhonous coding .. when it only runs on one [02:52] ajsie: i dont get the lower level [02:52] s0enke: bradleymeck1, shouldn't those errors be catched by the try/catch block or am i misunderstanding something completely [02:53] evilhackerdude: it relies on libeio and libev to tell it when to continue [02:53] skampler_ has joined the channel [02:53] Aria: Yeah. Just one. Since you can't do more than one thing at a time per core anyway, and it gets dicey when you do... [02:53] jesusabdullah: ajsie: How would you work on multiple projects at once, being one person? [02:53] jesusabdullah: It's like that [02:53] Aria: ...might as well switch at opportune times with no stack needed to be saved, rather than yanking the execution about all manner of nonlinear. [02:53] jesusabdullah: Each process is like a person [02:53] jesusabdullah: but if one person can multitask, then, well [02:53] bradleymeck1: s0enke yes, but if its being given bad http that might mean its a parser error. (try catch wont save your callbacks :) ) [02:53] jesusabdullah: they can handle more concurrent http connections. >:P [02:54] ajsie: but if i fire off one function and wait for the results to enter the callback ... will that function be run in the same thread? [02:54] jashkenas: quick question: has anyone settled on a standard pattern yet for exporting public objects for libraries that are designed to run on both the server and browser? safely attaching the objects to either "exports" or "window", as appropriate? [02:54] Aria: Yes. There is ONE thread. [02:54] jesusabdullah: Yup! [02:54] ajsie: i think there is ONE process [02:54] ajsie: no threads [02:54] s0enke: bradleymeck1, mhmkay but then i don't understand why my error callback isn't triggered [02:54] Aria: There is as many processes as you start, and one thread. [02:54] ajsie: according to a slide i just saw =) [02:54] Aria: Well, yeah. [02:54] konobi: pquerna: it appears your understanding of PaaS might be a little off [02:55] jesusabdullah: Just like how you would do part of a project, set it aside and work on part of another project, then come back to the original one [02:55] Aria: "one thread" and "not threading" are the same thing [02:55] bradleymeck1: s0enke thats why i asked for a dump to try and see if i could help locate anything odd [02:55] jesusabdullah: except REALLY FAST [02:55] Aria: Yeah. You set it aside WHEN YOU GET to a stopping point. [02:55] ajsie: http://www.slideshare.net/ggoodale/getting-started-with-mongodb-and-nodejs [02:55] Aria: "Okay, glue's drying. Next task!" [02:55] s0enke: bradleymeck1, yes. I'm trying hard. but error messages are random, and urls are random ... ;-) [02:55] ajsie: the 2nd page [02:55] ajsie: 1 process .. none threads [02:55] konobi: closures and references are fun [02:56] Aria: ajsie: "none threads" and "one thread" are the same thing. [02:56] bradleymeck1: jashkenas yes generally ive seen some people do : (function(exports){})(typeof exports !== "undefined" ? exports : window) [02:56] ajsie: Aria: ok [02:56] bradleymeck1: s0enke sounds like a hard thing to debug [02:56] Aria: ajsie: There is a single execution context, there's a single stack. There's never two things going on at once, no locks needed. [02:57] Aria: (in fact, the event emitter is pretty much a foreach loop: It calls each event handler in order.) [02:57] bradleymeck1: well semaphores may be needed, but exceedingly rare [02:57] s0enke: bradleymeck1, i'll do some strace, but i dunno if the IO thread is covered as well [02:58] q_no has joined the channel [02:58] ajsie: Aria: but why can't php have the same [02:58] Aria: It could. [02:58] ajsie: even though its running one thread per site request [02:59] ajsie: it seems that many threads == blocking ... and single == none-blocking [02:59] ajsie: how could this be [02:59] quirkey has joined the channel [02:59] Aria: Well, yeah. Threads are used for two things: to not block on a blocking API, and to actually do two things at once. [02:59] bpadalino: SNR quickly approaching 0dB [02:59] Aria: The first case is a hack to work around terrible APIs. [02:59] bradleymeck1: single does not mean non-blocking, you could only be doing one thing at a time [02:59] Aria: The second case is hard. It means a lot of careful thought [03:00] Aria: Unfortunately, th downfalls of the second case affect the first, too. So better to use good APIs, like non-blocking IO [03:00] Aria: (completion ports / evented / polling / whatever) [03:01] dipser has joined the channel [03:01] Aria: With threads, you end up with possibly MEGABYTES of stacks in RAM -- this thread deep in that thing, another thread deep in another, and the whole time, execution of one is halted to make room for another. [03:01] Aria: All sorts of context switches. [03:02] bradleymeck1: ajsie php could theoretically have the same, but by nature it was built to be a single stream out, so it would be a bit odd with how to make it work [03:02] Aria: With a single threaded, non-blocking design -- which events like node uses are a nice API for -- the stack unwinds each time, every task runs to completion -- like it would anyway -- but the interleaving happens when there's a wait for IO, not when the scheduler fires. [03:02] langworthy has joined the channel [03:02] kjy112 has joined the channel [03:03] Aria: The equivalent of handing someone a new task every 5 minutes, done or not on the prior, and letting them finish one before handing them the next. [03:03] bradleymeck1: basically the cost of context switches is exchanged with stacks being popped down and up by lesser amounts [03:04] ajsie: ok [03:04] ajsie: is node.js ready to use for production for real? [03:04] Aria: It's solid. [03:04] bradleymeck1: some places are using v0.2.0 in production as we speak [03:04] ajsie: there arent many libraries out there like rails i guess [03:04] bradleymeck1: yahoo, github, transloadit, etc [03:05] Aria: You still need good production practices, to catch possible errors, of course, but yes. [03:05] bradleymeck1: yahoo mail* [03:05] Aria: Heh, that's possibly for the best. Rails is huge. [03:05] ajsie: are there basic libraries for validations, unit testing etc [03:05] Aria: Look at the wiki. [03:05] ryah: ajsie: http://wiki.github.com/ry/node/modules [03:05] ajsie: ok [03:06] Aria: In short, yes, there's tons. Especially unit testing [03:06] Aria: Like ruby, too many ;-) [03:06] ajsie: ok [03:06] ajsie: wow [03:06] JimBastard: that reminds me [03:06] jameshome: heh [03:06] ajsie: long list [03:06] JimBastard: i should update the page [03:06] Aria: Yeah. [03:06] bradleymeck1: for forms i would recommend node-formidable [03:06] JimBastard: i have like 4 projects i havent added [03:06] ajsie: sounds very interesting i have to say [03:06] bradleymeck1: i need to as well, but i am le lazy [03:07] JimBastard: bradleymeck1: what category does nexpect go in >.< [03:08] bradleymeck1: idk sec [03:08] ajsie: which MVC frameworks are the mainly used ,like rails [03:08] Aria: By the way, bradleymeck1. Nice API on nexpect. Delightfully tidy. [03:08] ajsie: is it express only or are there others [03:08] JimBastard: mvc is lame [03:09] ajsie: JimBastard: why? [03:09] Aria: ajsie: depends. Lots more request-response than MVC ;-) [03:09] JimBastard: Aria: thanks! nexpect is from nodejitsu [03:09] bradleymeck1: other? , nexpect isnt mine [03:09] Aria: MVC was meant for GUI apps like CAD, not web development. [03:09] callen: JimBastard: wake up. [03:09] Aria: Oh. Oops. Sorry! [03:09] ajsie: Aria: but where do i put my models then? [03:09] ajsie: and views [03:09] Aria: ajsie: In a database? In RAM? [03:09] bradleymeck1: i refuse to have sensible apis come out from my typing [03:09] ajsie: SproutCore uses MVC [03:09] JimBastard: ajsie: lol, rails [03:10] Aria: What is a 'view' then? [03:10] JimBastard: rails lol [03:10] JimBastard: conventions over programming knowledge [03:10] Aria: It's a total bastardization of 'MVC' -- it's a request-response cycle, with transformations [03:10] bradleymeck1: mvc is kinda redundant with first class functions idk. then again mvc always confused me [03:10] Aria: Yes, you want to isolate your data model from the nuts and bolts of HTML. Because HTML is ugly, and subject to change. [03:11] JimBastard: we are building our big apps with a django like convention, you have apps that can talk to each other [03:11] Aria: bradleymeck: MVC is AWESOME if you're writing, say, a CAD app -- something with an abstract model you're creating, and many ways to look at it, and a list of things you can do to it. [03:11] JimBastard: mvc is old and busted for server-side web dev. [03:11] Aria: Yeah. . . Rails is calling something MVC that isn't. [03:11] JimBastard: views should be generated on the client [03:11] bradleymeck1: aria i guess but i tend to not have shared models like that if i can avoid it [03:11] Aria: Or the client /is/ the view. [03:12] ajsie: JimBastard yeah .. like SproutCore [03:12] Aria: bradleymeck1: Of course! For many, many things, that's the right answer. [03:12] ajsie: but i still have to have models [03:12] ajsie: for object representations [03:12] Aria: 'course. Otherwise all you have is pretty pictures. [03:12] ajsie: what does Express use? [03:12] Aria: But you can use something like mongodb, where the models come at you as a blob of JSON [03:12] Aria: ajsie: Whatever you want! [03:13] ajsie: Aria: sounds interesting [03:13] Aria: Or you can use a filesystem full of files, a git repo ... Lots of options. [03:13] _announcer: Twitter: "NNNN (Not Windows, NginX, NoSQL, Node.js) a matter of if I talk to colleagues, "Web to the next generation platform LAMP or rather conservative in my head trying to tell the time fixed for the same four elements "hard and slash. Sure. The Fair enough." [ja] -- Tsuyoshi Akase. http://twitter.com/akase244/status/25084895483 [03:13] Aria: An SQL database. [03:14] Aria: (and they don't have to be in-process. Lots of blue sky out there.) [03:14] Aria: Use the right tools for YOUR data, and your app. [03:14] ajsie: never thought about to cut out the models [03:14] Aria: Not just some thing that someone decided was a good enough practice at some point. [03:15] ajsie: Aria: but in the models in Rails it specifies the validations [03:15] ajsie: for each field [03:15] s0enke: bradleymeck1, ok boiled it down. the problem is trivial, it's just invalid or not resolvable hostnames, or network timeout. and the on(error) callback is not executed. test code: http://pastie.org/1171431 - this is something really stupid, isn't it? [03:15] ajsie: that the database cannot do [03:15] Aria: Sure. Or some databases cannot do. [03:15] ajsie: and the relations between the objects [03:15] _announcer: Twitter: "so far, I'm digging Express as my #nodejs web framework and Jade (haml) as my view engine:http://bit.ly/aKPALJ http://bit.ly/deiRKY" -- Nick Riggs. http://twitter.com/nickriggs/status/25085040474 [03:16] creationix has joined the channel [03:16] pbradek_ has joined the channel [03:16] skampler1 has joined the channel [03:17] bradleymeck1: s0enke yea should probably add a ticket about making invalid/non-resolved host names emit/throw errors [03:17] Aria: There's LOTS of ways to do such things. Keeping a consistent data model depends on how you do such a thing. [03:17] Aria: Field-by-field validations are just one way. [03:18] s0enke: ryah, any further hint? if not i'll follow bradleymeck1's advise ;) [03:18] ajsie: Aria: how does field-by-field validations work? [03:18] Aria: Depends. how do you want them to work. Sounds like you already know -- it's what Active Record uses in Rails. [03:19] ajsie: Aria: which are others options? [03:19] ajsie: if i skip the models and just use them as are from database as documents .. how do i validate them before i put them inside mongodb [03:19] Aria: Depends. What are you validating? [03:20] Aria: This depends on the task, not on the technology. [03:20] ajsie: User.username, User.email [03:20] ajsie: etc [03:20] ajsie: Thread.title, Thread.body [03:20] ajsie: nothing violating what could contain in them [03:20] Aria: if(User.username && User.email) save() [03:20] Aria: However you want to set it up. [03:20] jameshome: it seems like you're asking if there's a form validation module [03:21] ajsie: jameshome: kinda .. just want to know a good solution [03:21] jameshome: that does things like validate email addresses and username lengths and the like [03:21] pbradek_ has joined the channel [03:21] ajsie: but there is Mongoose [03:21] ajsie: for mongodb in javascript [03:22] jameshome: well there you go [03:25] iwasbiggs has joined the channel [03:25] scnd has joined the channel [03:26] s0enke: woah it's 5:25 here. have to go to sleep ;) [03:26] _announcer: Twitter: "Video: Node.js by Ryan Dahl - JSConf.eu - 2009 http://ow.ly/195H5v" -- Javascript News. http://twitter.com/del_javascript/status/25085808611 [03:29] fod has joined the channel [03:29] Anti-X: :D [03:30] ajsie: oops [03:32] cnu has joined the channel [03:32] jacobolus has joined the channel [03:32] Me1000 has joined the channel [03:36] ajsie: jameshome: but you still have to define methods for models [03:36] ajsie: eg. User.vote_up [03:36] ajsie: or User.delete_account [03:36] ajsie: that you do in the models .. so you still have to have models i guess [03:37] JimBastard: hey sr you alive? [03:38] silentrob has joined the channel [03:38] bradleymeck1: no [03:39] JimBastard: these connect middle wares dont make sense to me [03:39] JimBastard: i dont understand why http://github.com/sr/connect-basic-auth requires connect [03:40] SteveDekorte has joined the channel [03:40] JimBastard: couldnt you just rip out connect dep and make it take a res, req, and callback? [03:40] Tim_Smart: JimBastard: Pretty much. [03:40] Tim_Smart: You can use most connect middleware with biggie-router for example. [03:40] JimBastard: i get how having the sugar syntax is good, but i think that could be achieved without tanking it for non connect [03:41] JimBastard: Tim_Smart: is it built on connect? or do you just stub out the connect dep? [03:41] JimBastard: or what? [03:41] Tim_Smart: As long as it doesn't require() any connect specific modules. [03:41] deepthawtz has joined the channel [03:41] Tim_Smart: JimBastard: Totally difference code-base. [03:41] Tim_Smart: s/difference/different/ [03:42] JimBastard: hrmm, this should just work actually [03:42] JimBastard: http://github.com/sr/connect-basic-auth/blob/master/lib/basicAuth.js [03:45] jakehow has joined the channel [03:45] gsmcwhirter: digitalspaghetti, around? [03:49] jamescarr_: man... heroku was making me cry today... I did a deploy, things broke badly, and I had no access to irc [03:50] jamescarr_: heh, I need to make a heroku staging site [03:50] jamescarr_: sheesh [03:50] jamescarr_: my app worked fine locally, but when deployed to heroku with what was trivial updates it went bang [03:50] JimBastard: jamescarr_: lol [03:50] jamescarr_: EIN invalid value or something [03:50] jamescarr_: going to create a staging site and see what it was [03:50] JimBastard: i heard those nodejitsu guys were launching soon [03:51] jamescarr_: :) [03:51] jamescarr_: is cloudhead here? [03:52] jamescarr_: I've been dealing with a nightmare with cradle :( [03:52] jamescarr_: I mean, overall it works fine until I turn caching off [03:53] ajsie: jameshome: are there any hosting for node.js ? [03:53] ajsie: more than heroku .. cause they are not allowing more users for their beta [03:54] jesusabdullah: joyent [03:54] jesusabdullah: joyent smartmachines are awesome. we used one for the node knockout [03:55] jesusabdullah: Also, I think the nodejitsu guys are going to start doing paid hosting sometime [03:55] ajsie: jesusabdullah: with joyent i create vps and take care of everything myself? [03:55] ajsie: or is it like heroku i just do some commands and its up and running [03:55] JimBastard: jamescarr_: how so? [03:56] jamescarr_: JimBastard, let me find out [03:56] jamescarr_: last night it was late and I was pooped [03:56] JimBastard: cradle seems to behave here [03:57] JimBastard: we could still pipe 300+ requests per second (with every request doing a couchdb hit) with no cradle cache on [03:57] JimBastard: after cache it bumped up a bit [03:57] JimBastard: thats single core [03:57] jamescarr_: cool [03:58] jamescarr_: thread saftey issues? I use the same connection across all requests [03:58] cloudhead has joined the channel [03:58] jamescarr_: I'll turn it off again and see :) [03:59] jesusabdullah: ajsie: I didn't set it up initially, but once it was, we just pushed our git repo to them and it took care of everything. Almost certain we didn't have to do any vps stuff, as they're node instances. [03:59] rtomayko has joined the channel [04:00] jchris has joined the channel [04:00] bpot has joined the channel [04:00] ajsie: jesusabdullah: okay great [04:01] jamescarr_: working like a charm [04:01] emmanueloga has joined the channel [04:01] bradleymeck1: git push to deploy is nice, need to figure out how to daemonize a service to handle that sometime [04:01] JimBastard: bradleymeck1: yeah, me 2 [04:01] JimBastard: 4 sure [04:01] JimBastard: lulz [04:01] bradleymeck1: i got the spawns working [04:02] JimBastard: there is code out there to do that, not sure if any written in node [04:02] bradleymeck1: but taking them down is... ugly, and you have to start up the manager i have right now [04:02] JimBastard: hrmmm [04:02] Validatorian has joined the channel [04:03] Validatorian: JimBastard: Didn't get an email from you, just wanted to make sure it didn't get lost in the ether [04:03] Validatorian: anyone know if npm will update modules that are installed with 'npm link'? So will npm 'git pull' the most recent? [04:08] jamescarr_: I'm a born again vim user [04:10] jamescarr_: okay guys [04:10] jamescarr_: here's what is defeating me [04:10] jamescarr_: http://gist.github.com/589172 [04:10] _announcer: Twitter: "Node.js, Connect, Mongoose and Underscore | Ivar Vong: http://bit.ly/aOnNmu" -- Brendon Smith. http://twitter.com/seacloud9/status/25088847388 [04:10] jamescarr_: any ideas wtf could be causing that? [04:11] Tim_Smart: What was it that you used before vim? [04:11] jamescarr_: Tim_Smart, I always used vim, I was just not a power user [04:11] jamescarr_: I mostly use gedit or eclipse [04:11] jamescarr_: Error: EINVAL, Invalid argument [04:12] jamescarr_: so, I get this error on heroku, not locally :( [04:12] WALoeIII has joined the channel [04:12] Tim_Smart: Bad file descriptor. [04:12] jamescarr_: ?? [04:12] jamescarr_: oh [04:12] jamescarr_: duh [04:12] path[l] has joined the channel [04:12] jamescarr_: I'm a dumbutt [04:14] jamescarr_: now it's this: http://gist.github.com/589172 [04:14] jamescarr_: my code is here: http://github.com/jamescarr/strange-passions [04:15] jamescarr_: any ideas what I could be doing stupidly? [04:15] _announcer: Twitter: "Do you understand this NodejS App? I do not quite! http://ow.ly/2HgdG @netoarmando #nodejs" -- newsicare. http://twitter.com/newsicare/status/25089121537 [04:17] quirkey has joined the channel [04:20] _announcer: Twitter: "@davglass awesome job on the node.js/YUI video http://bit.ly/aq3L87 def inspiring." -- Paul Donnelly. http://twitter.com/pjdonnelly/status/25089443046 [04:21] gsmcwhirter: jamescarr_, connect's server doesn't pass through the callbacks to node (from looking at the code on github) [04:21] jamescarr_: I think I figured it out [04:22] gsmcwhirter: jamescarr_, hm. well, i sorta take that back [04:22] jamescarr_: app.listen(PORT, null); breaks [04:22] jamescarr_: dunno why [04:22] jamescarr_: app.list(PORT, null, function(){}); and it works [04:22] jamescarr_: app.listen I mean [04:23] jamescarr_: okay! who here has IE7? [04:23] jamescarr_: firefox 3.0? Safari? [04:23] jamescarr_: I need some x-browser testing love real quick [04:23] silentrob has left the channel [04:24] gsmcwhirter: jamescarr_, i can run safari mac, ff mac, opera mac, ff lin, and chrome lin if it is quick [04:24] jamescarr_: cool [04:25] jamescarr_: use james.r.carr@gmail.com as an email :) [04:25] jamescarr_: oops [04:25] jesusabdullah: YOU GOT IT [04:26] gsmcwhirter: lol [04:26] jamescarr_: lol [04:26] jamescarr_: can I take it back? [04:26] jamescarr_: undo undo undo :) [04:26] jamescarr_: now my email will show up in the public logs [04:27] gsmcwhirter: jamescarr_, not sure what you want tested either =) [04:27] jamescarr_: sorry, just want to make sure that rating a talk works [04:28] dmcquay has joined the channel [04:29] WALoeIII has joined the channel [04:30] jesusabdullah: Anyone here use fab? [04:30] jesusabdullah: It looks like an interesting idea [04:30] jesusabdullah: but I'm not sure how valuable the DSL is for that particular domain [04:30] sstephenson has joined the channel [04:30] jamescarr_: never heard of it [04:31] Aria: Oh, I think it's crazy and weird but clever. [04:33] hij1nx has joined the channel [04:36] vmthehut has joined the channel [04:36] _announcer: Twitter: "Hmm, interesting idea ... EJS + node.js. Template engines in the node I somehow do not particularly like, but here is a field for experiments # ejs # nodejs" [ru] -- eudj1n. http://twitter.com/eudj1n/status/25090356117 [04:38] jameshome: man, _announcer is amusing [04:39] sudoer has joined the channel [04:41] prettyrobots has joined the channel [04:44] mr_daniel has joined the channel [04:46] _announcer: Twitter: "<---- manhandling ubuntu, nodejs and mongodb all at the same time.... or the other way around :(" -- Christian Sanz. http://twitter.com/csanz/status/25090885664 [04:46] jesusabdullah: oho! [04:46] nwhite has joined the channel [04:47] tpryme has joined the channel [04:48] _announcer: Twitter: "@steveyentweets not that know. I had to use cygwin. http://howtonode.org/how-to-install-nodejs (see my comments if you are using Windows 7)" -- Drew LeSueur. http://twitter.com/drewlesueur/status/25091012842 [04:50] digitalsatori has joined the channel [04:51] mytrile has joined the channel [04:54] _announcer: Twitter: "I do not know is that the nodejs but Imaichi. The simple but certainly, C + + Not that 変Wan time to write in? Or. No, but I wonder is the ease of sale, including the complexity of the library or whatnot. Well, I feel that too much javascript with a bias against." [ja] -- disktnk. http://twitter.com/disktnk/status/25091325982 [04:55] smcq has joined the channel [04:56] zomgbie has joined the channel [04:59] MikhX has joined the channel [05:01] jamescarr_: time for my monthly visit to #couchdb [05:01] _announcer: Twitter: "http://j.mp/bZkaqd My first #nodejs app! It uses Socket.IO to check keypresses against dictionary. Fun for Scrabble." -- Ken Snyder. http://twitter.com/tr0gd0rr/status/25091714406 [05:08] mikew3c_ has joined the channel [05:16] pquerna: konobi: huh? [05:24] satori_ has joined the channel [05:26] claudiu__ has joined the channel [05:27] SamuraiJack has joined the channel [05:31] derferman has joined the channel [05:31] mattly has joined the channel [05:34] amerine has joined the channel [05:38] mjr_ has joined the channel [05:38] amerine has joined the channel [05:40] tk has joined the channel [05:43] _announcer: Twitter: "@naterkane if only your dryer ran node.js!!" -- NodeCore. http://twitter.com/nodecore/status/25093733307 [05:43] nroot7 has joined the channel [05:47] _announcer: Twitter: "[Js Popular Information] Node.js Knockout http://bit.ly/attrln # javascript" [ja] -- jsMagazine. http://twitter.com/jsMagazine/status/25093944864 [05:47] rauchg_ has joined the channel [05:48] WALoeIII has joined the channel [05:56] jamescarr_ has joined the channel [05:57] _announcer: Twitter: "@lachlanhardy perhaps. But the true genius is nodejs itself." -- NodeCore. http://twitter.com/nodecore/status/25094364340 [05:59] _announcer: Twitter: "@miksago because you're using mongodb. You're probably using that dirty, dirty #nodejs too!" -- Robin Duckett. http://twitter.com/robinduckett/status/25094486899 [05:59] emmanueloga has joined the channel [06:00] _announcer: Twitter: "When you need to scale to trillions of potential users, consider node.js. "The only event-driven framework built to last millennia."" -- NodeCore. http://twitter.com/nodecore/status/25094492939 [06:00] sudoer has joined the channel [06:00] Kami__ has joined the channel [06:04] ivanfi has joined the channel [06:05] ajsie has left the channel [06:05] sechrist: millennia eh? [06:05] sechrist: and trillions of users [06:07] Anti-X has joined the channel [06:07] ajsie has joined the channel [06:08] daglees has joined the channel [06:11] brianmario has joined the channel [06:12] _announcer: Twitter: "I guess one of the major fail point for #node.js would be the lack of continuos support for libraries and plugins.." -- Lakshan Perera. http://twitter.com/laktek/status/25095047329 [06:13] jesusabdullah: On the other hand, it's this sort of frontier where any jackass can contribute meaningfully to the ecosystem [06:15] _announcer: Twitter: "enough hacking for one night. node.js and rhythmbox: tomorrow you will become my bitches." -- Andre Bluehs. http://twitter.com/helloandre/status/25095180766 [06:15] _announcer: Twitter: "Wondering if we can support node.js Buffer objects in Prince. Would help people do cool/scary/fun things... #princexml" -- Michael Day. http://twitter.com/yeslogic/status/25095200818 [06:17] codetonowhere has joined the channel [06:22] LFabien has joined the channel [06:23] dgathright has joined the channel [06:24] aho has joined the channel [06:26] langworthy has joined the channel [06:26] jetienne has joined the channel [06:42] _announcer: Twitter: "Node.js, Unix, and MongoDB: The New LAMP http://j.mp/aQpwi6" -- Thibaut LE LEVIER. http://twitter.com/tiboll/status/25096301654 [06:42] galaxywatcher has joined the channel [06:43] aubergine has joined the channel [06:43] tk has joined the channel [06:44] benburkert has joined the channel [06:44] sahazel has joined the channel [06:44] ph^ has joined the channel [06:47] dgathright_ has joined the channel [06:49] yrashk: maaan, writing v8/node addons is a little bit of pain... especially when it was probably a decade ago when I touched C++ :) [06:50] emmanueloga has joined the channel [06:50] sechrist: :) there's example code luckily (in other open source addons) [06:50] sechrist: prevents having to go through the v8 docs for a lot of stuff [06:50] yrashk: there is some, for sure [06:51] sechrist: types get messy though of course [06:51] yrashk: without these things and some v8 API documentation I'd be doomed [06:51] yrashk: yeah, I'm just getting through passing callbacks here and there [06:51] bpot has joined the channel [06:51] yrashk: that's a little bit painful [06:52] jetienne: yrashk: what do you want to add which require c++ ? [06:53] yrashk: binding zookeeper [06:54] yrashk: brb [06:55] sveisvei has joined the channel [06:56] ivong has joined the channel [06:56] _announcer: Twitter: "Would node.js learn well! Opinions / advice? :)" [fr] -- Clément. http://twitter.com/clementj/status/25096901203 [06:57] Tim_Smart has joined the channel [06:59] codetonowhere has joined the channel [07:00] sveimac has joined the channel [07:04] _announcer: Twitter: "@ Clementj howtonode will see, is plenty good about nodejs http://howtonode.org/" [fr] -- Jerome Etienne. http://twitter.com/jerome_etienne/status/25097220498 [07:06] tisba has joined the channel [07:08] dgathright has joined the channel [07:10] _announcer: Twitter: "Nice presentations about #nodejs (@silentjohnny) and #couchdb (@svdgraaf) at #010php. Awesome stuff." -- Willem Spruijt. http://twitter.com/wspruijt/status/25097450687 [07:11] virtuo has joined the channel [07:11] _announcer: Twitter: "@daniellmb Tooting my own horn here... My book on JS/TDD also has a chapter on Node.js TDD (and nodeunit) stuff http://goo.gl/9hf8 (@caolan)" -- Christian Johansen. http://twitter.com/cjno/status/25097492782 [07:13] Tim_Smart has joined the channel [07:17] delapouite has joined the channel [07:25] mies has joined the channel [07:25] ooooPsss has joined the channel [07:26] _announcer: Twitter: "@n1k0 nope, I use it with express for the moment… Fits my need: discovering nodejs ! :)" -- Antoine Abt. http://twitter.com/brankgnol/status/25098107392 [07:27] Kami_ has joined the channel [07:27] adambeynon has joined the channel [07:30] hellp has joined the channel [07:33] sveimac: Anti-X: ping [07:38] kriszyp_ has joined the channel [07:41] ooooPsss has left the channel [07:43] elliottkember has joined the channel [07:43] matjas has joined the channel [07:48] micheil has joined the channel [07:48] _announcer: Twitter: "@robinduckett and yeah, I am using node.js as well." -- Micheil Smith. http://twitter.com/miksago/status/25098992891 [07:48] kloeri has joined the channel [07:52] herbySk has joined the channel [07:52] SamuraiJack has joined the channel [07:54] SamuraiJack has joined the channel [07:55] rnewson has joined the channel [07:59] spetrea has joined the channel [08:01] alexb_ has joined the channel [08:01] stagas has joined the channel [08:02] pdelgallego has joined the channel [08:02] tobiassjosten has joined the channel [08:06] stagas: know of any file based db other than nstore ? [08:06] stagas: or supermarket? [08:06] mbrochh has joined the channel [08:06] mbrochh has joined the channel [08:07] wvdschel has joined the channel [08:07] stagas: should I just writeFile a json what do you think [08:08] ooooPsss has joined the channel [08:09] _announcer: Twitter: "node.js Promise-based Asynchronous Test Runner for modules "Patr" http://ow.ly/2HjSH introductory article by the author" [ja] -- koichik. http://twitter.com/koichik/status/25099801570 [08:10] neptun3 has joined the channel [08:17] _announcer: Twitter: ""a blog engine running on node.js with database is 10x faster than PHP that just echo's 'hello world' " http://tinyurl.com/3y93n6h" -- Fabian Jakobs. http://twitter.com/fjakobs/status/25100132086 [08:17] rne1223 has joined the channel [08:19] shockie has joined the channel [08:19] aubergine has joined the channel [08:20] _announcer: Twitter: "It's a bummer there is no node.js library for Amazon simpledb. Also a bummer simpledb costs about 10x what it should." -- Alex Bosworth. http://twitter.com/alexbosworth/status/25100243824 [08:22] wvdschel: I have a general javascript question, not necessarily node.js related, any suggestions what channel I could go to get an answer? [08:23] _announcer: Twitter: "so that guy is comparing a "parsed every time is executed" PHP script with whatever node.js uses to run sites on…" -- Alvaro Videla. http://twitter.com/old_sound/status/25100352400 [08:24] stagas: wvdschel: here it's ok but also ##javascript [08:25] wvdschel: Ah, I'll try here first then, since I've already got your attention [08:25] wvdschel: I added a function to Object using Object.prototype, but now it pops up in every for(var i in some_array) I do [08:26] q_no has joined the channel [08:26] wvdschel: which is annoying, so I was wondering if there was a better way of doing things like this (either the for each part, or the adding functions to prototype part), which circumvents my problem [08:26] alexb_: Use a normal for loop for arrays [08:27] _announcer: Twitter: "somebody throw some b3nblacks at those node.js guys, please…" -- Alvaro Videla. http://twitter.com/old_sound/status/25100504379 [08:27] rnewson: adding to Object or Array prototype is a cardinal sin in JS, isn't it? :) [08:27] ooooPsss: is there a way to have a list of all twits regarding node? [08:27] ooooPsss: maybe the announcer has a list? [08:28] wvdschel: alexb_, right, will fix [08:28] zum: I suppose it uses the twitter streamin gapi [08:28] wvdschel: rnewson, but what if you really want to add a feature that really does apply to every kind of object? [08:28] zum: "Streaming API: Public statuses from all users, filtered in various ways: By userid, by keyword, by random sampling, by geographic location, etc." [08:29] rnewson: wvdschel: No idea, sorry. [08:29] ooooPsss: zum: but maybe it could have a list saved somewhere, or maybe it could RT everything so we could see a timeline ;) [08:29] wvdschel: alexb_, still, the problem would persist for hashes, what about those? [08:29] alexb_: You could use jquery style wrapping of objects and then attach functions to that [08:29] rnewson: http://erik.eae.net/archives/2005/06/06/22.13.54/ http://bob.pythonmac.org/archives/2005/07/01/javascript-frameworks/ [08:30] zum: ooooPsss: curl http://nodejs.debuggable.com/2010-09-21.txt | grep _announcer [08:30] zum: :) [08:30] alexb_: You could also use a naming convention and add a check to your loop to filter out your custom stuff [08:30] _announcer: Twitter: "@ # Clementj nodejs is a base, a framework above allows you to simplify some tasks, eg http://bit.ly/bSjuvO" [fr] -- Florent Messa. http://twitter.com/thoas/status/25100657635 [08:31] wvdschel: alright, so if I fix this, the Javascript inquisition is cool with me again, right? [08:31] ooooPsss: zum: ok, I guess it works :p [08:31] _announcer: Twitter: "I do not have time to try, "node.js" to have interest." [ja] -- たろう. http://twitter.com/shawood/status/25100680159 [08:31] wvdschel: zum, that would now include your message [08:31] rnewson: wvdschel: I'm not the inquisition :) Just saying that this is a widely known bad-thing-to-do, with hopes that googling around would bring up alternatives. [08:32] alexb_: You'll be happier moving functions outside of object definitely, and array probably [08:32] wvdschel: so it's not exactly failsafe, but a proper regex could fix that [08:32] wvdschel: rnewson, well, I'm fixing it because those pages say it's bad because it causes the problems that are bugging me, so thx :) [08:33] _announcer: Twitter: "@ Clementj the way, the article @ n1k0 (http://bit.ly/dwIKDI) is a very good start for the nodejs / express" [fr] -- Florent Messa. http://twitter.com/thoas/status/25100760043 [08:36] TomY has joined the channel [08:36] _announcer: Twitter: "Hopefully, Juggernaut will be able to run on Heroku's Node.js soon: http://bit.ly/dz5ozp" -- Alex MacCaw. http://twitter.com/maccman/status/25100893780 [08:37] rne1223 has left the channel [08:38] necrodearia has joined the channel [08:38] _announcer: Twitter: "You can read about testing in node.js and nodeunit in @cjno's book: "Test-Driven JavaScript Development" http://goo.gl/9hf8" -- Caolan McMahon. http://twitter.com/caolan/status/25100958439 [08:39] nwhite has joined the channel [08:45] xla has joined the channel [08:50] caolanm has joined the channel [08:50] caolanm: morning all [08:52] xla has joined the channel [08:54] ooooPsss: hi [08:55] x_or1 has joined the channel [08:59] _announcer: Twitter: "Did you know node.js the second most common language on Github (next to Ruby)" -- Dominic Lovell. http://twitter.com/dominiclovell/status/25101806757 [09:00] caolanm: uh, what? ^ [09:00] tekky has joined the channel [09:02] _announcer: Twitter: "setting up a hosting environment for #nodejs was a royal PITA. done though." -- George Ornbo. http://twitter.com/shapeshed/status/25101961053 [09:02] markwubben has joined the channel [09:03] alexb_: I think he means JavaScript [09:03] Tim_Smart: s/node.js/javascript/ maybe? [09:03] hellp has joined the channel [09:05] _announcer: Twitter: "Updated npm, now everything works fine) New Express, too, will look. # Nodejs" [ru] -- Serge Shirokov. http://twitter.com/kurokikaze/status/25102102630 [09:06] langworthy has joined the channel [09:06] aubergine has joined the channel [09:07] olegp has joined the channel [09:12] evanpro has joined the channel [09:14] elliottkember has joined the channel [09:20] neptun3 has joined the channel [09:20] omarkj has joined the channel [09:21] yrashk: assuming `cb' is a function (it's asserted) what are the most common reasons for cb->Call(Context::GetCurrent()->Global(),3,argv) to make try_catch.HasCaught() true but with an empty (null) Exception() ? [09:21] yrashk: (and it eventually segfaults :) [09:22] xla has joined the channel [09:24] chapel has joined the channel [09:26] devkorcvince has joined the channel [09:31] q_no has joined the channel [09:33] sideshowcoder has joined the channel [09:34] AAA_awright_ has joined the channel [09:41] mikeal has joined the channel [09:41] aubergine has joined the channel [09:43] sveimac has joined the channel [09:43] aubergine has joined the channel [09:43] ker2x has joined the channel [09:43] ker2x: hi. i don't remember the command to force compiltion with -m64 [09:44] _announcer: Twitter: "@ Jonathanbonzy I can only agree for Python. I think we should still keep an eye on Node JS." [fr] -- Sébastien Volle. http://twitter.com/Seboss/status/25103816439 [09:49] ooooPsss has joined the channel [09:49] sveimac has joined the channel [09:49] ker2x: Mmmm [09:49] ker2x: it may be something else [09:49] ker2x: /home/nodejs/node-v0.2.2/deps/v8/src/utils.h:738: internal compiler error: in expand_expr_addr_expr_1, at expr.c:6336 [09:50] _announcer: Twitter: "Having fun using #CoffeeScript #Node.js #Expressjs and #Mongoose->mongoDB" -- Leivince John Marte. http://twitter.com/devcorkvince/status/25104068932 [09:51] TobiasFar has joined the channel [09:51] skampler1 has joined the channel [09:53] x_or has joined the channel [09:57] sveimac has joined the channel [09:59] path[l] has joined the channel [09:59] _announcer: Twitter: "@ Jonathanbonzy man of little faith! # Nodejs is good for health, ozone and red pandas. # Python eats dead babies." [fr] -- kerunix flan. http://twitter.com/kerunix/status/25104520964 [10:00] ker2x: woops [10:00] ker2x: the translation isn't bad :) [10:04] kuya has joined the channel [10:04] sveimac has joined the channel [10:04] kuya: hello, im trying to get started with socket.io but the example is trying to get http://cdn.socket.io/0.6/WebSocketMain.swf which doesnt seem to exist [10:04] kuya: any hints? [10:05] _announcer: Twitter: "JSDeferred modified to run tests on node.js - vanishing girl as winter uniforms, ask the real fantasy. - Subtech: http://j.mp/99HEAG # miteru" [ja] -- イカタレスパイラル. http://twitter.com/hinatter/status/25104790997 [10:09] rnewson_ has joined the channel [10:10] rnewson has joined the channel [10:12] sveimac has joined the channel [10:12] rnewson has joined the channel [10:14] femtoo has joined the channel [10:14] Akufen has joined the channel [10:14] Akufen has joined the channel [10:15] gthb has joined the channel [10:15] rnewson has joined the channel [10:16] _announcer: Twitter: "@ Seboss I coded a syslog server (with a backend # mongodb) in www.over-blog.com in nodejs # 24/24 AC running without problems." [fr] -- kerunix flan. http://twitter.com/kerunix/status/25105305123 [10:16] Tim_Smart has joined the channel [10:17] ker2x: (translation failed) [10:24] _announcer: Twitter: "@miksago Well, of course you are. NodeJS is naughty ;)" -- Robin Duckett. http://twitter.com/robinduckett/status/25105731500 [10:25] agnat has joined the channel [10:27] _announcer: Twitter: "@axelnormand Still on for some node.js hacking tonight? You're welcome at our place" -- Joe Corcoran. http://twitter.com/josephcorcoran/status/25105838550 [10:27] aubergine_ has joined the channel [10:35] sutto has left the channel [10:35] MattJ has joined the channel [10:37] _announcer: Twitter: "Like music? Wanna hack a live #nodejs website? http://bit.ly/9n0YC3" -- George Stagas. http://twitter.com/stagas/status/25106354999 [10:37] mif86 has joined the channel [10:39] freeall has joined the channel [10:46] FuzzYspo0N has joined the channel [10:48] daglees has joined the channel [10:48] daglees has joined the channel [10:49] _announcer: Twitter: "Benchmark of node modules and PHP modules for mysql, http://www.devcomments.com/Update-benchmarks-for-Node-js-MySQL-drivers-at290013.htm" -- Reiny Júnior. http://twitter.com/reinyjunior/status/25106947450 [10:53] sveilin has joined the channel [10:55] _announcer: Twitter: "@frank06 @fjakobs Our test did show the difference between a "default" PHP stack vs a "default" Node.js stack" -- Arnout Kazemier. http://twitter.com/3rdEden/status/25107258403 [11:01] robinduckett has joined the channel [11:01] robinduckett: yo [11:02] robinduckett: Anyone ever used apache to proxy to node and it actually work properly? [11:02] derferman has joined the channel [11:02] robinduckett: or am I just a re-re [11:05] path[l] has joined the channel [11:06] d0k has joined the channel [11:08] mikew3c_ has joined the channel [11:10] sveimac has joined the channel [11:11] _announcer: Twitter: "Ready mode for the start of the week. Node.Js ModeDB and even fear." [fr] -- Bolo Michelin. http://twitter.com/BoloMichelin/status/25108148032 [11:11] zorzar has joined the channel [11:12] Yuffster_work has joined the channel [11:12] aheckmann has joined the channel [11:12] _announcer: Twitter: "@frank06 There are more fun tests we did, like counting to 1 million in PHP and Nodejs. They all produce shocking results." -- Arnout Kazemier. http://twitter.com/3rdEden/status/25108228522 [11:13] BryanWB has joined the channel [11:16] aubergine has joined the channel [11:16] ekidd has joined the channel [11:18] agnat has joined the channel [11:23] Gruni has joined the channel [11:26] _announcer: Twitter: "@ Kerunix: node.js must be because even though Yahoo Mail should rise above ... it should not just try to do everything with JS;)" [fr] -- Jonathan Bonzy. http://twitter.com/jonathanbonzy/status/25108985605 [11:31] _announcer: Twitter: "Node and an interesting technology, like to know his real benefits, and scalability node # # nodejs" [pt] -- Reiny Júnior. http://twitter.com/reinyjunior/status/25109297864 [11:33] ker2x: can't compile nodejs on my etch :( [11:33] ker2x: http://pastebin.com/kpPF4piN [11:34] derferman has joined the channel [11:36] aliem has joined the channel [11:40] _announcer: Twitter: "@gjohnson391 Nodejs vs PHP http://groups.google.com/group/nodejs/msg/5b956f8f3b4cb747?hl=en" -- Aaron Heckmann. http://twitter.com/aaronheckmann/status/25109871167 [11:41] _announcer: Twitter: "node.js the. / configure cute" [ja] -- hotchpotch. http://twitter.com/hotchpotch/status/25109924595 [11:43] bsstoner has left the channel [11:44] zemanel has joined the channel [11:46] s0enke: ker2x, ouch etch is really really old, buggy and unsecure. sure you don't wanna dist-upgrade before? [11:47] _announcer: Twitter: "Cute node.js test. This is a standard test of the python UI Or is it. no memory test ran python library or ..." [ja] -- hotchpotch. http://twitter.com/hotchpotch/status/25110264306 [11:47] aho has joined the channel [11:50] robinduckett: yo [11:52] devkorcvince has joined the channel [11:54] maushu has joined the channel [11:54] derencius has joined the channel [11:56] apemsel has joined the channel [11:56] apemsel: hi folks [11:56] vvsh has joined the channel [11:57] _announcer: Twitter: "@dipench you can grab vector of nodejs logo from here: http://raphaeljs.com/nodejs.html I hope you are geek enough to do it. :)" -- Dmitry Baranovskiy. http://twitter.com/DmitryBaranovsk/status/25110901792 [11:57] apemsel: does anyone no the offical way to set a timeout on a httpClient request? [11:57] apemsel: found lots of messages abount it, but no definite answers [11:58] spetrea: hi, a friend told me that on github there's a small Node.js opensource Book [11:58] spetrea: is that true ? and if so , where do I find it ? [12:00] apemsel: spetrea: http://visionmedia.github.com/masteringnode/ [12:02] devkorcvince has joined the channel [12:04] spetrea: apemsel: thanks :) [12:04] spetrea: are there like plans for this book to be finished and maybe published ? [12:06] _announcer: Twitter: "@rem Would be very interested in seeing that Remy. One hour is pretty impressive - I assume you used node.js in the end." -- Mark Boas. http://twitter.com/maboa/status/25111561493 [12:07] apemsel: sorry, don't know about that [12:08] apemsel: but in my oppinion nodejs is a bit too young and fast changing to write and print something about it [12:08] _announcer: Twitter: "Thanks # 010php presentations last night now busy Node.js. I say awesome #" [nl] -- Johan Kuijt. http://twitter.com/johankuijt/status/25111728846 [12:11] s0enke: mhm is there some new twitter worm outside? [12:11] s0enke: people keep tweeting "http://a.no/@"onmouseover=";$('textarea:first').val(this.innerHTML);$('.status-update-form').submit()" style="color:#000;background:#000;/" [12:13] _announcer: Twitter: "courtesy of our appDev friend Mr Slade, Twitter + node.js = realtime stream in-browser: http://streamie.org/" -- tombaromba. http://twitter.com/tombaromba/status/25112088832 [12:16] _announcer: Twitter: "Node.js now installed on the server rental." [ja] -- Masahiro Fukuda. http://twitter.com/masahif2/status/25112361926 [12:16] pdelgallego has joined the channel [12:17] spetrea: apemsel: same story as Perl6 actually .. [12:18] _announcer: Twitter: "@ @ Button freak aplanting nodejs time:-p" [nl] -- JvdMeulen. http://twitter.com/JvdMeulen/status/25112523657 [12:19] wakawaka has joined the channel [12:20] ivanfi has left the channel [12:21] devkorcvince has joined the channel [12:21] delapouite has joined the channel [12:21] hannesw has joined the channel [12:21] matthewford has joined the channel [12:23] ekidd has joined the channel [12:23] apemsel: ACTION will deploy productive code for his company using node.js today for the first time [12:24] robinduckett: nice. [12:24] robinduckett: hrm [12:24] apemsel: yeah was a job to write [12:24] apemsel: joy [12:24] robinduckett: npm won't install spark :( [12:24] robinduckett: fffuuu. [12:25] robinduckett: hmm [12:25] robinduckett: but it does if I am root. [12:25] robinduckett: sigh [12:25] robinduckett: apemsel: what kind of app did you build? [12:26] apemsel: a very fast rss aggregator/parser [12:26] robinduckett: I'm currently working on some ajax backend for a car valutation system [12:26] apemsel: backed by couchdb [12:26] robinduckett: nice [12:26] robinduckett: *valuation [12:26] spetrea: how does one choose if to use a noSQL db or an SQL one ? [12:27] apemsel: look at the use case [12:27] apemsel: one cannot replace the other in general [12:27] apemsel: if you need to query your data in ways you cannot think of while coding => SQL [12:27] apemsel: if you know in advance which queries will come in => noSQL [12:28] apemsel: but there are many more things to think about [12:28] apemsel: we actually use both a SQL DB and CouchDB here [12:28] apemsel: CouchDB generates stuff like our community and user feeds [12:30] hannesw: Anybody here with an idea how to tune node.js memory handling? [12:30] apemsel: (and does so very fast compared to the SQL db we used before) [12:30] apemsel: another thing is that most noSQL DBs trade disk space for speed [12:31] apemsel: which is often, but not always a good tradeoff [12:31] _announcer: Twitter: "Update benchmarks for Node.js #MySQL drivers http://bit.ly/aTnv2M" -- Devcomments.com. http://twitter.com/devcomments/status/25113584270 [12:32] hansek_ has joined the channel [12:32] FuzzYspo0N: lol, twitter exploit is owning them [12:32] FuzzYspo0N: dont use the site directly guys [12:35] spetrea: FuzzYspo0N: what xploit, describe please ? [12:37] FuzzYspo0N: spetrea: http://bit.ly/bm1Dnw?r=td [12:37] EyePulp has joined the channel [12:37] FuzzYspo0N: basically just a JS bug, led to someone doing an autorepeat to followers bug [12:37] FuzzYspo0N: and now its spreading like mad lol [12:38] matschaffer has joined the channel [12:38] matschaffer has joined the channel [12:39] ker2x: i got pwned by the bug too :( [12:39] s0enke: spetrea, some xss that just spreads tweets. [12:39] riqoub has joined the channel [12:39] ker2x: it's a really cool bug, btw [12:39] s0enke: evilhackerdude, already analyzed? ;) [12:40] ker2x: but SO annoying [12:40] FuzzYspo0N: lol, just dont use the main site ker2x [12:40] FuzzYspo0N: its not hard to void. [12:40] bradleymeck1 has joined the channel [12:40] ker2x: i closed it [12:40] ker2x: FuzzYspo0N: not hard once you understood [12:41] riqoub has left the channel [12:41] ker2x: time to write a nodejs console client :) [12:41] riqoub has joined the channel [12:42] FuzzYspo0N: enjoy :) [12:42] riqoub has left the channel [12:43] devkorcvince has joined the channel [12:43] riqoub has joined the channel [12:43] riqoub has left the channel [12:43] devkorcvince: how to make expressjs mvc work [12:45] _announcer: Twitter: "I'm having to pull myself away from node.js this morning to focus on real work..." -- Nick Riggs. http://twitter.com/nickriggs/status/25114715237 [12:46] CrabDude has joined the channel [12:46] riqoub has joined the channel [12:47] riqoub has left the channel [12:49] riqoub has joined the channel [12:49] riqoub has left the channel [12:49] riqoub has joined the channel [12:49] riqoub has left the channel [12:50] _CrabDude has joined the channel [12:50] malkomalko has joined the channel [12:53] devkorcvince has joined the channel [12:55] robinduckett: sigh [12:55] robinduckett: the connect api has changed so much [12:55] robinduckett: can't find a tutorial that still works [12:55] robinduckett: and the api docs are shocking. [12:55] robinduckett: wq [12:55] robinduckett: woops lol [12:57] mikew3c: heh [12:57] s0enke: robinduckett, it's :wq *scnr [12:58] mikew3c: I sent a ":w" tweet the other day, by accident [12:58] mikew3c: due to using bitlbee IRC UI to twitter [12:58] trotter has joined the channel [12:58] s0enke: mikew3c, better than tweeting passwords by accident :) [12:58] FuzzYspo0N: haha [12:58] FuzzYspo0N: yea thats no good [12:59] pengwynn has joined the channel [13:00] wattz: Gewd morn boys and girls [13:00] FuzzYspo0N: ahoy [13:00] wattz: i want to write a video game :( [13:00] nerdEd has joined the channel [13:00] davidsklar has joined the channel [13:00] FuzzYspo0N: so, whats stopping you? [13:00] FuzzYspo0N: i write them all the time [13:01] robinduckett: s0enke: what does *scnr do? [13:01] robinduckett: mikew3c: I can never get bitlbee working :( [13:01] wattz: video games are weird... I know a shitton of languages and platforms, but for some reason video game development intimidates me [13:01] mikew3c: btw, for vimmers: I recently set up my vim for JS editing using eclim and the "Web Tools Platform" IDE flavor of Eclipse and it seems to work reasonably well -- gives you some nice completion features, other stuff [13:01] robinduckett: wattz I have a good idea for a web game that I've been meaning to implement in node/html5 :) [13:01] mikew3c: robinduckett: wfm [13:01] s0enke: robinduckett, http://en.wiktionary.org/wiki/SCNR :) [13:02] wattz: I would love to write a web, iphone, ipad MMO [13:02] mikew3c: I've never had any problems with bitlbee stuff [13:02] wattz: node would be perfect for an mmo server [13:02] robinduckett: ohh [13:02] FuzzYspo0N: wattz: lol MMO should intimidate you. [13:02] robinduckett: wiseass :D [13:02] mikew3c: heh [13:02] robinduckett: mikew3c: real coders use cat anyway [13:02] FuzzYspo0N: wattz: games are easy with the right tools and approacjh [13:03] wattz: I have an idea for a war type game to that is turn based "play at pace" deal [13:03] wattz: FuzzYspo0N: i want to do SNES Zelda isometric style [13:03] robinduckett: wattz: that's not isometric [13:03] FuzzYspo0N: yea, its front top down [13:03] robinduckett: that's 45 degree projection [13:03] wattz: cocos2d is actually pretty clear to use [13:03] FuzzYspo0N: if you wanna make the engine yourself sure [13:03] wattz: ACTION is a newb with teh hawt lean-go [13:03] FuzzYspo0N: lol [13:03] wattz: i have unity too [13:04] robinduckett: also wattz [13:04] robinduckett: someone beat you to the zelda mmo [13:04] robinduckett: http://www.graalonline.com/ [13:04] wattz: but is unity to much for a front-top-down [13:04] robinduckett: http://www.graalonline.com/playerworlds/ [13:04] FuzzYspo0N: depends,how you do it [13:04] wattz: fag work blocked that [13:04] robinduckett: wattz: but please, never, EVER play that game. [13:04] FuzzYspo0N: using 3d is a nice trick for z-ordering [13:05] wattz: robinduckett: i develop stuff for fun whether people have done it or not :P [13:05] robinduckett: how the hell do they block that? lol [13:05] wattz: Websense bullshit [13:05] robinduckett: heh [13:05] wattz: i can jump tot he guest network and see it fine, but don't feel like reconnecting everything [13:05] robinduckett: I have access to the routers here. [13:05] wattz: robinduckett: i work for a Fortune 40 company :P [13:05] robinduckett: and I usually use an ssh tunnel. [13:05] FuzzYspo0N: lol, we have url filters, just ping and use the IP [13:05] robinduckett: hah, we had that in high school. [13:06] robinduckett: rename the .exe to .txt in the save as dialog kind of shit [13:06] wattz: heh websense blocks ip too [13:06] wattz: robinduckett: in highschool we just used the windows dialog boxes in office to run programs we downloaded :P [13:07] wattz: since you could right click in there and get a RUN box [13:07] wattz: f34r w1nd0wz s3curi7y [13:07] robinduckett: wattz: I had to write an app in VB to change the screen resolution because they refused to run in anything higher than 800x600 on 19" CRTs [13:07] wattz: hahaha [13:08] wattz: robinduckett: sounds like back in the aol 2.5 days when i used the school computers and vb3 to write mass mailers :D [13:08] robinduckett: don't forget the old windows task scheduler to run a cmd.exe as Administrator from a guest account [13:08] FuzzYspo0N: in XP still yea [13:08] FuzzYspo0N: at /interactive ilold [13:08] wattz: man, i haven't owned or used a windows box since 97 :P [13:08] robinduckett: or the old click Cancel to log into a admin account in '98 [13:08] wattz: classic [13:09] robinduckett: but let's face it [13:09] robinduckett: linux boxes and mac boxes are no more secure if you have physical access to it [13:09] wattz: another deal for deving a game, is a good sprite/map artist [13:09] robinduckett: reboot, grub, boot in single user mode [13:09] FuzzYspo0N: http://opengameart.org/ [13:09] TomsB has joined the channel [13:09] robinduckett: passwd [13:09] wattz: robinduckett: social rooting will get any computer anytime [13:09] robinduckett: Changing root password [13:09] robinduckett: done [13:09] jwm has joined the channel [13:09] wink_: lol @ wattz...we probably knew each other in a previous life.. [13:10] robinduckett: wattz: if you're doing a pixel game sure [13:10] robinduckett: otherwise you want someone who knows what they're doing in vectors [13:10] wattz: wink_: I have always been WaTTZ except when i was Indigo and wrote Corsair massmailer ;) [13:10] robinduckett: animation artists are needed too [13:10] wattz: robinduckett: yeah, maple leaf is a really good graphic game [13:10] FuzzYspo0N: maple story? [13:10] robinduckett: :P [13:11] robinduckett: i knew what he was on about. [13:11] robinduckett: brb actually have work to do :( [13:11] evanpro has joined the channel [13:12] ysynopsis has joined the channel [13:12] wink_: wattz: i dont remember you specifically, but that was what, 15 years ago :p [13:12] wattz: FuzzYspo0N: maple story is a browser based game [13:13] wattz: wink_: my only real claim to fame was Skitzo Fake Account Creator :P [13:13] wattz: ACTION has an off-the-charts memory :P [13:13] wattz: wife hates it [13:13] _announcer: Twitter: "Graphics Magick - aheckmann's gm at master - GitHub http://github.com/aheckmann/gm #nodejs" -- Samuel Morello. http://twitter.com/ouvanous/status/25117011149 [13:14] FuzzYspo0N: wattz: no, not really? [13:14] wattz: sorta [13:14] wattz: it's flash based [13:14] wattz: one way or another [13:14] FuzzYspo0N: oh wait. [13:15] FuzzYspo0N: you know, i was correcting you on that [13:15] FuzzYspo0N: and i meant cave story. [13:15] FuzzYspo0N: lol [13:15] wattz: lol [13:15] wattz: well spriting and all in cocos2d isn't bad [13:15] wattz: and i downloaded this sprite gen program for mac [13:15] FuzzYspo0N: yea buts there NO game there. [13:15] wattz: eh? [13:16] FuzzYspo0N: game != drawing sprites. [13:16] wattz: i know [13:16] FuzzYspo0N: yea. triggers? [13:16] wattz: you need map, story, quest, characters [13:16] FuzzYspo0N: spawning? [13:16] FuzzYspo0N: maps? [13:16] FuzzYspo0N: etc [13:16] wattz: aye, i know it takes a lot of planning [13:16] wattz: and I actually want to do that too [13:16] FuzzYspo0N: lol, there are solutions. [13:16] FuzzYspo0N: that ease that [13:16] wattz: wanna build a game :O [13:16] wattz: MMO for iOS! :D [13:16] FuzzYspo0N: fail. [13:16] FuzzYspo0N: :> [13:17] wattz: just for fun [13:17] wattz: pvp [13:17] FuzzYspo0N: im making an online multiplayer game [13:17] FuzzYspo0N: OMG [13:17] wattz: :O [13:17] wattz: !? [13:18] FuzzYspo0N: ever played uplink? [13:18] wattz: no [13:18] FuzzYspo0N: http://introversion.co.uk/uplink [13:18] FuzzYspo0N: im making an online version of that game [13:18] _announcer: Twitter: "Simple, async, promise-based unit testing for NodeJS and others: http://bit.ly/bo21ep" -- kriszyp. http://twitter.com/kriszyp/status/25117448664 [13:18] wattz: ... [13:18] FuzzYspo0N: for the lols [13:18] wattz: i hate my hob. [13:18] wattz: job [13:18] wattz: well [13:18] FuzzYspo0N: haha. [13:18] FuzzYspo0N: blocked? [13:18] wattz: not really, just hate their security [13:18] wattz: yeah [13:19] FuzzYspo0N: and this wattz? http://blog.centrc.net/flcore-client-integration [13:19] wattz: FuzzYspo0N: with spriting, the hardest thing for me to get is how to put hair and armor and shit on them [13:19] wattz: that works :D [13:20] FuzzYspo0N: you use mount nodes [13:20] wattz: seriously, i wish you sat next to me at work. I would annoy the shit out of you [13:20] FuzzYspo0N: haha, why's that [13:20] wattz: because i have wanted to build game my entire life [13:21] adambeynon has joined the channel [13:21] wattz: I have read and learned every language and platform one day and always shyed from video game dev [13:21] wattz: but i have a cool story and a good programmer, just need to do it and stop being fearful [13:22] wattz: and weith webgl coming im getting more interested [13:22] FuzzYspo0N: i need help if you are interested :P [13:22] FuzzYspo0N: its 99% javascript [13:22] caolanm: wattz: is this going to be an open source project? [13:22] FuzzYspo0N: and the UI is web [13:23] wattz: caolanm: 90% of all my little side projects are open source [13:23] robinduckett: What's the old apache thing that lets you load test sites with requests?? [13:23] niemeyer has joined the channel [13:23] wattz: bench [13:23] wattz: ? [13:23] robinduckett: ahah [13:23] robinduckett: ab [13:23] s0enke: ya, ab or ab2 [13:24] wattz: i hear ab/2 horks with testing against async servers [13:24] robinduckett: horks? [13:24] wattz: vomits :D [13:24] robinduckett: doesn't seem to [13:25] robinduckett: just did 1000 requests [13:25] robinduckett: in 2 seconds [13:25] robinduckett: 2ms per request isn't bad [13:25] wattz: i didn't say it did, just remember someone talking about the other day [13:25] wattz: or maybe the numbers are wrong [13:25] wattz: brb [13:25] EyePulp has joined the channel [13:25] wattz: meeting [13:25] robinduckett: escpescially since the first one is a web service request over the rest being cached responses from memcache [13:27] robinduckett: hmm [13:27] robinduckett: bit concerned with the fact that when i turn concurrency on, node balks [13:27] ako has joined the channel [13:28] robinduckett: ab -n 1000 -c 2 http://localhost:9083 [13:28] robinduckett: causes my shit to die [13:28] hellp has joined the channel [13:28] robinduckett: everything is async though :( [13:28] robinduckett: does connect not do concurrent connections? [13:28] TobiasFar has joined the channel [13:29] Nietecht has joined the channel [13:30] robinduckett: ahah [13:30] robinduckett: no [13:30] robinduckett: my fault [13:30] wattz: back [13:30] robinduckett: was only opening one memcached Connected [13:30] wattz: my meeting is starting late [13:30] robinduckett: *connection [13:30] robinduckett: wattz: that is why I dislike big companies. [13:30] robinduckett: Lots of meetings [13:31] _announcer: Twitter: "Anyone have experience running node.js in production? I'm looking for stability data." -- Jeff Watkins. http://twitter.com/jeffwatkins/status/25118560631 [13:31] robinduckett: My place of work is like a skunk works [13:31] s0enke: one of my fac antipatterns: "yet another meeting will solve it" [13:31] wattz: yeah, but it's funny i have more time tinkering on my own shit [13:31] wattz: lol [13:31] wattz: meeting time [13:35] pgriess has joined the channel [13:35] nerdEd has joined the channel [13:36] digitalsatori has joined the channel [13:38] bcg has joined the channel [13:43] sveilin has joined the channel [13:43] sveimac has joined the channel [13:45] jchris has joined the channel [13:46] okuryu has joined the channel [13:47] robinduckett: anyone have any idea why my connect app would just randomly start timimg out after 500 requests? [13:49] ben_alman has joined the channel [13:49] ben_alman has joined the channel [13:52] robinduckett: yeah [13:52] robinduckett: after 994 total requests my connect server starts timing out [13:54] cferris has joined the channel [13:55] matclayton has joined the channel [13:55] aubergine_ has joined the channel [13:56] Anti-X: sveimac, sveilin; pong [13:56] voodootikigod_ has joined the channel [14:00] softdrink has joined the channel [14:01] dylang has joined the channel [14:01] robinduckett: wow [14:01] robinduckett: well [14:01] robinduckett: this is extremely annoying [14:02] wattz: Robbin Williams? [14:02] robinduckett: Your mother. [14:02] wattz: she can be [14:03] digitalsatori has joined the channel [14:03] FuzzYspo0N: lol [14:03] FuzzYspo0N: felt like i setpped into the wrong channel [14:05] _announcer: Twitter: "just curious, have any Node.js build tool like a rake?" [pt] -- Julio Greff. http://twitter.com/juliogreff/status/25121404586 [14:05] robinduckett: hmm [14:05] robinduckett: this is a memcache module problem. [14:05] Anti-X: you need to lick it [14:06] wattz: torque game engine looks cool [14:06] wattz: the 2d builder [14:06] wattz: but i guess that's just like GameSalad [14:08] ysynopsis has joined the channel [14:09] voodootikigod_: any of the joyent folk awake in here? [14:11] FuzzYspo0N: wattz: depends what you doing [14:11] dnolen has joined the channel [14:11] FuzzYspo0N: i know torque super well [14:11] robinduckett: torque 2d is shite. [14:11] daniellindsley has joined the channel [14:11] FuzzYspo0N: robinduckett: emo [14:12] _announcer: Twitter: "@Cubiq if you are using node.js, it will scale a mazingly well" -- Sam Shull. http://twitter.com/samshull/status/25121954460 [14:12] FuzzYspo0N: this is one of those situations where you use whats best suited to your needs wattz [14:12] FuzzYspo0N: no specific tool is best etc etc [14:12] FuzzYspo0N: same old mountain [14:12] FuzzYspo0N: so boring [14:15] wattz: FuzzYspo0N: what do you use to develop games for desktop? [14:16] FuzzYspo0N: wattz: all sorts of things. my own engine, torque2d, irrlicht, etc [14:16] FuzzYspo0N: whatever suits the project [14:17] jacobolu_ has joined the channel [14:18] FuzzYspo0N: this one too : http://phoenixgl.googlecode.com its awesome fun. [14:18] ben_alman has joined the channel [14:18] rwaldron_ has joined the channel [14:18] boaz has joined the channel [14:19] figital has joined the channel [14:19] rwaldron has joined the channel [14:20] sideshowcoder has joined the channel [14:20] LFabien has joined the channel [14:20] FuzzYspo0N: wattz: you said 45 degree isometric right? one sec [14:22] robinduckett: FuzzYspo0N: www.graalonline.com uses torque2d [14:23] streampunk has joined the channel [14:23] Anti-X: i once started working on a game engine for browser js [14:24] ooooPsss: I use Shiva 3D [14:24] matt_c has joined the channel [14:24] ooooPsss: cheap and easy [14:24] Anti-X: i subscribe on google tech talks, and then one day aves showed up and i got disheartened [14:24] Anti-X: :P [14:24] FuzzYspo0N: robinduckett: oh ok, lol [14:24] _announcer: Twitter: "@ Born November mis-read the particular as the 'Chocolate Spice # Node.js "" [nl] -- ell.io. http://twitter.com/elliottcable/status/25122993551 [14:25] FuzzYspo0N: wattz: http://twitpic.com/2btp0x [14:26] FuzzYspo0N: robinduckett: so do we : http://www.lumaarcade.com/index.php?page=iPhone [14:27] loincloth has joined the channel [14:28] FuzzYspo0N: wattz: heres some code from that little 45 degree game : http://pastie.org/1172277 [14:28] hellp has joined the channel [14:29] ceej has joined the channel [14:29] robinduckett: FuzzYspo0N: that ObjC? [14:29] FuzzYspo0N: robinduckett: C++/ [14:29] FuzzYspo0N: just really nice high level c++ [14:31] robinduckett: FuzzYspo0N: that flipt game looks nice [14:31] iwasbiggs has joined the channel [14:31] robinduckett: port it to Android :P [14:31] FuzzYspo0N: heh ;) [14:31] FuzzYspo0N: id rather cut my hands off [14:31] FuzzYspo0N: jk. [14:31] robinduckett: k well [14:32] FuzzYspo0N: but yea, busy working on some new stuff so thats not likely [14:32] robinduckett: see there's a huge wide open market for Android games [14:32] robinduckett: considering all are shite. [14:32] FuzzYspo0N: yea, i blame the dev tools [14:32] FuzzYspo0N: ;p [14:32] robinduckett: really? you can use native C++ [14:33] Josie has joined the channel [14:33] robinduckett: and I see you've chosen not to use ObjC to make iPhone games, so it's not as if you're even using the dev tools from Apple. [14:33] FuzzYspo0N: yea but thats like using a twig to cut through metal [14:33] FuzzYspo0N: theres plenty objC there [14:33] robinduckett: yea but that analogy makes no sense [14:33] FuzzYspo0N: i wrote it all ;) [14:33] FuzzYspo0N: im just messing around, though. [14:33] robinduckett: uh huh [14:34] FuzzYspo0N: either way, android is cool but you know [14:34] FuzzYspo0N: when you look at the publishers/higher level stats [14:34] FuzzYspo0N: if publishers are attacking the platform with vigour [14:34] FuzzYspo0N: id agree its a wide open market [14:34] FuzzYspo0N: its about percentage alot of the time [14:35] FuzzYspo0N: not saying i know better, is what im saying [14:35] robinduckett: I'd say the major problems are inconsistancy with the platform, the fact that you need to cater for the lowest common denominator of hardware capabilities, or find yourself making specially tuned versions of your code for six or seven major devices unless you use pure Java [14:35] polyrhythmic has joined the channel [14:35] _announcer: Twitter: "@Cubiq I haven't used ape, but sockets.io with node.js is pretty simple. And it is all JavaScript, client-side + server-side" -- Sam Shull. http://twitter.com/samshull/status/25123899504 [14:36] mikeal has joined the channel [14:36] robinduckett: And the fact that unlike the iPhone App Store, the majority of Android Store Market Countires don't allow pay for apps. [14:36] robinduckett: *countries [14:36] benburkert has joined the channel [14:36] FuzzYspo0N: yea, but theres also the rivalry in the stores [14:36] FuzzYspo0N: like, theres the whole branding issue that i was reading about recently [14:37] robinduckett: so you're stuck selling to the US, UK, Canada and a few other european countries for all your revenue [14:37] FuzzYspo0N: like verizon store [14:37] pgriess has joined the channel [14:37] robinduckett: FuzzYspo0N: if you really feel like one carrier's bespoke store is going to mess up your entire market then you obviously aren't seeing the big picture. [14:37] FuzzYspo0N: http://techcrunch.com/2010/09/09/android-open/ [14:37] FuzzYspo0N: or maybe you just not looking at all aspects :) [14:37] softdrink: and carriers are crapping all over the features and delaying updates [14:37] FuzzYspo0N: im not ignoring the platform, dont worry [14:38] robinduckett: infact, if you even feel that the fact your app isn't going to be on the devices which don't support the Android Market [14:38] softdrink: carriers = jerks [14:38] FuzzYspo0N: just mentioning why i dont think its ready for me [14:38] robinduckett: is going to hurt your sales [14:38] mif86 has joined the channel [14:38] robinduckett: I feel the major reason android seems to be dying is that no major publisher has picked the platform and stuck with it long enough to produce quality shit [14:39] FuzzYspo0N: lol, well its not about them ,the publisher isnt closing his eyes [14:39] Ori_P has joined the channel [14:39] FuzzYspo0N: he is looking at the market first [14:39] pdelgallego has joined the channel [14:39] FuzzYspo0N: its not like they blindly ignoring it imo [14:39] jtsnow has joined the channel [14:39] FuzzYspo0N: they have valid reasons to be like "screw this" [14:39] jherdman has joined the channel [14:39] robinduckett: I need a hair cut. [14:41] hsuh has joined the channel [14:41] mrbrdo has joined the channel [14:42] mrbrdo: anyone here use Socket.IO or knows where I can get help with it? [14:42] dilvie has joined the channel [14:43] Yuffster has joined the channel [14:44] ph^ has joined the channel [14:44] wink_: anyone familiar with v8 around? im still trying to hunt down a bug in the mongo binding and i've narrowed it down a bit, i have a couple of v8 questions [14:44] FuzzYspo0N: wink_: shoot, i use v8 alot [14:44] softdrink: mrbrdo: the internets! oh wait, this IS the internets. [14:44] bradleymeck: mmm [14:44] softdrink: i haven't used socket.io yet [14:45] admc has joined the channel [14:45] galaxywatcher has joined the channel [14:45] wink_: FuzzYspo0N: any idea how i can hunt down why a call to NewInstance is failing occasionally? [14:46] _announcer: Twitter: "any node.js developers/projects need sponsorship in terms of cash or web hosting (or more)? let me know, have some $ and resources to donate" -- Jason Gill. http://twitter.com/iota/status/25124739011 [14:46] wink_: FuzzYspo0N: http://github.com/w1nk/node-mongodb/blob/master/src/bson.cc#L235 [14:46] wink_: that call fails when the number/size of the mongo result set reaches a certain threshold [14:46] wink_: causing all hell to break loose :p [14:46] softdrink: I think Jason Gill is about to get mugged over Twitter. [14:47] wink_: however, if the mongo result set is just slightly smaller, it runs without a hitch [14:47] FuzzYspo0N: wink_: looking [14:47] wink_: i've ran my test case through valgrind and i dont see any obvious corruption occurring [14:48] FuzzYspo0N: yea, but what happens in the callstack when stepping through ? [14:48] path[l] has joined the channel [14:48] wink_: so i dont believe im smashing anything but the behavior is definitely indicative of something like that [14:48] wink_: FuzzYspo0N: what do you mean? where is it dying? [14:49] wink_: http://pastebin.com/TBqaYzkW [14:49] davidwalsh has joined the channel [14:49] wink_: thats an entire stack trace via gdb node_G [14:49] wink_: er node_g [14:50] wink_: so the other thing to note is that when i increase the result set size to the point this error will occur, it fails on the very first iteration through the decoding [14:50] wink_: yet if i shrink it a little bit, the exact same iteration (data wise) succeeds [14:51] ekidd has joined the channel [14:52] FuzzYspo0N: hrm, it is weird [14:52] nefD has joined the channel [14:53] digitalspaghetti: minecraft === 'bad for productivity' [14:53] wink_: FuzzYspo0N: i've been hunting this bug on and off for a couple of weeks now and i cant seem to nail it down :< [14:55] wink_: i'd profess my undying love for whomever can ferret this thing out [14:55] FuzzYspo0N: wink_: super hard without a debugger but did you try like data breakpoints and such? [14:56] _announcer: Twitter: "@ Uupaa Speaking shortly before but, MessagePack's JavaScript implementation will then invite? I want to work with version node.js pure JavaScript version seems to need some. It sounds good msgpack.org the wiki link you will do?" [ja] -- FURUHASHI Sadayuki. http://twitter.com/frsyuki/status/25125576369 [14:56] wink_: FuzzYspo0N: yeah, i've checked everything i know how...at the point decodeObjectStr gets called everything looks ok [14:56] wink_: then it gets into v8 land and all hell breaks loose [14:57] FuzzYspo0N: wink_: in my experience debugging v8's exceptions its usually a couple steps up the ladder of the callstack [14:57] hannesw has joined the channel [14:57] FuzzYspo0N: so i try going back like 5 steps, and walking super slow into each code block [14:57] FuzzYspo0N: usually, i see something weird [14:57] FuzzYspo0N: but im sure you tried [14:58] wink_: as best i can, im really at a loss on this one.... [14:58] matt_c has joined the channel [14:58] Ori_P_ has joined the channel [14:58] wink_: i could set you up with a mongo server and a test script if you'd like to walk through it? [14:58] wink_: its pretty easy to reproduce, finding the source seems next to impossible :p [15:00] rtomayko has joined the channel [15:00] _announcer: Twitter: "Progressive enhancement through server side JavaScript and Node.js. Definitely on the radar. http://bit.ly/cuoBui" -- Scott Radcliff. http://twitter.com/scottradcliff/status/25125918230 [15:01] james has joined the channel [15:04] bradleymeck: wink can you give me what version of v8 that was run on? [15:05] wink_: bradleymeck: sure, one sec [15:05] hansek has joined the channel [15:05] genbit has joined the channel [15:06] wink_: bradleymeck: i just installed node 0.2.0, it produces an identical stacktrace let me dig up the v8 rev [15:06] bradleymeck: yea but im looking for the stack trace line nums [15:07] wink_: bradleymeck: ok let me repaste with a 0.2.0 stack trace, one sec [15:08] steadicat has joined the channel [15:08] wink_: http://pastebin.com/urUgU3PF [15:08] wink_: whats the easiest way to get the v8 revision [15:09] wink_: most recent mention in the changelog is 2.3.8? [15:10] femtoo has joined the channel [15:10] bradleymeck: k let me finish up some work stuff and ill get on it [15:11] bradleymeck: seems something is off like the getfunction's context doesnt match [15:11] jherdman has joined the channel [15:12] wink_: bradleymeck: thanks, like i was saying i cant entirely rule out corruption somewhere, but valgrind is usually pretty good about whining when you walk on things you should [15:12] wink_: nt [15:12] wink_: any help i can get is much appreciated [15:13] matt_c has joined the channel [15:14] bradleymeck: yea but having virtual mem spaces still can be confusing it, especially because it is a v8 land check that is bailing before any actual corruption would occur [15:15] daniellindsley has joined the channel [15:16] daniellindsley has left the channel [15:17] gsmcwhirter has joined the channel [15:17] ehaas has joined the channel [15:19] creationix has joined the channel [15:19] tj has joined the channel [15:20] creationix has joined the channel [15:20] muk_mb has joined the channel [15:22] jakehow has joined the channel [15:23] dnolen has joined the channel [15:24] matthewford has joined the channel [15:27] daniellindsley has joined the channel [15:27] matt_c_ has joined the channel [15:28] daniellindsley has left the channel [15:28] _announcer: Twitter: "NodeJS: plugins to extract meta-data of media (mp3, jpeg, etc). - oDesk I'm interested to hire someone to write somet http://bit.ly/ctbhCN" -- cebu it department. http://twitter.com/cebu_it_departm/status/25128239462 [15:28] _announcer: Twitter: "@martinbean What are you considering trying out; Rails, Django, Node.js or something totally different?" -- Ross Timson. http://twitter.com/rosstimson/status/25128246251 [15:29] aliem has joined the channel [15:29] jherdman has joined the channel [15:30] mytrile has joined the channel [15:33] elliottkember has left the channel [15:33] _announcer: Twitter: "3 Speaking of the holidays is not Haki出Shi node.js blog results. Be done." [ja] -- Yohei Sasaki. http://twitter.com/yssk22/status/25128663208 [15:34] matthewford: Hi, im trying to fire an event then do an api call but I seem to be getting the 'addListener only takes instances of Function' error any ideas? here is the code I have so far, https://gist.github.com/1297762297122c6cc925 [15:36] path[l] has joined the channel [15:37] hsuh has joined the channel [15:37] bradleymeck: wink_ its a funky error, no idea really, but Object::IsTheHole() is something that is freaking out on that GetFunction() [15:37] sprout has joined the channel [15:37] masch: is there a way in nodejs that tells node to put the execution of a function to the end of the event queue? so that i can build longer operations in a "non-blocking-way" ? (i hope this was understandable) [15:37] caolanm: masch: process.nextTick() ? [15:38] masch: thanks a lot [15:38] caolanm: masch: np [15:38] caolanm: :) [15:38] bradleymeck: matthewford line 37 you closed the paren [15:38] Ori_P has joined the channel [15:38] gsmcwhirter: matthewford, seems line 38 needs a close-parens? [15:38] langworthy has joined the channel [15:38] gsmcwhirter: so slow =( [15:38] gsmcwhirter: and wrong lol X_X bradleymeck was right [15:38] Nietecht: coalnm: do you know whether nextTick is just more efficient than timeout(f, 0) or is there also a difference in the result? [15:39] wink_: bradleymeck: yeah i dunno, i think its more likely something fruity is happening with the binding than v8 being broken [15:39] bradleymeck: there is a slight diff [15:39] wink_: im trying to run any potential buffer issues to ground [15:39] bradleymeck: wink_ agreed but i dont know the binding very well, seems there is a memory hole that is causing it, idk from where [15:39] wink_: i am seeing one oddity with the bson parser when things break, so maybe something is getting screwed in the socket reading [15:40] bradleymeck: if you comment out the exceptionpreamble in api.cc for v8 it might show you something [15:41] matthewford: bradleymeck, cheers [15:41] bradleymeck: Nietecht, the nextTick queue will fire before any events/timers. (kinda like an unshift vs a push) [15:41] wink_: i'll give it a go, im confused as to how this thing will work fine with a 500k response, yet a 505k response causes it to lose its mind [15:42] charlenopires has joined the channel [15:42] _announcer: Twitter: "MOONGIFT: NodeJS for IDE "Nodify" Open Source Software / Free Software Daily Information http://tinyurl.com/25lzay5" [ja] -- Daijiro SUENAGA. http://twitter.com/dsuenaga/status/25129352462 [15:42] Nietecht: bradleymeck: Aha, that's what I wanted to know... But will nextTick queue after other nextTicks or is it put in front every time? [15:43] matt_c has joined the channel [15:43] bradleymeck: after other nextTicks, but dont rely on that [15:43] Nietecht: Ok, cheers :) wasn't planning on that, though [15:43] caolanm: Nietecht: sorry, didn't see your message... yes, what bradleymeck says ;) [15:43] _announcer: Twitter: "MOONGIFT: NodeJS for package management "npm" Open Source Software / Free Software Daily Information http://tinyurl.com/3xvc3cy" [ja] -- Daijiro SUENAGA. http://twitter.com/dsuenaga/status/25129454681 [15:43] Nietecht: caolanm: I'm to blame, typed your name wrong :) [15:44] caolanm: good good, so long as its not my fault... [15:45] c4milo has joined the channel [15:45] jbenesch has joined the channel [15:50] stephank` has joined the channel [15:51] gwoo has joined the channel [15:53] jpld has joined the channel [15:57] hpoydar has joined the channel [15:57] mytrile has joined the channel [15:58] matt_c has joined the channel [15:58] _announcer: Twitter: "Step 1: write a blog engine in node.js backed by Riak. Step 2? Step 3: Profit. http://bit.ly/b26blh" -- Mark Phillips. http://twitter.com/pharkmillups/status/25130643333 [15:59] dilvie has joined the channel [16:00] _announcer: Twitter: "A great video introducing node.js - I have been interested in node.js recently. Check it out from github... http://tumblr.com/xuvj7qul1" -- Mark McConachie. http://twitter.com/markmcconachie/status/25130822125 [16:03] jherdman has joined the channel [16:05] niemeyer has joined the channel [16:06] langworthy has joined the channel [16:07] mape: killfill: Around? Sorry I didn't respond last night, was close to 3AM [16:07] levinalex has joined the channel [16:07] levinalex: I have a quick question about npm (on OS X via homebrew): https://gist.github.com/eb5502b9f8662cb2c05c -- how do I get `npm install ` to work so that I can require the package afterwards in my programs? [16:08] mape: levinalex: I don't think using homebrew is a good idea [16:09] onar has joined the channel [16:09] matt_c_ has joined the channel [16:09] gerred has joined the channel [16:09] levinalex: mape: for node in gerneral or just for npm? [16:09] mape: Node [16:09] benburkert has joined the channel [16:09] mikeal has joined the channel [16:09] bmavity has joined the channel [16:09] mape: Have just heard bad experiences [16:10] mape: Not sure if it is better now but seems not [16:10] amerine has joined the channel [16:11] DoNaLd`: levinalex: http://github.com/isaacs/npm/blob/master/doc/developers.md#readme [16:12] matt_c has joined the channel [16:12] Josie has left the channel [16:13] sudoer has joined the channel [16:13] mif86 has joined the channel [16:13] _announcer: Twitter: "@ IJono last tweet;) normally, at least one article every two days on Web html5/javascript, I shall arrange the node.js" [fr] -- Jérémy TRUFIER. http://twitter.com/Tronix117/status/25131850630 [16:14] dgathright has joined the channel [16:16] _announcer: Twitter: "is it just me, or does node-js not work the way the api docs explain? #nodejs" -- Justin Marney. http://twitter.com/vigemarn/status/25132066370 [16:17] q_no has joined the channel [16:18] mikeal has joined the channel [16:19] herbySk: bradleymeck: why not to rely on the order? At least until now, nextTick was always order-preserving. [16:19] adambeynon has joined the channel [16:20] _announcer: Twitter: "riak-js, not node-js. my bad. #nodejs" -- Justin Marney. http://twitter.com/vigemarn/status/25132383141 [16:21] admc has joined the channel [16:25] matthewford: levinalex, I had to mess with the bash profile to include the npm script not on osx atm, so it's not at hand [16:25] sahazel has joined the channel [16:25] mytrile has joined the channel [16:26] levinalex: ACTION has just found an old .npmrc -- investigating if this fixes the problem [16:27] levinalex: (it does not) [16:27] mikeal: _announcer: die in a fire [16:27] isaacs has joined the channel [16:27] bcg has joined the channel [16:28] bpot has joined the channel [16:29] levinalex: hi isaacs, could you take a look at https://gist.github.com/eb5502b9f8662cb2c05c (npm installed with homebrew on OS X) -- am I doing something wrong? [16:29] mikeal: node 2.0.2 is broken for packages [16:29] mikeal: :( [16:29] mikeal: i can't be the only one who figured this out [16:30] mikeal: require.paths is undefined [16:30] mikeal: so you can only require packages that are part of core [16:30] levinalex: you mean 0.2.2? [16:30] mikeal: yeah, sorry, 0.2.2 [16:30] levinalex: but that explains why it says "Error: No such /native/ module nodeunit" [16:31] mikeal: > node [16:31] mikeal: require.paths [16:31] mikeal: nothing [16:31] mikeal: that's very very bad [16:31] _announcer: Twitter: "so now that I have unlimited access to Peepcode, where do I start from? Mmmm node.js... :)" -- Jaime Iniesta. http://twitter.com/jaimeiniesta/status/25133226375 [16:32] nsm has joined the channel [16:32] levinalex: mikeal: http://github.com/ry/node/issuesearch?state=open&q=require#issue/86 [16:33] levinalex: (nope, that's not it) [16:33] mikeal: that's not it at all [16:34] x_or has joined the channel [16:34] mjr_ has joined the channel [16:35] bradleymeck: herbySk until it is documented that it preserves. i wouldnt make your coderely on it [16:36] neptun3 has joined the channel [16:36] herbySk: bradleymeck: hm, yes [16:36] mikeal: it will always preserve ordering [16:36] mikeal: that won't change [16:36] sprout has joined the channel [16:36] mikeal: node is broken if it doesn't [16:37] voxpelli has joined the channel [16:37] robinduckett: 1808.99 requests served per second is good right? [16:37] isaacs: mikeal: only in the repl [16:37] mikeal: if it didn't you'd get like, data chunks emitted out of order and the whole world will break [16:38] mikeal: isaacs: why? [16:38] mikeal: why would requre.paths be undefined in repl [16:38] isaacs: mikeal: but yeah, annoying. already fixed on master, most likely going to be in 0.2.3 [16:38] isaacs: mikeal: because there was a change to make native modules load in a different way from non-native modules. [16:38] isaacs: mikeal: which means that "require" in the repl (since it's a native module) is actually requireNative [16:39] sveimac has joined the channel [16:39] mikeal: so npm is broken in rpl [16:39] mikeal: er repl [16:39] mikeal: awesome dude [16:39] isaacs: mikeal: well, no. require() is broken in the repl [16:39] agnat_ has joined the channel [16:39] isaacs: if you want to do anything other than path = require("path") or whatever [16:39] isaacs: mikeal: the good news is that there's a test for that now [16:39] mikeal: require('sys') works [16:39] mikeal: because it's packaged in differently [16:39] masch: what to to if the .npm/.cache directory is missing? [16:40] isaacs: levinalex: at the very least, you'll probably need to put /usr/local/lib/node in your NODE_PATH. but I really recommend just not using homebrew for node/npm. it does weird things. [16:40] masch: cause npm don't seems to create this on his own [16:40] mikeal: we should fix it [16:40] mikeal: i was going to take a stab at it a few days ago but this bug make me wanna murder a baby and i gave up [16:40] sprout1 has joined the channel [16:41] isaacs: levinalex: first do "brew uninstall node ; brew uninstall npm" [16:41] isaacs: levinalex: then do this: http://gist.github.com/579814 [16:41] isaacs: mikeal: it's fixed already. ryah rolled back the changes. [16:41] levinalex: isaacs: on it [16:42] isaacs: ACTION is kind of amazed about how good just Plain Old Coffee is everywhere in Oakland [16:42] mikeal: you have a gist that un-fucks node on homebrew [16:42] mikeal: we so need this to just work properly on install [16:42] MikhX has joined the channel [16:42] isaacs: mikeal: i have a gist that installs node properly [16:42] mikeal: i see [16:42] isaacs: mikeal: yeah, but here's the issue: homebrew doesn't trust packages to manage themselves. [16:43] isaacs: mikeal: it has very specific conventions that it forces things to follow, and then sets up symlinks and such, and one package talking to another (ie, npm putting shit in node's folder) is Not Ok [16:43] mikeal: i don't actually understand what it's doing that is so broken [16:43] mikeal: npm puts shit in ~/.node-libraries [16:43] isaacs: rather than just set some confs to make npm behave, in the way that npm is designed to do, they set up a proxy shell script that calls npm, etc. [16:43] isaacs: mikeal: by default, no it doesn't. it puts them in {prefix}/lib/node [16:44] mjr_: How does homebrew deal with the other language-speicifc package managers like cpan, gems, etc? [16:44] isaacs: mikeal: but you can conf all that shit [16:44] isaacs: mjr_: not very well, apparently. [16:44] mikeal: somehow mine always puts them in ~/ [16:44] mikeal: so [16:44] isaacs: mikeal: you probably have "root = /Users/mikeal/.node_libraries" in your .npmrc [16:44] mikeal: npm install should detect homebrew [16:44] mikeal: and swap install space [16:44] isaacs: mikeal: omgno [16:44] mikeal: for bin and libs [16:44] isaacs: mikeal: yeah.... [16:44] isaacs: no [16:44] mikeal: you have a default install location [16:44] mikeal: just change it :) [16:45] isaacs: because then i'd have to detect apt-get and yum and everybody else. [16:45] mikeal: no, cause they are less fucked [16:45] masch: " Error: Failed to create /usr/local/lib/node/.npm/.cache/npm/0.2.1/package.tgz: ENOENT, No such file or directory '/usr/local/lib/node/.npm/.cache/npm/0.2.1/package.tgz' [16:45] masch: " <-- sounds freaky [16:45] _announcer: Twitter: "I still remember when the @ @ handersonbf rScore and laughed at me when I said I'd do a 100% in js => MongoDB nodejs + + jquery" [pt] -- cmilfont. http://twitter.com/cmilfont/status/25134315876 [16:45] mikeal: i'm still wondering why you can't just install packages in to the Cellar for that node version [16:45] isaacs: masch: what version of node/npm [16:45] masch: npm 0.2.1 [16:45] isaacs: oh, 0.2.1, i see it [16:46] mjr_: Surely we can get the homebrew guy in on this discussion and figure out how to fix this. [16:46] vmthehut has joined the channel [16:46] isaacs: mikeal: i could, and that'd be fine, but except that Cellar isn't in the NODE_PATH or PATH [16:46] x_or has joined the channel [16:46] isaacs: mikeal: so, what you get is people doing "npm install connect" and then require("connect") doesn't find it, and they post an issue, and i say "don't use brew" and forever the problem is fixed. [16:46] mikeal: so the node install for homebrew doesn't create a lib directory like every single other installer? [16:46] mikeal: that's the bug [16:47] isaacs: mikeal: it does, but you see, you're not allowed to touch Cellar/node/0.2.1/lib unless you're node@0.2.1 [16:47] mikeal: issues 756: stop retarding the node install [16:47] isaacs: also, if you upgrade the version of node, you lose all your npm libs [16:47] mikeal: how do you detect the install location? [16:47] mikeal: require.paths[0]? [16:47] isaacs: mikeal: process.execPath [16:47] mikeal: and that's the sym link [16:47] mikeal: ? [16:48] isaacs: mikeal: the default root is process.execPath/../../lib/node [16:48] isaacs: no, that's the Cellar path, i believ [16:48] isaacs: e [16:48] mikeal: ok, so execPath is Cellar/bin/node [16:48] mikeal: and you install in Cellar/lib/node [16:48] isaacs: it's all kinds of wonky. i could spend a day sorting through it all, but i could also spend a day doing literally any other thing in the world. [16:49] levinalex: why does npm need to write into node directories? can't it just print "add NODE_PATH=" to your .bashrc [16:49] isaacs: it would be nice if it worked. [16:49] mikeal: why isn't Cellar/lib/node in require.paths [16:49] isaacs: levinalex: it does, actually. [16:49] isaacs: levinalex: look at the gist you sent [16:49] levinalex: ACTION looks [16:49] mikeal: like, what are they changing about the install other than the sym link? [16:50] levinalex: ah, but the directories it says the libs are in don't exist [16:50] isaacs: levinalex: k. that's a bug for homebrew [16:50] levinalex: okay [16:51] ivong has joined the channel [16:51] isaacs: i dunno. my weekend is free, maybe i'll sort through this. it would be nice if it Just Worked. [16:51] isaacs: you know? [16:51] hansek_ has joined the channel [16:51] isaacs: brew install npm and BAM everything works. [16:51] mikeal: yeah, we should just patch the node and npm installers for homebrew [16:51] isaacs: but... not so much. [16:51] mikeal: if they are doing extra silly things in the node installer just remove them [16:51] mikeal: the hard part is actually going to be the bin installs [16:52] isaacs: mikeal: reid actually did that, and was nice enough to run his changes by me, and make sure that they actually work, but i think the brew folks said no [16:52] mikeal: cause the execPath isn't in PATH [16:52] isaacs: mikeal: because it violated some of their conventions. [16:52] isaacs: basically, every other package manager in homebrew is a second-class citizen. [16:52] mikeal: that'll require code that says like "if execPath not in Path check for sym links in PATH and then create sym links after bin installs in the same location" [16:52] isaacs: oh, jee. [16:52] isaacs: jeez [16:52] mies has joined the channel [16:53] mikeal: well, they can stop being retarded [16:53] mikeal: homebrew is suppose to be for "developers" [16:53] isaacs: so, to set the default binroot, npm would have to scan through the process.env.PATH.split(":"), searching all of those directories for symlinks to execPath? [16:53] mikeal: if they are breaking the install of node for installing dev packages then they can fix it [16:53] isaacs: that's like many hundreds of stats on every npm run [16:53] isaacs: (more) stats, that is [16:53] sprout has joined the channel [16:54] isaacs: the right thing would be for brew to decide where it wants npm to put stuff, and then set up a config file, and do the standard npm install. [16:55] sprout1 has joined the channel [16:55] mikeal: where is npm's config file? [16:55] isaacs: with npm being so configurable, it seems like it should be easy [16:56] mikeal: i'm thinking that if the npm install puts itself in node/version/lib then it could also stick a config there [16:56] mikeal: and that should be within their conventions [16:56] isaacs: 1) the command line "--foo bar" sets the "foo" config to "bar" 2) the env, npm_config_foo=bar 3) ~/.npmrc (or the "userconfig" setting, if set in 1 or 2) 4) {prefix}/etc/npmrc (or the "globalconfig" setting if set in 1, 2, or 3) 5) the defaults in lib/utils/default-config.js [16:56] matclayton has joined the channel [16:58] levinalex: isaacs: `curl -L http://github.com/isaacs/npm/tarball/master` redirects to `http://nodeload.github.com/isaacs/npm/tarball/master` which returns a 502 [16:58] tdegrunt_ has joined the channel [16:59] isaacs: levinalex: well, that sucks :) gimme a second, i'll git-archive one up for you [16:59] levinalex: :) cool [16:59] bcg has joined the channel [17:01] bcg_ has joined the channel [17:01] brianmario has joined the channel [17:01] pgriess has joined the channel [17:02] noahcampbell has joined the channel [17:02] mif86 has joined the channel [17:03] quirkey has joined the channel [17:03] richcollins has joined the channel [17:03] isaacs: levinalex: download this, and then "make" inside it: http://npmjs.org/npm-v0.2.1-5-gf9071cf.tar.gz [17:03] _announcer: Twitter: "management software package node.js npm, sudo but not sudo and not try to run "sudo is that," he said." [ja] -- snj14. http://twitter.com/snj14/status/25135645431 [17:03] isaacs: japan has discovered npm. it's so amusing to see all the translations :) [17:03] dmcquay has joined the channel [17:04] MikhX has joined the channel [17:04] levinalex: isaacs: thank you [17:06] q_no has joined the channel [17:07] creationix has joined the channel [17:08] aho has joined the channel [17:08] mikew3c_ has joined the channel [17:09] jchris has joined the channel [17:09] jchris has joined the channel [17:09] onar has joined the channel [17:10] _announcer: Twitter: "@frank06 0.2.2f *is* working perfectly, which is awesome! #nodejs" -- Justin Marney. http://twitter.com/vigemarn/status/25136175839 [17:11] benburkert has joined the channel [17:12] levinalex: isaacs: when I now do `npm install nodeunit`, where is the library downloaded to? [17:12] isaacs: levinalex: npm config get root [17:12] isaacs: levinalex: libs go there ^ [17:12] isaacs: levinalex: npm config get binroot [17:12] isaacs: levinalex: exes go there ^ [17:12] levinalex: cool [17:12] onar has joined the channel [17:13] isaacs: levinalex: you can also "npm config ls" to see all your confs [17:13] MikhX has joined the channel [17:13] dylang: does node have a timezone concept? I'd like date() to be the timezone i specify rather than the server deployed to. [17:13] _announcer: Twitter: "@old_sound Look at the brightside, Node.js drawing all the RoR fanatics means they're still out of our hair." -- Jason Williams. http://twitter.com/jasonjwwilliams/status/25136405000 [17:13] isaacs: dylang: doesn't javascript do that, like, natively? [17:14] isaacs: dylang: i mean, if you do (new Date).toISOString() it'll give you the UTC time [17:14] isaacs: dylang: Date.now() gives you the epoch ms [17:14] isaacs: etc. [17:15] dylang: isaacs: true, but i was hoping to avoid doing the math to convert it each time. it's for a simple logging function. [17:15] vnguyen has joined the channel [17:15] MikhX has joined the channel [17:16] _announcer: Twitter: "I wish I had a Node.js compatible server :(" -- Daniel Rapp. http://twitter.com/DanielRapp/status/25136579928 [17:16] isaacs: dylang: yeah, js is all UTC all the time [17:16] isaacs: dylang: it's ahead of its time, so to speak ;) [17:16] dylang: ooooh [17:17] dylang: so it's not server time? [17:17] onar has joined the channel [17:17] isaacs: dylang: well, i mean, if your server's clock is accurate, yeah, it's epoch time. that's zone-less [17:17] dylang: isaacs: oh wait it is unless i use the UTC, makes sense. [17:17] isaacs: dylang: yeah, it's local time [17:17] dylang: isaacs: i can tell it's not the way i'm doing things now because my local and remote logs aren't in sync. [17:18] isaacs: dylang: but you can get the current epoch time, and then (new Date).getTimezoneOffset() * 60000 to get the ms offset, and then add/subtract [17:18] isaacs: er, minutes offset [17:18] dylang: isaacs: exactly. cool thanks. [17:18] genbit has left the channel [17:18] isaacs: um... wait, no, yeah,that ms offset [17:18] isaacs: minute offset is (new Date).getTimezoneOffset() [17:18] isaacs: but yeah, imo, just use UTC always, and everything will be in sync [17:18] isaacs: this whole "time zone" thing is so archaic [17:19] isaacs: once for a summer, i kept my clock in zulu time. it got too confusing once school started and i had to keep doing math to know what my schedule was. [17:19] isaacs: the dealbreaker was when daylight savings time ended, and then i had to change all the math [17:20] pquerna: is it bad to use the node.js console to reformat json :x [17:20] levinalex: ACTION has a working npm now :) thanks guys [17:21] isaacs: pquerna: if you want it to be strict json, yes. [17:21] isaacs: pquerna: i have a handy textmate plugin that pretty-prints json in a node-style [17:21] pquerna: ahhh gimmie [17:21] pquerna: <- textmate user [17:21] aconran has joined the channel [17:22] mjr_: I use node all the time to just reformat JSON [17:22] dylang: isaacs: i took a trip to argentina last november. three days before daylight savings times the president decided that the country would no longer change clocks. all the flights were an hour "early" or "late" depending on who was able to fix their computers. [17:22] isaacs: pquerna: w00t! http://gist.github.com/590083 [17:22] isaacs: pquerna: you can tell how long ago i wrote this, because it has ; all over the place ;P [17:22] isaacs: dylang: yeah, that sucks. [17:23] isaacs: dylang: i think we should all just abandon our attachment to specific numbers, and just use UTC. [17:23] creationix: zulu ftw [17:23] isaacs: dylang: then, instead of asking, "what time is it in los angeles?" you'd ask "what time does los angeles get into work?" which is realy what you mean anywah [17:23] programble has joined the channel [17:23] programble has joined the channel [17:26] dylang: isaacs: all of china is one timezone, i wonder if it works there. [17:26] isaacs: dylang: seems to. [17:26] nefD: blargh.. anyone seen felix? [17:26] pdelgallego has joined the channel [17:27] _announcer: Twitter: "@jeffhorton Uh oh. Don't let the node.js crowd hear you say that!" -- Simon Wilson. http://twitter.com/oldgravy/status/25137354366 [17:27] ngw has joined the channel [17:28] ryan[WIN] has joined the channel [17:29] path[l] has joined the channel [17:29] stride: adylin case it wasn't mentioned already (tldr :) http://www.datejs.com/ has timezone stuff and should work on node [17:29] stride: eh, dylang even [17:29] V1 has joined the channel [17:30] niemeyer_ has joined the channel [17:32] dylang: stride: thanks. this is for a light logging ui (http://www.opowerjobs.com/log) so not going to use it, but maybe another project. [17:32] herbySk has joined the channel [17:33] s0enke: twitter streams + node + mongo == world domination ;-) [17:33] nwhite has joined the channel [17:33] grahamalot has joined the channel [17:36] mbrochh has joined the channel [17:36] mbrochh has joined the channel [17:37] jbaron has joined the channel [17:40] claudiu__ has joined the channel [17:40] richcollins has joined the channel [17:42] s0enke: isaacs, btw regarding http://pastie.org/1171431 - problem solved: httpClient needs on('error') too :) [17:43] isaacs: s0enke: kewl [17:43] mytrile has joined the channel [17:43] beawesomeinstead has joined the channel [17:43] matclayton has left the channel [17:43] s0enke: node is now stable grabbing urls out of twitter streams and throwing it into a mongodb. [17:44] s0enke: time to put it on a cloud node and let it running for some days [17:46] harryv has left the channel [17:48] wattz: holy long day [17:51] nwhite_ has joined the channel [17:51] jchris1 has joined the channel [17:51] isaacs: s0enke: hey, btw, you know that stuff i was saying yesterday about url parsing being hard? ironic that twitter had a xss exploit as a result of exactly that issue this morning. [17:52] bradleymeck: mmm is there a consensus on a generic db wrapper api somewhere? [17:54] tjholowaychuk: bradleymeck: I actually kinda liked marak's thing that was released on github a few days ago [17:54] tjholowaychuk: didnt look at the code [17:54] tjholowaychuk: but the idea was simple and nice [17:54] tjholowaychuk: hopefully not stolen lol [17:55] bradleymeck: i didnt see a database api, ill look [17:55] _announcer: Twitter: "Starting to get a geek on for node.js" -- Simon Gardner. http://twitter.com/sigardner/status/25139272120 [17:55] tjholowaychuk: it was this webservice thing http://github.com/Marak/webservice.js [17:56] langworthy has joined the channel [17:56] tjholowaychuk: you could set it up a lot like jsonrpc [17:56] tjholowaychuk: with named params etc [17:56] tjholowaychuk: but I prefer json [17:56] tjholowaychuk: but still a neat idea [17:58] bradleymeck: yea, but i think running over http would be a bit much for just an API [17:59] TheEnd2012 has joined the channel [18:00] alexb_ has joined the channel [18:01] tjholowaychuk: for sure [18:01] tjholowaychuk: I just mean conceptually, but yeah jsonrpc via tcp or something [18:02] robotarmy: bradleymeck: i'm for that - http json db wrapper api [18:02] robotarmy: via REST [18:02] robotarmy: couchdb tries that [18:03] robotarmy: i tried it with my mongoledger project [18:03] franksvalli has joined the channel [18:03] bradleymeck: i think first thing would be to make a generic api covering most dbs first before putting it ontop of http [18:04] tjholowaychuk: yeah lol couch is kinda retarded that way [18:04] tjholowaychuk: you could wrap redis w/ http [18:04] tjholowaychuk: but dont start there [18:04] robotarmy: couch is smart that way [18:05] bradleymeck: idk about smart, its just one way to do things [18:05] robotarmy: bradleymeck: : yes - idk? [18:05] bradleymeck: yes to what? [18:05] robotarmy: bradleymeck: the thing about an application API - is it is about something [18:06] robotarmy: (many ways to do something - all having tradeoffs - many perspectives , no right answer etc) [18:06] fermion has joined the channel [18:06] robotarmy: bradleymeck: if you want to have a DB API - etc - look into SQL relay [18:07] robotarmy: a json front end to that would cover most databases [18:07] robotarmy: that are sql [18:07] bradleymeck: sql though doesnt make sense for k-v stores so heh [18:07] agnat has joined the channel [18:07] robotarmy: if you want to do a no-sql database [18:07] robotarmy: and that is what you consider 'most dbs' [18:07] robotarmy: then you going to find - all you get by trying to make a generic api - is a 'least common denomontor' abstraction' [18:07] bradleymeck: i am looking for an intersect of the 2 as an api, so im just going to start coding and see how it goes [18:08] robotarmy: bradleymeck: best idea [18:08] robotarmy: code [18:08] robotarmy: that's the way [18:08] bradleymeck: well not exactly, if you state that all implementations of the api must be the exact same true, however is call styles are the same across the board, you can at least read how the code is flowing [18:09] bradleymeck: s/is/if/ [18:09] stepheneb has joined the channel [18:09] marshall_law has joined the channel [18:09] codetonowhere has joined the channel [18:09] robotarmy: bradleymeck: yes - you can do more or less [18:09] robotarmy: bradleymeck: sounds fun - go ! go and code! [18:10] robotarmy: bradleymeck: here is my stab at it - http://github.com/robotarmy/MongoLedger [18:10] bradleymeck: if only i had time and was employed to only do so [18:10] robotarmy: i wrote that when i was unemployed [18:10] robotarmy: it's a very basic rest operation on mongo [18:10] robotarmy: unfinished [18:11] robotarmy: lib/LedgerService.js is the restish api [18:11] rnewson: it seems node.js doesn't honor connection:close in a response, sending one more request after the server says not to, this appears to be the source of my connection resets. anyone online who could help me dig into this? [18:16] vmthehut has joined the channel [18:16] _announcer: Twitter: "Using my sick day to mess around with node.js, pubsubhubbub and also websockets+Coldfusion. Interesting stuff with lots of possibilities." -- Rick Mason. http://twitter.com/Egnaro/status/25140632984 [18:16] pwrfail has joined the channel [18:19] rnewson: ryah: I've captured an http conversation showing node sending a request after receiving a response with connection:close. I'm reading the handling around self._last with little illumination. [18:26] mischief has joined the channel [18:26] qFox has joined the channel [18:27] neptun3 has joined the channel [18:28] s0enke: isaacs, yap. but also not the first ecproblem with escaping at twitter ;) [18:28] HAITI has joined the channel [18:28] s0enke: argh pressed enter to early [18:28] sahazel has joined the channel [18:29] s0enke: isaacs, not the first escaping-problem at twitter ;) [18:29] isaacs: s0enke: it's kewl, irc is fast and loose :) [18:29] _announcer: Twitter: "Good morning (morning) ... Nodejs v0.2.2 released ... http://plurk.com/p/7n2i5k" [zh-TW] -- Hsu Ping Feng. http://twitter.com/fillano/status/25141453295 [18:29] muk_mb has joined the channel [18:29] rnewson: ryah: turns out it's 0.1.104. retesting with 0.2.2 [18:33] [[zz]] has joined the channel [18:34] huyhong has joined the channel [18:34] huyhong has left the channel [18:35] gf3 has joined the channel [18:37] technoweenie has joined the channel [18:38] wakawaka has joined the channel [18:38] _announcer: Twitter: "@stephaniemolly I need more code nerd friends. Try googling for node.js and bask in its goodness" -- howdoiwritethis. http://twitter.com/howdoiwritethis/status/25142078887 [18:39] _announcer: Twitter: "@fabiokung node.js?!?!" -- Rodrigo Yoshima. http://twitter.com/rodrigoy/status/25142104934 [18:39] tjholowaychuk: ryah: any word from the Joyent dudes about those binaries? [18:41] matjas has joined the channel [18:44] pgriess has joined the channel [18:47] _announcer: Twitter: "I wanna write a soap opera involving Rails, Node.js and MongoDB. Throw in a little Haskell and we've got ourselves a drama." -- Ahsanul Haque. http://twitter.com/ahsanul/status/25142653098 [18:51] creationix: I think I've discovered a new pattern [18:51] creationix: https://gist.github.com/358482dffb84ecf1a0c3 [18:51] isaacs: pquerna: how many beers do i need to buy you to get you to add documentation magic to nodul.es? [18:51] isaacs: pquerna: that would be so handy. [18:52] pquerna: Kami_: ^^ [18:52] mattly has joined the channel [18:52] rnewson: seems http.js doesn't handle connection:close in responses, only in requests. oops. [18:52] creationix: isaacs: have you done something like the wrap() function I just gisted? [18:53] isaacs: creationix: kinda. i mostly just attach a process!unhandledException handler, and don't worry about throwing [18:53] isaacs: throwing means that something is Very Very Wrong. [18:54] creationix: well, not just the throwing, but re-routing callback based errors too [18:54] isaacs: oh, i see [18:54] isaacs: i see what you did there [18:54] jesusabdullah: pquerna: Also, nodul.es has been down for me [18:54] _announcer: Twitter: "Have you been using Node.js? For what and with what database? (if any)" -- Marc Grabanski. http://twitter.com/1Marc/status/25143057650 [18:54] creationix: then my logic doesn't have to have the if(err) return callback(err)every time [18:54] isaacs: right, so, fn gets the good stuff, and cb gets the bad [18:54] creationix: but accidental throws like an invalid JSON.parse or foo.foo where foo is undefined [18:54] isaacs: right [18:54] creationix: yeah [18:55] isaacs: yeah, i just handle those at the top leve. [18:55] isaacs: level [18:55] isaacs: or right where they're being done [18:55] isaacs: like, try { JSON.parse ... [18:55] creationix: top level works, but I really want to be able to send the browser a 500 response [18:55] Ori_P has joined the channel [18:55] isaacs: suresure [18:55] creationix: and I really don't like having to put try catch inline in my code, it's ugly [18:55] isaacs: so, yeah, for something like connect that sorta makes sense. [18:55] pquerna: state maintenance [18:55] isaacs: still, i don't like having the first arg as not-error [18:55] pquerna: grrr [18:55] creationix: anyway, just wondering if anyone else already discovered this pattern [18:55] voxpelli has joined the channel [18:56] tjholowaychuk: i pretty much do that with soda [18:56] isaacs: creationix: i do have one pattern in npm that does something sorta like that [18:56] jesusabdullah: soda? [18:56] isaacs: the promise-chain [18:56] tjholowaychuk: defer to a single callback for error handling [18:56] tjholowaychuk: jesusabdullah: node's selenium RC client [18:56] isaacs: tjholowaychuk: http://github.com/isaacs/npm/blob/master/lib/utils/promise-chain.js [18:56] tjholowaychuk: jesusabdullah: http://sodajs.com/ w/ sauce labs support [18:56] isaacs: er, creationix ^ [18:57] creationix: tjholowaychuk: didn't know you worked on soda [18:57] pquerna: jesusabdullah: should be back up now. service some reason keeps going into maintence mode :-/ [18:57] isaacs: creationix: it's more complex than your gist, but uses that same "fn for good, cb for bad" thing [18:57] creationix: it's pretty neat [18:57] tjholowaychuk: creationix: ya i wrote it [18:57] creationix: cool [18:57] deepthawtz has joined the channel [18:57] tjholowaychuk: it supports regular good old node cb(err, res) [18:57] creationix: isaacs: I see, it's the same, thanks [18:57] tjholowaychuk: but when chaining defers to end's callback [18:58] isaacs: creationix: i keep wanting to remove that, though [18:58] matt_c has joined the channel [18:58] isaacs: i like cb(er, data) best [18:58] isaacs: when i see a function getting data as the first arg, it looks like an error to me. [18:58] creationix: well, with my wrap function, the developer can choose when to automatically wrap errors [18:58] creationix: it doesn't wrap everything for you [18:59] creationix: onData = wrap(function (data) {...}, callback) [18:59] isaacs: the only case where i use the promise chain is in adduser, because i need to display prompts in order, and do somethign after each step. [18:59] MikhX has joined the channel [18:59] isaacs: but i still want to jump to the end if there's an error [18:59] creationix: so it's easy enough to see why there isn't an err parameter in there [18:59] jesusabdullah: I didn't know you were on the learnboost team, tjholowaychuk [18:59] isaacs: creationix: http://github.com/isaacs/npm/blob/master/lib/adduser.js#L26-47 [18:59] rnewson has joined the channel [19:00] [[zz]] has joined the channel [19:00] creationix: isaacs: that looks like a strange mix of fab and Step :P [19:00] isaacs: heh [19:00] creationix: javascript sure is flexible [19:00] isaacs: it kinda is :) [19:01] isaacs: the thing that's cool is that it's really not very much code to wire that together [19:01] isaacs: <3 js [19:01] creationix: yeah, step is pretty minimal too [19:01] isaacs: but yeah, pc is VERY fab-ish [19:01] isaacs: a bit more convention than fab's infinitely flexible haiku-like style [19:03] LFabien has joined the channel [19:04] loincloth has joined the channel [19:04] creationix: Actually I really like this wrap thing [19:04] creationix: it's always the first thing in the stack after node.js:757:9 [19:05] creationix: and I can throw at will and know it will get routed to the proper callback [19:05] javajunky has joined the channel [19:05] benv has joined the channel [19:06] hansek_ has joined the channel [19:06] creationix: ACTION goes back to writing more slides... [19:08] isaacs: ACTION goes back to getting to know solaris [19:08] muk_mb has joined the channel [19:10] creationix: isaacs: good luck with that [19:11] SamuraiJack has joined the channel [19:11] dpritchett has joined the channel [19:12] elliottkember has joined the channel [19:12] dpritchett: Is it normal as an npm user to be able to successfully import libraries when executing a file (i.e. node testfile.js) but not be able to import those same libraries by typing the code into the REPL? [19:12] sechrist: solaris hehe [19:13] aurynn: oh, Solaris [19:13] dpritchett: I'm trying to play around with the markdown library and it only works when I type my code out and save it as a .js and then execute it... firing up a repl by typing "node" and then trying to type the same code gets me a "no such native module markdown" error every time [19:13] creationix: Ok, finished my example readFile implementation http://gist.github.com/590314 [19:13] creationix: trying to discover and use best practices [19:13] nroot7 has joined the channel [19:13] creationix: (readFile as in fs.readFile) [19:14] creationix: if anyone has a chance, please look for errors or things I can improve [19:14] aurynn: I need to finish my driver, so I can write a talk about it for pgwest. *blah* [19:15] dpritchett: I'm using ubuntu 10.04 if that helps [19:15] creationix: (I know the 40 byte chunk size is tiny, that was for testing) [19:16] creationix: dpritchett: what version of node are you using [19:16] aurynn: I should also write software around the driver, so I know how to use it [19:16] creationix: dpritchett: sounds like you have a bad revision of the unstable branch [19:16] dpritchett: daniel@lucid:~$ node -v v0.2.2 [19:16] creationix: I'm pretty sure -v lies on the unstable branch [19:16] dpritchett: I just pulled it down from the .tgz on nodejs.org a few mins ago. [19:16] dpritchett: I didn't do any uninstall of my previous 0.2.1 fwiw [19:16] dpritchett: ... because I didn't know ho [19:16] dpritchett: w [19:17] creationix: dpritchett: hmm, then that should be the latest stable release [19:17] creationix: dpritchett: you can do which node to see which one you're using, but it's probably just "/usr/local/node" [19:17] dpritchett: i suppose it woudl be instructive to print out the include path using console.log from both the repl and a script [19:17] creationix: dpritchett: just type require.paths [19:17] creationix: in the repl [19:18] jbaron has joined the channel [19:18] creationix: dpritchett: but the error ""no such native module markdown" means you're not using the normal require, but the internal native-only one [19:18] dpritchett: it's /usr/local/bin/node [19:18] creationix: yeah, that's what I meant [19:19] dpritchett: how do I use the right require? [19:19] creationix: should just work [19:19] creationix: try running the node from your build directory [19:19] creationix: src/node-v0.2.2/build/default/node [19:19] dpritchett: i already deleted that but sure i'll rebuild [19:19] creationix: or wherever you compiled it [19:20] isaacs: creationix: -v shows "0.3.0-pre" on master atm [19:20] creationix: isaacs: awesome [19:20] isaacs: oh, wait, not any more. wtf. [19:20] isaacs: oh, wait, no, i'm dumb. & is not the same as && in bash [19:21] isaacs: i was like, "WOW, that installed FAST and without ANY output!!" [19:21] Anti-X: lol [19:21] sstephenson has joined the channel [19:22] _announcer: Twitter: "It seems like a lot of people think #nodejs is just a new cool way to build web apps. That's just the unimportant half of it." -- Felix Geisendörfer. http://twitter.com/felixge/status/25144870665 [19:22] dpritchett: still recompiling 0.2.2.tgz [19:22] marshall_law has left the channel [19:23] marshall_law has joined the channel [19:23] path[l] has joined the channel [19:24] _announcer: Twitter: "Trying to think of a good idea for a project to play around with node and express. #nodejs" -- Aaron Mc Adam. http://twitter.com/aaronmcadam/status/25144980662 [19:24] jbaron_ has joined the channel [19:25] pquerna: ryah: heya, has the node.js buildbot stuff been revamped? [19:26] dpritchett: ~/node-v0.2.2/node -v v0.2.2 [19:27] pdelgallego has joined the channel [19:27] _announcer: Twitter: "@ # Aplanting check it nodejs http://www.youtube.com/watch?v=WZi9yf4my_U" [af] -- JvdMeulen. http://twitter.com/JvdMeulen/status/25145177896 [19:30] dpritchett: I guess I'll try installing from github instead [19:31] prettyrobots has joined the channel [19:33] ooooPsss has joined the channel [19:34] dpritchett: it works on 0.3.0-pre, i hope I haven't brought anything too unstable along with it [19:37] visnup has joined the channel [19:39] codetonowhere has joined the channel [19:39] thejefflarson has joined the channel [19:43] jchris has joined the channel [19:43] nwhite_ has joined the channel [19:44] dpritchett: thanks all [19:46] herbySk: dpritchett: 0.2.2 has this incorrect behaviour, fix wasn't accepted and it was reverted back in master, but it is still present in 0.2.2 [19:49] kuya: hello, im trying to get started with socket.io but the example is trying to get http://cdn.socket.io/0.6/WebSocketMain.swf which doesnt seem to exist [19:49] kuya: any hints? [19:49] _announcer: Twitter: "The next generation stack. Is NodeJS ready to go mainstream? http://bit.ly/bq8ygE" -- Thomas Schedler. http://twitter.com/chirimoya/status/25146595985 [19:49] cloudhead has joined the channel [19:49] janne has joined the channel [19:50] _announcer: Twitter: "Node.js, Unix based OS and MongoDB (NUM) are the new LAMP ... http://bit.ly/cZ3xcw" [pt] -- Thomas Schedler. http://twitter.com/chirimoya/status/25146652133 [19:50] matt_c: OMG Acronyms! [19:51] path[l] has joined the channel [19:53] kuya: anyone know who the socket.io author is so i can spam him? :) [19:54] MattJ has joined the channel [19:54] dpritchett: herbySk: any idea why the require works fine when i run a .js script but not from the repl? [19:56] dpritchett: I found the commit, nvm http://github.com/ry/node/commit/4962702e4a06e3b986cbf1d1042a29c35ef7105d [19:58] kuya: no-one can help with socket.io...? am i being dumb? i found http://cdn.socket.io/stable/WebSocketMain.swf works as a link but no joy actually using it... [20:00] herbySk: dpritchett: because a feature was added where the code was refactored, native modules got their own mini-module system and the rest was decoupled. The result was native modules were only able to require() native modules from that point. Which is perfectly fine, except for repl, which is kind of an exception... [20:00] stepheneb has joined the channel [20:02] dpritchett: Are there any busy web hangouts for keeping in touch with this community? #node.js and the google group are all I've found thus far [20:02] nerdEd has joined the channel [20:02] dpritchett: thanks herbySk - i hadn't expected the REPL to be significantly different but I understand after browsing that commit log [20:02] _announcer: Twitter: "thinks it is awesome to see heroku rolling out node.js support: http://bit.ly/cbX2RE. More indications this could be a huge technology" -- douglasjsellers. http://twitter.com/douglasjsellers/status/25147478569 [20:04] muk_mb1 has joined the channel [20:04] _announcer: Twitter: "@felixge what is the important half of node.js?" -- Carlos Cardona. http://twitter.com/cgcardona/status/25147594549 [20:04] kuya: holy-mother-of-random-guessing-urls i found the right one [20:07] herbySk: dpritchett: if you wish to use 0.2.2, you may use http://github.com/herby/node/commit/1daa9abce3ce48f31df733fd042c4b5f84f18e0a to fix it, or use 0.3.0-pre, for the time being it is very little different to 0.2.2, lot of things was backported to 0.2.2. [20:07] herbySk: s/was/were/ [20:08] dpritchett: i have no particular attachment to 0.2.2, i'm just trying to build some sample apps to teach myself about the system [20:08] dpritchett: thanks [20:09] nerdEd_ has joined the channel [20:09] cardona507 has joined the channel [20:12] beawesomeinstead has joined the channel [20:12] beawesomeinstead has joined the channel [20:14] HAITI has joined the channel [20:14] HAITI has joined the channel [20:16] admc has joined the channel [20:16] _announcer: Twitter: "This is how you do argument parsing: http://github.com/substack/node-optimist - @ substack's node.js module. All along Should do it that way." [af] -- Peteris Krumins. http://twitter.com/pkrumins/status/25148295732 [20:16] pkrumins: i wonder why it capitalized 'should' as Should. [20:16] pkrumins: i never capitalized it in my original tweet. [20:19] kuya: very nice pkrumins :) [20:19] overra: pkrumins: it translated your tweet from afrikaans to english [20:19] kuya: i hate option parsers too [20:20] ph^ has joined the channel [20:21] saikat has joined the channel [20:21] jesusabdullah: except optimist. [20:21] jesusabdullah: You love optimist and just don't know it yet. [20:22] aubergine has joined the channel [20:22] pkrumins: overra, crazy! [20:22] pkrumins: it thinks i am an african! [20:22] pkrumins: silly robit [20:23] pkrumins: jesusabdullah: yeah. [20:25] jtoy has joined the channel [20:28] eck has joined the channel [20:28] eck has joined the channel [20:29] sudoer has joined the channel [20:29] levinalex has joined the channel [20:29] Me1000 has joined the channel [20:30] _announcer: Twitter: "Control Flow in Node Part III - How To Node http://bit.ly/bgEOgI #nodejs" -- munichjs. http://twitter.com/munichjs/status/25149181827 [20:31] sudoer has joined the channel [20:37] TobiasFar has joined the channel [20:38] levinalex has joined the channel [20:39] _announcer: Twitter: "Although I'm happy Node.js. . : "An update on Heroku Node.js support" - http://j.mp/ajDrnd" [ja] -- Masatomo Nakano. http://twitter.com/masatomon/status/25149833525 [20:42] tjholowaychuk: ACTION uses vhost middleware for first time, wickedness [20:42] creationix: tjholowaychuk: yeah, I've used it a few times [20:42] creationix: it's fun [20:42] marek_z has joined the channel [20:43] tjholowaychuk: im serving about 20 sites with it, super simple but working nice [20:43] creationix: nice [20:44] stepheneb has joined the channel [20:45] tjholowaychuk: ACTION got burned by npm deps [20:45] tjholowaychuk: durrrrr [20:45] isaacs: tjholowaychuk: oh? [20:45] isaacs: which deps? [20:45] tjholowaychuk: just in general, we are localizing some stuff as submods [20:46] tjholowaychuk: so it doesnt work to well [20:46] zorzar: hey, i'm trying to get a init script for a little test node app running [20:47] zorzar: i have the user i want to run the app as in $RUNAS and then try to do "cd $WDIR && su $RUNAS node test.js" but get "/usr/local/bin/node: /usr/local/bin/node: cannot execute binary file" [20:47] pkrumins: creationix: got your github message, but I haven't tried the latest nStore. [20:47] aubergine has joined the channel [20:48] _announcer: Twitter: "Tired of running Crockford's (undispensable) jslint with rhino, give her some node.js http://github.com/fczuardi/node-jslint" -- Peter C. Host. http://twitter.com/PeterHost/status/25150409569 [20:49] satori_ has joined the channel [20:50] _announcer: Twitter: "let me tell you: mongodb and #nodejs together! It's like two beautiful, fast, streamlined vessels coming together, docking." -- NodeCore. http://twitter.com/nodecore/status/25150503156 [20:51] kuya: ACTION waves at tjholowaychuk and creationix (like he didnt dissapear into nowhere) [20:51] _announcer: Twitter: "Anyway after installing node.js # 010php" [nl] -- Fieg. http://twitter.com/fieg/status/25150617581 [20:52] tjholowaychuk: kuya haha what? [20:52] tjholowaychuk: ACTION waves [20:52] kuya: :) [20:52] creationix: ACTION ducks [20:52] kuya: i was pestering you all the time and then vanished :) [20:52] kuya: now im back on the node horse [20:52] creationix: pkrumins: let me know how it goes. I'm not quite done with the rewrite, but I think it's better [20:53] tjholowaychuk: hahaha [20:53] kuya: and back with connect! [20:53] tjholowaychuk: woot! [20:54] mattly has joined the channel [20:54] pkrumins: creationix: right, but i moved to node-supermarket already [20:55] pkrumins: i'll try to run that revision where it was broken and see if it's still broken [20:55] pkrumins: creationix: will report back to you then [20:55] pkrumins: though not right now [20:55] creationix: pkrumins: I think the api changed some, it's not a trivial drop-in [20:56] creationix: pkrumins: only mess with it if you have time to contribute [20:59] matschaffer1 has joined the channel [20:59] pkrumins: creationix: oh i see. [21:00] prettyrobots: In node v0.2.1 .... [21:00] prettyrobots: (new Buffer("\0", "ascii"))[0] == 32 [21:01] prettyrobots: Is this a bug, or do I fundamentally misunderstand encodings? [21:01] creationix: hmm, is \0 not allowed in ascii? [21:01] prettyrobots: Yes: [21:01] prettyrobots: http://www.cs.utk.edu/~pham/ascii_table.jpg [21:01] ehaas has joined the channel [21:01] rnewson has joined the channel [21:01] rnewson has joined the channel [21:01] prettyrobots: Can you get the same result in v0.2.0? [21:01] creationix: prettyrobots: good question [21:02] prettyrobots: Or, I'm sorry, v0.2.2, which is the latest? [21:02] cheapsuit has joined the channel [21:02] prettyrobots: (new Buffer("\0", "utf8"))[0] == 0 [21:02] creationix: yeah, I get the same on 2.0 and 2.2 [21:03] prettyrobots: I'll fill out a bug report. [21:04] tjholowaychuk: creationix: woah, our dispatch loop has mounted apps respond 404? we should defer that to the parent [21:04] tjholowaychuk: tripped me up [21:08] WALoeIII has joined the channel [21:09] richcollins has joined the channel [21:09] mytrile has joined the channel [21:11] pquerna: is there some way to use O_EXCL from js land? [21:12] boaz has joined the channel [21:12] rwaldron has joined the channel [21:12] figital has joined the channel [21:12] ph^ has joined the channel [21:12] pquerna: hmm, looks like open can take ints [21:13] pquerna: just not documented. [21:14] szaboat has joined the channel [21:14] davidsklar: pquerna: node_constants.cc defines O_EXCL, too [21:15] pquerna: fs.open(p, constants.O_WRONLY | constants.O_CREAT | constants.O_EXCL, 0600, function(err) { [21:15] pquerna: yeah [21:15] Tobsn has joined the channel [21:15] davidsklar: nice [21:15] delapouite has joined the channel [21:16] _announcer: Twitter: "Make the node.js update for createConnection bind support!" -- M__o A___s. http://twitter.com/fastandfearless/status/25152254240 [21:19] creationix: tjholowaychuk: sounds good [21:20] tjholowaychuk: creationix: didnt realize we had it any other way lol so I was like ah yeah sweet I can do this [21:21] gerred has joined the channel [21:21] muk_mb has joined the channel [21:22] alexb_ has joined the channel [21:24] creationix: tjholowaychuk: :) [21:26] eck has left the channel [21:26] loinclot_ has joined the channel [21:28] rnewson: anyone familiar with http.js? [21:28] pquerna: ryah: what are your thoughts about errno and error strings. Things like EACCES; It'd be nice to not have to detect them by doing a indexOf on the string error. [21:29] tjholowaychuk: pquerna: error.errno [21:29] tjholowaychuk: ? [21:29] pquerna: thats there? [21:29] tjholowaychuk: yup :) [21:29] pquerna: well hot damn [21:29] tjholowaychuk: and for ENOENT and a few otheres you get error.path [21:31] stagas has joined the channel [21:32] isaacs: whoa, nice [21:32] isaacs: tjholowaychuk: i think i knew that, too, but i'm always just checking the error.message [21:33] isaacs: error.errno is way betterer [21:33] tjholowaychuk: isaacs: snap haha, yeah it is [21:33] tjholowaychuk: the selenium RC protocol is sooo bad, they dont utilize status codes you get a 200 and ERROR: in the body lol so I was doing similar for that [21:33] tjholowaychuk: big PITA [21:34] herbySk has joined the channel [21:35] eisd|away has joined the channel [21:39] rauchg_ has joined the channel [21:39] Aria has joined the channel [21:41] shapeshed has joined the channel [21:44] dmcquay has joined the channel [21:44] sechrist: anybody know of a way to see the calculated matching bracket in textmate (but up/down the scroll)? [21:44] sechrist: all that I get is a big screen flash [21:44] sechrist: kind of dumb [21:45] herbySk has joined the channel [21:45] tjholowaychuk: cmd+shift+B ? [21:45] norviller has joined the channel [21:46] shapeshed has joined the channel [21:46] shapeshed has left the channel [21:46] tapwater has joined the channel [21:47] shapeshed has joined the channel [21:49] shapeshed has joined the channel [21:50] Tobsn has joined the channel [21:50] ajpiano has joined the channel [21:50] mjr_: sechrist: that's my biggest complaint about textmate [21:50] mjr_: Well, that and that we'll never get a new and better veresion. [21:50] rnewson: hah. [21:50] rnewson: starcraft 2 came out, just hang in there. [21:51] ajpiano has joined the channel [21:51] sechrist: did the maintainer die or something? [21:52] Tobsn: hey, i maybe got a stupid question here... lets say i have two functions reading out a remote api over http... both have callbacks that execute and handle the returned stuff or fail... how do i handle the waiting period in the rest of the code till the functions are succeeded? - guess thats the part i dont really follow [21:52] pquerna: civilization V [21:52] marek_z: I don't get the big hype about textmate. On windows, there's Notepad++ which is more powerful and it's free. If I were on a mac, I'd be sad about textmate costing so much rather than praising it [21:52] sechrist: tjholowaychuk: cmd+shift+B is just highlighting a random chunk, it doesn't seem to be doing what it should be [21:52] mjr_: tjholowaychuk: I didn't know about that selection by bracket thing. That's a pretty good alternative. [21:52] sechrist: textmate is free [21:52] rnewson: imo the sequel to worry about is Maven 3. Because that'll probably happen. [21:52] rnewson: textmate is free?? [21:52] sechrist: and notepad++ is pretty good, it's the parallel of textmate on the mac [21:52] sechrist: ..yes [21:52] sechrist: for 30 days [21:52] tjholowaychuk: mjr_: its pretty handy sometimes [21:53] sechrist: I forgot I bought a license [21:53] sechrist: nice [21:53] rnewson: sechrist: hah [21:53] sechrist: I also bought coda [21:53] sechrist: I use coda a lot too [21:53] rnewson: my first attempt to hack node.js is going so poorly I could cry. [21:53] mjr_: rnewson: what are you trying to make it do? [21:53] ysynopsis has joined the channel [21:53] hsuh has joined the channel [21:53] mjr_: sechrist: are you editing JavaScript? [21:53] rnewson: mjr_: trying to make it do the right thing when the server sends connection:close [21:53] Tobsn: marek_z, komodo [21:53] mytrile has joined the channel [21:53] rnewson: mjr_: right now, it ignores it and sends another request. then boom. [21:54] sechrist: mjr_: yeah [21:54] mjr_: rnewson: oh, you are doing crazy pipelining. [21:54] rnewson: mjr_: nope. [21:54] sechrist: oh I see what cmd+shift+b does [21:54] rnewson: mjr_: I have a server that will keep a connection alive for a bit then sends connection:close in the response. [21:54] sechrist: I was confused because I was in the wrong scope [21:54] rnewson: mjr_: I think the client is required to close that connection and start a new one. [21:54] mjr_: rnewson: oh, just like not always [21:54] Tobsn: can anyone give me a hint how to solve that async problem? like whats the common thing to do? a while() till everything is ready? [21:55] rnewson: but node,js doesn't do it... [21:55] tjholowaychuk: sechrist: was not sure if that was what you meant, but its really handy if people suck at styling code lol [21:55] rnewson: mjr_: right. I can get dozens of req/resp (no pipelining) before it changes its mind and ask client to close [21:55] creationix: Tobsn: ?!? [21:55] themiddleman has joined the channel [21:55] tjholowaychuk: Tobsn: woah what, no lol what is your issue? [21:55] rnewson: if you send more data, you get EPIPE. [21:55] rnewson: I can't see how to hack http.js to do it properly. it's an http compliance bug. [21:55] sechrist: cmd+shift+b will work I suppose, I'd rather have the matching bracket highlighted a-la-notepad++ [21:56] mjr_: Tobsn: all of your remaining code needs to be in another function that the pass/fail function will call. [21:56] Tobsn: mjr... hmm [21:56] mjr_: rnewson: you need to know how to force node to close a client connection? [21:56] rnewson: mjr_: yes, that would help. [21:56] Tobsn: creationix, just asking about what if i have a bunch of retriever functions that need to get something so i can build something together at the end but how do i know all of them are done... [21:56] stagas has joined the channel [21:56] tjholowaychuk: sechrist: ohh where it just show you all time? that would be nice [21:56] rnewson: mjr_: I tried calling client._reconnect() when I see the response header. didn't help. [21:57] sechrist: tjholowaychuk: yeah, seems like np++ did that [21:57] mjr_: rnewson: I think you need to destroy() the client [21:57] rnewson: mjr_: Ideally I'd fix node locally and send a patch in. it's definitely doing the wrong thing. [21:57] Tobsn: mjr_, but at the end i still have multiple functions... how do i combine it together to output it [21:57] creationix: Tobsn: my step library handles that for you [21:57] pquerna: rnewson: maven 3 is underdevelopment :-/ [21:57] mjr_: Tobsn: hard to say without seeing code. Do you have a minimaly simple example you can gist? [21:57] rnewson: mjr_: trickier. nodeloadlib.js threads the client instance through my functions, replacing it on the fly is hard. [21:57] creationix: Tobsn: but the basic idea is to use a counter variable [21:57] rnewson: pquerna: exactly why I worry. [21:57] Tobsn: function(getsomething,function(){do something with data}); function(getsomething,function(){do something with data}); -> now take both outputs and do something with it [21:57] Tobsn: counter? [21:58] creationix: Tobsn: I'm actually writing jsconf slides about that exact use case right now [21:58] Tobsn: mjr_, no code... just thinking around how to solve that [21:58] rnewson: mjr_: the _last handling isn't closing connections internally (and cleanly)? [21:58] tjholowaychuk: Tobsn: --pending || callback() [21:58] tjholowaychuk: Tobsn: ill show you an example one sec [21:58] mjr_: Tobsn: you need to have them both call a next() type of function that knows how many times it is supposed to be called. When it is called the right number of times, it'll continue. [21:58] creationix: Tobsn: http://howtonode.org/control-flow http://howtonode.org/control-flow-part-ii http://howtonode.org/control-flow-part-iii http://howtonode.org/step-of-conductor [21:58] _announcer: Twitter: "thinking on getting mys hands dirty with node.js and event driven programming , could it really be the new rails? http://howtonode.org/" -- Rafael Cruz. http://twitter.com/rafaeluzzi/status/25155117710 [21:59] MikhX_ has joined the channel [21:59] Tobsn: creationix, thats the only problem i have with the whole concept of callbacks... if i have a ton of callbacks waiting to finish while the rest of the code keeps on running from top to bottom - how do i know where i am right now, whats finished, what has to be done, how do i know if i have to wait or if its already to late [21:59] tjholowaychuk: Tobsn: http://github.com/visionmedia/rapid/blob/master/lib/rapid/collection.js#L39-52 [21:59] Tobsn: *reading [21:59] mjr_: rnewson: is there a line number in http.js at which you want things to close? [21:59] Tobsn: creationix, i read that conductor thing and i couldnt follow at all haha [21:59] tav_ has joined the channel [21:59] mjr_: or where you'd put an if/then close [21:59] creationix: don't worry about conductor [22:00] LionMadeOfLions has joined the channel [22:00] rnewson: mjr_: I'm having a hard time finding the right place. It's the opposite of the keepAlive work. [22:00] Tobsn: --pending? [22:00] creationix: that's an advanced case [22:00] creationix: or counter-- [22:00] creationix: or whatever [22:00] rnewson: mjr_: if the client response has 'connection:close' then I should close the socket and replace it. [22:00] creationix: here is a simple example http://howtonode.org/control-flow/simple-scanner.js [22:00] creationix: from the first article I linked [22:00] jameshome_ has joined the channel [22:00] rnewson: mjr_: I hacked in _addHeaderLines and added if (field == 'connection' && value == 'close') { this.socket.end(); }. [22:00] rnewson: mjr_: which is clearly awful. [22:01] Tobsn: well that still gives you a problem [22:01] Tobsn: you know when its finished but how does the rest of the code know about it [22:01] aho: creationix, what's up with those encoding errors on howtonode? [22:01] creationix: you could replace count--; if (count <= 0) {} with if (!--count){} [22:01] Tobsn: yeah but thats just that one function [22:01] creationix: aho: not sure, where are you seeing one, I tried to fix them [22:01] alexb_: Trigger the rest of the code with the callback [22:01] aho: eg http://howtonode.org/getting-started-with-express "we typically refer to Express servers as “apps”." [22:01] mjr_: rnewson: why is that awful? [22:01] Tobsn: lets say i have 10 similar functions and with all the data i want to do something at the end [22:01] mjr_: rnewson: something more or less like that sounds like what we need to do [22:02] Tobsn: how does the big compiler function know if everything is ready etc. [22:02] rnewson: mjr_: closing the socket in _addHeaderLines doesn't sounds awful? hmmm.... [22:02] alexb_: Share an object between the callbacks [22:02] creationix: aho: I'm storing the files as unicode, and serving the html as unicode, but somewhere it gets encoded funky [22:02] mjr_: rnewson: oh, not closing it in addheaderlines [22:02] rnewson: mjr_: right :) [22:02] Tobsn: can you add some sort of global listener that knows how many callbacks get called and if they're ready or now [22:02] Tobsn: *not [22:02] mjr_: rnewson: but setting some flag there [22:02] creationix: Tobsn: that's what the counter is for [22:02] creationix: Step does all that for you [22:02] Tobsn: hmm [22:02] rnewson: mjr_: the right fix is to set a flag when we see that header and then close the socket once we've finished handling the response completely but before allowing the next request. [22:03] Tobsn: is it common to use step for that? [22:03] creationix: Tobsn: http://github.com/creationix/step#readme [22:03] rnewson: mjr_: I looked for ClientResponse but it's only mentioned in a comment, I guess it was factored away? [22:03] aho: might be a database thing, too [22:03] tjholowaychuk: Tobsn: you are best to play around without helpers like Step first, so that you get a feel for callbacks and idioms around async stuff [22:03] Tobsn: but doesnt that work against the whole idea of callbacks and async by putting the code in a flow? [22:03] tjholowaychuk: and then move on to stuff like that [22:04] Tobsn: tjholowaychuk, yeah thats for sure [22:04] TomsB has joined the channel [22:04] aho: for this reason my first entry is always something with special chars... this way i can easily check if everything is alright after i did a rollback [22:04] alexb_: No resources will be consumed while you are waiting to continue with the flow [22:04] aho: eg http://kaioa.com/node/1 :> [22:04] Tobsn: hmm [22:04] Tobsn: so the step would be its own non blocking call [22:05] Tobsn: i see [22:05] creationix: aho: I'm not using a database [22:05] mjr_: rnewson: I keep getting pulled away, sorry. [22:05] creationix: though I am pulling stuff out of git using a child process [22:05] amrnt has joined the channel [22:05] rnewson: mjr_: np. I sent an email to the group also. [22:05] Tobsn: tjholowaychuk, http://pastebin.com/jMtEg8nq - this step example... how would you do that without step? [22:05] wink_: bradleymeck: are you around? [22:06] rnewson: mjr_: doing it neatly is beyond me right now and I'm out of time. I'll test with connection:close in my client and hope I'm not too far off with my performance numbers. [22:06] creationix: Tobsn: the howtonode articles (the first three) explain the pure-js ideas behind how step works, it's not complicated at all once you understand it [22:06] bradleymeck: mmm? [22:06] tjholowaychuk: Tobsn: pending = 2; perform the readFile() calls and --pending || masterCallbackOfDoom() [22:07] aho: well, it sorta looks like iso 8859-1 is somewhere thrown into the mix [22:07] creationix: tjholowaychuk: nice, I haven't seen the --counter || callback() idiom [22:07] tjholowaychuk: creationix: I use it all the time [22:07] bradleymeck: wink_:pong [22:07] tjholowaychuk: sleek and potentially confusing [22:07] tjholowaychuk: haha [22:07] tjholowaychuk: but I like it [22:07] creationix: though one nice thing step does is preserve the order of the results [22:07] Tobsn: --pending || function(); - dummy translation would be substract something from pending and if its 0 execute function()? [22:08] creationix: counter--; if (counter === 0) { callback() } [22:08] tjholowaychuk: yup "if nothing is pending, call the function" [22:08] wink_: bradleymeck: so when i have a function in a binding the uses a HandleScope , you said I needed to scope.Close at the end of it, is that -always- the case? i have a void function here that doesnt have any sort of v8 type to close around [22:08] Tobsn: why are the -- in front of it? [22:08] Tobsn: does that have any special meaning in js? [22:08] bradleymeck: wink_ yes [22:08] creationix: Tobsn: http://github.com/creationix/step/blob/master/lib/step.js#L63-87 [22:08] tjholowaychuk: Tobsn: yup [22:08] creationix: Tobsn: in front means to decrement first, and then evaluate [22:09] creationix: it's tricky [22:09] tjholowaychuk: its awesome [22:09] tjholowaychuk: haha [22:09] bradleymeck: just scope.Close(Undefined()) [22:09] Tobsn: oooh [22:09] wink_: bradleymeck: ah ok [22:09] wink_: thx [22:09] tjholowaychuk: Tobsn: if you pending-- || foo() you will not get what you want [22:09] Tobsn: ooooh... that actually helps a lot. [22:09] Tobsn: so it decrements and checks with the if afterwards [22:09] creationix: Tobsn: I'm using slightly less js in step http://github.com/creationix/step/blob/master/lib/step.js#L68-69 [22:09] creationix: but same idea [22:09] Tobsn: and since 0 is false it will execute [22:09] creationix: *slightly less tricky [22:10] Tobsn: ha [22:10] tjholowaychuk: Tobsn: yup that is correct [22:10] Tobsn: well thanks, that explained a lot... :) [22:10] creationix: awesome [22:10] creationix: :D [22:10] Tobsn: seriously... that explained it... haha [22:10] Tobsn: i was starring at --counter || fn(); a couple times and wasnt sure wtf that is [22:11] creationix: it's an abuse of the language [22:11] creationix: ;) [22:11] digitalspaghetti has joined the channel [22:11] creationix: but works nicly once you understand it [22:11] tjholowaychuk: Tobsn: http://www.java-samples.com/showtutorial.php?tutorialid=249 [22:11] Tobsn: well that still leaves the problem of two functions doing something and together should call the master function only once when both are finished [22:11] _announcer: Twitter: "http://howtonode.org Yet another example of the dynamism of the #nodeJS community (using Wheat over git, nice)" -- utopiah. http://twitter.com/utopiah/status/25156014457 [22:12] bradleymeck: did we ever get daemonizing node working? [22:12] creationix: Tobsn: so after each one finished you execute --pending || callback() [22:12] creationix: only on the last one will callback get called [22:12] Tobsn: pending is defined outside the function scope? [22:13] _announcer: Twitter: "Using sys.inherits in #nodejs: http://blog.nodejitsu.com/using-sys-inherits-in-node-js" -- Nodejitsu. http://twitter.com/nodejitsu/status/25156132078 [22:13] hellp has joined the channel [22:13] Tobsn: var pending = 2; function1(do,callback(){--pending||fn();}) function2(do,callback(){--pending||fn();}) [22:13] Tobsn: right? [22:15] Tobsn: btw. tjholowaychuk - http://www.java-samples.com/showtutorial.php?tutorialid=249 is pretty weird... i wouldve said that int b = x++; would mean x stays the same but b is now x + 1 [22:15] creationix: Tobsn: https://gist.github.com/ad0e4977d280962234a0 [22:16] MikhX has joined the channel [22:16] robotarmy: Tobsn: x++ is a c-ism (post increment) [22:16] Tobsn: creationix, perfect! thanks :) [22:16] creationix: Tobsn: re ++b and b++, that's old C semantics, it's been that way for ages [22:16] creationix: that's why people like crockford say to never use it, it's too tricky for new people [22:16] Tobsn: the --blah? [22:17] tjholowaychuk: creationix: you need prefix not postfix [22:17] Tobsn: well if you know what it does its easy [22:17] tjholowaychuk: in your example [22:17] creationix: tjholowaychuk: doh! [22:17] Tobsn: lol yeah [22:17] Tobsn: haha [22:17] Tobsn: nevermind that [22:17] tjholowaychuk: for that reason [22:17] tjholowaychuk: haha [22:17] Tobsn: i got it anyway [22:17] creationix: as you saw from my code, I always do counter--; if (counter === 0) ... [22:17] Tobsn: hehe yeah [22:17] Tobsn: btw. how did the knockout go? [22:17] Tobsn: i totally missed it [22:18] creationix: it was fun, I finally got to meet tjholowaychuk [22:18] Tobsn: nice [22:18] tjholowaychuk: ya it was neat, I dont get out to conferences or things like that much [22:18] tjholowaychuk: since im in canada [22:18] bradleymeck: chaotic, but got to teach someone new to js [22:18] tjholowaychuk: specifically victoria has fuck all for tech [22:18] Tobsn: what the hell why are there so many sponsors on the right now... i asked if i can sponsor and i couldnt because there are already so many [22:18] Tobsn: wtf [22:18] jameshome_: whoa [22:18] Tobsn: haha [22:18] jameshome_: you guys hadn't met? [22:18] tjholowaychuk: nope lol [22:18] jameshome_: hahahaha [22:18] tjholowaychuk: I havent met any of the community people really [22:19] tjholowaychuk: well I have now [22:19] tjholowaychuk: some of them [22:19] jameshome_: I imagined you in neighboring ninja lairs. [22:19] mattly has joined the channel [22:19] Tobsn: lol [22:19] bradleymeck: lol, idk if anyone is in austin... might be interesting [22:20] _announcer: Twitter: "Updated my Reactive Extensions node.js file server. Love the combination of #RxJS and #nodejs: http://gist.github.com/590688" -- Matthew Podwysocki. http://twitter.com/mattpodwysocki/status/25156634094 [22:20] zith_: a friend of mine is in austin for 6 months [22:20] TobiasFar has left the channel [22:20] zith_: doubt he knows anything about nodejs though :) [22:20] Tobsn: lol swarmnation is actually funny [22:21] Me1000 has joined the channel [22:22] bradleymeck: anyone got a better than o(n) object dictionary implementation lying about [22:23] bradleymeck: in pure js* [22:23] jameshome_: whoa, I finally made tank [22:23] sechrist: what's the current way to throw an error from inside a func? throw e still? [22:23] amrnt has joined the channel [22:23] bradleymeck: sechrist if its not a callback, yes [22:23] MikhX has joined the channel [22:23] sechrist: well this is something it can't recover from [22:23] sechrist: so yeah [22:24] creationix: throw new Error("Oh nuts!") [22:25] bradleymeck: if(isCallback) process.emit("error","ruh roh") [22:25] jchris has joined the channel [22:25] dilvie has joined the channel [22:25] creationix: bradleymeck: how does that help? [22:26] creationix: emitting an error on process is just as global as throwing an exception [22:26] zemanel: Master is touching js exceptions with his Node.ly appentages [22:26] bradleymeck: creationix, yea, but last i checked it would let you handle it on the process.on("error") rather than uncaught? [22:26] stagas: is there a json to xml lib or anything? [22:27] bradleymeck: json to xml how, by a schema? [22:27] sechrist: ^^ [22:27] bradleymeck: is that a yes? [22:27] sechrist: json can't be (de)serialized straight into xml like it can like php objects etc [22:27] creationix: bradleymeck: process.on('uncaughtException') [22:27] quirkey has joined the channel [22:28] bradleymeck: will fire if error doesnt get it [22:28] stagas: you're right [22:28] bradleymeck: i tend to group my intended errors in on("error") and the f mes get sent straight to uncaught [22:28] stagas: it needs some kind of template [22:29] _announcer: Twitter: "Having fun with Node.js. Feels like I’m hopping on a bandwagon but I don’t care." -- Sijmen Mulder. http://twitter.com/sijmen/status/25157310882 [22:30] stephenjudkins has joined the channel [22:31] _announcer: Twitter: "queued in user space, you say? #nodejs" -- hellomatty. http://twitter.com/hellomatty/status/25157414447 [22:31] eisd|away has left the channel [22:31] stephenjudkins: in node, is there an implicit constant for the current file (ie __FILE__ in ruby or __file__ in python)? [22:31] rauchg_: __dirname and __filename [22:32] rauchg_: http://nodejs.org/api.html#global-objects-44 [22:32] stephenjudkins: rauchg_: thank you! [22:33] _announcer: Twitter: "node.js to move agriculture. However, Virutal PC to not want to use since there are only bad memories. I thought it'll be a separate server machine. I wish, but put off thinking I'm supposed to extend from about month before last. It somehow." [ja] -- neuecc. http://twitter.com/neuecc/status/25157579221 [22:33] Tim_Smart has joined the channel [22:34] bradleymeck: i really wish he had a sound effect pop up for japanese translations, soo awesome like 90% the time [22:34] sechrist: Is there an exposed way to see how many references to an object there are (similar to how the GC would)? [22:35] rauchg_: hahahahah that's so random [22:35] sechrist: sup rauchg_ [22:35] rnewson has joined the channel [22:35] rauchg_: sechrist: try node-profiler [22:35] rauchg_: node.js to move agriculture. However, Virutal PC to not want to use since there are only bad memories. [22:36] _announcer: Twitter: "Looks like a cool run through of the different functions #nodejs http://icio.us/dsawrc" -- Aaron Mc Adam. http://twitter.com/aaronmcadam/status/25157773384 [22:36] creationix: bradleymeck: https://gist.github.com/358482dffb84ecf1a0c3 [22:37] creationix: that's how I like to do exception routing [22:37] creationix: then I can just throw and it will get routed to the callback chain automatically [22:37] Tobsn: callback() ? [22:38] creationix: Tobsn: ? [22:38] bradleymeck: yea, i try to do error firsts, but sometimes apis dont follow that [22:38] creationix: then wrap the bad apis [22:38] Tobsn: function( blah, callback ) { try ... callback() } [22:38] Tobsn: ? [22:38] Tobsn: arg callback == callback() ? [22:39] bradleymeck: guess i could wrap em [22:39] bradleymeck: for now its kinda stuck im not rewriting a bunch of stuff [22:39] creationix: I'm still discovering new patterns, but this is the latest I've found and I like it [22:39] creationix: Tobsn: yeah, it's the same callback [22:39] creationix: Tobsn: I don't understand your question? [22:40] themiddleman has joined the channel [22:42] EyePulp: so starting from the code here: http://pastie.textmate.org/private/gv938dxqeelhbljsfwgaxa, I'm curious how I would make '/s/' http requests point into the __dirname + '/static' directory locally and get files returned via the static provider. Bonus points if you can point to a tutorial or explanation of the finer points of server.set() vs. server.use() etc. =) [22:43] zemanel: EyePulp, long time no see [22:44] jpld: might anyone be able to suggest a good way for a simple static file server to throttle the response speed? i'm creating a simple mock server for local testing and i'd love to be able to actually slow the file transfers down to something more realistic so i can test a more realistic load experience [22:44] EyePulp: hey zemanel. Really? long time? like in geological terms, or just IRC time? [22:44] EyePulp: =) [22:44] Tim_Smart: Heh. Did you know you can convert arguments to an array by going: arguments.__proto__ = Array.prototype [22:44] creationix: Tim_Smart: nice [22:45] creationix: I wonder if that's faster than arguments = Array.prototype.slice.call(arguments) [22:45] Tim_Smart: Benching now :p [22:45] tjholowaychuk: that call is slow [22:45] bradleymeck: it should be [22:45] tjholowaychuk: (Array.prototype.slice..) [22:45] creationix: so is __proto__ [22:45] zemanel: EyePulp, in package roundtrip time [22:45] tjholowaychuk: __proto__ is 4 lines of c++ [22:45] creationix: slice is probably slower though [22:45] Tobsn: nevermind than, just wanted to know if both are the same [22:45] zemanel: so youre on the hard stuff too [22:46] creationix: Tobsn: let me know if you have any questions, I don't mind helping people understand JavaScript [22:46] Tobsn: thanks :) [22:46] creationix: tjholowaychuk: I wonder why it's so slow then [22:46] creationix: I've benched __proto__ and it's fairly costly [22:47] stepheneb_ has joined the channel [22:47] tjholowaychuk: creationix: well I meant it does moer behind the scenes obviously but it shouldnt be that bad [22:47] Tobsn: btw. the step parallel processing... it does both functions apart from each other right? and at the end it hits the complete function [22:47] creationix: jsperf here I come... [22:47] creationix: (chrome 7 has new enough v8 right?) [22:47] Tobsn: i mean at the same time not one after another [22:47] bradleymeck: trying to figure out a good means of converting callback based api's but heh [22:47] tjholowaychuk: creationix: __proto__ is there [22:47] tjholowaychuk: in my chrome [22:47] tjholowaychuk: at least [22:47] tjholowaychuk: but ping me when that is up [22:48] Tim_Smart: slice is faster than __proto__ in chrome http://jsperf.com/proto-vs-slice [22:49] creationix: Tobsn: correct, this.parallel does the non-blocking waits in parallel [22:49] Tobsn: k [22:49] Tobsn: (shouldnt __proto__ be faster by default?) [22:50] Tobsn: look how slow my firefox is on jsperf haha [22:50] tjholowaychuk: Tim_Smart: slower in node for me [22:50] tjholowaychuk: one sec [22:50] bradleymeck: i wonder if the v8 level prototype changes are faster... what was that builtin one [22:50] Tim_Smart: tjholowaychuk: __proto__? [22:50] tjholowaychuk: Tim_Smart: proto is faster by about 2x [22:50] tjholowaychuk: BUT [22:50] tjholowaychuk: one sec [22:51] Tobsn: wow firefox is super slow [22:51] Tobsn: holy crap. [22:51] bradleymeck: yes it is [22:51] jpld: weird, on safari 5.0.2, __proto__ is 10x faster than slice [22:51] Tobsn: yep [22:51] Tobsn: slice is 80% slower here [22:51] Tobsn: in safari [22:51] Tobsn: makes sense to me that __proto__ is faster [22:52] creationix: tjholowaychuk: http://jsperf.com/arguments-to-array-v8 [22:52] bradleymeck: yea, but in v8 there could be a struct change from proto which would be brutal [22:52] creationix: I've got __proto__ much faster on chrome 7 [22:53] creationix: my test works different [22:53] creationix: I'm caching the lookup to Array.prototype.slice and Array.prototype [22:54] Tim_Smart: creationix: You test is different to mine :/ [22:54] jpld: on my chrome 7, __proto__ is 55% slower [22:54] Tim_Smart: proto is faster [22:54] creationix: Tim_Smart: I wonder why your slice test is so much faster than mine [22:54] tjholowaychuk: http://jsperf.com/arguments-to-array-v8/2 [22:55] creationix: tjholowaychuk: wow [22:55] Tim_Smart: Yeah... [22:56] creationix: manual for loops are almost always faster [22:56] creationix: crazy how that works [22:56] bradleymeck: gogo optimization nuts! [22:57] tjholowaychuk: im sure you could optimize toArray() more lol but even with a super simple implementation like that it is quite a bit faster [22:57] bradleymeck: i wonder if they are doing some funky heuristic on loops to see if the conditions are visible in other scopes [22:57] Tim_Smart: creationix: http://code.google.com/p/v8/source/browse/trunk/src/array.js#181 [22:57] creationix: reminds me of my fast Object.prototype.forEach [22:57] tjholowaychuk: adding that to node_redis shaved a decent amount off [22:57] Tim_Smart: That is v8's slice [22:58] Tobsn: Smart* [22:58] creationix: Tim_Smart: wow, that's complicated [22:58] Anti-X: did opera for you [22:58] Tim_Smart: http://code.google.com/p/v8/source/browse/trunk/src/array.js#286 [22:58] Tim_Smart: The simple one ---^ [22:59] creationix: I always assume that built-in functions are implemented in c and thus faster [22:59] sechrist: InstallFunctionsOnHiddenPrototype hehe [22:59] creationix: I'm seeing that not the case these days with v8 and node [22:59] malkomalko_ has joined the channel [22:59] sechrist: creationix: nope [22:59] Tobsn: maybe there is something else going on... maybe it loads a different module or whatnot [22:59] tjholowaychuk: creationix: most of them are not [22:59] sechrist: Once you get past a certain level of abstraction, building the API in C just seems like a yak shave [22:59] bradleymeck: creationix yea, but one day we will get an optimizer of something fierce [22:59] _announcer: Twitter: "WVU ACM: Upcoming Node.js Talk by @dshaw http://wvu.acm.org/" -- Andrew Butcher. http://twitter.com/akbutcher/status/25159479827 [22:59] tjholowaychuk: the use the extended js thing [23:00] x_or has joined the channel [23:00] tjholowaychuk: with % for internal shit [23:00] Tim_Smart: Most of the object stuff is in v8 [23:00] Tim_Smart: (C++ land) [23:01] malkomalko_: tjholowaychuk.. how are you handling current_user type stuff with sessions/redis via connect/express? I can't seem to get anything but the memory store to work [23:01] tjholowaychuk: a lame, my custom merge() is barely slower than obj.__proto__ = otherObj [23:01] malkomalko_: it appears like when using connect-redis, it's inserting a ton of keys into redis [23:02] tjholowaychuk: had been doing that as a pseudo merge [23:02] bradleymeck: i want an optimizer than can check types and visibility of variables and optimize stuff like a nutjob (ie: loop unrolling / pulling functions out of closures / manual optimizations of functions on builtin prototype expectations) [23:02] creationix: Tobsn: it's markdown, indent everything 4 spaces [23:02] Tobsn: yeah just remembered [23:02] Tobsn: i used gist probably 2 times haha [23:02] tjholowaychuk: malkomalko_: as it should be (saving keys) if you do req.session.fooBar = 'baz' do you not get req.session.fooBar available to you the next req? [23:03] tjholowaychuk: bradleymeck: yeah I read all the optimizer code, didnt really do much [23:03] tjholowaychuk: from what I saw [23:03] Tobsn: http://gist.github.com/295338 - for my one line reddit clone :P [23:03] stephenjudkins: what testing framework would folks here recommend? [23:03] bradleymeck: which optimizer tjholowaychuk? [23:03] Tobsn: btw. that code is not obfuscated - thats how i wrote it... [23:03] Tobsn: express? [23:03] tjholowaychuk: bradleymeck: just the ast one [23:03] malkomalko_: well, it looks like its generating random keys with some long oid [23:04] bcg has joined the channel [23:04] malkomalko_: I'll take a look at it again, no worries [23:04] Tobsn: stephenjudkins, dispatcher? [23:04] tjholowaychuk: malkomalko_: that is the sid [23:04] bradleymeck: i got one brewing that doesnt have too much gain but it is nice none the less for some things like array forEach being turned into for loops [23:05] nroot7 has left the channel [23:05] stephenjudkins: Tobsn: testing framework? [23:05] malkomalko_: I'm just having a hard time wrapping my brain around how to use something like connect-redis to store the current_user's id in the session to always have it available to pull the current_user before every request [23:05] Tobsn: what exactly do you mean? [23:05] tjholowaychuk: bradleymeck: eeeee fun :D [23:06] malkomalko_: or trying to figure out if that's even the right approach [23:06] Tobsn: malkomalko_, first of all you use memcache ;) [23:07] bradleymeck: yea, if you use an optimizer i would hope it could make literals and builtin detection do something useful [23:07] mjr_: malkomalko: sounds like a fine approach, for the event-based definition of "before every request" [23:07] lachlanhardy has joined the channel [23:07] Tobsn: doesnt express has something like that already build in? [23:07] malkomalko_: I'd like to try redis :D [23:07] tjholowaychuk: bradleymeck: no doubt [23:07] tjholowaychuk: Tobsn: what? [23:07] Tobsn: session stuff [23:07] tjholowaychuk: redis is sweet [23:08] tjholowaychuk: oh [23:08] tjholowaychuk: yeah [23:08] stephenjudkins: Tobsn: like qunit, minitest, jspec, expresso [23:08] tjholowaychuk: well it uses Connect's session middleware [23:08] tjholowaychuk: and in this case the connect-redis sesssion store [23:08] mjr_: Lots of love for redis in here. [23:08] Tobsn: oh, stephenjudkins, well there ya go - pick one ;) [23:08] Tobsn: redis is nice... i used it since dec. 2008... :P [23:08] malkomalko_: I guess I'm just having a brain fart [23:08] malkomalko_: heh [23:08] stephenjudkins: Tobsn: heh, there are so many [23:08] Tobsn: im probably inofficially a beta tester [23:08] mikew3c_ has joined the channel [23:09] Atmoz has joined the channel [23:09] Tobsn: i had it running on a facebook app that had like 4000+ req/sec and i used it to store user data over 12 servers with the flexihash algo and redundancy of 3 servers [23:09] Tobsn: that fb app had 40m users within 3 month ;) [23:09] Tobsn: DAU of 1.2m [23:10] tjholowaychuk: dau? [23:11] tjholowaychuk: ohh [23:11] tjholowaychuk: aha [23:11] tjholowaychuk: nvm [23:11] tjholowaychuk: I get it [23:11] tjholowaychuk: daily average or something [23:11] jameshome_: a tutorial on user session best practices with Express/Connect would be pretty rad [23:12] _announcer: Twitter: "Hmmm, buzzword rich but doesn't really make sense: "HTML5 web applications with node.js" http://bit.ly/b45S3B" -- Damon Oehlman. http://twitter.com/DamonOehlman/status/25160406164 [23:12] tjholowaychuk: maybe I should add a little auth example [23:12] Sami_ZzZ has joined the channel [23:12] jashkenas has joined the channel [23:12] malkomalko_: I think I'm using rc2, does the connect-redis stuff only run on the absolute latest or should it work with an express/connect that's a few weeks old? [23:12] jchris1 has joined the channel [23:13] tjholowaychuk: connect-redis should be fine with any really [23:13] tjholowaychuk: if you have something like p5f28cfple.8f075sL5qZ5dZbhUEEx6cg [23:13] tjholowaychuk: do "get p5f28cfple.8f075sL5qZ5dZbhUEEx6cg" in redis-cli [23:13] tjholowaychuk: you should have json [23:13] tjholowaychuk: well if you do req.session.someStuff = { whatever: 'stuff' }; [23:13] MikhX has joined the channel [23:13] malkomalko_: right [23:14] Tim_Smart: redis hashes :p [23:14] jashkenas has joined the channel [23:14] tjholowaychuk: Tim_Smart: pff no, not for sess data [23:14] tjholowaychuk: to much involved [23:14] malkomalko_: optimally [23:14] malkomalko_: I just want to put my uid in there [23:14] malkomalko_: and pull it out to pull what I need from my db before a request [23:15] Tobsn: tjholowaychuk, daily active users [23:15] tjholowaychuk: durr [23:15] tjholowaychuk: active [23:15] tjholowaychuk: sorry that is what I meant [23:15] Tobsn: DAU MAU are some retarded facebook virality terms... monthly active users and daily active users [23:15] Tobsn: ;) [23:15] Tobsn: http://www.appdata.com/apps/facebook/102452128776 [23:15] Tobsn: example [23:17] noahcampbell_ has joined the channel [23:18] ekidd has joined the channel [23:19] c4milo has joined the channel [23:21] mjr_: man, people use facebook apps like crazy [23:21] mjr_: not my demographic. [23:22] SubStack: same [23:24] ooooPsss has joined the channel [23:26] babake92 has joined the channel [23:27] Tobsn: yeah they do [23:27] Tobsn: you know what the biggest demo is? [23:27] Tobsn: 16-22 female [23:27] Tobsn: they're HUGE on fb [23:27] Tobsn: probably 70% of the active users [23:28] Tobsn: just by looking over thsoe stats you can see that... who would play happy pets, farmville, cafe world, pet society and all that crap... its perfect for girls. [23:29] Tobsn: thats why fighting games like mybrute etc. have no chance [23:29] alexb_: Paradise paintball? [23:30] noahcampbell has joined the channel [23:30] zemanel: iBarbie [23:31] stephenjudkins: tjholowaychuk: you appear to have written both expresso and jspec. which one would you recommend using? [23:32] sprout has joined the channel [23:32] tjholowaychuk: stephenjudkins: for node stuff expresso [23:32] Tobsn: girls like monotonous things... that why farmville is so big... :P [23:32] mjr_: tjholowaychuk: is node_redis still working for you? [23:32] stephenjudkins: tjholowaychuk: is it possible to run expresso tests in a browser as well? i have some modules i'd like to share. [23:32] Aria: Bullshit we do. We're just seriously discouraged from doing anything active. [23:33] Aria: Every ad, cartoon, and movie shows us as passive. [23:33] tjholowaychuk: mjr_: havent touched it in a bit but seemed fine howcome? something blow up? [23:33] Tobsn: hu? [23:33] tjholowaychuk: stephenjudkins: not ATM nope, but it would be easy to support the same structure [23:33] mjr_: tjholowaychuk: not at all. Just checking. I'm about to push it into more of a production role. [23:33] Tobsn: aria, you mean girls? [23:33] sechrist: :X [23:33] tjholowaychuk: mjr_: haha k cool yeah seems fine so far [23:33] Aria: Yes. Of which I am one. [23:33] Tobsn: its a genetic thing - girls are made for monotonous things... like picking barries... im not even trying to be sexist here - thats just how it is... [23:34] mjr_: oh man [23:34] Tobsn: what you think why in big factories there are like99% girls [23:34] sechrist: :X [23:34] Tobsn: thats just a human behavior [23:34] mjr_: everyone to the fallout shelter [23:34] Tobsn: hehe [23:34] stephenjudkins: (hey, let's talk about javascript and not antagonize the few females here to learn, perhaps?) [23:34] Tobsn: its just a evolutional trained behavior... like boys always break things [23:35] tjholowaychuk: hey man one of the first programmers was a woman :p [23:35] rtomayko has joined the channel [23:35] Tobsn: well, not every american voted for bush [23:35] Tobsn: ;) [23:35] ekidd has joined the channel [23:35] tjholowaychuk: cant remember exactly but I think she wrote the first compiler [23:35] Aria: Ada. [23:35] Aria: ACTION whistles a bit. Maybe we're not just here to learn, stephenjudkins. Maybe we make stuff and have for a long time. [23:36] mjr_: A colleague of mine has the "USS Hopper DDC 70" US Navy baseball cap. It's awesome. [23:36] Tobsn: there ya go [23:36] stephenjudkins: Aria: i apologize for implying that women are here for anything different than guys. i'm here to learn so I assumed you would be for the same reason. [23:36] Tobsn: lol [23:36] stephenjudkins: anyways. node.js. [23:37] Aria: Hehe. Thanks. Just mind your assumptions and you'll be fine ;-) [23:37] isaacs: stephenjudkins: yeah, learning is overratd. [23:37] isaacs: so is teachin [23:37] isaacs: g [23:37] isaacs: makin shit pays better than education ;) [23:37] Tobsn: lol [23:37] Aria: Maybe that's what a good education consists of. [23:37] stephenjudkins: i'm into learning how to make shit. [23:38] Aria: (don't let me start on that tangent.) [23:38] isaacs: hehe [23:38] Tobsn: never say that in public [23:38] Tobsn: haha [23:38] isaacs: college was a great way to spend 5 years. had a lot of fun, made some lifelong friends. but a career must-have? meh. not so much any more, not in tech, at least. [23:38] isaacs: maybe if you wanna be a doctor or something [23:38] Tobsn: or 10 years in the future someone will make a movie about you snorting coke off some hookers boobs ;) [23:39] Tobsn: isaacs, in europe thats the only reason you go to a university... building business relations [23:39] mjr_: I think college has a good chance of helping you a lot. it's certainly not required, but it's generally a safe bet, I'd say. [23:39] Aria: Yeah. 'safe'. [23:39] ysynopsis has joined the channel [23:39] Tobsn: but college is definitly something else... [23:40] isaacs: tjholowaychuk, Aria: you were probably thinking of Grace Hopper [23:40] isaacs: tjholowaychuk: ada lovelace was arguably the first programmer, but Grace Hopper wrote the first compiler. [23:40] tjholowaychuk: isaacs: sounds about right [23:40] Tobsn: http://www.knowledgerush.com/wiki_image/5/55/Grace_Hopper.jpg [23:40] Tobsn: :D [23:40] Tobsn: "want some cookies in your compiler?" [23:40] mjr_: isaacs: I assumed so also, that's why I referenced the USS Hopper. [23:40] Aria: I was actually thinking about Ada Lovelace. Then I got distracted in the 'bug' story in my head. [23:40] isaacs: hehe [23:41] isaacs: yeah, ada lovelace was a smart one, too [23:41] jameshome_: I bet she picked a mean berry. [23:41] isaacs: but grace hopper was arguably a much more significant impacter on the shape of CS as we know it [23:41] Tobsn: i wonder why they didnt burn her as a witch [23:41] Tobsn: or was that earlier? [23:41] Tobsn: :P [23:41] mjr_: Learning to love learning is IMO the most valuable thing that you can get from college, although the system is increasingly not set up to deliver that. [23:41] Nietecht: Pretty sure witch burning was over by then [23:42] Tobsn: ha [23:42] jameshome_: she faced a lot of ignorance and challenge, just like women engineers do now. [23:42] isaacs: without machine-independent languages, where would we be? i mean, seriously, is there ANY innovation in CS that was that revolutionary? [23:42] Tobsn: lucky her [23:43] tjholowaychuk: mjr_: agreed. direction was the biggest thing I lacked from not going to school [23:43] tjholowaychuk: a bit of direction at the beginning [23:43] tjholowaychuk: woudl have been golden [23:43] tjholowaychuk: but thats about it probably [23:43] mjr_: We all find our direction in different ways. [23:43] mjr_: School may not have helped. [23:43] Atmoz has joined the channel [23:44] mjr_: But if you don't keep learning as you get older, I say you've basically failed. [23:44] tjholowaychuk: yeah for sure [23:44] tjholowaychuk: tons to learn [23:44] Nietecht: What if you get to a point in life where you don't "have" to learn anything anymore, what if you stopped doing it then? Still a failure? :) [23:45] jameshome_: especially then. [23:45] mjr_: I guess you cross over into failure, ACCORDING TO ME, if you stop wanting to learn. [23:45] Me1000 has joined the channel [23:46] Aria: Especially then. [23:46] Nietecht: Well, I suppose there's a difference between actively not wanting to learn, insisting on ignorance, and simply not doing it because there's no real need. [23:46] Aria: Those people will be the first against the wall when the revolution comes [23:46] Aria: The world changes constantly. The need never vanishes. [23:47] Nietecht: Depends, sadly a lot of people seem to get by just fine with plenty of ignorance [23:47] jameshome_: just fine being a relative state [23:48] Aria: Indeed. They suffer daily and inflict it on me when I do tech support. [23:48] Nietecht: Well, relatively fine might just be perfect as far as their ignorance tells them [23:48] Aria: That's the scary part. [23:49] Nietecht: It might also indicate you could be doing something similar... being very much not fine from someone else's perspective even though you think you are :o [23:49] danielzilla has joined the channel [23:50] mjr_: Nietecht: I get the subtlety you are trying to tease out of my blanket "no learning = fail" claim, but I think that even if there's no need, if you love learning, you'd do it anyway. [23:51] Nietecht: mjr_: That's a given :) I wasn't really trying to antagonize [23:52] Wandrewvious has joined the channel [23:52] xslasherx has joined the channel [23:52] xslasherx: high there [23:52] _announcer: Twitter: "Fad @ _rei node.js Maybe I heard lately" [ja] -- Toru KAWAMURA. http://twitter.com/tkawa/status/25163490188 [23:53] sprout has left the channel [23:53] marshall_law_ has joined the channel [23:53] sprout has joined the channel [23:53] _announcer: Twitter: "thinking of running a virtual goods marketplace for stiqr.com in #node.js" -- jae lee. http://twitter.com/jaequery/status/25163585878 [23:55] xslasherx: anyone alive [23:56] mjr_: xslasherx: we are alive, just recovering from an intense philosophical diversion. [23:56] jameshome_: heh [23:57] WALoeIII has joined the channel [23:57] Nietecht: Oh man :( [23:57] deepthawt has joined the channel [23:58] jchris has joined the channel