[00:00] mikeal: did you deploy it? [00:00] ashb: no :) [00:00] ashb: but its fixed which is all that counts? right >_> [00:00] ashb: mjijackson: if you notice any problems, let me know [00:00] ashb: i've sorted out all the edge cases i've run across, but entirely possible there are more [00:01] derferman has joined the channel [00:01] ashb: mikeal: thanks - guess i better add proper accept parsing in [00:03] ashb: mikeal: hmmm so whats the priority of that last application/json? [00:03] ashb: since its type,type;q=prio isn't it? [00:03] ashb: (i.e. the q= applies to the stuff on the left? [00:04] mikeal: i don't pay attention to any of that and just do left to right priority [00:04] ashb: i thought order was irrelevant [00:04] mikeal: it's not [00:05] mikeal: it's left to right [00:05] ashb: thats not what the spec says [00:05] ashb: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html [00:05] ashb: Accept: audio/*; q=0.2, audio/basic SHOULD be interpreted as "I prefer audio/basic, but send me any audio type if it is the best available after an 80% mark-down in quality." [00:05] joshholt has left the channel [00:06] joshholt has joined the channel [00:06] joshholt has left the channel [00:08] mikeal: what is the default level [00:08] ashb: q=1 [00:09] mikeal: man this is insane [00:09] ashb: yeah it is [00:09] mikeal: dumbest header ever [00:09] ashb: ah so *each* mime type needs a ;q= if it shouldn't be 1 [00:09] mikeal: ok, so JSON Viewer plugin for firefox ads this header [00:09] ashb: but left to right does apply [00:10] mikeal: and it just tacks it on to the end :) [00:10] ashb: hmmm tho i think i recall reading that Left->Right doesn't matter [00:10] ashb: but it practice it probably does [00:10] mikeal: and since firefox sets the types it actually cares about to 0.9 application/json wins [00:10] tilgovi has joined the channel [00:10] mikeal: this is why I ignore the accept header and just namespace the different interfaces [00:11] ashb: the 0.9 only applies to app/xml [00:11] ashb: i think [00:11] ashb: text/html,application/xhtml+xml and application/json all default to ;q=1 [00:11] mikeal: who came up with this! [00:11] ashb: a committe ;) [00:11] mikeal: so, when you do one,two,three;p=.8 [00:12] mikeal: that only applies to that last content type? [00:12] mikeal: so one and two are still 1? [00:12] ashb: i think so [00:12] ashb: according to the letter of the spec [00:13] mikeal: remind me never to use this in any app that i ever write [00:13] ashb: it seemed like a good idea at the time >_< [00:13] ashb: i'm begging to regret it [00:13] mikeal: i usually namespace the interfaces anyway and just make sure that the header exists and that the content-type i'm going to use is in there [00:14] mikeal: /api/json/blah/blah [00:14] mikeal: /api/xml/blah/blah [00:14] mikeal: except i usually don't get around to writing the xml one :) [00:14] ashb: i was going for something more explicitly RESTful [00:14] mikeal: REST is great until it's confusing [00:14] ashb: such as when browers come into the picture usually :) [00:18] inimino: yes [00:18] inimino: erm, I was scrolled up [00:19] inimino: that was in reply to "p=.8 applies to the last one only" [00:20] cloudhead has joined the channel [00:21] ashb: hold on i think the spec contradicts itself \o/ [00:21] ashb: "Each media-range MAY be followed by one or more accept-params, beginning with the "q" parameter for indicating a relative quality factor. " [00:21] ashb: it then goes on to give an example of "text/html;level=2;q=0.4" [00:22] ashb: which doesn't begin with the "q" parameter [00:23] inimino: hm... [00:24] inimino: hm, that's interesting [00:24] ashb: it is, isn't it? [00:26] inimino: oh, I see [00:26] ashb: did i read it wrong? [00:26] inimino: level=1 is a parameter [00:27] inimino: it's part of the media-range production [00:27] inimino: which comes before the accept-params [00:27] ashb: oh; [00:27] ashb: i missed that [00:27] ashb: where is the parameter production? [00:27] inimino: that's why they have that note about how you can't have media type parameters named 'q' [00:28] inimino: I don't see it, it's probably aliased to 'token' or something somewhere later [00:28] ashb: yeah param = attr "=" value [00:28] ashb: attr = token [00:28] ashb: vlaue = token | quoted-string [00:28] softdrink has joined the channel [00:28] ashb: (ยง3.6) [00:29] ashb: eh sod it: .split(/\s*,\s*/) will do [00:29] inimino: not one of my favorite specs [00:29] inimino: hehe [00:29] ashb: its technically wrong as you could have a , inside a quoted string [00:30] ashb: but like i give a damn about that - its damn unlikely to happen [00:30] inimino: hehe [00:31] derferman has joined the channel [00:32] Tim_Smart: Anyone here listened to the Ajax.org podcast from thechangelog? [00:37] _ry: what's the best way to set a getter on a prototype? [00:38] ashb: Object.defineProperty probably :) [00:39] _ry: is Object.defineProperty(Class.prototype, 'foo', fn) [00:39] _ry: going to work? :/ [00:42] Tim_Smart: _ry: Usually the most universal way is: Object.__defineGetter__('foo', fn); [00:42] ashb: js> Object.__defineGetter__ [00:42] gbot2: ashb: [00:42] Tim_Smart: where Object is your prototype etc [00:42] Tim_Smart: so: Class.prototype.__defineGetter__('foo', fn); [00:42] ashb: won't that define it on the Object prototype itself [00:43] ashb: yeah [00:43] ashb: _ry: v8 shoud get a fucking move on and implment ES5 [00:43] ashb: cos Object.defineProperty & Object.create fucking rawk. [00:44] _ry: object.defineProperty works in v8, it seems [00:44] ashb: including enumerable: false ? [00:44] Tim_Smart: js> var obj = { get test() { return 5; } }; obj [00:44] gbot2: Tim_Smart: {test:5} [00:44] ashb: thats been working for a while [00:44] Tim_Smart: gbot is spidermonkey I take it [00:44] _ry: node> var obj = { get test() { return 5; } }; obj [00:44] _ry: { test: [Getter] } [00:45] cloudhead: the enumerable stuff works too [00:45] ashb: js> var obj = {}; obj.defineProperty("foo", { value: 2, enumerable: false }); obj [00:45] gbot2: ashb: Error: TypeError: obj.defineProperty is not a function [00:45] ashb: js> var obj = {}; obj.defineOwnProperty("foo", { value: 2, enumerable: false }); obj [00:45] gbot2: ashb: Error: TypeError: obj.defineOwnProperty is not a function [00:45] ashb: er, O. [00:45] _ry: ashb: :) [00:45] cloudhead: yes [00:45] ashb: js> var obj = {}; Object.defineProperty(obj, "foo", { value: 2, enumerable: false }); obj [00:45] gbot2: ashb: Error: TypeError: Object.defineProperty is not a function [00:46] ashb: doesn't exist in what ever gbot is running then [00:47] whoahbot has joined the channel [00:47] stepheneb has joined the channel [00:49] cloudhead: yea it must be running an older version [00:49] ashb: it only landed recently - we had to shim it in [00:56] ashb: http://pastie.org/862439 [00:57] ashb: i think that covers the Accept header crap [00:57] ashb: or at least most of the common uses of it [00:59] Tim_Smart: nodejs_v8: "My node.js probably needs to be upgraded to latest head" [00:59] nodejs_v8: Tim_Smart: "My node.js probably needs to be upgraded to latest head" [01:02] nodejs_v8 has joined the channel [01:03] Tim_Smart: nodejs_v8: "Duh, forgot to re-build the evalcx addon [01:03] nodejs_v8: Tim_Smart: Exception: SyntaxError: Unexpected token ILLEGAL [01:03] Tim_Smart: nodejs_v8: "Duh, forgot to re-build the evalcx addon" [01:03] nodejs_v8: Tim_Smart: "Duh, forgot to re-build the evalcx addon" [01:03] Tim_Smart: still works, good [01:04] dnolen has joined the channel [01:07] nejucomo has joined the channel [01:09] nejucomo: Is anyone working towards making node.js compliant with ECMAScript 5 Strict mode? http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/ [01:10] nejucomo: I am unsure if V8 supports it yet. [01:10] Tim_Smart: nejucomo: That job belongs to the V8 team [01:11] nejucomo: Not exactly. Node.js would also have to conform, and that impacts many design decisions. [01:11] _ry: from the changelong "I think there are also possibilities to simplify [node's promises], and that's what we're currently researching, if [01:11] _ry: except that its secretly not blocking in the backend." [01:11] _ry: oh to be young! [01:12] aryounce has joined the channel [01:12] Tim_Smart: _ry: Yeah that Ajax.org podcast was pretty hilarious. Sounds like they are too busy drinking beer, and can't keep up [01:13] nejucomo: It may be possible, using strict mode, to make node.js capabilities secure, such that you could have mobile code housed in a common server framework. [01:14] andy_l has joined the channel [01:14] nejucomo: I'm uncertain how feasible this is, currently, but it seems like Node.js + strict mode is not too far off. [01:14] _ry: oops i got the quote wrong [01:14] _ry: I think there are also possibilities to simplify [node's promises], and [01:14] _ry: that's what we're currently researching, if we can take an approach with [01:14] _ry: server side javascript that essentially allow people to write blocking code [01:14] _ry: top down except that its secretly not blocking in the backend. [01:15] siculars has joined the channel [01:17] isaacs: _ry: with a pre-processor that compiles to non-blocking JS, that's possible [01:17] _ry: i think unless you do green processes, like erlang - there is no way to abstract non-blocking apis in a way that doesn't suck [01:17] Tim_Smart: _ry: We could essentially do that with registerExtension [01:17] _ry: isaacs: that's going to have to be a very smart pre-processor [01:17] Tim_Smart: but I agree, it would suck [01:17] isaacs: _ry: yeah, that Narrative thing that kriszyp mentioned on the list would do the trick [01:18] isaacs: _ry: basically, instead of doing fs.readfile(file, function (foo) { ... }) you'd do foo = fs->readfile(file); and it'd wrap up everything after it in a cb [01:18] Tim_Smart: people just need to grow up, and learn how to do async [01:19] isaacs: Tim_Smart: yeah, i mean, coders could just man up and use the javascript we have [01:20] isaacs: but the preprocessor doesn't have to be all THAT smart. [01:20] _ry: i think it's going to be more of an annoyance than anything [01:20] isaacs: it's not quite a regexp replace, but almost. [01:20] _ry: but waht about when you debug? what are you going to see? [01:20] Tim_Smart: I mean abstracting it away, just introduces more element for confusion tbh [01:20] _ry: there is so much more then just throwing the rest of the code into a callback [01:20] isaacs: _ry: that's why i don't trust computers to write my code for me ;) [01:21] isaacs: _ry: right, you also need to maintain line numbers (ideally), and convert return and throw into cb(null, val) and cb(er) [01:21] isaacs: _ry: but very much, this is not something that belongs in node. this is a userland problem. [01:22] nejucomo: The "non-async" goal is funny, because then you have the can-of-worms of synchronization to worry about. Why re-invent sync problems? [01:22] isaacs: just open the door with registerExtension or something, and see what we get. coffeescript, mu, narrative, and parenscript will likely be early wins [01:22] isaacs: but there's a whole family of compiled-to-js languages ready to be harnessed. [01:23] isaacs: objj, pyjs, etc. [01:23] isaacs: or was that pyjamas? i forget [01:23] isaacs: oh, haXe, too [01:24] _ry: i think the problem is, programmers think they're smart [01:24] _ry: when actually they're just fucking javascript programmers [01:25] _ry: we shouldn't try to be smart - it's too ahrd [01:25] isaacs: yeah... fucking javascript prog---hey! [01:25] _ry: leave that to the OS programmers [01:25] isaacs: true, being too smart is a bad idea. just look at OS programmers. [01:26] isaacs: earlier today, i tried to send a friend a font file that i'd exported from a zip file. Finder SWORE it was 16kb, but the actual file was some kind of magic 0 byte pointer. [01:26] Tim_Smart: look at linus, I swear he has arrogance problems [01:26] isaacs: osx is way too smart. [01:26] _ry: but linus is smart he can solve the non-blocking thing :) [01:26] _ry: we should just bind posix [01:27] maushu has joined the channel [01:27] Tim_Smart: linux gave us git, so he is cool [01:27] Tim_Smart: but his talks make me lol [01:27] isaacs: and git is awesome because it goes so far out of its way to not be too clever. [01:27] maushu: So, anyone knows where I can find "openid for dummies"? I need to create a library for it. [01:27] Booster has joined the channel [01:27] stepheneb has joined the channel [01:29] kriskowal has joined the channel [01:31] dnolen has joined the channel [01:37] brapse has joined the channel [01:38] nejucomo has left the channel [01:41] creationix has joined the channel [01:42] rtomayko has joined the channel [01:45] joshholt has joined the channel [01:48] inimino: ashb: yes, gbot2 is spidermonkey [01:49] creationix: _ry: do you have any comments or suggestions on the new doc site, or should I keep plodding along? [01:50] pedrobelo has joined the channel [01:50] Tim_Smart: nodejs_v8: Object.defineProperty [01:50] nodejs_v8: Tim_Smart: function defineProperty() { [native code] } [01:50] _ry: creationix: it's lovely [01:51] creationix: do we want the content to be indexable by search spiders? [01:51] creationix: because it's not currently [01:51] creationix: of course the source on github is though [01:52] cedricv has joined the channel [01:52] _ry: yes, i haven't looked at how this works but the whole thing should be loaded in one html file [01:52] creationix: I could make a hybrid version that served static content using node and rendered dynamic content in the browser for everyone else [01:52] _ry: and just show/hide sections [01:53] _ry: how is it working right now? [01:53] creationix: it ajaxes in the markdown directly [01:53] creationix: and renders the interface using client-side views [01:53] _ry: a single file would be rad [01:54] _ry: so that if you disable javascript you just get a nice tree [01:54] creationix: only problem with a single file is that google can't index a particular page [01:54] creationix: just the entire thing [01:54] _ry: oh yeah, true [01:55] creationix: I can modify my views to work on server or client and then serve both [01:56] creationix: the url /api would be server-generated for google bots and /#api would be for client-side and offline rendering [01:56] creationix: and the static version would have a javascript redirect to the dynamic one, so people coming in off the google search results would get sent to the faster versino [01:59] creationix: (I wonder if I'm entering the "trying ti be smart" territory) [02:00] isaacs: why not build it out as separate pages, old-school website-style, and then have a way to fetch just the content bit by doing ?ajax=1 or something, and do the show-hide stuff on the client if it supports it? [02:00] _ry: creationix: i was just thinking that about my one html page :) [02:00] creationix: seriously though, who's going to be reading javascript docs and not have a javascript enabled browser [02:00] isaacs: then the single-page versions all link to the fancy pants site, but onlyonce you click a link, not a javascript redirect [02:00] _ry: creationix: yeah, that's not a big concern [02:01] rektide: chakrit1: sprocket is a tool written in ruby for managing javascript files. it does dependency management, documentation into jsdoc, quite a few things. [02:01] isaacs: the concern isn't non-js browsers. it's that js redirects are SLOW [02:01] rektide: :img-timeline: [02:01] creationix: isaacs: I'm trying to avoid the requirement of pre-generating the html for most users [02:01] _ry: creationix: have you thought about how to do the event tables? [02:01] _ry: (they don't have to be tables) [02:01] creationix: I've got them as ul's right now, but it's still hard to follow [02:01] _ry: could just be a list [02:02] _ry: creationix: once you get markdown going well, you should patch me upstream - we can use "ronn" to generate the man page [02:02] creationix: sweet, I was wondering if there was a markdown to man converter [02:02] _ry: rtomayko wrote it [02:02] _ry: http://rtomayko.github.com/ronn/ronn.1.html [02:03] _ry: ^-- this btw, looks great [02:03] _ry: what if we did something man page styled? [02:03] creationix: I noticed the jQuery site is like man pages, just very different typography [02:04] _ry: did you see http://www.jqapi.com/ [02:05] _ry: also looks nice [02:06] _ry: creationix: (sorry to throw so many ideas at you at once) what if we did a single page thing, like what we have now, except sections can be expanded [02:06] BryanWB has joined the channel [02:06] _ry: i don't know. i'm really glad you're thinking about this though :) [02:07] inimino: I *really* like having everything on one page [02:07] BryanWB: creationix, the api docs look sweet [02:07] _ry: inimino: me too because cmd+f works [02:07] creationix: my current implementation is one ajax download per volume (api and changelog) [02:07] inimino: the fact that the documentation fit on a single page (and I could scroll through it all) was a major plus when I first looked at node [02:08] rektide: i need some kind of super-intelligent IRC client to tell me where this conversation started. [02:08] rektide: :V [02:08] _ry: there was a blog post about that today actually [02:08] _ry: http://ozmm.org/posts/man_what.html [02:08] RayMorgan has joined the channel [02:08] _ry: "Well, man pages do the same thing. For instance, I've installed node.js via homebrew which means I can type man node at any time to see the docs to the entire node.js standard library. Seriously. Thanks mxcl and ryah." [02:09] _ry: well not exactly the same but similar thought. it's nice to have stuff on one page. [02:09] inimino: yeah [02:09] rektide: at least five iphone apps dedicated to man pages, all of which cost money. mwah ha ha. oh ho ho. wow. [02:10] _ry: the API isn't going to get much bigger than this either - so maybe just having the single page be more browsable would be better? [02:10] creationix: ahh, I got it, how about showing the full docs a single page on the right and leave the lhs navigation as it [02:10] creationix: *as is [02:10] creationix: the TOC on the left would just scroll to the right spot [02:11] kriskowal: _ry i have found that node's single page man page is *very* nice, and am hoping to move in that direction for narwhal [02:11] _ry: sounds neat [02:11] JohnResig has joined the channel [02:11] _ry: creationix: the really big question though, is how to deal with multiple versions of docs [02:11] kriskowal: narwhal has a much larger module base though, so i'll probably have a glossary and a page per module when all is said and done [02:11] _ry: just have a whole other site? [02:12] creationix: I plan to put in a query parameter in the url where you can specify the version [02:12] creationix: also it's decoupled enough that you would put in the url for a seperate project and pull data from it [02:13] inimino: creationix: yeah, that sounds great (one page plus #fragids) [02:13] creationix: so I could pull in the readme.markdown for Do and read the docs in the doc browser [02:14] creationix: do hashes scroll inner divs or just the outer page? [02:14] creationix: on static pages [02:14] inimino: both [02:14] inimino: if you have a fragment id inside something with a scroll bar in it, it will scroll both the outer page and the inner box [02:15] inimino: creationix: so you could have something like a bar across the top with 'current version' 'older versions' ...? [02:15] pedrobelo has joined the channel [02:15] creationix: inimino: I was planning on putting a dropdown with a list of the versions [02:16] inimino: sounds nice [02:17] creationix: so how do I read in arbitrary man files without installing them to the system [02:17] creationix: (let me guess, I should man man) [02:17] inimino: man /path/to/file [02:18] creationix: ok, easy enough [02:19] derferman: creationix: after looking over the docs, I have a question. Why did you choose to implement two different scrolling boxes instead of just scrolling the whole page? [02:19] creationix: deferman: I didn't design the site, I stole it from the jQuery giys [02:19] creationix: I'm not sold on it yet [02:20] derferman: yeah, either am I. The content is great, I am just unsure of the two scrolling columns [02:20] wiber has joined the channel [02:21] isaacs: creationix: where's your current build at? [02:21] creationix: http://static.creationix.com/node_docs/browser/#api [02:22] creationix: http://github.com/ry/node_docs [02:22] isaacs: nice [02:22] isaacs: but, yeah, two-scrolling-box is lame. [02:22] isaacs: better to have just two columns [02:22] pedrobelo has joined the channel [02:23] derferman: agreed, I think it will make it much easier to use. I just hate having to scroll two different boxes [02:23] deanlandolt has joined the channel [02:23] creationix: why two columns that scroll together, then you'd not see the toc for most of the content [02:23] creationix: you'd have to scroll to the top every time you wanted to change sections [02:24] creationix: it's two boxes at http://nodejs.org/api.html [02:24] creationix: only the left one doesn't ever have a scroll bar [02:24] creationix: sucks if you're on a small screen [02:24] _ry: yeah [02:24] derferman: correct, and the left side takes up much less room [02:25] derferman: I just feel like the right side box is constraining the content [02:25] creationix: too much padding perhaps [02:25] derferman: One of the things I like about the current node docs site is that the main docs take up the whole page [02:25] derferman: no header, menu, or footer [02:25] joshholt has joined the channel [02:26] vviber has joined the channel [02:26] creationix: true [02:26] derferman: I do agree that lacking a scroll bar on the left is bad for smaller screens [02:27] isaacs: derferman: but if it wasn't position:fixed, that'd be fine. [02:27] derferman: isaacs: correct, that would fix the problem [02:28] derferman: I guess it depends on how long the sections will be. If they are incredibly long, navigating back to the page might be tiresome [02:29] bronson has joined the channel [02:29] creationix: well, thanks for the input everyone [02:30] wiber has joined the channel [02:36] brainss has joined the channel [02:38] Booster_ has joined the channel [02:39] CIA-77: node: 03Ryan Dahl 07net2 * rc1a0ade 10/ (5 files in 4 dirs): Further net2 compatibilities - http://bit.ly/c8GtdP [02:39] CIA-77: node: 03Ryan Dahl 07net2 * r0918bb2 10/ (4 files in 2 dirs): Adjust a few more tests to work with net2 - http://bit.ly/9ViELf [02:47] pedrobelo has joined the channel [02:57] pedrobelo has joined the channel [03:03] indiefan has joined the channel [03:04] wiber has left the channel [03:06] kriszyp has joined the channel [03:15] joshholt has joined the channel [03:15] softdrink has joined the channel [03:21] unom1 has joined the channel [03:26] rictic has joined the channel [03:28] bpot has joined the channel [03:28] kriszyp has joined the channel [03:28] RayMorgan has joined the channel [03:28] mjijackson has joined the channel [03:28] mjr_ has joined the channel [03:28] rednul has joined the channel [03:28] tlrobinson has joined the channel [03:28] ivan has joined the channel [03:34] halorgium has joined the channel [03:36] derferman has joined the channel [03:38] jed has joined the channel [03:39] mikeal has joined the channel [03:40] joshbuddy has joined the channel [03:40] joshbuddy has joined the channel [03:44] whoahbot has joined the channel [03:47] dnolen_ has joined the channel [03:53] bronson has joined the channel [04:05] whoahbot has joined the channel [04:13] mikeal has joined the channel [04:23] jashkenas has joined the channel [04:26] tilgovi has joined the channel [04:39] PyroPete1 has joined the channel [04:39] mikeal: i thought everyone finally stopped caring about coffeescript this week? [04:39] mikeal: :P [04:40] mjijackson_ has joined the channel [04:41] jashkenas: Hey, it's a surprise to me just as much as it is to you. [04:42] mikeal: i find it kind of entertaining how in to it everyone is, because this is not the first nor the last one of these [04:42] mikeal: i just don't care about syntax [04:43] mikeal: and i'm not willing to trade ease of debugging for syntax sugar [04:45] mikeal: i'm surprised aza's pyscript doesn't have more buzz http://www.azarask.in/blog/post/making-javascript-syntax-not-suck/ [04:45] mikeal: it has support in Firefox via an extension already [04:46] mikeal: i just don't want to see bloat in node [04:46] mikeal: because that's the last thing it is right now [04:47] mikeal: i have faith in ry tho :) [04:47] jashkenas: amen to that. It's wonderful to run "cake test" and see everything compile and pass in 0.19 seconds. [04:47] jashkenas: The equivalent hundreds of tests in Ruby would take lord knows how long. [04:47] mikeal: i really can't believe how fast all of this is [04:48] joshbuddy has joined the channel [04:48] mikeal: i learned node and wrote a proxy in a couple hours [04:48] mikeal: and it's faster than the proxy i worked on for 3 years in Python [04:48] mikeal: it's so damn fast [04:50] jashkenas: Well, it's funny to hear about "how into it everyone is", because I certainly don't hear anything out in the boonies here. Just bug tickets. Glad that the bay is picking it up. [04:50] mikeal: it's not that a million people are using it [04:51] mikeal: it's that all the right people are using it [04:51] jashkenas: ah, high-society stuff, debutantes, polo players... [04:51] mikeal: it's not ready for most people to use it yet [04:51] mikeal: the average Python/Ruby developer can't deal with this rate of change in their platform [04:53] mikeal: but it has this feeling of inevitability :) [04:53] mikeal: everyone who is using it loves it [04:53] mikeal: and the people working on it are concerned with real world problems instead of silly language semantics that don't really matter [04:55] _ry: inevitability hm. [04:55] _ry: yeah, i think it nees a lot of work. [04:56] _ry: *needs. inevitability is way too strong. [04:57] mikeal: haha [04:57] mikeal: it needs work while it's already one of the fastest things you can use :) [04:58] jashkenas: The premise isn't too strong. Ubiquitous JS is going to happen. It's just a matter of who gets there first. [04:58] mikeal: what's already built is ahead of Python and Ruby by a mile [04:58] BryanWB: it is one thing to be a great tool, but every great tool needs a killer app to really take off [04:58] BryanWB: as rails was for ruby [04:58] mikeal: that'll come eventually [04:58] _ry: jashkenas: i agree [04:58] mikeal: i don't have much faith in the current web frameworks on the list [04:59] mikeal: but something awesome will come around [04:59] _ry: but i think it's a year out before we start seeing real websites on js [04:59] mikeal: there are already some huge apps on CouchDB which are basically in SSJS [05:00] mikeal: there is a Meebo app with a million installs [05:00] mikeal: and the BBC is using it [05:00] mikeal: does some insane number of requests per day [05:01] mikeal: but the only reason that works is because the view server isn't allowed to do IO [05:01] RayMorgan has joined the channel [05:01] mikeal: it can only do processing [05:01] mikeal: node can do everything [05:01] _ry: (except parse xml ;)) [05:01] mikeal: someone just needs to make it dead simple and there are far less limits [05:01] mikeal: spidermonkey has e4x :) [05:02] mikeal: which i hate [05:02] mikeal: but it's something [05:02] mikeal: isaacs sax parser looks good [05:02] _ry: it needs work [05:02] RayMorgan has joined the channel [05:02] technoweenie has joined the channel [05:02] brainss has joined the channel [05:02] _ry: but yeah, could be really good [05:02] mikeal: everything needs work [05:03] mikeal: right now i just see a lot of promise [05:03] mikeal: even tho we dropped Promises [05:03] _Pilate has left the channel [05:03] mikeal: bu dum chinng [05:04] Pilate has joined the channel [05:05] _ry: ACTION is writing sexy idle timeout hotness [05:06] _ry: it's so sexy and hot [05:06] mikeal: sounds hot [05:06] _ry: writing stuff in js is so much more pleasurable than c [05:06] jashkenas: idle timeouts? [05:08] _ry: for sockets [05:13] binary42 has joined the channel [05:14] morgan: someone sent a pure JS html5 parser to the env-js mailing list today [05:14] morgan: http://groups.google.com/group/envjs/browse_thread/thread/61274fed3458c120?hl=en [05:14] morgan: only briefly looked at it, but with only a couple changes it would load in node [05:15] morgan: didn't get as far as parsing anything [05:23] _ry: morgan: oh cool [05:28] kennethkalmer has joined the channel [05:28] jashkenas has left the channel [05:30] nefD has joined the channel [05:32] mattly has joined the channel [05:43] jan____ has joined the channel [05:48] jed has joined the channel [05:49] aryounce has joined the channel [05:53] isaacs has joined the channel [05:53] jan____ has joined the channel [05:57] neytema has joined the channel [05:57] jan____ has joined the channel [05:59] morgan has joined the channel [05:59] jan____ has joined the channel [06:01] jan____ has joined the channel [06:02] brapse has joined the channel [06:02] jan____ has joined the channel [06:03] jan____ has joined the channel [06:11] shansen has joined the channel [06:24] tlrobinson_ has joined the channel [06:25] JimBastard has joined the channel [06:26] steadicat has joined the channel [06:27] emyller has joined the channel [06:36] dnolen has joined the channel [06:41] JimBastard: anyone an nginx ninja? trying to do NginxHttpRewriteModule with a proxy_pass to node [07:04] mikeal: i haven't used nginx for a while [07:04] mikeal: and to be honest [07:04] mikeal: i never really understood how the rules worked [07:04] mikeal: why not just run node on port 80? [07:04] mikeal: it's pretty good at concurrency :) [07:05] Pilate: because its probably being used by other domains on the box :P [07:05] JimBastard: unsuccessful troll is not troll [07:05] JimBastard: we have a bunch of static content [07:05] JimBastard: as much as i love flooding node with requests [07:05] JimBastard: we are using nginx for the static stuff [07:05] mikeal: node *should* be better at that [07:06] JimBastard: impossible [07:06] mikeal: nginx uses blocking file IO [07:06] mikeal: :) [07:06] mikeal: nonblocking socket IO, but file IO is blocking [07:06] JimBastard: really just have no idea how to configure nginx [07:06] JimBastard: and my russian is terrible [07:06] mikeal: haha [07:06] Pilate: are you using it already? [07:06] JimBastard: so the irc isnt being friendly [07:06] mikeal: i got it working once [07:07] JimBastard: its up and running right now [07:07] mikeal: and even tho it was painful, the rules still seemed simpler than apache [07:07] JimBastard: and the proxy_pass is passing to node [07:07] JimBastard: working well [07:07] Pilate: so what are you trying to add? [07:07] JimBastard: i need to do a rewrite to my proxy_pass server for 404s, passing the path [07:07] JimBastard: so if mydomain.com/blahfoo comes up [07:07] JimBastard: it proxy_pass to 127.0.0.1:8080/blahfoo [07:08] JimBastard: but only if its a 404, has to check if its a static file path first [07:08] mikeal: you can refer to their amazing documentation :P [07:08] mikeal: i don't know if you can do that [07:08] mikeal: have something be a file path but if it's a 404 be something else [07:08] jed has joined the channel [07:13] Pilate: http://wiki.nginx.org/NginxHttpCoreModule#error_page [07:13] Pilate: it mentions 404 fallback [07:24] derferman has joined the channel [07:25] brapse has joined the channel [07:31] BryanWB has joined the channel [07:35] javajunky has joined the channel [07:36] kjeldahl has joined the channel [07:36] javajunky1 has joined the channel [07:37] javajunky1 has left the channel [07:45] kennethkalmer has joined the channel [07:45] kennethkalmer has joined the channel [07:54] unom1 has joined the channel [08:04] markwubben has joined the channel [08:04] piranha has joined the channel [08:05] _ry: JimBastard: i posted an nginx config to the list once [08:07] JimBastard: hi _ry , i didnt see what you posted but im assuming its just the basic proxy_pass? [08:07] JimBastard: i do have node and nginx playing nice, im just trying to get fancy [08:11] jed has joined the channel [08:15] rudebwoy has joined the channel [08:26] rudebwoy has joined the channel [08:30] _ry: JimBastard: oh okya [08:30] _ry: yeah it was just a simple thing [08:31] BryanWB has joined the channel [08:32] JimBastard: thank you though, ill figure it out im sure [08:35] paulca has joined the channel [08:41] rtomayko has joined the channel [08:43] christkv has joined the channel [08:44] spoob has joined the channel [08:45] Mandar has joined the channel [08:59] mAritz has joined the channel [09:33] bronson has joined the channel [09:56] felixge has joined the channel [09:56] felixge has joined the channel [10:02] CIA-77: node: 03Ryan Dahl 07net2 * r252673e 10/ (lib/net.js src/node_timer.cc test/pummel/test-tcp-timeout.js): net2 timeouts work - http://bit.ly/c5Ie1s [10:04] _ry: fuck - forcing update to net2 [10:04] Tim_Smart has joined the channel [10:07] christkv: _ry: any direction on what api document generator you are planning to use ? [10:14] mcarter has joined the channel [10:27] ithinkihaveacat has joined the channel [10:35] christkv: is it possible to use http via a proxy from node ? [10:38] hassox has joined the channel [10:56] MattJ has joined the channel [11:07] bronson has joined the channel [11:09] bru has joined the channel [11:22] Tim_Smart has joined the channel [11:30] rtomayko has joined the channel [11:31] tlrobinson has joined the channel [11:31] derferman has joined the channel [11:41] piranha has joined the channel [12:09] pdelgallego has joined the channel [12:20] paulca has joined the channel [12:37] alex-desktop has joined the channel [12:48] bru_ has joined the channel [12:51] dnolen has joined the channel [12:52] sveimac_ has joined the channel [12:55] sveimac_ has joined the channel [13:09] mAritz has joined the channel [13:13] pjb3 has joined the channel [13:13] bru_ has left the channel [13:17] dnolen has joined the channel [13:28] paulca has joined the channel [13:29] kjeldahl has joined the channel [13:44] siculars_ has joined the channel [13:49] pmuellr has joined the channel [13:50] kriszyp has joined the channel [13:51] dnolen_ has joined the channel [13:52] kjeldahl has joined the channel [13:55] michaelk^ has joined the channel [13:57] BryanWB has joined the channel [13:59] ithinkihaveacat has joined the channel [14:01] jspiros has joined the channel [14:03] kjeldahl has joined the channel [14:09] jherdman has joined the channel [14:14] jed_ has joined the channel [14:17] gf3 has joined the channel [14:20] chakrit has joined the channel [14:23] chakrit1 has joined the channel [14:28] Booster has joined the channel [14:32] sveimac has joined the channel [14:36] n8o__ has joined the channel [14:38] bronson has joined the channel [14:42] binary42 has joined the channel [14:42] binary42 has joined the channel [14:43] stepheneb has joined the channel [14:44] aryounce has joined the channel [14:52] Sidnicious has joined the channel [14:52] joshbuddy has joined the channel [14:52] joshbuddy has joined the channel [14:56] pdelgallego has joined the channel [15:15] BryanWB: anyone know if v8 continue to make significant speed increases? [15:15] BryanWB: or if speed increase will start marginally diminishing? [15:16] ashb: from what i gather JagerMonkey is catching up [15:16] alex-desktop has joined the channel [15:16] ashb: tracing wins in for certain usage patterns and by a long way, and where it doesn't then the general JIT approach will get you a very large way to v8's performance [15:17] ashb: (you still loose a bit initially when tracing is attempted) [15:17] BryanWB: ashb, that's fine if jagermonkey catches up [15:17] BryanWB: ashb, i guess my question is whether js interpreters will continue to make big strides [15:17] BryanWB: in general [15:17] ashb: as far as i'm concernec this kind of competition between v8, JS Core and Spidermonkey can only be a good thing for all of us [15:18] ashb: i think not. [15:18] BryanWB: ashb, definitely, just curious if we will continue to see big speed increases or hit a hard limit [15:18] ashb: now that they are all JITting it is more likely to just get incremental increases [15:19] ashb: which isn't to rule out other big jumps, but they aren't as likely to as big as interpreted -> jitted [15:19] BryanWB: ashb, sure [15:19] softdrink has joined the channel [15:19] aryounce: BryanWB: Depends I guess. I was at I/O last year and the V8 team said they think they still have a long way to go [15:20] BryanWB: ashb, have any idea when we will be able to run pre-jited code rather than having to jit every time? [15:20] ashb: BryanWB: none. I dont follow v8 dev at all [15:20] BryanWB: like .pyc files w/ python [15:20] BryanWB: aryounce, good to hear [15:20] aryounce: BryanWB: at the very least they have a laundry list of improvements over their initial attempt that I'm sure have been slowly making it in [15:21] Mandar has left the channel [15:21] BryanWB: type annotations are in ecma 5 correct? [15:21] BryanWB: code using annotations should be lots faster [15:21] ashb: BryanWB: no - types was ES4 [15:22] BryanWB: ashb, ah so no type annotations [15:22] ashb: no. [15:22] ashb: not until ES next+1 anyway [15:31] kriszyp_ has joined the channel [15:31] ashb: aryounce: did they mention what kind of things they were? [15:31] aryounce: ashb: It's been so long, let me see if I can find the youtube video [15:31] ashb: nm [15:31] ashb: not curious enough to watch a video :) [15:32] aryounce: ashb: ha, there was a Q&A at the end too [15:32] aryounce: ashb: which may not have made it into the video [15:32] ashb: :) [15:32] aryounce: but there was a ton of good info on how V8 worked [15:32] aryounce: the presentation was from one of the first engineers to work on it [15:35] qFox has joined the channel [15:57] sveimac has joined the channel [15:57] cloudhead has joined the channel [16:03] stepheneb has joined the channel [16:03] dnolen has joined the channel [16:04] technoweenie has joined the channel [16:10] alexiskander has joined the channel [16:11] shansen has joined the channel [16:19] r11t has joined the channel [16:19] bpot has joined the channel [16:19] codeswing has joined the channel [16:20] christkv: _ry: the v8 issue http://code.google.com/p/v8/issues/detail?id=636 has been fixed in v2.1.3 [16:25] steadicat has joined the channel [16:25] brapse has joined the channel [16:29] _ry: christkv: nice [16:29] _ry: christkv: api document generator? [16:30] jed_ has joined the channel [16:30] christkv: yeah the replacement for ascidoc [16:30] _ry: oh, i think we're going to do it by hand [16:30] _ry: creationix is working on it [16:30] creationix has joined the channel [16:30] _ry: markdown, i think he's using [16:31] _ry: oh there he is :) [16:31] _ry: christkv: http://github.com/ry/node_docs [16:31] creationix: hey [16:31] ashb: markdown i hear you say? [16:32] ashb: booo showdown [16:32] ashb: creationix: you should totally be using http://github.com/evilstreak/markdown-js/ [16:33] ashb: (i'll tidy it up so its a single file tonight like it can/shoudl be) [16:34] creationix: ashb: how does it compare to showdown [16:34] ashb: creationix: its not a port of the buggy as well markdown.pl ;) [16:34] christkv: something like rdoc would be nice [16:34] ashb: its written to be easily extensible to add dialects [16:35] ashb: and to give you an IR that you can tweak with/inspect if oyu want [16:35] creationix: ashb: that would be great [16:35] ashb: oh. and produces well-formed HTML [16:35] paulca has joined the channel [16:35] whoahbot has joined the channel [16:36] ashb: creationix: see the readme for our reasons for writing it [16:36] ashb: but basically: 1) not tied to DOM, 2) valid, 3) easy to extend [16:36] ashb: 4) WITH TESTS [16:38] creationix: sounds good, I may need to extend the dialact a but [16:38] creationix: *bit [16:38] christkv: I'm just hoping some sort of agreement comes out so I can auto-generate the api docs [16:38] christkv: what do you plan to use for node itself ? [16:38] davidjrice has joined the channel [16:38] ashb: creationix: http://github.com/evilstreak/markdown-js/blob/master/lib/markdown.js#L993 [16:39] ashb: creationix: through to L1108 [16:41] creationix: nice [16:42] ashb: (technically the document meta is part of PHP Extra i think, but eh) [16:43] voodootikigod_ has joined the channel [16:48] RayMorgan has joined the channel [16:50] ashb: creationix: off out for a while - le me know if oyu have any problems [16:54] creationix: alright, thanks [16:55] bpot has joined the channel [16:58] Booster has joined the channel [17:14] michaelk^ has joined the channel [17:15] cedricv has joined the channel [17:16] christkv: I'm putting together a small example app using express + the mongo driver that will run on nodeblogs.com at some point. here's the first screenshot http://skitch.com/christkv/n3epi/node-blogs [17:24] creationix: christkv: so how will it work? pull in rss feeds and display them to the user [17:25] creationix: it does look cool though [17:26] aguynamedben has joined the channel [17:26] kriskowal has joined the channel [17:27] creationix: hmm, I'd better leave before the storm gets up there. It's been hailing and everything here [17:28] bronson has joined the channel [17:29] kennethkalmer has joined the channel [17:30] brandon_beacher has joined the channel [17:31] christkv: yeah it pulls in rss, github and twitters with #nodejs [17:31] creationix: whoops, my last message was for #thechangelog, wrong channel [17:36] aguynamedben has joined the channel [17:43] dandean has joined the channel [17:50] christkv has joined the channel [17:50] bpot has joined the channel [17:55] bpot has joined the channel [17:59] davidjrice has left the channel [18:02] mjijackson_ has left the channel [18:02] mjijackson has joined the channel [18:05] gf3 has joined the channel [18:06] gf3 has joined the channel [18:10] stepheneb has joined the channel [18:11] neytema has joined the channel [18:29] mikeal has joined the channel [18:30] stepheneb has joined the channel [18:36] aho has joined the channel [18:38] RayMorgan_ has joined the channel [18:49] derferman has joined the channel [18:49] joshholt has joined the channel [18:49] atmos: what's the opposite of JSON.stringify ? [18:49] technoweenie: JSON.parse isnt it [18:50] atmos: thanks [18:50] atmos: didn't expect a rubyish api to work for some reason :) [18:50] technoweenie: iirc its the original json lib [18:51] inimino: indeed [18:51] technoweenie: so ruby copied it [18:51] inimino: `g json2 js [18:51] gbot2: JSON in JavaScript - http://www.json.org/js.html [18:51] technoweenie: ruby's json gem, rather [18:52] inimino: Doug Crockford wrote the original implementation, and now it's standardized in ES5 with the same API [18:53] _ry: v8 is insane: [18:53] _ry: 195 files changed, 10342 insertions(+), 3251 deletions(-) [18:53] inimino: heh [18:53] mikeal has joined the channel [18:53] _ry: they add like 8000 lines of c++ every release [18:53] inimino: on that note, I think I'll go write some code [18:56] CIA-77: node: 03Ryan Dahl 07master * r073947c 10/ (195 files in 13 dirs): Upgrade V8 to 2.1.3 - http://bit.ly/bmzFqK [18:57] cedricv has joined the channel [18:59] mikeal: is most of the code they are writing still to support ARM? [18:59] JimBastard has joined the channel [19:00] _ry: mikeal: i don't think so [19:01] _ry: they fixed the fucking gcc 4.4 bug [19:01] _ry: finally! [19:01] _ry: (by disabling -fstrict-aliasing [19:01] derferman has joined the channel [19:02] _ry: "bug" [19:03] _ry: oh man. wtf. http://buildbot.nodejs.org:8010/builders/Linux%202.6.32/builds/68/steps/shell_1/logs/stdio [19:03] _ry: :( [19:03] felixge: I wish v8 changelogs were better [19:03] felixge: _ry: that means they did not fix it? [19:03] CIA-77: node: 03Ryan Dahl 07master * r70b2a44 10/ deps/v8/SConstruct : Remove -Werror from V8 - [19:03] CIA-77: node: 03Ryan Dahl 07net2 * r70b2a44 10/ deps/v8/SConstruct : Remove -Werror from V8 - http://bit.ly/abPX2Q [19:04] CIA-77: node: 03Ryan Dahl 07net2 * r777e1a6 10/ deps/v8/SConstruct : Merge branch 'master' into net2 - http://bit.ly/9NMfdL [19:04] _ry: nope [19:04] _ry: or maybe that's a different issue [19:05] felixge: _ry: are you using the default build bot theme or something custom? [19:06] ollie has joined the channel [19:07] javajunky has joined the channel [19:10] joshbuddy has joined the channel [19:11] creationix has joined the channel [19:11] CIA-77: node: 03Ryan Dahl 07net2 * rdd21a4f 10/ src/node.cc : Remove the 'Error: (no message)' exceptions print stack trace instead - http://bit.ly/9AGbcX [19:11] CIA-77: node: 03Standa Opichal 07net2 * rc2c0cfb 10/ bin/node-waf : Making sure node-waf finds its real bindir even when executed through a symlinked path. - http://bit.ly/drPeED [19:11] CIA-77: node: 03Ryan Dahl 07net2 * r073947c 10/ (195 files in 13 dirs): Upgrade V8 to 2.1.3 - http://bit.ly/bmzFqK [19:11] CIA-77: node: 03Ryan Dahl 07net2 * r7eb1264 10/ (196 files in 14 dirs): Merge branch 'master' into net2 - http://bit.ly/dzTqLy [19:13] _ry: felixge: i think the default [19:13] _ry: felixge: well the homepage is using the node colors [19:14] felixge: _ry: cool [19:14] felixge: their homepage still shows old ugly screenshots [19:14] felixge: I think the new theme must come from google chrome's buildbut [19:14] felixge: * buildbot [19:14] _ry: yeah buildbot in gereral could use a graphic artist [19:15] _ry: looks like shit [19:15] JimBastard: github is fucked up again i think [19:15] joshbuddy_ has joined the channel [19:15] JimBastard: anyone else getting pack errors / device full errors [19:15] michaelk^ has joined the channel [19:16] softdrink has joined the channel [19:19] christkv_ has joined the channel [19:22] tilgovi has joined the channel [19:24] javajunky: JimBastard: I'm pulling from it ok, not pushed though if that helps at all [19:24] JimBastard: yeah push is broken again [19:24] JimBastard: same issue a few weeks ago where device is reporting full [19:27] gwoo has joined the channel [19:29] maushu has joined the channel [19:34] mikeal has joined the channel [19:35] dnolen has joined the channel [19:35] voodootikigod: http://jsconf.posterous.com/the-community-that-cares [19:44] kjeldahl_ has joined the channel [19:51] javajunky has joined the channel [19:52] brandon_beacher has joined the channel [19:53] aho: when is the next jsconf in eu? [19:55] JimBastard: not sure [19:55] JimBastard: does anyone know any sponsers with extra tickets? or anyone? i couldnt afford to buy them when first when on sale, now sold out [19:55] JimBastard: i really wanted to do a lightning talk for this node project im working on with a few people [19:56] JimBastard: also get drunk with ry [19:56] mikeal: it's in september [19:56] mikeal: in Berlin [19:56] mikeal: tickets for JSConf EU haven't gone out yet [19:56] JimBastard: i mean the US one [19:56] JimBastard: in DC [19:56] JimBastard: in april [19:56] mikeal: yeah, good luck [19:57] JimBastard: lol [19:57] mikeal: i've been trying to get a ticket for weeks [19:57] JimBastard: i would have bought one the day they went on sale but im not exactly big pimping like that [19:57] mikeal: i was on vacation when they all went [19:57] JimBastard: it took me a while to get the money, as i was unemployeed [19:57] JimBastard: yeah [19:57] mikeal: that's what credit cards are for :) [19:58] JimBastard: ohh im waaay past that [19:58] JimBastard: ever since i got sued for 550k my credit has been not so great [19:59] mikeal: how did you get sued for a half a million dollars? [19:59] JimBastard: a laywer and a plantiff [19:59] JimBastard: plaintiff [19:59] indiefan: that'll do it [19:59] JimBastard: i released this viral video in 2001 or so [19:59] JimBastard: it got a little out of hand [20:00] indiefan: was it bum fights? [20:00] mikeal: the virus started killing people [20:00] JimBastard: no comment [20:00] mikeal: was it the swine flu or youtube [20:00] mikeal: s/or/of [20:00] mikeal: that would have been funnier if i could type [20:00] JimBastard: this was 2001, so kazaa and word of mouth [20:01] JimBastard: im actually not allowed to talk about it, gag order [20:01] mikeal: how do you get sued for real money tho, there is no money on the internet :) [20:01] felixge: lol [20:01] JimBastard: if you google JimBastard enough you might find something [20:01] indiefan: ACTION checks if once is enough [20:02] JimBastard: there we go [20:02] JimBastard: http://nymag.com/news/features/27341/index5.html [20:02] mikeal: HAHA! [20:04] JimBastard: yeah im like a C list internet celebrity, i think that entitles me to a discount on movie tickets [20:04] JimBastard: and free jsconf tickets [20:04] JimBastard: ^_^ [20:07] piranha has joined the channel [20:11] javajunky1 has joined the channel [20:11] rictic has joined the channel [20:12] drostie has joined the channel [20:12] pdelgallego has joined the channel [20:14] creationix has left the channel [20:16] mattly has joined the channel [20:19] voodootikigod has joined the channel [20:21] piranha has joined the channel [20:25] JAAulde has joined the channel [20:25] creationix has joined the channel [20:27] pmuellr has joined the channel [20:28] orlandov: can anyone familiar with the HTML5 async Web DB explain to me how it's possible for openDatabse to be asynchronous, open a db and return the db handle in one call? [20:28] halorgium: orlandov: the handle might not yet be connected, but a pointer to something which will become connected [20:28] joshholt has joined the channel [20:29] brainss has joined the channel [20:29] orlandov: halorgium: hmmm i suppose [20:30] orlandov: i guess you'd have to build a backlog of query calls and start executing them once it does connect [20:30] halorgium: orlandov: in general, you'd disallow queries to be made until the handle was ready [20:31] orlandov: ugh... my gut reaction is to not like that [20:31] orlandov: i wish it was just callbacks like node [20:32] halorgium: https://gist.github.com/f48c7b54461bb74d303f something like that [20:32] halorgium: is it already impl'd? [20:33] orlandov: halorgium: i'm trying to implement a sqlite3 driver for node with the HTML5 async db interface [20:33] orlandov: i have a low level api and now i'm trying to make it semi-standard-like [20:34] isaacs has joined the channel [20:36] orlandov: halorgium: i was going to do that at first (emitting events) but ryah convinced me it was probably better to just use callbacks [20:36] halorgium: orlandov: similar end result [20:36] halorgium: callbacks are easier to handle [20:37] orlandov: yeah, and there's more or less 1:1 relationship between call and result [20:37] orlandov: (if you ignore sqlite3 stepping through rows) [20:38] orlandov: i think i'm just going to make this loosely based on the spec [20:38] orlandov: bbl- runch time [20:39] joshholt has joined the channel [20:43] tlrobinson_ has joined the channel [20:44] Tim_Smart has joined the channel [20:46] JimBastard: morning Tim_Smart [20:46] Tim_Smart: Ello JimBastard [20:46] JimBastard: My friends call me JimBastard, you may call me Mr. Bastard [20:46] JimBastard: :p [20:50] rektide: tell me you have royal ancestery, you royal bastard [20:51] kkaefer has joined the channel [20:51] gwoo has joined the channel [20:55] brainss has joined the channel [20:57] RayMorgan has joined the channel [20:57] pedrobelo has joined the channel [20:58] joshbuddy has joined the channel [21:06] stepheneb has joined the channel [21:06] sveisvei: JimBastard: Make my autocomplete autocomplete to Mr.Bastard if thats the rule ;-) [21:09] derferman has joined the channel [21:26] maushu: Where is the "require" code? Is it in javascript or in node's sauce? [21:28] felixge: maushu: src/node.js [21:28] maushu: Ah, thanks. [21:35] whoahbot has joined the channel [21:36] brandon_beacher has joined the channel [21:38] mattly has joined the channel [21:39] cpleppert has joined the channel [21:40] maushu: Is there a way to prevent node from using node.js? Like start a process without it. [21:42] mikeal: you could just start v8 [21:42] maushu: ...true. [21:43] mikeal: what from node you want that isn't part of v8? [21:43] maushu: Trying my own sandbox. [21:44] maushu: But I think even v8 has some functions I wouldn't want. [21:44] mikeal: you might want to look at v8 contexts [21:44] maushu: Okay. [21:45] mikeal: http://code.google.com/apis/v8/embed.html#contexts [21:46] maushu: Ah man, I would like to avoid c++. [21:48] isaacs: anyone know how i'm supposed to be writing the request body for a PUT request? [21:48] indiefan has joined the channel [21:48] isaacs: I'm getting an error that says the socket is not open for writing. [21:48] isaacs: i swear this worked a while ago... [21:50] maushu: isaacs, are you closing the socket outside the callback? [21:50] maushu: This happened to me once. [21:50] isaacs: i thought write() was sync? [21:50] maritz has joined the channel [21:50] mikeal: nope [21:50] isaacs: client.request(...); client.write(data, encoding); client.close() [21:50] maushu: isaacs, there is no sync here. nouh. [21:50] isaacs: maushu: according to the docs, it's sync [21:51] isaacs: it's a socket write, not fs [21:51] maushu: The docs lie. [21:51] mikeal: haha [21:51] maushu: They lie! [21:51] JimBastard: the docs are a lie [21:51] mikeal: isaacs: you're proxying a request right [21:52] isaacs: mikeal: no, making a PUT [21:52] isaacs: puts(require("http").ClientRequest.prototype.write.toString()) [21:52] isaacs: that doesn't show a cb param [21:52] isaacs: it's quite clearly synchronous [21:52] mikeal: you're creating a put [21:52] isaacs: mikeal: yeah [21:52] mikeal: request.write() [21:52] mikeal: request.end() [21:53] mikeal: er [21:53] mikeal: no [21:53] mikeal: request.close() [21:53] isaacs: request.close() [21:53] isaacs: right [21:53] mikeal: you said earlier you were calling client.write [21:53] mikeal: but it's not on the client object, it's on the request object [21:53] isaacs: mikeal: http://gist.github.com/328466 [21:53] mikeal: .close() will flush whatever is in the write buffer [21:54] mikeal: nop[e [21:54] mikeal: that's you're problem [21:54] isaacs: i see [21:54] mikeal: client.request() returns a request object [21:54] mikeal: and you need to call .write() and .close() on that object [21:54] mikeal: and you can keep around that client object to do a keep-alive connectino [21:55] isaacs: i see [21:56] isaacs: and the "response" event is emitted by the client? or the request? [21:56] mikeal: the request [21:56] mikeal: i'll just edit this [21:56] isaacs: i got it. kewl. getting a 500 error now, so that's progress [21:56] mikeal: http://gist.github.com/328472 [21:57] isaacs: what threw me is that .write() isn't chainable [21:57] mikeal: chainable? [21:57] mikeal: you can write chunks [21:57] isaacs: doesn't return the ClientRequest object, so you can't do req.write(foo).close() [21:57] mikeal: that's because it's suppose to be used for chunks [21:57] isaacs: well, sure, but... still... [21:57] mikeal: you can call it multiple times before .close() [21:57] isaacs: that's just uggo [21:58] isaacs: you'd still be able to do req.write().write().write().close() [21:58] isaacs: if you didn't use the returned object, it's not so bad. [21:58] isaacs: but makes the simple case simpler [21:58] mikeal: that would work if this was jQuery :P [21:58] mikeal: i think it's assumed that you'll actually have something like [21:59] mikeal: read('file', function (chunk) { request.write(chunk) }, function (error) { request.close() } ) [22:00] isaacs: ok, gotta run. i'll be back in a bit. i'm creating npm publish url/to/tarball to both create (if it's the first time) and push a new version (if it's not) [22:00] mikeal: BTW [22:00] mikeal: github really needs to fix their tarballs on master [22:00] isaacs: SRSLY!! [22:00] mikeal: i had to run the npm installer like 6 times the other day before it worked [22:00] isaacs: at some point, i'm thinking it'd be good for the registry to save the tarballs as attachment [22:00] isaacs: s [22:01] mikeal: couchdb is good at that [22:01] isaacs: so you can publish a local tarball, and it'll upload it, then use the registry's attachment as the dist-url [22:01] mikeal: tags are a lot more reliable on github tho [22:01] mikeal: that will be good for people who don't use github [22:01] mikeal: all 5 of them :P [22:01] isaacs: mikeal: no, just one. inimino [22:08] derferman has joined the channel [22:09] javajunky has joined the channel [22:10] jashkenas has joined the channel [22:11] felixge has joined the channel [22:11] felixge has joined the channel [22:12] inimino: haha [22:15] JimBastard: FUCK YOU ROR [22:16] JimBastard: RACK SESSIONS IS DEFINTELY NOT IN MY JOB DESCRIPTION [22:17] isaacs_mobile has joined the channel [22:20] felixge: JimBastard: lol, I had this thought twice today as well. I really need to say 'nay' more often :) [22:20] isaacs_mobile: Happy international day of awesomeness [22:20] felixge: isaacs: was beer invented today? [22:20] maushu: Can anyone recommend a recent javascript book? [22:20] Sidnicious: JavaScript: The Good Parts? [22:21] mjijackson: maushu: all JavaScript books suck [22:21] felixge: Sidnicious: +1 [22:21] softdrink: http://eloquentjavascript.net/ [22:21] Sidnicious: Secrets of the JavaScript Ninja [22:21] felixge: mjijackson: the good parts does not suck : ) [22:21] isaacs_mobile: felixge: yes it was! [22:21] JimBastard: yo mjijackson - too soon [22:21] mjijackson: ACTION has never read the good parts [22:21] JimBastard: i saw your website too , very distasteful you shouldnt be mocking micheal jackson like that [22:21] JimBastard: ;-) [22:21] isaacs_mobile: felixge: but it was just to celebrate the day, not the cause of the holiday [22:21] maushu: Sidnicious, that was one was released? [22:22] mjijackson: correction: every JavaScript book I've ever read sucks ;) [22:22] maushu: *last [22:22] JimBastard: shit i dont even know how to read [22:22] felixge: mjijackson: a picture says it all: http://static.debuggable.com.s3.amazonaws.com/img/js-good-parts.jpg [22:22] Sidnicious: maushu: Hey, you said recent. I'm just getting a jump on all the other recommendations ;) [22:23] mjijackson: JimBastard: You should learn how to spell "Michael". It's only the most common name in the history of mankind. ;) [22:23] cloudhead has joined the channel [22:23] maushu: felixge, outch. [22:23] Sidnicious: All right, I haven't read it, but it's probably going to be good. [22:23] JimBastard: you'll have to excuse me if my flaming of you is limited to the span of a 3 second alt-tab, i just dont know you well enough yet [22:23] felixge: mjijackson: the history of man kind where the chinese did not exist? :) [22:24] orlandov: mjijackson: actually i think mohammed is the most common name on earth [22:24] jashkenas has left the channel [22:24] mjijackson: ACTION has never met a Chinaman named Michael. point taken [22:24] Sidnicious has left the channel [22:24] Sidnicious has joined the channel [22:24] Sidnicious: damn these buttons [22:25] mjijackson: ACTION needs to stop making blanket statements [22:26] orlandov: mjijackson: dude chinaman is not the preferred nomenclature [22:26] JimBastard: yeah they perfer "Jackie Chan" [22:26] JimBastard: prefer [22:27] mjijackson: orlandov: no offense intended, really [22:27] orlandov: mjijackson: none taken, it's a big lebowski quote :) [22:27] isaacs_mobile: This non-PC convo is way more awesome than the line I'm waiting in. [22:27] orlandov: http://www.imdb.com/title/tt0118715/quotes?qt0464758 [22:27] mjijackson: Seems the Wikipedia page on Chinaman was written by someone who takes great offense at the term's usage [22:28] isaacs_mobile: I don't grok getting offended at terms like that. [22:28] cpleppert has joined the channel [22:29] isaacs_mobile: If you called me an Americaman I wouldn't care [22:29] maushu: mjijackson, NO NPV? HORRIBLE. [22:30] mjijackson: maushu: net present value? huh? [22:30] maushu: mjijackson, neutral point of view, you silly person. [22:32] mjijackson: maushu: i don't think i've ever read a truly NPV, anywhere [22:32] maushu: Of course. [22:32] mjijackson: Especially not on wikipedia [22:33] maushu: Like my gramps liked to quote, "History is written by the victors.". [22:35] mjijackson: maushu: true. about the js book though, what are you hoping to get out of it? [22:35] maushu: contexts [22:37] mjijackson: JavaScript execution contexts? Like variable scope and that? [22:37] maushu: Yes. [22:38] ashb: read the spec [22:38] maushu: Life is short. [22:38] gsf: maushu: yeah, the good parts boils that down pretty well [22:39] mjijackson: https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/var [22:39] mjijackson: i've always wondered why Mozilla serves their js docs over a secure connection [22:40] maushu: mjijackson, they are secret. [22:40] ashb: cos they use some abomination of comercial mediawiki instance i thinnk [22:41] maushu: Does v8 support const? [22:41] ashb: no. its not ES5 either [22:41] ashb: its an ES-harmony proposal tho [22:49] mjijackson: Arrrrgh! I need to stop playing with Node.js! I put off everything else... it's addicting. [22:49] michaelk^ has joined the channel [22:54] paulca has joined the channel [22:59] rektide: need a linux vm for this desktop, so i can run node on it [23:01] felixge has joined the channel [23:01] felixge has joined the channel [23:03] aryounce has joined the channel [23:04] ollie has joined the channel [23:05] kriszyp has joined the channel [23:12] tilgovi has joined the channel [23:16] creationix has joined the channel [23:18] _ry: damn. i broke the build bot [23:19] stalled_ has joined the channel [23:21] JimBastard: thats it _ry you are fired [23:21] JimBastard: please collect your things [23:22] gwoo: haha [23:47] aryounce: man, who scheduled JSconf so close to Drupalcon? [23:48] aryounce: uncool [23:48] rtomayko has joined the channel [23:51] gf3 has joined the channel [23:52] charlenopires has joined the channel [23:57] technoweenie has joined the channel