[15:43] javajunky: voodootikigod: around ?
[15:43] micheil: I've found the first stumbling block though.. the dirty class
[15:43] creationix: mape: https://gist.github.com/9efd7af40535e2e7b7e8
[15:43] javajunky: I think I looked at it a while ago when working on my mongodb-session provider for express, way beyond my skills
[15:43] creationix: as long as you don't need whitespace preserved that should work
[15:43] mape: nice :)
[15:44] mape: Now I just have to get that into express :S
[15:44] javajunky: you should be able to re-use that code inside of express just fine
[15:44] creationix: mape, can't help there, there is a reason tj didn't use my version
[15:44] javajunky: for your sanity you may want to talk with Tj about supporting that usage case in his haml too though ;)
[15:45] mape: Hehe yeah
[15:45] creationix: true, I'm not sure if he treats script tags special
[15:45] micheil: mape: thanks for the following dude
[15:45] javajunky: creationix: yeah he does.
[15:45] javajunky: he's online at the mo..
[15:45] mape: micheil: Hehe no worrys, added you to the nodejs list as well
[15:46] micheil: not to self: socks5 proxy doesn't substitute for the real internets
[15:46] creationix: micheil: what are you making websockets for anyway
[15:46] micheil: mape: heh heh
[15:46] micheil: creationix: because I can do it better. :P
[15:47] micheil: creationix: no, due to a project I'm, working on
[15:47] creationix: so my lot is to make pilot libraries only to have them outdone by someone else
[15:47] micheil: I need a more robust server, and the best way for me to do that is through making it myself
[15:47] creationix: NIH :)
[15:47] micheil: NIH?
[15:47] creationix: http://en.wikipedia.org/wiki/Not_Invented_Here
[15:48] micheil: ah
[15:48] micheil: creationix: I've been working with ry to add in things to node to make writing things like websocket servers easier in node
[15:48] mape: creationix: Those are the best, a nudge in the right direction :)
[15:48] creationix: micheil: I know, I'm just messing with you
[15:48] creationix: the upgrade event is great
[15:49] micheil: creationix: I'm also talking with the author of the spec to ensure conformance
[15:49] mape: Someone should do a hackathon, have a list where people can make wishes for stuff they want and people can "select" projects and hack away for a period of time
[15:49] micheil: mape: good idea.
[15:49] mape: A little community thing that surface useful stuff
[15:49] mape: And perhaps give exposure to neat stuff
[15:49] micheil: we should add a wiki page for it, and promote it on twitters and such
[15:51] micheil: _ry: any thoughts?
[15:51] creationix: micheil: there is already such a page for core node stuff
[15:51] creationix: you can probably start a new page for modules, it is a wiki after all
[15:51] micheil: creationix: yeah, purely the reason I'm doing it was at the time I started, nothing existed that fitted with what I really wanted.
[15:52] creationix: I made mine because socket.io was way overkill for what I wanted
[15:52] creationix: but is browsers start following the spec mine will break soon
[15:52] micheil: ACTION doesn't like the idea of munging long-polling with websockets
[15:52] creationix: and with the upgrade event my version will be obsolete soon anyway
[15:53] micheil: creationix: currently there's a slight lapse in spec though, as the ieft told Ian to stop sending in updates
[15:53] rolfb has joined the channel
[15:53] creationix: nice
[15:53] micheil: not really.
[15:53] micheil: means the specs are harder to find
[15:53] phazm has joined the channel
[15:54] indexzero has joined the channel
[15:54] rektide: i have a dirty question
[15:54] micheil: creationix: btw, my one's going to support both draft75 (the chrome version) and an assumed draft76, which adds the security stuff
[15:54] mattly has joined the channel
[15:54] creationix: cool
[15:54] rektide: if you wanted to implement a http server in the browser, what code base would you steal / modify / build from / look at
[15:54] micheil: rektide: don't offend the women ;P
[15:54] rektide: ^--- NMS
[15:55] micheil: rektide: a http server.., in the browser?
[15:55] micheil: rektide: wouldn't that require you to connect to a localhost?
[15:55] micheil: rektide: it sounds a little bizzare
[15:55] rektide: lets say you want the browser to be an http server over websockets
[15:56] creationix: rektide: what about nat?
[15:56] micheil: okay, the thing that I'd do, is use something like sammy.js and use websockets for the communication means
[15:56] micheil: maybe
[15:56] micheil: or I'm getting the wrong idea.
[15:56] micheil: the idea of a website that once visited it serves itself sounds crazy
[15:56] jedschmidt: rektide: i think it's a great idea.
[15:57] jedschmidt: rektide: i'm hoping to do work in that area soon.
[15:57] rektide: its very Opera Unite
[15:57] micheil: jedschmidt: explain?
[15:57] jbrantly: I thought Opera did something like that recently...
[15:57] creationix: I know there are firefox plugins that do that sort of thing, but for obvious security concerns, it's not allowed normally
[15:57] rektide: jedschmidt: its the next step in my Pipe Layer async http transport
[15:58] rektide: i'm not really sure where to start though
[15:58] rektide: reimplementing an http server has a lot of details
[15:58] micheil: rektide: 404: http://cgit.voodoowarez.com/pipe-layer
[15:58] jedschmidt: micheil: my plan is to port (fab) to the browser eventually. so url fragments become paths, and you can serve an entire site from the browser.
[15:58] jbrantly: I'm not aware of any kind of way to open a listening socket in the browser though, unless like creationix said it's through a third-party plugin
[15:58] rektide: micheil: ends in /
[15:58] rektide: http://cgit.voodoowarez.com/pipe-layer/
[15:58] rektide: where was that link?
[15:58] jedschmidt: tho maybe i misunderstood rektide's idea...
[15:58] micheil: rektide: github
[15:58] creationix: but even with a flash socket server (if that exists), you're going to have firewall issues
[15:59] chakrit has joined the channel
[15:59] micheil: jedschmidt: yeah, doing stuff like Sammy.js does is pretty simple
[15:59] rektide: github link updated
[15:59] micheil: jedschmidt: but doing something that creates a server as a socket type, that's a bit crazy
[15:59] rektide: creationix: well, opera does it by proxying everything through an opera server
[15:59] mape: throwing security out the door?
[15:59] jedschmidt: micheil: agreed. that is crazy. in a good way.
[16:00] rektide: creationix: rektide.unite.opera.com/foo/bar, just for example, routes to the browser
[16:00] creationix: rektide: ahh, then that's quite possible with a node proxy
[16:00] rektide: indeed i already have it running in simple form
[16:00] rektide: ReverseFilter
[16:00] steadicat has joined the channel
[16:00] rektide: inspired by tonyg's work on ReverseHttp
[16:00] micheil: jedschmidt: crazy in the way that the twitching part of my brain can't even think of it
[16:00] creationix: yeah, websocket is probably what you want then
[16:00] jedschmidt: micheil: ha, indeed.
[16:01] rektide: i've extended http to make it work, but websockets is a more comprehensible problem to explain
[16:02] jbrantly: rektide: what is the end-goal exactly? Like, what are you trying to achieve beyond what websockets provides?
[16:02] creationix: I think the unique goal is routing to people's browsers
[16:03] creationix: I think it's neat, too bad you're going to be bottlenecked by the proxy
[16:03] rektide: jbrantly: my own goal is to provide an asychronous bi-directional http transport for an infinite number of open tabs.
[16:04] micheil: rektide: that's pretty much websockets.
[16:04] jbrantly: rektide: that's the part that I don't understand I guess. I thought websockets provided just that ("asynchornous bi-directional http transport")
[16:04] rektide: creationix: at some point i'll go see if flash will let me make listen servers
[16:04] rektide: micheil: websockets do not solve the connection sharing issue in any way
[16:04] micheil: rektide: please.. no :P
[16:04] creationix: rektide: I'm not sure it exists
[16:05] micheil: rektide: that was re using flash
[16:05] rektide: *nod*
[16:05] micheil: rektide: do you mean peer to peer between tabs?
[16:05] micheil: no server involved?
[16:06] rektide: micheil: atm peer to peer between tabs has to go through the server, but i do intend to add more sentience for that use case down the road
[16:06] micheil: rektide: is that what you're wanting to do?
[16:06] felixge has joined the channel
[16:06] felixge has joined the channel
[16:06] mape: rektide: can't you use clientside storage and use focus on the window to move data?
[16:07] mape: blur/focus
[16:07] creationix: rektide: sorry, I can only find socket clients for flash, not servers
[16:07] mape: should be able to access the data since it is the same domain?
[16:07] jbrantly: rektide: I think I'm beginning to maybe understand. You want multiple tabs to be able to use the same connection?
[16:07] rektide: mape: i'm using a sharedworker
[16:07] rektide: jbrantly: exactly
[16:07] rektide: jbrantly: asychronously, so hanging requests are a non issue. and bi-directionally, so server can assert/push data.
[16:07] mape: Hmm think ape-project does that
[16:08] mape: Not sure it does what you want though
[16:08] jbrantly: rektide: essentially something like tab -> local "browser server" -> remote connection. Using the "browser server" as a proxy
[16:08] rektide: uh yeah i think so
[16:09] rektide: all i'm doing is
[16:10] rektide: attaching X-Pipe and X-Seq to each http request outgoing, then every response from the server is tagged with the same identifier
[16:10] rektide: and having all XHR's piped to a SharedWorker to tag & route messages
[16:11] rektide: SharedWorker routes each response back to the appropriate XHR in the appropriate tab
[16:12] sudoer has joined the channel
[16:15] jbrantly: seems... strange to me. I'm trying to think of a case where the lack of connection-sharing would be an issue.
[16:15] jbrantly: but, each to their own I guess :)
[16:16] rektide: i'm trying to think of a place
[16:16] rektide: where the connection limit
[16:16] jbrantly: if you take out the connection-sharing stuff though, then I think websockets alone solves the problem
[16:16] rektide: hasnt fucking bitten a comet application in the butt
[16:17] rektide: indeed, and i wish i was a smarter man and knew how to componentize the various aspects of what i'm doing
[16:17] rektide: i simply detest request/response
[16:17] rektide: on moral grounds
[16:17] rektide: and wanted to decouple request from response
[16:17] jbrantly: rektide: that's one of the nice things about node- lots and lots of connections cheaply
[16:21] micheil: jedschmidt: I don't suppose you have the talk notes from JSConf lying about, do you?
[16:22] jedschmidt: micheil: for my preso, you mean? all the notes i have are in flickr.
[16:22] micheil: jedschmidt: oh?
[16:22] micheil: jedschmidt: I just saw the slides, I didn't see any notes
[16:22] jedschmidt: micheil: yeah, it's not intuitive.
[16:22] jedschmidt: micheil: you need to click the slide to turn on the notes, i think.
[16:23] micheil: oh, okau
[16:23] jedschmidt: micheil: from slideshow view, click "show info" in the upper right.
[16:23] pkrumins: i am curious - what's new upcoming in node?
[16:23] micheil: jedschmidt: I'm still not understanding fab much, it seems slightly foreign to me.. but my first introduction to a framework was with MVC
[16:23] micheil: pkrumins: something.
[16:24] micheil: pkrumins: I did hear windows mentioned by ry earlier today
[16:24] pkrumins: oh windows.
[16:24] pkrumins: not bad, there will be users!
[16:25] jedschmidt: micheil: it's not as difficult as most think. it's just one small concept applied over and over. feed (fab) a bunch of apps, and (fab) will organize them based on their arity (where arity = number of apps each app talks to). the notes should help.
[16:25] micheil: jedschmidt: hmm.. okay
[16:26] micheil: pkrumins: means a longer deploy cycle probably
[16:26] jedschmidt: yeah, getting node on windows has got to be an intense task. kudos to _ry.
[16:29] zomgbie has joined the channel
[16:29] charlesjolley has joined the channel
[16:30] pkrumins: but is it actually necessary
[16:31] cloudhead has joined the channel
[16:32] javajunky has joined the channel
[16:36] mattly has joined the channel
[16:37] zomgbie has joined the channel
[16:41] andrewvc has joined the channel
[16:42] Nohryb has joined the channel
[16:43] rolfb: why? a virtual machine would be plenty
[16:44] andrewvc: I've got a question about buffers, the api docs mention that a readable stream's data event should emit a Buffer by default, I'm trying to use this with fs.readstream but I seem to only be getting back a string, even though I'm not using setEncoding. I've tried this on HEAD and 1.93, any ideas?
[16:44] rolfb: but then again, if everyone is thinking that, what will be of progress? :)
[16:44] mjr_ has joined the channel
[16:45] WALoeIII has joined the channel
[16:45] zomgbie has joined the channel
[16:48] micheil: andrewvc: not sure there
[16:48] pgriess has joined the channel
[16:48] andrewvc: thanks for the feedback micheil, I guess I'll run some more tests and maybe open a ticket
[16:49] micheil: andrewvc: my first point of action would be to look at the code behind the said method, and see if I can figure it out
[16:50] andrewvc: hmmm, in the node source?
[16:50] micheil: yeah
[16:50] andrewvc: Hmm, well I don't know C is the thing
[16:51] RayMorgan has joined the channel
[16:51] micheil: andrewvc: node is mainly js
[16:51] micheil: andrewvc: only the magic parts are in C
[16:52] andrewvc: oh, really, well then I'll have a look
[16:52] zomgbie has joined the channel
[16:54] micheil: andrewvc: line 470 of lib/fs.js roughly
[16:54] chakrit has joined the channel
[16:54] andrewvc: sweet thanks for the pointer
[16:57] chakrit has left the channel
[16:57] chakrit has joined the channel
[16:57] micheil: hmm.. andrewvc, I think the source is in the C now that I look
[17:00] andrewvc: hmmmm, well I'll prep a good test case to send in as a bug then
[17:01] RayMorgan_ has joined the channel
[17:03] felixge has joined the channel
[17:04] micheil: andrewvc: looks like readFileStream doesn't actually return a stream in the Buffer sense
[17:04] micheil: it's in the C to encode it and output as a string
[17:04] micheil: assuming a default encoding of binary
[17:06] jedschmidt: is there a reason require.async is undocumented?
[17:06] andrewvc: micheil, weird because the docs say a buffer is the deault
[17:06] micheil: jedschmidt: maybe.
[17:07] micheil: andrewvc: which docs?
[17:07] _ry: jedschmidt: unsure if i want it
[17:08] andrewvc: http://nodejs.org/api.html#readable-stream-20
[17:08] _ry: fs.*Stream don't do Buffers right now
[17:08] _ry: working on that today, actually
[17:08] jedschmidt: _ry: ah, okay. so i guess i should avoid it then? i'm unclear at what point the callback fires.
[17:08] andrewvc: ahhhhhhhhhhhh
[17:08] andrewvc: well there's my answer
[17:08] micheil: andrewvc: I think the thing here is that readableStream != fs.readStream
[17:08] micheil: and exactly what ry said.
[17:09] micheil: andrewvc: see a fair bit below that in the toc: fs.ReadStream
[17:09] andrewvc: thanks ry, I benchmarked converting strings from fs.readstream to buffers before sending them out, and got a 100% performance improvement, it'll really rock once its buffers all the way
[17:10] _ry: andrewvc: yeah, unfortunately sending large strings to socket sucks right now
[17:11] sprsquish has joined the channel
[17:11] _ry: not even sure if that can be solved - i mean - strings in v8 are 16bit arrays
[17:11] _ry: (not just v8 but any js)
[17:11] andrewvc: yeah, I did some benchmarks, and saw your slides
[17:11] _ry: so it always requires some sort of copying
[17:11] _ry: js sucks for binary data :)
[17:11] andrewvc: question about buffers btw, is it safe to re-use a buffer after sending it out to the socket?
[17:12] andrewvc: it appears from some tests I'm doing right now that it isn't safe, correct?
[17:12] _ry: if it was "flushed" then yes
[17:12] _ry: e.g. net.Stream.write returns true
[17:13] _ry: s/e.g./i.e./ :)
[17:13] andrewvc: gotcha, and I can't force a flush right?
[17:13] andrewvc: short of calling end()
[17:13] _ry: no
[17:13] TobiasFar has joined the channel
[17:14] _ry: you have to wait for 'drain' if write() returned false
[17:14] _ry: (this doesn't work on http req/res right now)
[17:15] andrewvc: cool, thanks, I'm working on improving node-paperboy's performance serving files, all this info's really helpful.
[17:18] enherit has joined the channel
[17:19] andrewvc: I wonder if that means I could screw myself memory wise trying to serve a large file, by say reading in an extra large (say 2 gig file (even though I'm only using 64KiB chunks)) and creating new buffers for each chunk, not waiting for the socket to flush.
[17:20] stevendavie has joined the channel
[17:20] charlesjolley has joined the channel
[17:21] binary42 has joined the channel
[17:23] binary42: Does anyone know where I can find a roadmap for V8? Or at least an Idea of what they are working on?
[17:25] pgriess has joined the channel
[17:27] micheil: binary42: http://comments.gmane.org/gmane.comp.lang.javascript.v8.general/2318
[17:27] micheil: binary42: looks like it's just "make v8 faster"
[17:27] micheil: asides from the quantum entanglement device.
[17:27] binary42: Well, from what I can tell they aren't making it faster.
[17:28] binary42: Or at least in any meaningful ways.
[17:28] binary42: i.e. I'd love to see what they are doing for string optimizations but ... no data.
[17:28] micheil: binary42: I guess what that's really saying is that they don't have a roadmap
[17:28] mjr_: I'm curious about what sort of language features they are going to adopt. Full ES5?
[17:29] binary42: micheil: Yeah. Either way, it has seemed like they haven't done much other than platform tweaks for months.
[17:30] mjr_: Faster is good though. I like faster.
[17:30] micheil: binary42: well, I mean, there's no roadmap probably because of what ever goes on inside google stays inside google
[17:30] binary42: mjr_: same. I'm saying it doesn't really seem faster. Maybe 5%.
[17:32] binary42: micheil: Yeah. No complaints on that, I'm just trying to find data... even historical data would be good.
[17:32] micheil: binary42: email a project lead a google?
[17:33] binary42: Hmm. I might. I'm trying to map out a few projects in terms of the most aggressive dynamic language implementations.
[17:33] robrighter_ has joined the channel
[17:33] binary42: V8 was promising but it seems stuck.
[17:34] binary42: Also, the alioth shootout should add an ARM machine. ;-) I should ask Isaac.
[17:36] sudoer has joined the channel
[17:36] lvmike has joined the channel
[17:40] cadorn has joined the channel
[17:41] N` has joined the channel
[17:41] dgathright has joined the channel
[17:43] stevendavie has joined the channel
[17:45] V1 has joined the channel
[17:46] malte has joined the channel
[17:48] mjr_: binary42: I've heard it said on this very IRC channel that the V8 project is trying to keep feature parity with the WebKit/SquirrelFish implementation.
[17:48] binary42: mjr_: Yes. ES-5 is good to have.
[17:48] mjr_: I'm not sure who said that, or if it is true.
[17:50] binary42: Panoramas gone wrong in photoshop are pretty amusing sometimes. Sometimes it's too smart with line detection.
[17:51] binary42: (wrong window. sorry)
[17:51] mjr_: I will stop being confused now.
[17:55] towski has joined the channel
[17:59] kriskowal has joined the channel
[18:03] RayMorgan has joined the channel
[18:07] admc has joined the channel
[18:11] sudoer has joined the channel
[18:11] tmpvar has joined the channel
[18:11] brianmario has joined the channel
[18:11] tmpvar: yo
[18:12] micheil: hi
[18:13] joshbuddy has joined the channel
[18:23] spoob_: micheil; what is this "oo" module?
[18:23] micheil: oo module?
[18:23] spoob_: oh, wrong project sorry
[18:23] micheil: oui?
[18:24] spoob_: i asked you about a problem in another project :)
[18:24] micheil: lost me dude.
[18:24] spoob_: never mind :)
[18:25] micheil: okay
[18:25] malte has joined the channel
[18:25] rektide: urge to build photo gallery in node.js growing. :( :(
[18:26] mjr_: I'm not a front-end guy. I want to build some tools, backed by node of course, but I'm dazzled by the choices in JS UI frameworks.
[18:26] mjr_: Which one should I use?
[18:26] tmpvar: mjr_, depends on your usecase
[18:26] mjr_: extjs? sproutcore?
[18:26] creationix: mjr_: I hear html is well supported
[18:26] creationix: ;)
[18:26] tmpvar: heh
[18:27] tmpvar: what up creationix
[18:27] KungFuHamster_: I've always been partial to jquery
[18:27] creationix: TopCloud!
[18:27] mjr_: Yeah, I've been hand-rolling JS/HTML for a while, and it is getting tedious. I only have to support modern WebKit clients.
[18:27] spoob_: if you want lots of documentation for your choice, consider Cappuccino
[18:27] creationix: http://github.com/creationix/topcloud
[18:27] tmpvar: jquery-ui, yui3, sproutcore
[18:27] creationix: extjs
[18:27] mjr_: So only Safari and Chrome are what I really care about.
[18:27] tmpvar: extjs is pretty damn heavy
[18:27] micheil: mjr_: depends what you need.
[18:27] micheil: you could use something like Uki
[18:28] creationix: TopCloud is jqueryUI + MVC in browser
[18:28] micheil: or another lightweight framework
[18:28] rektide: jquery is a fantastic scalpel
[18:28] spoob_: mjr_; whatever your choice, pick the one with documentation that you like.
[18:28] rektide: but its not going to give you a unified or consistent experience. its not a framework.
[18:28] mjr_: I just want it to be as easy to get working and make changes as possible. This is essentially a front end for a database and server application, which is what I really care about.
[18:29] micheil: mjr_: I'd recommend Uki
[18:29] spoob_: all frameworks are easy to get going and exponentially hard to make changes
[18:29] micheil: http://ukijs.org/
[18:30] micheil: hmm.. I'm not sure if I'm satisfied with any of the existing node http servers (the ones that include routing etc.)
[18:30] rektide: trimpath + jamal are other MVC javascript frameworks
[18:30] mjr_: I hadn't heard of uki, looks kind of cool.
[18:30] rektide: i havent used either but i wanted to throw some MVC possibilities out there
[18:31] rektide: "Javascript MVC" is there as well
[18:31] mjr_: creationix: you like extjs?
[18:31] pkrumins: creationix: looking at your topcloud
[18:31] sudoer has joined the channel
[18:31] creationix: mjr_: their stuff seems good, I haven't used it much though
[18:32] creationix: last I looked it was purely a widget system, no real application framework
[18:32] pkrumins: creationix: looking at your vimeo cast
[18:32] creationix: :)
[18:32] spoob_: damn, Uki's good
[18:32] joshbuddy_ has joined the channel
[18:33] micheil: oh well. to bed I think, it's 4:30am
[18:33] rektide: oh i forgot claypool
[18:34] rektide: yet another jquery mvc framework
[18:34] tmpvar: micheil, g'night
[18:34] micheil: night tmpvar :)
[18:35] pkrumins: creationix: amazing.
[18:35] pkrumins: js is the new thing for apps.
[18:35] creationix: thanks
[18:35] creationix: topcloud is actually pretty old, it's only used by one company as far as I know
[18:35] rektide: js mvc frameworks: topcloud, javascriptmvc, trimpath, jamal, claypool, puremvc, cormvc, .....
[18:35] pkrumins: btw you can get rid of that tcp overhead with that socket.io thing
[18:38] mjijackson has joined the channel
[18:38] creationix: rektide: don't forget sammy
[18:39] mikeal has joined the channel
[18:41] maushu has joined the channel
[18:41] rektide: i was just pointing out mvc frameworks
[18:42] bmizerany has joined the channel
[18:42] rektide: sammy.js doesnt appear to have that particular configuration of separation of concerns in its nature
[18:43] mjr_: I think I don't need an MVC framework as much as an interface builder. extjs looks like what I want.
[18:43] mjr_: I'll only have like 20 users of this app, and they all have Macs. They just need to visualize some data from the server.
[18:46] robrighter has joined the channel
[18:46] javajunky: extjs is very nice, but costs nowadays
[18:48] creationix: I looked at their license a few months ago and it seemed pretty flexible
[18:50] JimBastard has joined the channel
[18:51] rektide: are there any wysiwyg interface builders besides Atlas?
[18:51] JimBastard: rektide !
[18:51] rektide: hiyo!
[18:51] JimBastard: :-D
[18:51] JimBastard: is there any documentation available for pipe layer?
[18:51] rektide: writing a readme right now
[18:52] JimBastard: its to my understanding that you can get around pipelining problems?
[18:52] JimBastard: is that what it does?
[18:52] CIA-75: node: 03Ryan Dahl 07master * rf0fec73 10/ lib/http.js : Don't emit error twice from http.Client - http://bit.ly/9UDIAJ
[18:52] CIA-75: node: 03Ryan Dahl 07master * rb5bdf94 10/ (lib/http.js test/simple/test-http-upgrade2.js): Add another http upgrade test - http://bit.ly/bfCIcW
[18:52] CIA-75: node: 03Ryan Dahl 07master * r7a9c81d 10/ src/node_file.cc : Fix memory leak with fs.writeSync - http://bit.ly/bEVfpi
[18:52] rektide: http://cgit.voodoowarez.com/pipe-layer/tree/README
[18:53] rektide: JimBastard: commited early just for you
[18:55] rektide: i need to go dig up Jamie Lokiers async http post to HyBi
[18:55] rektide: http://www.ietf.org/mail-archive/web/hybi/current/msg00114.html
[18:57] zomgbie has joined the channel
[18:59] Aduros has joined the channel
[18:59] JimBastard: thanks rektide
[18:59] polyrhythmic has joined the channel
[18:59] JimBastard: im going to continue looking into this
[18:59] JimBastard: i think i have a similar solution brewing for another project, but the approach is a little different
[18:59] JimBastard: mostly because our backend is already soa
[18:59] rektide: i'm always happy to discuss, clarify, & make better
[19:00] JimBastard: awesome, if anything ill post on github
[19:01] V1: Hmz, I seem to hit a memory limit while reading and loop through a 6k lined file ;!
[19:01] rektide: interfacing with other external programs is on the todo list
[19:03] tmpvar: v1 a memory limit?
[19:03] V1: FATAL ERROR: Allocation failed - process out of memory
[19:03] teemow has joined the channel
[19:03] tmpvar: wow. wtf?
[19:03] V1: iknow oO
[19:03] tmpvar: paste code plz
[19:03] tmpvar: (gist/pastie heh)
[19:03] V1: i'll craete a gist
[19:04] tmpvar: great
[19:05] V1: http://gist.github.com/388464
[19:05] V1: while reading this csv:
[19:06] V1: http://browserscope.googlecode.com/svn/trunk/test/user_agent_data.csv
[19:06] brapse has joined the channel
[19:06] neytema: where can I submit this bug?
[19:06] neytema: emits two error messages instead of one ...
[19:06] neytema: try { var b = process.binding('evals'); new b.Script('function {}', 'error.fail'); } catch (err) { sys.puts(err.stack); }
[19:09] tmpvar: issues on github
[19:09] neytema: ok
[19:10] creationix: I hate C
[19:10] tlrobinson_ has joined the channel
[19:10] creationix: I now see _ry's motivation for using v8
[19:10] tmpvar: lol
[19:11] mjr_: surely it beats C++ when STL is involved.
[19:12] mikeal: anyone know when LiveEdit is going to be finished in v8?
[19:12] binary42: tmpvar: btw, now that it's may, I was going to announce the new NYC.js meeting. Still up for the 13th?
[19:13] tmpvar: binary42, sure! I may be reusing my cinco-de-nodejs talk though. if thats cool
[19:13] binary42: tmpvar: Yeah. You can talk as long as people don't start tossing rotten fruit up on stage.
[19:14] binary42: (not that there is a stage)
[19:14] tmpvar: lol, i wont need more than 10-15 :P
[19:14] tmpvar: the dom is _extremely_ interesting .. heh heh
[19:14] JimBastard: off topic party is off topic
[19:14] JimBastard: sop
[19:14] JimBastard: yeah
[19:14] JimBastard: go jsdom woot
[19:15] tmpvar: ^_^
[19:15] creationix: does node not use evcom anymore?
[19:15] JimBastard: damn my lunch break is almost over
[19:15] binary42: JimBastard: I'll bring this guy and he'll use is fists of JSON to keep people from doing boring talks... http://www.flickr.com/photos/jsconf/4575936332/
[19:15] mjr_: I'm going to get a burrito and watch creationix's video.
[19:15] JimBastard: oopa!
[19:16] tmpvar: binary42, haha
[19:17] mjr_: binary42: that crockford photo needs more than 0 snarky comments on flickr.
[19:17] binary42: mjr_: Sign up then...
[19:17] binary42: I just uploaded it.
[19:17] sudoer has joined the channel
[19:17] JimBastard: yo binary42 do you know anyone who wants to build online games but is a tech noob. me and ryan[WIN] are plotting to do a mmo with node and some lib he has brewing
[19:17] JimBastard: we could use a html bitch :-D
[19:17] binary42: I thought of giving it a subtitle but I left it out for people to be creative with.
[19:18] tmpvar: lol
[19:18] creationix: _ry: you there?
[19:18] tmpvar: JimBastard, isnt that a long road just to grind in the mines?
[19:20] TheEnd2012 has left the channel
[19:21] JimBastard: whats up tmpvar
[19:21] derbumi has joined the channel
[19:21] JimBastard: you've been eaten by a grue
[19:21] JimBastard: ACTION wins
[19:21] tk: weird, I moved my git repo for node, and now I cant build it :( it keeps trying to find stuff in the old location despite make clean and a new configure
[19:22] tmpvar: howdy thar JimBastard
[19:22] JimBastard: tk
[19:22] creationix: I wish evcom had more docs
[19:22] JimBastard: rm -rf
[19:22] creationix: http://gist.github.com/388484
[19:22] tmpvar: tk, make distclean
[19:22] JimBastard: ^^
[19:23] tmpvar: coffee time
[19:23] tk: ugh, thanks tmpvar and JimBastard
[19:24] bweaver has left the channel
[19:24] creationix: ok, who here knows C?
[19:25] creationix: I just want to print the bytes of a stream, but I can't figure out the proper magic to get around gcc warnings
[19:27] _ry: creationix: hey
[19:27] creationix: _ry, do node not use evcom anymore?
[19:27] _ry: no
[19:27] creationix: that explains why I can't find any examples of it
[19:28] creationix: _ry: do you have a second to help me figure out a gcc warning? (see my gist above)
[19:29] _ry: creationix: cast it to a char
[19:30] creationix: _ry: same error
[19:30] _ry: printf("%d\n", ((char*)base)[i])
[19:30] creationix: ahh, that worked
[19:30] creationix: you have to cast it before accessing it with []
[19:30] creationix: I was doing it after
[19:31] _ry: void* doesn't have a length - so it doesn't make sense to access it with []
[19:31] creationix: I see
[19:31] _ry: need to tell it how far to step
[19:31] creationix: and I can't use int* because I want 1 byte steps
[19:31] _ry: sizeof(char) != sizeof(int)
[19:32] creationix: yes, I do know that one
[19:32] creationix: thanks _ry
[19:32] _ry: np
[19:32] creationix: btw, what does node use for sockets now
[19:32] _ry: net.js
[19:32] creationix: so node_net2.cc?
[19:33] _ry: yeah - but that's just bindings to low-level posix functions
[19:33] _ry: net.js = evcom in js
[19:33] JimBastard: aight i gotta go. working from home is hard, i have to actually pay attention to whats going on
[19:33] _ry: (more or less)
[19:34] creationix: it appears to be nearly 100% V8 bindings
[19:34] creationix: well, I can't use V8 for my project because I need it on sparc, oh well
[19:34] _ry: it's good to use c
[19:35] creationix: so evcom is still a good choice for a pure c app?
[19:35] _ry: *shrug* there are some problems with it
[19:35] _ry: it depends on what you're doing
[19:36] creationix: I'm not doing anything fancy, just some tcp peer-to-peer stuff over a lan
[19:36] piranha_ has joined the channel
[19:36] paul__ has joined the channel
[19:37] bweaver has joined the channel
[19:38] derbumi has joined the channel
[19:41] javajunky1 has joined the channel
[19:42] joshbuddy has joined the channel
[19:47] isaacs has joined the channel
[19:49] aho has joined the channel
[19:55] phazm: _ry: Is the presentation on node you gave at yahoo online somewhere?
[19:55] isaacs: phazm, _ry: I thought that was wednesday...?
[19:55] isaacs: er... i thought that was scheduled for this wednesday, 5/5
[19:56] isaacs: so it will be wednesday :)
[19:56] phazm: Sorry, forgot to mention... I am from the future.
[19:56] isaacs: phazm: i knew it!!
[19:56] isaacs: have you come back in time to tell us never ever to create time machines because they destroy everythying?
[19:56] phazm: node.js becomes sentient and takes over the world
[19:57] CIA-75: node: 03Ryan Dahl 07master * rd76091d 10/ src/node_file.cc : Implement fs.read() for Buffers (again) - http://bit.ly/94TMV8
[19:57] phazm: no -- I've come to place bets on sporting events
[19:57] _ry: phazm: no yet
[19:57] _ry: not
[19:58] _ry: mape: any luck using markdown.js?
[20:00] mjijackson has joined the channel
[20:00] _ry: man the buildbots are all fucked up
[20:00] mjr_: _ry: do you need an OSX buildbot slave? I might be able to set one aside.
[20:01] _ry: mjr_: i would
[20:01] _ry: like that
[20:01] fictorial has joined the channel
[20:03] creationix: heh, c gets the cool error messages
[20:03] creationix: node(7593) malloc: *** error for object 0x1002023c0: incorrect checksum for freed object - object was probably modified after being freed.
[20:04] tmpvar: hah
[20:04] dgathright has joined the channel
[20:04] creationix: strange that you can't modify memory after allocating it
[20:07] mape: _ry: Haven't had the time to check that just yet
[20:08] mape: I'll look at it after some food is generated though
[20:10] _ry: mm food
[20:10] mape: For sure, meatballs
[20:10] _ry: ACTION has only eatten very bitter dandelion leaves in the past 32 hours
[20:11] _ry: ACTION needs to generate some food too
[20:11] tmpvar: going on a purge?
[20:11] creationix: _ry: I tried some of those yesterday, they are really bitter
[20:11] _ry: no, just forget to eat
[20:11] creationix: my backyard is full of them
[20:11] tmpvar: _ry, same problem here heh
[20:14] maushu has joined the channel
[20:17] jazzychad has joined the channel
[20:18] CIA-75: node: 03Ryan Dahl 07master * r3202bce 10/ src/node_file.cc : Implement fs.readSync for buffers - http://bit.ly/aRUWhj
[20:19] sudoer has joined the channel
[20:20] tmpvar has joined the channel
[20:20] fictorial has joined the channel
[20:22] tmpvar has joined the channel
[20:22] tmpvar: eugh, java sucks.
[20:23] lobridge has joined the channel
[20:24] _ry: http://twitter.com/jmar777/statuses/13324101945 <-- sweet
[20:25] ewdafa has joined the channel
[20:26] CIA-75: node: 03Ryan Dahl 07master * rea37d98 10/ src/node_file.cc :
[20:26] CIA-75: node: Implement writeSync for buffers
[20:26] CIA-75: node: (Needs tests still) - http://bit.ly/af4lnB
[20:27] kriszyp has joined the channel
[20:33] joshbuddy has joined the channel
[20:37] felixge has joined the channel
[20:39] creationix: _ry: I completely agree with jmar777
[20:42] tilgovi has joined the channel
[20:43] V1: I agree, this way you do not forget error handling. :)
[20:44] tmpvar: well, you can still ignore it, heh
[20:44] tmpvar: but I also agree that its placement is optimal
[20:45] devinus has joined the channel
[20:45] devinus: Challenge: write a line of Node.js code that isn't compatible with V8 in Chrome
[20:46] creationix: devinus: Object.getOwnPropertyNames
[20:46] devinus: creationix: mm, i like
[20:47] creationix: devinus: hmm, latest beta chrome has it now
[20:47] devinus: damn
[20:47] creationix: that was the last ES5 feature added to v8 I think
[20:47] tk: devinus: require('sys'); ? :P
[20:48] creationix: devinus: you can go through the changelog and find one of the recently fixed bugs
[20:48] creationix: chrome takes longer to adopt v8 changes than node
[20:51] devinus: i don't know why i allow myself to be trolled
[20:51] devinus: http://www.reddit.com/r/programming/comments/bx77l/a_http_proxy_server_in_20_lines_of_nodejs_code/c0pbay6
[20:52] V1: Hmzz, i understand why I got a "FATAL ERROR: Allocation failed - process out of memory" from node while I was running: http://gist.github.com/388464 … It printed 6000 lines 6000 x.. Still it would be able to handle it, but explains the error :)
[20:53] _ry: V1: what version?
[20:54] _ry: node -v
[20:54] V1: 0.1.92
[20:54] _ry: hm
[20:54] _ry: that command does buffer the entire file
[20:54] _ry: how big is it?
[20:55] V1: 6000 lines
[20:55] _ry: in bytes - (i assume the lines arn't 1mb long?)
[20:55] V1: 770kb
[20:56] _ry: hmm...
[20:56] kriszyp_ has joined the channel
[20:56] V1: You can see the loaded file here: http://code.google.com/p/browserscope/source/browse/trunk/test/sample_user_agents.csv
[20:56] teemow has joined the channel
[20:57] V1: I mean: http://code.google.com/p/browserscope/source/browse/trunk/test/user_agent_data.csv
[20:58] _ry: V1: cool - well i can repeat
[20:58] _ry: let me look into it
[20:58] V1: Ok.
[20:58] _ry: pretty strange
[21:00] V1: The error doesn't trigger when you are using a smaller file, when loading the sample_user_agents.csv it just works
[21:04] colin___ has joined the channel
[21:04] V1: Memory spiked up to 400MB while processing that file.
[21:04] ncb000gt has left the channel
[21:05] dgathright has joined the channel
[21:05] mattly has joined the channel
[21:05] _ry: yeah there's something very wrong happening
[21:06] bpot has joined the channel
[21:07] towski has joined the channel
[21:09] mape: _ry: So the markdown-js, I assume you want serverside generation of html using it? Or have it converted on the clientside?
[21:10] stevendavie has joined the channel
[21:10] teemow has joined the channel
[21:11] tmpvar: serverside generation yo!
[21:12] felixge has joined the channel
[21:12] felixge has joined the channel
[21:12] sveisvei has joined the channel
[21:12] mape: generation x
[21:13] pkrumins: haha
[21:13] _ry: mape: serverside
[21:13] mape: Jup
[21:16] felixge has joined the channel
[21:16] felixge has joined the channel
[21:16] bmizeran_ has joined the channel
[21:18] _ry: so
[21:18] _ry: V1: that script doesn't exactly do what you want it to
[21:19] _ry: you're printing the file to stdout for each line
[21:19] V1: Yup,
[21:19] V1: but the stdout can't handle that much?
[21:19] _ry: that is, you're pumping 2240 * 274k to the console
[21:20] V1: Good point.
[21:20] _ry: which is about 600 megs
[21:20] _ry: the tty can't take that all
[21:20] _ry: so node trys to buffer it in memory
[21:20] _ry: then fails
[21:20] tmpvar: stupid tty
[21:20] _ry: i admit - this is not a good behavior
[21:21] V1: But it does have enough memory available for this
[21:21] _ry: but it is an extreme case
[21:21] V1: at this point i still had 28gig to spare.
[21:21] tmpvar: heh
[21:21] tmpvar: dunno if thats enough
[21:21] felixge: I think I've seen v8 give memory errors before my machines memory was exhausted before as well
[21:22] _ry: yeah - it might be that v8 errors out before going to swap?
[21:22] _ry: v8's out of memory handling is not good
[21:22] rektide: trying to update chromium (gclient sync) exhausts my 4gigabytes and my 12gb swap. :V
[21:23] rektide: talk about some bad memory handling
[21:23] _ry: on the other hand - i could be misreporting Node's external memory usage to v8
[21:23] rektide: albiet not V8
[21:24] pgriess has joined the channel
[21:24] V1: It should be to take the full advantage of the available memory,
[21:26] devinus: goddamn it why is this asshole still insisting that node.js is a library
[21:26] devinus: i really should stop letting trolls troll me
[21:26] devinus: but i can't fucking help it, he's pissing me off
[21:27] devinus: ACTION tries to cool off
[21:27] _ry: devinus: pat pat
[21:27] devinus: "I expected you to at least know this, which means that you would consider Node.js to be either another language if not a library."
[21:28] devinus: I never said node was another fucking language
[21:28] devinus: why do you need to paint everything as either a language or a library
[21:28] devinus: fucking trolls
[21:28] devinus: gah
[21:28] tmpvar: lmfao
[21:28] tmpvar: where is this?
[21:28] devinus: tmpvar: this whole thread http://www.reddit.com/r/programming/comments/bx77l/a_http_proxy_server_in_20_lines_of_nodejs_code/c0p0y0q
[21:29] phazm: http://en.wikipedia.org/wiki/Category:JavaScript_libraries wikipedia is _never_ wrong.
[21:30] _ry: "In computer science, a library is a collection of subroutines or classes used to develop software."
[21:30] devinus: phazm: fuck
[21:30] _ry: i guess node is a library then
[21:30] devinus: i guess it was just trolls trolling trolls then....
[21:30] devinus: who am i? this is not my beautiful wife....
[21:31] tk: I would have considered node.js an enviroment more than a library
[21:31] _ry: V1: yeah - it seems strange that it would exit like that..
[21:31] bmizerany has joined the channel
[21:32] charlesjolley has joined the channel
[21:32] tk: devinus: this is the guy that I would have expected major replies to "Language-wise, Javascript is an inferior language with lack of continuations, default globals, and weak typing that is disastrously prone to bugs. There are barely any libraries."
[21:34] devinus: tk: *sigh* i'm actually somewhat sympathetic to that statement
[21:35] devinus: not in that crowd, but a little sympathetic
[21:35] phazm: I'm not too well versed in *nix environments -- is there any way to install node on a shared hosting environment without su powers?
[21:35] V1: "compare Node.js to Twisted is like comparing a spider monkey to a rhinoceros" I lol'd when i saw that ;$
[21:35] cainus_ has joined the channel
[21:36] mape: _ry: You don't really mind me moving files around/organizing as long as the docs output the same and use markdown-js?
[21:39] _ry: i mind a little
[21:39] _ry: i mean if it makes sense, sure - i don't like moving things around just for the sake of it
[21:40] mape: Well moving things into subfolders for their specific type instead of having everything in the root
[21:41] derbumi has joined the channel
[21:41] mape: _ry: http://gist.github.com/388620
[21:42] mape: Something like that, with generatedocs.js in the root, alongside the api.markdown and the outputed index.html
[21:42] V1: you got /lib/lib/ does that even make sense?
[21:43] V1: … ignore its lib inside markdown ;#
[21:43] mape: Well not lib/lib but lib/module/lib
[21:43] mape: Not sure what would be a better name for the root dependencies folder
[21:44] _ry: mape: sure
[21:46] mape: http://doc.mape.me/
[21:47] mape: Is what gets generated now, seems there are some changes in the markdown I guess or just other output
[21:49] _ry: mape: that's with markdown-js?
[21:49] mape: text followed by ======== would be the same as # h1 level No?
[21:49] V1: Nice node coverage by Yahoo; http://developer.yahoo.net/blog/archives/2010/05/jsconfus_the_pirate_edition.html :)
[21:49] mape: _ry: Yes
[21:50] _ry: cool
[21:50] mape: Think that is the proper way though
[21:50] mape: Current just throws it as a but probly should be h1
[21:51] felixge has joined the channel
[21:51] felixge has joined the channel
[21:53] darkf has joined the channel
[21:53] _ry: is that markdown-js nice?
[21:53] _ry: i haven't actually used it
[21:53] mikeal: i was wondering the same thing
[21:53] mikeal: i've only messed with Showdown
[21:53] mape: Easy enough to use
[21:54] mape: Seems to output correct markup
[21:54] mikeal: does it have a mode that doesn't escape?
[21:55] tmpvar: slick, jsdom is mentioned on that yahoo post
[21:55] tmpvar: in the slides for yui
[21:56] mjijackson: tmpvar: about jsdom, how does it currently compare to env-js?
[21:58] mape: There, http://doc.mape.me/ seems close enough
[21:58] tmpvar: mjijackson, it runs on node :P
[21:58] rektide: did you use any env-js code ?
[21:58] tmpvar: and its light, simply a dom level 1 implementation with some BOM stuff
[21:58] tmpvar: no
[21:58] mjijackson: tmpvar: of course ;)
[21:58] tmpvar: i took the dom level 1 IDL and converted it into js + implementation
[21:59] paul__ has joined the channel
[21:59] tmpvar: used their test framework, etc so it passes 1300 or so tests
[21:59] mjijackson: tmpvar: so env-js is more complete? do they do level 2 or 3?
[21:59] tmpvar: their test cases*
[21:59] tmpvar: mjijackson, im not completely certain
[21:59] tmpvar: all i know is that when I looked it was tightly coupled with rhino
[21:59] mjijackson: tmpvar: what i'm wondering is how much of the env-js stuff could be ported to jsdom
[21:59] tmpvar: and pretty large.
[22:00] mjijackson: tmpvar: yeah, saw the same thing
[22:00] softdrink has joined the channel
[22:00] tmpvar: dunno, I dont even ship jsdom with a parser so I guess the idea is "give the people a choice and keep things small"
[22:00] bmizeran_ has joined the channel
[22:01] jan____ has joined the channel
[22:01] bmizera__ has joined the channel
[22:02] mape: _ry: I was thinking about an idea, not sure if it is usable or even sane. But if on the docs page you hade an "edit" button that users could click, that would show the corresponding sections markdown in a popup which would allow the user to edit and add content. When submitting the content gets sent to a service where a patch-file is sent to you? or people taking care of the docs.
[22:02] mjijackson: tmpvar: i see. thx
[22:02] mape: Would that be useful or just allow for really poor submissions?
[22:05] _ry: mape: that sounds pretty useful
[22:06] _ry: mape: like a complete client side thing?
[22:07] mape: Well it would pretty much just be fetch the markdown version of the section you clicked, get a textarea (perhaps a preview side by side), send that markdown to a server through jsonp which mails the patch to array of mails and responds with "Thanks!"
[22:07] tmpvar: mjijackson, np. I'm open to suggestion
[22:07] mape: Shouldn't be to bad to create
[22:08] mape: Just have to make sure "patch" to run on the server recieveing the new markdown, and the latest version of the docs
[22:08] mjijackson: tmpvar: are you totally opposed to coupling it with Node?
[22:09] mape: then you send the section to be replaced alongside the updated version, do a str.replace(old, new), put that in a tmp file and run patch on it, take the output of that and mail/do whatever
[22:09] tmpvar: well, it runs on norwal already (or so ive heard)
[22:09] bmizerany has joined the channel
[22:09] _ry: mape: would be cool if there was a 'preview' functionality
[22:09] _ry: using the same markdown-js ;)
[22:09] _ry: (yes! sharing code!)
[22:09] mape: Yeah, should be easy enough
[22:09] mape: (I assume)
[22:09] _ry: hmm
[22:10] mape: Guess this was a good start then getting things organized
[22:10] mikeal: does anyone know if jed is keeping this up to date http://jed.github.com/fab/
[22:10] mikeal: because those docs aren't linked to from the website
[22:10] mjijackson: tmpvar: yeah. no reason it shouldn't. i just saw a project on GitHub called node-htmlparser that might make a nice addition to the codebase.
[22:11] mjijackson: but then i saw in the README that node-htmlparser is really a misnomer because you can run the code in the browser, so it's not coupled with node
[22:11] mjijackson: mikeal: linked to from what website?
[22:11] romainhuet has joined the channel
[22:12] _ry: tmpvar, mjijackson: are you aware of the work aria is doing?
[22:12] mjijackson: _ry: no
[22:12] hassox has joined the channel
[22:12] mjijackson: _ry: you mean W3C aria? or is aria a person?
[22:13] _ry: a person
[22:13] mjijackson: sorry, WAI-ARIA is what i was thinking of
[22:13] isaacs: the only problem with the error-first approach is when you structure your own code like that, and then forget, and do something like cb(data) instead of cb(null, data)
[22:13] mape: _ry: I'll throw together a dummy version of it as I get time if you feel it might end up being used, and should I push the changed I made to the doc generation to my node-fork?
[22:13] isaacs: a few times now, i've been like "wth why is this thing throwing [object Object]!?"
[22:13] _ry: http://github.com/aredridel/html5
[22:13] _ry: ^-- mjijackson, tmpvar
[22:14] mjr_: I like the idea of making it easy to accept user submissions for the docs, as long as it doesn't turn into a big jumble of comments like on the php docs, for example.
[22:14] mjr_: Running through a human editor pool seems like a win.
[22:14] mape: mjr_: As I imagine it there aren't comments at all
[22:14] mape: just patch files being sent
[22:14] mape: that can be cherry picked
[22:15] sveimac has joined the channel
[22:15] mape: Or I'll hook it into the facebook social graph and we can all "like" them and the ones that get the most are in.. ;)
[22:15] _ry: i just don't understand how changes would be submitted?
[22:15] rektide: whoa. that html5 parser uses env-js's dom.js
[22:15] _ry: like it would just dump a patch file at you?
[22:16] _ry: rektide: yes, things are starting to get interesting, eh?
[22:16] mape: _ry: As a user I get a textarea with a preview, on your end you get a patchfile
[22:16] derferman has joined the channel
[22:16] _ry: did you guys see this? http://github.com/agnat/node_mDNS
[22:16] mjr_: _ry: yeah, I tried it, and it seems to work. Pretty neat.
[22:16] tmpvar: _ry, im not familiar with aria
[22:17] _ry: tmpvar: he's in the channel on a regular basis
[22:17] _ry: mape: but this is going to require some server-side stuff - or?
[22:17] mape: _ry: Yeah
[22:18] tmpvar: _ry, ah. I'll have to hit him up at some point
[22:18] mape: But not the dummy mockup
[22:18] mape: Just to see if it makes sence
[22:18] _ry: mape: but running servers scares me
[22:18] _ry: tmpvar: cool - good
[22:18] mape: _ry: Then you just make it so the javascript responds with "Thank you for your submission!" even if the request fails
[22:18] _ry: tmpvar: http://twitter.com/aredridel/status/13292236700
[22:18] mape: That way people feel the contrib and you don't have to keep uptime ;)
[22:18] _ry: mape: :)
[22:19] _ry: isn't there someway we could get it to make a gist on github?
[22:19] tmpvar: _ry, ah, thats slick
[22:19] mape: Hmm well they have an api
[22:19] mjr_: making a gist seems like a win
[22:19] _ry: mape: but completely client side?
[22:19] _ry: so i don't have to wake up in the night and restart a daemon
[22:20] mape: _ry: I'll look into it
[22:20] _ry: i think it's a pretty good idea for taking contributions
[22:20] _ry: i bet lots of people find mistakes but they don't want to go through the trouble
[22:20] mape: Yeah
[22:21] _ry: i think just dumping a diff at them and telling them to email it to me would also be okay
[22:21] _ry: we'd have to write a diff tool in js
[22:22] mape: _ry: Is there any reason index.html is in doc/ in git?
[22:25] _ry: mape: so i can scp it easily to my host
[22:25] mape: well you would get it since you generate it?
[22:25] _ry: no, no reason in particular
[22:25] mape: Or you generate then commit?
[22:25] _ry: index.html is the front page
[22:25] _ry: api.html is the docs
[22:26] mape: oh..
[22:26] rektide: tmpvar: any intent to add dom2?
[22:26] felixge: _ry: no need to write a diff tool, you can use this: http://code.google.com/p/google-diff-match-patch/
[22:26] rektide: document objects are handy as f
[22:27] rektide: importNode, getElementById
[22:28] _ry: felixge: awesome
[22:28] _ry: mape: http://neil.fraser.name/software/diff_match_patch/svn/trunk/demos/demo_patch.html
[22:28] _ry: <3 browsers
[22:29] mape: Neat
[22:29] creationix: _ry: in libev, how do you end the main event loop?
[22:29] _ry: creationix: all watchers stop, or you can ev_unloop
[22:29] creationix: ok, thanks
[22:30] bmizeran_ has joined the channel
[22:31] _ry: felixge: so i've got fs.read and write using buffers now
[22:31] _ry: there was a bug in it before
[22:31] creationix: as much as I hate my homework being required to run on sparc, it gives me a chance to learn libev and evcom
[22:31] _ry: now im going to modify the streams to do buffers
[22:31] creationix: _ry: that's awesome!
[22:31] felixge: _ry: :)
[22:31] _ry: i think readFile should also use readStream
[22:32] _ry: hmm
[22:32] _ry: the problem is - as always - string encodings
[22:32] ryan[WIN]: damn you unicode
[22:33] ryan[WIN]: ACTION shakes fist
[22:33] mattly has joined the channel
[22:33] _ry: because you can read a chunk from the file and have it end on a character
[22:33] _ry: inside a character
[22:33] mjr_: yeah, that's odd
[22:33] _ry: so that needs to be detected, buffered
[22:33] _ry: then prepended to the next chunk
[22:34] _ry: it's very annoying
[22:34] JimBastard has joined the channel
[22:34] bmizerany has joined the channel
[22:35] freshtonic has joined the channel
[22:35] tmpvar: rektide, sorry for the delay. I haven't started on dom level 2 because I havent needed it (nor has anyone I've asked). but I'd have no problem going down that road if there were enough people that wanted it
[22:35] JimBastard: im a level 2 dom wizard
[22:35] tmpvar: do you have events?
[22:36] JimBastard: im kinda evented
[22:36] tmpvar: mutation event staff of magic?
[22:36] JimBastard: but really on the inside its just a bunch of nested if elses
[22:36] mjr_: JimBastard: you are of no use to our party until you get to like level 8, or whatever.
[22:36] tmpvar: until you can handle namespaces and mousedown events
[22:37] JimBastard: then ill have to make my own javascript party
[22:37] JimBastard: with hookers
[22:37] JimBastard: and blackjack
[22:37] JimBastard: and resig
[22:37] tmpvar: got to have Resig for it to be a party
[22:38] mjr_: On my company's internal wiki for employee contact info, I added columns for character class, alignment, and special abilities.
[22:38] mjr_: D&D nerd hilarity ensued.
[22:43] phazm: getting an error when ./configure'ing node from a fresh git clone: http://pastebin.com/pV1NEDfs
[22:43] aho has joined the channel
[22:45] fictorial has left the channel
[22:46] fictorial has joined the channel
[22:47] bmizeran_ has joined the channel
[22:50] charlesjolley has joined the channel
[22:51] charlesjolley has joined the channel
[22:51] mrjjwright has joined the channel
[22:52] mrjjwright_ has joined the channel
[22:52] phazm: _ry: ping
[22:53] _ry: phazm: hey
[22:53] _ry: phazm: i don't know what's up with that error
[22:53] _ry: unfamiliar to me
[22:54] _ry: phazm: what version of python do you have?
[22:54] phazm: 2.6.5
[22:55] phazm: this is on a brand new install of ubuntu 10.04
[22:56] _ry: phazm: strange
[22:56] jsilver: hello Nodeites
[22:57] phazm: _ry: any ideas? Do you reckon it's just my box?
[23:00] _ry: phazm: permissions?
[23:00] mape: _ry: Changed should be up on http://github.com/mape/node/tree/master/doc/ if you want to take a look, I'm awful att git so hopefully things are as they should
[23:00] _ry: phazm: that file is a symlink...
[23:00] _ry: maybe that has something to do with it
[23:01] phazm: yea, maybe..
[23:04] javajunky has joined the channel
[23:06] saikat has joined the channel
[23:08] mape: _ry: Btw that diff js you pasted, there are no issues using it when it is using Apache License 2.0 ?
[23:09] teemow has joined the channel
[23:09] phazm: _ry: Seems to be the issue, yea. I cloned it locally and it worked fine
[23:10] jan____ has joined the channel
[23:10] _ry: mape: it's okay - it just needs to be mentioned in LICENSE
[23:10] _ry: also markdown-js
[23:11] mape: ok
[23:11] gf3 has joined the channel
[23:11] mape: Yeah like I mentioned you might want to take a look at that, forgot all about merging remote repo stuff in git but think it is ok
[23:12] mape: markdown-js is MIT though?
[23:12] mape: and the license stuff is contained within that dir?
[23:13] mape: Oh, well that is no good.. >_<
[23:13] konobi has joined the channel
[23:13] mape: Did a git clone in the lib folder and I assume now git sees that as a sub module
[23:15] mape: markdown-js that is
[23:20] cruxst has joined the channel
[23:21] Azeroth___ has joined the channel
[23:21] mjijackson: mape: markdown-js is MIT
[23:21] mape: yeah
[23:21] mjijackson: mape: you should do a proper git submodule add instead of a clone i think
[23:21] mape: yeah messed that up
[23:22] mape: http://github.com/mape/node/tree/master/doc/lib/ seems there is some linkage though
[23:22] mape: Probly bad anyway
[23:22] mape: Not sure what would be the best way of fixing it
[23:24] CIA-75: node: 03Paulo Matias 07master * r3fed1cf 10/ src/node_crypto.cc : Make it possible to use client certificates to connect with a nodejs server, and make verifyPeer behaviour consistant. - http://bit.ly/9TqUha
[23:24] CIA-75: node: 03Paulo Matias 07master * r430cfd1 10/ (lib/net.js src/node_crypto.cc src/node_crypto.h): Read all records to always empty the OpenSSL reading buffer. - http://bit.ly/dgAZxB
[23:24] CIA-75: node: 03Rhys Jones 07master * r1a31713 10/ (5 files in 3 dirs): Additional OpenSSL tests - http://bit.ly/aXeQTV
[23:29] Azeroth___: morning all
[23:30] mjr_: Azeroth___: have you seen my underscores?
[23:30] mjr_: I think I left them in here last night.
[23:31] mape: mjr_: Only got one left? Someone stole the rest?
[23:31] mjr_: yeah, some punks I guess
[23:31] Azeroth____ has joined the channel
[23:31] mape: kids nowadays
[23:33] Azeroth_____ has joined the channel
[23:33] Azeroth_____: ACTION raging at stupid net
[23:37] polyrhythmic has joined the channel
[23:46] _ry: we need a markdown -> troff js
[23:46] _ry: converter
[23:47] pkrumins: markdown >_<
[23:50] isaacs: _ry: it should be called jonn
[23:50] isaacs: also, how hard would it be to port hpricot to a node addon? it's mostly in C, right?
[23:51] _ry: unknown
[23:52] _ry: it looks sprinked with ruby
[23:58] Azeroth_____ has joined the channel
[23:58] ssteinerX has joined the channel