[00:03] inimino: elliottcable: I am working on an ECMAScript parser, you could do some preprocessing pretty easily [00:04] inimino: ACTION is planning to support some 'new syntax' stuff from Mozilla JS by translation into plain ES3/5 eventually [00:04] inimino: ashb: ping [00:04] ashb: inimino: yo [00:04] ashb: got a parser for me? :D [00:05] ashb: a lot of the ES5 things can be bootstrapped in by node [00:05] inimino: yeah, I made a little demo :) [00:05] ashb: (i.e. they are possible in C++ code, and you just have to bind that to JS space [00:05] ashb: cool! lets see? [00:05] inimino: sure [00:06] inimino: http://boshi.inimino.org/3box/PEG/build/demo.html [00:06] inimino: probably only works in Firefox, if that [00:06] inimino: I'm going to build a demo for the ES5 grammar I have, but that's a project for another day [00:07] ashb: how easy is it to type the ← char? [00:07] inimino: the actual code is all dumped in one file, a fair amount of which is generated code... I don't really have a proper build system for any of this yet [00:07] inimino: oh, pretty easy [00:07] inimino: well, it depends on your editor [00:08] ashb: nice [00:08] ashb: (it does run in FF. not in safari) [00:08] inimino: I have an editor that allows Unicode input by typing 'U' followed by hex, and then you hit 'x' after that to magically convert it [00:08] inimino: not surprising [00:08] inimino: I'll clean it up over the next few weeks and get it in better shape... this is the first I've released any of it, so it's super-alpha [00:10] ashb: does the PEG parse itself? [00:10] ashb: i.e. you parse the PEG input with a PEG? [00:10] ashb: (all the coolest tools are self hosting) [00:10] inimino: also that's all served by my little node instance and my buggy as hell httpd so don't be surprised if it all goes away ;) [00:10] ashb: >_> [00:10] inimino: ashb: yes [00:10] ashb: win. [00:10] inimino: yeah [00:11] ashb: inimino: i like it. [00:12] jacobolus has joined the channel [00:12] jacobolu_ has joined the channel [00:12] inimino: cool :) [00:12] inimino: I want to get my ES5 grammar going again and benchmark it in v8 [00:12] ashb: (i'd probably end up allowing '<-' tho) [00:12] inimino: I only tested it in Firefox last time [00:13] inimino: yeah, I'd planned on adding an ASCII syntax too [00:13] ashb: using hte unicode arrow is cool for showing off tho [00:13] inimino: hehe [00:13] inimino: the PEG grammar itself could probably use some more thought, I don't think it's set in stone or anything [00:14] aeosynth: any idea when node will support 64 bit architectures? [00:14] ashb: aeosynth: it should do already, no? [00:14] ashb: v8 does now anyway i thought [00:14] aeosynth: ashb: make test fails for me [00:14] inimino: (it's here: http://boshi.inimino.org/3box/PEG/PEG.peg) [00:14] inimino: some, anyway [00:14] inimino: which 64-bit architecture would that be? [00:14] aeosynth: ubuntu [00:15] inimino: that's an OS [00:15] aeosynth: ok, amd 64 [00:15] ashb: x86_64 is the only 64bit that ubuntu supports [00:15] ashb: (amd and x86_64 are basically the same thing) [00:15] inimino: I mean what CPU are you using? [00:15] inimino: ok [00:15] ashb: ϵ [00:15] ashb: / ϵ [00:15] ashb: is cool [00:15] ashb: >_> [00:16] inimino: "Linux systems that use IA-32 or ARM processors" quoth http://code.google.com/apis/v8/ [00:16] inimino: cool :) [00:16] ashb: i thought the added 64bit support [00:17] ashb: aeosynth: use flusspferd - we support 64bit [00:17] ashb: no cool event loop stuff (yet) tho [00:17] Connorhd: aeosynth, what fails? [00:17] aeosynth: i just reran make test [00:18] aeosynth: hopefully this won't get me kicked [00:18] Connorhd: pastebin :P [00:18] aeosynth: right, i should try that [00:18] aeosynth: 1 sec [00:18] inimino: yes :) [00:19] aeosynth: ok -  [00:19] aeosynth: argh! terminals [00:19] aeosynth: http://pastebin.com/d67529e9 [00:19] inimino: ashb: the stuff most likely to change is the numerous ways of specifying characters and ranges, some of the stuff like "[U+005C]" isn't fully baked [00:19] Connorhd: you need apachebench for that test [00:19] inimino: aeosynth: looks like your platform isn't the problem [00:19] Connorhd: the rest of them passed, its fine [00:20] ashb: inimino: kk [00:20] aeosynth: oh ok, cool [00:20] aeosynth: guess i was worried for nothing :) [00:20] ashb: inimino: anything about classes or properties on the resulting nodes (like treetop) does? [00:20] inimino: apt-get install apache-utils (or something like that) [00:20] inimino: ashb: that's also extremely likely to change :-) [00:20] inimino: ashb: what the output format should be I really don't know yet [00:20] ashb: :D [00:21] ashb: still you've done most of hte hard work of getting it parsing and generating [00:21] inimino: ashb: but when I was parsing jQuery with my ES5 grammar on the client side I was getting back really big trees so I optimized for memory [00:21] ashb: you've written an ES5 grammar too? [00:22] ashb: inimino: is this on github yet? [00:22] inimino: currently nodes are stored as arrays tagged by integer, like [14,] [00:22] inimino: ashb: yeah, I have an ES5 grammar [00:22] inimino: ashb: no, I don't use github [00:22] inimino: I do use git though, or did until fairly recently [00:23] ashb: inimino: instances of strings shouldn'y use up more memory for repeated use btw [00:23] ashb: strings are immutable singletons [00:23] inimino: yeah, so I would have thought [00:23] JimBastard has joined the channel [00:23] inimino: I also thought creating new strings that are subsets of old strings wouldn't allocate more space [00:23] ashb: certainyl is the case in SM [00:24] JimBastard: sup Connorhd [00:24] ashb: i assume 14 in that example was a type not a number of child nodes? [00:24] inimino: this turned out not to be the case [00:24] inimino: ashb: yeah, the parse node type, just an index into the list of rules in the input PEG [00:24] Connorhd: errm, nothing? :P [00:24] ashb: inimino: ah [00:25] JimBastard: i've made a whole bunch of additions to your node_debug, you wanna take a look? [00:25] JimBastard: :-) [00:25] inimino: ashb: if that's supposed to be the case in SM, I may have hit a bug or something [00:25] Connorhd: oh, where? [00:25] JimBastard: ill pm [00:25] inimino: ashb: but I had code that relied on that and it ended up taking O(n^2) space much to my chagrin [00:26] ashb: inimino: i thought it was anyway [00:26] ashb: i've not acutally checked for sure [00:26] inimino: me neither [00:27] inimino: lots of this stuff is optional code paths in the code I have, so it'll be easy to experiment with stuff, and try optimizing for various engines, etc [00:27] inimino: ashb: if you have any specific ideas on parse tree output format, that would be cool [00:28] ashb: inimino: not really. [00:28] ashb: not yet anyway [00:28] ashb: might do once i start using it in anger tho [00:28] inimino: ashb: I looked at some of the JSONML stuff that v8 uses for it's ES5 parse tree output, might copy that [00:28] ashb: (release early, and release often, even if only to a few people) [00:28] inimino: cool [00:28] ashb: inimino: yeah JSONML might work [00:28] inimino: yeah, feels good :) [00:29] ashb: 'All tests successful' [00:29] ashb: if only i had more tests :( [00:29] ashb: eek. need to sleep [00:29] inimino: heh [00:30] ashb: last day tomorrow \o/ [00:30] softdrink has joined the channel [00:30] ashb: (i'm binding a compliant DOM API [00:30] inimino: "all 0 tests successful"? [00:30] inimino: ooh [00:30] ashb: so that i can use sizzle (jquery's selector engine) on teh servorz [00:30] inimino: ah, cool [00:31] ashb: kinda like env.js i guess [00:31] ashb: but HTML parsing too. and backed onto a full XML engine [00:32] inimino: yeah [00:32] ashb: using a C++ library that will wrap expat, libxml2, Xerces or MSXML [00:32] inimino: ah, like XPath and such? [00:32] inimino: ah, nice [00:32] ashb: yeah [00:32] inimino: ACTION misses XPath [00:32] inimino: it's the only thing from the entire XML ecosystem I miss, but I do miss it [00:32] ashb: i've not bound hte xpath part yet tho [00:33] inimino: ok [00:33] ashb: first is basic dom [00:33] ashb: then i need to think about maybe getting the DOM compliance tests [00:33] ashb: but the W3C ones (even the JS ones) are bit shit insanely written [00:33] inimino: yeah [00:33] inimino: ah [00:34] ashb: they are in some weird form where they are XSLT transformed into JAva and JS [00:34] inimino: moz and webkit probably have some too [00:34] inimino: eww [00:34] ashb: moz have the W3C ones mostly [00:34] ashb: maybe a few others [00:35] ashb: need to double check tho [00:35] inimino: DOM supporting Java has made the Web so much uglier [00:35] inimino: maybe Opera too, though I can't remember how much of their testing stuff was ever public [00:36] ashb: oh. and it just occurs to me i've not wrapped the exception objects properly yet [00:36] ashb: so you just get a normal Error thrown instead of a DOMException object [00:36] ashb: but eh :D [00:36] inimino: heh [00:37] inimino: well, holiday time for me, bbl [00:37] ashb: byew [00:53] JimBastard: does anyone wanna to build something node_drop where a method is exposed that will load a JS assett from a (relative filepath, url, absolute filepath) [00:53] JimBastard: something like* [01:12] yurivish: is there any way to know when the client has cancelled the page-load request? [01:12] yurivish: if I'm loading a page that doesn't immediately call .finish(), and then I hit the browser's stop button [01:27] soveran has joined the channel [01:39] cloudhead has joined the channel [01:44] ear1grey has joined the channel [02:14] JimBastard has joined the channel [02:14] JimBastard: whats up party people [02:16] elliottcable: awesomeness [02:16] elliottcable: shit [02:16] elliottcable: I just spent an hour hitting on some older woman [02:17] elliottcable: and *completely* forgot to finish jessc! [02:17] elliottcable: ACTION goes to hack [02:17] JimBastard: check it out http://maraksquires.com:8080/ node_debug [02:17] JimBastard: just added some optional firebug logging [02:19] JimBastard: multiple clients accessing the node_debug will get broadcasted every elses debug.log() calls [02:19] JimBastard: so its a running image of the server [02:21] JimBastard: anyone? [02:22] elliottcable: anyone? [02:22] elliottcable: someone. [02:27] Connorhd: firebug logging? [02:34] JimBastard: yeah i added the debug.log() from debug.js [02:34] JimBastard: the client-side one [02:34] JimBastard: so it just kinda dumps stuff in the console if its there [02:34] JimBastard: gtg [02:57] sudoer has joined the channel [03:16] Biscuits has joined the channel [03:23] emyller has joined the channel [03:38] frodeniu1 has joined the channel [03:47] mikekelly has joined the channel [03:47] frodenius has joined the channel [03:48] bentomas has joined the channel [04:10] okito has joined the channel [04:32] JimBastard has joined the channel [04:33] JimBastard: sup party people [04:34] rakeshpai has joined the channel [04:37] JimBastard: is there a good node.js performance test? so i can compare how my hardware is doing to others [04:38] inimino: node --quake-demo [04:38] JimBastard: for real? [04:39] inimino: no [04:39] inimino: but if you want to implement it that would be nice [04:39] JimBastard: i need something simple [04:40] JimBastard: are there unit tests [04:40] JimBastard: http://four.livejournal.com/1019177.html [04:40] JimBastard: i have an idea..!! [04:44] gwoo has joined the channel [04:48] gwoo: elliottcable: sounds like you need to get your priorities straight ;) [04:56] sudoer has joined the channel [05:06] sudoer has joined the channel [05:58] sudoer has joined the channel [06:23] inimino: gwoo: is that in reference to the hitting-on-women-vs-hacking thing or the acquire-vs-securable-modules thing? [06:24] gwoo: modules of course ;) [06:25] JimBastard: check it out [06:25] JimBastard: http://maraksquires.com:8080/ [06:25] JimBastard: but if you click shut down server, its gonna stop working [06:26] JimBastard: the log is shared among all instances [06:26] JimBastard: i can send you guys messages [06:26] inimino: heh [06:26] inimino: 'shut down server' eh? [06:26] JimBastard: :p [06:26] JimBastard: look at the snippets [06:26] JimBastard: i got apache ab hooked into it [06:27] JimBastard: its uber unsecure now [06:27] inimino: I should add that to all my Web apps ;) [06:27] JimBastard: did you see my messages [06:27] JimBastard: you can talk in the log by debug.log() [06:27] inimino: hehe [06:27] inimino: "don't push this button" [06:27] inimino: I do [06:27] inimino: ah [06:27] JimBastard: history and snippets work [06:28] JimBastard: are you leet enough to message me back? [06:28] JimBastard: yhee hee [06:28] JimBastard: so yeah, its running as root [06:28] JimBastard: i killed it [06:28] JimBastard: ahah [06:29] JimBastard: pretty cool though right [06:29] inimino: hm, [06:29] inimino: oh I thought I killed it [06:29] inimino: yeah, very cool [06:29] JimBastard: any suggestions for what to do next? im gonna probaly do a screencast tommorow [06:30] JimBastard: thinking about node_drop maybe [06:30] JimBastard: or i could start to build out a file explorer [06:30] JimBastard: c99 style [06:30] inimino: what would that be? [06:30] inimino: (c99 style)? [06:30] JimBastard: remote administrator tool lol [06:30] inimino: oh [06:31] JimBastard: like c99.php [06:32] inimino: ok, C99 only means a dialect of C to me ;) [06:32] JimBastard: what you thinking [06:32] JimBastard: for features [06:33] inimino: what would node_drop do? [06:33] JimBastard: a wrapper for require() [06:34] JimBastard: that would take a bunch of diffirent types of locations and also have the option to inject into DOM of browser [06:34] JimBastard: so [06:34] JimBastard: drop('somerandom.js'); [06:34] JimBastard: drop('http://randomserver.com/myjs.js'); [06:34] JimBastard: drop('http://randomserver.com/myjs.js', true); [06:34] inimino: oh [06:34] JimBastard: but it was also keep track [06:34] JimBastard: of what was already dynamically loaded [06:36] JimBastard: i could also start to add basic session tracking and debug connections [06:37] JimBastard: so you could know how many instances of the web console were open and who was doing what [08:23] kriskowal has joined the channel [08:23] rtomayko has joined the channel [08:23] rakeshpai has joined the channel [08:23] sudoer has joined the channel [08:23] gwoo has joined the channel [08:23] JimBastard has joined the channel [08:23] mikekelly has joined the channel [08:23] frodeniu1 has joined the channel [08:23] ear1grey has joined the channel [08:23] jacobolu_ has joined the channel [08:23] orlandov has joined the channel [08:23] Nailor has joined the channel [08:23] cadorn has joined the channel [08:23] dschn has joined the channel [08:23] richter has joined the channel [08:23] edspencer has joined the channel [08:23] m1631_ has joined the channel [08:23] rudebwoy has joined the channel [08:23] intellectronica has joined the channel [08:23] inimino has joined the channel [08:23] helgim_ has joined the channel [08:23] rektide has joined the channel [08:23] ryah_away has joined the channel [08:23] [k2] has joined the channel [08:23] lmorchard|away has joined the channel [08:23] sztanpet has joined the channel [08:23] coolguy_ has joined the channel [08:23] _wil_ has joined the channel [08:23] Atmoz has joined the channel [08:23] nefariousD has joined the channel [08:23] elliottcable has joined the channel [08:23] nebopolis has joined the channel [08:23] skampler has joined the channel [08:23] mcarter__ has joined the channel [08:23] bradeeoh has joined the channel [08:23] CIA-28 has joined the channel [08:23] tlrobinson has joined the channel [08:23] mburns has joined the channel [08:23] jan____ has joined the channel [08:23] mediacoder has joined the channel [08:23] beppu has joined the channel [08:23] Sembiance has joined the channel [08:26] the_undefined has joined the channel [08:26] freenode-connect: VERSION [08:38] the_undefined has joined the channel [08:55] saikko has joined the channel [08:56] johan-s has joined the channel [08:59] sixtus42 has joined the channel [09:49] the_undefined has joined the channel [10:14] johan-s has joined the channel [10:14] saikko has joined the channel [10:14] rtomayko has joined the channel [10:14] gwoo has joined the channel [10:14] JimBastard has joined the channel [10:14] mikekelly has joined the channel [10:14] frodeniu1 has joined the channel [10:14] ear1grey has joined the channel [10:14] jacobolu_ has joined the channel [10:14] orlandov has joined the channel [10:14] Nailor has joined the channel [10:14] cadorn has joined the channel [10:14] dschn has joined the channel [10:14] richter has joined the channel [10:14] edspencer has joined the channel [10:14] m1631_ has joined the channel [10:14] rudebwoy has joined the channel [10:14] intellectronica has joined the channel [10:14] inimino has joined the channel [10:14] helgim_ has joined the channel [10:14] rektide has joined the channel [10:14] ryah_away has joined the channel [10:14] [k2] has joined the channel [10:14] lmorchard|away has joined the channel [10:14] sztanpet has joined the channel [10:14] coolguy_ has joined the channel [10:14] _wil_ has joined the channel [10:14] Atmoz has joined the channel [10:14] nefariousD has joined the channel [10:14] elliottcable has joined the channel [10:14] nebopolis has joined the channel [10:14] skampler has joined the channel [10:14] mcarter__ has joined the channel [10:14] bradeeoh has joined the channel [10:14] CIA-28 has joined the channel [10:14] tlrobinson has joined the channel [10:14] mburns has joined the channel [10:14] jan____ has joined the channel [10:14] mediacoder has joined the channel [10:14] beppu has joined the channel [10:14] Sembiance has joined the channel [10:18] freenode-connect: VERSION [10:37] olivvv has joined the channel [10:49] halorgium has joined the channel [10:49] halorgium: hey dudes [10:50] halorgium: i'm trying to find an example of writing to a process i've started with sys.exec [10:50] malkomalko has joined the channel [10:53] sztanpet: processyouexecd.write(data, encoding) ? [10:54] halorgium: sys.exec("foo") returns the promise [10:55] sztanpet: go with process.ChildProcess [10:55] sztanpet: createChildProcess [10:56] halorgium: ah, thanks [11:26] soveran has joined the channel [11:43] okito has joined the channel [12:18] cmlenz has joined the channel [12:29] cmlenz: hey all [12:29] cmlenz: is it intentional that http.ClientResponse does not emit a "complete" event for responses with an empty body? [12:29] cmlenz: such as responses to HEAD requests [12:34] cmlenz: at least that's what I'm seeing in my testing [12:34] sztanpet: good question, its too early in america i guess so ryah_away might not respond for a time but wondered about that myself [12:35] ashb: HEAD needs to be special cased [12:35] ashb: since it has a non-zero Content-Length [12:35] cmlenz: yeah [12:35] ashb: but explicitly has no body [12:41] cmlenz: so that would need to be fixed in http_parser.c? [12:42] ashb: not sure where in the code [13:01] jan____: cmlenz: heya :D [13:06] cmlenz: hi jan____ [13:09] the_undefined has joined the channel [13:15] mAritz has joined the channel [13:18] mAritz: Is there any way to donate money to node.js or ryan particularly? He said he'd like to have more money for the development of node.js and I'd like to donate a little to him for the amazing work. But I just can't find a simple way to do so. (like paypal) [13:19] jan____: mAritz: that's very generous. Ryan is likely still asleep (west coast usa), it's probably best to send him an email. [13:19] mAritz: hm, okay. [13:20] mAritz: do you by any chance know what the development status/plan for dbslayer is? can't find much about it except that the last activity on the repository is from july and says "one last fix" :/ [13:21] the_undefined: I hope ryan finds a company that will let him work on node [13:21] the_undefined: mAritz: no idea, I'm talking to a pool of PHP processes via stdio to do my MySql stuff :) [13:21] keeto has joined the channel [13:21] mAritz: the_undefined: ouch :D [13:21] the_undefined: it actually works pretty well :) [13:22] the_undefined: (I don't need a lot of MySql queries luckily ^^) [13:22] mAritz: isn't the overhead of php a little too much? [13:22] mAritz: oh, ok :D [13:22] the_undefined: mAritz: actually, its not much overhead. The PHP script just hangs until it gets a query to execute via stdin [13:22] the_undefined: and returns the result via stdout [13:23] the_undefined: it's evil so [13:23] the_undefined: :) [13:23] the_undefined: I agree [13:23] mAritz: The thing about dbslayer is, that I can't find any news/blog entries about it being canned or anything. And I don't think NYTimes just stopped developing it without any info on it. After all they heavily use it as far as I know. [13:24] mAritz: wait, you don't actually call the php but have it running all the time? that truly is evil. [13:24] the_undefined: mAritz: sure, but its the best solution I see right now [13:24] frodeniu1: nah, fcgi works like that too [13:25] the_undefined: essentially its the same thing as dbslayer [13:25] the_undefined: only that I interface via stdio rather than http [13:25] mAritz: you could use something that is more fit for constantly running and listening to stdin... like c/c++ :D [13:25] the_undefined: mAritz: PHP is actually surprisingly suitable as a long running process [13:26] the_undefined: unlike ruby it doesn't have much memory leak issues [13:26] keeto has joined the channel [13:26] the_undefined: (or lets say compared to ruby) [13:26] Connorhd has joined the channel [13:27] the_undefined: anyway, I'm not using PHP because its so awesome ^^. It's just something I already have in my stack and it does the job [13:27] mAritz: yep [13:27] the_undefined: the proper solution is a native mysql modul for node, and that will come soon [13:28] jan____: the_undefined: yes, I really hope ryan will be able to work on node.js full time [13:28] jan____: the_undefined: PHP is full of leaks, too :) [13:28] mAritz: soon as in "a few weeks" or as in "when it's done" or as in "right after duke nukem forever" [13:28] the_undefined: jan____: probably. I did some experiments with writing daemons in PHP and while I can't say that those turned out to be very pretty, they were running for weeks without leaking memory [13:29] keeto has joined the channel [13:29] the_undefined: mAritz: "soon" as in "lots of people want it so it has good chances to get tackled" [13:29] the_undefined: actually I migh look into lib drizzle over the weekend [13:29] jan____: the_undefined: yes, you can make it work, but then, even the compiler makes leaky assumptions :0 [13:29] sztanpet: there are some shitty modules for php, but the stock ones are usually rock solid [13:30] the_undefined: maybe I can get something started and have better people help out as they can't stand watching me screwing something important like this up [13:30] sztanpet: were running some simple long-running proccesses and had no problem yet [13:30] the_undefined: My main problem with PHP is that literally all the smart people have stopped using it, all the innovative stuff is written in ruby [13:31] mAritz: hmmm... what does that tell us? :D [13:31] jan____: the_undefined: ack. and now (node.)js :) [13:31] sztanpet: for good reason tho, i cant say im not happier when im done for the day in php :D [13:31] the_undefined: I think most people picked up ruby for the wrong reasons, they just looked at rails and assumed anything in rails land must be über-awesome [13:31] the_undefined: it could just as well have been python [13:31] the_undefined: or io [13:31] the_undefined: or lua [13:31] the_undefined: or whatever [13:31] sztanpet: javascript annoys me too though, im liking lua the most [13:32] sztanpet: very clean, very simple very focused [13:32] the_undefined: (I actually like ruby a lot these days, but the biggest reason is all the awesome stuff other people have already written for me) [13:32] [k2]: keetology [13:32] [k2]: oops, wrong window. x) [13:32] the_undefined: sztanpet: yeah, lua seems nice [13:33] the_undefined: anyway, forget the past, time for node ;) [13:58] Biscuits has joined the channel [17:04] nodelog has joined the channel [17:22] Connorhd_ has joined the channel [17:43] Wes- has joined the channel [18:03] JoePeck has joined the channel [18:17] sudoer has joined the channel [18:47] softdrink has joined the channel [19:04] sudoer has joined the channel [19:04] JimBastard1 has joined the channel [19:07] sudoer has joined the channel [19:09] bentomas has joined the channel [19:10] jtoy has joined the channel [19:14] jtoy has joined the channel [19:15] jtoy has joined the channel [19:21] hug has joined the channel [19:21] hug: frodbot: help. [19:21] JimBastard1: halp [19:22] hug has joined the channel [19:23] mdg has joined the channel [19:31] frodenius: oh [19:31] frodenius: someone found my readme... :/ should change it until the bot's up [19:33] inimino: the googlebot has found URLs I didn't even know I had [19:33] JimBastard: sounds painful [19:33] the_undefined has joined the channel [19:35] inimino: ACTION considers what to work on [19:35] inimino: maybe I should make my nhttpd close the file descriptors it opens [19:35] JimBastard: hey inimino [19:35] JimBastard: why dont you halp me a bit with some code snippets [19:35] inimino: JimBastard: yes? [19:36] JimBastard: http://maraksquires.com:8080/ [19:36] JimBastard: im about to do a screen cast [19:36] JimBastard: check out the snippets [19:36] inimino: like what? [19:36] inimino: ah [19:36] JimBastard: sys.exec('ab -kc 10 -t 30 http://localhost/').addCallback(function (stdout, stderr) { debug.log(stdout); }); [19:37] JimBastard: debug.log() now works client-side and server-side [19:37] JimBastard: i gotta rework the innards of the ajax, but its a good start [19:37] inimino: just ran that one [19:37] inimino: cool [19:37] JimBastard: notice it debugs the promise first [19:37] JimBastard: then eventually drops in the result [19:38] JimBastard: need to add some connection information as well [19:38] JimBastard: so we know how many people are connected to the instance through a debug console [19:38] inimino: yeah [19:38] inimino: window resizing is a little off [19:39] inimino: yeah, and some sort of authentication maybe [19:39] JimBastard: session [19:39] JimBastard: that goes with connection manager [19:39] inimino: ok [19:39] JimBastard: so like everyone who hits the http will get a guest session that they are stuck with, unless they authenticate [19:39] JimBastard: you know how to do session code? [19:40] JimBastard: openid would probaly be a good idea [19:40] inimino: is there supposed to be a way to create snippets? [19:40] inimino: openID is probably a little heavy unless someone already wrote that for node [19:40] inimino: otherwise, maybe I'll write it [19:40] inimino: I need it pretty soon anyway [19:40] inimino: has it been done? [19:41] JimBastard: snippets are currently hard coded into JSON document [19:41] JimBastard: crud handler for json docs would be nice [19:41] JimBastard: but i dont really care about that right now [19:41] sudoer has joined the channel [19:41] inimino: ok [19:41] inimino: I want to write a little JSON editor too [19:41] inimino: but it's not a priority [19:42] JimBastard: i've got a lot little snippets already for things similiar to that [19:42] JimBastard: rich JS ui [19:42] JimBastard: JS IDE [19:42] JimBastard: i figure the debug is the right place to start [19:42] inimino: I am building something like that :) [19:42] inimino: yeah, debug is good [19:42] JimBastard: caus without being able to manage node.js instances from a web console [19:42] JimBastard: whats the fucking point [19:43] inimino: hehe [19:43] JimBastard: i need node_drop [19:43] JimBastard: and node_session [19:43] JimBastard: really [19:43] JimBastard: and if node_session used openid somehow that would be good [19:43] inimino: I manage mine by doing PUTs and POSTS from localhost [19:43] inimino: would be from any browser if I had some user auth [19:43] inimino: exactly [19:44] inimino: so does anybody have some OpenID code in JavaScript? [19:44] inimino: maybe I could do that over the weekend, I don't remember how complex OpenID is exactly [19:44] JimBastard: http://openid-selector.googlecode.com/svn/trunk/demo.html [19:44] JimBastard: ? [19:45] JimBastard: well fuck that for a second [19:45] JimBastard: local sessions need to work first [19:45] JimBastard: i looked through the code for express and couldnt really find any session stuff it seemed all stubbed out [19:45] JimBastard: are you familiar with setting up a session token and unique id [19:45] inimino: that looks like it's just a UI thing, doesn't actually *do* anything [19:46] inimino: oh sessions, yeah [19:46] inimino: somebody must have done that by now [19:46] inimino: what's express? [19:47] JimBastard: some nodejs framework [19:47] inimino: oh, haven't seen it I guess [19:47] JimBastard: chat server demo has them i bet, but its probaly really basic [19:47] inimino: probably [19:48] JimBastard: http://github.com/ry/node_chat/blob/master/server.js [19:48] JimBastard: line 70 [19:48] JimBastard: this is really really basic [19:48] JimBastard: so we'd need the session functionality from that ripped out and encapuslated as a seperate module [19:49] JimBastard: and it would need some aspects [19:49] JimBastard: onSessionStart [19:49] JimBastard: onSessionEnd [19:50] inimino: hm, yeah [19:50] inimino: needs some events yeah [19:51] JimBastard: it should also work client-side too [19:51] the_undefined: inimino: I'd love a JSON editor [19:51] JimBastard: so keep that in mind [19:51] the_undefined: inimino: I could need that for a project of mine [19:51] the_undefined: seems like nobody created a decent one so far [19:51] JimBastard: ive got the perfect place to stick one [19:51] inimino: the_undefined: ok, I'll move it up a notch [19:51] inimino: I haven't looked at any of the ones already created though [19:52] the_undefined: inimino: a jQuery based otherwise dependency-free one wold be nice :) [19:52] the_undefined: I have, nothing usuable [19:52] the_undefined: I'm using an embedded bespin editor for now [19:52] inimino: but basic tree-editors aren't rocket science [19:52] inimino: ok [19:52] inimino: yeah, I have my own bare-bones text editor [19:53] inimino: by bare-bones I mean a textbox in a window :-) [19:53] mdg: goofy guy [19:54] JimBastard: i have a pretty good javascript template that does it [19:54] inimino: I can edit anything on my server by adding ".ed" on the end of the URI [19:54] JimBastard: microtemplate [19:54] inimino: s/anything/any text file/ [19:55] JimBastard: the problem is re-rendering chili over and over again for code hightlighting [19:55] JimBastard: very slow [19:55] inimino: yeah, that's why I wrote a parser generator :) [19:55] inimino: standard text highlighting is shit [19:55] Biscuits: parser generator in JS ? [19:55] Biscuits: Any code to show ? [19:55] inimino: Biscuits: yeah [19:56] Biscuits: Currently doing a languages & compilers course @ uni with haskell, intend to port over some of the stuff I learn to JS [19:56] JimBastard: haaaaassskkkeeelllll [19:56] inimino: yeah I put up a little demo yesterday, totally pre-pre-alpha though *digs up link* [19:56] inimino: Biscuits: oh, coll [19:56] inimino: cool [19:57] inimino: Biscuits: it's a PEG packrat parser [19:57] inimino: http://boshi.inimino.org/3box/PEG/build/demo.html [19:58] JimBastard: thats cool, too bad i know know PEG [19:58] okito has joined the channel [19:58] JimBastard: dont know [19:58] inimino: ah [19:59] freenode-connect: VERSION [19:59] inimino: ashb was talking about adding an LALR-mode too [19:59] inimino: but PEG is really easy and powerful [19:59] inimino: unlimited lookahead with linear-time parsing guarantee [20:00] inimino: and linear memory [20:00] inimino: tradeoff is large constant factors in memory usage but there is tons of room for optimization there, just needs slightly smarter parser generators :) [20:01] inimino: JimBastard: yeah so the idea there is to do syntax highlighting with a real parser (so you can highlight /actual syntax/ not just lexical tokens) and an incremental parser that can only reparse what needs to be reparsed when the text changes [20:02] cloudhead has joined the channel [20:05] inimino: JimBastard: I guess you should serve that debug interface over SSL, in a case where you care about the server? [20:06] JimBastard: yeah that too [20:06] JimBastard: SSL [20:06] JimBastard: optionally [20:06] JimBastard: by default [20:06] inimino: ok [20:06] inimino: was just thinking about authentication [20:06] JimBastard: plaintext is OK for now [20:07] inimino: if you assume end-to-end encryption in cases where people care, it makes it easier [20:08] inimino: is there any kind of emerging standard for request/response filters? [20:08] JimBastard: how you mean [20:09] the_undefined has joined the channel [20:09] atlithorn has joined the channel [20:09] inimino: I mean like in Apache or Java servlets you have filters which can sit between the HTTP server and request handlers [20:10] JimBastard: that filter what [20:10] inimino: filter the output to do gzipping, or filter requests and do logging [20:10] atlithorn: hello, having problems getting node to run on os x... known problem? couldn't find anything on google groups [20:11] JimBastard: ahhh [20:11] JimBastard: i dont think so [20:11] JimBastard: not sure [20:11] JimBastard: middleware [20:11] inimino: yeah, middleware [20:12] inimino: or do authentication, by looking at request headers like Cookie: or Auth: and then adding some annotation on the request like 'this request is authenticated, username is ...' [20:12] inimino: I guess that stuff will coalesce out of the JSGI-type stuff [20:12] inimino: ACTION will worry about it later [20:13] JimBastard: do server-side sessions at first i would think [20:13] JimBastard: just have them post some creds and you build a fingerprint for them [20:13] JimBastard: or something [20:14] JimBastard: and give them a token [20:14] JimBastard: and an ID [20:15] inimino: yeah [20:15] triathlon has joined the channel [20:16] JimBastard: okay brb lunche [20:16] JimBastard: then screencast and blog post [20:16] JimBastard: and then more codings [20:20] Biscuits: Hmmm [20:21] Biscuits: Is there any nice syntax in Js to declare operator like things ? [20:21] Biscuits: e.g. in haskell I can define new operators [20:21] Biscuits: like the <|> which takes two parsers and combines them in an or fashion [20:21] inimino: Biscuits: no, only functions [20:21] Biscuits: in JS I can only thing of or(parser1,parser2) but that moves the operator to the left [20:21] Biscuits: or possibly [20:21] inimino: yes, that is the way [20:21] Biscuits: combine(parser1,or,parser2) [20:22] Biscuits: which does something like [20:22] Biscuits: combine(a,b,c,d,e) => x=b(a,c) y=d(x,e) return y [20:22] inimino: combine(parser1,'or',parser2) ? [20:22] inimino: better just or(parser1,parser2) [20:23] Biscuits: nah, I'd want to pass a function :p [20:23] Biscuits: e.g. combine(a,b,c) would be equivalent to b(a,c) [20:23] Biscuits: don't like string comparisons when not needed :p [20:24] inimino: hehe, ok [20:24] inimino: in that case, just or(a,c) then, would be clearer IMO [20:24] inimino: unless you rename 'combine' 'infix' ;) [20:25] inimino: ...trading a minor syntactic ugliness for a worse one [20:38] inimino: Biscuits: you could also do something OO-style, like parser1.or(parser2) [20:43] Biscuits: Yeah, but then I'd have to ensure all "parser" functions would have a certain prototype set [20:44] inimino: yes [20:44] inimino: but that's probably easy enough [20:45] inimino: you'd just have some parser primitives and combinators and make sure they all return such objects [20:45] inimino: Biscuits: did you see http://www.bluishcoder.co.nz/2007/10/javascript-parser-combinators.html [20:58] kriskowal has joined the channel [21:16] cmlenz has joined the channel [21:26] sudoer has joined the channel [21:34] Biscuits: Hmmm, parser combinators, that's the chapter we're working in now :) [21:51] aeosynth has joined the channel [21:59] Atmoz: ACTION setter på suffle på musikksamlingen sin [21:59] Atmoz: shuffle* [21:59] Atmoz: Først ut er http://www.youtube.com/watch?v=h6G-8-KOJ9c [22:02] ryah: is this spam? [22:03] Atmoz: Oh, haha, wrong channel. Sorry [22:03] aeosynth: are there any web hosts that support node.js, or would I have to host pages on my local machine? [22:03] Wes-: ryah: caught 66% of your jsconf.eu presn today before a bunch of local crap blew up. Nice work! [22:04] Atmoz: I was saying, by the way, that I activated shuffle on my old music collection. Sash was one of my good ol' favs. :-) [22:04] Wes-: ryah: want to pick your brains re. event loop implementation at some point in the future; when are you generally around? [22:06] ryah: Wes-: i'm on vacation at the moment, so not much for the next few days [22:06] ryah: best to send me an email [22:06] ryah: ry@tinyclouds.org [22:08] Wes-: ryah: Thanks! Your talk got a whole bunch of wheels turning. [22:08] Wes-: ryah: BTW did you somehow make CommonJS require non-blocking? [22:09] JimBastard: sup ryah, im working on a sweet debugger for node.js [22:09] JimBastard: i forked node_debug, its looking good [22:10] ryah: Wes-: require.async() is non-blocking [22:11] ryah: JimBastard: really? tell me about it [22:11] JimBastard: you wanna see a live demo? [22:11] ryah: yes [22:11] ryah: can it do breakpoints? [22:11] JimBastard: k one sec [22:12] JimBastard: not yet [22:12] JimBastard: its very simple [22:12] JimBastard: http://maraksquires.com:8080/ [22:13] JimBastard: i just have been polishing node_debug, im trying to figure out the most important features to add next [22:13] ryah: so i was visiting the v8 people this week - we came up with lots of ideas for a web based debugger [22:13] ryah: and profiler [22:13] ryah: v8 has lots of support to profile [22:13] JimBastard: you see my messages to you? [22:13] ryah: JimBastard: cool looks nice [22:13] ryah: yeah [22:14] JimBastard: check out Snippets [22:14] JimBastard: thanks man [22:14] JimBastard: it keeps history as well [22:14] JimBastard: needs a login though...thats next [22:14] JimBastard: i was gonna build a really simple session.js [22:15] JimBastard: profiling is a good idea [22:15] JimBastard: not sure how to get started on that or break points though [22:16] JimBastard: is anyone else working on a debugger? id love to help [22:17] ryah: cool. gtg. let's email about it. i'll tell you my ideas [22:18] JimBastard: kk, ill be on mailing list [22:20] aeosynth_ has joined the channel [22:26] rektide has joined the channel [22:33] aeosynth_: would I have to use my local machine to host pages using node.js, or are there any web hosts that support it? [22:39] n8o has joined the channel [22:45] softdrink has joined the channel [22:57] softdrink1 has joined the channel [23:23] JimBastard: what you guys think, http://maraksquires.com/node_debug/ [23:23] softdrink has joined the channel [23:23] richtaur has joined the channel [23:45] frodenius: JimBastard: awesome [23:47] edspencer has joined the channel [23:47] JimBastard: you like? [23:57] softdrink has joined the channel [23:58] bentomas has joined the channel