[00:00] isaacs: qschzt: yes. it's a couchapp. send me an email, i'll hook you up with access to 5984 [00:00] isaacs: qschzt: then you can set up regular couch replication [00:00] qschzt: okay. thanks [00:02] SteveDekorte has joined the channel [00:03] tiboll: mikeal: ok thx for the advice ;) [00:04] Tim_Smart has joined the channel [00:07] _announcer: Twitter: ""No Callbacks, No Threads & Ruby 1.9" by @igrigorik http://is.gd/e81FH Mmm async rails. #ruby #nodejs" -- Sean Porter. http://twitter.com/portertech/status/20587298402 [00:10] isaacs: ok, everyone who just tried out npm update and saw it fail: curl http://npmjs.org/install.sh | sh [00:12] aniero: shoot, is there no error when a net.Stream is closed from the remote side? [00:14] mscdex: aniero: listen for the 'end' event on net.Stream? [00:15] creationix: want to know something funny [00:15] _announcer: Twitter: "#freelance #HTML #CSS #job - Javascript Guru Needed to setup Node.js Web Server on EC2, PSD... ($16/hr) - http://donanza.com/t/1940323..." -- DJ Hennion. http://twitter.com/carbide25/status/20587740140 [00:15] mw_ has joined the channel [00:15] mscdex: creationix: async ruby? [00:15] mscdex: :-D [00:15] creationix: when I have bad migraines I think in node [00:15] aniero: mscdex: i'll try it [00:16] mape: isaacs: why not npm install npm? [00:16] creationix: mscdex: nah, that's just event machine [00:16] aniero: mscdex: oh, rgh, duh [00:16] aniero: mscdex: ahh thanks [00:17] qschzt: isaacs, yeah that installed [00:17] mscdex: aniero: np [00:17] aniero: hmm, the mongo driver doesn't keep track of that happening. nyrrgh [00:17] qschzt: npm ! ReferenceError: semver is not defined [00:17] qschzt: npm failed to update expresso@0.6.1 eyes@0.1.6 [00:17] qschzt: expresso-0.6.1 failed safety check [00:18] victorstan has joined the channel [00:19] qschzt: again seems to be because of http-console, which I never used anyway [00:19] qschzt: npm ok. [00:20] qschzt: hmm i don't think it's quite right, perhaps running it twice fixed the problem [00:23] qschzt: pastebin.ca is broken, pastie.org is broken [00:23] qschzt: ah there it is. nvm [00:23] _announcer: Twitter: "In parallel flows require best not to put # nodejs" [ru] -- Vova Bilonenko. http://twitter.com/delfrrr/status/20588198968 [00:26] markt has joined the channel [00:27] amerine has joined the channel [00:31] daleharvey: ok, this is a bit harsh, but I got really sick of restarting node [00:31] daleharvey: http://gist.github.com/513393 [00:31] tmpvar: anyone using websockets with connect? [00:31] tmpvar: daleharvey, haha [00:32] _announcer: Twitter: "loving node.js, but really sick of restarting this server, http://gist.github.com/513393 YMMV" -- Dale Harvey. http://twitter.com/daleharvey/status/20588695123 [00:32] daleharvey: heh, thats bit scary [00:33] pengwynn has joined the channel [00:38] mscdex: ;-) [00:39] tmpvar: ls [00:39] tmpvar: blarg [00:39] necrodearia has joined the channel [00:39] mscdex: ls: cannot access blarg: No such file or directory [00:41] tmpvar: whats up mscdex [00:42] joshbuddy has joined the channel [00:47] ryah: isaacs: you should give a npm tutorial at the meetup next week [00:48] isaacs: ryah: good idea [00:48] _announcer: Twitter: "My new pet project is out: http://github.com/dachev/node-sizzle. You can now parse HTML tag soup in node.js and run sizzle selectors." -- Blagovest Dachev. http://twitter.com/blago/status/20589615119 [00:51] tmpvar: ah, thats a good point.. i should run unit tests against sizzle + jsdom [00:51] _announcer: Twitter: "slowly but surely sussing the ins-and-outs of http://nodejs.org and http://expressjs.com. Baby steps. #fb" -- Dan McGinn-Combs. http://twitter.com/dgcombs/status/20589776368 [00:53] tk has joined the channel [00:54] tk: does _announcer try to tarnslate tweets? I've seen several today that make no sense.... [00:54] tmpvar: yep [00:55] tmpvar: it will give you the source language like.. [es] [00:55] tk: terrible idea... none of the online translator api's do much more than literal translations... [00:55] tk: at least I've never found a good one when I needed one [00:57] jedschmidt has joined the channel [00:57] mizerydearia has joined the channel [00:58] SteveDekorte has joined the channel [00:59] tk: how you been tmpvar? [00:59] admc has joined the channel [00:59] tmpvar_ has joined the channel [01:01] nrstott has joined the channel [01:09] jimt_ has joined the channel [01:10] danielzilla has joined the channel [01:20] sideshowcoder has joined the channel [01:22] bryanl has joined the channel [01:23] siedrix has joined the channel [01:26] rwaldron has joined the channel [01:27] jimt has joined the channel [01:30] jsilver has joined the channel [01:33] Tim_Smart: Ruby Fibres seem interesting. [01:33] Tim_Smart: Probably a bit too magic for my liking though. [01:33] Tim_Smart: *bit too much [01:34] Tim_Smart: ( http://www.igvita.com/2010/03/22/untangling-evented-code-with-ruby-fibers/ ) [01:35] steadicat has joined the channel [01:51] danielzilla has joined the channel [01:52] matt_c has joined the channel [01:54] ryan_gahl has joined the channel [01:59] jedschmidt has joined the channel [02:05] _announcer: Twitter: "Seriously, if NodeJS/Ruby fibers seem neat to you, head over to http://bit.ly/dCqcnQ to get your mind blown." -- Eva . http://twitter.com/evalee6/status/20594224665 [02:09] dipser has joined the channel [02:21] SvenDowideit_ has joined the channel [02:28] jwcooper has joined the channel [02:29] daleharvey: does anyone use a naming convention for their javascript? [02:29] markwubben has joined the channel [02:30] daleharvey: right now I am calling node.stuff.js for node files, I want a name for browser js files, and then x.js arent specific [02:31] ryan_gahl: i use something.server.js and something.client.js [02:32] daleharvey: sounds good, cheers [02:33] jimt_ has joined the channel [02:35] _mythz has joined the channel [02:35] _mythz has left the channel [02:43] Tim_Smart1 has joined the channel [02:49] Blink7 has joined the channel [02:54] jashkenas has joined the channel [02:56] jashkenas: 'evening, folks. Does anyone know what the "standard" is for Node command-line arguments to accept multiple values? For example: "cmd -r one.js -r two.js" versus "cmd -r one.js,two.js" ... ? [02:57] matt_c: jashkenas: I'm not sure if there's anything built in, but you might find http://github.com/jfd/optparse-js useful. [02:58] jashkenas: matt_c: thanks. I'll take a look. I've already got an option parser: http://jashkenas.github.com/coffee-script/documentation/docs/optparse.html --- I was just wondering about the behavior. [03:01] matt_c: I think I've seen it both ways in other languages so there may not be a clear answer. [03:01] meso has joined the channel [03:01] jashkenas: ok, matt_c: then which do you prefer? [03:02] matt_c: repeating -r one.js -r two.js means not having to do further parsing (split on comma, etc) so I'd probably go that route myself. [03:02] softdrink has joined the channel [03:06] jesusabdullah: I think -r -r sounds most right to me [03:06] jashkenas: thanks. [03:07] jesusabdullah: *nod* [03:16] wattz: what a night [03:16] wattz: this is a really fun error -lMagickWand: linker input file unused because linking not done [03:17] wattz: because linking not done... -_- [03:23] nano` has joined the channel [03:30] [[zzz]] has joined the channel [03:31] panzi has joined the channel [03:32] jsilver has joined the channel [03:33] blessYAHU has joined the channel [03:45] jedschmidt has joined the channel [03:49] [[zz]] has joined the channel [03:49] Gruni has joined the channel [03:50] mattly has joined the channel [04:03] frode has joined the channel [04:09] blessYAHU has left the channel [04:10] _announcer: Twitter: "Things I learned from my Node.js experiment - http://su.pr/7KMeZ4" -- eBot. http://twitter.com/kicauan/status/20602101174 [04:15] [[zz]] has joined the channel [04:19] nano`` has joined the channel [04:34] mikeal has joined the channel [04:36] [[zzz]] has joined the channel [04:37] _announcer: Twitter: "node.js easy enough to quit your job that you do not check the version upgrade" [ja] -- KOBA789(こば). http://twitter.com/KOBA789/status/20603740618 [04:38] jashkenas has left the channel [04:43] _announcer: Twitter: "Check this video out -- Node.js: JavaScript on the Server http://youtu.be/F6k8lTrAE2g" -- David May. http://twitter.com/wasser/status/20604070645 [04:47] adamv has joined the channel [05:02] [[zzzz]] has joined the channel [05:04] bpot has joined the channel [05:05] littlebir has joined the channel [05:05] littlebir: hey guys, i was wondering if i could use node.js on a big production site [05:06] littlebir: if i run it `node app.js` , and needed to modify a page, i would have to stop the process and start it again. [05:06] littlebir: Is it possible to modify while node is still running [05:06] littlebir: or wouldn't you recommend this on a production site just yet [05:08] mjr_: Opinions differ on how production-ready node is [05:08] mjr_: You certainly have to be very comfortable with node's limitations. [05:09] mjr_: Such as the one you mentioned, although you can work around that in a number of ways. [05:10] jimt has joined the channel [05:11] littlebir: hmm [05:11] konobi: ryah: how goes? [05:16] ryah: konobi: good - you [05:16] ryah: ? [05:16] ryah: littlebir: possible? yes - not for end users [05:17] littlebir: darn [05:17] ryah: in the coming months we'll hav that [05:18] ryah: ACTION is half-way through his major http-parser refactor [05:18] mjr_: woah, why? [05:19] mjr_: Seems like the http parser is pretty rockin [05:19] ryah: this is the new interface: [05:19] ryah: size_t http_parser_execute2(http_parser *parser, const char *data, size_t data_len, http_parser_ptr ptrs[], int ptrs_len) [05:19] ryah: no callbacks [05:19] ryah: it just fills an array with pointers to data [05:20] mjr_: calling back from C to C++ to JS was too crazy? [05:20] ryah: probably marginally faster (keep those registers hot) [05:20] ryah: but also so that i can "buffer" events [05:21] ryah: for this problem where people req.pause() but still get the first body chunk [05:21] mjr_: oh right, that old chestnut. [05:21] konobi: ryah: not bad... just about the tuck into the K&R book again [05:21] mjr_: It really is what people are expecting to happen, so we might as well do it that way. [05:21] ryah: yeah - less js to c++ calls [05:22] mjr_: I was playing with the python DTrace probes the other day. [05:22] mjr_: Summary: holy shit [05:22] ryah: oh man [05:22] mjr_: Can we expect this kind of magic in node at some point in the future? [05:22] ryah: yes [05:23] ryah: want to get them deep into v8 [05:23] mjr_: oh wow [05:23] mjr_: That'd be even awesome-r [05:23] mjr_: But I'd be happy with just some in node. [05:23] ryah: yeah then pop those into eventsource [05:24] mjr_: It's almost as if you saw this coming. [05:24] ryah: so it should be really nice [05:24] mjr_: With the eventsource thing I mean [05:24] ryah: but it'll take a while, i think [05:24] ryah: joyent has been long-time dtrace fans [05:25] mjr_: Being able to instrument a live system is such a game changer that I can't even believe it. [05:25] mjr_: It's making me completely rethink using Linux, even though Linux is so well supported. [05:26] mscdex: node.js rules! [05:26] ryah: yeah. linux really needs it. [05:26] ryah: and zfs. [05:26] maxsilver has joined the channel [05:26] konobi: mjr_: just imagine doing it with kernel cpu on-off, system calls and things like file opens by low level libraries, etc. [05:27] mjr_: Yeah, I've imagined it. And now I want it. [05:27] ryah: sticking dtrace probes into http-parser might be an easy win [05:28] konobi: ryah: yeah, that'd be pretty awesome [05:28] mjr_: Things never get slow in production the way they get slow in the lab. [05:28] konobi: mjr_: did you watch bryan (cantrill's) google talk about dtrace? [05:28] mjr_: konobi: yeah, it was a real eye-opener. [05:28] mjr_: I watched it last week. [05:28] konobi: nice [05:29] mjr_: I've spent a lot of time doing performance tuning on Linux machines, and I had no idea what I was missing. [05:29] ryah: mjr_: http://cacm.acm.org/magazines/2010/7/95062-visualizing-system-latency/fulltext#F1 [05:29] ryah: mjr_: in particular the diagrams http://deliveryimages.acm.org/10.1145/1790000/1785435/figs/f2.jpg [05:30] mjr_: uhhh, what? [05:30] mjr_: Are those mystic runes? [05:33] iheartnodejs has joined the channel [05:33] iheartnodejs: :-D [05:33] mattly has joined the channel [05:42] [[zzzz]] has joined the channel [05:46] Sam_ has joined the channel [05:50] Sam_: What arguments does Array.prototype.forEach apply to the callback function? [05:52] Sam_: does it pass in the index as well as the value? [05:53] SubStack: yes [05:53] SubStack: Sam_: second value [05:53] SubStack: also the third argument is the whole list [05:53] SubStack: ACTION just found that out [05:53] Sam_: Cool thanks [05:54] SubStack: > 'a b c'.split(' ').forEach(function () { console.log(sys.inspect([].slice.call(arguments))) }) [05:55] Sam_: Is the source for the function available? [05:55] SubStack: deep in the bowels of v8 [05:55] Sam_: argh [05:57] mscdex: Sam_: https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/forEach [05:57] mscdex: Sam_: you'll find a lot of other ES5 stuff that's in V8 there [05:57] Sam_: ES5? [05:58] micheil: ECMAScript 5 [05:58] _announcer: Twitter: "A wonderfully to-the-point comparison of PHP/Apache vs. Node.js: http://bit.ly/c4RjzL" -- KW. http://twitter.com/oerhoert/status/20608263550 [05:58] Sam_: Oh [05:58] micheil: which, iirc, is also the 5th edition of the ECMA 262 specification [05:58] mscdex: Sam_: in other words, whatever you find here: http://wiki.github.com/ry/node/ecma-5mozilla-features-implemented-in-v8 [05:58] mscdex: Sam_: you can find examples on that mozilla site [05:59] Sam_: mscdex: thanks [06:00] Gruni has joined the channel [06:00] Sam_: sweet: Array.isArray [06:01] Sam_: no more: typeof arg.join=="function" [06:07] SamuraiJack has joined the channel [06:11] _announcer: Twitter: "The archive download server github from Node.js appears that the Ruby + Sinatra replaced by the implementation. I introduced steadily increasing number of achievements. http://bit.ly/cCMPzI" [ja] -- 西山 雄也/Nishiyama Yuya. http://twitter.com/nsyee/status/20608937352 [06:12] mikeal: that is not english [06:15] ice799 has joined the channel [06:33] Sam_ has joined the channel [06:34] konobi: ryah: btw, is that issue valid or should i kill it? [06:43] meso has joined the channel [06:50] nano` has joined the channel [06:54] polotek has joined the channel [06:55] admc has joined the channel [06:58] [[zz]] has joined the channel [07:05] _announcer: Twitter: "http machine debugging for the company brewed node.js. . . At least have the capacity to feel it." [ja] -- Yohei Sasaki. http://twitter.com/yssk22/status/20611473201 [07:06] justin_ has joined the channel [07:07] polotek: can anyone point me at a good script that attempts to bring most browsers up to es5 compatibility? [07:08] justin_: i'm building a binding between zeromq and node, and i'm just starting on the libev integration [07:08] justin_: thing is, 0mq doesn't have file descriptors exposed to developers [07:08] polotek: justin_: cool, was looking into that before [07:08] polotek: but I don't really like the zeromq C api [07:08] polotek: justin_: exactly [07:09] justin_: so, does anybody know if it's possible to just get a callback on every tick so i can use their poll function? [07:09] polotek: justin_: you'll have to use eio_custom I think [07:09] polotek: pass it into a thread and wait [07:10] polotek: a callback on every tick would be a lot of overhead I think [07:10] justin_: polotek: true... what do you mean by pass it into a thread and wait? [07:10] polotek: using eio_custom you can start a thread that blocks and waits on the 0mq listener [07:11] polotek: essentially eio_custom lets you call your function in a background thread in node [07:11] justin_: alright, makes sense [07:11] polotek: and when some event happens, set a callback that goes back into the main event loop [07:12] justin_: yeah, that would work [07:12] polotek: justin_: be aware though that eio has a minimum of threads [07:12] polotek: 4 in fact [07:12] polotek: if you're taking up one waiting on 0mq [07:12] polotek: other disk io will suffer [07:13] polotek: however, I'm working on surfacing a setting that'll allow you to up that number of threads [07:13] justin_: polotek: that would be great [07:13] mscdex: polotek: what about underscore.js? [07:14] mscdex: dunno if that has all the es5 methods though [07:14] polotek: mscdex: that's what I'm using now. [07:14] mscdex: oh [07:14] polotek: it's awesome [07:14] justin_: agreed, underscore rocks socks [07:14] polotek: but I wanted to compare it to a script that tries to "unify" the environments [07:14] polotek: so you can just write plain js [07:15] Aikar has joined the channel [07:16] polotek: es5 is pretty awesome [07:16] polotek: but currently crippled by browser adoption [07:17] polotek: We need to start a movement man [07:17] polotek: publish a list of modern browsers with good support. write modern code for them [07:17] polotek: use some compatibility scripts to try and include IE and such [07:18] polotek: but if it doesn't work, tough shit [07:18] polotek: justin_: http://github.com/pkrumins/node-async [07:18] polotek: good example module for how to use eio_custom [07:19] justin_: polotek: badass, thanks [07:19] jesusabdullah: ACTION wishes he knew enough c++ to do interesting things :( [07:20] mscdex: polotek: here's a project: http://code.google.com/p/ddr-ecma5/ [07:21] polotek: jesusabdullah: before getting into node I hadn't touched C since college. [07:21] polotek: I quickly remember why that is ;) [07:21] pdelgallego has joined the channel [07:21] jesusabdullah: Haha XD [07:21] pkrumins: node-async ^_^ [07:22] jesusabdullah: polotek: I saw maybe a quarter of C++, and it was extremely basic as it was a "programming for engineers" class [07:22] polotek: mscdex: word, thanks [07:22] jesusabdullah: Back then it was a quarter of trivial C++, then a quarter of trivial fortran [07:22] jesusabdullah: Now it's a quarter of trivial C++ and a quarter of matlab [07:22] polotek: hehe, matlab is actually awesome [07:23] polotek: not for teaching good CS [07:23] polotek: but for what it's good at, it rocks [07:23] mscdex: polotek: it seems to be missing a few functions though: Array.isArray, String.trimLeft, and String.trimRight. [07:23] polotek: mscdex: yep, was noticing that [07:23] mscdex: those shouldn't be hard to implement though [07:23] polotek: checking the license [07:23] polotek: may just use it as a base for my own [07:23] polotek: add the missing stuff [07:24] polotek: sweet MIT [07:24] polotek: actually it's been touched fairly recently [07:24] polotek: could probably just get a bunch of stuff contributed [07:25] polotek: the compatibility table on the home page is awesome [07:25] polotek: that's what I actually need [07:25] polotek: but fully fleshed out [07:25] mscdex: lol there's an es5 implementation for pascal/delphi [07:25] mscdex: polotek: have you seen this? http://kangax.github.com/es5-compat-table/ [07:25] polotek: mscdex: ummmm, pass [07:26] polotek: nope [07:26] polotek: you're 2 for 2 my good man [07:27] polotek: So es5 doesn't actually include the new syntax extensions [07:27] polotek: array comprehensions, generators, etc [07:27] polotek: is that right? [07:27] mscdex: no idea [07:28] mscdex: i just know about the getter setter syntax thing [07:28] polotek: hehe, I've got a pdf of the spec sitting on my desktop [07:28] polotek: ACTION stops being lazy and opens it [07:28] mscdex: and "use strict" [07:29] mscdex: at least ie9 is going to have full support for es5 according to that table [07:29] jesusabdullah: There's a strict mode for javascript? [07:29] _announcer: Twitter: "@ Andrwj look at Google's moves in the past, Win API developers enjoyed a boom for those days, the environment, on behalf of the V8 and JavaScript, and give NodeJS're suddenly a thought ..." [ko] -- Rhio.kim. http://twitter.com/Rhiokim/status/20612523808 [07:29] mscdex: well, at least for the functions listed [07:29] mscdex: jesusabdullah: it's an es5 thing [07:30] mscdex: jesusabdullah: see: http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/ [07:30] polotek: mscdex: ie9 feels like a distant dream [07:31] polotek: read this thing recently [07:31] mscdex: polotek: psh, i would never dream about IE lol [07:31] jesusabdullah: Huh [07:31] jesusabdullah: Not sure I like that <_> [07:31] polotek: about a petition in the UK to get the government to upgrade their browsers [07:31] jesusabdullah: I mean, the way of invoking it [07:31] polotek: from ie6 [07:31] polotek: they declined [07:31] mscdex: polotek: yeah i think i heard about that [07:31] polotek: stating the same old crap [07:31] polotek: it's too hard, it would cost too much to upgrade [07:31] polotek: horseshit man [07:32] mikeal has joined the channel [07:32] mscdex: i actually prefer the ie6 ui to the newer versions [07:32] mscdex: not the engine mind you [07:32] jesusabdullah: Hmm [07:32] jesusabdullah: no "use strict" in v8 yet, it seems [07:32] jesusabdullah: INTERESTING [07:32] polotek: mscdex: yeah the ui is aweful starting with ie7 [07:32] mscdex: jesusabdullah: nope [07:32] polotek: ie6 ain't pretty [07:32] polotek: but it doesn't suck [07:33] zomgbie has joined the channel [07:33] mscdex: ie6 needs like ie9's rendering engine, like the way you can have the chrome/webkit renderer in ie [07:33] mscdex: heh [07:34] polotek: I'd be interested to see the penetration numbers for ie chrome frame [07:34] polotek: probably negligent [07:35] mscdex: this is an interesting site: http://ipinfo.info/netrenderer/ [07:35] jesusabdullah: the UK government still uses IE6? [07:35] mscdex: it doesn't capture the whole page or allow you to have it scroll [07:35] mscdex: but still neat [07:36] jesusabdullah: Yeah :/ [07:38] Sam_ has joined the channel [07:41] mscdex: this one uses safari on mac supposedly and gives you the option to get a jpg or png of the whole page: http://superscreenshot.com/ [07:47] _announcer: Twitter: "Coding with : Node.js + WebSockets + HTML5 + CSS3 + Raphael -- I'm living in the future." -- Conrad Twizzle. http://twitter.com/conradtwizzle/status/20613301194 [07:49] polotek: best twitter name ever [07:49] micheil: possible [07:50] polotek: I take that back. that award still goes to voodootikigod [07:50] femtoo has joined the channel [07:51] micheil: polotek: marco, right? [07:52] polotek: micheil: yep, what's up? [07:53] Sam_ has joined the channel [07:54] [[zz]] has joined the channel [07:54] micheil: polotek: just checking. I'm kinda bad with names [07:55] polotek: micheil: I hear you [07:55] polotek: I put my real name everywhere [07:56] polotek: I also put profile pics everywhere so people know I'm black ;) [07:56] jesusabdullah: Hah! [07:56] micheil: polotek: colour of skin doesn't mean a thing. [07:56] polotek: micheil: sure it does [07:57] polotek: it shouldn't. but it definitely does [07:57] polotek: I just don't like to surprise people with it [07:57] jesusabdullah: I come from a land where there are very few black people, except for guys in the military [07:57] micheil: as far as I'm concerned, it doesn't. As far as others are, it might. [07:57] ewdafa has joined the channel [07:57] jesusabdullah: So, even though I'd like to be the sort of person that doesn't care, etc. I'm on some level still mildly surprised to meet a black person that's not military <_> [07:57] jesusabdullah: As silly as that sounds [07:58] polotek: micheil: Yeah I know. programmers are usually pretty tolerant [07:58] SubStack: skin color matters very much [07:58] SubStack: it determines how much vitamin d can be synthesized indirectly [07:58] jesusabdullah: If it's yellow, it's a sign of malaria, pretty sure [07:58] jesusabdullah: if it's green, you probably have gangrene [07:58] polotek: SubStack: nice [07:58] SubStack: and protects against uv radiation [07:59] sveimac has joined the channel [07:59] micheil: SubStack: okay, biologically, it means something, mentally and socially it means nothing to me. [07:59] polotek: SubStack: maybe slightly, but not overly so [07:59] jesusabdullah: I know I sunburn pretty easy [07:59] polotek: jesusabdullah: yeah I'm sunburned right now [07:59] jesusabdullah: ACTION comes from a long line of rednecks [07:59] polotek: from the beach last weekend [08:00] jesusabdullah: Aww :( [08:00] jesusabdullah: We don't have beaches [08:00] jesusabdullah: :( [08:00] polotek: jesusabdullah: no beaches and no black people. you're very deprived man [08:00] jesusabdullah: I know! [08:00] micheil: I rarely sunburn badly, but I try not to be in situations where I can get sunburnt (seriously 40ºC heat is badass) [08:00] jesusabdullah: o_o [08:01] jesusabdullah: I think 30C is painfully hot [08:01] mscdex: ACTION shakes a fist at the celsius scale [08:01] micheil: ouch [08:01] micheil: well, 40ºC is about 110ºF [08:01] SubStack: ACTION metrifies mscdex  [08:01] micheil: iirc. [08:01] manveru: we had almost 40 the last week... [08:01] mscdex: the only thing metric is good for is scientific stuff :p [08:01] SubStack: ACTION had some sunburn when he went to hawaii [08:01] SubStack: the annoying part is how the skin peels off afterwards [08:02] jesusabdullah: My girlfriend's brother had the batman symbol reverse-sunburned on his back [08:02] mscdex: well that's a-peeling [08:02] mscdex: :-D [08:02] jesusabdullah: It was pretty awesome except for the whole "increased cancer risk" thing [08:02] manveru: mscdex: http://en.wikipedia.org/wiki/File:Metric_system_adoption_map.svg [08:02] polotek: jesusabdullah: everything causes cancer now [08:02] polotek: I say stop worrying and just do it [08:02] SubStack: melanoma is also one of the easier cancers to treat [08:03] mscdex: jesusabdullah: he didn't try jumping off the roof of his house to see if he could fly did he? [08:03] tpryme has joined the channel [08:03] jesusabdullah: polotek: You have a nook? Awesome \m/ [08:03] jesusabdullah: Sorry, I went and found your blog [08:03] jesusabdullah: <_> [08:03] SubStack: stalker! [08:03] mscdex: manveru: you will also see that antarctica has not adopted metric either [08:03] jesusabdullah: mscdex: No, but he DOES do parkour during his free time [08:03] jesusabdullah: kid's nuts [08:03] polotek: manveru: yeah I agree, the us should get on board with the metric system [08:04] mscdex: converting to metric for the U.S. would cost a lot [08:04] jesusabdullah: One nice thing about -40 C is that it's also -40 F [08:04] polotek: we're like IE in that respect. using our own shit to accomplish the same thing instead of being standard [08:04] polotek: mscdex: so would upgrading IE6 [08:04] polotek: both still worth it [08:04] mscdex: meh [08:04] ryan[WIN]: hey quick client-side js question [08:04] mscdex: we should just all use kelvin! [08:04] SubStack: avoirdupois is like IE6 [08:04] polotek: jesusabdullah: my blog is pretty shitty [08:04] ryan[WIN]: how do i set the scrollbar on a div to the end of the data [08:05] ryan[WIN]: it's a chat window i'm doing with a div [08:05] ryan[WIN]: when i get a new line i want to add it and set scrollbar position to end [08:05] jesusabdullah: polotek: Mine too! [08:05] jesusabdullah: jesusabdullah.github.com [08:05] jesusabdullah: :v [08:05] SubStack: ryan[WIN]: scrollTo [08:05] ryan[WIN]: k i will google that [08:05] ryan[WIN]: thanks [08:05] SubStack: you can probably do .scrollTo($('elem').height()) [08:05] manveru: mscdex: i haven't been to the US, so the only time i have to deal with non-metric stuff is online :) [08:05] polotek: jesusabdullah: nice pic at the bottom [08:05] SubStack: or attr('scrollHeight') which seems mostly to do the same thing [08:06] jesusabdullah: polotek: Yeah XD [08:06] mscdex: ryan[WIN]: fwiw http://www.webdeveloper.com/forum/showthread.php?t=99391 [08:06] mscdex: manveru: the only time i've ever used metric was in physics courses [08:07] jesusabdullah: My bachelor's is in mechanical engineering. We switch back and forth like nothin' [08:07] mscdex: heh [08:08] jesusabdullah: until slugs get into the picture. For some reason slugs are confusing [08:08] mscdex: too slimey? [08:08] mscdex: :-D [08:08] manveru: ACTION gets back to learning tcl [08:08] jesusabdullah: Well, they're a mass measurement for the English system [08:09] polotek: jesusabdullah: you gotta put dates on your blog posts man [08:09] polotek: it's one of my pet peeves [08:09] jesusabdullah: so that 32.2 slug-ft/s^2 = 1 lbf [08:09] polotek: not being able to easily tell how old something is [08:09] jesusabdullah: polotek: Hmm, good idea. Thanks! I'll make a note somewhere. [08:10] jesusabdullah: Issue'd [08:10] jesusabdullah: Will fix Monday [08:11] polotek: micheil: you're working the websockets spec right? [08:11] micheil: not quite [08:11] micheil: I'm an implementor [08:11] polotek: ah, that's cool [08:11] micheil: I don't really have that much I can actually contirbute to the authoring of the spec. [08:12] polotek: that makes sense given your frustrated tweets about it [08:12] micheil: yeah. It's just really a tonne of bikeshedding. [08:13] jesusabdullah: Haha [08:13] jesusabdullah: Finally the url sheddingbikes makes sense >_< [08:13] micheil: like, I thought commonjs was bad at times. [08:14] polotek: micheil: commonjs is bad [08:14] polotek: which is why node is clobbering them [08:14] _announcer: Twitter: "# Nice, I have to node.js. templating .. morning missing some css server and income ..." [es] -- Loki Zavala. http://twitter.com/Siedrix/status/20614473989 [08:14] polotek: I think it sucks cause those guys are really smart and I like what they're doing [08:14] astrolin has joined the channel [08:16] micheil: yeah, although, the bad part about the websocket spec is that it's got now three strands, each group wanting their own thing [08:17] polotek: You would think we'd be better at mediating between shed painters at this point in the long sordid history [08:18] micheil: yeah, but we're not, because everyone has an idealist view of things. [08:18] polotek: I would have each faction use the other's proposals to implement some test cases [08:18] micheil: and then there's the people who want the kitchen sink in the first version [08:18] polotek: oh yeah, that's always a problem [08:19] polotek: I think having each side actually have to use the others proposals would go a long way towards forcing compromise [08:19] micheil: for instance, there's been talk of how to add multiplexing and compression into websockets now before anyone's really used them much [08:19] polotek: too much theoretical talking without doing [08:19] polotek: but the kitchen sink thing is a beast [08:19] micheil: yeah [08:19] polotek: not really sure how to combat that one [08:20] polotek: and it's not totally unreasonable [08:20] polotek: there's a very real issue of api [08:20] polotek: if you don't try to consider everything that will eventually need to be supported [08:20] polotek: you end up with inconsistent apis [08:20] polotek: unless you did a really good job of making them elegant from the start [08:21] polotek: I totally get that [08:21] polotek: but honestly, it's just not possible to be perfect [08:21] micheil: well, I mean, personally I think all data on websockets should be transfered as binary, but the default encoding be set to utf8 [08:21] jesusabdullah: Makes sense [08:22] polotek: there is a point when holding up progress is worse than having to make some api changes later [08:22] polotek: micheil: that would work, but that type of stuff is usually about api usability right? [08:23] micheil: so, the packet format would be similar to the VII that their now up to, where by you have a bunch of metadata, a packet type bit, and then you have a length bit which tells the parser the next X bytes is part of my data [08:23] polotek: "if I'm using the socket like this, I want my data to come out looking like this..." [08:23] micheil: so then on the client side, unless otherwise stated by a ws.setEncoding(encoding), the content of the packets is recieved and emitted out as utf8 text messages [08:24] micheil: so, doing what people are currently doing would still work fine [08:24] polotek: micheil: yeah I definitely don't know enough about it [08:25] polotek: using node has required me to increase my understanding of that stuff [08:25] polotek: but I'm still way behind [08:25] polotek: i was perfectly content with http :) [08:25] micheil: polotek: same. The only prior network stuff I did was working on chat clients / bots for the deviantART message network [08:26] konobi: micheil: how are the devart guys? [08:26] micheil: not too bad [08:27] micheil: they've just had their tenth birthday [08:27] micheil: so, ten years online today [08:27] _announcer: Twitter: "Downtime, sort of. After cclite 0.8.0: http://bit.ly/d5IAtY I can mess with Opensim: http://bit.ly/bpvlmF and node.js: http://bit.ly/axbYbL" -- Hugh Barnard. http://twitter.com/hughbarnard/status/20615010955 [08:27] konobi: micheil: wow... pretty nuts... i remember the initial beta [08:28] micheil: heh [08:28] micheil: I've been a member since 05 [08:29] konobi: that was before Jarkko took off, right? [08:31] polotek: so for those who remember me asking about js enhancements like array comprehensions and generators [08:31] polotek: that stuff is not part of es5 at all [08:31] polotek: they are mozilla specific enhancements in their version of javascript [08:32] polotek: by the mozilla version numbering [08:32] konobi: yup [08:32] konobi: 1.5 [08:32] polotek: 1.5 is basically stable es3 with a few "upgrades" [08:32] polotek: they are now up to 1.8 [08:32] polotek: which has most of the es5 stuff [08:32] polotek: plus all the extra stuff that isn't supported by ECMA [08:33] polotek: like array comprehensions, generators, generics, e4x... [08:33] polotek: all the cool stuff basically [08:35] polotek: so you can only find that stuff in Firefox, tracemonkey and rhino [08:35] polotek: generators would fit so awesomely into node [08:35] micheil: konobi: same time. [08:36] micheil: polotek: have a look at: http://gist.github.com/513767 [08:38] polotek: hmmm [08:38] polotek: micheil: what does specifying the protocol actually do? [08:38] micheil: not a lot. [08:38] micheil: it's mainly so you could have say five different servers, but as long as each understands the protocol, they would be able to communicate with the same clients [08:39] hellp has joined the channel [08:39] micheil: so, for instance, pusherapp.com, could use the subprotocol of "pusher-json" [08:39] konobi: standards are bikeshedding... implentations before the gold sstandard [08:39] polotek: konobi: it should be a symbiotic development [08:39] polotek: start with discussing some initial standards [08:40] polotek: then start building and see what works [08:40] polotek: let it stay on the bleeding edge and usage patterns will start to emerge [08:40] polotek: iterate on those in the next round of standards discussion [08:40] konobi: well... goals should be discussed... specifics should be determined by implementation [08:40] polotek: that's one thing that allows these things to derail [08:41] polotek: clearly defined goals [08:41] konobi: for example... perl 6 has been be changing their spec regularly based on experimentation [08:41] polotek: so for instance with websockets [08:41] polotek: either supporting binary is in the requirements for this pass or it isn't [08:41] polotek: decide that first [08:42] polotek: and if it's not in, then people aren't allowed to derail the conversation by worrying about it [08:43] micheil: well, I think it'd be best if binary was the default format for packets [08:44] polotek: micheil: you think but you don't know right? [08:44] polotek: nobody does [08:44] polotek: so we should settle whether it's a priority right now [08:44] polotek: so we can move on [08:44] polotek: that would be my approach anyway [08:44] micheil: well, if it's binary now over the wire, then that means that all that needs to change later is the encoding stuff [08:45] polotek: micheil: I tend to agree with you [08:45] micheil: so when browsers support binary in javascript, then you can easily have binary websockets, but until then, the user just gets utf8 text data [08:45] jetienne has joined the channel [08:45] polotek: what's the actual reasoning from those who oppose that idea? [08:46] micheil: there's not, there just seems to be the IETF working on this binary is king style spec, and the WHATWG are still pushing on with their draft76 [08:47] micheil: bascially at some stage there was a requirement by the WHATWG to make the protocol implementable by the ‘amateur programmer’ [08:47] micheil: which, imho, is a really stupid requirement. [08:47] micheil: I'm just against enforcing the protocol to have to always use TLS, because most uses do not need the encryption, it's just over head [08:48] [[zzz]] has joined the channel [08:48] micheil: If there's just one packet format, instead of the two that are present in draft76, that's a hell of a lot simpler [08:49] konobi: man... looking at the perl 6 syntax and features makes me really want a production ready version [08:50] polotek: micheil: sounds like one of the oldest stories in the book [08:50] micheil: ? [08:50] polotek: bunch of really smart guys who don't actually do any work arguing over details [08:51] micheil: my current benchmark is if I can implement it, then it must be easy enough. [08:51] polotek: hehe, yeah but that's dangerous [08:51] micheil: which might sound really stupid, but it's true, I'm not a person with a degree. [08:51] polotek: you can't use yourself as a metric [08:51] polotek: your skills are always improving [08:52] polotek: so your bar is always rising [08:52] polotek: I think the whole idea of making things for "amateur programmers" is flawed [08:52] polotek: we're talking about low level browser implementations [08:52] micheil: man. someone should seriously shoot those using named prams. [08:53] polotek: amateur programmers don't implement protocols [08:53] polotek: they don't even try [08:53] ryan[WIN]: http://pilot.ryanbroomfield.com:8030/icorn.html [08:53] polotek: they look for high level apis that work for them [08:53] micheil: exactly. [08:53] ryan[WIN]: man this is starting to really come together [08:53] ryan[WIN]: (btw content on that link may be NSFW due to the fact it's a chat) [08:53] ryan[WIN]: even though it's not NSFW [08:54] polotek: I just wrote a rant about the importance of consistent apis on the mailing list actually [08:55] ryan[WIN]: polotek, dude yeah most amateur programmers want stuff that is "easy" aka BROKEN [08:55] ryan[WIN]: and they don't realize that when they get what they want they make their lives miserable [08:56] stagas: polotek: that's lazy programmers not amateur [08:56] polotek: ryan[WIN]: consistent and powerful does not mean "easy" [08:56] polotek: you can build an "easy" api on top of a lower level one [08:56] polotek: and that one can have flaws [08:56] ryan[WIN]: of course [08:56] polotek: but you can always drop down and fix them [08:56] ryan[WIN]: but amateur programmers only want the "easy" [08:57] polotek: ryan[WIN]: that's fine, they can have it [08:57] ryan[WIN]: and then end up losing their minds when they find out they can't get the "correct" [08:57] polotek: what I'm saying is the "easy" api should not be the spec [08:57] ryan[WIN]: why i <3 nodejs and never got into any of the web framework stuff [08:57] polotek: the spec should have a powerful lower level api that is consistent and easy to reason about [08:57] ryan[WIN]: polotek, i 100% agree [08:58] polotek: xmlhttprequest is a good example [08:58] polotek: not a perfect api [08:58] polotek: but nice [08:58] polotek: and some really nice "easy" apis have been built on top [09:03] polotek: stagas: just got scrolled back to your comment about lazy vs amateur [09:03] kuya: i want to write a nodejs game :| [09:03] polotek: you're right that there's a distinction [09:04] _announcer: Twitter: "node.js intro http://is.gd/e8tpK" -- tru64ufs. http://twitter.com/tru64ufs/status/20616498083 [09:04] polotek: I still think it's unreasonable to cripple a protocol by forcing it to be easy enough for "amateur programmers" [09:04] polotek: an amateur might actually try to implement a protocol [09:04] polotek: they should be prepared to fail [09:04] polotek: because the goal of a protocol is not to be easy to implement [09:04] polotek: or at least it shouldn't be [09:05] polotek: a protocol is about facilitating data exchange [09:05] polotek: depending on the data and the domain, that protocol might be extremely simple or pretty complex [09:05] polotek: but it should serve it's purpose without worrying about who's going to be implementing it [09:06] polotek: because the nice thing about a protocol, is once it has been implemented by somebody smart [09:06] polotek: you don't really have to do it again [09:06] polotek: unless you really want to or think you can do better [09:06] micheil: yeah [09:06] micheil: I think they've now ditched the amateur programmer thing [09:07] polotek: micheil: feel free to use that rant [09:07] polotek: to convince some people ;) [09:09] Blink7_ has joined the channel [09:10] Gruni has joined the channel [09:13] polotek: I'm out guys. take it light [09:13] polotek has left the channel [09:14] slaskis has joined the channel [09:17] Gruni has joined the channel [09:17] Sam_: Done [09:18] Sam_: Check out the module I just finished writing: http://fixee.org/paste/gao6bsz [09:19] rnewson has joined the channel [09:19] micheil: Sam_: if that's for node, us Array.isArray [09:20] stagas: Sam_: what does it do? [09:21] femtooo has joined the channel [09:21] Sam_: micheil: Oh yea, found out about that earlier today [09:25] konobi: Sam_: trying to do DOM 1? [09:29] Sam_: example: http://fixee.org/paste/asrmcll/ [09:30] konobi: Sam_: seen jsdom yet? [09:31] konobi: http://github.com/tmpvar/jsdom [09:37] FransWillem has joined the channel [09:39] [[zzz]] has joined the channel [09:41] silentjohnny has joined the channel [09:42] Sam_: konobi: I just wanted an easy way to write HTML structures with javascript [09:43] Sam_: Rather than just using text templates [09:52] silentjohnny has left the channel [09:55] silentjohnny has joined the channel [10:03] [[zz]] has joined the channel [10:20] hansek has joined the channel [10:22] [[zzz]] has joined the channel [10:29] tmedema has joined the channel [10:35] stagas_ has joined the channel [10:37] jsilver has joined the channel [10:41] zomgbie has joined the channel [10:42] nodev has joined the channel [10:49] mape: Shouldn't make install on OSX allow me to run node? Instead of sudo node? [10:50] hansek has joined the channel [10:55] _announcer: Twitter: "@robconery I'd wash off the VB and go play with a little F# or for a none-ms flavour Erlang ;o) NodeJS + Websockets is quite cool" -- Chris McKee. http://twitter.com/chrismckee/status/20620933749 [10:59] _announcer: Twitter: "@ Tiboll for node.js throws a glance at expressjs was, I think the framework node.js the most advanced and evolved." [fr] -- Jérémy TRUFIER. http://twitter.com/Tronix117/status/20621103908 [11:01] Neil__ has joined the channel [11:13] voxpelli has joined the channel [11:17] silentjohnny has joined the channel [11:19] silentjohnny has left the channel [11:19] konobi: who's working on the WebWorkers implementation? [11:19] mape: konobi: hehe I JUST started looking at it [11:20] mape: http://github.com/pgriess/node-webworker [11:20] silentjohnny has joined the channel [11:20] konobi: mape: might having a look at a node patch for me? [11:20] mape: but seems the npm version of it isn't working [11:21] konobi: mape: http://github.com/konobi/node/commit/83811c9c39951e2ac2602495f6899d7746fc5415 [11:22] mape: konobi: Hmm don't think I will be och much help sadly [11:23] ThePub has joined the channel [11:24] malkomalko has joined the channel [11:24] stagas___ has joined the channel [11:26] justin_ has joined the channel [11:33] Tim_Smart has joined the channel [11:40] _announcer: Twitter: "i wish new Buffer('utf8', 'a', 1 + 2, obj) in #nodejs /cc @ryah" -- Alexander. http://twitter.com/bga_/status/20622839283 [11:49] phiggins has joined the channel [11:55] _announcer: Twitter: "great list of #nodejs related modules and frameworks http://bit.ly/cjJYbY" -- Dominik Guzei. http://twitter.com/DominikGuzei/status/20623530080 [11:58] John9e9 has joined the channel [12:00] _announcer: Twitter: "use #nodejs today on webfaction cheap hosting with shell access! http://bit.ly/cRFCcr @ellisgl sorry for 404" -- Dominik Guzei. http://twitter.com/DominikGuzei/status/20623740745 [12:06] phiggins has joined the channel [12:11] bryanl has joined the channel [12:13] daleharvey has joined the channel [12:14] SvenDowideit has joined the channel [12:18] maxsilver has joined the channel [12:21] V1 has joined the channel [12:28] _announcer: Twitter: "@miksago i'll open it, no problem! In fact, i was thinking of node.js it to support up to 4 players" -- Diego F. Goberna. http://twitter.com/feiss/status/20625078244 [12:40] _announcer: Twitter: "Trustworthy #nodejs & #mysql solution for high-load prod environment: DBSlayer, external XML-RPC or node-mysql(*) module? Any suggestions?" -- Maciej Zgadzaj. http://twitter.com/maciejzgadzaj/status/20625697911 [12:42] davidc_ has joined the channel [12:45] joshhunt_ has joined the channel [12:46] pufuwozu has joined the channel [12:47] joshhunt_: Hey guys [12:47] joshhunt_: I am having a bit of an issue using node-rss with node.js, so i am not too sure if this is the right place to ask this, but here it goes [12:48] d0k has joined the channel [12:48] joshhunt_: Using node-rss, http://github.com/ibrow/node-rss, i can only ever make one successful request for an rss feed. After the first, it just reports with ""Document: only comments, processing instructions, or whitespace allowed outside of document element"" [12:50] sveisvei: joshhunt_: Hey, do you have gist with your code? [12:52] joshhunt_: Sure. http://dpaste.com/226218/ [12:52] joshhunt_: RSS stuff starts at line 50 [12:53] pufuwozu has joined the channel [12:55] sveisvei: ill run it and try to debug, probably something that doesnt reset/are global [12:55] joshhunt_: sveisvei: Oh thanks [13:02] Blackguard has joined the channel [13:05] pufuwozu has joined the channel [13:09] victorstan has joined the channel [13:14] joshhunt_: sveisvei: I can send you all the files involved if it is a help [13:14] sveisvei: just tested the example from node-rss, it gives the same erro [13:15] sveisvei: I would consider node-rss highly alpha though [13:15] sveisvei: might be better to use another lib maybe? [13:16] mmso has joined the channel [13:17] sideshowcoder has joined the channel [13:17] joshhunt_: fair enough. Thanks [13:17] sveisvei: sry, I cant see what it is :( [13:18] joshhunt_: No, i appreciate your help. I think i might just go with using node-xml... [13:19] joshhunt_: Does not look like there are many other rss libraries available [13:22] mscdex: joshhunt_: that's similar to what i do. i use libxmljs to parse the xml then convert the resulting document to javascript objects [13:22] joshhunt_: mscdex: for rss feeds? [13:23] mscdex: no, anything xml [13:23] konobi: joshhunt_: any idea if node-xml handles the XML declaration ? [13:23] mscdex: i just prefer dealing with native js objects than xml [13:24] rsms has joined the channel [13:24] _announcer: Twitter: "Fucking with the new version of framework to express nodejs http://bit.ly/d9o9H7 but fight petite npm" [es] -- karlos g liberal. http://twitter.com/patxangas/status/20628021556 [13:24] mscdex: joshhunt_: there's even rss2json services [13:24] mscdex: i.e. http://www.rss2json.com/ [13:25] joshhunt_: mscdex: Yeah... ive seen a few of those, but i am not quite sure if i want to use/rely on another service like that... [13:25] joshhunt_: konobi: I have no idea. I have never actually used it directly [13:26] konobi: joshhunt_: try an rss feed without one? [13:27] rnewson has joined the channel [13:28] joshhunt_: konobi: eh [13:29] joshhunt_: I don't really want to have to pick each rss source individually [13:29] joshhunt_: I've tried two different ones now (reddit and engadget) and neither work [13:29] mscdex: joshhunt_: fwiw here is an async xml to js object converter that uses libxmljs: http://gist.github.com/416021 [13:30] ThePub: I was going to say, that shouldn't be a hard task to write a small library which would do the conversion. [13:30] sveisvei: joshhunt_: I found the bug [13:30] sveisvei: joshhunt_: its in node-xml.js [13:30] V1: You can also just use YQL to convert rss to json [13:30] joshhunt_: sveisvei: I assumed that much... [13:31] sveisvei: joshhunt_: that.m_parser = new XMLP(strD) [13:31] sveisvei: want a patch, or just found something better :)? [13:31] sveisvei: I would go with the latter, because there is something weird with this modules state [13:32] joshhunt_: yeah, well i figure i should just go and get something better [13:32] joshhunt_: sveisvei: But, is the patch hard/complex? [13:33] sveisvei: let me test 1 sec with the state thing, and ill trow it to you [13:34] joshhunt_: thanks [13:41] mmso has joined the channel [13:44] V1: Tobsn, I checked out your flexihash library for node and saw you created a separated to UTF8 function, node has one natively called "StringDecoder" => http://github.com/ry/node/blob/master/lib/string_decoder.js [13:45] Tobsn: yeah i saw that after i used that utf8 thing [13:45] Tobsn: was too lazy to change it :P [13:45] V1: =p [13:47] nano` has joined the channel [13:49] necrodearia has joined the channel [13:49] sveisvei: joshhunt_: nogo, it saves result on the object itself [13:49] sveisvei: and doesnt flush [13:49] joshhunt_: ahh [13:49] joshhunt_: thanks anyway [13:50] sveisvei: and I saw factory inside there ( i hate factorys, dont see the point) [13:50] sveisvei: ACTION cant spell * [13:50] joshhunt_: I think i will just go with one of those rss2json services [13:52] sveisvei: might be smart to post on the projects issue list, might get a better answer than mine [13:54] Gruni has joined the channel [13:56] _announcer: Twitter: "Have you tried cradle? http://github.com/cloudhead/cradle #nodejs #couchdb" -- SantoshSadangi. http://twitter.com/tutu_designer/status/20629867576 [13:56] _announcer: Twitter: "Pure Ruby implementation of #nodejs native libraries http://github.com/aslakhellesoy/rednode" -- SantoshSadangi. http://twitter.com/tutu_designer/status/20629904910 [13:57] _announcer: Twitter: "I was not aware that #nodejs wasn't #commonjs compliant http://hns.github.com/2010/07/30/modules.html" -- SantoshSadangi. http://twitter.com/tutu_designer/status/20629938896 [13:58] phiggins has joined the channel [13:59] joshhunt_: hrm... is there an easier way to load json from a url than using http.client in node.js? [14:00] joshhunt_: Sorry for the obviously lame question, but the only other place i have used js is with jquery, and i just used that for everything [14:00] _announcer: Twitter: "Demystifying events in node.js - How To Node: http://bit.ly/b3qfUv" -- Hernan Garcia. http://twitter.com/theprogrammer/status/20630137877 [14:00] mscdex: joshhunt_: not really. i mean, you can use the undocumented http.cat function, but you still have to JSON.parse() the results [14:01] tisba has joined the channel [14:01] joshhunt_: http.cat? [14:02] moritz__ has joined the channel [14:02] moritz__: hai [14:05] _announcer: Twitter: "I have a proof concept for a redundancy option in my Node.js memcached client. It does require a big base rewrite, but I hope its done today" -- Arnout Kazemier. http://twitter.com/3rdEden/status/20630453464 [14:06] karboh has joined the channel [14:11] pufuwozu has joined the channel [14:11] sveimac: joshhunt_: http://github.com/ry/node/blob/master/lib/http.js#L1022 I guess its this one btw [14:12] mscdex: sveimac: yep [14:15] paulwe has joined the channel [14:16] polotek has joined the channel [14:18] polotek: joshhunt_: a nicer api on top of http.Client is being worked on as we speak [14:19] polotek: don't know when it'll be out though. for now http client is best [14:26] bradleymeck has joined the channel [14:26] V1: ryah: Do you have any issues with that I'm going to rewrite 90% of the node javascript files to named functions expressions. So when we are profiling the functions doesn't show up as ? [14:26] mape: <3 [14:27] bradleymeck: nope, s'why i name my funcs [14:28] bradleymeck: ^not ry but,heh, and coding for js1k is making my inner coder bleed w/ syntax hacks [14:28] polotek: V1: sounds like potential for lots of insidious bugs. I say do it. [14:28] bradleymeck: you just need to put the name after function but before (), i dont think many things can go wrong [14:29] polotek: bradleymeck: famous last words [14:29] polotek: it does sound pretty simple [14:29] polotek: I dont think it'll cause obvious issues [14:29] polotek: the node test suite is pretty robust a this point I think [14:29] bradleymeck: no variables are introduced to outer scopes [14:29] polotek: but giving it a name makes it a scope variable [14:29] mape: As long as you don't name them over other named functions? [14:30] polotek: which means it starts mingling with other scope variables [14:30] polotek: potential for clashes and all that [14:30] mscdex: yeh [14:30] polotek: goes into closures [14:30] bradleymeck: polotek, kinda, if its a function statement yes, if its a function expression, no, which you almost only use anons as func expressions [14:31] polotek: bradleymeck: word, I admit I'm not entirely up on the difference [14:31] polotek: which is why if I was doing it, I'd be nervous [14:31] bradleymeck: basically if you cant set up an anon, it is a statement [14:32] polotek: bradleymeck: can you set up a quick gist example? I'm interested [14:32] bradleymeck: js> function(){3} [14:32] gbot2: bradleymeck: [14:32] bradleymeck: oh its running it, ok ill set up one sec [14:33] bradleymeck: darn gbot2 not using true global scope [14:33] mape: V1: try a script that just pregmatches in random names and see if it breaks? [14:34] konobi: V1: profiling with what? [14:34] _announcer: Twitter: "finally #udp support on #nodejs, lets build an #OSC parser and do realtime performances in the browser! http://bit.ly/a5YaHs" -- Dominik Guzei. http://twitter.com/DominikGuzei/status/20632309479 [14:34] polotek: konobi: I think the move is dtrace [14:35] polotek: but also the v8 profiler [14:35] polotek: I'm definitely waiting for somebody to do something cool with node and udp [14:37] konobi: polotek: oh yes... we will be dtrace probing like crazy [14:37] konobi: mwuahahaha [14:37] shimondoodkin has joined the channel [14:37] mape: has there been any eta announced on that? [14:37] bradleymeck: http://gist.github.com/514096 < polotek both expressions fail cause various reasons [14:37] konobi: nope [14:37] mape: And I guess that means I have to start developing on OSX :S [14:37] konobi: or solaris [14:37] polotek: mape: on the dtrace stuff? [14:38] polotek: I think it's waiting on the EventSource branch to drop [14:38] elliottkember has joined the channel [14:38] mape: polotek: Yeah, my linux box won't play that game [14:38] mape: Sadly [14:38] polotek: mape: yes, that's exactly what it means. Macs are awesome [14:38] mape: I prefer to use linux since that is what the production server usually runs [14:38] konobi: mape, opensolaris is pretty fecking awesome, tbh [14:38] mape: And I have 4 dedicated cores [14:39] konobi: and runnable in virtualbox [14:39] bradleymeck: polotek, those give you an idea of whats going on? [14:39] polotek: bradleymeck: so in exp.js [14:39] polotek: line 4 fails [14:39] bradleymeck: yes [14:40] polotek: because the function named "expression" isn't actually in scope, it was created for that statement only [14:40] nano`` has joined the channel [14:40] bradleymeck: :D [14:40] polotek: but the name goes with it so in any stack output, it'll show up with the name? [14:40] bradleymeck: not even that, just that part of the expression [14:40] polotek: is that it basically [14:40] bradleymeck: yes [14:40] polotek: that's cool [14:41] polotek: so then real issues with what V1 is doing is making sure there are no name clashes [14:41] bradleymeck: between local vars, yup [14:41] polotek: and making sure that these are always interpreted as expressions and not statements [14:41] bradleymeck: you wouldnt use an anonymous as a statement, i dont think you can even [14:41] polotek: yeah I get you. that's why exp_fail.js doesn't run [14:42] polotek: that's fine. I'm definitely up to speed now. [14:42] bradleymeck: cool beans [14:42] polotek: still nervous about this kind of massive change, but sounds more reasonable now [14:43] polotek: bradleymeck: I have an unrelated question for you [14:43] polotek: you've been working with getter/setters in the v8 api for node-overload [14:43] _announcer: Twitter: "#socket-io and #nodejs - the perfect combination for realtime browser apps http://bit.ly/9OQU05" -- Dominik Guzei. http://twitter.com/DominikGuzei/status/20632883807 [14:43] polotek: I don't have a good example of creating and accessor on an object in C++ [14:43] polotek: the steps aren't obvious [14:44] polotek: can you point me in the right direction? [14:44] bradleymeck: on a single propertyname? [14:44] polotek: yes, one named property accessor [14:46] konobi: polotek: I just created one actually [14:46] polotek: konobi: do tell [14:46] konobi: polotek: http://github.com/konobi/node/commit/83811c9c39951e2ac2602495f6899d7746fc5415#diff-1 [14:46] konobi: SetAccessor is what you're after [14:47] konobi: (that one only has a getter, but the setter is pretty simple) [14:48] bradleymeck: yea, also, use the data argument to pass persistent stuff rather than extending object if you can [14:48] konobi: http://code.google.com/apis/v8/embed.html#accesssors [14:48] polotek: konobi bradleymeck: cool thanks [14:51] polotek: yeah I've read this embedder's guide before. forgot it had specifics on accessors [14:51] polotek: it's so sparse in other areas [14:52] bradleymeck: we really need to make a c header to v8 system XD only problem i have is the darn pass by references [14:59] maushu has joined the channel [15:01] polotek: konobi: what are you using this fork method for? [15:01] mscdex: it's maushu! [15:06] rnewson has joined the channel [15:08] maushu: Wat. [15:08] konobi: polotek: I've got something up my sleeve, but I'm sure there's plenty of stuff that's broken with that method [15:08] maushu: I'm working. [15:08] konobi: open file descriptors, inherited thread pools, etc. etc. [15:09] polotek: konobi: yeah, I was just curious [15:10] mscdex: nobody works when they're in here! [15:10] mscdex: it's impossible! [15:10] konobi: polotek... mainly some sandboxing style stuff [15:11] scoates has joined the channel [15:11] scoates: hi [15:12] scoates: can someone point me at a document on how to extend built-in modules? Is there a trick to it, or do I just require, call the original and re-export? [15:13] polotek: scoates: there's no document. [15:13] polotek: it depends on what you mean by "extend" [15:13] polotek: do you want to permanently extend it? or do you mean more like a wrapper? [15:14] scoates: say I have a module that exports apple(), orange() and banana(). I like how apple() and banana() work, but I'd like to change the functionality of orange() [15:14] scoates: should I just require the module, write my own orange() and export the 3? [15:14] scoates: or is there a smarter way to do that? [15:15] polotek: scoates: no that sounds fine [15:15] polotek: so in your module [15:15] polotek: exports.apple = fruits.apple [15:15] scoates: ok. the problem I foresee is that if the original module ever adds exports, I'd have to specify those myself, manually [15:15] polotek: exports.orange = yourOrange [15:16] polotek: scoates: right, that's why I was asking what you were actually getting at [15:16] polotek: so in your module you could do [15:16] scoates: yeah.. I was trying to be concise (-: [15:16] polotek: module.exports = fruits [15:16] polotek: so your module is literally the same as fruits [15:16] polotek: then you extend it by overwriting the methods you want [15:16] scoates: ah. great. [15:16] scoates: that sounds good. [15:16] polotek: there's a gotcha there though [15:17] polotek: when you make changes, you're also changing fruits [15:17] polotek: the original module object is being modified [15:17] polotek: that may not be what you want [15:17] scoates: ah. that's actually even better (-: [15:17] scoates: I'm extending the readline object in a REPL [15:17] scoates: I was just going to make repl.rli = myrli [15:17] scoates: but if I can do it further out, then even better [15:20] Blink7_ has joined the channel [15:20] konobi: if it's an object you could always do `module.exports = new fruits()` [15:21] konobi: then you'll have a new instance of that object that you can edit [15:21] polotek: module.exports = Object.create(fruits); [15:21] _announcer: Twitter: "Impressive nodejs UDP supported as DominikGuzei @ says can make a parser for CSOs @ DominikGuzei" [es] -- karlos g liberal. http://twitter.com/patxangas/status/20635506809 [15:21] scoates: thanks [15:22] _announcer: Twitter: "Impressive nodejs with support UDP as DominikGuzei @ says can make a parser of CSOs. Protocol multimedia on the web XD" [es] -- karlos g liberal. http://twitter.com/patxangas/status/20635598674 [15:32] bradleymeck: god i just wrote a post on ways to minify code beyond normal at all costs (since js1k is coming up) and it feels like a bad practice guide [15:33] steadicat has joined the channel [15:34] scoates: polotek: sorry I wasn't very clear, earlier. Can you take a peek at this and tell me how I'm supposed to properly reference Interface? http://paste.roguecoders.com/p/fba261a088376c163c3dfd17a47f1a13.txt [15:35] polotek: bradleymeck: lol [15:35] pufuwozu has joined the channel [15:36] polotek: scoates: what's wrong with this? [15:36] scoates: it tells me http://paste.roguecoders.com/p/8e17d74f0ec536350865935873ded2ed.txt [15:36] polotek: bradleymeck: I would think that the spirit of js1k is to what you can achieve still using best practices. [15:37] polotek: scoates: does readline have have a property called Interface? [15:37] polotek: or are you trying to add that [15:38] scoates: I don't think it's a property. I just don't quite understand how to get at it. sorry for the potentially dumb questions. http://github.com/ry/node/blob/master/lib/readline.js [15:38] polotek: scoates: yeah, Interface isn't explicitly exported from readline [15:38] polotek: there's only the createInterface function [15:38] polotek: you might be out of luck [15:38] scoates: that's unfortunate.. /-: [15:39] scoates: I guess I should just copy the whole thing, then? seems like a waste. [15:39] polotek: scoates: I would argue that it should be exported [15:39] polotek: you could submit a patch and see if ry will accept [15:39] scoates: ok [15:39] softdrink has joined the channel [15:39] polotek: readline is pretty short. you could copy it if what you're doing is fairly straightforward [15:40] polotek: or just make that small change to export Interface in your build [15:40] DozyPieman has joined the channel [15:40] polotek: obviously neither of those is portable [15:40] micheil: lol. just wowed my older brother by showing him a page with: in it. [15:41] x_or has joined the channel [15:41] polotek: micheil: hehe, yeah people love that. they immediately ask why their CMS doesn't just use it all the time [15:41] micheil: heh [15:42] bradleymeck: polotek, they say you wont be judged on style, and im aiming for the tweet category [15:42] micheil: The only sad part with it is that I can't type and edit html tags [15:42] polotek: bradleymeck: you won't be officially judged. but morally... [15:42] polotek: :P [15:42] _announcer: Twitter: "Node.js plunged this week and let's look at closure library." [ja] -- Jxck. http://twitter.com/Jxck_/status/20636926447 [15:43] polotek: micheil: yeah it's definitely limited. I had an idea at one point to try to enhance it with some controls [15:43] bradleymeck: pfff im like jim in that area, no moral judgements [15:43] polotek: with some dom manipulation [15:43] polotek: didn't get very far before giving up [15:43] micheil: polotek: there's a really good demo from PPK that can be found at the WHATWG blog [15:49] PyroPeter has joined the channel [15:52] ctp has joined the channel [15:53] scoates: polotek: exporting Interface did it. Thanks again. Sent a pull request to ry + you (yours for reference) [15:53] bronson has joined the channel [15:53] polotek: scoates: cool [15:53] pufuwozu has joined the channel [15:54] polotek: fyi I think ry prefers to have patch files submitted to the mailing list [15:54] polotek: with a subject that starts with [PATCH] [15:54] scoates: ah. ok. I guess I can subscribe to that. (-: [15:54] polotek: I think that's the convention [15:55] everton has joined the channel [15:56] maritz has joined the channel [16:00] scoates: sent. [16:04] femtoo has joined the channel [16:09] claudiu__ has joined the channel [16:10] jakehow has joined the channel [16:12] polotek has joined the channel [16:13] polotek: hmmmm [16:13] polotek: the getter is working [16:13] micheil: exactly. [16:13] polotek: the setter seems to be called [16:13] polotek: but the value isn't changing consistently [16:14] markwubben has joined the channel [16:15] sveisvei has joined the channel [16:18] pufuwozu has joined the channel [16:18] polotek: oh [16:18] polotek: seems to be an issue with libeio [16:29] sideshowcoder has joined the channel [16:39] markwubben has joined the channel [16:41] amerine has joined the channel [16:44] mape: hmm how to I regex 'I am a float'.replace(/.*float.*/, 'break'); without breaking? [16:44] joshhunt_: So, forgive me for jumping the gun a bit, but how exactly should i be using http.cat? [16:45] joshhunt_: I have looked through the source and tried a few things, but none of them work [16:45] megan: without breaking? o_O [16:45] polotek: mape: huh? [16:45] mape: polotek: nm, syntax error, figured it was something else [16:45] daleharvey has joined the channel [16:45] polotek: joshhunt_: you shouldn't. what problems are you having with http.Client? [16:45] megan: it was your bad breath :P [16:45] megan: mwahahhah [16:46] joshhunt_: polotek: Nothing really, just after something a bit 'cleaner' [16:46] joshhunt_: What's wrong with http.cat? [16:46] polotek: joshhunt_: just thinking it's probably not part of the public api for a reason [16:47] danielzilla has joined the channel [16:47] polotek: I don't know anything about it [16:47] micheil: megan: I think people missed your attempt at a troll. [16:47] V1 has joined the channel [16:48] megan: then say 0/10? :) [16:48] joshhunt_: polotek: Well i guess that is one way of looking at it. I just want to use it because i would want to avoid writing a wrapper for http.client if one already exists [16:49] hansek has joined the channel [16:50] _announcer: Twitter: "Geddy - A modular web framework for node.js http://ff.im/oVcPM" -- antest. http://twitter.com/antest/status/20641110280 [16:51] JimBastard has joined the channel [16:52] JimBastard: when did they add fucking captcha to the webchat [16:52] JimBastard: arg [16:52] polotek: joshhunt_: actually http.cat doesn't look too bad [16:52] polotek: pretty straight forward actually [16:53] joshhunt_: well, i got it to make a request (i think), i just need to get the response back :P [16:54] joshhunt_: I may as well be new to javascript, so i cant make out how to do that from looking at the code [16:54] V1: polotek: I'll rather do this massive change now, before it's late and it becomes unmanageable. [16:55] V1: as the .js source base isn't that "extend" yes. [16:55] JimBastard: joshhunt_: you trying to do http.Client requests? [16:55] joshhunt_: JimBastard: with http.cat [16:55] JimBastard: whats http.cat? [16:56] joshhunt_: JimBastard: undocumented api http://github.com/ry/node/blob/master/lib/http.js#L1022 [16:56] JimBastard: ive been using http://github.com/mikeal/node-utils/tree/master/request/ which is a nice wrapper for the native http client class [16:56] JimBastard: whats the point of http.cat/ [16:57] polotek: JimBastard: it basically does the same thing but it's way simpler [16:57] joshhunt_: from what i understand a wrapper for http.client [16:57] polotek: just sends a simple get and collects the response [16:57] mape: V1: are you going ahead with naming the anon functions? [16:57] joshhunt_: polotek: may i ask, do you know how to get the response back? [16:57] polotek: joshhunt_: I recomment using the request module as well [16:57] polotek: dont' know why I didn't think of it before [16:58] maxsilver has joined the channel [16:58] polotek: joshhunt_: yeah I just tried http.cat and I get no response [16:58] polotek: I could dig into it in a bit [16:58] V1: mape: Only if i get a green light for it. [16:58] joshhunt_: yeah don't worry, ill just stick with http.client [16:58] mape: ah k [16:58] polotek: but you're better off using something better like the request module that JimBastard pointed to [16:59] joshhunt_: Thanks anyway [16:59] V1: But debugging anonymous functions aint fun. [16:59] joshhunt_: Oh, i think i will just use what node provides. I mean, i'm only really making requests in one place [17:00] JimBastard: joshhunt_: polotek and i dont know what we are talking about [17:00] JimBastard: you should keep digging into undocumented api calls instead of listening to me [17:01] polotek: ah, the reason you might not get a response from http.cat is that it doesn't follow redirects [17:02] mape: which request handles [17:02] polotek: statusCode == 30x [17:02] polotek: I tried "http://google.com/" [17:02] polotek: but obviously that redirects a few times [17:02] maritz has joined the channel [17:02] polotek: so http.cat gave me nothing [17:02] polotek: it's really quite dumb [17:02] phiggins has joined the channel [17:03] polotek: I do wish it wasn't called just "request" though [17:04] polotek: it's hard to keep refering to it without being ambiguous [17:04] littlebir has joined the channel [17:05] polotek: joshhunt_: http://gist.github.com/514267 [17:05] joshhunt_: oh wonderful [17:05] joshhunt_: thanks [17:05] polotek: joshhunt_: lol, I still want you not to use it [17:06] polotek: just being helpful [17:06] rnewson has joined the channel [17:06] rnewson has joined the channel [17:07] joshhunt_: polotek: Thanks. I think i will just go with http.client [17:07] mape: Or request.. Which works.. [17:08] polotek: joshhunt_: npm install request [17:09] polotek: request = require("request") [17:09] polotek: boom, done [17:10] zomgbie has joined the channel [17:10] polotek: zomgbie! nice [17:11] joshhunt_: polotek: thanks [17:12] Yuffster has joined the channel [17:13] isaacs has joined the channel [17:14] slaskis has joined the channel [17:14] MrTopf has joined the channel [17:16] nrstott has joined the channel [17:18] pufuwozu has joined the channel [17:19] mikeal has joined the channel [17:20] cardona507 has joined the channel [17:21] [[zz]] has joined the channel [17:24] creationix has joined the channel [17:26] bradleymeck has joined the channel [17:27] ryan_gahl has joined the channel [17:28] shimondoodkin has joined the channel [17:28] maritz has joined the channel [17:29] shimondoodkin: how to use libxmljs as parser [17:33] maritz: shimondoodkin: http://libxmljs.squishtech.com/parser ?!?! [17:34] shimondoodkin: thaks ill read it now [17:34] shimondoodkin: s/thaks/thanks [17:35] maritz: the official documentation often answers question about how to use things :P [17:35] rnewson has joined the channel [17:37] zemanel has joined the channel [17:40] shimondoodkin: maritz: actually it confused me more then it answered when i looked at it first time [17:41] shimondoodkin: too much without examples [17:42] shimondoodkin: maritz: after you gave me a correct url, just then it became more friendly [17:45] maritz: uhm... okay :D [17:51] _announcer: Twitter: "Reading: "Introduction to node.js" ( http://bit.ly/cYGJxq ) -has good explanation of event loop" -- vishal sodani. http://twitter.com/vishalsodani/status/20644580130 [17:55] matt_c has joined the channel [17:58] polotek: shimondoodkin: do you have specific questions? [17:59] shimondoodkin: i have needed an example of how to use parser [18:00] shimondoodkin: have you used it anywhere? [18:00] polotek: yes :) I'm the maintainer [18:00] polotek: looking for my example gist [18:01] polotek: it hasn't made it into the read me yet for some dumb reason [18:01] polotek: http://gist.github.com/484083 [18:02] polotek: that is how to use it as a push parser [18:02] polotek: meaning you can do parser.write and feed stuff into it over time [18:02] mscdex: ugh. i want to shoot myself after having to deal with this pathetic Cisco API documentation [18:02] polotek: the regular parser works just the same [18:02] shimondoodkin: thanks [18:03] polotek: shimondoodkin: I'm off and on here today. If you try to get me and I don't answer. Post to my mailing list [18:03] shimondoodkin: ok [18:03] polotek: http://groups.google.com/group/libxmljs [18:03] shimondoodkin: :) [18:09] dmcquay has joined the channel [18:10] pufuwozu has joined the channel [18:11] zomgbie has joined the channel [18:13] _announcer: Twitter: "Node.js ecosystem grows quickly. Will we see it in enterprise (corporate) apps? http://icio.us/oln4ns" -- Celestino Güemes. http://twitter.com/tguemes/status/20645717769 [18:14] V1: Ofc we will see it in enterprise apps ;d [18:14] saikat has joined the channel [18:16] aho has joined the channel [18:16] scoates: improved readline? http://paste.roguecoders.com/p/ef5501739843c0911e1d1b8df5caa681.txt [18:17] hansek has joined the channel [18:17] jherdman has joined the channel [18:19] shimondoodkin: i do an enterprise app http://github.com/shimondoodkin/nodejs-mongodb-app [18:20] tmpvar: hehe [18:20] tmpvar: im not sure thats what he means by "enterprise" [18:20] shimondoodkin: humm [18:20] shimondoodkin: so waht is the meaning of it? [18:20] tmpvar: j2ee is "enterprise" [18:21] V1: git's nodeloaded? [18:21] V1: githubs* [18:21] tmpvar: http://en.wikipedia.org/wiki/Enterprise_software [18:22] _announcer: Twitter: "Hacking on #nodejs with @sirevanhaas." -- Sean Coates. http://twitter.com/coates/status/20646201750 [18:22] shimondoodkin: i think i did not missed that definition [18:23] geojeff has joined the channel [18:23] shimondoodkin: like this: http://www.hkvstore.com/phpmaker/demo.asp [18:23] shimondoodkin: i use to do such software in php with a lot of business logic and firm automation [18:24] tmpvar: got ya [18:24] V1: Yay! Got redundancy support in my memcached client ^_^! [18:25] V1: Productive weekends <3 [18:25] shimondoodkin: tmpvar: other meaning of enterprise i know is over constructive implementation of simple staff [18:26] shimondoodkin: s/ enterprise/enterprise software [18:26] tmpvar: sure, and the horrible means of marketing it [18:26] shimondoodkin: :D [18:27] tmpvar: "solve all of your problems with j2ee, now with XSLT and WSDL!" [18:30] shimondoodkin: "j2ee, now with XSLT and WSDL,, creates new education jobs. [18:30] mikeal has joined the channel [18:31] scoates: and runs on your refrigerator[1] [1] Compressor upgrade required. J2EE needs a minimum of 82 cubic feed of icemaking space. [18:31] scoates: *feet [18:31] scoates: yet another joke ruined by a typo. [18:33] shimondoodkin: my client has one of those - chillout rooms [18:36] benburkert has joined the channel [18:36] pengwynn has joined the channel [18:41] maxsilver has joined the channel [18:48] FransWillem: creationix: Hey, how are you supposed to handle "upgrade" events with connect ? [18:48] creationix: not sure [18:48] creationix: socket.io does it by messing with the server itself [18:48] aniero: i'm not even sure what an "upgrade" is [18:48] creationix: not via a connect middleware [18:48] creationix: aniero: it's an event fired by the server oblect [18:48] creationix: part of the websocket protocol [18:49] aniero: it shows up in HTTP too [18:49] aniero: http.Client [18:50] creationix: I guess for websocket clients? [18:50] creationix: I've never used the upgrade event, my websocket implementation was before upgrade was part of node, I had to use raw net.Server [18:51] FransWillem: aniero, creationix: Basically once a client sends an "Upgrade:" header, Node.js will pass on the raw socket, not the http.ServerResponse, to provide your own protocol implementation :) [18:52] creationix: right, that makes sense for the server [18:52] creationix: it's a hook ryah put in to make websocket libraries share with the http server [18:52] CIA-77: node: 03Ryan Dahl 07master * r7068912 10/ lib/readline.js : Export Interface from readline.js - http://bit.ly/a46tEr [18:53] FransWillem: creationix: No way to define a upgrade request handler too ? [18:54] creationix: FransWillem: I'm open to suggestions for connect's api [18:54] allengeorge has joined the channel [18:54] creationix: I do want better integration with websockets [18:54] creationix: currently connect middleware only get the req and res objects [18:54] FransWillem: Tbh, just the same kind of set-up with the "request" event would be fine, tbh [18:54] creationix: not the actual server instance [18:55] FransWillem: Well, I do think that upgrade-middleware just needs a seperate handler list, and a seperate interface (e.g. replace response object with socket+head), and it'd be fine [18:55] creationix: sounds interesting [18:55] creationix: FransWillem: I don't have time to work on it today, but send me a note and I'll look at it tomorrow [18:55] shimondoodkin: polotek: do i have to define all the libxmljs handlers? [18:57] FransWillem: creationix: Would you be interested in having a standard middleware library for websocket/xhr-longpoll/xhr-multipart/other-long-lived connections? [18:57] creationix: FransWillem: yes, I'm looking at socket.io right now, but I'm not sold on it [18:58] FransWillem: creationix: Ok, gimme a minute, will put the repo up on github so you can check it out [18:58] sideshowcoder has joined the channel [18:58] creationix: ok [18:58] FransWillem: Does github allow you to rename repositories later on :p? [18:59] mape: that will break all links to it [18:59] mape: so people can't pull and whatnot [18:59] scoates: nice. http://github.com/ry/node/commit/7068912fbbe53c2f9bab6c6ab13bd6a6d31e2ede thanks polotek [18:59] FransWillem: Meh, guess I'll just suck it up :p [19:00] creationix: FransWillem: if you ask the github guys real nicly, they might do an internal rename which will preserve your followers, wiki pages, issuea, etc [19:00] _announcer: Twitter: "+ # # Sproutcore nodejs = awesome" [pl] -- Nikki. http://twitter.com/nicolahibbert/status/20648148133 [19:00] creationix: but yes, the git links will still be broken [19:00] creationix: as well and anyone linking to your site [19:00] khug has joined the channel [19:00] FransWillem: http://github.com/Frans-Willem/node-WebSocketFallback [19:01] FransWillem: It's not perfect [19:02] creationix: ok, I'll look at it tomorrow [19:02] FransWillem: Would you like me to write up my ideas and e-mail them to you ? [19:02] khug has left the channel [19:03] admc has joined the channel [19:05] FransWillem: creationix: Got friends over and holiday, we're probably going away tomorrow, so I'd rather write something up for you to read tomorrow, shall I just e-mail you ? [19:05] creationix: FransWillem: email, or file a github issue against connect [19:05] creationix: if you file it on github, TJ will see it too [19:06] tahu has joined the channel [19:10] dgathright has joined the channel [19:12] maritz has joined the channel [19:13] drudge: creationix: can spark do hot reloading of modified files like node-supervisor? [19:13] CIA-77: node: 03Ryan Dahl 07master * rcf5ae13 10/ TODO : Remove completed TODO task - http://bit.ly/91UREV [19:14] maritz: oh god, isn't that a paradox TODO? [19:14] sideshowcoder has joined the channel [19:15] maritz: i mean, he can only remove it, once it's done. but it's only done, while the TODO is removed itself. [19:15] maritz: while = when [19:15] stagas: if it were a program it would crash [19:15] stagas: :P [19:17] b_erb has joined the channel [19:18] maritz: it's probably a hack in order to remain below 0.2 :P [19:28] FransWillem: creationix: Mail sent, hope to hear from you soon : [19:28] FransWillem: :) [19:32] pufuwozu has joined the channel [19:34] bradleymeck has joined the channel [19:35] keeto has joined the channel [19:38] tilgovi has joined the channel [19:38] _announcer: Twitter: "doing all this JS makes me want to play with node!" -- Tom Holder. http://twitter.com/tholder/status/20650099678 [19:38] xycat has joined the channel [19:41] konobi: ryah: fork emulation in windows took activestate several months to get working [19:42] konobi: however... fork in unix... very useful now [19:42] pufuwozu has joined the channel [19:43] joshbuddy has joined the channel [19:46] mscdex: anyone know of any issue with the dgram module not working? [19:46] mscdex: :S [19:46] knuckolls has joined the channel [19:48] creationix has joined the channel [19:57] mscdex: scratch that, it looks network related :-\ [19:58] mape: Anyone know of a js module (prefferably) that optimizes css as in grouping h1{color: #fff;} h2{color:#ffffff} infot h1,h2{color:#fff;} ? [20:00] mape: Seems yui compressor doesn't do that [20:00] mape: at least not the default settings [20:02] programble has joined the channel [20:03] _announcer: Twitter: "New post: Geddy - A modular web framework for node.js http://geeknews.me/2010/08/08/geddy-a-modular-web-framework-for-node-js/" -- geek. http://twitter.com/geeknewsme/status/20651402129 [20:05] micheil: shit. I've just stayed up all night. [20:08] MattJ has joined the channel [20:12] maushu has joined the channel [20:18] hansek has joined the channel [20:20] _announcer: Twitter: "For giggles I'm doing OO two different ways in my node.js code. Is there something like Pep8 in Python for node (style guidelines?)" -- Benjamin W. Smith. http://twitter.com/benjaminws/status/20652282936 [20:21] micheil: !tweet @benjaminws Not really, there's an unwritten style guide, but that only applies for node.js core code, really. [20:23] aniero: hmm, does anyone know where socket.io gets the flash socket code from? [20:24] micheil: umm.. yeah [20:24] micheil: but I don't have the link off hand [20:24] mape: the one and only? [20:24] micheil: gullie I think is the github user [20:24] aniero: no, i found that [20:25] aniero: i mean, how/where does the .swf come from [20:25] aniero: looks like it's a submodule, http://github.com/gimite/web-socket-js [20:25] micheil: it's just compiled actionscript [20:25] aniero: guess i have to put that in my app's directory, then [20:25] micheil: Gulliermo actually maintain(s|ed) his own version [20:26] micheil: and I probably spelt his name wrong. [20:26] aniero: his submodule points to that one [20:27] mscdex: yeah, all you need is the swf i think [20:28] aniero: ok, i'll try that [20:28] mscdex: it's been awhile since i've used socket.io [20:28] _announcer: Twitter: "mhhh broke ma npm ... fuck #nodejs" -- Sascha Depold. http://twitter.com/sdepold/status/20652685164 [20:29] micheil: I wonder when guillermo is going to announce that news he had about sockets.io [20:29] aniero: mscdex: it might be hardcoded... hrm [20:29] aniero: micheil: yeah, i heard him mention that, but no indication as to what it is? [20:29] micheil: !tweet @sdepold no one said npm would work, y'know that? [20:29] Yuffster has joined the channel [20:30] ryan_gahl: fyi micheil, i don't think nodejsbot is running :) [20:30] mscdex: micheil: i don't think the !tweet works [20:30] micheil: >_> [20:30] ryan_gahl: jinx! [20:30] mscdex: micheil: look at the last tweet date: http://twitter.com/nodejsbot [20:30] nodev has joined the channel [20:30] micheil: fair enough [20:30] mscdex: :S [20:30] _announcer: Twitter: "Damn so refreshing things node.js is when you sit on a Java project on a daily basis .." [no] -- Christian H. Mosveen. http://twitter.com/kapteinmomo/status/20652791065 [20:31] micheil: What do people think? https://gist.github.com/89418aed1fe5b4e49f17 [20:31] mscdex: bradleymeck where are you!?!?111oneone [20:31] mscdex: !seen _frankie [20:31] mscdex: :p [20:31] knuckolls has joined the channel [20:32] mape: Hmmm, The following publicly cacheable, compressible resources should have a "Vary: Accept-Encoding" header [20:32] mape: never seen that one before [20:33] jblanche has joined the channel [20:36] joshbuddy has joined the channel [20:36] admc has joined the channel [20:38] CIA-77: node: 03Ryan Dahl 07master * r5033da7 10/ TODO : Add TODO list items - http://bit.ly/9XnFpS [20:38] mape: heh [20:40] mscdex: :> [20:41] mscdex: that CIA bot is slow [20:43] mscdex: i think [20:43] mscdex: :S [20:46] knuckolls has joined the channel [20:48] jsilver has joined the channel [20:49] knuckolls has joined the channel [20:51] rnewson has joined the channel [20:51] rnewson has joined the channel [20:53] maritz has joined the channel [20:55] shachaf has joined the channel [20:55] sveimac has joined the channel [20:57] jsilver has joined the channel [20:58] _announcer: Twitter: "Just upgraded my Soundex algorithm for Node.js, its about 80% faster than the PHPJS version. Testcase: http://is.gd/e96g4 Fun stuff." -- Arnout Kazemier. http://twitter.com/3rdEden/status/20654179807 [20:59] _announcer: Twitter: "having fun with rebuilding pinboard on nodejs/expressjs and ndistro http://tinyurl.com/3ybpejy good work all round @tjholowaychuk" -- Robbie Clutton. http://twitter.com/robb1e/status/20654257726 [21:01] sztanpet has joined the channel [21:01] femtooo has joined the channel [21:02] satori_ has joined the channel [21:02] hellp has joined the channel [21:04] x_or has joined the channel [21:12] maushu has joined the channel [21:14] knuckolls_ has joined the channel [21:20] pufuwozu has joined the channel [21:23] bradleymeck has joined the channel [21:27] aurynn has joined the channel [21:29] _announcer: Twitter: "GeddyJS, web framework for node.js - http://geddyjs.org/" -- Ahmad Gozali. http://twitter.com/gozali/status/20655805896 [21:32] iaurynn has joined the channel [21:32] _announcer: Twitter: "Ayo shubuh eye, fuck tour, RT @ gozali: GeddyJS, web framework for node.js - http://geddyjs.org/" [tr] -- cak ali fikri chobil. http://twitter.com/chobilgaz/status/20656012216 [21:35] Gruni has joined the channel [21:37] astrolin has joined the channel [21:38] mape: eh, what tour? [21:39] ceej has joined the channel [21:42] SvenDowideit has joined the channel [21:46] daleharvey has joined the channel [21:48] sztanphet has joined the channel [21:50] panzi has joined the channel [21:50] jchris has joined the channel [21:50] panzi: is there a way to find out if the current script is run as a module or as the main script? like in python there is "if __name__ == '__main__': ..." [21:51] panzi: also is there a way to find out the version of node.js? [21:52] panzi: oh the later I just found [21:52] dnolen has joined the channel [21:58] xycat has joined the channel [22:02] ThePub has joined the channel [22:02] ThePub1 has joined the channel [22:08] _announcer: Twitter: "One great thing that got me into Rails was the 10 minute wiki tutorial - A primer i have not found with any node.js framework" -- James Urquhart. http://twitter.com/sjamesu/status/20657908110 [22:08] FransWillem has joined the channel [22:09] fod has joined the channel [22:11] _announcer: Twitter: "forgot # node.js tag for http://bit.ly/chPBOa" [fil] -- RyanGahl. http://twitter.com/RyanGahl/status/20658036537 [22:11] ThePub has joined the channel [22:13] bradleymeck has joined the channel [22:14] _announcer: Twitter: "@sjamesu point being... primers exist (many) - also, IRC is a great place to ask questions #node.js" -- RyanGahl. http://twitter.com/RyanGahl/status/20658206326 [22:15] maushu has joined the channel [22:15] maushu: Crap, I really need a vacation. [22:15] mephux has joined the channel [22:17] ryan_gahl: what the fuck is "vacation"? ^^ [22:17] ryan_gahl: ACTION needs one as well [22:17] mape: ryan_gahl: it means "work when you feel like it" [22:18] ryan_gahl: oh... not "scramble to migrate production servers to EC2 on a Sunday because biz managers pushed back when you said it should be done months ago and then suddenly rinkdinky host has meltdown so now it's a priority?" [22:19] mape: hehe [22:19] ryan_gahl: ACTION not enjoying being only tech person in startup right now [22:20] _announcer: Twitter: "@natted you might be interested in this http://nodejs.org/" -- Daniel Eberhardt. http://twitter.com/Daniel/status/20658546469 [22:21] sztanpet has joined the channel [22:21] tmpvar: has anyone successfully used mongodb-native? [22:22] tmpvar: I'm guessing there has to be atleast one person lol [22:24] stride: hehe [22:24] tmpvar: it seems like its enforced that you have a collection before you can run a .find() or maybe I'm misreading the docs [22:27] justin_ has joined the channel [22:28] davidwalsh has joined the channel [22:28] mape: tmpvar: jup [22:29] mape: I usally do: db.open( function (err, db) { db.collection('companies', function (err, collection) { companiesCache = collection; }); }); [22:30] satori_: So i wake up this morning to find that P != NP. That doesn't happen every day :P [22:30] mape: and then I just use companiesCache.find({}, function(err, cursor){cursor.toArray et cetc}) [22:31] SvenDowideit has joined the channel [22:31] mape: satori_: so what will that mean? or change [22:31] satori_: uge for comp csi [22:31] satori_: Huge [22:31] satori_: if it pans out and if verified [22:31] marshall_law_ has joined the channel [22:31] stride: satori_: hehe :) yeah [22:31] satori_: http://www.claymath.org/millennium/P_vs_NP/ [22:32] stride: but papers on that are released every now and then, I'm curious on a formal peer review process [22:32] satori_: This time even Stephen Cook is impressed [22:32] tmpvar: mape, ah, that makes sense.. I was confused, thanks :) [22:32] satori_: and he first formalize the problem in the 60's [22:32] stride: yeah, read that. and the source being HP research at least sounds credible [22:33] satori_: I wish I could understand the math [22:33] mape: satori_: so more or less just means it is hard to calculate those kinda thigns? [22:33] mape: *things [22:33] malkomalko has joined the channel [22:33] malkomalko: howdy everybody [22:33] stride: yeah, my BSc doesn't cover weird 100 page math proofs :) [22:34] satori_: It's more to do with computers can be used *at all* to solve some problems (in the lifetime of the universe) [22:34] mape: satori_: then just screw that and have a guess? ;) [22:34] stride: that's what they did up to this point :) [22:34] satori_: hehe. Thats what compsci has been doing for 60 yrs :) [22:34] satori_: it has massive implications for cryptography too [22:38] jesusabdullah: The millennium problem I want to see solved is the Navier-Stokes one [22:38] mape: which is attached in 10pt and 12pt fonts [22:38] mape: <3 just wished he used comic sans [22:38] stride: hah [22:38] satori_: lol. [22:39] satori_: Proving something in smaller fonts is a much more difficult task. [22:40] stride: reminds me of one of my high school teachers, "your text is too long, make the font smaller" [22:40] satori_: ACTION finished school too long ago to ever hand anything in digitally [22:41] mape: satori_: should just print a black page and tell him to get better glasses [22:41] mape: *stride [22:41] satori_: My highschool pc was an amstrad 33Mhz PC [22:41] satori_: with a turbo button! [22:41] stride: I wish I would've had that idea back then :) [22:42] stride: satori_: nice, think I was 12 the last time I saw a PC with a turbo btn [22:43] ajsie has joined the channel [22:43] satori_: I wanted an amiga :( [22:49] tmpvar: hrm, what am I doing wrong here? I keep getting a 404 on line 22 -:: http://gist.github.com/514654 [22:50] ashleydev has joined the channel [22:53] ludde has joined the channel [22:54] Dmitry1 has joined the channel [22:55] siedrix has joined the channel [22:56] siedrix: hi, im trying to deploy node to a server, is there a correct way to do it? [22:56] sztanphet has joined the channel [22:56] jbrantly has joined the channel [22:57] tk: siedrix: thats kinda like asking if there is a correct way to start a car... [22:57] ryan_gahl: except that there is a correct way to start a car :) [22:58] tk: ryan_gahl: and I'm sure there are wrong ways to deploy node too :P [22:58] siedrix: i know there are a couple of bad ones... [22:58] ryan_gahl: yeah, like cygwin :) [22:59] mape: pipe it through php [22:59] tk: ryan_gahl: the point was the answer is "yes" to both questions :P [22:59] siedrix: but there are some better way that "$ node index.js"? [22:59] deepthawtz has joined the channel [23:00] mape: monit god? [23:00] ryan_gahl: tk: point taken - i took it more like "no, there is no ONE correct way" [23:00] tk: ryan_gahl: heh [23:03] sztanpet has joined the channel [23:03] stride: upstart was recommended here before [23:03] daleharvey: hmm [23:03] daleharvey: do included libraries export objects / functions? [23:04] _announcer: Twitter: "Great article from @jkreeftmeijer on node.js and web sockets (http://bit.ly/9LfYrp)" -- Jason Smale. http://twitter.com/jwswj/status/20661075323 [23:04] daleharvey: seems a bit of a shame, that would make them not work particularly nicely if they were to be included client side? [23:04] tmpvar: hrm, so node-mongodb-native doesnt pass all of its tests on 1.6.0 [23:04] stride: client side a.k.a. browser? they are not intended for that use anyway [23:05] tmpvar: ACTION punches the monitor [23:05] siedrix: because i found this tutorial with upstart and monit... http://dailyjs.com/2010/03/15/hosting-nodejs-apps/ [23:05] mape: tmpvar: update seems wonky, adds a duplicate when i tried it last week, or I'm not using mongo properly [23:05] daleharvey: stride: so you cant share utility libraries, and constants between server and client? [23:06] stride: daleharvey: other node instances can load the same built-in libraries if you mean that [23:06] tmpvar: i guess I could just use dirty for this [23:06] tmpvar: or similar [23:06] _announcer: Twitter: "Even though node.js isn't available on Windows it still get lots of traction. Good thing I guess." -- Carl Byström. http://twitter.com/cgbystrom/status/20661226709 [23:06] daleharvey: basically, I have http://pastebin.me/064be4ec6a57581341eccd9d3ae253a7 and would like to have those functions available between the browser and through node [23:07] mape: Even though it isn't on Windows.. Can't imagine developing on windows :S [23:07] stride: that looks pretty generic, you should be able to load that in a browser as well, though I don't know if that's your setting [23:07] satori_: node work on windows ok with cygwin doesn;t it? [23:08] stride: daleharvey: within node it would have to set exports.Util to your Util function [23:08] pquerna: mape: git sux on windows :| [23:08] pquerna: and most things do. [23:08] mape: what doesn't+ [23:08] mape: *? [23:08] pquerna: ACTION is almost done with a windows project in c+lua [23:08] satori_: lol. I reckon Visual Studio is still the best IDE i have ever used [23:08] pquerna: well, a *nix project, getting ported to windows :| [23:09] tmpvar: daleharvey, something like: (function(public) { public.Util = { /* ... */ }; }((typeof window === "undefined") ? module.exports : window)); [23:09] _announcer: Twitter: "NodeGame: Shooter - Asteroids like multiplayer using Node.js and WebSockets http://ff.im/oW1xG" -- antest. http://twitter.com/antest/status/20661407614 [23:10] daleharvey: ah cool, thats nice, got scared there for a second :P [23:10] pquerna: satori_: i agree. it is. but i've spent too long getting used to unix tools. Visual Studio is a grat IDE. Windows is just.. different. Not always bad, but its not really "getting closer" to linux/osx type things over time, which is frustraiting building portable software. [23:11] stride: windows development and visual studio got much too .Net centric the last years for my taste :/ [23:11] daleharvey: as for the format of the export, would that look like var Util = require("util.js"); Util.Util.randStr() ? (currently getting an error trying plain Util.randStr() [23:11] tmpvar: Util = require("util").Util [23:11] stride: var Util = require('util'); Util.randStr() I guess [23:11] mape: daleharvey: you can use modules.exports [23:12] stride: meh :) [23:12] daleharvey: ah brilliant, thanks [23:12] Sami_ZzZ has joined the channel [23:12] isaacs has joined the channel [23:15] tmpvar: isaacs, I think you should keep the admin party around for a while in npm [23:15] isaacs: tmpvar: really? [23:15] isaacs: why's that? [23:16] tmpvar: well, I have a tendency as of late to grab peoples tarballs and push them up there [23:16] isaacs: heh [23:16] jesusabdullah: What's the admin party? [23:16] isaacs: tmpvar: you know, you can do npm owner add [23:16] mape: admin party sounds like fun [23:16] tmpvar: isaacs, I did not know that [23:16] tmpvar: owner is an email? [23:16] isaacs: no, owner is their username [23:17] mape: does that transfer the ownership or add? [23:17] isaacs: mape: adds [23:17] mape: k [23:17] isaacs: mape: you can do npm owner rm to remove it [23:17] isaacs: so you can add them, then delete yourself. [23:17] tmpvar: isaacs, I like it [23:17] mape: can I remove myself without adding anyone else? [23:17] tmpvar: too bad we couldnt infer that from a repo [23:19] lachlanhardy has joined the channel [23:25] _announcer: Twitter: "Looking forward to trying out Geddy.js - node.js web framework: http://geddyjs.org/" -- Anthony Mann. http://twitter.com/MrNibbles/status/20662378901 [23:26] malkomalko has joined the channel [23:27] pufuwozu has joined the channel [23:31] tmpvar: mongoose works, thank god. [23:31] tmpvar: honestly thought I was going insane there [23:38] justin_ has joined the channel [23:39] amuck has joined the channel [23:40] nano` has joined the channel [23:43] phiggins has joined the channel [23:45] Tim_Smart has joined the channel [23:45] steadicat has joined the channel [23:47] mattly has joined the channel [23:56] Tobsn: geddy ha [23:58] Tobsn: mongodb is missing in the example [23:59] daleharvey: is there a nice way to serve files with the correct mime type