[00:05] tmpvar_ has joined the channel [00:10] JimBastard_ has joined the channel [00:11] dnolen has joined the channel [00:12] paul_ has joined the channel [00:27] rauchg has joined the channel [00:36] bengl: does the solaris buildbot use sparc or x86? [00:39] gwoo: bengl: Solaris Nevada snv_67 X86 [00:39] bengl: gwoo: thx! [00:39] gwoo: no problemo [00:41] derferman has joined the channel [00:45] brandon_beacher has joined the channel [00:49] dnolen has joined the channel [01:00] steadicat has joined the channel [01:09] brandon_beacher_ has joined the channel [01:16] pdelgallego has joined the channel [01:17] creationix has joined the channel [01:19] paul_ has joined the channel [01:23] RayMorgan_ has joined the channel [01:26] Booster has joined the channel [01:29] Booster has left the channel [01:31] mikeal has joined the channel [01:45] pjb3 has joined the channel [01:58] devinus has joined the channel [02:02] paul_ has joined the channel [02:18] Atmoz has joined the channel [02:20] sh1mmer has joined the channel [02:25] dnolen_ has joined the channel [02:30] Atmoz has joined the channel [02:33] mikeal has joined the channel [02:34] RayMorgan has joined the channel [02:40] sh1mmer has joined the channel [02:41] quirkey has joined the channel [02:44] RayMorgan has joined the channel [02:49] brainss has joined the channel [02:54] joshholt has joined the channel [02:57] okito has joined the channel [03:00] aguynamedben has joined the channel [03:12] bronson has joined the channel [03:18] bronson_ has joined the channel [03:20] jed has joined the channel [03:23] aryounce has joined the channel [03:30] derferman has joined the channel [03:35] _ry: so now that we have evalcx - someone should build an irc bot [03:35] _ry: :) [03:35] Tim_Smart: _ry: I already have [03:35] Tim_Smart: nodejs_v8: Object [03:35] nodejs_v8: Tim_Smart: function Object() { [native code] } [03:36] Tim_Smart: uses the patch as an addon though [03:37] _ry: ah okay [03:37] _ry: nodejs_v8: 1+2 [03:37] nodejs_v8: _ry: 3 [03:37] _ry: nodejs_v8: while(true) {;} [03:37] nodejs_v8: _ry: No Output. [03:38] Tim_Smart: should probably have it use evalcx [03:38] Tim_Smart: ACTION adds to todo list [03:38] _ry: does it fork out to do the eval? [03:39] Tim_Smart: _ry: Yeah [03:39] _ry: it has some timeout for how long it can take? [03:39] Tim_Smart: _ry: Yeah, forget what it is set to [03:42] Tim_Smart: but currently it create a process for every eval, would be much cooler if the process only shut down with infinite loops [03:42] Tim_Smart: *creates [03:42] Tim_Smart: ACTION adds that to the todo list as well [03:51] Cainus: TODO: solve the halting problem :) [03:52] Cainus: anyone know a way to detect if a script is running as the main script, or if it's a loaded module? [03:53] Tim_Smart: Cainus: module.id === '.' ? [03:54] Cainus: hmmm... I've never seen this module object... [03:54] Tim_Smart: Ah ok. you have now :p [03:55] Cainus: ah nice [03:55] Cainus: what's the id property for? [03:56] Cainus: matbe I should read source... is it process.Module ? [03:57] Tim_Smart: It is the Module prototype in node.js [03:57] Tim_Smart: The constructor is near the top, the rest of its stuff is further down [03:59] _ry: hm [03:59] _ry: there is a commonjs way to do that [04:00] _ry: i forget though [04:00] _ry: require.main == module.id ? [04:00] Cainus: I'm looking for something like python's __main__ I guess [04:01] _ry: require.main == module [04:01] Cainus: lemme give that a go... [04:01] brainss has joined the channel [04:03] Cainus: brilliant :) [04:03] Cainus: thanks man [04:03] hassox has joined the channel [04:05] Cainus: is there any event for the completion of execution of a module? or do I need to throw my own? [04:07] JimBastard_ has joined the channel [04:09] JimBastard_ has joined the channel [04:09] mattly has joined the channel [04:09] tilgovi has joined the channel [04:11] mikeal has joined the channel [04:22] quirkey has joined the channel [04:23] Tim_Smart: Cainus: The module is executed then you require() it [04:26] indiefan has joined the channel [04:27] RayMorgan has joined the channel [04:30] Cainus: unless you run it stand-alone [04:31] Cainus: I'd like to run a function if and only if it's stand-alone [04:32] PyroPeter has joined the channel [04:32] Cainus: bah... no worries... I've got a workaround [04:33] indiefan has joined the channel [04:45] mikeal has joined the channel [04:47] jamiew has joined the channel [04:48] jamiew has left the channel [04:50] _ry: Cainus: completion? hmm. what does that mean? [04:51] okito has joined the channel [04:52] Cainus: well I saw the exit event, but it doesn't look smart to try to handle that [04:53] Cainus: I'm writing a unit-test framework, so I'm trying to do some weird stuff, but I think I've got it now... no worries [04:54] sh1mmer has joined the channel [04:59] jashkenas has joined the channel [05:01] brainss has joined the channel [05:02] blazzy: the dns.js library didn't get updated to not use "process.dns" [05:06] blazzy: doesn't look like tests get run for the dns module [05:07] jashkenas: ha. [05:07] jashkenas: node> process.dns.resolve4('google.com') [05:07] jashkenas: node> Segmentation fault [05:09] JimBastard_: heh [05:10] blazzy: noticed the seg fault, pulled the latest changes, and discovered the the dns module got clobbered even further :) [05:10] joshholt has joined the channel [05:12] _ry: :/ [05:12] _ry: yeah the dns test is disabled. [05:13] joshholt has joined the channel [05:18] blazzy: ah it does look a bit outdated. is that why it was disabled? [05:25] joshholt has joined the channel [05:26] cloudhead has joined the channel [05:27] dnolen has joined the channel [05:28] aryounce has joined the channel [05:40] ditesh|cassini has joined the channel [05:42] stepheneb has joined the channel [05:46] isaacs has joined the channel [05:46] keeto has joined the channel [05:47] kennethkalmer has joined the channel [05:47] isaacs: so, node has evalcx now, right? am i doing something wrong, or how is this supposed to work? [05:47] isaacs: process.evalcx("foo", {foo:"bar"}); [05:47] isaacs: that should return "bar", right? [05:48] isaacs: that's what evalcx does in spidermonkey, anyway [05:48] Tim_Smart: process.evalCX [05:48] isaacs: js> evalcx("foo", {foo:"bar"}); [05:48] isaacs: "bar" [05:48] gbot2: isaacs: "bar" [05:48] Tim_Smart: can't remember what it is called now [05:49] isaacs: Tim_Smart: process.evalcx is what it's called. [05:49] isaacs: i'm looking at the code, and it SEEMS like it should be working... [05:50] isaacs: but process.evalcx("foo", {foo:"bar"}); throws an error that "foo" is undefined [05:50] Tim_Smart: hmm yeah it does for me too [05:50] isaacs: also, is gbot running spidermonkey, apparently? weird. [05:52] isaacs: and the relevant bit of the test is commented out with a /* TODO? [05:52] Tim_Smart: Yeah I saw that [06:00] isaacs: anyone know how to get the actual character bytes out of a v8::String? [06:04] inimino: isaacs: yes, it's spidermonkey (somewhat old spidermonkey) [06:07] brapse has joined the channel [06:11] brainss has joined the channel [06:11] isaacs: yeah, the global in the evalcxed code is *not* getting those values. [06:15] isaacs: AHA!!! [06:15] isaacs: found it [06:15] isaacs: you have to ->Enter() the context before the global object is available to hang stuff on [06:15] isaacs: also, need to manually copy stuff back out onto the sandbox obj [06:18] isaacs: sweet. passing the TODO test now. [06:19] JimBastard_: i just accidentallied the whole github repo [06:19] JimBastard_: oops [06:38] jed has joined the channel [06:39] shirro has joined the channel [06:44] ivan has joined the channel [06:44] ivan has joined the channel [06:46] kennethkalmer has joined the channel [06:51] nsm has joined the channel [06:52] keeto has joined the channel [06:56] derferman has joined the channel [07:00] mikeal has joined the channel [07:04] kjeldahl has joined the channel [07:29] mattly has joined the channel [07:31] markwubben has joined the channel [07:47] cedricv has joined the channel [07:59] chenosaurus has joined the channel [07:59] chenosaurus: yo [07:59] chenosaurus: anyone awake? [08:02] chenosaurus: hello [08:02] sveimac has joined the channel [08:02] chenosaurus: hi [08:02] chenosaurus: i'm building a chatroulette clone using node.js [08:02] chenosaurus: anyone wnana help test it? [08:11] kjeldahl has joined the channel [08:12] bridge has joined the channel [08:32] derferman has joined the channel [08:33] bpot has joined the channel [08:34] Tim_Smart has joined the channel [08:46] felixge has joined the channel [08:46] felixge has joined the channel [08:46] qFox has joined the channel [08:50] jed has joined the channel [08:52] javajunky has joined the channel [08:54] cadorn has joined the channel [08:58] markwubben_ has joined the channel [09:00] micheil_mbp has joined the channel [09:01] tiglionabbit has joined the channel [09:02] tiglionabbit: is node-couchdb supposed to work? [09:02] Netfeed has left the channel [09:05] tiglionabbit: what kind of database would you use with couchdb? [09:05] tiglionabbit: I mean with node.js [09:06] tiglionabbit: I am trying to use couchdb but I'm not sure how to get it to work [09:06] Tim_Smart: couchdb, mongodb or riak [09:06] tiglionabbit: mongo works now? [09:06] Tim_Smart: Not sure [09:06] tiglionabbit: where can I get the bindings? [09:06] Tim_Smart: There was a binding for it [09:07] tiglionabbit: they all seem kinda partially done, and then node changes so much that no libraries can keep up with all the deprecated features [09:07] tiglionabbit: so [09:07] tiglionabbit: are there any database libraries at all that work right now? [09:08] tiglionabbit: or can you recommend a version pairing that would be stable? [09:09] Tim_Smart: Have you gone through the module list? [09:10] tiglionabbit: yeah, but I've just been frustrated [09:10] tiglionabbit: so I wanted to hear from someone who is actually using something that works [09:11] Tim_Smart: http://github.com/orlandov/node-mongodb ? [09:13] MattJ has joined the channel [09:14] tiglionabbit: I'll pull that one again and check it out [09:14] Tim_Smart: and http://github.com/felixge/node-couchdb [09:14] tiglionabbit: just tried that one and it failed miserably [09:14] Tim_Smart: ah ok [09:14] felixge: tiglionabbit: couchdb failed? [09:14] tiglionabbit: the tutorial even tries to import things with .js in the name which hasn't been supported for a long time I think [09:15] tiglionabbit: felixge: yeah it gives me a screenful of errors and deprecation notices. I'll pastebin it [09:15] unomi has joined the channel [09:15] felixge: tiglionabbit: yeah, it's hard to keep up with node ... [09:16] tiglionabbit: it must be frustrating. Dunno how they can just drop core features left and right [09:16] tiglionabbit: you should document what version of node your library works with [09:16] Tim_Smart: tiglionabbit: It is all for the better usually [09:16] felixge: tiglionabbit: "they" do that for making node kick-ass ;) [09:16] tiglionabbit: some of them just say "use trunk" but then inevitably trunk just removed a feature they depend on [09:16] felixge: I mean node is 0.1.XX [09:17] felixge: you should be reasonably scared by that [09:17] tiglionabbit: yeah I guess so [09:17] tiglionabbit: is there a better library for streaming server side javascript stuff? [09:17] felixge: 0.2 will stabelize the API [09:17] felixge: tiglionabbit: no, there is no better library in any language, afaik [09:18] tiglionabbit: I just wanna get my project done and I've been putting it off due to frustration [09:18] felixge: tiglionabbit: if you're coming here and expecting everything to work out of the box, you're here too early :/ [09:18] felixge: tiglionabbit: understandable, I have the same problem [09:18] felixge: I have to rewrite my entire app (it's huge) [09:18] tiglionabbit: heh [09:18] felixge: but this time I have a unit test for everything, so upgrading will not be as much of a pain anymore [09:18] tiglionabbit: I just want to make an extremely lightweight server that is dumb and relays messages for me [09:19] felixge: tiglionabbit: do you need a db for that? [09:19] tiglionabbit: yeah it needs to store the messages forever [09:19] felixge: I pretty much try to stay away from 3rd party libraries with node whenever possible. Fixing my own code is easy, fixing other peoples code is hard [09:20] tiglionabbit: anyway my first question is on the installation bit -- putting stuff in ~/.node_libraries actually works? Can I symlink to there? Seems a little silly [09:20] felixge: tiglionabbit: why is that silly? [09:20] derferman has left the channel [09:20] tiglionabbit: cuz it hides things [09:20] felixge: tiglionabbit: ? [09:20] felixge: you mean the dot? [09:20] tiglionabbit: I don't hide my libraries in personal configuration file directories [09:21] tiglionabbit: yeah [09:21] felixge: I think ruby gems does the same [09:21] tiglionabbit: no those go in a site-packages directory [09:21] tiglionabbit: http://friendpaste.com/niQxiuu18pD3i0mZ8rZb8 [09:21] felixge: tiglionabbit: if those are not writeable, it falls back to your home dir [09:22] tiglionabbit: that's different then. I used it back when you had to configure that manually if you wanted it :P [09:22] felixge: yeah, those tests look simple enough to fix [09:22] felixge: I'm a little upset with process.mixin() removed [09:22] felixge: but oh well [09:23] felixge has left the channel [09:23] felixge has joined the channel [09:23] felixge: tiglionabbit: anyway, I [09:23] tiglionabbit: so uh, how do I require couchdb.js? The way you do it in the tutorial isn't working for me [09:23] felixge: * I'm going on vacation for a week on thursday, won't have time to fix it before then [09:23] felixge: tiglionabbit: yeah, that was a typo [09:24] tiglionabbit: it complains about the .js, and if I remove that it complains that it can't find it [09:24] felixge: just exclude the '.js' part [09:24] felixge: oh [09:24] tiglionabbit: so, how do I use this? [09:24] felixge: tiglionabbit: well, if you copy the project in ~/.node_libraries [09:25] tiglionabbit: I symlinked it, but I'll try actually putting it there instead [09:25] felixge: you should use: require('node-couchdb/lib/couchdb') [09:25] tiglionabbit: oh [09:25] felixge: I should add an index.js file at some point [09:25] tiglionabbit: ok [09:26] tiglionabbit: huh, all the output I get is: [09:26] tiglionabbit: Client. (http:393:14) [09:26] tiglionabbit: node.js:811:9 [09:26] blackdog` has joined the channel [09:26] bpot has joined the channel [09:26] tiglionabbit: shouldn't those sys.puts get called at some point? [09:27] blackdog`: what's the best way to check a file exists? stat it and check exception? [09:27] tiglionabbit: my couchdb server logs a PUT, but not a GET [09:29] bridge has joined the channel [09:31] Tim_Smart: blackdog`: Do whatever you want to do with it, and catch the error if it fails [09:32] Tim_Smart: Otherwise there is an API for checking if a file exists from memory [09:32] blackdog`: ok, thanks [09:32] felixge: tiglionabbit: I just looked into it [09:32] felixge: not sure what's going on [09:33] felixge: tiglionabbit: http://github.com/felixge/node-couchdb/commit/0151569bb5879862b8430feffab611ce64f1ce03 [09:33] felixge: I fixed the process.mixin stuff, maybe you can figure out what the other problems are [09:34] felixge: it's probably the http client API that changed a little or something [09:34] tiglionabbit: yeah no more deprecation notice, but the rest of the output is still the same [09:35] felixge: tiglionabbit: right, I would love to help you - but I'm really short on time since I'm leaving on thursday [09:35] felixge: :( [09:35] tiglionabbit: thanks anyway =] [09:36] felixge: (also fixed the tutorial sample) [09:46] Gruni has joined the channel [09:50] tiglionabbit: oh cool, after fixing the way node-mongodb is included, I can now use it [09:50] tiglionabbit: huzzah [09:52] Tim_Smart: :D [10:06] lifo has joined the channel [10:20] tiglionabbit has joined the channel [10:32] stalled has joined the channel [10:41] javajunky: blackdog`:path.exists [10:41] tiglionabbit_ has joined the channel [10:43] sztanphet has joined the channel [10:44] micheil has joined the channel [10:44] tiglionabbit has joined the channel [10:57] blackdog`: javajunky: ah better :) thanks [10:59] javajunky: np. [11:00] felixge has joined the channel [11:00] felixge has joined the channel [11:00] micheil has joined the channel [11:04] joshholt has joined the channel [11:06] Tim_Smart: Ah, finally got vim in terminal to look half decent [11:06] Tim_Smart: I miss my 256 color gnome-terminal ;( [11:07] joshholt: Tim_Smart: that does hurt sometimes [11:07] Tim_Smart: tell me about it ;) [11:08] Tim_Smart: apparently running linux on Mac outside a VM is bad as well [11:08] Tim_Smart: Due to no SMC drivers [11:08] joshholt: Ah, that's why [11:10] Tim_Smart: Yeah, Apply definitely played it cheap there [11:10] Tim_Smart: *Apple [11:10] joshholt: Oh well. Until it gets fixed ( prolly never ) :syntax on will have to do [11:10] Tim_Smart: yup [11:20] joshholt has joined the channel [11:28] felixge has joined the channel [11:29] blackdog`: how do i do a file seek? readSync(fd,0,pos) ? [11:31] javajunky: set 'pos' ? .. probably worth looking at the non-sync methods though if thats feasible. [11:32] blackdog`: i'm doing a compatibility layer for an existing system, needs to be Sync in this case [11:32] blackdog`: i was trying to do a read of 0 length and change the position with that readSync [11:33] okito has joined the channel [11:41] dekz has joined the channel [11:42] pjb3 has joined the channel [11:50] christkv: hey is the net2 branch back on ? [12:06] dnolen has joined the channel [12:08] bridge has joined the channel [12:09] cedricv has joined the channel [12:12] Tim_Smart has joined the channel [12:14] trochala has joined the channel [12:19] ditesh|cassini has joined the channel [12:21] dekz_ has joined the channel [12:25] kriszyp has joined the channel [12:28] cpojer has joined the channel [12:29] alex-desktop has joined the channel [12:37] dnolen has joined the channel [12:41] micheil: Heads up chaps: http://feedproxy.google.com/~r/dailyjs/~3/3QZzjDlL4M8/hosting-nodejs-apps [12:43] jed_ has joined the channel [12:46] pmuellr has joined the channel [12:49] codeswing has joined the channel [12:58] keeto has joined the channel [13:06] dekz has joined the channel [13:07] davidsklar has joined the channel [13:08] jherdman has joined the channel [13:09] felixge_ has joined the channel [13:09] felixge_ has joined the channel [13:18] erikcorr1|away has joined the channel [13:25] JAAulde has joined the channel [13:29] mde has joined the channel [13:29] jasondavies has joined the channel [13:30] steadicat has joined the channel [13:30] jasondavies: felixge_: yo [13:30] felixge_: jasondavies: heya [13:30] ssteinerX has joined the channel [13:31] jasondavies: felixge_: what's the latest on parsing XML in node.js? I'm writing a simple XML API -> JSON proxy [13:31] jasondavies: I'm not bothered about strictness, just something that works and is fairly quick [13:32] felixge_: jasondavies: http://github.com/isaacs/sax-js [13:32] jasondavies: felixge_: cool, thanks [13:32] felixge_: np [13:36] paul_ has joined the channel [13:40] pjb3 has joined the channel [13:41] carsonm: Is there a reason that ./configure --debug doesn't enable v8 debug? [13:42] carsonm: It looks as if the wscript has the option of switching v8 to compile with debug but it is hard coded to always be compiled for release. [13:57] andrewq has joined the channel [13:57] micheil has joined the channel [14:13] n8o has joined the channel [14:18] gf3 has joined the channel [14:28] quirkey has joined the channel [14:28] steadicat has joined the channel [14:28] alexiskander has joined the channel [14:31] aryounce has joined the channel [14:40] confounds has joined the channel [14:47] gf3 has left the channel [14:47] gf3 has joined the channel [14:48] gf3 has joined the channel [14:49] blackdog` has left the channel [14:49] gf3 has joined the channel [14:50] blackdog` has joined the channel [14:53] codeswing: How can I get timezone specific time in node.js does new Date(); API support it ? [14:55] teemow has joined the channel [15:00] joshholt has joined the channel [15:01] OSInet has joined the channel [15:09] codeswing: Hi guys [15:09] codeswing: anybody here [15:09] codeswing: Can i include regular js e.g. strftime.js into the node.js [15:09] codeswing: and use it [15:09] OSInet has left the channel [15:10] erikcorry|away has joined the channel [15:13] brapse has joined the channel [15:14] gf3 has joined the channel [15:15] jherdman: hi codeswing. you'll need to put it into a module first [15:16] codeswing: jherdman: it gave me error that 'document' is not defined [15:16] codeswing: looks like there is long way to make existing js compatible with node.js [15:16] jherdman: yeah, that's to be expected. you're not dealing with the DOM right [15:17] jherdman: you may need to modify the script [15:17] sveimac_ has joined the channel [15:18] codeswing: yeah [15:18] codeswing: btw I have a date object created with "new Date()" [15:19] codeswing: I am using node.js to generate date on the server side .. now want to print the dates on UI as per timezones [15:19] codeswing: does node.js Date class support timezone dates [15:22] maritz has joined the channel [15:28] jed_ has joined the channel [15:31] jherdman: hey codeswing. the regular JavaScript Date class supports timezones. Node is all about async IO. [15:37] keeto has joined the channel [15:42] codeswing: jherdman: so it means all javascript libs like prototype, jquery wont be converted to node.js [15:42] tmpvar has joined the channel [15:42] jherdman: why would they? [15:42] tmpvar: hi [15:42] codeswing: jherdman: I thought they can be converted to node [15:42] codeswing: tmpvar: hey [15:43] jed__ has joined the channel [15:43] jherdman: it's a different problem domain though. jQuery and Prototype are about dealing with the DOM. Node is about dealing with IO. [15:43] codeswing: okay [15:44] kriszyp has joined the channel [15:45] tmpvar: what are we takinga bout? [15:46] stalled has joined the channel [15:47] binary42 has joined the channel [15:47] jherdman: codeswing was asking me if jQuery (et al) would be ported to Node [15:48] tmpvar: ive gotten a *slightly* modified version of sizzle working on node + jsdom [15:49] tmpvar: example lives here: http://github.com/tmpvar/jsdom/blob/master/example/pure/run.js [15:49] tmpvar: things like window.location and friends are sort of pointless on node though [15:50] codeswing: okay.. that's cool [15:50] jherdman: yeah. i'm a bit confused as to why you'd want jQuery on Node. jQuery is all about the DOM, Node is all about IO [15:51] cloudhead has joined the channel [15:51] tmpvar: jherdman, my intent is using it for templating html pages for non-js enabled browsers [15:51] jherdman: ahhhh [15:51] tmpvar: hence the use of pure [15:52] codeswing: jherdman: yeah .. that is true .. but somewhere I feel that if node.js is javascript interpreter ... it should also can use jquery [15:52] codeswing: limitations are fine [15:52] tmpvar: pure is nice in other reasons, but that was the immediate use case [15:52] tmpvar: s/in/for [15:56] blackdog` has joined the channel [16:02] oso2k has joined the channel [16:04] oso2k has joined the channel [16:05] keeto has joined the channel [16:05] joshholt_ has joined the channel [16:16] dandean has joined the channel [16:18] joshbuddy has joined the channel [16:18] mattly has joined the channel [16:19] aryounce has joined the channel [16:32] kennethkalmer has joined the channel [16:33] okito has joined the channel [16:40] creationix has joined the channel [16:42] jed_ has joined the channel [16:48] bpot has joined the channel [16:49] kjeldahl: 90074651 [16:56] kjeldahl: wrong window, sorry [17:02] stepheneb has joined the channel [17:06] aguynamedben has joined the channel [17:07] stevebiscuit: jed_: would I be right in thinking fab doesn't support POST form data? [17:08] jed_: stevebiscuit: not currently, no. [17:08] jed_: but it'll be easy to add in v3. [17:09] joshbuddy_ has joined the channel [17:09] jed_: stevebiscuit: i haven't launched it yet, but it's getting there: http://github.com/jed/fab/tree/v3/ [17:09] jed_: (the architecture is much better: basically, every single piece of functionality is implemented as "middleware") [17:10] jed_: stevebiscuit: more info here: http://gist.github.com/327241 [17:10] jed_: (okay, hope that helped. i'm gonna head to sleep... 2am over here!) [17:10] jed_ has left the channel [17:14] r11t has joined the channel [17:18] r11t has joined the channel [17:29] aryounce has joined the channel [17:29] aryounce_ has joined the channel [17:30] gwoo has joined the channel [17:32] joshbuddy_ has joined the channel [17:32] RayMorgan has joined the channel [17:38] r11t has joined the channel [17:42] r11t has joined the channel [17:42] andrewq has left the channel [17:44] n8o has joined the channel [17:44] joshholt_ has joined the channel [17:49] cpojer has joined the channel [17:50] CIA-77: node: 03isaacs 07master * r943b2c6 10/ (src/node.cc test/simple/test-eval-cx.js): [17:50] CIA-77: node: Make evalcx work like it's supposed to. [17:50] CIA-77: node: 1. Move the context->Enter() call so that the global obj is available for writing. [17:50] CIA-77: node: 2. On success, copy the modified global out to the sandbox object. [17:50] CIA-77: node: 3. Don't copy functions in either direction. They have scope and closures, and make for craziness when trying to keep contexts separate. [17:50] CIA-77: node: 4. Only do the ->ToObject->Clone() on objects, so that simple values stay simple. [17:50] CIA-77: node: 5. Update the test so that it tests all this stuff. - http://bit.ly/9ta5nQ [17:50] CIA-77: node: 03Krishna Rajendran 07master * r3847add 10/ lib/dns.js : Fix calls to dns bindings in dns.js - http://bit.ly/cZQBpj [17:50] CIA-77: node: 03Krishna Rajendran 07master * r3c97a43 10/ test/disabled/test-dns.js : Update test-dns.js to work with latest api - http://bit.ly/baXxOE [17:50] CIA-77: node: 03Ryan Dahl 07master * r217e4b4 10/ (src/node_dns.cc test/disabled/test-dns.js): Check for callback argument in DNS functions - http://bit.ly/9M0enm [18:04] cloudhead has joined the channel [18:07] gf3 has joined the channel [18:09] creationix has joined the channel [18:09] felixge has joined the channel [18:09] felixge has joined the channel [18:10] creationix has left the channel [18:10] carlocci has joined the channel [18:13] stepheneb has joined the channel [18:16] mikeal has joined the channel [18:20] teemow has joined the channel [18:21] bridge has joined the channel [18:30] ryandotsmith has joined the channel [18:30] isaacs has joined the channel [18:32] unomi has joined the channel [18:33] kris928 has joined the channel [18:34] kris928: is there a ruby like debugger tool for node.js yet? [18:41] javajunky has joined the channel [18:42] jherdman: kris928: there appears to be a debugger for v8, but i can't seem to find a tool to use it [18:42] kris928: yeah eclipse works with it apparently [18:43] kris928: I'd love to just have a simple way of setting break points and getting a console [18:43] jherdman: me too. sounds like a project someone should start [18:43] jherdman: could be fun to play around with [18:45] inimino: you can node with the v8 debugger [18:45] inimino: there's a command-line option for it [18:46] inimino: I don't know if it's in the docs or not but it's been mentioned on the mailing list [18:48] kris928: inimino, thanks, i'll look into that [18:48] jage has joined the channel [18:57] cpleppert has joined the channel [19:04] maushu has joined the channel [19:05] maushu: Is using facebook's js sdk, instead of the rest api, with node.js a good idea? [19:05] maushu: tl;dr: I find the implementation of node-facebook, weird. [19:12] inimino: ACTION marks package management thread as 'read' [19:14] teemow has joined the channel [19:26] gbot2 has joined the channel [19:30] cpleppert has joined the channel [19:31] stepheneb has joined the channel [19:33] maushu: Is there a way to run a piece of untrusted code that might infinite loop without using child processes? I don't want to run a child process everytime I want to run this code... unless I make a wrapper and the child doesn't exit... hmmm. [19:35] konobi: maushu: fork() isn't that expensive [19:35] konobi: an exec() however is [19:35] kriszyp has joined the channel [19:35] maushu: Hmm, the child process function uses fork, I'm guessing? [19:36] jspiros has joined the channel [19:36] konobi: nope [19:36] konobi: oh... looks like node doesn't currently expose a fork() [19:36] maushu: ._. [19:38] konobi: _ry: any reason for not having a fork() ? [19:39] maushu: Well, the only way I can think is using two processes, the main one and sub one. The sub process would run the could-infinite-loop code so that if it got killed only the untrusted code would. [19:39] bpot has joined the channel [19:40] maushu: Everytime I needed to change the code I would eval it in the sub-process and replace the code. [19:42] ryandotsmith has joined the channel [19:42] dnolen has joined the channel [19:46] paul_ has joined the channel [19:47] ryandotsmith has joined the channel [19:49] drostie has joined the channel [19:52] tauren has joined the channel [19:54] tauren: I've just started looking at node.js and it looks quite interesting. Could someone give me an idea of how difficult it would be to implement this simple MonsterID/Gravatar php script with it? [19:54] tauren: http://www.splitbrain.org/blog/2007-01/20_monsterid_as_gravatar_fallback [19:55] tauren: Is it possible to do image manipulation and such using nodejs? [20:01] dnolen has joined the channel [20:03] JimBastard: is it possible to override or to prototype the "function" keyword? i need to do some aspect oriented programming, would like to wrap all my function calls in a try / catch block [20:15] cpleppert has joined the channel [20:18] inimino: JimBastard: it's not [20:19] inimino: you could parse the JavaScript and modify every function declaration, but that's about it [20:20] JimBastard: yeah thats what i thought [20:20] frodenius: what has wrapping the calls to do with the function keyword? [20:20] JimBastard: fuck [20:20] brapse: JimBastard: you could write a function that returns a function wrapped in a try catch [20:21] indiefan has joined the channel [20:28] JimBastard: back sorry [20:28] JimBastard: brapse: the issue is i have a large code base already in play [20:28] JimBastard: so i cant just rewrite every method [20:29] JimBastard: ive been messing with window.onerror, but its not as awesome as you'd think [20:29] JimBastard: frodenius: i'd like to be able to "extend" all my existing function calls so they are automatically wrapped in try / catches that will fire a global error event i have created [20:30] JimBastard: would also be nice to add an optional debug.log() statement at the start of every method [20:30] brapse: JimBastard: i feel overwritting global error handling is cruising for a bruising [20:30] dandean has joined the channel [20:31] isaacs has joined the channel [20:32] JimBastard: brapse: pretend you had a complex front-end with 1000s of views and JS interactions built over the past few years [20:33] JimBastard: how else would you suggest looking for errors sitewide? [20:33] JimBastard: without a rewrite? [20:33] JimBastard: if i get a global error handler (currently using window.onerror) i can send notifications to our error server [20:33] mattly has joined the channel [20:33] Tim_Smart has joined the channel [20:34] JimBastard: morning Tim_Smart ! [20:34] Tim_Smart: :o [20:34] Tim_Smart: shower time! [20:34] JimBastard: i knew i forgot something this morning [20:34] brapse: JimBastard: that seems to be your best option. [20:34] JimBastard: let me again apologize for accendinetallied the whole github repo again Tim_Smart [20:34] JimBastard: friends dont lets friends fix the git repo at 4am [20:35] JimBastard: ;-) [20:35] JimBastard: brapse: i think so yeah..... i have another solution but i dont like it [20:35] JimBastard: ive done it before for doing AOP in JS [20:35] JimBastard: which is take all your methods.....run a .toString() on them....add your aspects....and eval [20:35] JimBastard: :-( [20:36] voodootikigod has joined the channel [20:36] JimBastard: voodootikigod: might have some insight on this. trying to figure out how to throw aspects on top of every single function in a JS app [20:36] jherdman: JimBastard: is function() {} equivalent to new Function()? [20:37] JimBastard: i.e. add a try / catch around every method with a global error catcher [20:37] JimBastard: i think so? [20:37] jherdman: if so... maybe you could override the constructor? [20:37] voodootikigod: what [20:37] JimBastard: AOP [20:38] voodootikigod: as in overriding function() {} [20:38] JimBastard: yeah [20:38] voodootikigod: or as in proper handling with callback injection [20:38] JimBastard: well we have a large legacy app [20:38] JimBastard: with lots of already defined methods [20:38] JimBastard: so all i know is that rewriting is the last option [20:39] rektide: tmpvar: your README.md on node-avro delinieates three reasons why the project is discontinued, yet you still appear to be doing at least some work on the project... [20:39] JimBastard: ive been playing with window.onerror() but its not quite there [20:39] rektide: what is its status? [20:39] voodootikigod: and you are trying to trace it? [20:40] JimBastard: trace what? [20:41] voodootikigod: i jumped in at teh insight part [20:41] JimBastard: we've got a large app with a lot of views and JS pages, now that im in charge of managing the JS i'd like to be able to know if a minor change i make somewhere affects another view i didnt even know existed [20:41] voodootikigod: so ia am trying to figure out what you are doing [20:41] JimBastard: sorry [20:41] JimBastard: i want to send hoptoad notifications on JS errors client-side [20:41] JimBastard: if it was one method its crazy simple [20:41] JimBastard: wrap it in a try / catch [20:41] JimBastard: have the catch block call my hoptop ajax call [20:41] brapse: JimBastard: if you toString every function, remember that you will re-closing upon the current conext, this could be a huge cluster fuck [20:41] JimBastard: brapse: that solution i brought up with toString() isnt really viable [20:42] JimBastard: back to voodootikigod [20:42] JimBastard: so since its 1000s of methods [20:42] JimBastard: i can't rewrite each one [20:42] JimBastard: i mean i could, but i dont want to [20:43] maushu: tauren, http://wiki.github.com/ry/node/modules#graphics [20:43] voodootikigod: can you control the target env [20:43] voodootikigod: ? [20:43] JimBastard: how do you mean voodootikigod ? [20:44] voodootikigod: IE internal pages v external pages [20:44] JimBastard: well we want to test our users experience, so cross-browser is great but if we are stuck with a few browsers to start (like FF) it wouldnt be too bad [20:44] voodootikigod: so ff has method missing [20:45] voodootikigod: which could allow you easily to recreate hoptoad browser side [20:45] voodootikigod: another option is to rewrite the error object [20:45] voodootikigod: and then inject your code for errors [20:45] JimBastard: heh i like the second idea [20:45] JimBastard: i didnt know you could do that [20:45] voodootikigod: the better option [20:45] voodootikigod: create tests [20:45] voodootikigod: and run them on selenium [20:45] JimBastard: :-D [20:45] JimBastard: i agree [20:45] voodootikigod: i know a guy [20:45] JimBastard: getting good test covereage for this project will take a long time [20:46] JimBastard: and maintaining the tests will be a pita [20:46] kjeldahl has joined the channel [20:46] voodootikigod: look i rarely if ever advocate testing [20:46] voodootikigod: :) [20:46] voodootikigod: or test swarm [20:46] voodootikigod: http://testswarm.com/ [20:46] JimBastard: i signed up for that a while ago, no email [20:47] voodootikigod: i knows a guy [20:47] JimBastard: could you get me into testswarm? [20:47] JimBastard: i mean if it wasnt a huge pain for you [20:47] voodootikigod: i can try but i think sauce rc might be better for what you are trying to do [20:48] JimBastard: i'd make you my #3 javascript god, after john resig and ryan dahl [20:48] voodootikigod: http://saucelabs.com/products/sauce-ondemand [20:48] deanlandolt has joined the channel [20:48] voodootikigod: i dont like being counted [20:48] voodootikigod: :) [20:49] JimBastard: dont worry i overrode the Number() method [20:50] mattly has joined the channel [20:50] voodootikigod: haha [20:51] voodootikigod: are you coming down for jsconf [20:51] JimBastard: i wish man [20:51] JimBastard: i didnt have the budget for tickets when they went on sale and then it sold out [20:51] JimBastard: considering crashing it [20:51] voodootikigod: umm i would not let that happen [20:51] voodootikigod: but [20:51] voodootikigod: you could come down for the parties [20:51] voodootikigod: i can intro you to the people you need ot chat with [20:52] voodootikigod: hugs owes me anyhow [20:53] voodootikigod: resig should be there too [20:53] voodootikigod: you can have them fight to the death for a winner [20:54] JimBastard: i mean this is just a small issue im having at work [20:54] JimBastard: i really wanted to give a lightning talk about my latest web project [20:55] voodootikigod: if you can make it to scurvyconf [20:55] voodootikigod: you could do it there [20:57] JimBastard: is that gonna be at the same time? [20:57] voodootikigod: its friday night [20:57] JimBastard: i am considering coming down just for the party [20:57] voodootikigod: http://jsconf.us/2010/schedule.html [20:58] JimBastard: yeah that looks good ill try to make it out [20:58] JimBastard: if you hear of any extra tickets i'd be willing to pay for them [20:58] voodootikigod: any good with yui? [20:58] voodootikigod: http://www.yuiblog.com/blog/2010/03/05/yui-3-gallery-contest-2010/ [20:59] JimBastard: thanks for the info, i saw that a few days ago. not really a YUI person, or someone who would win that contest anyway [20:59] JimBastard: :-\ [21:00] JimBastard: i am having a javascript party this thursday though, creationix is coming to visit for a few days [21:00] okito has joined the channel [21:00] JimBastard: got a few really good developers who are coming [21:00] voodootikigod: maybe time to learn yui :) [21:00] indiefan has joined the channel [21:01] JimBastard: im way too busy with this project Tim_Smart and I are working on [21:01] voodootikigod: haha [21:01] voodootikigod: allg ood [21:01] voodootikigod: anyhow [21:01] voodootikigod: parties are tehre [21:01] voodootikigod: you can snarf a ticket for them [21:01] JimBastard: im in [21:01] JimBastard: and i will try to sneak into JSConf via the bathoom window [21:01] JimBastard: so if you see me walking around play cool [21:01] voodootikigod: umm [21:01] voodootikigod: its on the 4th floor [21:01] JimBastard: im a good climber [21:02] JimBastard: :-D back to work for me thanks for the info voodootikigod [21:02] JimBastard: you are one of my JS demi-gods [21:02] voodootikigod: nah not me [21:02] kjeldahl: So, today is "stop using kiwi" day? ;-) [21:03] javajunky: really? how come? [21:03] Tim_Smart: because npm is cool? [21:03] kjeldahl: http://github.com/visionmedia/express/commit/670b6cfc15bbe86c1f9d2caff4232e51bf0e0c56 [21:03] javajunky: ;) Apart from that [21:04] javajunky: ah, thats just because he got a lot of flack for making express dependent on kiwi so based on the feedback removed the dependency [21:04] sveimac has joined the channel [21:05] jherdman has joined the channel [21:06] javajunky: I can't see a massive difference between kiwi and npm tbh, when I first starting hacking on node, there was nothing but a broken npm, which I duly fixed, but isaacs didn't have time to carry the project forward, in the mean time kiwi started up so I switched to working with that instead, … meanwhile isaacs picked up the ball and started up npm again *sob* [21:06] kjeldahl: Make sense. I just didn't know why, considering he gave me a couple of free lessons yesterday getting it working with kiwi. :-) Oh well, back to git. No bigge, I just wondered. [21:06] kjeldahl: And this message: http://github.com/visionmedia/express/commit/656d7754cd9595b5ea25de93c740701a186d62b4 [21:07] kjeldahl: PM = package manager? [21:07] javajunky: yeah, basiically the PMs are now fighting it out *sob* somewhat inevitable when a power vacuum occurs (ryan doesn't want an official PM at this point ) [21:08] pedrobelo has joined the channel [21:08] kjeldahl: Ok, thanks. A bit clearer now. [21:08] javajunky: I don't really mind what wins, but it would make it a damn sight easier for me to 'sell' node.js to my colleagues… currently they're not at all cool with tracking a series of git modules :( [21:08] javajunky: fiwiw I'm still using kiwi with express as several of the packages there are pretty useful to me :) [21:09] javajunky: its a shame the npm development stalled really or this 'issue' wouldn't have arisen (one would hope!) [21:09] rictic has joined the channel [21:10] kjeldahl: "kiwi update" doesn't seem to upgrade to the latest express (or it does it without telling me)... [21:10] javajunky: kiwi —verbose update probably will tell you more. [21:12] maushu: Kiwi feels very buggy. [21:12] kjeldahl: Thanks, it seems it did update after all. Those blank lines it outputs is a bit misleading, but anyway, seems to work for now. [21:12] maushu: I don't understand why it isn't coded in node.js either. [21:13] kjeldahl: I think he wanted it to actually be able to install node. [21:13] deanlandolt has joined the channel [21:13] maushu: ...thats silly. [21:13] javajunky: I've not noticed any bugs myself, I've ported the client to js here if that makes you feel any better http://github.com/ciaranj/kiwi [21:13] maushu: We still have to install kiwi either way. [21:13] javajunky: but the rational was to avoid being damaged by the rate of change of node [21:16] maushu: javajunky, you forgot to add the script header [21:16] maushu: :P [21:16] javajunky: sry ? [21:17] maushu: #!/usr/local/bin/node [21:17] javajunky: ah yeah hadn't gotten around to that ;) [21:17] javajunky: I wouldn't want to fork tj's project so its not ready to roll (although it *mostly* works) :) [21:34] hassox has joined the channel [21:38] gwoo has joined the channel [21:39] kriszyp has joined the channel [21:43] Tim_Smart: urgh, oauth and twitter api [21:48] trochala has joined the channel [21:53] tauren: maushu, thanks! [21:53] maushu: np [22:08] dekz has joined the channel [22:09] isaacs has joined the channel [22:22] ryandotsmith has joined the channel [22:24] ryandotsmith has joined the channel [22:25] mattly has joined the channel [22:26] stepheneb has joined the channel [22:34] tmpvar: rektide, sorry about that.. meant to update it but got pulled into meetings [22:34] tmpvar: will update shortly [22:39] gf3 has joined the channel [22:40] rektide: !8ball will the update be horrificly gloomy and depressing [22:42] tmpvar: ouch [22:42] tmpvar: negatory [22:47] imarcusthis has joined the channel [22:54] mjr_ has joined the channel [22:55] mjr_: Is there a good way to detect a failed exec with process.createChildProcess()? [22:56] Tim_Smart: mjr_: You should get the kill / end event ? [22:56] mjr_: If you pass it a bad filename, the exec seems to succeed, and then print an error on stderr [22:59] mjr_: By "kill / end" do you mean "exit"? [22:59] Tim_Smart: yeah [23:02] mjr_: Indeed, that event shows up, there doesn't seem to be a way to differentiate a child process that ran and then exited, vs one where the execvp failed. [23:02] mjr_: Oh well. [23:03] Tim_Smart: mjr_: I guess check the stderr output [23:03] mattly has joined the channel [23:03] mjr_: Yeah, the stderr output is easily matchable: execvp(): No such file or directory [23:13] unomi has joined the channel [23:15] mjr_: is the third parameter, environment, to createChildProcess() expected to work? [23:15] mjr_: It is in the API doc, but then node.js:102 says it doesn't work. Meanwhile, node_child_process.cc:324 looks like it has plumbed through the env. [23:17] aryounce has joined the channel [23:18] aho has joined the channel [23:18] mikeal has joined the channel [23:18] jage has left the channel [23:20] joshbuddy has joined the channel [23:20] joshbuddy has joined the channel [23:20] sztanpet has joined the channel [23:22] ryandotsmith has joined the channel [23:23] mjr_: It doesn't seem to work on OSX or Linux, even though it looks like it should. [23:30] binary42 has joined the channel [23:34] dnolen_ has joined the channel [23:40] jashkenas has joined the channel [23:47] ryandotsmith has joined the channel [23:50] bpot has joined the channel [23:50] teemow has joined the channel [23:54] dekz has joined the channel [23:56] Tim_Smart: _ry: ping