[00:02] ShizWeaK_: lightharut: are you changing from the default port of 8080? [00:03] ryah_: sigh [00:04] ryah_: depressing refactor is depressing [00:05] piscisaureus: ryah_: that aint nothing compared to debugging heap corruption [00:06] piscisaureus: keep up the good work :-) [00:13] kubrow has joined the channel [00:19] bmavity has joined the channel [00:20] brianleroux has joined the channel [00:24] briznad has joined the channel [00:26] yhahn has left the channel [00:26] kawaz_air has joined the channel [00:28] JimBastard has joined the channel [00:31] skm has joined the channel [00:32] shimondoodkin has left the channel [00:35] dgathright_ has joined the channel [00:35] nodejs has joined the channel [00:36] nodejs has left the channel [00:37] dgathright_ has joined the channel [00:38] turutosiya has joined the channel [00:41] softdrink has joined the channel [00:42] kawaz_air has joined the channel [00:43] kawaz_work has joined the channel [00:45] charlenopires_ has joined the channel [00:47] miccolis has joined the channel [00:48] ChrisPartridge has joined the channel [00:48] bingomanatee has joined the channel [00:48] nodejs has joined the channel [00:48] techwraith: Does https work in 2.3? [00:49] techwraith: For a http client, not server, sorry [00:50] ryah_: techwraith: no [00:50] nodejs: this is a total newie question [00:50] nodejs: does anyone know how to change your nickname? [00:50] Pilate: /nick somenick? [00:51] jdalton has joined the channel [00:51] nodejs: awesome, thank you! [00:52] binarypie has joined the channel [00:52] techwraith: ryah_: is there a way to run a curl command within node? [00:52] Pilate: other than .exec? [00:52] ryah_: techwraith: start it as a subprocess [00:53] ryah_: require('child_process').spawn('curl') [00:53] jdalton has left the channel [00:53] defmacro has left the channel [00:54] cronopio has joined the channel [00:55] piscisaureus: ryah_: ping [00:55] techwraith: Ryah, Pilate: Thanks! [00:55] ryah_: piscisaureus: yes? [00:56] piscisaureus: ryah_: I fixed the last bugs, so there's stuff to pull [00:56] piscisaureus: do it when you feel like it [00:56] piscisaureus: ryah_: do you ccare what I work on next? [00:57] Rotham has joined the channel [00:57] ryah_: im not going to get to the colors in inspect today [00:57] Rotham: yo [00:57] ryah_: feel free to take it [00:57] guid_ has joined the channel [00:57] piscisaureus: ryah_: that is ok. that's it? [00:58] Rotham: anyone ever try to work node.js with PyV8? [00:58] ryah_: *shrug* [00:58] ryah_: nothing from my end, i suspect you still have lots of broken tests [00:59] piscisaureus: ryah_: there's really too much to be done :-/ [00:59] piscisaureus: I hate fixing tests [01:00] boaz has joined the channel [01:00] postwait: ryah_: have you tested IPv6 much in node? [01:01] ryah_: postwait: no [01:02] postwait: ryah_: ok :-) [01:02] ryah_: ipv6 is never going to be used anyway, so doesn't really matter so much [01:02] postwait: ha. [01:02] softdrink: *sigh* i'm gonna have to write my own damned minecraft clone, aren't i? [01:02] postwait: It already has decently wide deployment. [01:02] charlenopires has joined the channel [01:02] ryah_: when it gets to be 1000th of the internet, i'll care [01:03] postwait: But, as always, we are always about 10 years behind Japan. [01:03] shiawuen has joined the channel [01:03] postwait: So.. I give it about 3-4 more years and you'll care. [01:03] ryah_: *a thousandth [01:03] jchris has joined the channel [01:03] jchris has joined the channel [01:03] postwait: ARIN is set to start refusing CIDR assignments in May 2011... so. [01:03] ryah_: heard that before [01:03] postwait: They're all out :-) [01:04] ryah_: heard the same thing in 1997 [01:04] ryah_: ipv4 forever [01:04] postwait: that it would be out in 2011? their projections weren't that good then :-) [01:04] postwait: Ha. [01:04] postwait: I'll call back later. [01:04] ryah_: nat + ipv4 [01:04] ryah_: = the future [01:05] ryah_: but, node should be ipv6 capable [01:05] ryah_: just hasn't been tested, obviously [01:05] Pilate: softdrink: why would you do that? [01:05] ryah_: since no one uses ipv6 :) [01:07] blueadept has joined the channel [01:07] konobi: ipv6++ [01:07] v8bot: konobi has given a beer to ipv6. ipv6 now has 1 beers. [01:07] ryah_: postwait: https://github.com/ry/node/blob/e6e6e87463d4b1d3d8d5c129e4d008d35a1b5463/test/simple/test-net-pingpong.js#L108 [01:08] ryah_: postwait: that's about the extent of the testing... [01:08] postwait: does it pass? [01:08] ryah_: sure [01:08] postwait: you're done dude. All set. [01:08] postwait: :-D [01:08] ryah_: yeah right :) [01:09] postwait: for TCP and UDP there isn't much internals more. [01:09] postwait: It's all the f'in apps that expect and IP and only resolve to A instead of both A and AAAA records. [01:09] ryah_: i'm sure the URL library breaks on ipv6 addresses, for example [01:09] postwait: but... that's not so much a core node problem at all. [01:09] zentoooo has joined the channel [01:09] postwait: Have you thought about pulling in the urlparser from code.google.com? [01:09] postwait: It's C++... it'd work well in node core. [01:10] ryah_: our's is pretty good [01:10] postwait: they just released it. [01:10] postwait: (and it, of course, supports IPv6) [01:10] davida has joined the channel [01:10] postwait: We'll test some IPv6 stuff soon... [01:10] postwait: and pull req any fixes. [01:12] sprout has joined the channel [01:15] amerine has joined the channel [01:16] stepheneb has joined the channel [01:16] charlenopires_ has joined the channel [01:20] saikat has joined the channel [01:23] richcollins has joined the channel [01:25] techwraith: ryah: So just to clarify, in Node 0.2.3, you can't make https requests, right? [01:26] jashkenas has joined the channel [01:27] ryah_: techwraith: not without problems [01:27] ryah_: techwraith: there is no version of node where https client has worked well [01:27] jesusabdullah: How close are you guys to having perfected that? [01:28] tmzt: softdrink: probably [01:28] daniellindsley has joined the channel [01:28] postwait: ryah_: do you know if it is just https client or the SSL layer.. [01:29] piscisaureus: ryah_: [01:29] postwait: I ask because we have an SSL (non-HTTP) client in node 0.2.5 and it has no service issues. [01:29] piscisaureus: process.stdout.setStyle('color', 'red'); [01:29] piscisaureus: process.stdout.setStyle('color', 'default'); [01:29] piscisaureus: process.stdout.setStyle('intensity', 'bold'); [01:29] piscisaureus: process.stdout.setStyle('intensity', 'normal'); [01:29] piscisaureus: process.stdout.setStyle('intensity', 'default'); [01:29] piscisaureus: ? [01:29] mikew3c has joined the channel [01:29] skm has joined the channel [01:30] ryah_: piscisaureus: looks good [01:30] ryah_: piscisaureus: the ssl layer [01:30] ryah_: er [01:30] ryah_: postwait: the ssl layer [01:31] rauchg_ has joined the channel [01:31] SubStack: ACTION is in the city trying to stay awake [01:31] SubStack: I'll see some of you soon at the meetup! [01:31] piscisaureus: here comes the ssslayer B( [01:33] postwait: ryah_: we've just been lucky then -- I hope to remain so. [01:33] iszak has joined the channel [01:34] jesusabdullah: SubStack: Should've slept instead of drawing pictures of javascript developers! [01:34] jesusabdullah: ;) [01:34] dgathright_ has joined the channel [01:34] SubStack: I regret nothing! [01:34] jesusabdullah: tsk! [01:36] jesusabdullah: Ugh, I don't want to go outside again >_< [01:37] ianward has joined the channel [01:37] jesusabdullah: ACTION mans up [01:37] ryah_: http clients are basically impossible things... [01:37] SubStack: jesusabdullah: hah it's like 20C out or some shit here [01:39] charlenopires has joined the channel [01:40] jakehow has joined the channel [01:40] shiawuen has joined the channel [01:40] amerine has joined the channel [01:45] EyePulp has joined the channel [01:48] dave has joined the channel [01:48] dave: hello? [01:49] Guest90708 has left the channel [01:49] Guest90708 has joined the channel [01:51] clarkfischer: hi dave [01:52] zemanel has joined the channel [01:52] pignata has left the channel [01:53] perlmonkey2 has joined the channel [01:53] futuremint: clarkfischer: could you answer a question about expresso? [01:54] tlrobinson has joined the channel [01:57] clarkfischer: Probably not. [01:57] futuremint: k [02:01] abstractj has joined the channel [02:04] creationix has joined the channel [02:06] futuremint: ah, figured it out, apparently http tests hang expresso -> https://github.com/visionmedia/expresso/issues#issue/31 [02:06] alex_b has joined the channel [02:09] bingomanatee_ has joined the channel [02:09] davidascher has joined the channel [02:10] dspree has joined the channel [02:10] dspree has joined the channel [02:10] derferman has joined the channel [02:12] gf3` has joined the channel [02:14] pydroid has joined the channel [02:14] skm has joined the channel [02:15] c4milo1 has joined the channel [02:16] benburkert has joined the channel [02:17] piscisaureus: ryah_: when should you create a HandleScope, and when can you leave it out? [02:18] pedrobelo has joined the channel [02:26] webr3 has joined the channel [02:27] andrewfff has joined the channel [02:31] enotodden has joined the channel [02:32] rauchg_: ryah_: [02:32] rauchg_: in terms of precision [02:32] rauchg_: are setTimeout(, 2) and setTimeout(, 5) accurate [02:32] rauchg_: or do we have this problem http://ejohn.org/blog/accuracy-of-javascript-time/ [02:35] bingomanatee_ has joined the channel [02:35] elux has joined the channel [02:35] bingomanatee_ has joined the channel [02:36] benburkert has joined the channel [02:36] creationix: rauchg_: I know it's not that bad [02:36] creationix: I benchmark my server results [02:36] pedrobelo has joined the channel [02:37] creationix: and usually get values of 1, 2, or 3 ms [02:39] pedrobelo has joined the channel [02:42] dyer has joined the channel [02:43] Qbix1 has joined the channel [02:43] techwraith has left the channel [02:45] creationix: anyone here have experience with clock syncronization [02:46] creationix: using an evented database like couchdb [02:46] creationix: and node of course ;) [02:47] langworthy has joined the channel [02:47] tonymilne has joined the channel [02:48] halfhalo: no, but i'm on a couch [02:48] halfhalo: :p [02:50] bingomanatee_: whats the status of SSL support for node [02:51] ryah_: rauchg_: it tries to be [02:51] ryah_: bingomanatee_: improving [02:52] bingomanatee_: I'm at the meetup in SF ... people are asking [02:53] ryah_: piscisaureus: when you create Local handles [02:53] ryah_: bingomanatee_: i didn't know about the meet up :/ [02:54] bingomanatee_: well now you know -- its on meetup.com [02:54] ryah_: bingomanatee_: how many people? [02:54] bingomanatee_: 7 [02:54] piscisaureus: ryah_: otherwise don't, or it doesn't really matter [02:54] piscisaureus: ? [02:54] bingomanatee_: 6 [02:54] bingomanatee_: its the other meetup- the one I don't run :D [02:54] ryah_: piscisaureus: i don't think it's harmful if you have extra ones [02:55] bmizerany has joined the channel [02:55] piscisaureus: ryah_: ok. thnx. [02:55] piscisaureus: ryah_: I'm giving up now btw, should give you some rest :-) [02:56] ryah_: piscisaureus: i'll merge your patches soon [02:56] piscisaureus: ryah_: ok. thnx. I did the setColor/setIntensity thingie for windows [02:56] piscisaureus: ryah_: but util.inspect is more complex than I thought it would be :-( [02:59] rwaldron has joined the channel [03:01] JusticeFries has joined the channel [03:01] tilgovi has joined the channel [03:01] cronopio has joined the channel [03:02] pyrotechnick has joined the channel [03:02] dgathright_ has joined the channel [03:02] mscdex: 256-color terminals ftw [03:02] pyrotechnick: hey lads [03:02] pyrotechnick: i have a problem with this function [03:02] pyrotechnick: https://github.com/gyordanov/node-maxmind/blob/master/maxmind.cc#L101 [03:03] pyrotechnick: what's the proper way of coverting from a c string to a node string [03:03] pyrotechnick: without using that shitty function that's causing me a headache today [03:03] derferman has joined the channel [03:07] mjr___ has joined the channel [03:07] Yuffster has joined the channel [03:07] mscdex: pyrotechnick: String::New(cstr); ? [03:07] piscisaureus: String::New(blah) ? [03:07] richcollins has joined the channel [03:07] mscdex: heh [03:07] pyrotechnick: really? [03:07] pyrotechnick: why are they even using that method then? [03:07] piscisaureus: which? [03:07] pyrotechnick: can i just safely remove it? [03:08] pyrotechnick: https://github.com/gyordanov/node-maxmind/blob/master/maxmind.cc#L101 [03:08] pyrotechnick: that one [03:08] pyrotechnick: https://github.com/gyordanov/node-maxmind/blob/master/maxmind.cc#L151 [03:08] piscisaureus: oh. apparently that converts between encodings [03:08] mscdex: yeah [03:08] pyrotechnick: between ascii and unicode [03:08] xthsky has joined the channel [03:08] pyrotechnick: from ascii to unicode i imagine [03:08] piscisaureus: well, strictly ascii is a subset of unicode [03:09] pyrotechnick: iso 8859 -> utf8 right? [03:09] pyrotechnick: yeah [03:09] piscisaureus: but iso 8859_1 isnt [03:09] pyrotechnick: i just want to not use that method [03:09] pyrotechnick: this is in production and for some reason that method is failing today [03:09] pyrotechnick: node: symbol lookup error: /home/PROJECT/node-maxmind/build/default/maxmind.node: undefined symbol: _iso_8859_1__utf8 [03:10] mscdex: it looks like it's defined by the geoip lib [03:10] piscisaureus: pyrotechnick: that is just not a normal libc function [03:10] mscdex: maybe... [03:10] pyrotechnick: i know it's from GEOIP [03:11] pyrotechnick: i dont know why they're using it [03:11] dyer has joined the channel [03:11] dyer has joined the channel [03:12] piscisaureus: pyrotechnick: maybe because they expect some stuff to contain special chars in iso 8859_1 ... ? [03:12] pyrotechnick: mmm it does [03:12] piscisaureus: i don't know where dthe data comes from [03:12] pyrotechnick: it comes from geoip, theyre csv and or dat files [03:13] pyrotechnick: encoded with 8859-1 which is just ascii + some latin characters [03:13] pyrotechnick: do you think i could use https://github.com/bnoordhuis/node-iconv [03:13] piscisaureus: but if you have like "vlädivóstoçk" encoded in 8859, then String::New will fail or result in invalid characters [03:13] pyrotechnick: instead of that method? [03:15] piscisaureus: well these are iconv buildings so you can use them in javascript [03:15] piscisaureus: in C-land you would just use iconv proper [03:15] pyrotechnick: libiconv? [03:15] pyrotechnick: i am in c [03:15] pyrotechnick: in that maxmind.cc [03:15] pyrotechnick: so whatever is easiest [03:16] pyrotechnick: i had a massive google but iconv is undocumented as hell [03:16] piscisaureus: man iconv(3) ? [03:16] m0 has joined the channel [03:16] amerine has joined the channel [03:16] piscisaureus: http://linux.die.net/man/3/iconv [03:17] fairwinds: hi. is anyone aware of a node ftp client [03:17] pyrotechnick: github.com/ry/node/wiki/modules [03:17] mscdex: fairwinds: https://github.com/seanhess/node-ftpclient [03:17] pyrotechnick: pretty sure i've seen one [03:17] pyrotechnick: yep [03:18] fairwinds: cool. has anyone given it a go? [03:19] mscdex: not i [03:19] mscdex: it's been many moons since i've used ftp [03:21] saikat has joined the channel [03:22] yhahn has joined the channel [03:22] pyrotechnick: man iconv is NOT easy to use [03:22] fairwinds: mscdex: yeah me too but have some folks that still use to move some records around [03:25] warz has joined the channel [03:25] warz-pc has joined the channel [03:25] micheil has joined the channel [03:26] micheil: JimBastard: you about? [03:27] noahcampbell has joined the channel [03:27] cronopio has joined the channel [03:28] visionik has joined the channel [03:29] visionik: Hello - any Nodejitsu people around? [03:29] Aria has joined the channel [03:29] micheil: well, JimBastard is one, as with tmpvar [03:29] micheil: but both seem absent [03:31] micheil: there's also indexzero (absent), cloudhead.. etc, https://github.com/nodejitsu; but I think they are all offline atm [03:31] visionik: Ok thank you for the info and help. [03:31] jimt has joined the channel [03:32] kiddphunk has joined the channel [03:32] Kinbote has joined the channel [03:33] Kinbote: question: is there any way to run node.js itself inside a browser? so it can run client side as a kind of http proxy between a browser and remote servers? [03:33] indexzero has joined the channel [03:33] indexzero: sup cloudhead [03:34] Kinbote: i want to make a way to run a layer on top of web sites to do kind of what browser extensions can do to modify arbitrary page content [03:34] cloudhead: indexzero: visionik asking for nodejitsu peeps [03:34] cloudhead: visionik: ^ [03:34] indexzero: visionik: sup [03:34] visionik: hi guys [03:34] yozgrahame has joined the channel [03:35] davidascher has joined the channel [03:37] dnolen has joined the channel [03:37] jimt has joined the channel [03:38] cloudhead: visionik: indexzero == nodejitsu [03:38] visionik: cloudhead: thank you [03:39] piscisaureus has joined the channel [03:40] dida has joined the channel [03:41] dylang: i npm uninstall'ed on no.de, is there a way to get it back? i tried the normal way and it doesn't find npm after a "successful" install [03:42] dida: anyone tried crab.js before? [03:42] dida: I got the same error like this https://github.com/kossnocorp/crab.js/issues#issue/2 [03:43] perlmonkey2: ejs vs jade? Is there a clear winner? [03:44] kiddphunk has joined the channel [03:46] davidascher has joined the channel [03:47] ron_frown has joined the channel [03:51] skm has joined the channel [03:53] softdrink has joined the channel [03:57] NemesisD has joined the channel [03:57] NemesisD: pkrumins: ping [03:58] NemesisD: having some trouble installing base64@1.0.1 as a dependency to zombie.js. seems to fail on node-waf configure build [03:58] softdrink has joined the channel [03:58] indexzero: NemesisD: I never understood that why use that module anyway [03:59] indexzero: NemesisD: it's like 10 lines of pure javascript + node Buffers https://gist.github.com/718390 [04:00] SubStack: NemesisD: use 1.0.1 for node v0.2 and 2.0.0 for node v0.3 [04:00] NemesisD: oh i see [04:00] indexzero: substack: Why make a node add-on module though? Isn't the above implementation just the same? [04:00] NemesisD: i wonder if zombie has a 0.3 compatible version [04:00] indexzero: or is there magic background threading for large strings I'm not aware of [04:01] SubStack: indexzero: there are some subtle differences [04:01] SubStack: it matters for our own purposes [04:02] indexzero: substack: Go on, I'm intrigued now [04:02] SubStack: I forget exactly, ask pkrumins [04:03] softdrink has joined the channel [04:03] indexzero: substack: will do. Thanks [04:03] iszak has joined the channel [04:03] iszak has joined the channel [04:03] softdrink has joined the channel [04:04] SubStack: indexzero: have a pitch for nodejitsu? [04:04] indexzero: substack: "nodejitsu is a cloud platform-as-a-service and marketplace for node.js apps" [04:05] SubStack: told them! [04:07] pkrumins: here i am! [04:07] hij1nx: def interested in the diff between base64 module and js+node buffers [04:07] pkrumins: NemesisD: use 2.0.0 node-base64 [04:10] indexzero: pkrumins: So what are the differences between the add-on and a simple js-based implementation? [04:12] skm has joined the channel [04:16] aaronblohowiak has joined the channel [04:16] aaronblohowiak: any joyent people here? [04:16] dida: what does this error mean? Cannot find module 'watch_dir' [04:16] dida: http://pastebin.com/PBdrdTuW [04:17] aaronblohowiak: dida, watch_dir is not in your require paths [04:17] desaiu has joined the channel [04:17] dida: watch_dir is a node project? [04:17] isaacs has joined the channel [04:17] aaronblohowiak: i would guess, from your stack trace, that it is and that the crab project maintainer forgot to add it to dependencies [04:17] dida: it's not in npm list installed [04:18] dida: ic2 [04:18] dida: thanks [04:18] isaacs: dida: what's this your'e (not) installing? [04:19] dida: watch_dir [04:19] dida: and apparently it can't be installed using npm [04:19] dida: i got [04:20] dida: node.js:740 [04:20] dida: var cwd = process.cwd(); [04:20] dida: Error: No such file or directory [04:20] dida: at node.js:740:19 [04:22] isaacs: dida: what version of node? [04:22] isaacs: dida: it installs fine for me [04:22] dida: 0.2.6 [04:22] dida: npm install watch_dir [04:22] piscisaureus has joined the channel [04:23] hij1nx: indexzero: looks like the base64 module is mostly this... http://www.adp-gmbh.ch/cpp/common/base64.html [04:23] isaacs: dida: gist all the output, from the command you run to the end [04:23] jashkenas has joined the channel [04:24] dida: I think i'm on the wrong current working dir [04:25] dida: I couldn't install other package as well [04:25] dida: changed to other dir and it installs just fine [04:26] fangel has joined the channel [04:28] indexzero: hij1nx: substack told me there were subtle differences between pkrumins node-base64 and this: https://gist.github.com/718390 [04:29] hij1nx: indexzero: ah i see [04:29] razvandimescu has joined the channel [04:30] Wyverald has joined the channel [04:31] piscisaureus: isaacs: when I use npm, where do packages go and what symlinks are created? [04:31] tilgovi has joined the channel [04:31] piscisaureus: isaacs: are you here anyway? :=) [04:31] isaacs: hey, kinda [04:31] isaacs: what's up? [04:31] isaacs: piscisaureus: npm help folders [04:32] piscisaureus: isaacs: I'm trying to figure out what it takes to make it run on windows :-) [04:32] isaacs: piscisaureus: yeah, i've been kinda thinking about that, as well [04:32] piscisaureus: isaacs: apparently you use symlinks that are not supported on windows yet [04:32] isaacs: yeah [04:33] isaacs: it is a major undertaking to move away from symlinks. [04:33] hij1nx: pkrumins: Rene's licence calls to include the whole header comment, not just the url. not that i really care, but his website did help me understand the source code a little better. [04:33] piscisaureus: isaacs: hmmm. it is not necessarily needed to move away from them [04:33] ryah_: piscisaureus: your line endings became screwed in your last commits [04:33] visionik has joined the channel [04:34] isaacs: piscisaureus: oh? [04:34] piscisaureus: isaacs: well, we will only support XP and up [04:34] c4milo1 has joined the channel [04:34] ryah_: piscisaureus: can you set your git to change those automatically? [04:34] isaacs: piscisaureus: xp has symlinks!? [04:34] piscisaureus: ryah_: ok. will look into that [04:34] isaacs: piscisaureus: i thought symlinks weren't until win7 [04:34] piscisaureus: isaacs: yeah. directory symlinks only. but they are kinda dangerous [04:34] tmzt: there's some good test cases for wine and reactos that might help quantify what windows versions support symlinks and to what degree [04:35] piscisaureus: isaacs: but the thing is [04:35] piscisaureus: explorer doesn't get it [04:35] isaacs: i see [04:35] piscisaureus: if you delete a symlinked folder from explorer, it will delete the contents of the target folder [04:35] isaacs: already there are some issues with some IDE plugins and stuff that try to map out folders without grokking lstat [04:36] piscisaureus: isaacs: stat is another problem, but that can be worked around. stat(/foo/bar/symlink) does lstat, actually [04:36] hosh_work has joined the channel [04:36] isaacs: piscisaureus: i'd be curious to know what actually fails. [04:37] isaacs: m. [04:37] ryah_: piscisaureus: git config --global core.autocrlf true [04:37] ryah_: piscisaureus: i think that's what you need... [04:37] isaacs: piscisaureus: i'd be curious to know what actually fails. i only actually use symlinks to dirs, except if youhave a bin that isnt' a node program. [04:37] konobi: piscisaureus: the symlinks are NTFS only thing, right? [04:38] piscisaureus: isaacs: there's no support in node for symlinks currently but it will fail anyway [04:38] piscisaureus: isaacs: yep [04:38] isaacs: piscisaureus: you mean there's no fs.symlink or fs.readlink in node-on-windows? [04:38] piscisaureus: no [04:38] piscisaureus: not currently [04:38] piscisaureus: because libc has no support for it, so I have to call the windows api itself [04:38] konobi: they're different from NTFS junction points too? [04:39] piscisaureus: a junction point is like a directory symlink, supported from win2k and up [04:39] isaacs: i see [04:39] piscisaureus: there are also 'real' symlinks from vista and up [04:39] piscisaureus: but it makes a distinction between file and directory symlinks [04:39] konobi: junction points were in win 2k as well, you just needed to download a client app to actually set them, iirc [04:40] isaacs: so, we could have: win2k+, "junctions" at fs.symlink/readlink, which only work on dirs, and then proper symlinks in vista+? [04:40] piscisaureus: isaacs: kinda [04:40] piscisaureus: yeah [04:40] isaacs: piscisaureus: oh, i also do symlinks for man and bin files to activate them. [04:41] piscisaureus: that wouldn't work on xp [04:41] piscisaureus: but hey, man files on windows? [04:41] isaacs: so you might have: /usr/local/bin/foo@1.2.3, foo@2.3.4, foo->foo@1.2.23 [04:41] ezmobius has joined the channel [04:41] isaacs: yeah, but bins are a bigger deal [04:41] isaacs: anyway, i could part with that. it's just a convenience [04:41] piscisaureus: hmm ( ... thinking ... ) [04:42] ajpiano has joined the channel [04:42] piscisaureus: isaacs: maybe for bins etc you could use hard links? [04:42] piscisaureus: you would just need to make sure the target exists [04:42] piscisaureus: before creating the link [04:43] isaacs: yeah [04:43] isaacs: i don't love hard links [04:43] piscisaureus: me neither [04:43] isaacs: in fact, i kind of hate them [04:43] piscisaureus: it would only apply to xp tho, for anything later symlinks are the way to go anyway [04:43] ShizWeaK_: ACTION waits for the pitchforks to come out [04:43] isaacs: they're magical, and not obvious [04:44] isaacs: ew ew ew ew, no, oh god no. [04:44] isaacs: idon't want to do version-sniffing [04:44] piscisaureus: what kind of bins are you talking about anyway [04:44] isaacs: $(which npm) [04:44] isaacs: ls -laF $(which npm) [04:44] isaacs: you'll see what i'm talking about [04:44] piscisaureus: ouch yeah [04:44] piscisaureus: maybe create a .bat file that points to the bin? [04:44] isaacs: i mean, i could use a different sort of shim, or a bat file, or whatever. [04:45] isaacs: yeah [04:45] isaacs: it could be done. [04:45] piscisaureus: it sucks I know [04:45] isaacs: i already wrap the fs module, though, i mean, patching one more function isn't SO bad. [04:45] isaacs: i could just change fs.readlink and fs.symlink to do different things, write a batch file and read it, or somethign [04:46] konobi: bad isaacs, bad! [04:46] konobi: ACTION slaps wrist [04:46] isaacs: konobi: I KNOW!! [04:46] isaacs: but it's windows, what are you going to do? [04:46] isaacs: it's the MSIE of operating systems [04:46] konobi: shoot anyone who says they care about it... make the world a safer and saner place [04:46] piscisaureus: If I completely agreed with that statement, I wouldn't be working on windows heh... [04:46] isaacs: konobi: yeah, but then i'd have ot shoot ryah_ and piscisaureus and they're such nice chaps [04:47] piscisaureus: but some stuff is broken I agree [04:47] isaacs: konobi: your heart is in the right place, though. [04:47] konobi: isaacs: sometimes someone has to take something for the team [04:47] konobi: =0P [04:48] piscisaureus: ryah: setting done. sorry about that :-( [04:48] isaacs: konobi: it actually should'nt require *that* much patching to make npm work on windows, if node builds there. [04:48] isaacs: but this symlink thing, it's a real pita [04:48] isaacs: i really <3 symlinks. [04:48] konobi: isaacs: I'd rather have the functions work in node core and hide the abstraction [04:48] piscisaureus: isaacs: I think there will be 3 issues: [04:48] aaronblohowiak: isaacs++ ++ ++ [04:48] aaronblohowiak: (for the MSIE of operating systems comment) [04:48] isaacs: aaronblohowiak: thanks :) [04:48] piscisaureus: - where does node look for stuff? like in %HOME%/somewhere ? [04:49] piscisaureus: - symlink [04:49] piscisaureus: - a nice way to install npm on windows [04:49] isaacs: piscisaureus: 1. that's a bigger topic. the module system path may go away completely in favor of something that's more deterministic and less flaky. [04:49] isaacs: 2. that's sad. but i think we can make it work. [04:49] tmzt: cygwin symlinks don't work? [04:50] tmzt: (the emulated ones) [04:50] piscisaureus: I don't want them [04:50] isaacs: 3. i can write a batch file to mimic the install.sh [04:50] bingomanatee_: Substack is showing off his browser emulator [04:50] isaacs: tmzt: npm already runs on cygwin [04:50] richcollins has joined the channel [04:50] isaacs: but cygwin is a pain [04:50] piscisaureus: cygwin is a pain and it is really slow [04:50] isaacs: windows users don't wanna use cygwin. they want a native program. [04:51] isaacs: they want unix, really, they just don't know it. [04:51] ossareh has joined the channel [04:51] piscisaureus: hehe [04:51] fangel has joined the channel [04:51] shaver: msys is a little better than cygwin [04:51] piscisaureus: well, everyday there are several ppl here asking 'hey I tried cygwin but this and that went wrong' [04:51] shaver: but very very little [04:51] piscisaureus: I don't want msys either [04:51] piscisaureus: just using it as a build environment [04:52] piscisaureus: and I want to switch to msvc badly bit it's hard to get node to compile there [04:52] tmzt: sure [04:52] shaver: oh [04:52] shaver: we use msys to drive the build system, which calls msvc [04:52] isaacs: msvc is a nice idea [04:52] isaacs: *ide [04:52] isaacs: i do kinda miss visual studio [04:52] shaver: the windows debugging tools are pretty amazing [04:53] tmzt: what's wrong with mingw and native win32 (without msys)? [04:53] isaacs: other than that, though, windows can go out behind the shed and die. [04:53] piscisaureus: tmzt: gcc on windows is a bad compiler. msvc produces better programs [04:54] piscisaureus: isaacs: yeah I don't think I really need to convice you but ... there are just too many ppl that want to use windows [04:54] langworthy has joined the channel [04:54] tmzt: I guess since node is c++ you would have api issues mixing the two [04:54] piscisaureus: isaacs: and for node to become really big you must cater those people [04:54] tmzt: (mozilla had the same thing) [04:55] piscisaureus: tmzt: are you with mozilla? [04:55] shaver: ACTION is [04:55] piscisaureus: ACTION knows [04:55] aaronblohowiak: I need to write a blog post: Dependency Injection in node. it will say "have your constructor take an optional options object that may contain overrides for your object's dependencies. DONE" [04:55] isaacs: piscisaureus: i'm convinced. just mourning. [04:55] shaver: ACTION knows too [04:55] isaacs: piscisaureus: expect various stages of grief. [04:55] isaacs: denial, anger, bargaining, etc. [04:55] piscisaureus: isaacs: hehe [04:55] piscisaureus: i don't want to be the windows evangelist here :-( [04:55] tmzt: piscisaureus: no, just followed the project [04:55] tmzt: for years :) [04:56] isaacs: piscisaureus: the great thing about using windows is you're uniquely qualified to hate it thoroughly [04:56] isaacs: really *appreciate* the ways in which it is to be despised [04:56] opengeard has joined the channel [04:56] isaacs: there is no wheel that windows does not reinvent. [04:56] isaacs: as a square. [04:57] cnu has joined the channel [04:57] piscisaureus: isaacs: that is exactly what garrett (the MS man) said :-) [04:57] tmzt: posix compatibility meant programs that didn't do anything worked [04:57] tmzt: anything that wanted to do something (like graphics output) failed [04:57] piscisaureus: isaacs: but I don't really hate windows programming in general [04:57] piscisaureus: only the ways things are done are sooo different [04:58] piscisaureus: but if node would drop posix support, libev and libeio could just go away [04:58] piscisaureus: because windows provides the stuff that it does natively in a pretty consistent way [04:58] tmzt: drop posix support? [04:58] isaacs: piscisaureus: if node dropped posix support, it'd lose everything that makes it awesome [04:58] tmzt: you mean just have native support for linux and windows? [04:59] isaacs: ok, gotta run [04:59] piscisaureus: tmzt: obviously we don't do that [04:59] piscisaureus: isaacs: goodbye [04:59] micheil has joined the channel [04:59] isaacs: piscisaureus: post an issue on the npm repo explaining your findings. [04:59] shaver: windows' async I/O support is so far ahead of Linux's, sadly [04:59] isaacs: i grunt and whine, but i do want to run on windows [04:59] piscisaureus: shaver knows what he is talking about :-) [05:00] shaver: piscisaureus: rarely [05:00] piscisaureus: isaacs: do that. warn me if ryah_ starts to look psycho. I'm afraid I pissed off ryah_ a little with the tty stuff [05:01] piscisaureus: shaver: well, you're just a manager right :-) [05:01] piscisaureus: you're doing pretty well for a manager [05:01] shaver: I've actually written code every day for the past week [05:01] shaver: mostly as a meditation [05:02] shaver: but yeah, mostly they keep me where I can't do too much damage [05:02] piscisaureus: shaver: contemplative code? [05:02] piscisaureus: sounds fun [05:02] shaver: travels over familiar terrain, etc. [05:03] piscisaureus: shaver: well, time for a change then. wanna do some node coding? :p [05:05] shaver: I'm writing some stuff in node, actually [05:05] konobi: more canadians invading the JS space... wmauahahaha [05:05] shaver: I made my move to the JS space 15 years ago, but yes [05:05] davidascher has joined the channel [05:06] konobi: and another [05:06] piscisaureus: shaver: but shouldn't you be eating your own dogfood? I mean node, that is really the competition [05:06] tmzt: shaver: rshaver? [05:06] heavysixer has joined the channel [05:06] shaver: piscisaureus: nah, JS is the winner here [05:06] shaver: tmzt: mshaver [05:06] konobi: vp engineering, mozilla... right? [05:06] shaver: yeah [05:06] tmzt: okay, I'm thinking of all the review tags [05:07] shaver: I mean, I harbour some lust for spidermonkey's generators and function expressions and destructuring in node [05:07] tmzt: I need to read brendens blog post [05:07] shaver: but if I really wanted I could probably find people to prototype nodemonkey (really a V8 API veneer over spidermonkey) [05:07] konobi: generators are funky... I just haven't found a good use for them [05:07] shaver: (because V8's API is way nicer) [05:08] konobi: yes... spidermonkey API is shockily nasty [05:08] shaver: it is...elderly [05:08] konobi: =0) [05:08] ryah_: shaver: doesn't v8 have a shim to jscore so that it fits into webkit? [05:08] ryah_: shaver: why not target that api - then you'd get both [05:09] ryah_: (i'm just assuming - i haven't looked at the code) [05:09] tmzt: ryah_: how much of node is new code and how much is v8? [05:09] shaver: ryah_: there's a shim, yeah [05:09] ryah_: tmzt: ? [05:09] shaver: ryah_: not a bad idea [05:09] ryah_: tmzt: all the non-js stuff is node :) [05:09] tmzt: I mean how does it break down [05:09] shaver: know anyone who wants to work on it? :-) [05:10] mjr___: tmzt: check out the repo, the directories are organized very cleanly. [05:10] konobi: shaver, you need to hire claes jakkobsen for that =0) [05:10] mjr___: tmzt: JS goes in lib, and C++ goes in src. [05:10] tmzt: I'm reading the v8 embed document at the moment [05:11] shaver: konobi: give me his email address [05:11] tlrobinson has joined the channel [05:11] piscisaureus: tmzt: it's useless [05:11] piscisaureus: sadly [05:11] tmzt: it makes less sense than jni [05:11] shaver: handles are sort of ugh [05:11] ryah_: tmzt: v8.h is the only documentation, but it's good [05:12] piscisaureus: ryah_: oh really? I should check it out ... [05:12] ryah_: piscisaureus: yeah, lots of helpful comments [05:12] piscisaureus: because that embedders guide covers only the basic stuff [05:12] piscisaureus: and it is still really a mystery to me what that magic ObjectWrap class exactly does [05:12] konobi: there's the C++ way of doing things... then there's the V8 way... then there's the mix between the two [05:13] piscisaureus: and cb_persist and that kind of stuff [05:13] tmzt: shaver: have you guys got xpcom mostly out of firefox 4 or what's up with that? [05:13] tmzt: haven't read pmo in months, too busy on other stuff [05:14] shaver: we use it less, I'm sure it'll always be there in some form [05:14] tmzt: this one might sound crazy, but could html ever replace xul in the ui? [05:14] shaver: doesn't sound crazy at all [05:14] shaver: sounds like a good work item for 2011 [05:15] shaver: need to get flexbox baked [05:15] shaver: a couple of other things [05:15] shaver: (like our l10n stuff) [05:15] tmzt: pretty awesome the way chrome works [05:15] shaver: yeah, I hear that a lot :-P [05:15] tmzt: I mean the way they use html through a dom like system right from the c++ [05:15] shaver: yeah [05:16] shaver: it's on my reading list [05:16] ryah_: piscisaureus: i don't like the color api either [05:16] tmzt: what about the stuff rdf is used for, extensions and blending menus together [05:16] ryah_: :) [05:16] CIA-89: node: 03kmillikin@chromium.org 07master * r7c28690 10/ (4 files in 4 dirs): (log message trimmed) [05:16] CIA-89: node: Fix an assertion failure in the full code generator. [05:16] CIA-89: node: We hit an assertion failure when we tried to record the AST ID of [05:16] CIA-89: node: the (shared) .arguments variable proxy more than once. This was hit [05:16] CIA-89: node: when we had multiple calls to the same parameter in a function that [05:16] CIA-89: node: used the arguments object. The fix is to not visit the subexpressions [05:16] CIA-89: node: of the (shared) property access expression. [05:16] CIA-89: node: 03Bert Belder 07master * r8ca0b9a 10/ src/node_child_process_win32.cc : Fix ev_async misuse in node_child_process_win32.cc - http://bit.ly/fwB5FK [05:16] CIA-89: node: 03Bert Belder 07master * ra763a4f 10/ src/node_stdio_win32.cc : Fix memory corruption bug on Windows - http://bit.ly/fsqouI [05:16] ryah_: piscisaureus: i was just too busy before to say so [05:16] shaver: RDF is just surface syntax now,, we don't use it internally for extension data or overlays [05:16] piscisaureus: ryah_: but then what do you like? [05:17] tmzt: shaver: same mechanism though? [05:17] piscisaureus: ryah_: and please tell me if you want me to shut up [05:17] ryah_: piscisaureus: stdout.setColor('red'); [05:17] shaver: not really [05:17] ryah_: piscisaureus: can we agree on that? [05:17] piscisaureus: yeah. [05:17] piscisaureus: I was thinking [05:17] ryah_: piscisaureus: the question is more about backgrounds and bold [05:17] piscisaureus: ryah_: no backgrounds pls [05:17] piscisaureus: nobody uses it anyway [05:17] ryah_: people use it [05:17] piscisaureus: ok [05:18] ryah_: but we can leave it out [05:18] konobi: status bars, menus, etc. [05:18] ryah_: i don't care :) [05:18] shaver: you need all the rgb.txt colours [05:18] shaver: stdout.setColor('cornflower') [05:18] piscisaureus: no no [05:18] piscisaureus: not on windows [05:18] ryah_: there's 16 colors [05:18] tmzt: shaver: what's flexbox? [05:18] piscisaureus: windows has 14 colors [05:18] konobi: tmzt: auto sizing elements that are deterministic [05:19] piscisaureus: umm 16 yeah [05:19] shaver: http://hacks.mozilla.org/2010/04/the-css-3-flexible-box-model/ [05:19] piscisaureus: ryah_: the thing is [05:19] tmzt: knuthisms for html? [05:19] piscisaureus: you want to make "bold" and "default" a color I thing [05:19] piscisaureus: think [05:19] shaver: setColor("red:bold") [05:19] shaver: setColor(":bold") // current colour, but bolder [05:19] piscisaureus: because on windows bold === bright white and on linux bold should be 'bold' in the default color [05:20] pquerna: just parse a css [05:20] pquerna: why not [05:20] shaver: setColor(":-bold") [05:20] ryah_: -_- [05:20] piscisaureus: ACTION pulls out his hair [05:20] Lorentz: woo boxes [05:20] shaver: well, actually [05:20] konobi: set("color: red; font-weight: bold" [05:20] shaver: setting a colour can involve reading a termcap file [05:20] shaver: so we want it to be async [05:20] pquerna: :) [05:20] konobi: ACTION ducks to avoid ryah_'s wrath [05:20] shaver: setColor("red", callback) [05:21] ryah_: ACTION leaves  [05:21] shaver: :-) [05:21] konobi: ryah_: real unix hackers use escape codes [05:21] piscisaureus: yeah but there is no support on windows [05:21] piscisaureus: so to cater both [05:21] mjr___: real unix hackers just use whatever the default color is. [05:21] AAA_awright_ has joined the channel [05:21] piscisaureus: stdout.setColor('\x1b[22;m'); [05:22] Lorentz: real unix hackers don't care about color [05:22] gkatsev: real hackers don't need a monitor [05:22] konobi: piscisaureus: node-colors, node-win32colors [05:22] konobi: *shrug* [05:22] pquerna: real unix hackers don't use node.js [05:22] mjr___: punch cards, paper tape, toggling in the bootloader on the front console, etc [05:22] piscisaureus: real unix hackers don't use unix [05:22] piscisaureus: they write only bootloaders in asm [05:23] pquerna: oh, i was going to say they use osx. [05:23] piscisaureus: nooooo [05:23] konobi: pquerna: OSX _is_ unix [05:23] piscisaureus: well maybe in the us they do [05:23] derferman has joined the channel [05:23] pquerna: This is Unix, I know that!, etc [05:23] shaver: I still have an Indy in my basement in Toronto [05:23] shaver: in case I have an emergency calling for ISDN and 3D glasses [05:23] pquerna: i'm looking for a 2nd one [05:24] pquerna: i want to make a table out of it [05:24] rauchg_ has joined the channel [05:24] shaver: nice [05:24] shaver: yeah, that case would make a righteous table [05:24] pquerna: like a coffee table. glass. [05:24] pquerna: etc [05:24] konobi: pizza box? [05:24] joeshaw: only if it projected onto the glass [05:24] pquerna: somehow some females dont' think it would be sweet in the living room [05:24] piscisaureus: ryah_: when really gone? [05:24] piscisaureus: stdout.setColor("default" | "bold" | "red" | "blue" | "brightred" | "brightblue" ... etc ) [05:26] mjr___: I would now like to drop a reference that proves I know an obscure thing about old SGI computers. [05:26] mjr___: too tired though [05:27] shaver: touche' [05:27] cnu has joined the channel [05:28] piscisaureus: why am I working on node again? it's 7:30 am! [05:28] tmzt: node.js is life [05:29] piscisaureus: oh I am blind too. Only 6:30 am [05:29] mjr___: I'm too tired on account of how OLD I am. [05:29] NemesisD: god selenium is so slowwww [05:29] mjr___: piscisaureus: is someone paying you to make node go on Windows? [05:30] piscisaureus: mjr___: someone used to be but no more [05:30] piscisaureus: it took too much time [05:30] mjr___: well, that sucks [05:30] piscisaureus: not like I didn't tell 'em :-) [05:30] AAA_awright has joined the channel [05:30] mjr___: It'll be pretty great to have node running on Windows for real, not just in totally broken cygwin. [05:31] xthsky has joined the channel [05:31] piscisaureus: maybe someone will pay me again [05:31] piscisaureus: but the question is what my priorities are for the next months [05:32] piscisaureus: I need to graduate :-( [05:32] mjr___: Yeah, I GUESS that's important. [05:33] pquerna: replllly [05:34] brainproxy: is it possible for 'end' to be emittend on an instance of http.ServerRequest prior to a listener for it being setup? and if so, will that listener for 'end' just hang around forever waiting? [05:34] c4milo1 has joined the channel [05:37] briznad1 has joined the channel [05:37] aaronblohowiak: anyone have issues with connect-auth redirecting infinitely on 0.3.5 ? [05:41] skm has joined the channel [05:42] backthatzachup_ has joined the channel [05:42] devdrinker has joined the channel [05:43] piscisaureus: ACTION hits send [05:43] sivy has joined the channel [05:44] creationix has joined the channel [05:47] springmeyer has joined the channel [05:47] RushPL_: does socket.io use json? is it possible to send binary data as it is? (encoded to UTF-8 string for websocket purpose) [05:47] ezmobius has joined the channel [05:49] aaronblohowiak: Array.prototype.toString is not generic when using jade [05:50] aaronblohowiak: RushPL_: should be binary safe, does not use json for its wire transport protocol [05:50] aaronblohowiak: jade filters seem totally broken in 0.6.0 [05:50] AAA_awright_ has joined the channel [05:51] RushPL: aaronblohowiak: that's because I was looking at the throughtput of the link when sending a lot of messages and I think it adds some stuff more than necessary .. I haven't traced it exactly though ... [05:51] aaronblohowiak: RushPL: it also does keepalive, registers for disconnection and so forth [05:51] c4milo1 has joined the channel [05:52] RushPL: mhm, and what comes to my mind .. xhr-multipart has some disconnection event lag - can it be reduced? [05:52] Stephen_: anyone here with a lot of node.js experience for hire? [05:52] RushPL: the API doc is a bit sparse in some places :) [05:52] c4milo1 has joined the channel [05:52] creationix has left the channel [05:53] aaronblohowiak: Stephen_: define " a lot" =) [05:54] dguttman has joined the channel [05:54] dgathright has joined the channel [05:55] Stephen_: enough to produce quality code, extend a node.js MVC framework to have a model and connector that works with OrientDB [05:56] konobi: hhhmmm... graph store... interesting [05:56] piscisaureus: ACTION leaving [05:57] aaronblohowiak: Stephen_: with the REST api ? [05:58] jimt_ has joined the channel [05:58] micheil: orientDB does look interesting [05:59] Stephen_: at first with the Javascript API which is over the rest api so its integration shouldnt be that hard... but the model should be designed in such a way that later when then OrientDB C API is complete that it can be compiled in as a node.js module connector and the model easily switched to it [05:59] micheil: minds you though, I can't subscribe to using java for my database... [05:59] Stephen_: its pretty nice as it has high speed graph traversals, document store and SQL syntax [05:59] aaronblohowiak: Stephen_: one of the issues with what you want is that there isn't a common MVC framework, Express comes closest but it just does the V and C [06:00] Stephen_: Name another Graph database that isnt built on java and doesnt cost a fortune [06:00] aaronblohowiak: Stephen_: so the "Model" for OrientDB would either be orient-specific or a whole new project [06:00] Stephen_: Geddy is an MVC [06:00] micheil: Stephen_: have you looked at neo4j or blueprint? [06:00] micheil: (admittedly neo4j is java as well) [06:00] Stephen_: it has models and connectors that I speak of for other db's [06:01] Stephen_: neo4j isnt as nice as OrientDB for a number of reasons [06:01] aaronblohowiak: Oh wow, how have I not heard of geddy before? [06:02] ShizWeaK_: ditto [06:02] konobi: Stephen_: there's always Kioku [06:02] konobi: there's KiokuJS too... you'd just need to implement an OrientDB backend [06:03] Stephen_: @aaronblohowiak when looking through the examples in Geddy's models, it seemed the model handled all the database's api commands [06:03] andrewfff has joined the channel [06:03] Stephen_: while the connector just handled the connection [06:03] Stephen_: I could be wrong [06:04] Stephen_: new to the whole node.js idea... I come from a PHP MySQL background [06:04] micheil_mbp has joined the channel [06:04] brainproxy: wow, OrientDB looks cool [06:05] aaronblohowiak: Stephen_: yes, i haven't seen Geddy before.. [06:05] Stephen_: I came across OrientDB in search of a database that would allow us to form a relationships graph similar to the way LinkedIn does... I couldnt find a better solution for such a site besides node.js + OrientDB [06:06] brainproxy: I've been thinking that my backend would start looking graph-like [06:06] brainproxy: and was wondering if I could cobble something on top of CouchDB [06:06] luke` has joined the channel [06:08] konobi: Stephen_: the math behind linkedin is really quite complex =0) [06:09] Stephen_: seems KiokuJS is a key value store [06:10] devdrink_ has joined the channel [06:10] Stephen_: not very good for speed in depth traversals [06:10] brainproxy: that's Nickolay's baby :) [06:10] brainproxy: or SamuraiJack here on freenode [06:10] blaines has joined the channel [06:11] AAA_awright has joined the channel [06:11] Stephen_: @konobi developing apps like LinkedIN should not be very difficult as the internal graph layer allows for quick traversal of nodes and edges [06:11] benburkert has joined the channel [06:11] Stephen_: unlike a key value store where you would have to develop all that logic on the application layer [06:12] Stephen_: no we are not trying to clone LinkedIn in any way... we are just using it as an example because our product needs to represent relationships in the same fashion [06:13] peol has joined the channel [06:15] echosystm: does anyone know of a way to use nodejs with LDAP? [06:15] sudoer has joined the channel [06:17] konobi: Stephen_: it's a graph store [06:17] Stephen_: more than just a graph store [06:18] Stephen_: Document Database + Graph Store + SQL Syntax and searching mechanisms already built in [06:18] Stephen_: which is why we think it is up for the job more than node.js [06:19] jakehow has joined the channel [06:19] Stephen_: it also has a family member OrientKV which makes it easy to pick up and run when you need a Key Value Store [06:19] brainproxy: if I issue req.pause() as the first statement of an http server's request listener callback, should I expect not to lose any 'data' events of the 'end' event .. in google group discussions it's mentioned there were some problems w/ that in the past [06:19] brainproxy: *or the 'end'... [06:20] konobi: Stephen_: you can use OrientDB as a Backend for KiokuJS [06:21] konobi: it's backend agnostic [06:21] AAA_awright_ has joined the channel [06:21] konobi: Stephen_: `npm install kiokujs-backend-couchdb` for example [06:24] konobi: Stephen_: based on the design it supports searching, overlays, etc. [06:25] AAA_awright has joined the channel [06:27] mikeal has joined the channel [06:29] echosystm: LDAP anyone? [06:29] echosystm: no one has written an LDAP client? [06:31] pyrotechnick: i dont think so [06:31] pyrotechnick: but [06:31] pyrotechnick: wait ldap [06:31] pyrotechnick: i was thinking of webdav lol [06:31] pyrotechnick: ajax.org has a webdav component [06:31] pyrotechnick: ldap i am not sure of [06:31] pyrotechnick: github.com/ry/node/wiki/modules [06:31] pyrotechnick: http://search.npmjs.org/ [06:32] pyrotechnick: if it's not there it doesn't exist basically [06:32] Lorentz: I see https://github.com/joewalnes/node-ldapauth/ [06:32] Fullmoon has joined the channel [06:32] pyrotechnick: http://github.com/jeremycx/node-LDAP [06:32] pyrotechnick: https://github.com/jeremycx/node-LDAP [06:32] pyrotechnick: two there [06:32] SubStack: bingomanatee: your meetup says feb 3rd, but you said it was tomorrow! [06:32] AAA_awright_ has joined the channel [06:33] TheEmpath2 has joined the channel [06:33] echosystm: thanks [06:34] rudyl313 has joined the channel [06:34] beawesomeinstead has joined the channel [06:34] beawesomeinstead has joined the channel [06:34] rudyl313: has anybody tried the geddy 2 min app tutorial with postgres? [06:35] rudyl313: I'm getting an error that ident failed when I try to go geddy-gen db:create [06:35] rudyl313: any wisdom out there? [06:37] Aria: Your postgres is set to require ident authentication in pg_hba.conf [06:37] Aria: Might want to set it to trust, or run the code as a user with privilege to create databases. [06:37] rudyl313: Aria: I created a user with the permission to createdb [06:38] ewdafa has joined the channel [06:38] Aria: Is it the same name as the system user you're running the code with? [06:38] Aria: (that's what 'ident' does in postgres) [06:38] rudyl313: Aria: here's code from my chef script: psql -c \"create user #{node[:pg][:user]} with createdb login encrypted password \'#{node[:pg][:user]}'\" [06:38] rudyl313: Aria: guess not, but this works with rails, so thats weird [06:38] AAA_awright has joined the channel [06:39] Aria: Look at your pg_hba.conf [06:39] Aria: Might be a connect-via-ip vs unix socket thing. [06:39] rudyl313: Aria: ok... hmm I actually do remember someone saying to use 127.0.0.1 instead of localhost [06:39] rudyl313: I wanna try that real quick [06:40] langworthy has joined the channel [06:40] RushPL: http://wklej.org/id/460522/ - what does it mean? [06:41] jdalton has joined the channel [06:41] RushPL: why does it leak? can I block this message if it is harmless or is it a real memory leak? [06:41] rudyl313: Aria: https://gist.github.com/787504 [06:41] Aria: How many listeners are you adding, RushPL? [06:42] rudyl313: Aria: looks like 127.0.0.1 is supposed to use MD5 [06:42] RushPL: well .. I am creating a http server and then starting to listen at 8081. I am using the simplest of API methods. [06:42] Aria: rudyl313: So if it uses unix domain socket to connect, it'll use ident auth. If not, it'll use the password hashed with md5. So whatever you're doing isn't using the hostname, and is going unix instead. [06:42] RushPL: if by adding listeners you mean creating some custom listeners objects, I am not doing it. ;) [06:43] rudyl313: hmmm [06:43] Aria: (with postgresql, "localhost" and "127.0.0.1" do the same thing, as is sane, unlike mysql.) [06:43] Aria: (No magic "use unix domain sockets when we see the hostname "localhost"") [06:43] RushPL: and I don't get it what's the emitter.setMaxListeners [06:43] konobi: rails might be using a domain socket [06:44] Aria: RushPL: Whatever you're calling 'on' on, that's an emitter. It's just got a warning on it if you add a lot of listeners, since that's usually a bug. IF not, you can raise the limit. [06:44] carter-thaxton has joined the channel [06:45] Aria: (are you perhaps adding a listener in a loop or event?) [06:46] RushPL: Aria: but what exactly is a listener anyway? [06:46] RushPL: there is only one thread and one port :) [06:46] Aria: Well, it's node, so of course there's only one thread ;-) [06:46] rudyl313: Aria: tried using 192.168.10.34 and getting the same error... my next tactic is to just use the same username as my system username [06:46] konobi: RushPL: if the connection info you can use just "host=''" and it will use a domain socket [06:46] Aria: rudyl313: Sounds like it's ignoring the host info. [06:47] Aria: konobi: I think the problem is that it /is/ using unix domain. [06:47] RushPL: I have: server.listen(8081); var io = io.listen(server); [06:47] rudyl313: Aria: well that worked at least [06:47] RushPL: so io.setMaxListeners ? [06:47] Aria: (or you could change "ident" to "md5", so it always uses a password.) [06:47] konobi: Aria: in that case it would need to be "host='localhost'" [06:48] RushPL: konobi: I don't think this answers my question :P [06:48] Aria: konobi: Or fix the actual problem ;-) [06:48] Aria: RushPL: Sure. If you do need to increase the number of listeners. What's "io" there? [06:48] Aria: (that looks suspect, RushPL.) [06:48] konobi: http://www.network-theory.co.uk/docs/postgresql/vol2/DatabaseConnectionControlFunctions.html [06:48] konobi: PQconnectdb [06:49] konobi: same string is passed through by the node_postgres C bindingd [06:49] RushPL: Aria: io = require('../node-bin') where there is an index.js with "module.exports = require('./lib/socket.io');" [06:49] admc has joined the channel [06:49] RushPL: (I don't quite get how this including works and paths but it works for now :P) [06:50] Aria: Heh, odd to chain requires like that, but I suppose that works. So 'io' is socket.io. I see. [06:50] teddy_ has joined the channel [06:51] Aria: I doubt that's what's triggering that warning, then. [06:51] Aria: What event handlers do you have? (foo.on stuff) [06:51] carter-thaxton has left the channel [06:52] rudyl313: Aria: I appreciate the help, I'm really just fooling around with geddy to check it out, so the solution of using the system username is fine with me :) [06:52] Aria: Sweet! [06:52] Aria: Glad to help. [06:52] RushPL: Aria: is there a readup I can do how the includes work? I tried copying lib/socket.io to my dir and doing a require'./lib/socket.io) but it didn't work [06:52] RushPL: Aria: on message, connection, disconnection [06:52] RushPL: so pretty straightforward :) [06:53] Aria: Hm. And no "on" inside the function passed to another "on" ? [06:53] RushPL: the warning shows only on xhr-polling [06:53] RushPL: Aria: that's a good question, sec [06:53] Aria: Hm. And xhr-polling calls event handlers more often. [06:53] Aria: So more likely to trigger it. [06:53] konobi: why is it loading client.js in node? [06:54] Aria: requires are pretty simple -- search the path; given foo, look for foo/index.js and foo.js for each entry in node path. Then wrap the contents in a function (so they can have local variables) and run it. [06:55] RushPL: Aria: http://wklej.org/id/460524/ - so you might be right ... is this bad design then? is it better to have a single message handler on io? (never mind the mockup-quality code) [06:55] Aria: Now, if you get npm involved, the .js files you find most obviously load other more hidden .js files. [06:55] RushPL: I intend to have hundreds of connections [06:55] shinmei has joined the channel [06:55] Aria: Hm. That doesn't look too crazy -- but is "client" a persistent thing, where the same event might get a prior client? [06:56] Aria: Or is the client created anew each time? (I don't know socket.io offhand.) [06:56] Aria: If that 'client' you're given is possibly re-used for each connection, it'd make sense that you overflow the listener list. [06:57] RushPL: client is persistent for each connection afaik. [06:57] RushPL: if that's what you're asking. [06:57] blaines has joined the channel [06:57] RushPL: so I am adding number_of_clients * 3 listeners? [06:58] Aria: No, not if that's true -- only 3 to each client object, if it's only passed one by socket.io. [06:58] amerine has joined the channel [06:58] Aria: No overflow there. [06:58] Aria: I don't know socket.io well enough to theorize past that. [06:58] x_or has joined the channel [07:01] kawaz_air has joined the channel [07:01] Aria: ACTION goes to read socket.io [07:01] liar has joined the channel [07:01] Stephen_: @konobi would you recommend Kioku... its web page states it hasnt yet been integrated with graph style databases and doesnt seem to support templating , and other such features that come with an MVC framework like geddy [07:02] blaines_ has joined the channel [07:04] RushPL: Aria: well, thanks for all your help. If that message proves a problem in the future I will think more about it .. [07:04] Aria: Sure thing. [07:05] jdalton has left the channel [07:05] blaines has joined the channel [07:06] Aria: ... It looks like, as far as I can tell, that for each poll, the listener emits a connection event, passing the existing connection objet. [07:07] Aria: Which explains exactly what you're getting. [07:07] Aria: socket.io's example code on their front page seems to indicate you're doing it right, and the recent warnings added to node just caught them doing sneaky things. [07:07] Aria: But that's my casual reading. [07:11] void_ has joined the channel [07:12] felixge has joined the channel [07:13] mr_daniel has joined the channel [07:17] visionik has joined the channel [07:18] konobi: Stephen_: it's not an MVC, it's the M part of the equation [07:18] konobi: MVCs are overrated [07:18] blaines has joined the channel [07:19] Aria has joined the channel [07:19] saikat_ has joined the channel [07:20] desaiu has joined the channel [07:20] kiddp has joined the channel [07:20] sh1mmer has joined the channel [07:23] stepheneb has joined the channel [07:23] stepheneb has joined the channel [07:23] K`` has joined the channel [07:24] andrewfff has joined the channel [07:25] ryah_: agreed [07:27] mikeal has joined the channel [07:27] sprout has joined the channel [07:28] kawaz_air has joined the channel [07:28] konobi: the methodology is good... but relying on one codebase to do all of those components is a bad idea [07:28] konobi: (see rails) [07:30] mikew3c has joined the channel [07:30] mikedeboer has joined the channel [07:31] andrewfff has joined the channel [07:31] brianleroux has joined the channel [07:33] matjas has joined the channel [07:33] Bonuspunkt has joined the channel [07:34] elijah-mbp has joined the channel [07:34] razvandimescu has joined the channel [07:35] GasbaKid has joined the channel [07:37] Stephen_: @konobi so what kind of getting started guides are there for it so I can see if it will be a fit... are there any example apps built around it? [07:37] andrewfff has joined the channel [07:37] Stephen_: MVC help keep code clean as projects get large if the mvc is done right [07:39] mscdex: i've had pretty good luck with MVC, as long as it's designed and thought-out well [07:39] sprout has joined the channel [07:40] Stephen_: yeah personally new to node.js but I really like developing in the Zend PHP framework... just looking into node.js because of the speed difference [07:40] sprout1 has joined the channel [07:40] pkrumins: you should hear model-view-controller song, if you haven't already: http://www.catonmat.net/blog/musical-geek-friday-model-view-controller-song/ [07:41] Stephen_: makes it easy for other devs to jump in and pick up on a PHP project [07:42] clarkfischer has joined the channel [07:43] K`` has joined the channel [07:43] kristsk: hrm. goddamn pipe broke. [07:43] andrewfff has joined the channel [07:44] mscdex: kristsk: ducttape.js [07:45] nook has joined the channel [07:45] yhahn has left the channel [07:46] jimt has joined the channel [07:46] luke`_ has joined the channel [07:48] cagdas has joined the channel [07:49] yozgrahame has joined the channel [07:50] SamuraiJack has joined the channel [07:51] andrewfff has joined the channel [07:54] sprout has joined the channel [07:56] daglees has joined the channel [07:56] daglees has joined the channel [07:56] andrewfff has joined the channel [07:59] brianmario has joined the channel [08:03] andrewfff has joined the channel [08:04] lumino has joined the channel [08:04] sriley has joined the channel [08:04] desaiu: this code: http://dpaste.com/335230/ throws this error when ran: http://dpaste.com/335237/ [08:05] desaiu: can someone help me with this? [08:05] fangel has joined the channel [08:05] seemann has joined the channel [08:05] desaiu has joined the channel [08:07] desaiu: how would i specify that www.whateverSiteIDecideToBuy.com goes to port 8080, 4000, or whatever port i decide to launch the app on? [08:08] margle has joined the channel [08:08] desaiu: without the user seeing www.foobar.com:8080 in the address bar [08:14] kawaz_air has joined the channel [08:15] fangel: desaiu: well, then you need something that forwards (proxies) your port 80 to whatever port you run node on (like NginX).. [08:16] mAritz has joined the channel [08:17] devdrinker has joined the channel [08:17] andrewfff has joined the channel [08:18] desaiu: fangel: won't that slow down requests? [08:19] fangel: well, for a long time (might still be the case) it was recommended to run Node behind NginX [08:19] desaiu: i mean, will it slow down node.js, wouldn't it be faster for the user to communicate directly to node.js [08:19] desaiu: hmm [08:19] ttpva has joined the channel [08:20] fangel: anyways, the obvious answer is "run node on port 80, be happy".. but since you asked on how to run it on a non-80 port with the user using port 80, proxy it.. [08:21] jakehow has joined the channel [08:21] kristsk: use nginx and "backends" [08:22] mytrile has joined the channel [08:22] kristsk: multiple instances of same process (if applicable for your business logic) gives better fault tolerance [08:22] desaiu: fangel: i would love to run it on port 80 and be happy, but there are permission errors [08:23] kristsk: port 80 requires root permissions on all unices, afaik [08:23] desaiu: and node is installed to one specific user, me, and not globally installed [08:23] fangel: well, you always need super-user permissions to bind to any port lower than 1024.. same applies to nginx/apache/whatever [08:25] andrewfff has joined the channel [08:25] desaiu: oh well, i will be happy with running it as root i suppose [08:25] desaiu: that just doesn't seem safe [08:26] jesusabdullah: You can proxy that stuff, I think [08:26] kristsk: why not front it with nginx ? [08:26] desaiu: what's the advantage of using nginx as a proxy? [08:27] kristsk: i belive you will run out of other resources long before nginx-node communication penalty becomes an issue [08:27] kristsk: well, does that server have nginx ? [08:27] desaiu: yes [08:28] kristsk: does it run on port 80, as you require? [08:28] desaiu: it does [08:28] admc: any node ninjas have a second to help me out [08:28] desaiu: but i don't have it running right now [08:28] desaiu: i'm not being stubborn, just don't understand what the point of a proxy is [08:28] kristsk: does your business logic (in node.js app) allow simultanous requests? [08:29] jesusabdullah: I believe many people don't proxy, though [08:29] desaiu: yes [08:29] kristsk: point is that it allows you to route/multiplex node processes [08:29] desaiu: why would you need multiple node processes? [08:29] jesusabdullah: The point of proxcying is that you can have a "trusted" app accept port 80 requests and pass them to a not-so-trusted node instance [08:29] jesusabdullah: if that's what you want [08:30] kristsk: if that server has more than 1 core then there would be performance gain from more than 1 node proces at same time [08:30] jesusabdullah: You MAY want more node instances to parallelize code [08:30] jesusabdullah: Many projects use node itself to procxy requests, in one way or another [08:30] desaiu: so you are looking at performance boosts by running multiple node instances [08:30] kristsk: + nginx gives free load balancing [08:31] kristsk: you even can have node processes on different boxes. [08:31] desaiu: alright, i'll give it a shot [08:31] jesusabdullah: desaiu: I would argue that nginx may not be right for you. [08:31] desaiu: oh jesus, why is that? [08:31] pkrumins: i personally prefer lighttpd [08:32] desaiu: (pun intended) [08:32] kristsk: i prefer nginx, and i doubt it does matter right now. [08:33] jesusabdullah: I guess I feel like it 's a lot of hullaballoo for just one node app [08:33] andrewfff has joined the channel [08:33] jesusabdullah: then again, running something you wrote as root? Yecch [08:33] kristsk: yeah, thats probably not a good idea. [08:35] jesusabdullah: lighttpd or nginx are good proxying solutions, but I hope you think for yourself. :) [08:35] jesusabdullah: As silly as that sounds for something like that <_> [08:36] jesusabdullah: There was an article on /r/node about using apache as a proxy too [08:36] MikhX has joined the channel [08:36] jesusabdullah: There's also the option of using mongrel 2 and communicating with a node process with zeromq [08:36] jesusabdullah: if you're into that sorta thing [08:37] ph^ has joined the channel [08:38] [AD]Turbo has joined the channel [08:38] jesusabdullah: http://arguments.callee.info/2010/04/20/running-apache-and-node-js-together/ [08:38] jesusabdullah: that's the apache article [08:38] [AD]Turbo: hi there [08:40] andrewfff has joined the channel [08:40] sprout has joined the channel [08:40] ryah_: [AD]Turbo: hi [08:41] Gruni has joined the channel [08:41] muhqu has joined the channel [08:42] zomgbie has joined the channel [08:42] aklt has joined the channel [08:44] pkrumins: hacks and patches, and stuff. [08:46] SvenDowideit_ has joined the channel [08:46] ivanfi has joined the channel [08:47] andrewfff has joined the channel [08:48] ntelford has joined the channel [08:48] dguttman has joined the channel [08:48] ntelford has joined the channel [08:48] xthsky has joined the channel [08:51] Druid_ has joined the channel [08:53] ryah_: pkrumins: me too [08:53] pkrumins: good time for that! [08:53] saikko has joined the channel [08:53] pkrumins: i am now hacking on automatic node.js code deployment as soon as you do a `git push` [08:54] aslakhellesoy has joined the channel [08:54] kristsk: like a post-receive hook ? [08:54] aslakhellesoy: Is there an idiomatic way to remove dupes from an Array? Similar to Ruby's Array#uniq ? [08:54] pkrumins: yeah [08:55] andrewfff has joined the channel [08:55] ryah_: aslakhellesoy: i don't think so... [08:55] pkrumins: aslakhellesoy: nope [08:55] ryah_: sucks, uniq is useful [08:55] shaver: yeah [08:55] saschagehlich has joined the channel [08:55] shaver: propose it for ES6 [08:56] shaver: I got all my array extras into ES5, yours will be a shoe-in [08:56] mikedeboer has joined the channel [08:56] Jaye has joined the channel [08:56] teemow has joined the channel [08:58] ryah_: did anyone find bugs in their code with the new maxListeners feature? [08:58] ryah_: i'm wondering if i should have more things like this [08:59] ryah_: shaver: ES6 is too far away to imagine [08:59] ivanfi has joined the channel [08:59] ryah_: i probably wont care about javascript then :) [09:00] q_no has joined the channel [09:00] glenngillen has joined the channel [09:00] adambeynon has joined the channel [09:02] ROBOd has joined the channel [09:02] felixge: ryah_: the maxListeners are working, unfortunately [09:03] felixge: ryah_: My test suite uses a pattern that adds tons of listeners, so I had to increase the limit [09:03] mscdex: emitter.maxListeners = Infinity; [09:03] mscdex: :-D [09:04] ryah_: felixge: did you find that annoying? [09:04] glenngillen has left the channel [09:04] ryah_: i can't tell how people use emitters.. [09:04] felixge: ryah_: yeah. I don't think it will help me finding leaks [09:04] ziro` has joined the channel [09:04] ryah_: some people reported that if found a problem [09:05] felixge: ryah_: well, it's not a major problem for me. I think I'd prefer it to be disabled by default [09:05] felixge: ryah_: or enabled by a command line switch [09:05] felixge: or something [09:05] felixge: but that's just me [09:06] andrewfff has joined the channel [09:06] ryah_: i think disabled by default might be good... [09:07] felixge: ryah_: I think it would still be nice if you could enable it for all event emitters in the system when you need it so [09:07] felixge: ryah_: if you already know which emitter to suspect, it's not all that useful [09:07] mscdex: ahhh another fresh node installation! [09:08] mscdex: it has that new compile smell [09:08] altamic has joined the channel [09:09] felixge: mscdex: are you looking for a node gig by any chance? [09:09] masahiroh has joined the channel [09:09] felixge: mscdex: somebody is asking me about uw-imap bindings [09:09] felixge: and a few other gigs [09:09] felixge: :) [09:10] desaiu has joined the channel [09:10] felixge: ryah_: did you get my email about the node job board? [09:11] ryah_: felixge: yes - it's in my queue... [09:11] ryah_: ACTION is terrible at managing email [09:11] pkrumins: email is nightmare. [09:12] lumino has joined the channel [09:12] pkrumins: some days i get like 20-30 emails from my fans [09:12] felixge: ryah_: I usually have a backlog of ~7 days myself, at that point I lock myself in a room until inbox 0 [09:12] pkrumins: simply impossible to respond to them [09:12] felixge: pkrumins: uhm, poor you :) [09:12] Lorentz: Nobody emails me [09:12] Lorentz: forever alone [09:12] pyrotechnick: :( [09:12] felixge: pkrumins: I get emails that actually need reply : ) [09:12] pyrotechnick: wats ur address [09:12] pyrotechnick: ill send u some ecards [09:13] Lorentz: I kid, I get plenty of client emails [09:13] ryah_: pkrumins: from stackvm? wow [09:13] pyrotechnick: nah man [09:13] pkrumins: felixge but you get paid for that! [09:13] pyrotechnick: u need some ecards [09:13] pkrumins: ryah_: not really, from my popular programming blog - www.catonmat.net [09:13] Lorentz: Nah, don't need to spread my email [09:13] Lorentz: Thanks for the offer, but no thanks [09:13] felixge: pkrumins: not enough : ) [09:14] pkrumins: felixge: increase the rates! [09:14] felixge: pkrumins: well, a lot of emails are transloadit support these days [09:14] ryah_: ACTION wonders if go-go-duck submitted the "Challenges Google on Privacy" article to HN itself [09:14] ryah_: probably. [09:14] felixge: pkrumins: so yeah, we need to make some pricing changes [09:14] felixge: ryah_: http://news.ycombinator.com/user?id=woodrow [09:14] felixge: ryah_: I don't think that was gabriel [09:15] felixge: ryah_: he's a pretty nice guy, I emailed with him a little [09:15] Lorentz: My irc bot now does fortune telling and choose! wooo [09:15] Lorentz: Time to do persistent timer [09:15] felixge: pkrumins: how is stackvm coming along btw.? [09:15] felixge: pkrumins: browserling seems to work a lot better now than it did when you launched :) [09:16] pkrumins: felixge: yeah, we have had major improvements. [09:16] pkrumins: felixge: coming along good, we're now raising money [09:16] pkrumins: so doing all kinds of things that are related to money raising process. [09:16] felixge: pkrumins: ah, that will keep you busy for a while [09:16] felixge: :) [09:17] pkrumins: yep [09:17] pkrumins: well i am going back to latvia in 3 months [09:17] luke` has joined the channel [09:17] pkrumins: so we got to close a round by then [09:17] felixge: pkrumins: btw. how do you guys handle deployment? Do you kill all active connections? [09:17] felixge: pkrumins: should be doable, what you do is really hot [09:17] pkrumins: yeah [09:17] pkrumins: i am currently implementing a demployment system [09:17] razvandimescu has joined the channel [09:17] pkrumins: sorry, deployment system. [09:18] pkrumins: just started working on that [09:18] felixge: pkrumins: we have the same problem : ) [09:18] felixge: pkrumins: our plan is to use a master->worker setup with socketpair() [09:18] pkrumins: but until now i just killed the servers when the queue was empty [09:18] felixge: pkrumins: so deployment just means new workers and old workers shutting down [09:18] pkrumins: or sometimes just kill with active users. depends on what the changes were. [09:18] pkrumins: felixge: we have an easier situation [09:19] pkrumins: felixge: (i think) [09:19] felixge: pkrumins: tell me! [09:19] felixge: : ) [09:19] blaines has joined the channel [09:19] pkrumins: felixge: we know when a server becomes "free" [09:19] pkrumins: so at that point it can restart itself [09:19] xla has joined the channel [09:19] felixge: pkrumins: we have uploads running for 8 hours, we'll soon reach the point where our server is *never* free [09:19] pkrumins: oh no! [09:20] felixge: but yeah, that is an easier solution if you can do it [09:20] felixge: : ) [09:20] felixge: but it's ok, we also want to isolate each upload in it's own process [09:20] felixge: since exceptions shouldn't take down other uploads [09:20] felixge: the people waiting 8 hours won't like it [09:20] felixge: :) [09:20] pkrumins: right! [09:21] felixge: pkrumins: but yeah, I suspect we're one of the few node services that have this problem. Most people don't need to deal with those long sessions [09:21] felixge: or at least they can easily offload theirs to a storage [09:21] felixge: which we can't do with active connections [09:22] pkrumins: yep [09:22] pkrumins: i'll try to generalize this problem and make it a separate github project [09:23] hellp has joined the channel [09:23] felixge: pkrumins: cool. I looked into that for our solution as well, but I think our requirements are fairly unique, it'd be a huge headache to generalize [09:25] virtuo has joined the channel [09:25] romeo_ordos has joined the channel [09:25] romeo_ordos has left the channel [09:25] TomY has joined the channel [09:26] admc has joined the channel [09:27] felixge: pkrumins: I have a question, would dnode also work with a socket I already have? [09:27] markwubben has joined the channel [09:28] felixge: pkrumins: I guess substack is maintaining that one [09:30] pkrumins: yes, SubStack would know better, but my guess is no [09:30] crodas has joined the channel [09:30] clarkfischer has joined the channel [09:30] pkrumins: because dnode talks dnode protocol, so each dnode connection starts with dnode server sending list of available methods to the dnode client. [09:31] karboh has joined the channel [09:31] luke` has joined the channel [09:34] jimt_ has joined the channel [09:37] daglees has joined the channel [09:38] q_no has joined the channel [09:40] rjrodger has joined the channel [09:44] tanepiper: hahah http://blog.whatwg.org/html-is-the-new-html5 [09:44] tanepiper: Make HTML5 logo, rename HTML5 -> HTML [09:44] tanepiper: Web development is so fun :D [09:44] [AD]Turbo has joined the channel [09:45] jimt has joined the channel [09:46] altamic has joined the channel [09:46] razvandimescu has joined the channel [09:50] clarkfischer has joined the channel [09:51] tsutton has joined the channel [09:51] sriley has joined the channel [09:52] Wyverald has joined the channel [09:52] andrewfff has joined the channel [09:53] romainhuet has joined the channel [09:53] desaiu has joined the channel [09:55] [AD]Turbo has joined the channel [09:55] eikke has joined the channel [09:57] muk_mb1 has joined the channel [09:59] bzinger has joined the channel [09:59] ryah_: i think ive figured out how to refactor the http client finally [09:59] ryah_: super hard... :/ [09:59] ryah_: that code is so messy [10:00] markwubben has joined the channel [10:00] mnbvasd: ACTION gives ryah_ a blender [10:01] tanepiper: ryah_: whoop! [10:02] altamic has joined the channel [10:04] ryah_: i think the last 8 months have really destroyed any niceness of http.js [10:04] ryah_: if it ever had any [10:05] zentoooo has joined the channel [10:08] andrewfff has joined the channel [10:08] nooder has joined the channel [10:10] pdelgallego has joined the channel [10:11] Lorentz has joined the channel [10:17] davidc_ has joined the channel [10:21] jetienne has joined the channel [10:23] pdcawley has joined the channel [10:23] andrewfff has joined the channel [10:25] pgte has joined the channel [10:26] sveimac has joined the channel [10:26] pgte: morning noders [10:27] felixge: ryah_: yeah, that module needs some lovin [10:27] felixge: :) [10:27] felixge: I'm frankly surprised that http works at all right now : ) [10:27] sveimac has joined the channel [10:28] ryah_: sharing code between client and server is amazing(ly hard) [10:28] felixge: ryah_: yes [10:28] springify has joined the channel [10:28] felixge: ryah_: well, I think one problem is that there is too much functionality in too little files and classes [10:28] felixge: yeah, having all of http client / server in one file is neat [10:29] felixge: but it really deserves a little more OOP components [10:29] felixge: possibly spread out over more files [10:29] lumino: morning! [10:29] ryah_: files, psh [10:29] ryah_: it's only 1000 lines [10:29] felixge: ryah_: I hate files myself, since you have to name and organize them [10:29] felixge: : p [10:29] felixge: I try to keep my classes < 300 LoC [10:30] felixge: well, I haven't in the past. But I'm realizing it's bad [10:30] felixge: but I think at the very least we should have a http/server and http/client module [10:30] felixge: and maybe a http/base [10:30] felixge: or something [10:31] felixge: to share stuff [10:31] ryah_: : wc -l deps/v8/src/*.cc | sort -g | tail -3 [10:31] ryah_: 9876 deps/v8/src/objects.cc [10:31] ryah_: 10876 deps/v8/src/runtime.cc [10:31] herbySk has joined the channel [10:31] felixge: actually, looking at the code now, http.js is not as bad as I remembered it [10:31] felixge: must have been the removal of ssl [10:32] ryah_: the ssl stuff was hard [10:32] squeeky: crypto is hard, let's go bowling [10:34] ryah_: crypto is hard - that's not what's hard about ssl [10:34] ryah_: openssl that is [10:34] mraleph has joined the channel [10:35] devdrink_ has joined the channel [10:36] altamic has joined the channel [10:37] felixge: ryah_: what happened to the idea of writing your own crypto lib? :) [10:38] xla has joined the channel [10:38] andrewfff has joined the channel [10:38] ryah_: crushing reality [10:39] x_or has joined the channel [10:40] JRowe has joined the channel [10:40] felixge: : ) [10:42] pyrotechnick: lol [10:42] pyrotechnick: at least you're honest ryah_ [10:42] pyrotechnick: ryah_: how do you think url.parse should behave with null [10:43] pyrotechnick: ATM it errors out inside at a regular expression [10:43] ryah_: pyrotechnick: *shrug* [10:43] pyrotechnick: are you getting node-fatigue? [10:43] pyrotechnick: maybe you need a sea-change [10:43] MrTopf has joined the channel [10:44] ryah_: felixge: https://gist.github.com/787717#file_http.js [10:44] ryah_: look at the bottom [10:45] fly-away has joined the channel [10:46] K`` has joined the channel [10:47] altamic has joined the channel [10:47] felixge: ryah_: interesting refactor [10:47] masahiroh has joined the channel [10:47] felixge: ryah_: wrapping my head around it [10:48] ryah_: main difference is that the client is no longer tied ot a connection [10:48] ryah_: rather a pool of socket [10:48] felixge: ryah_: where does AgentRequest come from? [10:48] ryah_: (which can be either net.Socket or tcp.CryptoStreams) [10:48] ryah_: felixge: oops, that's supposed ot be ClientRequest [10:49] felixge: ryah_: I see [10:49] felixge: ryah_: is this based on mikeals request() thingy? [10:49] ph^ has joined the channel [10:49] Throlkim has joined the channel [10:49] ryah_: no [10:49] ryah_: then i'm going to make a new http.Client as a shim on this new api [10:50] ryah_: and hopefully pass the tests :) [10:50] felixge: interesting [10:50] ryah_: but basically the new api will be http.request({ host: 'google.com', port: 80, path: '/'}, cb) [10:50] felixge: no support for url: "..." ? [10:50] ryah_: cb = function (res) { res.pipe(process.stdout); } [10:51] felixge: I think it's a terribly common use case :) [10:51] ryah_: yeah we can probably put the url in [10:51] felixge: but at that point the flood gates are wide open for a full-blown client :) [10:51] felixge: I kind of think it should go in node core [10:52] felixge: but I'm really scared, it's such a hard thing to make a good API for [10:52] common has joined the channel [10:54] pyrotechnick: dont talk about flood-gates [10:54] pyrotechnick: i live in brisbane... [10:54] K``: mhh [10:54] andrewfff has joined the channel [10:54] pyrotechnick: we got OWNED [10:54] squeeky: where abouts are you? [10:54] pyrotechnick: brisbane, aus [10:55] squeeky: pyrotechnick: no, what suburb? [10:55] pyrotechnick: west [10:55] pyrotechnick: mt crosby [10:55] pyrotechnick: near the junction of bremer and brisbane [10:55] pyrotechnick: you in brisbane? [10:55] squeeky: ah. [10:55] pyrotechnick: wanna come to brisbane JS? [10:55] squeeky: grew up there. [10:55] pyrotechnick: ah true [10:55] squeeky: I live in europe these days. [10:55] pyrotechnick: yeah im thinking of leaving [10:55] pyrotechnick: nobody nodes here [10:55] pyrotechnick: they all rails [10:56] pyrotechnick: railscasts.com [10:56] pietern has joined the channel [10:56] squeeky: ugh, what gives with queensland and rails people? [10:56] pyrotechnick: look at the 2nd last 2 [10:56] tanepiper: i want to get a JS group going here, seems there isn't one [10:56] tanepiper: but people are interested in js [10:56] pyrotechnick: wheres that [10:56] tanepiper: Edinburgh [10:56] pyrotechnick: do it yourself [10:56] pyrotechnick: it doesnt take much [10:56] pyrotechnick: just a free room at a library or uni or something [10:56] pyrotechnick: some pizza [10:56] pyrotechnick: done. [10:56] tanepiper: i am, but it's trying to drum up intererest - we have a tool here: bloop.co [10:57] tanepiper: developed by some local people for getting these things organised [10:57] pyrotechnick: meetup.com is what we use in AUS [10:57] pyrotechnick: ill check that out though [10:57] tanepiper: yea, today it's getting a new release as well [10:57] pyrotechnick: .co's are so cool [10:57] tanepiper: I was with the devs last night [10:57] pyrotechnick: i hate columbia but their domains are just so damn cool [10:57] tanepiper: should be going out today [10:57] pyrotechnick: we got feisty.co [10:58] altamic has joined the channel [10:58] mnbvasd: ACTION likes cook islands domains. [10:58] tanepiper: youlovetheco.ck [10:58] squeeky: reminds me, I need to invest in some swiss domains. [10:59] mnbvasd: ACTION snickers like a 3 year old. [10:59] Lorentz has joined the channel [11:01] skampler has joined the channel [11:01] pyrotechnick: why do oath implementations even have deny buttons [11:01] pyrotechnick: can i get an invite to bloop.co? [11:01] pyrotechnick: tanepiper: ^^ [11:02] tanepiper: don't have any invites, but ping them on twitter and they will throw one over - say @tanepiper sent you to check it out and you want to organise some tech meets [11:03] tanepiper: you know what domains would be cool, .js [11:03] pyrotechnick: yeah [11:03] pyrotechnick: or .coffee [11:03] pyrotechnick: :p [11:03] tanepiper: then you could do