[00:05] konobi: creationix: any idea when you might switch node-router.js to index.js ? [00:06] creationix: konobi: rename it? [00:07] konobi: creationix: not as easy when you're attempting to include it as a submodule [00:07] kriskowal: _ry's talk at ssjs is up http://j.mp/cNRLcv [00:08] RayMorgan has joined the channel [00:12] Booster has joined the channel [00:18] micheil has joined the channel [00:33] tmpvar: nice @ _ry [00:33] tmpvar: not bad for being thrown onstage haha [00:36] kenneth_reitz has joined the channel [00:36] kenneth_reitz: anyone build an irc server/client with node.js yet? [00:36] mikeal has joined the channel [00:38] MattJ: Thanks kriskowal :) [00:38] MattJ: kenneth_reitz: No, because XMPP is the future :) [00:38] kenneth_reitz: haha :) [00:38] tmpvar: there have been irc clients [00:38] kenneth_reitz: oh? [00:39] kenneth_reitz: that's really what i'm looking for [00:39] kenneth_reitz: i'm tired of waiting for leafychat to be released [00:40] tmpvar: http://github.com/gf3/Jerk [00:40] tmpvar: uses an IRC client lib, but is a bot [00:41] kenneth_reitz: should be enough to get me started [00:41] kenneth_reitz: thanks :) [00:41] tmpvar: yup [00:41] alexiskander has joined the channel [00:44] MattJ: kenneth_reitz: and you think I was joking :) [00:45] kenneth_reitz: of course it is [00:45] kenneth_reitz: you're in irc now though P [00:45] kenneth_reitz: * :P [00:48] huma has joined the channel [00:49] huma: don't you think that blue color on the grey background is hard on the eyes at http://nodejs.org/api.html? [00:52] kenneth_reitz: huma: not at all [00:53] huma: well, disable css works anyway :) [00:53] bentomas has joined the channel [00:54] MattJ: kenneth_reitz: Curious what you're using it for then [00:58] mikeal has joined the channel [00:59] bpot has joined the channel [01:12] icey has joined the channel [01:13] gwoo has joined the channel [01:24] dnolen has joined the channel [01:26] kenneth_reitz: MattJ: irc? [01:26] MattJ: Yeah [01:26] kenneth_reitz: freenode and the like [01:28] dnolen has joined the channel [01:28] MattJ: Well, I meant why you would want an IRC client/server in Node [01:28] kenneth_reitz: ah [01:28] kenneth_reitz: behind the firewall dev/ops realtime logging [01:33] michaelk^ has joined the channel [01:33] MattJ: So why not XMPP? :) [01:44] bronson has joined the channel [01:51] icey has left the channel [01:55] paulbaumgart has joined the channel [01:55] paulbaumgart has left the channel [02:00] Booster has joined the channel [02:14] bpot has joined the channel [02:19] mikeal has joined the channel [02:48] binary42 has joined the channel [03:02] steadicat has joined the channel [03:14] eelco_ has joined the channel [03:23] konobi: _ry: node-waf will only work if node as a whole has been installed somewhere? [03:30] creationix: _ry: where's an example of a tcp client in evcom? [03:31] creationix: nm, line 216 of test.c has one [03:49] maushu: Hmm, I just had an idea for a node manager that manages node programs. [03:50] maushu: It could reload the program if it detected any changes in the files. [03:52] tmpvar: that is a possible solution [03:53] tmpvar: spawn off a new instance with the new files and route all new requests to the new instance [03:53] tmpvar: take down the old ones as they are done working [03:53] Tim_Smart: maushu: Yeah the idea has been thrown around aready [03:53] tmpvar: spawn new ones to replace the old [03:53] maushu: My idea was also using a web interface. [03:53] gwoo: Tim_Smart: do you know if anyone has started anything similar? [03:54] Tim_Smart: gwoo: There was some work on a require.hot [03:54] gwoo: yeah [03:54] gwoo: but that's a little different right? [03:54] Tim_Smart: otherwise a file watcher + createChildProcess would be fine [03:54] tmpvar: someone was attacking this, but then came up to a wall when they hit submodules iirc [04:05] binary42 has joined the channel [04:16] joshbuddy has joined the channel [04:19] erikvold has joined the channel [04:22] erikvold: hey guys, I'm trying to install node.js on osx 10.5 and ran ./configure, and I see a few "not found" and "failed" and I'm unsure what to do at this point. Are things ok to move on or not? [04:23] tmpvar: umm [04:23] tmpvar: did it complete successfully? [04:23] cloudhea has joined the channel [04:23] erikvold: it said "'configure' finished successfully (4.895s)" ok the last line [04:24] erikvold: on* [04:24] erikvold: should I try to resolve these fails and not founds and try again? [04:27] mikeal has joined the channel [04:30] gwoo: erikvold: use homebrew :) [04:30] creationix: erikvold: there will always be some "failed" and "not found" entries depending on your platform. For example, kqueue only works on osx and epoll only works in linux [04:30] mjr_: if you run make, do you get a working node? [04:30] creationix: run make and make test to see if it's good [04:33] rictic has joined the channel [04:35] erikvold: k will try [04:35] erikvold: gwoo: homebrew? [04:36] gwoo: erikvold: http://github.com/mxcl/homebrew [04:37] kenneth_reitz has joined the channel [04:37] gcr has joined the channel [04:37] gwoo: erikvold: brew install node :) [04:37] erikvold: gwoo: ahh thanks, is that like macports? [04:38] gwoo: erikvold: yeah [04:38] gwoo: but better [04:38] erikvold: cool thanks [04:38] mjr_: homebrew looks awesome. [04:38] erikvold: if I run make, can I run brew install node later? [04:39] gcr: Hey guys! n00b question here: I have a bunch of jinja2 templates from an... *cough* earlier version of this project, and I'd like to port them to some node.js template system. Which would you recommend I use? I'm willing to learn new syntax, but I really like jinja's block-based template inheritence in particular. [04:39] gwoo: erikvold: yup [04:40] gwoo: gcr: port jinja to node :) [04:41] gwoo: gcr: that would be more fun than changing all your templates [04:41] gcr: Hee. I just might take Mustache or something and add that block inheritance on. [04:41] gcr: gwoo: True though [04:42] PyroPeter has joined the channel [04:43] gwoo: mjr_: homebrew is totally awesome. not only does it install the minimum quickly, but it also makes it super easy to create your own formulas [04:43] gwoo: im sure the npm will be about the same :) [04:46] erikvold: hmm when I tried 'make install' I got the following error: "cannot create folder '/usr/local/include/node/' (original error: [Errno 13] Permission denied: '/usr/local/include/node/')" [04:47] gwoo: erikvold: sudo [04:47] gwoo: erikvold: sudo make install [04:48] maushu: Huh, isn't "for each...in" working? [04:48] erikvold: gwoo: ah right tyvm [04:49] erikvold: sweet test time [04:49] gwoo: nice [04:49] erikvold: seems to be good [04:52] [Pwner]John has joined the channel [04:56] bpot has joined the channel [04:56] mikeal has joined the channel [04:57] erikvold: w00t got an example.js running thanks gwoo, creationx, and mjr_ ! [04:57] gwoo: erikvold: storm the castle! [04:58] erikvold: =] [05:06] maushu: Forget storming! NUKE IT TILL IT GLOWS! [05:37] bpot has joined the channel [05:45] siong1987 has joined the channel [05:58] creationix: _ry: you there? [06:10] konobi: _ry: pull request incoming [06:11] micheil has joined the channel [06:15] micheil has joined the channel [06:23] huma has left the channel [06:28] creationix: konobi: ok [06:54] alex-desktop has joined the channel [06:59] mikeal: where is process.compile implemented? [07:06] dnolen has joined the channel [07:34] bentomas has joined the channel [07:36] bentomas has joined the channel [07:55] abadr has joined the channel [07:57] pigdude has joined the channel [07:57] chrischris has joined the channel [07:57] abadr has joined the channel [08:25] piranha has joined the channel [08:27] qFox has joined the channel [08:43] brapse has joined the channel [09:09] blastbyte has joined the channel [09:16] lifo has joined the channel [09:19] markwubben has joined the channel [09:21] bryanwb_vm has joined the channel [09:26] mikeal has joined the channel [09:31] dnolen_ has joined the channel [09:32] markwubben has joined the channel [09:39] felixge has joined the channel [09:53] mcarter has joined the channel [09:57] unomi has joined the channel [10:15] michaelk^ has joined the channel [10:19] markwubben_ has joined the channel [10:22] piranha_ has joined the channel [10:22] BBB has joined the channel [10:24] Tim_Smart has joined the channel [10:25] hassox has joined the channel [10:47] christkv has joined the channel [10:49] rtomayko has joined the channel [10:54] bryanwb_vm has joined the channel [11:25] sveisvei has joined the channel [11:50] maritz has joined the channel [11:53] mattpardee has joined the channel [11:56] mattpardee: Hi everyone- I've got node.js running on OSX 10.6, and I'm trying to set up an instance of a server running on a subdomain of localhost [11:56] mattpardee: is there a way to accomplish this? Attempts to do this by simply listening on the subdomain have resulted in error [12:01] michaelk^: mattpardee: let node run on a different port (i.e. 8000) and use something like mod_proxy in your webserver [12:03] mattpardee: aha. OK great thanks! [12:14] maritz: is there no way to do this in node? [12:20] sveilin has joined the channel [12:21] michaelk^: wouldn't know how unless your subdomain has its own ip [12:29] christkv: anybody got the 0.1.30 branch of express running ? [12:30] christkv: or does it run on 0.1.31 ? [12:50] Booster has joined the channel [12:50] christkv: never mind [12:58] BBB has joined the channel [12:59] micheil: hassox: you about man? [12:59] hassox: hey mate [12:59] hassox: sup? [13:00] micheil: hassox: I'm working on a rack module, need your help with something, probably best to talk in a separate chat. [13:08] unomi has joined the channel [13:49] Davedan has joined the channel [13:49] hassox has left the channel [13:49] Davedan: does node have features similar to erlang? [13:50] Davedan: can I spawn processes? is there message passing? [13:53] felixge: I wish object creation wasn't this expensive in v8 :| [14:01] tisba has joined the channel [14:03] tisba_ has joined the channel [14:03] binary42 has joined the channel [14:04] kriszyp has joined the channel [14:11] Davedan has left the channel [14:43] malte_ has joined the channel [14:43] malte_: Hey, felixge, you here? [14:43] felixge: malte_: y [14:44] malte_: great :) Does dirty work with .30? [14:44] felixge: malte_: no, but that's what I'm working on right now [14:44] felixge: malte_: plus making it 10x faster along the way ;) [14:44] malte_: :) [14:45] felixge: malte_: want to hack something together with it? [14:45] malte_: Seen my social graph traversal thing? [14:45] malte_: http://node.nonblocking.io/?from=felixge&to=dalmaer [14:46] malte_: Want to use dirty as the data store [14:46] malte_: its a perfect match [14:49] felixge: malte_: yeah, I saw that - it's very cool :) [14:49] felixge: malte_: well, hopefully I have a running version of dirty in an hour again [14:49] felixge: the code is going to be even simpler than it was [14:50] felixge: I'm dropping the dual array/object setup for referencing keys/values in favor of using just an object [14:50] felixge: Iterating over all records will suffer in performance, but get/set will increase like crazy [14:50] felixge: an iterating over all records is bad / blocking anyway, it's better to build indexes ahead of time using events [14:51] malte_: Maybe filter should not be a sync operation (at least to leave room for future optimizations and to keep the API stable after sharding) [14:57] malte_: felixge: You sure about dropping the array for storage? The array performance is dramatically better [14:58] felixge: malte_: the array is only faster for iterating, everything else is slower [14:59] felixge: malte_: removing elements is really difficult / expensive with the array as well. You almost need a special GC for that [14:59] malte_: Unless you really care about performance and cheat by caching the array pointers (which is do in my graph to model the edges) [15:00] malte_: For general purpose you are most certainly right [15:00] felixge: malte_: I know (for var k in obj) is very slow in v8, but I a) hope they will optimize it, b) when this becomes your bottleneck, you should start indexing / building views anyway [15:00] malte_: For large collections it can take seconds to start iterating [15:01] felixge: malte_: I know. But it feels like that's a bug [15:01] felixge: malte_: I also need to test that against v8 head [15:01] felixge: malte_: let me do that right now in fact [15:03] micheil has joined the channel [15:05] felixge: malte_: performance seems to be O(1) for me, testing further [15:09] felixge: malte_: http://gist.github.com/324400 [15:10] felixge: malte_: so array is 10x faster for iterating. But I'd rather have this order of magnitude in speed for get/set [15:10] malte_: How much do you get in get/set? You save 1 array lookup, right? [15:14] felixge: malte_: ok, it's not O(1) :( [15:14] felixge: malte_: For 33k objects I get only 2.4 million iterations / sec [15:14] felixge: * 33 million keys [15:15] felixge: malte_: well, my previous dirty implementation had 100k writes / sec [15:15] Cainus has joined the channel [15:15] felixge: malte_: With the new one, I'm getting 5 million writes / sec [15:16] felixge: malte_: I think the old approach could be optimized, but probably not to more than 1 million writes /sec [15:16] felixge: and it's a lot more difficult, especially when it comes to removing elements [15:17] malte_: I'd like to benchmark delete. Not sure its O(1) [15:17] felixge: malte_: benchmark it on object / array? [15:17] malte_: Because iterations in most JS implementations on objects is in insertion order [15:18] felixge: malte_: well, the problem is that I had an object which mapped id -> arrayIndex. If you remove an element from the array, you need to re-index the whole object map [15:18] malte_: VACUUM [15:18] felixge: you could also set the old array element to undefined, but that's kind of ugly [15:18] felixge: malte_: ? [15:19] malte_: set to undefined and then reuse with VACUUM like in any good database :) [15:19] felixge: malte_: you still need to be prepared to hit empty elements in a forEach() [15:19] malte_: http://www.postgresql.org/docs/7.4/interactive/sql-vacuum.html [15:21] felixge: malte_: also with an array, every value needs to be an object so you can attach the '_id' to it [15:21] felixge: malte_: that's wasting memory and also, object creation is very expensive in v8 [15:22] malte_: I know, my graph traversal system reuses all memory on its own stack on every traversal for that reason [15:22] felixge: malte_: I'm planning to write additional modules for dirty that add certain features in exchange for certain tradeoffs. [15:22] felixge: one plugin could keep an array with all keys in the database which you could use for o(1) iteration [15:23] felixge: write performance would suffer, but all other benefits remain [15:23] felixge: But my thinking is, if you really care about performance, you shouldn't rely on mindless iteration over all your records. That's asking to be slow [15:24] PowerToExt has joined the channel [15:24] felixge: If you need to iterate only over portions, you could build your own array-based indexes of those [15:25] malte_: Was thinking about extending set to automatically write to indexes using a chain of filters [15:26] felixge: malte_: exactly, I want plugins for indexing / view building etc. [15:26] felixge: malte_: probably even add some couchdb-style map reduce thingies [15:26] felixge: malte_: I'm just thinking the internal storage should focus on a) Simplicity, b) Speed for get/set [15:26] felixge: with those design goals reached, everything else is easy to build on top [15:28] felixge: malte_: it would also be very easy to write a C++ version of dirty later on. This version could use much more efficient storage internally, while still keeping the ease of use from the outside [15:28] malte_: or even an erlang version :) [15:29] felixge: malte_: why erlang? [15:29] malte_: OK, I don't want to keep you from working on this. Let me know when I can try it in .3 and I'll give it a spin [15:29] malte_: just kidding [15:31] alterecco has joined the channel [15:35] felixge: malte_: k, will ping ya :) [15:37] markwubben has joined the channel [15:46] BryanWB has joined the channel [15:47] softdrink has joined the channel [16:11] blastbyte has joined the channel [16:33] drostie has joined the channel [16:35] jashkenas has joined the channel [17:00] michaelk^ has joined the channel [17:00] alex-desktop has joined the channel [17:02] markwubben has joined the channel [17:17] cloudhead has joined the channel [17:50] malte_ has joined the channel [18:03] maushu has joined the channel [18:03] maushu: Could anyone help me with this function? https://gist.github.com/104b92d7ed7fdc6de319 [18:03] maushu: I'm having some sync problems... it always return the same filename for each file. [18:04] maushu: My async skills are low. [18:04] brapse has joined the channel [18:04] ashb: `closure [18:04] gbot2: see `closures [18:04] ashb: `closures [18:04] gbot2: http://jibbering.com/faq/faq_notes/closures.html or http://blog.morrisjohns.com/javascript_closures_for_dummies [18:04] ashb: read those [18:04] ashb: then convert the for loop to be filename.forEach [18:04] jashkenas has left the channel [18:04] maushu: Okay, thanks. [18:05] tmpvar: i wish the solution to my problem was that easy lol [18:09] maushu: So my problem is that the variable keeps changing till the name of the last filename? [18:09] maushu: That is what I thought so. No idea on how to fix it. Like copy by value or somehting. [18:10] maushu: Oh wait, ashb told me about forEach. [18:10] Booster has joined the channel [18:11] ashb: basicaly sinceyou are looping anyway and would need a new function to get the scope [18:11] ashb: you may as well use forEach which does exactly that for you [18:11] maushu: ashb, ah, I understand. Thanks. [18:11] maushu: I knew what the problem was, not how to fix it. :3 [18:12] ashb: i just wish 'function(' was fewer chars :) [18:14] voodootikigod_ has joined the channel [18:19] aurynn: tab-expansion. [18:22] tisba_ has joined the channel [18:24] MattJ: I used an editor with tab expansion once and it drove me insane [18:24] MattJ: I guess I type fast enough to not need it [18:29] jashkenas has joined the channel [18:32] jashkenas: _ry: do you want to settle on either process.ARGV or process.argv? Right now, because it's a naked property, you can replace one without affecting the other, and confusion ensues. [18:32] tmpvar: im pretty sure that lowercasing GLOBAL,ARGV, etc was in the plan [18:33] jashkenas: that would be great. [18:34] unomi has joined the channel [18:34] rictic has joined the channel [18:47] blastbyte has joined the channel [18:57] cedricv has joined the channel [19:12] cedricv has joined the channel [19:16] dandean has joined the channel [19:16] siculars has joined the channel [19:23] mikeal has joined the channel [19:29] Booster has joined the channel [19:32] Tim_Smart has joined the channel [19:35] tlrobinson_ has joined the channel [19:38] abadr has joined the channel [19:49] MattJ: jashkenas, tmpvar: Quoth the ChangeLog: " * Downcase process.ARGV, process.ENV, GLOBAL (now process.argv, process.env, global)" (0.1.27) [19:49] tmpvar: cool [19:49] malte_ has joined the channel [20:03] gwoo has joined the channel [20:11] piranha has joined the channel [20:14] CIA-77: node: 03Rasmus Andersson 07master * r374300c 10/ (doc/api.txt src/node.cc test/simple/test-umask.js): Updated patch of node.cc for supporting reading of umask - http://bit.ly/9BFnAy [20:14] CIA-77: node: 03Ryan Dahl 07master * rd67fdcc 10/ Makefile : clean should not docclean - http://bit.ly/cCexum [20:26] kennethkalmer has joined the channel [20:28] alisdair has joined the channel [20:40] hober has joined the channel [20:40] tilgovi has joined the channel [20:40] tilgovi: morning, my nodular friends [20:41] tmpvar: hi there [20:45] kjeldahl_ has joined the channel [20:48] mikeal has joined the channel [20:48] tilgovi: If I want to distribute code for a node addon that serves as a binding to a c++ library and I want to ship the dependencies with it, how should I make it from the waf file? [20:49] tilgovi: using python, cd into the dependency dir and popen configure and make? [20:49] tilgovi: that would reconfigure it every time, though [20:50] tilgovi: I suppose I can just link and include the right paths in the build for the addon and leave it up to build instructions/readme/common sense to build the dependency first [20:50] jashkenas has left the channel [20:50] tilgovi: talking out loud answers at least 45% of my questions [20:51] ashb: goood thing my cardboar cutout progammer services are free ;) [20:51] ashb: *cardboard [20:51] tilgovi: ha. that would make a funny product. [20:51] tilgovi: need to bounce an idea off someone? our cardboard cutout programmer standup will listen intently EVERY TIME [20:53] mikeal: i want [20:53] mikeal: you could use bloxes and make a 3D one :) [20:55] isaacs has joined the channel [21:00] kriszyp has joined the channel [21:04] steadicat has joined the channel [21:14] tisba has joined the channel [21:20] felixge has joined the channel [21:20] felixge has joined the channel [21:26] maushu: Can I use setInterval for high values? Like hours? [21:26] maushu: I would like to avoid using cron. [21:27] maushu: (Not to mention that I want this timer to just run when the program is running.) [21:27] pdelgallego has joined the channel [21:33] felixge has joined the channel [21:43] tmpvar: maushu, i dont see why not [21:46] mikeal has joined the channel [21:46] micheil_mbp has joined the channel [21:46] binary42 has joined the channel [21:58] isaacs: i think node should use a red lemur as its logo [22:00] ashb: because of? [22:01] mikeal: have you seen a lemu [22:01] mikeal: er lemur [22:01] mikeal: it's ADORABLE [22:01] mikeal: OH [22:01] mikeal: if you use a Savannah Cat [22:01] mikeal: http://en.wikipedia.org/wiki/Savannah_cat [22:02] mikeal: i know someone who has one in SF :) [22:02] isaacs: ashb: you on the nodejs mailing list? [22:02] ashb: nope [22:02] ashb: too many mailing lists i dont read already :) [22:03] tilgovi: mikeal: I want to play with a savannah cat [22:03] tilgovi: want to make an introduction :) [22:03] tilgovi: ? [22:04] mikeal: admc has one [22:04] mikeal: he'll be at one of the open Fridays eventualy [22:05] tilgovi: man. friday is like the one day of the week I consistently have a meeting I'm supposed to attend. [22:05] mikeal: what asshole schedules meetings on a friday? [22:05] mikeal: or ever! [22:05] tilgovi: i'm not sure I should comment on that. [22:05] mikeal: haha [22:08] itistoday has joined the channel [22:10] mikeal: tilgovi: you can stop by any day tho [22:10] mikeal: we have an open door [22:10] tilgovi: word [22:10] mikeal: mde is coming by tomorrow [22:11] tilgovi: i just met a kid from slide last night [22:11] bpot has joined the channel [22:11] mikeal: which one? [22:11] mikeal: they weren't just laid off? [22:12] mikeal: that place is crazy right now [22:12] tilgovi: haha. no. he wasn't. [22:12] mikeal: over the last few months almost all their senior developers left [22:12] tilgovi: his name's cameron. [22:12] tilgovi: I don't think he's senior. [22:12] mikeal: and then they laid off the remaining decent developers because all they are keeping is super pets [22:14] tilgovi: superpetusa.com? [22:14] itistoday: anyone from japan here? Or know japanese immigrants who've lived in the USA whom I can ask a few questions? [22:14] mikeal: no [22:14] mikeal: https://secure.superpokepets.com/spp/login [22:14] mikeal: itistoday: yes [22:14] mikeal: mde [22:14] tilgovi: oh dear god. [22:15] itistoday: mikeal: mde? [22:15] mikeal: well, he's not an immigrant, but he's fluent and married to a japanese woman [22:15] tilgovi: mikeal: he's also not in here right now, afaict [22:15] itistoday: mikeal: any way I could contact him? [22:15] mikeal: itistoday: @mde on twitter [22:15] mikeal: but writes code in node.js [22:16] mikeal: but he writes code in node.js [22:16] itistoday: oh man... now to figure out how ask to speak with his wife without sounding like a total creep! [22:16] mikeal: hahaha [22:16] mikeal: what do you need to ask? [22:16] itistoday: i'd like to ask her some questions related to her reaction to american culture [22:17] mikeal: is this for the census or something [22:17] itistoday: no, for personal research and an essay i'm writing [22:17] isaacs: itistoday: isn't jed a japanese-english translator? [22:18] itistoday: isaacs: i don't know jed :-( [22:18] isaacs: itistoday: he's jed on github, or often enough in this room. the creator of (fab) [22:18] isaacs: seems like a nice chap [22:19] itistoday: but i'm specifically interested in speaking with someone who grew up in japan [22:19] isaacs: ah, then he's the opposite of what you need. [22:20] itistoday: hehe [22:20] itistoday: mikeal: any thoughts on how to ask mde? [22:20] mikeal: do you speak japanese [22:20] mikeal: ? [22:20] itistoday: nope :-( [22:20] mikeal: she doesn't speak english [22:20] aryounce has joined the channel [22:21] itistoday: ah, well maybe he could pass my questions along to her then [22:21] itistoday: (translate them) [22:21] mikeal: just @reply him on twitter [22:21] isaacs: oh, masuidrive, too [22:21] isaacs: (is that the same dude?) [22:22] isaacs: yuichiro masui: http://twitter.com/masuidrive [22:23] itistoday: isaacs: do you happen to know if he's lived/visited the US of A? [22:24] isaacs: itistoday: according to his twitter location, he's near seattle: http://maps.google.com/maps?q=47.614727,-122.18874&oe=utf-8&rls=org.mozilla:en-US:official&client=firefox-a&um=1&ie=UTF-8&hq=&hnear=%2B47%C2%B0+36%27+53.02%22,+-122%C2%B0+11%27+19.46%22&gl=us&ei=YCeUS4noKYLwsgPTufD8Aw&sa=X&oi=geocode_result&ct=image&resnum=1&ved=0CAgQ8gEwAA [22:24] mikeal: ewww Bellevue :( [22:24] itistoday: isaacs: ah nice, i didn't think to check there [22:24] itistoday: cool, well i'll try him first then, thank! [22:24] isaacs: mikeal: hey, people say the same thing about oakland [22:24] itistoday: *thanks! [22:24] isaacs: :P [22:25] mikeal: i've actually lived near Bellevue :) [22:25] mikeal: that's a disparaging remark based on experience not on reputation [22:26] aryounce: Anyone run into this error when trying to deal with a http.ServerResponse object? [22:26] aryounce: TypeError: Object # has no method 'writeHead' [22:27] aryounce: Don't see anything in the channel logs so I thought I'd ask [22:27] mikeal: writeHeader [22:27] mikeal: not writeHead [22:27] aryounce: ugh [22:27] christkv: hey guys I registered nodeblogs.com and planning on putting something up there that will also serve as an example app for express and the mongo driver [22:27] mikeal: oh shit [22:27] mikeal: did that change this week? [22:27] aryounce: mikeal: Any way I can volunteer to update the docs? [22:27] mikeal: the docs are almost always up to date [22:28] christkv: I'm just thinking blog aggregation and github project aggregation. Any other ideas ? [22:28] mikeal: so if I had to guess, if you build ry/node/master right now it'll be writeHead [22:28] mikeal: and writeHeader is the release from last week instead of this week :) [22:28] aryounce: mikeal: Hmm, I have the release from the 5th I think [22:29] isaacs: aryounce: the docs on teh website are up to date with the release link on the websit. [22:29] isaacs: aryounce: the docs in the code are up to date with the code, more or less. [22:29] mikeal: i don't see a change in the ChangeLog [22:29] aryounce: isaacs: I'll rebuild and see [22:30] mikeal: i have the master from some time last week and writeHeader still works for me [22:30] isaacs: aryounce: so, if you have the code from http://github.com/ry/node, it might not be 100% up to date with what's in the docs on http://nodejs.org/api.html [22:30] felixge has joined the channel [22:30] mikeal: isaacs: i don't see this in the ChangeLog [22:30] mikeal: so if it's changed it's only in master [22:30] aryounce: I've got 0.1.30 instead of 0.1.31 [22:30] aryounce: let's see if updating does it [22:30] isaacs: line 262 in the latest http.js is ServerResponse.prototype.writeHead = function (statusCode) { [22:31] isaacs: and 284-286 is: [22:31] isaacs: / TODO eventually remove sendHeader(), writeHeader() [22:31] isaacs: ServerResponse.prototype.sendHeader = ServerResponse.prototype.writeHead; [22:31] isaacs: ServerResponse.prototype.writeHeader = ServerResponse.prototype.writeHead; [22:31] Cainus has joined the channel [22:31] isaacs: rtfs ftw! [22:31] mikeal: hahaha [22:31] mikeal: when did that get added? [22:32] mikeal: aryounce: can you post the code that is calling this to gist.github.com [22:32] aryounce: mikeal: writeHeader was correct. I think I'm just a version behind [22:32] mikeal: ok [22:33] isaacs: b1b84960 lib/http.js (Benjamin Thomas 2010-02-25 20:54:48 +0000 262), according to git blame [22:33] isaacs: aryounce: writeHead is the better one to use. writeHeader will be deprecated eventually [22:34] aryounce: isaacs: No worries. I was just going with the docs [22:34] isaacs: aryounce: oh, ok, i get it [22:34] aryounce: isaacs: I had built Thursday or Friday, and it had since been updated [22:34] isaacs: rigt [22:35] aryounce: isaacs: mikeal: Thanks for the help though [22:35] mikeal: np [22:35] isaacs: np! [22:35] icey has joined the channel [22:37] bpot has joined the channel [22:37] mikeal: isaacs: i just updated npm [22:38] mikeal: and installed the newest [22:38] isaacs: ...and? [22:38] mikeal: and now the npm bin doesn't work [22:38] isaacs: d'oh. [22:38] mikeal: it just does nothing and exits [22:38] isaacs: hm. you might have to remove everything and re-do it [22:39] mikeal: same problem [22:39] mikeal: even after rm -rf ~/.node_libraries/* [22:39] isaacs: trying again.. [22:39] isaacs: hm... works for me? [22:40] isaacs: you doing node install-npm.js? [22:40] mikeal: why do i have an npm-undefined bin in /usr/local/bin [22:40] isaacs: hm... because it didn't get installed right [22:41] mikeal: finally [22:41] isaacs: you should have /usr/local/bin/npm-0.0.5beta [22:41] mikeal: i did rm -rf /usr/local/bin/npm* [22:41] isaacs: ahh [22:41] mikeal: and reinstalled [22:42] isaacs: once these things are a little more stable, i'm going to make the install-npm.js script just update the npm package if it's already there [22:42] isaacs: so, as of about now, you should be able to use npm to uninstall something, and it'll also remove the stuff in /usr/local/bin [22:42] isaacs: so, to update, it should be something like this: npm deactivate npm; npm uninstall npm; node install-npm [22:43] isaacs: er, npm deactivate npm; npm uninstall npm [the old version]; node install-npm [22:43] isaacs: it'd be nice if rm/uninstall could remove everything, though... [22:43] isaacs: hm... [22:47] isaacs: mikeal: anyway, yeah, so now relative requires work in your bins, and you also have dependencies available at require("foo") to pull in the version that's satisfying your package.json file. [22:48] mikeal: so it's activated automatically now? [22:48] isaacs: mikeal: no, i use magic. [22:48] isaacs: mikeal: ;) [22:48] mikeal: haha [22:48] tilgovi: anyone know how I can get the base directory for the wscript file? [22:48] mikeal: in my bin script can i do require('foo') for my own package [22:48] isaacs: mikeal: take a look at the code that gets put in the shim. it links the dep into a folder, then puts that in the require.paths [22:48] tilgovi: inspect.getfile(inspect.currentframe()) gives me which makes me think waf must be eval'ing the wscript rather than executing it [22:48] isaacs: mikeal: hm, no, but tha'ts a good idea [22:48] tilgovi: and there's nothing in conf.env that has the current path [22:49] mikeal: isaacs: so require('foo') only works with bin? i thought that's the only shim you have? [22:49] isaacs: mikeal: the main.js is a shim, too [22:49] mikeal: ahhhh [22:49] isaacs: mikeal: i gotta run. play around, i'll be back later. [22:50] isaacs: mikeal: it's all just javascript, so feel free to poke at it [22:50] mikeal: i will :) [22:50] isaacs: post more issues! i like that. [22:51] tilgovi: ahh, os.getcwd() works [23:06] tilgovi: is it v8 coding style to have method names start with a capital? [23:07] tilgovi: I'm looking at the postgres example addon and that's all over the place [23:07] tilgovi: and args.This() and whatnot [23:07] tilgovi: looks like it [23:08] tilgovi: ACTION thinks maybe he should flip a coin rather than have the debate rising in his head [23:17] aryounce: No path.existsSync()? :( [23:39] gwoo has joined the channel [23:51] erikvold has joined the channel