[00:00] tmpvar: do you have it implemented/online somewhere? [00:00] tmpvar: really not loving the $.foo.bar method (basically taking up name spaces in json) [00:00] mikeal: sorry, had a phone call [00:01] tmpvar: nps [00:01] mikeal: so what I do is, when i eval the module i pass a new require() method to it which is basically function (name) { require(name, parent) } [00:01] mikeal: and parent comes from the closure where I looked up the attribute [00:02] tmpvar: i see [00:02] tmpvar: so its all "calculated" [00:02] mikeal: http://github.com/apache/couchdb/blob/trunk/share/server/util.js#L53 [00:04] tmpvar: hrm, interesting [00:04] mikeal: as i traverse the object i set parent on each attribute [00:04] mikeal: that helps [00:04] mikeal: :) [00:05] ryah_away: mikeal: if i show up at, like 5:30 is that okay? [00:05] tmpvar: that does help [00:07] ryah_away: kriskowal: i'm probably going to work on integrating that into tcp.Connection next week [00:07] kriskowal: would it help if i threw together a branch? [00:07] Tim_Smart: I swear my cat has some secret drug or something. He hops on my desk knocking over my speakers and external HDD's [00:07] Tim_Smart: *desk and starts [00:08] tmpvar: mikeal, this is a basic example (using id refs :/) : http://github.com/tmpvar/performer/blob/master/examples/hello-world/hello-world.js [00:08] ryah_away: kriskowal: DecodeWrite is broken? hm [00:08] kriskowal: seems like, unless it's changed [00:08] kriskowal: unless returning the original buffer length is the designed behavior [00:08] ryah_away: kriskowal: oh so it does [00:09] kriskowal: instead of the effective used length [00:09] ryah_away: yeah - that's wrong [00:09] kriskowal: i've got a fix; i can make a patch [00:09] ryah_away: kriskowal: cool - thansk [00:09] kriskowal: tonight [00:12] kriskowal: ryah_away i had trouble using Buffer::HasInstance outside the buffer module. [00:12] kriskowal: i was getting link errors [00:12] kriskowal: on the Buffer::constructor_template [00:13] kriskowal: whether HasInstance was inline static or merely static; no difference [00:13] ryah_away: kriskowal: hm. i think i use it in the parser? [00:13] ryah_away: node_http_parser.cc [00:13] ryah_away: maybe not [00:13] kriskowal: decode write? [00:14] kriskowal: it's of no consequence to me; it seems that if it's been buggy from the beginning, it's probably not being used [00:14] kriskowal: which might be the difference between fixing and deleting [00:14] kriskowal: i'll post the patch in any case; it's up to you [00:14] ryah_away: ok [00:18] tmpvar: http://priorartdatabase.com/IPCOM/000186003#download -- LOL. 40$ for 5 pages [00:22] Tim_Smart: lolwut [00:23] jashkenas has joined the channel [00:25] jashkenas: 'evening Node -- anyone tried to use the new readlink methods? [00:25] jashkenas: When I call readlinkSync on OS X, I get some unicode garbage at the end of the returned path. [00:26] jashkenas: "/usr/local/lib/coffee-script/lib/bin/cake\ufffd\u0005" [00:26] jashkenas: ufffd is the unicode character -- for "not a translatable character" [00:27] jashkenas: and 0005 is the unicode character for "enquiry", which is a control character. [00:31] jcrosby has joined the channel [00:47] jashkenas: In addition to the above, running fs.statSync(path).isSymbolicLink() is returning false, even though the path is, indeed, a symbolic link. [00:47] jashkenas: I can call readLink() on it to get the path, without an argument error. [00:49] jashkenas: nevermind -- fs.lstatSync() is what I need. [00:54] jcrosby has joined the channel [00:57] ryah_away: jashkenas: you make test, i fix? [00:57] ryah_away: :) [00:57] jashkenas: ryah_away: sure thing -- let's see if it's reproducible in a test. [00:58] dnolen_ has joined the channel [00:59] ryah_away: jashkenas: test/simple/test-fs-readlink.js would be a good place [00:59] jashkenas: ryah_away: I'm having trouble reproducing it. [01:00] jashkenas: ryah_away: I've blown away and rebuilt the symlink a couple times, so there might have been something screwy about it in the first place -- I'll let you know if I see it again. [01:10] eikke has joined the channel [01:10] kriskowal has joined the channel [01:11] alexiskander has joined the channel [01:14] ryah_away: mikeal: i'm coming now - i hope the party isn't over [01:17] morgan: yeah better not be over, I'm headed over too [01:18] tisba_ has joined the channel [01:20] tmpvar: where? :P [01:24] morgan: download oakland [01:48] morgan has joined the channel [01:54] pjb3 has joined the channel [01:57] dekz has joined the channel [01:58] isaacs has joined the channel [01:58] tmpvar: yo, isaacs [01:58] isaacs: yo, tmpvar [01:59] tmpvar: whats good? [01:59] isaacs: chicken mahkni [02:00] tmpvar: nice [02:00] tmpvar: i need to eat. [02:01] dekz_ has joined the channel [02:17] pyrotechnick has joined the channel [02:17] isaacs: i *really* <3 the new comma-first inspect. [02:22] inimino: :) [02:32] pjb3 has joined the channel [02:34] jspiros has joined the channel [02:40] binary42 has joined the channel [02:47] maushu has joined the channel [02:48] maushu: Anyone knows why a child.kill() might be throwing a "Resource temporarily unavailable" error? [02:50] Spot__ has joined the channel [02:50] mrjjwright has joined the channel [03:23] BryanWB has joined the channel [03:24] dnolen has joined the channel [03:29] stepheneb has joined the channel [03:52] sztanphet has joined the channel [03:53] RayMorgan has joined the channel [04:01] isaacs has joined the channel [04:05] dandean has joined the channel [04:10] isaacs: ryah_away: wtf? simonrobinson/node? [04:13] isaacs: is github being daffy? [04:14] isaacs: er, simonrobson/node, that is [04:16] isaacs: http://github.com/ry/node is a 404 octocat [04:18] steadicat has joined the channel [04:20] joshthecoder: yeah something funky going on it seems [04:32] Spot__: does node have a daemon mode? [04:34] cedricv has joined the channel [04:44] JimBastard_ has joined the channel [04:44] Tim_Smart: Yo people, whats up with http://github.com/simonrobson/node [04:44] JimBastard_: moving repo? [04:45] Tim_Smart: ryah_away: You account is dead ;( http://github.com/ryah/ [04:45] JimBastard_: http://github.com/ry [04:45] Tim_Smart: my bad [04:45] JimBastard_: http://github.com/ry/node [04:54] bpot has joined the channel [05:02] kriskowal has joined the channel [05:06] dandean has joined the channel [05:32] micheil: js> +!!(true) [05:32] gbot2: micheil: 1 [05:32] micheil: js> +!!(false) [05:32] gbot2: micheil: 0 [05:32] micheil: js> +!!(null) [05:32] gbot2: micheil: 0 [05:32] micheil: nice [05:33] kriskowal: js> Boolean(true) [05:33] gbot2: kriskowal: true [05:33] kriskowal: ah, well [05:33] kriskowal: js> Number(null) [05:33] gbot2: kriskowal: 0 [05:33] kriskowal: js> Number(true) [05:33] gbot2: kriskowal: 1 [05:33] kriskowal: js> Number(false) [05:33] gbot2: kriskowal: 0 [05:35] micheil: although: [05:35] micheil: js> Number(5) [05:35] gbot2: micheil: 5 [05:35] micheil: js> +!!(5) [05:35] gbot2: micheil: 1 [05:35] kriskowal: js> Number(Boolean(5)) [05:35] gbot2: kriskowal: 1 [05:36] micheil: pah! more typing [05:36] micheil: :P [05:36] kriskowal: everyone should spend seven years in the perl gulag [05:37] micheil: no thanks [05:37] kriskowal: such an experience leaves you scarred for life. [05:37] micheil: ACTION is currently working on some ruby applications that are being backed by mongo/mongomapper & delayed job, and it is frickin awesome [05:39] inimino: js> !!(new Boolean(true)) [05:39] gbot2: inimino: true [05:39] inimino: js> !!(new Boolean(false)) [05:39] gbot2: inimino: true [05:42] joshbuddy has joined the channel [05:43] kriskowal: much madness can be forestalled by avoiding the use of "new" [05:43] inimino: indeed [05:44] kriskowal: not as a religion, of course, but boxed types are one good reason [05:44] jashkenas: kriskowal: do you have a general pattern for avoiding new/constructors, in cases where they would be commonly used? [05:44] kriskowal: yeah. ES5 introduces Object.create [05:44] jashkenas: ah, how about in ES3? [05:45] kriskowal: which makes it possible to create factory methods that still work with instanceof [05:45] kriskowal: the germane behavior of Object.create is implementable in ES3 [05:45] kriskowal: Crock called it "beget" in his libs [05:46] inimino: I think Crockford called it Object.create [05:46] jashkenas: So that's just sugar on top of setting up the prototype chain and "new", internally. [05:46] jashkenas: I was hoping for something a little more radial -- creationix is always talking about how you don't need constructors in JS, period. [05:47] inimino: you don't need `new` [05:47] inimino: here's Object.create as Crockford had it: http://javascript.crockford.com/prototypal.html [05:47] inimino: looks like he used begetObject() too [05:48] kriskowal: slightly different form [05:48] kriskowal: http://github.com/280north/narwhal/blob/master/engines/default/lib/global-es5.js#L245 [05:48] jashkenas: I don't understand -- that *is* new, just with helpers for setting up the prototype chain (not even totally correctly). [05:49] jashkenas: just cause you're calling it through a helper function doesn't change that. [05:49] kriskowal: yeah, it changes the usefulness of the api you create [05:49] kriskowal: you can now pass your constructor freely [05:49] jashkenas: because you can assign properties simultaneously? [05:49] kriskowal: to anything that accepts a function [05:50] kriskowal: the properties issue is orthogonal [05:50] jashkenas: I see, whereas if you rely on *new*, you can't pass it to functions that aren't expecting a constructor. [05:50] kriskowal: aye [05:51] jashkenas: Hmm. seems more like an API issue (know what you're passing) than a real usability one. Do you have an example where it would help with a problem? [05:52] jashkenas: (I'm not just arguing for the sake of arguing) It came up again today in a big way, and I'm trying to think it through for CoffeeScript. [05:52] jashkenas: http://github.com/jashkenas/coffee-script/issues#issue/210 [05:54] kriskowal: i do not think that there exists a problem that cannot be solved interchangeably between "new" and Object.create. Some problems can be solved more simply with Object.create natively implemented. [05:55] kriskowal: oh, and then there's the variadic constructors [05:56] kriskowal: there is no newful version of: X.apply(null, [args]) [05:56] kriskowal: in fact, it is necessary to use Object.create to solve that problem [05:57] kriskowal: suppose X expects to be constructed with "new" [05:57] kriskowal: to call it variadically: [05:57] kriskowal: X.constructor.apply(Object.create(X), […args]) [05:58] kriskowal: jashkenas^ [05:59] jashkenas: thanks. [05:59] jashkenas: js> (Function.apply(Function, ['a + b;'])).toString() [05:59] gbot2: jashkenas: "function anonymous() {\n a + b;\n}" [05:59] jashkenas: how about that? [06:01] dekz has joined the channel [06:18] dmapopov has joined the channel [06:19] isaacs: Tim_Smart: INORITE!? [06:20] isaacs: http://github.com/ry/node is octocatted! [06:20] Tim_Smart: Yeah. Death to github I say, unless ndoe comes back [06:20] Tim_Smart: *node [06:20] isaacs: hehe [06:21] isaacs: so, git://github.com/ry/node.git is still there [06:21] micheil: they're having some filesystem issues iirc. [06:21] jed has joined the channel [06:21] isaacs: seems like it [06:22] micheil: actually, wtf, it doesn't even list here: http://github.com/ry [06:22] Tim_Smart: Yeah I know [06:22] Tim_Smart: It is wacked [06:22] Tim_Smart: aparently some simon guys own the repo [06:22] Tim_Smart: OMG ITS BACK [06:23] Tim_Smart: I CAN SURVIVE IN THE RAEL WORLD [06:25] isaacs: hooray,it's back [06:51] mattly has joined the channel [07:08] tmpvar has joined the channel [07:28] jashkenas has joined the channel [07:37] dekz_ has joined the channel [07:45] mrjjwright has joined the channel [07:55] pyrotechnick has joined the channel [07:56] qFox has joined the channel [08:00] rictic has joined the channel [08:22] bentomas has joined the channel [08:22] bentomas: ryah_away: any chance you around? [08:31] Zoka has joined the channel [08:45] kennethkalmer has joined the channel [08:48] bentomas has left the channel [08:52] sveisvei has joined the channel [09:11] kriskowal has joined the channel [09:23] Tim_Smart_ has joined the channel [09:54] rictic has joined the channel [09:59] felixge has joined the channel [09:59] felixge has joined the channel [10:22] lifo has joined the channel [10:51] maushu has joined the channel [12:15] dekz has joined the channel [12:28] felixge has joined the channel [12:28] felixge has joined the channel [13:24] dsop has joined the channel [14:05] mrjjwright has joined the channel [14:11] kriszyp has joined the channel [14:12] Tim_Smart: Hehe http://github.com/Tim-Smart/node/tree/coffee [14:25] Tim_Smart has left the channel [14:35] neynenmo has joined the channel [14:41] teemow has joined the channel [14:44] micheil_mbp has joined the channel [14:50] Tim_Smart has joined the channel [14:51] Tim_Smart: Hmm compiling coffee within node seems to add some overhead though [14:54] stepheneb has joined the channel [14:56] maritz has joined the channel [14:57] ashb: the extra fstat calls perhaps? [14:58] jashkenas has joined the channel [15:05] jashkenas: anyone in here tried Node on Cygwin? [15:07] micheil has joined the channel [15:07] happyelephant has joined the channel [15:13] dsop has left the channel [15:22] QuietKnight has joined the channel [15:23] steadicat has joined the channel [15:27] micheil_mbp has joined the channel [15:28] QuietKnight: I'm wanting to connect to a DB, but I'm a little concerned about driver maturity. Anybody have any experience with the two MongoDB drivers currently available? Or a different recommendation. [15:29] ashb: i wasn't aware there are any for node [15:30] QuietKnight: indeed there are: http://wiki.github.com/ry/node/modules#database [15:30] ashb: weren't last time i looked [15:42] joshbuddy has joined the channel [15:42] joshbuddy has joined the channel [15:44] maritz: redis-node-client should work pretty well. [15:47] jed has joined the channel [16:09] gwoo has joined the channel [16:09] mumrah has joined the channel [16:11] mumrah: anyone else have issues with the async file operations [16:14] alex-desktop has joined the channel [16:16] ashb: define issues [16:17] mumrah: when i use readSync [16:17] mumrah: nothing happens [16:18] ashb: ...async .... readSync? [16:18] jashkenas: readFileSync? [16:20] mumrah: sorry [16:20] mumrah: readFile [16:21] mumrah: http://gist.github.com/316802 [16:21] mumrah: but if i change it to use readFileSync, it works fine [16:31] binary42 has joined the channel [16:31] mumrah: ACTION works now [16:31] mumrah: ACTION updated the gist (http://gist.github.com/316802) [16:32] joshbuddy has joined the channel [16:32] joshbuddy has joined the channel [16:32] ashb: mumrah: that looks like you aren't on node 0.1.30 then [16:33] sudoer has joined the channel [16:40] mumrah: v0.1.29-1-g916d592 [16:40] happyelephant has joined the channel [16:40] mumrah: is there a stable branch in the git repo? [16:40] mumrah: or a tag maybe? [16:42] tmpvar has joined the channel [16:43] mattly has joined the channel [16:45] gwoo: mumrah 0.1.30 shoud be a [16:45] ashb: mumrah: ahah. *cough* [16:45] ashb: pet peeve of mine - breaking back compat on a minor point release [16:46] mumrah: no kidding [16:46] mumrah: how often does the API change like this? [16:46] ashb: aparently i'm the only one who cares enough to complain [16:47] mumrah: how many active devs are there on code node.js development? [16:47] ashb: dont know exactly [16:47] gwoo: lots [16:47] ashb: a few core devs, ryah still does most of it. lots of users/people developing with it [16:53] drostie has joined the channel [16:56] voodootikigod_ has joined the channel [16:59] neynenmo has joined the channel [17:24] alex-desktop has joined the channel [17:36] adamv has joined the channel [17:37] unomi: better to change it now than later [17:38] ashb: my complaint is that it s 0.1.x -> 0.1.y not 0.1.x -> 0.2.0 or similar [17:38] ashb: http://semver.org and all that [17:53] eikke has joined the channel [17:55] happyelephant has joined the channel [17:57] dandean has joined the channel [18:12] unomi: shrug its 0.1.x :p [18:13] unomi: and its still 0.1.3 vs 0.1.2x [18:15] ashb: its .30 not .3, and that was purely coincedental [18:23] brapse has joined the channel [18:30] chakrit has joined the channel [18:32] hooopy has joined the channel [18:34] unomi: perhaps it was part of a grand plan [18:35] ashb: to make me complain and tell everyone that node.js doesn't care about its users? ;) [18:39] unomi: and so that I could shed a tear at your plight [18:40] ashb: exactly! [18:40] ashb: :) [18:44] kennethkalmer has joined the channel [18:51] cloudhead has joined the channel [19:02] tmpvar: lul [19:02] dnolen has joined the channel [19:35] binary42 has joined the channel [19:38] kriskowal has joined the channel [19:41] chakrit1 has joined the channel [19:49] dnolen_ has joined the channel [20:08] brandon_beacher has joined the channel [20:12] inimino: http://semver.org and all that [20:13] inimino: ACTION refers ashb to what semver.org actually says about 0.x versions... [20:13] ashb: inimino: it depends how you read clause 2 [20:13] ashb: maybe not clause 2 [20:14] inimino: ACTION looks [20:14] inimino: # [20:14] inimino: Major version zero (0.y.z) is for initial development. Anything may change at any time. The public API should not be considered stable. [20:14] ashb: 9 [20:14] inimino: seems pretty unambiguous to me [20:14] ashb: Patch version Z (x.y.Z | x > 0) MUST be incremented if only backwards compatible bug fixes are introduced. [20:14] ashb: oh > 0 [20:14] bpot has joined the channel [20:14] ashb: anyway - i think 0.2 would have been a better idea [20:15] ashb: otherwise there is little point have the ".1" in there [20:16] inimino: well, ryah_away already promised that 0.2 will have a stable API [20:16] ashb: then he's not follwing semver. for shame etc. etc. [20:16] inimino: relatively stable. [20:16] inimino: but no, I think we just established that he is :) [20:16] RayMorgan has joined the channel [20:17] inimino: anyway 0.2 is the "some semblance of stability" release [20:17] stepheneb has joined the channel [20:18] inimino: the bigger picture would be that you can't take much from the version numbers without knowing the project's own conventions... [20:18] mrjjwright has joined the channel [20:18] jashkenas: just to add another opinion to the IRC log, I think that the backwards incompatibility of Node is a wonderful thing. [20:19] ashb: well right now you can't take anything from node version numbers [20:19] ashb: other then one version is newer than another [20:19] inimino: e.g. semver wouldn't tell you anything about the even vs. odd minor level numbers used by the linux kernel for a long time [20:19] jashkenas: Young OSS projects are like sharks ... they need to swim forward to survive. [20:19] ashb: jashkenas: sure i have no problem with that, just the version # chosen [20:19] inimino: anyway, yes, breaking backward compatibility often is great at this point [20:20] inimino: if node is a success, eventually it will have orders of magnitude more users than it does now [20:21] inimino: we can afford some pain for their benefit [20:22] ashb: ACTION stops stiring up noise and goes back to writing code [20:22] aho has joined the channel [20:24] mikeal1 has joined the channel [20:26] dnolen_ has joined the channel [20:28] Tim_Smart has joined the channel [20:32] Tim_Smart: ryah_away: ping? [20:33] kennethkalmer has joined the channel [20:38] gwoo has joined the channel [20:45] mattly has joined the channel [20:49] creationix has joined the channel [20:50] mumrah has left the channel [21:15] dandean has joined the channel [21:48] yhahn has joined the channel [21:49] creationix: I'm having trouble using libev on a sparc based machine [21:49] creationix: http://gist.github.com/316988 [21:50] creationix: I'm pretty inexperienced with c coding, so it's probably something simple in my gcc commands [21:50] creationix: the same command works fine on my mac [21:52] ashb: creationix: `which ld`? [21:52] ashb: maybe its picking up sun ld not gnu ld? [21:52] ashb: beyond that i don't know [21:52] ashb: ohhh wait [21:52] ashb: the ceil is you need -lm [21:53] creationix: m? Math? [21:53] ashb: creationix: is there a .pc file in the libev dir? [21:53] ashb: yeah [21:53] ashb: and -ltr for the clock_gettime [21:53] creationix: *.pc: No such file or directory [21:53] creationix: nope [21:53] creationix: I'll try the extra -l flags [21:53] steadicat has joined the channel [21:54] creationix: got closer [21:54] creationix: ld: fatal: library -ltr: not found [21:54] ashb: rt sorry [21:54] creationix: all realtime [21:54] creationix: *ahh [21:55] creationix: ok, that seemed to compile now to check the extra flags on osx [21:55] creationix: I'm starting to see why c project use a configure script [21:55] creationix: makefiles aren't very portable [21:55] ashb: yeah [21:57] ashb: what are you compiling? node? [21:57] creationix: I wish, V8 isn't supported on sparc [21:57] ashb: oh yeah [21:57] creationix: I'm just using libev for a school project [21:57] ashb: i should really see if hippo works on sparc [21:58] ashb: and if so write some node-like apis [21:58] ashb: or i would if i could be sure my effort wouldn't be wasted by the api changing again ;) [21:58] creationix: lol [21:58] creationix: I think it will be pretty stable once streams land everywhere [21:58] ashb: ACTION is never one to miss an opportunity to complain [21:59] creationix: is there a way to do a simple platform check in the makefile [21:59] creationix: -lrt doesn't work on osx [21:59] ashb: of you don't care about windows then uname [21:59] ashb: uname -s [22:00] ashb: platform = $(shell uname -s) [22:00] ashb: (you'll need to use gmake on solaris for that) [22:00] jashkenas has left the channel [22:00] ashb: if `make` isn't a gmake already [22:00] creationix: hmm, could I just use plain bash if statements [22:00] ashb: see if that works first [22:00] ashb: if it does then great [22:01] creationix: of course I'll have to look up the syntax, It's been a few years [22:01] ashb: let me see what sort of things wes does [22:01] ashb: i know he does a lot of work on solaris [22:02] ashb: http://code.google.com/p/gpsee/source/browse/Makefile#66 [22:02] ashb: lookes like UNAME_SYSTEM might be an auto var [22:02] ashb: then hjave SunOS_config.mk and Darwin_config.mk [22:03] creationix: oh, that's cool, just have two version of the command and include dynamically [22:03] ashb: yup [22:04] yhahn has left the channel [22:09] teemow has joined the channel [22:11] mrjjwright has joined the channel [22:11] gbot2 has joined the channel [22:38] charlenopires has joined the channel [22:44] stepheneb has joined the channel [22:55] steadicat has joined the channel [22:59] alexiskander has joined the channel [23:09] chakrit has joined the channel [23:10] dmpk2k has joined the channel [23:12] teemow has joined the channel [23:25] dekz has joined the channel [23:26] mattly has joined the channel [23:30] dekz_ has joined the channel [23:30] dekz has joined the channel [23:32] alexiskander has joined the channel [23:38] unomi has joined the channel [23:52] aho has joined the channel [23:52] kriskowal has joined the channel