[00:02] ryan[LOL]: i am in the process of trying to use v8 instead of liblua [00:02] ryan[LOL]: for a c++ thingy i made [00:02] creationix has joined the channel [00:04] mikeal: _ry: http://github.com/mikeal/intocouch/blob/master/visitor_records.js [00:04] fictorial: To me the toString() in lib/assert.js should not use either the condition or the message but both, like this: http://gist.github.com/352546 [00:05] mikeal: it parses this gigantic csv file and dumps to to POST requests [00:05] mikeal: i had it all serialized at one point to make sure the problem wasn't in the request queueing, but it didn't change anything [00:06] devinus has joined the channel [00:06] mikeal: when you run it on master you'll see prints for all the requests, but never a response [00:06] mikeal: because the request never finishes [00:06] mikeal: running on 0.1.33 you'll see lots of responses coming back [00:08] creationix_ has joined the channel [00:09] devinus: is there a higher level file copy operation other than reading in the file and writing it out? [00:10] fizx has joined the channel [00:11] mynyml has joined the channel [00:11] devinus: _ry: ^^^ [00:11] mikeal: that does seem wasteful [00:12] fictorial: oh man I get too addicted to those types of games. [00:12] fictorial: the pilot thing [00:17] fictorial: ah, damnit 10mins gone. [00:17] ryan[LOL]: loool [00:19] stephenlb: heh [00:19] _ry: ACTION back [00:20] _ry: devinus: no [00:20] devinus: _ry: would you oppose that as an addition to the stdlib ? [00:20] _ry: devinus: em, you mean like 'cp' or pipes? [00:21] micheil_mbp has joined the channel [00:21] devinus: _ry: like, a file copy that doesnt require the entire thing to be in memory [00:21] devinus: |=====| ---> |==| ... |=| -> |=====| [00:21] _ry: devinus: but you want the file to go through the process? [00:22] _ry: i'm not sure what that's a picture of :) [00:22] devinus: _ry: nope [00:22] micheil_mbp: devinus: you could be able to use an alternative stream buffer [00:22] devinus: _ry: i want the process to just copy the file without knowing whats in it [00:22] devinus: micheil_mbp: a wha...? [00:22] devinus: _ry: to just copy the file and call my callback when its done [00:22] _ry: devinus: still unclear. do you want a way to copy a fs file [00:22] micheil: rather then reading from one stream and writing to another [00:23] devinus: _ry: yes, copy a file and put it somewhere [00:23] _ry: okay :) [00:23] devinus: _ry: copy(path, dstpath, callback) [00:23] micheil: you read a set amount then write and read the next segment [00:24] _ry: um. yeah, how does one do that. i guess you link and then unlink? [00:24] micheil: although, I'm not sure how else that could be useful, considering the node fs functions are a direct proxy to libev [00:24] micheil: or rather libeio [00:24] _ry: or do you actually need to stream it through the process? hm [00:26] inimino: system.exec('cp foo bar') [00:26] mjr_ has joined the channel [00:27] inimino: devinus: if you mean just not buffering the whole thing in memory, I have a library that does that, but it's not updated for the latest node [00:27] inimino: I thought there was a copyFile somewhere in node already... [00:27] devinus: inimino: you would think so... [00:28] inimino: it's probably readFile and writeFile I'm thinking of [00:28] devinus: inimino: well, at SOME point something gas to buffer the file into the new location [00:28] inimino: anyway, this sort of thing is best provided by a library [00:28] devinus: inimino: but i want that written for me already [00:28] inimino: devinus: sure, you have to read the whole thing, just not all at once [00:28] devinus: inimino: right [00:29] inimino: you can try this: http://inimino.org/~inimino/blog/fileio_v0.2 [00:29] inimino: I have no idea if it still runs on latest node though [00:29] _ry: well we should get the pump function going [00:29] inimino: I'm running 0.1.25... [00:29] _ry: supposedly you can open a write stream and a read stream [00:29] _ry: and pump [00:29] _ry: http://www.google.com/codesearch/p?hl=en#5KTrgOW2hXs/pub/nslu2/sources/busybox-1.01.tar.gz%7C91_3Iw1bVA0/busybox-1.01/coreutils/cp.c&q=util-linux%20lang:c&d=5 [00:30] _ry: http://www.google.com/codesearch/p?hl=en#5KTrgOW2hXs/pub/nslu2/sources/busybox-1.01.tar.gz%7C91_3Iw1bVA0/busybox-1.01/libbb/copy_file.c&q=util-linux%20lang:c&d=5 [00:30] devinus: inimino: your choice of indentation is....odd [00:31] devinus: _ry: have i sparked an interest? [00:31] inimino: devinus: it's an acquired taste [00:32] inimino: devinus: anyway, run the tests on whatever version of node you're using first... there's a good chance it won't even run [00:32] inimino: but your example would be copyFile(source, dest)(callback) [00:33] inimino: and it should run in constant memory [00:33] creationix has joined the channel [00:33] _ry: devinus: i love pumping [00:33] _ry: devinus: i don't have time to work on this right now though [00:34] devinus: _ry: glad i put it out there at least [00:34] inimino: ACTION back to work [00:34] _ry: so feel free to try - i've put out a pump function on the mailing list before [00:34] devinus: inimino: you come from haskell ? [00:34] _ry: i think you can attemtp to use it [00:35] ryan[LOL]: ok switching back to ryan[WIN] now [00:35] devinus: _ry: this pump function doesnt need to know how much data in a block to read? [00:36] devinus: _ry: (the mailing list version) [00:38] derbumi has joined the channel [00:41] inimino: devinus: yes [00:41] konobi: _ry: nsIInputStreamPump [00:41] devinus: wow, this pump code is awesome [00:42] _ry: ryan[WIN]: http://groups.google.com/group/nodejs/msg/589576191db232b4 [00:42] devinus: very sexy [00:42] _ry: devinus: i agree :) [00:42] _ry: devinus: you probably need to hack it to make it work [00:43] _ry: but it should work, actually [00:43] _ry: i don't think there is anything really standing in the way [00:48] xer0x has joined the channel [00:49] devinus: _ry: this is what i ended up with http://pastie.org/899713 [00:49] bpot has joined the channel [00:49] devinus: _ry: works beautifully [00:49] _ry: devinus: nice [00:49] devinus: mmmmmm pumps! i have found a new joy in life [00:50] _ry: just wait until http supports it [00:51] _ry: pump(http.cat('http://blah.com/foo.mp3'), fs.writeStream('/tmp/foo.mp3')) [00:51] devinus: ...fuck that'd be bomb [00:51] devinus: FUCK can anybody please take a look at this code and tell me if i'm stupid: http://pastie.org/899716 [00:51] devinus: i've been trying to get somebody to critique it [00:51] devinus: because i feel naughty doing that recursive stat [00:51] devinus: i need to know if it's okay [00:52] _ry: its not recursive [00:52] devinus: well right [00:52] devinus: not but sending it's callback to itself... [00:52] _ry: that's okay [00:53] devinus: okay...i keep having nightmares about this block of code [00:53] devinus: b/c i wasnt sure if this was dumb [00:54] creationix: hmm, pumps... [00:54] mikeal: _ry: new bug [00:54] mikeal: in 0.1.33 and in HEAD [00:54] mikeal: i'm proxying a HEAD request [00:55] mikeal: and I never get an "end" event on the response from the server [00:55] mikeal: that response has a content-length [00:55] mikeal: which might be the cause of it [00:56] sztanphet has joined the channel [00:57] devinus: creationix: filename = path.join(root, filename.replace(/\.\./g, '.')); that line doesnt even work... :( [00:58] creationix: what's that from? [00:58] devinus: creationix: node-router [00:58] devinus: creationix: all somebody would have to do is instead of ../ just send ..../ [00:59] creationix: for sure, let me see who I got that patch from, I don't think I wrote that [00:59] creationix: (the danger of being super busy is you sometimes accept patches without a good review) [01:00] devinus: creationix: it's okay...there really is no way you can ensure a static file server doesnt serve up root files [01:01] creationix: I can just not allow /../ anywhere and that should be good enough [01:02] devinus: creationix: ../foo [01:03] robrighter has joined the channel [01:03] creationix: .replace(/\.\.*/g,'.') [01:04] imonu has joined the channel [01:04] creationix: I've got to go, but that should prevent double dots from ever appearing [01:04] devinus: creationix: k [01:07] dnolen has joined the channel [01:13] botanicus has joined the channel [01:13] devinus: ACTION wonders why libev is still on CVS [01:13] _ry: libev is our god. we don't question it. [01:14] devinus: i dont even know who develops it! that's sad... [01:14] xla has joined the channel [01:14] _ry: head -1 deps/libev/LICENSE [01:18] ditesh|cassini has joined the channel [01:23] malkomalko has joined the channel [01:27] softdrink has joined the channel [01:50] devinus: just curious [01:50] devinus: there's NO way to use a posix thread in node? [01:50] nefD has joined the channel [01:50] devinus: [without writing a binding] [01:53] _ry: devinus: no [01:53] _ry: not from javascript [01:53] devinus: _ry: i know you hate the idea, but i may just try to make that binding [01:54] _ry: it's impossible [01:54] _ry: well 'impossible' [01:54] _ry: v8 doesn't support it [01:55] steadicat has joined the channel [01:55] CodeOfficer has joined the channel [01:57] devinus: _ry: it wouldn't have to [01:57] devinus: _ry: it could work like libeio does [01:57] devinus: _ry: [if i understand it right] [01:58] devinus: i could be a fucking idiot though [02:09] charlesjolley has joined the channel [02:11] NickP_ has joined the channel [02:12] NickP_: hi, I'm trying to parse POST parameters using querystring, but I'm getting an error with this: querystring.unescape("str=%A0") [02:17] _ry: NickP_: yeah.. that's a problem [02:18] CodeOfficer has joined the channel [02:19] NickP_: Ah ok, it's not me then [02:21] binary42 has joined the channel [02:22] sh1mmer has joined the channel [02:22] NickP_: _ry: Shall I file a bug report on github? [02:27] masuidrive has joined the channel [02:28] figital has joined the channel [02:30] fictorial: proper unit testing is very tedious. [02:31] devinus: what should my grahpicsmagick api be: [02:31] devinus: image.thumbnail([width, height], callback) [02:31] devinus: image.thumbnail(width, height, callback) [02:32] fictorial: latter [02:32] devinus: or image.thumbnail([width: width, height: height}, callback) [02:32] fictorial: I would not use an object for just 2 parameters [02:32] devinus: yeah... [02:32] fictorial: and being as most people expect dimensions as width before height, e.g. 1024x768, I'd use image.thumbnail(w,h,cb) [02:33] _ry: NickP_: please do [02:33] _ry: NickP_: there might be one already [02:34] fictorial: devinus: I recall a very old and very long thread during the development of GLUT (OpenGL) and its "game API" about how to design the API for dimensions like that. I think they ended up with a string! foo("1024x768") [02:35] devinus: fictorial: ew. [02:35] fictorial: ACTION is an elder and probably 10 years older than most people here. [02:35] devinus: fictorial: you're 22? [02:36] devinus: i joke. [02:37] fictorial: http://www.youtube.com/watch?v=AZx1mUaosCI [02:37] NickP_: _ry: It's being discussed at http://github.com/ry/node/issues/issue/60 - apparently it's fixed in someone's fork but hasn't been merged yet [02:39] sztanpet has joined the channel [02:40] derferman has joined the channel [02:42] tmpvar has joined the channel [02:42] tmpvar: yo [02:46] devinus: tmpvar: yo [02:48] tmpvar: so I'm just about at my wits end here... I have been circling the drain for a while trying to figure this out. my -non-functional- example resides here: http://gist.github.com/349804 [02:49] tmpvar: basically im trying to build out asynchronous graphs and have a utility instantiate them into a runable form. another hard requirement to fulfill is making this capable of handling parallel operations [02:50] tmpvar: if anyone has any suggestions, aka: "tmpvar: you crazy" -- I'm ready to hear it [02:52] tmpvar: I would however sincerely enjoy pointers,tips,solutions,etc.. [02:52] tmpvar: ideas even :) [02:52] devinus: tmpvar: just fyi, you do know that promises are deprecated in trunk right? [02:53] charlesjolley: alex-desktop we pretty much need to copy this: http://idisk.me.com/charlesjolley/Public/Pictures/Skitch/iTunes-20100401-195206.png [02:53] charlesjolley: things for ipad [02:53] alex-desktop: charlesjolley: are we on the right channel? :) [02:53] alex-desktop: and I agree [02:54] deanlandolt: alex-desktop: absolutely not, but i totally concur ;) [02:54] alex-desktop: :) [02:55] tmpvar: devinus, im using node-promise :) [02:55] devinus: tmpvar: ah [02:55] tmpvar: i need a whiteboard im thinking [02:55] charlesjolley: no sorry guys [02:56] charlesjolley: but seriously if you're getting an ipad by things [02:56] charlesjolley: amazing design [02:56] charlesjolley: sorry - [02:56] tmpvar: my office is littered with paper, stacks of printouts, etc.. im a hair away from losing my mind honestly :P [02:56] fictorial: I use Things, and have an iPad on the way... that looks nice. [02:57] KungFuHamster: I use EverNote but I may switch to SEO Note because of some annoying things in EverNote (windows) [02:57] fictorial: EN on a Mac is hell. [02:59] fictorial: EN focuses on addon deals instead of their core product. It's idiocy. Their text editor is barely functional yet I can send my receipts to some company and they end up in EN. WTF. [02:59] fictorial: /rant. [03:00] inimino: tmpvar: why do you have an extra anonymous function in A (line 27)? [03:00] JimBastard_ has joined the channel [03:00] tmpvar: inimino, i was trying things, it was 2 am, I just committed so I could pull it down on my mac [03:01] creationix: tmpvar: I'm still trying to understand the diagram [03:01] tmpvar: imagine A as an httpserver, emitting a request and responce [03:01] inimino: ah, I guess I don't really understand the goal [03:01] tmpvar: er, response [03:02] tmpvar: b, modifies the response code and body [03:02] tmpvar: c closes the response [03:02] jed has joined the channel [03:02] creationix: so, A emits the two data items at the same time? [03:03] tmpvar: i have a functional version of this working in http://github.com/tmpvar/performer/blob/master/examples/httpserver/httpserver.js -- but it doesnt work properly in parallel (race issues) [03:03] tmpvar: creationix, correct [03:03] creationix: but C can't start till B is done [03:04] tmpvar: correct [03:04] tmpvar: so there is a hidden synchronization layer on c's inputs [03:04] inimino: why does A have a reference to C? [03:04] creationix: and you want to automate all of this? [03:04] tmpvar: creationix, exactly [03:04] creationix: because otherwise it's super simple [03:04] tmpvar: inimino, that example may be partially horrible/insane [03:05] inimino: ACTION forgets the example [03:05] creationix: tmpvar: so you're writing a chaining library that solves async dependencies? [03:05] tmpvar: creationix, what do you mean? [03:05] tmpvar: creationix, yeah that sounds about right [03:05] inimino: do you want to just set it up in this particular case, or write a library for it? [03:05] tmpvar: library [03:05] tmpvar: a core "execution engine" [03:05] inimino: so something like go(a,b,c) and it would do what you described? [03:06] creationix: what's the format of your requirements? [03:06] tmpvar: creationix, not sure what you mean [03:06] creationix: A[0]->C[0],A[1]->B[0],B[0]->C[1] [03:06] tmpvar: yeah [03:07] tmpvar: C requires C[0] and C[1] be fulfilled before execution [03:07] creationix: can we assume that any block won't start till all it's inputs are fulfilled [03:07] tmpvar: yes [03:08] tmpvar: the alternative is pretty easy :P [03:08] creationix: do you have any sample code using this library? [03:08] tmpvar: yeah, i have a couple examples.. nothing major though [03:08] tmpvar: http://github.com/tmpvar/performer/blob/master/examples/httpserver/httpserver.js [03:08] tmpvar: performer is the original lib, but it was bad at doing parallel ops [03:09] creationix: I see [03:09] inimino: interesting [03:10] creationix: so the way I see it, you'd define three functions A, B, C and then input them into a chain of dependencies as a separate step [03:10] creationix: and then start the whole thing as a composite function [03:10] tmpvar: that makes sense [03:10] creationix: ok, just a sec... [03:10] creationix: ACTION prototypes furiously  [03:11] tmpvar: nice! [03:11] creationix: tmpvar, one quick question, what about error handling? [03:11] creationix: is it implicit or explicit in the chaining? [03:12] inimino: what's fbp? [03:12] tmpvar: i guess implicit [03:12] tmpvar: http://jpaulmorrison.com/fbp/ [03:13] tmpvar: his model is explicitly for data flows though [03:13] tmpvar: FIFO, which does not work the way im "hoping" to do this [03:13] inimino: ah, that [03:14] creationix: ok, so here's the three functions as I see it... http://pastie.org/899848 [03:14] creationix: now to propose a syntax for the plumbing library... [03:15] JimBastard_: tick tick tick tick [03:15] JimBastard_: :-D [03:15] tmpvar: hah, whats up [03:15] JimBastard_: how broken is HEAD now? should i download a diff version? [03:16] tmpvar: haha [03:16] JimBastard_: im double laptoping it [03:16] tmpvar: should be [03:16] tmpvar: /nick JimSellsOutToApple [03:16] tmpvar: +Bastard [03:16] JimBastard_: free hardware is the bestware [03:17] creationix: tmpvar: http://pastie.org/899848, ok, I've got a super terse syntax, but I think it's a start [03:17] JimBastard_: i just posted to nyc.js and sammy.js about this idea for staterunner [03:17] JimBastard_: run through your client-side routing states [03:18] JimBastard_: displaying them in the browser so you can watch [03:18] inimino: tmpvar: I wrote something along vaguely similar lines: http://boshi.inimino.org/3box/DRP/test.html [03:18] inimino: tmpvar: not sure how close that is to flow-based programming which I've never looked at in any depth [03:19] inimino: tmpvar: but it does make it easy to wait for multiple things to become available and then do something with all of them [03:19] figital: have been using this as a node mod just to dump JS objects ..... [03:19] figital: http://www.figital.com/files/cfdump.js [03:19] tmpvar: ah, ill peek it [03:19] tmpvar: creationix, yes that looks good [03:19] inimino: creationix: have you seen isaacs' thing for that? [03:19] devinus: creationix: why process.nexttick? [03:19] creationix: just to prove it's async [03:20] inimino: creationix: he mentioned it on the mailing list a while ago, had a kind of similar syntax [03:20] creationix: inimino: hmm, I don't recall [03:22] tmpvar: creationix: i think i like this approach [03:22] creationix: I'm trying to think of an easier to read syntax, but that's the raw data that needs to be captured [03:23] creationix: it shouldn't be too hard to implement either [03:23] tmpvar: makes it super simple to implement nodes as well [03:23] tmpvar: yeah [03:23] tmpvar: agreed [03:23] tmpvar: thanks for your help.. this sheds a bit of new light on the problem [03:24] creationix: also, I've been using my Step library all day for a new project and I'm really liking the simplicity http://github.com/creationix/wheat/blob/master/lib/wheat.js#L99 [03:24] inimino: here we are [03:24] inimino: http://groups.google.com/group/nodejs/msg/3a3b1244a9eca4ee?hl=en%03a3b1244a9eca4ee [03:25] inimino: take a look at that (and maybe the rest of the thread) [03:25] creationix: inimino: does it do more than straight chains? [03:26] inimino: creationix: I don't recall, actually [03:26] inimino: creationix: the thing that reminded me of it was the use of an array with a function followed by its arguments, and strings to refer to other things [03:27] tmpvar: instances of previous array items, right? [03:27] inimino: I haven't looked into it in any great detail but it looked interesting [03:27] inimino: something like that [03:27] creationix: interesting [03:27] inimino: ACTION → dinner [03:28] inimino: bbiab [03:28] creationix: tmpvar: for your original use case, I'd use Step and just chain the three functions in a series. The first output of the first function I'd just store in a closure that the last step can access [03:28] creationix: but I can see more complex cases where this gets out of hand [03:29] Aria has joined the channel [03:29] tmpvar: yeah, thats the problem.. i get sucked into use cases heh [03:31] creationix: the problem with the syntax in my pastie is that it's real easy to accidentally map an output twice or ignore an output [03:31] creationix: but maybe that could be a feature? [03:32] tmpvar: yeah definitely [03:32] creationix: there could be several functions all waiting on the same data from another function [03:32] tmpvar: yeah [03:32] tmpvar: im trying to find a pic i took of one such diagram [03:32] creationix: hmm, we probably need a shortcut for when one function consumes all the output of another [03:32] figital has left the channel [03:33] creationix: maybe just omit the number? [03:37] devinus has joined the channel [03:37] cpleppert has joined the channel [03:38] creationix: tmpvar: see what you think about this version with the functions inlined: http://pastie.org/899869 [03:40] tmpvar: it looks sexy [03:40] tmpvar: im curious if it would perform as expected in a parallel env [03:40] creationix: what do you mean? [03:41] creationix: if you implement the library by hand without using promises or anything then it will be faster than raw promises [03:42] creationix: I could throw together a implementation if you want, I like making small libraries [03:42] tmpvar: haha, nice [03:42] tmpvar: umm [03:42] tmpvar: yes [03:42] tmpvar: if you dont mind, i would like that [03:42] tmpvar: :) [03:43] creationix: I'm thinking of calling it Direct or Director [03:43] creationix: something short that conveys the meaning of organizing dependencies [03:43] tmpvar: thats fine, when i named it performer i was thinking of an orchestra, but i dont care too much at this point lol [03:43] tmpvar: performer, composer, etc [03:44] creationix: Composer, and the function is Compose [03:44] creationix: I like that [03:44] tmpvar: hehe, sure doesnt fit exactly into my scheme but i'd be happy to see what you come up with [03:44] creationix: ok, unless I hit any serious roadblocks in the dependency calculation part I should have it done by morning [03:44] creationix: and of course you can fork it [03:45] tmpvar: of course [03:45] creationix: thanks for a fun project, I never thought of this use case [03:45] tmpvar: awesome! [03:45] tmpvar: thank you man [03:46] creationix: hmm, should we think out error handling now? [03:46] tmpvar: probably [03:47] tmpvar: btw: this is the original sketch of the httpserver i sent earlier [03:47] tmpvar: http://img340.imageshack.us/img340/7078/1000038j.jpg [03:47] creationix: wow, those are some amazingly straight lines [03:48] creationix: is that a whiteboard? [03:48] tmpvar: might explain why i had parallelism issues [03:48] tmpvar: no, its a piece of paper hah.. no whiteboard here (cry) [03:49] tmpvar: anyhow, i expanded how long "hello world" took to forward and realized my parallelism issues [03:49] PyroPete1 has joined the channel [03:51] tmpvar: ie: every client that came in i dropped a setTimeout interval down by a substantial amount, and the result was a mishmash of clients getting the wrong response/no response [03:51] creationix: tmpvar: http://static.creationix.com/IMG_3336.JPG [03:52] fictorial: there's a spaceship attacking node c. I approve. [03:52] ryan[WIN]: tmpvar, have you heard of nginx or node.js [03:52] creationix: tmpvar: Oops, that my super secret project for TXJS, [03:53] ryan[WIN]: er oops [03:53] ryan[WIN]: wrong channel [03:53] ryan[WIN]: sry [03:53] creationix: I guess spaceships don't give away too much [03:53] fictorial: making something like wdpilot? [03:53] ryan[WIN]: creationix, dood spaceshipz [03:54] creationix: what's wdpilot? [03:54] ryan[WIN]: make a js netplay subspace [03:54] ryan[WIN]: and i will luv u long time [03:55] tmpvar: ryan[WIN], ive heard of nginx.. whats node? [03:55] tmpvar: ^) [03:55] ryan[WIN]: tmpvar, I DUNNO WHATS NODE LOOL [03:55] creationix: tmpvar: so errors... [03:55] ryan[WIN]: i thought this was another channel so i immediately jumped in with that [03:55] ryan[WIN]: i have too many channels [03:55] ryan[WIN]: so many buttons [03:55] ryan[WIN]: so many buttons [03:56] tmpvar: creationix, perhaps they are other ports/ [03:56] tmpvar: ? [03:56] creationix: well, in node's libraries, the first result argument is always the error [03:56] tmpvar: yeah, in this case it would be arbitrary i guess [03:57] creationix: I try to follow that whenever possible, but it's nice if the library embraces it and helps [03:57] tmpvar: which could get messy [03:57] tmpvar: yeah, i agree [03:57] fictorial: creationix: sorry, wpilot, not wdpilot [03:57] fictorial: http://jfd.github.com/wpilot/ [03:58] fictorial: basically, websockets, node.js, and spaceships [03:58] creationix: fictorial: that's awesome [03:58] creationix: so it runs on node? [03:59] fictorial: Yes. http://github.com/jfd/wpilot/blob/master/wpilots.js [03:59] tmpvar: haha thats great [03:59] creationix: very cool, I hope my game will be that fun [03:59] fictorial: Indeed. It's nice. [04:01] fictorial: I'm going to take the latest pubsub features of Redis and the redis-node-client and make a very scalable base project... Same basic idea: client -> node -> client with websockets for transport. But, I use Redis to scale out via pubsub. [04:01] fictorial: First game will be like wpilots but submarine based. codename: pubsubmarine (shutup, it's a codename) [04:02] creationix: tmpvar: what about having a common error handler for the whole group [04:02] creationix: or will we need it more fine grained [04:02] creationix: probably, huh [04:03] creationix: actually, no that works great, it just has to be wired manually [04:06] creationix: http://pastie.org/899894 [04:08] creationix: fictorial: good luck, that sounds like fun [04:08] fictorial: Yeah, it's a good test of a product I've been working on forever. [04:11] tmpvar: creationix, thats perfect actually [04:11] creationix: ok, I'm now implementing a prototype for realz [04:11] tmpvar: (sorry, had to grab some food.. been running around all day.. forgot to eat) [04:11] creationix: see, here's proof http://github.com/creationix/composer [04:12] tmpvar: heh heh [04:12] creationix: tmpvar: are you any good at site design? [04:12] tmpvar: umm [04:13] tmpvar: not much of a designer, i can hack stuff together though [04:13] tmpvar: depends on the content [04:13] tmpvar: i do know designers though if thats what you are asking :) [04:13] creationix: I need a new face for howtonode.org, but I'm not feeling very creative today [04:13] creationix: I would love to hire a designer, but I don't have any budget for it right now [04:14] creationix: micheil: do you have time right now to work on a new design? [04:15] tmpvar: yeah, i hear that, ill try and reach out to a designer friend of mine and see if he can whip something up [04:15] creationix: I want room for a side-bar with node versions, authors, and a tag cloud [04:16] mrjjwright has joined the channel [04:16] creationix: other than that I'm pretty open [04:16] creationix: hmm, maybe not the tag cloud [04:16] mrjjwright: creationix: what numbers did you get when profiled node-persistence sqlite to orlando's new code? [04:16] tmpvar: nice, ill mention it when i see him [04:16] creationix: mrjjwright, mine sucked [04:17] bpot has joined the channel [04:17] mrjjwright: did you switch his to not be in memory? I couldn't get "begin transaction", "commit" to work with his either. [04:17] creationix: well, they were both quite fast, but the native one was a few magnitudes faster on synthetic benchmarks [04:17] creationix: hmm, no I had both in memory since I wanted to measure the code overhead [04:18] creationix: I imagine either will be plenty fast in a real app where the database itself is the bottleneck, not the interface to it [04:18] fizx has joined the channel [04:19] creationix: mine should work with anything you can do in an interactive sqlite3 session [04:19] mrjjwright: right, thanks. [04:22] sh1mmer has joined the channel [04:22] dgathright has joined the channel [04:25] fizx has joined the channel [04:29] tmpvar: hey fizx [04:29] fizx: hi [04:29] tmpvar: im here for a few more minutes, how goes? [04:30] tmpvar: (early morning of meetings and pain tomorrow) [04:30] fizx: yeah, thinking similarly [04:30] fizx: have you looked at node-mongo? [04:30] tmpvar: yeah [04:30] fizx: i saw you tried to put in the example code from the avro tests [04:30] tmpvar: i believe i used it (among other things) to get the bindings working [04:31] tmpvar: yeah, like i mentioned i/we need to re-think how the internals work [04:31] fizx: the mongo approach was a more granular encode [04:31] fizx: plus there's a bson_buffer [04:31] tmpvar: i doubt its going to be as easy as "encode/decode" because we'll need to do some introspection of the schema [04:31] fizx: which we don't have [04:32] fizx: really? [04:32] fizx: do we need to validate? [04:32] fizx: can't we assume that both sides know and are going to observe the schema [04:32] fizx: at least for rev1 [04:33] tmpvar: i suppose thats not a bad solution [04:33] fizx: it might crash and burn if both sides dont agree [04:33] fizx: segfault [04:33] fizx: whatever [04:33] fizx: but that's for version 1.1 [04:34] tmpvar: yeah, i think thats a good first round goal [04:34] fizx: i couldn't figure out how to construct a node::Buffer [04:34] tmpvar: even if its sending a single fielded record through encode/decode [04:34] tmpvar: no? [04:34] tmpvar: there are examples in net2.cc i believe [04:35] fizx: it looks like the buffer gets passed in [04:35] fizx: gets constructed in js somewhere [04:36] fizx: can't make one in c++ [04:37] fizx: anyhow, i'm going to go read a book [04:38] fizx: i'll prolly fit an hour in here or there [04:38] tmpvar: sounds good, I probably wont have a chance to peek this until sat evening / sunday [04:38] fizx: cool [04:38] tmpvar: i think the simpler example will help though [04:38] tmpvar: success through iteration :) [04:46] tmpvar: creationix, if you get anywhere with that push it up so I can take a peek at your approach (please!) hehe [04:46] creationix: sure thing [04:52] aho has joined the channel [04:55] creationix: tmpvar: pushed... [04:56] tmpvar: nice [04:58] creationix: should Compose return a composed function or execute right away? [04:58] tmpvar: function im thinking [04:58] creationix: I think it should return a function so that you can then use it as a step in a larger composition [04:58] tmpvar: agreed [04:58] creationix: ok, cool [04:59] creationix: I estimate less than an hour left [04:59] tmpvar: wow [05:10] creationix: tmpvar: since we're returning a function, what should be it's label, in case something wants to consume it's arguments? [05:11] tmpvar: performance? [05:11] creationix: I'm thinking something short like _ or $ [05:11] tmpvar: oh hah [05:11] creationix: I think I prefer _ [05:11] tmpvar: im not particular [05:12] Aria: So what exactly is process.binding? It's not in the docs, and it seems a bit key to understanding node modules. [05:14] Aria: Oh! I take that back. I see it, it gets a handle on the native code binding. [05:23] creationix: tmpvar: if we can take global input, then we should be able to specify global output right? [05:23] creationix: then blocks will really be composable and nestable [05:23] tmpvar: yep [05:23] tmpvar: definately [05:23] tmpvar: definitely even [05:24] tmpvar: im all for reusable defs, thats a core feature in my mind [05:24] creationix: how about letter-number strings after the hash [05:24] creationix: when all those conditions are met, the whole block outputs? [05:25] tmpvar: not sure what you mean by after the hash? [05:26] creationix: http://pastie.org/899956 [05:26] creationix: the "B0" on the end [05:27] tmpvar: yes, that makes sense [05:27] creationix: of course I can't use sys.puts anymore, but you get the idea [05:27] tmpvar: i do [05:31] creationix: ok, now parsing the config is really done, time to build the engine [05:32] tmpvar: word [05:41] ditesh|cassini has joined the channel [05:42] cpleppert has joined the channel [05:46] amerine has joined the channel [05:47] creationix: is there a way to quickly tell is an object has data or not [05:47] creationix: maybe == {} [05:48] creationix: hmm, nope [05:48] creationix: {} == {} is false [05:48] creationix: Object.keys(a).length == 0 works, but there should be something faster [05:48] creationix: and that won't work in a browser [05:49] tmpvar: function empty(ob){ for(var i in ob){ return false;} return true;} -- hah [05:49] creationix: guess so, huh [05:50] creationix: I'm still hoping there is a faster way somehow [05:50] creationix: that will work for now [05:50] tmpvar: ew, but you'd have to check hasOwnProp :/ [05:51] creationix: hmm, I wonder if I can get away with a simple counter in my case [05:51] creationix: I think so, that's fast [05:51] creationix: counter == 0 [05:51] creationix: ACTION back to coding... [05:53] creationix: counter worked, WOOT! [05:53] tmpvar: nice [05:54] steadicat has joined the channel [05:57] tmpvar: creationix, this is truly impressive [05:58] creationix: Do we want to be able to make functions reusable (like for mutually recursive dependencies) [05:58] creationix: that would make for some interesting machines [05:58] tmpvar: that would be interesting [05:58] creationix: I think all I'll have to add is to reset the state somehow after a function fires [05:58] creationix: not sure, I'll have to think about after this part is done and working [05:59] creationix: this version is almost done [05:59] tmpvar: nice [05:59] micheil: creationix: will do soon, been having to paint the house though [06:01] keeto has joined the channel [06:11] creationix: tmpvar: I'm thinking about not passing undefined as a parameter, that way the caller can control which events get fired [06:11] creationix: (I'm needing this to make error handing work sanely) [06:12] creationix: or in other words, if a parameter is undefined to not fire that event [06:12] tmpvar: yeah, that makes sense [06:12] tmpvar: its a specialization, but its fitting [06:13] creationix: it works! [06:13] creationix: now to test is and look for errors [06:14] creationix: /is/it/ [06:14] creationix: oops, missed one feature [06:14] creationix: the global output queue [06:16] tmpvar: amazing [06:17] creationix: I'm excited about this one [06:17] tmpvar: oh yeah? [06:17] creationix: I'm an ok coder, but terrible at coming up with these cool ideas [06:18] creationix: I'll write up a howtonode.org article on this tomorrow for sure, it's gonna be big [06:18] tmpvar: haha, i have a few somewhat "cool" ideas, but I have a difficult seeing through the trees as it were [06:18] tmpvar: difficult time even [06:18] creationix: my "Do" library was the second most popular article and this one is way cooler [06:20] tmpvar: yeah, i actually looked at do when trying to do this [06:20] tmpvar: i dunno, i guess this is just something over my head (for now) [06:21] mattly: i've got a neat thing going I call Together [06:22] mattly: you give it a bunch of eventEmitters and it will compose an object with their responses [06:22] mattly: t = new Together(); t.watch 'key', 'done', fs.readFile... [06:23] mattly: er pretened i remembered the parens around t.watch [06:23] mattly: and that fs.readFile returns an emitter [06:23] mattly: ... [06:23] mattly: shit i need to just blog about it properly [06:25] tmpvar: moving to the lappy [06:26] mrjjwright: great idea mattly, and then emit an event or callback with that object? [06:27] mattly: mrjjwright: it wraps both eventEmitters and callbacks, and then returns an object, yeah [06:30] tmpvar has joined the channel [06:31] creationix: Crap, I broke it.... TypeError: Bad argument [06:31] creationix: I hate that error message, it's so not helpful [06:31] cpleppert has joined the channel [06:32] tmpvar: hehe [06:37] qFox has joined the channel [06:37] tmpvar: nice, i like it! [06:39] CodeOfficer has joined the channel [06:40] nsm has joined the channel [06:48] towski has joined the channel [06:51] towski has joined the channel [06:55] derbumi has joined the channel [07:00] creationix: tmpvar: It's done [07:00] creationix: I'll properly document it tomorrow [07:00] creationix: I like how it turned out, I think this will be useful [07:00] tmpvar: creationix [07:00] tmpvar: i love it [07:01] tmpvar: im far to drained to properly tell if it will work for my failing usecase, but it appears to [07:03] creationix: me too, I'm off to bed [07:03] tmpvar: thanks man [07:03] tmpvar: have a good night [07:04] creationix: the first example in the test.js is your use case simplified [07:07] dgathright has joined the channel [07:11] sudoer has joined the channel [07:36] kriskowal has joined the channel [07:37] admc has joined the channel [07:43] towski has joined the channel [07:53] piranha has joined the channel [07:53] felixge has joined the channel [08:01] kixxauth has joined the channel [08:03] mikeal has joined the channel [08:12] ZhouYu has joined the channel [08:48] teemow has joined the channel [08:49] nsm has joined the channel [08:57] markwubben has joined the channel [09:09] tisba has joined the channel [09:19] tbassetto has joined the channel [09:44] demolithion has joined the channel [09:56] nsm has joined the channel [10:28] tisba_ has joined the channel [10:51] tisba has joined the channel [10:53] tav has joined the channel [10:56] javajunky has joined the channel [11:32] broofa has joined the channel [11:40] felixge has joined the channel [11:40] felixge has joined the channel [11:47] felixge has joined the channel [11:47] felixge has joined the channel [12:06] quirkey has joined the channel [12:06] felixge has joined the channel [12:06] felixge has joined the channel [12:07] micheil: morning felixge [12:07] felixge: micheil: sup? [12:07] micheil: not a lot right now [12:08] felixge: micheil: lets get some beer and party ; ) [12:08] felixge: it's vacation here [12:08] micheil: nawh, had a beer for tonight, it's a wee bit late now [12:08] botanicus has joined the channel [12:14] dnolen has joined the channel [12:28] botanicus: Hey guys. I'm wondering who is using node in production. I love it I'm thinking about it, but I'm not sure if it's stable enough. I just got segmentation fault and when I send many requests to the app it works fine till 1600th and then it just stop responding. [12:43] malkomalko has joined the channel [12:45] javajunky has joined the channel [12:51] xla has joined the channel [12:53] tmpvar has joined the channel [12:53] kenneth_reitz has joined the channel [13:01] hellp has joined the channel [13:07] tmpvar has joined the channel [13:18] mortens has joined the channel [13:25] davidsklar has joined the channel [13:25] quirkey has joined the channel [13:27] felixge has joined the channel [13:27] felixge has joined the channel [13:28] tbassetto1 has joined the channel [13:34] rolfb has joined the channel [13:34] confounds has joined the channel [13:38] robrighter has joined the channel [13:40] MattJ has joined the channel [13:43] masuidrive has joined the channel [13:48] ashiso has joined the channel [14:01] sudoer has joined the channel [14:04] steadicat has joined the channel [14:11] alex-desktop has joined the channel [14:14] nsm has joined the channel [14:25] brainproxy has joined the channel [14:25] cpleppert has joined the channel [14:28] PyroPeter has joined the channel [14:34] steadicat has joined the channel [14:34] aryounce has joined the channel [14:36] mrjjwright has joined the channel [14:42] softdrink has joined the channel [14:44] [k2] has joined the channel [14:53] JimBastard has joined the channel [14:56] Yuffster has joined the channel [14:58] jan____ has joined the channel [15:00] broofa has joined the channel [15:01] jan____ has joined the channel [15:08] creationix has joined the channel [15:08] javajunky has joined the channel [15:09] alexiskander has joined the channel [15:17] technowe_ has joined the channel [15:20] creationix: tmpvar: mornin' [15:20] creationix: I have a renewed belief in the browser as a platform got gaming http://code.google.com/p/quake2-gwt-port/ [15:21] tmpvar: morning [15:21] tmpvar: yeah, i saw that [15:21] tmpvar: pretty f-ing amazing [15:22] ashiso: dunno, when I hear that some engine devs still optimize in assembler ... [15:23] tmpvar: we're talking quake 2 [15:23] tmpvar: that ran on a 400mhz machine back in the day [15:24] tmpvar: its no crysis [15:24] tmpvar: but still very impressive [15:24] ashiso: well yeah. but the kids today are spoiled with crysis 'n stuff :( [15:24] ashiso: still impressive though [15:25] tmpvar: yeah, i dont think browsers were initially intended to be used as a gaming platform hah [15:25] creationix: I'm thinking I just might use webgl instead of canvas or svg for my demo [15:25] creationix: it seems faster even for 2d graphics [15:25] tmpvar: its hardware accelerated, right? [15:26] creationix: sure is, especially on osx [15:26] creationix: good opengl drivers there [15:26] tmpvar: yeah [15:26] creationix: nightly webkit seems to be the best platform right now [15:26] tmpvar: yeah, you cant beat that [15:26] creationix: I still want my game to be 2d, but canvas and svg are too slow for me [15:27] creationix: maybe 2d webgl will be the ticket, I don't care if it only runs in one browser, it's for a demo showing off node [15:27] ashiso: sounds nice [15:27] tmpvar: definitely [15:28] KungFuHamster: what about flash? it has excellent market penetration... [15:28] ashiso: fuuuuuuuu [15:28] ashiso: :D [15:28] creationix: flash actually isn't bad when you use haxe instead of adobe's crap [15:28] creationix: I just don't like how it treats the browser [15:28] creationix: plugins will forever be a hack [15:28] KungFuHamster: I've been learning Flex, now called Flash Builder 4... has a more traditional IDE than the Flash timeline [15:29] creationix: haxe is actually pretty awesome (and I believe one of it's compile targets is node.js) [15:29] creationix: the main target is swf files though [15:29] creationix: it compiles to about anything actually, even php [15:30] KungFuHamster: ACTION reads the Haxe website for more information [15:30] creationix: besides, I'll get lynched if I demo a new app at a js conf and use flash for the interface [15:30] creationix: webgl or canvas will be accepted much better [15:30] ashiso: absolutely [15:31] ashb: there's always Gordon too [15:32] devinus has joined the channel [15:32] creationix: true, but it's slower [15:32] ashb: but far more awesomly named ;) [15:32] KungFuHamster: so it's a political choice :P [15:32] ashb: +e [15:32] creationix: why write a new app in flash just to run it in canvas [15:32] ashb: cos IE doesn't support canvas yet? (does it) [15:32] devinus: what are we talking about ? [15:33] creationix: no, or svg, it's got vml though [15:33] ashb: svg/vml abstraction: raphael [15:33] ashb: its quite nice [15:33] creationix: yes, raphael is awesome, I'll use it if it's fast enough for sure [15:33] creationix: I want 1280x800 full screen graphics though [15:34] devinus: did you guys see that quake 2 demo in html5 ? [15:34] ashiso: has crome a full-screen mode in osx? [15:34] creationix: devinus: yep, that's how we started this conversation [15:34] ashb: raphael is not fast enough for anim [15:34] devinus: ashiso: it's supposed to support full screen html5 video..... [15:34] creationix: ashiso: yes, it latest dev version, not beta [15:35] ashiso: ah k [15:35] creationix: fullscreen chrome + browser based slideshow = awesome conf presentation [15:36] creationix: hmm, I wonder if nightly webkit has fullscreen [15:36] creationix: ACTION is grateful that webkit does incremental updates at startup [15:39] creationix: dang, nightly webkit doesn't seem to have a fullscreen option [15:39] creationix: that's a shame, it's webgl is faster than chrome's [15:40] deanlandolt: creationix: not on linux ;) [15:40] creationix: do you have nightly webkit on linux? [15:40] deanlandolt: (i know, i know...but the linux chromium on a laptop apparently had the highest FPS of all of them) [15:40] creationix: ahh, I see [15:40] deanlandolt: yeah, they said 60fps for a linux laptop...that was something that jumped out at me as pretty surprising [15:41] creationix: is there a 2d library like raphael that uses webgl? [15:41] creationix: webgl code is very verbose [15:41] deanlandolt: i'm sure there will be [15:41] creationix: yeah, still too new I guess [15:42] creationix: my demo isn't till June, I may or may not have an iPad by then [15:42] creationix: I wonder how they do on webgl and canvas [15:43] deanlandolt: i imagine we'll hear about it tomorrow, or very soon thereafter :) [15:43] creationix: lol, fair enough [15:44] charlesjolley has joined the channel [15:44] creationix: someone needs to write an node ide for the ipad (even if the actual code runs on another machine) [15:45] creationix: for people with bluetooth keyboards it would be the ultimate in mobile hacking [15:45] creationix: I wrote my best js games on an old eeepc 701 [15:45] creationix: they run very fast on most machines because I developed them on a 600mhz celeron [15:46] RayMorgan has joined the channel [15:46] RayMorgan has joined the channel [15:47] ashiso: yup [15:49] creationix: tmpvar: on, back to this composer library, I'm documenting it and it seems way more powerful that we had imagined [15:49] tmpvar: hehe [15:49] tmpvar: im going to the unthinkable [15:49] tmpvar: and request a name change :/ [15:49] creationix: looks like you can implement all kinds of mutually recursive engines [15:50] tmpvar: nice [15:50] ashiso: I'm struggling to set up a good testing environment for IE6+ js animation testing. VMs don't do the job. any hints or ideas? [15:50] ashiso: or maybe VPC on windows 7? [15:51] ashiso: has anyone experience with that? [15:52] PyroPeter: doesn't IE run with wine? [15:53] ashiso: not to the point where you get good results [15:54] ashiso: I fear to set up a machine with IE6 on XP, IE7 on Vista and IE8 on W7 :( [15:57] KungFuHamster: you just need a PC with 3 physical hard drives and you're solid [15:57] xla has joined the channel [15:58] ashiso: yeah but still ... [15:59] piranha has joined the channel [16:00] piranha has joined the channel [16:06] rtl has joined the channel [16:06] steadicat has joined the channel [16:08] sh1mmer has joined the channel [16:15] javajunky has joined the channel [16:17] broofa has joined the channel [16:19] erikvold has joined the channel [16:19] RayMorgan_ has joined the channel [16:19] fizx has joined the channel [16:21] RayMorgan_ has joined the channel [16:25] mrjjwright has joined the channel [16:30] cpleppert has joined the channel [16:31] bronson has joined the channel [16:32] JimBastard_ has joined the channel [16:32] JimBastard_: Woot I'll be at ScurvyConf [16:32] JimBastard_: doing a little hook.io presentation, and talking about my deep love for _ry and node-dirty [16:32] JimBastard_: that didnt sound quite right [16:36] felixge has joined the channel [16:36] teemow has joined the channel [16:37] _ry: JimBastard_: nice [16:39] _ry: voodootikigod: ping [16:40] JimBastard_: *cough* felixge [16:41] felixge: JimBastard_: I know, I know. I guess I'll just build the freaking filter() function with for var in and be happy [16:42] felixge: If you got millions of documents you shouldn't filter through them like that anymore anyway [16:42] JimBastard_: ;-) [16:43] JimBastard_: lunch time! [16:44] cpleppert has joined the channel [16:44] creationix: I'm feeling really left out on this whole JSconf thing [16:45] creationix: But unless someone gives me a ticket and buys me a plane ticket, I won't be able to go. [16:45] juvenn has joined the channel [16:45] creationix: so my plan has been to contribute to the various projects that will be presented so that part of me will be there [16:45] felixge: creationix: you should write them you are a somalian programmer :) [16:45] felixge: creationix: (their april fools was that the conf was canceled due to that) [16:46] creationix: I remember [16:46] bpot has joined the channel [16:46] nsm has joined the channel [16:46] dandean has joined the channel [16:47] _ry: what's voodootikigod's email ? [16:48] fizx has joined the channel [16:48] deanlandolt: _ry: voodootikigod@gmail.com [16:50] fictorial: I have a ticket to jsconf but can't make it - I wonder if I can get a refund or sell it to someone [16:50] deanlandolt: fictorial: heh...i think there's interest ;) [16:51] creationix: fictorial: can I pay you in code? [16:51] javajunky: creationix: you mentioned a while ago you have an idiom for sharing 85% of your code between server+client, did you document your idiom anywhere .. I can see a few ways of doing it, but like to be idiomatic [16:51] creationix: sure, github.com/ry/node_docs [16:51] _ry: fictorial: oh, i have a friend who might be interested [16:51] fictorial: creationix: :) [16:51] javajunky: ;) yeah just read through that and couldn't spot anything directly obvious .. clearly being a fool [16:51] fictorial: _ry: ok [16:51] _ry: fictorial: sucks you can't make it [16:52] creationix: javajunky: specifically http://github.com/ry/node_docs/blob/master/js/app.js#L2 [16:52] fictorial: yeah, there's a slim chance I can but pregnant wife > jsconf [16:52] javajunky: nm, spotted it [16:52] javajunky: (typeof exports === 'undefined' ? window : exports).App = function App(engine) { [16:52] javajunky: ah yeah [16:52] javajunky: thx [16:52] deanlandolt: voodootikigod: next year you should save a few tickets to auction off the week before for charity or something...i bet you'd rake it in! [16:53] _ry: fictorial: what's your email? [16:54] admc has joined the channel [16:54] fictorial: brian at fictorial dot com [16:54] botanicus has joined the channel [16:54] voodootikigod_ has joined the channel [16:57] botanicus: BTW can you guys recommend me a simple testing (BDD) tool for Node.js? [16:58] ashiso: asynchrounous testing and simple. meh [17:00] JimBastard_: apparently if you said voodootikigod 3 times in a row you summon voodootikigod_ [17:00] JimBastard_: say* [17:01] javajunky: botanicus: jspec is ok for some things, but yeah async isn't really well supported, although getting better I believe [17:01] botanicus: ashiso: well it doesn't have to be asynchronous. I have tiny app I don't care how long it runs. [17:02] botanicus: javajunky: thanks, I'll take a look. [17:02] botanicus: It seems similar to rSpec which I'm used to [17:02] JimBastard_: ive been doing async client testing [17:02] JimBastard_: using sexy.js for now [17:02] JimBastard_: i actually had a really good idea [17:02] binary42 has joined the channel [17:03] JimBastard_: i posted it on nyc.js and sammy.js last night [17:03] JimBastard_: binary42 in the house [17:03] botanicus: Anyway the idea of async tests is awesome. I'm a Ruby developer and to be honest, our tests run often even 30 mins which is terrible. (But the slow part is mostly Rails not Ruby itself). [17:03] binary42: JimBastard_: Heya. [17:04] tmpvar: what up [17:04] javajunky: botanicus: just because something is 'async' there's no guarantee it will be faster. in fact it could be slower, it rather depends on why things are slow ? [17:04] binary42: Time for some serious JS hacking. Part III. [17:05] CodeOfficer has joined the channel [17:06] botanicus: javajunky: interesting point. I don't have clue, I'm just starting with Node and I don't have much experiences with async. [17:06] dgathright has joined the channel [17:06] voodootikigod_: muhahaha [17:06] dekroning has joined the channel [17:07] _ry: the new joyent offices --> http://en.wikipedia.org/wiki/345_California_Center [17:08] _ry: well not the whole thing ;) [17:08] kixxauth has joined the channel [17:08] binary42: _ry: Nice. What floor? I hope you are near a window. It'd be a shame to be boxed up in something like that w/o a view. [17:08] binary42: _ry: yet. [17:09] _ry: 20th [17:10] mjr_: I used to work a block from there. Lots of good hustle and bustle of attractive people working in non-computer jobs. [17:10] _ry: everyone got an office [17:10] _ry: we don't really fill the whole floor [17:11] javajunky: If anyone's interested, my 3rd prototype of the node.js based electronic whiteboard is up here: http://109.74.205.251:8080/ … full of both lameness and awesomeness at the same time ;) .. next to implement a nice mochaui interface, and then make it vectors rather than bitmaps ;) [17:11] mjr_: that's awesome [17:12] mjr_: why does it flicker when you finish a shape? [17:12] charlesjolley has joined the channel [17:12] javajunky: mjr_: mainly because its a bit rubbish at the mo, the local 'active shape' disappears and then it comes back down from the server to all clients (including you) .. I'm still in a 'proving' approaches stage :) [17:13] botanicus: I'm wondering if there is something more simple for BDD testing. I went through the jSpec sources and I'm not sure if I like it, I need really something simple & preferably just in JS. jSpec is too ruby-ish thing. [17:14] mjr_: I manually added some OSX window chrome for you [17:14] javajunky: so i see, awesome ;) .. I'm about to throw http://www.mochaui.com/demo/ around it to make it look a bit snazzier ;) [17:14] JimBastard_: heh, today is my one year github anniversary [17:15] deanlandolt: javajunky: where the hell did mochaui come from? that's beautiful! [17:16] javajunky: dunno, I was just looking for decent (and not including ext.js) javascript web ui frameworks, and fell across it, seems to have been around for a bit and wanted to use something like it [17:17] deanlandolt: yeah, been looking for something like that for a while...they could probably stand to market a little better! [17:17] javajunky: ;) [17:18] javajunky: yeah first commit is over a year ago :) [17:18] javajunky: I think its just one guy 'gregory houston' [17:19] deanlandolt: damn, now you've gone and f'ed up my whole day! [17:21] xer0x has joined the channel [17:23] javajunky: my bad ;) [17:23] creationix: I remember mochaui [17:23] creationix: don't remember why it didn't work for me though [17:23] creationix: probably because I had to support IE6 at the time [17:23] deanlandolt: that seems like a distant memory now :) [17:25] dgathright has joined the channel [17:25] creationix: since I've only worked on prototypes and node related stuff I haven't had to support IE at all this year, it's been great [17:26] broofa has joined the channel [17:26] ashiso: lucky you :/ [17:26] broofa has joined the channel [17:26] creationix: also I haven't gotten paid since the end of January [17:26] creationix: it comes at a cost [17:27] ashiso: I guessed something like that :( [17:27] creationix: hence my lack of attending any conference I'm not speaking at [17:28] ashiso: but how comes I never heard about mochaUI? © 2007-2008 !!11 [17:28] creationix: I think it was ahead of it's time and so everyone overlooked it [17:29] creationix: also it looks about the same I remember from back then [17:29] ashiso: mh [17:29] ashiso: support for IE6+7 .. [17:30] ashiso: maybe that's what he's been working on :) [17:33] javajunky: I think ie's supported via excanvas .. its canvas based (which is what I'm interested int..rather than re-rolling my own) [17:35] mikeal has joined the channel [17:37] juvenn: hi, what package manager would you recommend for node? [17:38] javajunky: juvenn: There's no clear winners at the mo as I understand it, two real options 'npm' or 'kiwi' .. I tend to use kiwi, mainly because I do quite bit with express which is a related project. [17:38] maushu has joined the channel [17:38] tisba_ has joined the channel [17:38] creationix: I think there will be another announced after jsconf [17:39] javajunky: *sob* [17:39] juvenn: oh, i'm waiting for it [17:39] tisba_ has joined the channel [17:40] juvenn: i'm hacking around with express as well [17:40] juvenn: but found that the syntax changed a bit [17:40] javajunky: really ? [17:40] mjr_ has joined the channel [17:40] javajunky: wherebaouts ? . I've not noticed .. except for the recent change awy from creationix' haml ? [17:41] juvenn: ok, just the end semicolon [17:42] javajunky: um, I don't follow, the style of syntax isn't neccessarily my favourite, but the node.js community is fairly opinionated in a variety of interesting ways ;) [17:42] charlesjolley has joined the channel [17:43] javajunky: (but that doesn't mean you need to write your routes like that!?) [17:43] juvenn: express depends on ext.js, class.js, etc. to provides syntax sugars. though, i like working close the metal [17:44] juvenn: i'd like raw javascript, i mean [17:44] javajunky: ah, yes indeed, I guess thats a common trade off, the joy of choice :) I don't really use any of the sugars myself. [17:44] juvenn: since javascript lint check syntax for me [17:45] juvenn: it seems so, nice :) [17:45] larssmit has joined the channel [17:46] trodrigues has joined the channel [17:47] javajunky: right I'm off to sort out my takeaway ;) I've left that demo runnning on my server until it crashes out if anyone wants to see what the performance is like with lots of clients http://109.74.205.251:8080/ ..handy hint http://109.74.205.251:8080/launcher launches 25 client windows ;) [17:47] javajunky: cu [17:53] amerine has joined the channel [17:56] fictorial: is there some util or built-in to v8 or node that counts object properties? c=0; for(var p in o) if (o.hasOwnProperty(p)) ++c [17:57] _ry: not that i know of [17:57] fictorial: ok just being DRY if I can. thanks. [17:58] Connorhd: Object.keys(o).length might be slightly nicer? [17:58] Connorhd: or maybe getOwnPropertyNames [17:59] fictorial: Oh, you know, that threw me for a second. I was trying o.getOwnPropertyNames().length instead of Object.getOwnPropertyNames(o) [17:59] fictorial: heh [17:59] mjr_: Yeah, it seems like that stuff should be in Object.prototype [18:00] fictorial: js gurus: explain [18:00] mjr_: I'm just happy we have it. [18:00] fictorial: (why it isn't) [18:00] fictorial: yeah [18:00] fictorial: ok thanks - good enough [18:01] mjr_: I heard Crockford explain why one time, and I think it was something like breaking older code. [18:01] CrockBot: If Crockford catches an error, he roundhouse kicks it again. davejohnson [18:01] mjr_: that doesn't filter for in with hasOwnProperty [18:01] Connorhd: but they do add some things to the prototype [18:02] fictorial: is there a reason why adding such to Object.prototype would be considered a "bad idea"? [18:02] fictorial: not by me I meant [18:02] JimBastard_: thanks CrockBot [18:02] CrockBot: Doug Crockford made JSON so perfect it is timeless, hence no native Date format. dalmaer [18:03] fictorial: JimBastard_: I think you should update CrackPot to output useful JS gotchas as tips. What do you think? [18:03] JimBastard_: i think he's opensource [18:03] JimBastard_: *cough* [18:04] mikeal: i'm trying to unlearn Python [18:04] fictorial: JimBastard_: OK, but who is hosting it? [18:04] mikeal: so when I type prototype I assume I'm doing something wrong until i convince myself otherwise [18:04] JimBastard_: mikeal - start by opening up a random text file and adding a bunch of whitespace [18:04] JimBastard_: fictorial: /whois CrockBot [18:04] mikeal: hahah [18:04] CrockBot: Both douglas and crockford are reserved words in JavaScript. ara_p [18:04] mjr_: fictorial: the only reason I can think of for not putting it into Object.prototype is if you use something that tries to enumerate the properties of an object and ends up walking up the prototype chain. [18:04] mikeal: github.com/mikeal/crockbot [18:04] JimBastard_: ~js-irc@hook.io [18:05] mjr_: like the WebKit web inspector, which often gets very confused by that. [18:05] JimBastard_: thats me! [18:05] fictorial: mjr_: ok [18:05] fictorial: JimBastard_: mikeal: OK [18:05] mjr_: and of course the dreaded "for prop in obj" construct [18:05] creationix: mjr_, fuctorial, but we don't have the problem in node [18:06] creationix: we can add methods to Object.prototype that don't break for...in [18:06] JimBastard_: yeah creationix has a lib called proto [18:06] creationix: speaking of I just added one to a project I'm working [18:06] creationix: http://github.com/creationix/conductor/blob/master/lib/conductor.js#L29 [18:06] robrighter_ has joined the channel [18:06] mjr_: As long as people write for prop in obj, Object.prototype can safely have all sorts of stuff in it. [18:06] mjr_: er, not that [18:06] mjr_: Too many conversations at once [18:07] creationix: for..in is slow anyway [18:08] mjr_: But lots of people use it because they come from other languages where it isn't slow, and there are tons of JS tutorial sites that say to do that. [18:08] creationix: well it's faster than some of the alternatives. Most forEach implementations are way slower [18:09] creationix: but now that we have Object.defineProperty and Object.keys we can write a Object.prototype.forEach that is both safe and faster than a raw for..in [18:09] mjr_: How does V8's Object.keys and Array.forEach stack up to a for loop, performance wise? [18:09] creationix: a raw for loop is the fastest, but it's a lot of ugly code [18:10] creationix: my forEach implementation uses one internally [18:10] deanlandolt: creationix: actually a raw loop iterated backward is the fastest IIRC [18:10] creationix: I benchmarked all the options a couple of weeks ago [18:10] mjr_: I forgot about defineProperty's amazing powers. Yeah, once that's in there, why not put it in Object.prototype? [18:10] creationix: I think we should include my Object.prototype.forEach in node [18:11] JimBastard_: http://en.wikipedia.org/wiki/Duff's_device [18:11] creationix: but I think _ry is against that kind of stuff [18:11] deanlandolt: does v8 have non-enumerable descripters yet? i can never remember [18:11] creationix: yep [18:11] creationix: http://github.com/creationix/conductor/blob/master/lib/conductor.js#L29 [18:12] creationix: defineProperties defaults to not enumerable by default unless you say otherwise [18:12] mjr_: Yeah, that's excellent. Finally. [18:12] deanlandolt: creationix: really? [18:12] deanlandolt: that's news to me...but probably a good decision [18:12] creationix: yep, that's the point of my proto library [18:12] creationix: safely adds some stuff to Object.prototype [18:13] creationix: without breaking for..in [18:13] creationix: http://github.com/creationix/proto/blob/master/lib/proto.js [18:13] creationix: forEach is the only one I really need though, map would be nice too sometimes [18:14] mjr_: I just submitted a #crockfordfact. mikeal, where are the live, streaming updates? [18:14] CrockBot: JavaScript ninjas have a name for Douglas Crockford: sensei. ara_p [18:15] JimBastard_: twitter [18:17] mikeal: mjr_: crockfordfacts.com [18:17] CrockBot: Douglas Crockford doesn't use try-catch. When Douglas codes there are no exceptions. gudbergur [18:18] charlesjolley has joined the channel [18:19] hellp has joined the channel [18:25] devinus: does sendfile pump ? [18:25] kenneth_reitz has joined the channel [18:33] mrjjwright has joined the channel [18:33] ashiso_ has joined the channel [18:34] felixge has joined the channel [18:34] felixge has joined the channel [18:35] ashiso_ has joined the channel [18:38] _ry: devinus: in the kernel [18:38] devinus: _ry: i wonder why node-paperboy doesnt use sendfile ... :-/ [18:38] devinus: maybe i should ask felixge [18:38] _ry: because the binding is broken [18:38] devinus: ah... [18:39] felixge: devinus: yeah, it wasn't working when I tried it. [18:39] devinus: damn [18:39] felixge: devinus: do you plan to send really big files? [18:39] _ry: don't worry node's performance problems probably dwarf any performance increase you'd see :) [18:40] devinus: felixge: yes [18:40] devinus: _ry: i know...i'm just a sucker for stuff like that though [18:40] felixge: devinus: I think the situation will get much better over time [18:40] felixge: devinus: so you should feel comfortable going forward [18:46] Sembiance has joined the channel [18:46] Sembiance: Hey everyone :) [18:47] softdrink has joined the channel [18:48] xer0x has joined the channel [18:49] ryan[WIN] has joined the channel [18:53] mjr__ has joined the channel [18:59] towski has joined the channel [19:02] binary42 has joined the channel [19:04] xla_ has joined the channel [19:05] ayo has joined the channel [19:06] aryounce has joined the channel [19:06] technoweenie has joined the channel [19:14] mau has joined the channel [19:15] xla has joined the channel [19:15] kriszyp has joined the channel [19:16] mau2 has joined the channel [19:18] maushu has joined the channel [19:18] felixge has joined the channel [19:18] felixge has joined the channel [19:21] ashiso: is freenode still in trouble? [19:21] javajunky has joined the channel [19:23] JimBastard_: freenode is always in trouble ashiso [19:25] ashiso: JimBastard_: really? I don't use irc much. [19:26] indiefan has joined the channel [19:27] ashiso: JimBastard_: and they announced that some DDoS was happening last time I connected. But I guess I would do the same if I break some servers :) [19:27] JimBastard_: i cant remember a time when freenode wasnt being assaulted by someone [19:27] ashiso: ah ok [19:27] JimBastard_: i think i might have been one of the primary reasons they banned mibbit too [19:27] JimBastard_: :-( [19:29] ashiso: what was the problem with mibbit? [19:29] Connorhd: I think the claim was freenode can't be sure the IPs passed on by mibbit were the actual IPs of the users [19:32] ashiso: stupid [19:33] JimBastard_: pretty stupid because its very possible to pass the IPs [19:33] kriskowal has joined the channel [19:33] JimBastard_: but pretty much i could open up 30 mibbit tabs and spam any room i wanted to with immunity [19:33] JimBastard_: ctrl-t hax [19:34] mattly has joined the channel [19:34] ashiso: yeah but you could do the same with some stupid bot [19:35] ashiso: and as we experience it, some could use a botnet :/ [19:37] JimBastard_: well [19:37] JimBastard_: the idea with mibbit [19:38] JimBastard_: is that you dont have to use any other servers or machines [19:38] JimBastard_: you can just goto the website and start opening up tabs [19:38] JimBastard_: then you can use a web proxy [19:38] JimBastard_: instead of trying to do SOCKS or whatever [19:38] Connorhd: JimBastard_: you couldn't spam with mibbit, you ident on mibbit is your IP [19:38] JimBastard_: it is now.... [19:38] Connorhd: they can still ban you individually [19:38] Connorhd: yeah, and they pass your IP as username and using the WEBIRC protocol [19:38] JimBastard_: ive spoken to the guy who wrote mibbit a few times [19:39] Connorhd: axod? [19:39] JimBastard_: aye [19:39] JimBastard_: i think [19:39] JimBastard_: its been a while [19:39] JimBastard_: these guys i know where running an unreal irc server and had to make a slight config change so they could use the info mibbit was passing too [19:40] Connorhd: yeah, thats the WEBIRC [19:40] Connorhd: but ident is always a hex version of the users IP [19:40] JimBastard_: all i know is that when i was doing it [19:40] JimBastard_: the only way to stop the flood was ban mibbit itself [19:40] ashiso: and what magic did mibbit use at that time? [19:40] mikeal has joined the channel [19:41] Connorhd: mibbit has had ident as IP for a long time now [19:41] JimBastard_: i remember taking in axod in like 2008 maybe? [19:41] JimBastard_: maybe early 09 [19:41] JimBastard_: when it was first out [19:41] Connorhd: yeah, might not have then [19:41] ashiso: decades ago :) [19:41] JimBastard_: we got arg-irc added as one of the first servers in the drop down list [19:42] rtomayko has joined the channel [19:54] Jmayhak has joined the channel [19:55] ashiso has joined the channel [19:59] gwoo has joined the channel [20:01] fictorial: Anyone have a JS version of fnmatch? [20:03] dnolen has joined the channel [20:03] tmpvar: dnolen, do you go to nyc.js? [20:04] derferman has joined the channel [20:13] ashiso: fictorial: no but i like to see that in js too [20:13] fictorial: I'm writing it now ... A simple version at least. [20:14] tmpvar: oh like glob? [20:17] inimino: fictorial: the reason for not putting new things on Object.prototype is so they could be implemented in ES3 for existing engines in compatibility libraries without breaking for..in [20:17] fictorial: ok [20:17] fictorial: thanks for that [20:19] fictorial: hmm String.replace does not seem to support the non-standard 'g' flag... Guess I have to resort to using a RegExp(ch, 'g') then [20:20] tilgovi has joined the channel [20:20] CIA-77: node: 03Ryan Dahl 07master * re2d86d3 10/ (5 files in 4 dirs): [20:20] CIA-77: node: Use AF_INET sockets instead of always AF_INET6 [20:20] CIA-77: node: You can get AF_INET6 still, it's just not the only choice. - http://bit.ly/90lsNC [20:21] _ry: fuck. commited too much [20:21] inimino: fictorial: /g is standard, how are you testing it? [20:22] inimino: fictorial: or do you mean that third argument Mozilla has? [20:22] fictorial: Yep - no big deal. [20:22] CIA-77: node: 03Ryan Dahl 07master * rb9106b0 10/ (lib/net.js src/node_net2.cc test/pummel/test-tcp-pingpong.js): [20:22] CIA-77: node: Use AF_INET sockets instead of always AF_INET6 [20:22] CIA-77: node: You can get AF_INET6 still, it's just not the only choice. - http://bit.ly/a6CZ9m [20:22] _ry: ^-- forced [20:22] _ry: sorry [20:23] inimino: fictorial: yeah, just put it at the end of the regex literal instead [20:24] fictorial: yep [20:24] inimino: ok :) [20:24] fictorial: Was avoiding creating a regex but I suppose internally it's doing that anyway :) [20:24] inimino: yeah [20:25] ashiso: nope: http://fxr.watson.org/fxr/source/libkern/fnmatch.c [20:28] felixge has joined the channel [20:28] felixge has joined the channel [20:29] fictorial: ashiso: I mean internall as in String.prototype.replace [20:29] fictorial: I'm dealing with this issue in case anyone wants context (I always do): http://groups.google.com/group/redis-clients-dev/browse_thread/thread/ac4369c0df506cc5 [20:34] teemow has joined the channel [20:35] fictorial: ok, here's a start: http://gist.github.com/353672 ... poke holes in it if you find something wrong/missing. [20:42] mikeal has joined the channel [20:43] aho has joined the channel [20:46] charlesjolley has joined the channel [20:48] alexiskander has joined the channel [20:49] alexiskander has joined the channel [20:52] binary42 has joined the channel [21:02] fictorial: integrated that fnmatch implementation into redis client -- works. yay. [21:05] javajunky has joined the channel [21:07] mrjjwright has joined the channel [21:08] fizx has joined the channel [21:17] admc has joined the channel [21:17] tilgovi has joined the channel [21:23] ddollar: anyone have a good strftime or something similar that works in node? [21:25] ddollar: nevermind, just found visionmedia's ext [21:30] javajunky: yeah the printf in there's pretty good [21:34] devinus: hey gaiz [21:34] devinus: i just experienced the joy of sharing code between client/server for the first time :D [21:35] devinus: just wanted to announce that [21:35] rictic has joined the channel [21:43] broofa has left the channel [21:45] creationix: awesome [21:46] joshbuddy has joined the channel [21:48] robrighter has joined the channel [21:49] devinus: creationix: pull req @ node-router [21:49] creationix: I saw [21:49] creationix: isn't the \ before the ? also superfluous [21:50] devinus: creationix: hrm, im not that great with regex's, is it? [21:50] devinus: creationix: one sec... [21:50] creationix: run it through jslint, it will usually tell you [21:51] devinus: creationix: indeed it is [21:51] devinus: creationix: i'll redo it [21:52] nefD has joined the channel [21:52] jazgot has joined the channel [21:53] devinus: creationix: new req [21:53] nefD: is there already a nifty monitoring script or somesuch that will restart a node instance should it suddenly bomb out? [21:54] devinus: nefD: monit [21:54] creationix: devinus: ok, thanks, I'll look at it later, trying to get an article out the door [21:54] tilgovi has joined the channel [21:54] botanicus has joined the channel [21:54] erikvold has joined the channel [21:54] brainproxy has joined the channel [21:54] freshtonic has joined the channel [21:54] siculars has joined the channel [21:54] pavelz has joined the channel [21:54] magcius has joined the channel [21:54] ddollar has joined the channel [21:54] orlandov has joined the channel [21:54] rektide has joined the channel [21:54] nefD: ah-hah [21:54] devinus: creationix: actually, to be honest, i love node-router as it introduced me to sort of the api i had in mind from the start, but i really want to rewrite it almost entirely [21:54] jlilly has joined the channel [21:54] nefD: is monit listed in the modules pages on git? [21:54] devinus: nefD: it is not a node.js server [21:55] creationix: node-router's code is pretty ugly, it could use a rewrite [21:55] jlilly has joined the channel [21:55] devinus: nefD: it is it's own application. seems most everybody here is using it [21:55] creationix: it's on my todo list for this month [21:55] jlilly has joined the channel [21:55] nefD: ahh ok.. ive been a bit out of the node-loop for the past couple months [21:56] jlilly has joined the channel [21:57] jlilly has joined the channel [21:57] jlilly has joined the channel [21:57] jlilly has joined the channel [21:57] mortens: i find node quite interesting, ive been toying with it for the past few days :) and awesome job on it to those responsible :D (heh, just a small thank yee;p) [21:58] nefD: node has certainly made me rethink my stance on many of the project ideas i've had for a while :) [21:59] mortens: yeah, i got plenty of ideas, just my coding skills arent up to par lol [21:59] mortens: but eh, thats just me being lazy really - just gotta sit down and learn lol [21:59] pawel has joined the channel [22:00] jlilly has joined the channel [22:02] charlesjolley has joined the channel [22:07] _ry: god. the multipart library is a mess.. [22:07] technoweenie: i think most of them are [22:08] _ry: well - i'd rather not have my libraries be a mess.. [22:09] ashiso: most devs don't have time to think nowadays :( [22:11] ashiso: see? [22:11] ashiso: lol [22:13] magcius has joined the channel [22:13] magcius has joined the channel [22:15] rektide has joined the channel [22:17] _ry: god i hate the multipart protocol [22:17] tilgovi_ has joined the channel [22:17] jlilly has joined the channel [22:17] erikvold has joined the channel [22:17] siculars has joined the channel [22:17] pavelz has joined the channel [22:17] ddollar has joined the channel [22:17] orlandov has joined the channel [22:17] jlilly has joined the channel [22:18] botanicus has joined the channel [22:18] JimBastard: nyu hackathon tonight [22:18] JimBastard: gonna be talking about how awesome node is [22:18] JimBastard: and why hook.io is win [22:18] JimBastard: ^_^ [22:19] technoweenie: hook.io is node? [22:19] JimBastard: tmpvar binary42 there is a party at my spot tonight come by if you want [22:19] JimBastard: hell fucking yeah [22:19] JimBastard: its open source [22:19] technoweenie: oh hey its open source [22:19] tmpvar: im on call :/ [22:19] JimBastard: also technoweenie apparently you own in rails land [22:19] JimBastard: i saw your name all over some stuff where i work [22:19] jlilly has joined the channel [22:20] technoweenie: i was on the core team for a couple years [22:20] brainproxy has joined the channel [22:20] binary42: JimBastard: party as in hacking or party as in party? [22:20] JimBastard: real party [22:20] JimBastard: my friends came from out east and took over my house [22:20] JimBastard: lots of people i dont know coming [22:20] JimBastard: they starting while we are at hackathon [22:20] JimBastard: so maybe both [22:20] binary42: JimBastard: Cool. Depends how quick I get stuff done here at work. Might be here pretty late. [22:21] JimBastard: technoweenie: im gonna be doing a hook.io presentation at scurvy conf [22:21] technoweenie: cool [22:21] JimBastard: come on by anytime, someone will be here [22:21] JimBastard: i dont do well with phones [22:21] jlilly has joined the channel [22:22] jlilly has joined the channel [22:23] binary42: JimBastard: And my phone doesn't do well with networks so it's all good. (to be honest though, I'm pretty tired after this long week) [22:23] tilgovi has joined the channel [22:24] jlilly has joined the channel [22:25] jlilly has joined the channel [22:25] siculars has joined the channel [22:25] pavelz has joined the channel [22:25] erikvold has joined the channel [22:25] ddollar has joined the channel [22:25] orlandov has joined the channel [22:25] jlilly has joined the channel [22:26] jlilly has joined the channel [22:26] jlilly has joined the channel [22:27] jlilly has joined the channel [22:27] jlilly has joined the channel [22:28] mattly has joined the channel [22:28] jlilly has joined the channel [22:28] jlilly has joined the channel [22:28] rtl has joined the channel [22:28] jlilly has joined the channel [22:29] jlilly has joined the channel [22:29] cpleppert has joined the channel [22:29] jlilly has joined the channel [22:29] jlilly has joined the channel [22:30] jlilly has joined the channel [22:30] jlilly has joined the channel [22:31] jlilly has joined the channel [22:31] jlilly has joined the channel [22:31] jlilly has joined the channel [22:32] jlilly has joined the channel [22:32] jlilly has joined the channel [22:32] jlilly has joined the channel [22:33] jlilly has joined the channel [22:33] jlilly has joined the channel [22:34] jlilly has joined the channel [22:34] jlilly has joined the channel [22:34] aho: o_O; [22:34] jlilly has joined the channel [22:35] jlilly has joined the channel [22:35] jlilly has joined the channel [22:35] jlilly has joined the channel [22:36] jlilly has joined the channel [22:36] jlilly has joined the channel [22:37] jlilly has joined the channel [22:37] gwoo: any ops around? [22:37] jlilly has joined the channel [22:37] jlilly has joined the channel [22:38] _ry: we don't have +o [22:38] jlilly has joined the channel [22:38] jlilly has joined the channel [22:38] jlilly has joined the channel [22:38] gwoo: _ry: you should :) [22:38] kloeri has joined the channel [22:38] SpaceGhostC2C has joined the channel [22:39] ashiso: why not? [22:39] jlilly has joined the channel [22:39] bikcmp has joined the channel [22:39] SpaceGhostC2C: Ah, I forgot about node.js. Nifteh project I must say. [22:39] jlilly has joined the channel [22:39] jlilly has joined the channel [22:40] mrjjwright has joined the channel [22:40] JimBastard: _ry: what do you mean who registered the chan [22:41] _ry: marienz: thanks [22:41] gwoo: nice [22:41] marienz: no problem, please prod a staff member to remove that once he's actually fixed his connection [22:41] botanicus has joined the channel [22:41] gwoo: marienz: can you do the same in #git [22:41] _ry: marienz: can we get ops in here? [22:41] gwoo: :) [22:42] marienz: gwoo: hang on, checking if I can do something more network-wide safely [22:42] gwoo: marienz: awesome, thanks [22:43] bikcmp: marienz: Maybe K-Line it, and as the message, say email kline@freenode.net; your connection has been going off and on... etc [22:43] SpaceGhostC2C has left the channel [22:45] devinus has joined the channel [22:46] malkomalko has joined the channel [22:47] javajunky: sweet, ported the jquery websockets plugin to mootools, onwards with mochaui ;) [22:50] _ry: i'm going to remove multipart [22:51] technoweenie: that bad? [22:51] _ry: it should be like a 50 line thing [22:51] _ry: it's hundreds and hundreds [22:52] bikcmp has left the channel [22:54] maushu: The multipart? THE MULTIPART?! [22:54] maushu: NOOOOOOOOoooooooooooooooooooooooo [22:54] maushu: Goodbye file uploads. ;_; [22:55] JimBastard: semver just owned your face [22:56] binary42: JimBastard: Just realized I have GoRuCo talk selection to do tomorrow and I haven't reviewed the proposals yet... probably won't make it tonight. [22:59] creationix: _ry: +1 for removing stuff [23:00] _ry: maushu: just pull it out if you need it [23:00] _ry: maushu: i'm not going to maintain it [23:00] _ry: not in this state [23:00] maushu: ...ooooooooooooooooooooo... [23:00] CIA-77: node: 03Ryan Dahl 07master * r53530e9 10/ (4 files in 3 dirs): Fix test-http-chunked. Need to check for \0 at end of utf8 strings - http://bit.ly/dmzF6I [23:00] CIA-77: node: 03Ryan Dahl 07master * rc5aa58d 10/ (4 files in 4 dirs): [23:00] CIA-77: node: Remove multipart library [23:00] CIA-77: node: Too messy, unmaintainable. Pull it out of the history if you need it. - http://bit.ly/bohOaQ [23:00] maushu: ACTION 's hair catches fire. [23:01] maushu: See what happened?! [23:02] CIA-77: node: 03Ryan Dahl 07master * r94644d7 10/ (5 files in 5 dirs): [23:02] CIA-77: node: Remove multipart library [23:02] CIA-77: node: Too messy, unmaintainable. Pull it out of the history if you need it. - http://bit.ly/aHyD1a [23:03] rolfb: nice commit [23:04] CIA-77: node: 03Ryan Dahl 07master * rc0e18f3 10/ test/simple/test-file-read-stream.js : Don't reference fixtures/multipart.js - http://bit.ly/aXdcvY [23:05] alexiskander has joined the channel [23:13] ashiso: wow i wasn't aware that it was all js [23:15] tav has joined the channel [23:17] CIA-77: node: 03Ryan Dahl 07master * rae805f1 10/ (lib/net.js src/node_net2.cc): Emit 'error' on tcp connection DNS error - http://bit.ly/9v9IHt [23:26] quirkey_ has joined the channel [23:31] bmizerany has joined the channel [23:31] mjr__: The multipart stuff is scary [23:32] mjr__: I think it's reasonable to put that in a separate lib if you need it. [23:44] Aria has joined the channel [23:48] _ry: i'll bring it back if there is a clean implementation [23:50] lifo has joined the channel [23:58] tmpvar has joined the channel [23:59] mikeal has joined the channel