[00:00] polotek: total, active, and pending requests jump around while the http calls were happening [00:00] ryah: Oo [00:01] ryah: are you accessing the disk durin ghte requests? [00:01] ceej: creationix: it does indeed :) [00:01] creationix: ceej: cool [00:03] polotek: ryah: told you it was dumb [00:03] polotek: I wanted to have milestone checks after a request came back [00:03] polotek: but also interval checks to see how the threads changed over steady time [00:04] polotek: either way, those numbers never change [00:05] polotek: feel like I'm doing something stupid [00:05] polotek: but damn if I know what it is [00:06] softdrink has joined the channel [00:07] omarkj has joined the channel [00:07] ryah: polotek: it shouldn't use the thread pool during http requests [00:09] confoocious has joined the channel [00:09] elliottcable: crap )-: [00:09] elliottcable: confoocious 3» I suppose I shoulda seen that coming, but it breaks normal scope cascading. [00:10] elliottcable: damnit [00:10] elliottcable: that was for creationix, bit he went *poof* [00:10] polotek: ryah: what do you recommend? all I'm trying to do is be able to see how changing the max threads affects the performance/throughput [00:10] elliottcable: http://gist.github.com/488236 [00:11] ryah: polotek: you have to do something with the disk [00:11] ryah: try pquerna's benchmark [00:12] _announcer: Twitter: "1.0.0beta2 Express released http://bit.ly/9oOBhQ # nodejs # expressjs" [id] -- TJ Holowaychuk. http://twitter.com/tjholowaychuk/status/19379284075 [00:12] pquerna: thats actually pretty 'single' threaded, its never pushing EIO past 1 thread [00:12] pquerna: because of how write() on file streams always returns false [00:13] _announcer: Twitter: "GetBalance added to payment-paypal-payflowpro nodejs API" -- jamescarr. http://twitter.com/jamescarr/status/19379313813 [00:13] pquerna: so we are always waiting the drain event [00:13] pquerna: but, need to 'fix' that, then it hopefully will be a good benchmark :) [00:13] ryah: oh right [00:13] saikat` has joined the channel [00:13] ryah: polotek: how about a stati file server [00:13] polotek: pquerna: where is this? [00:13] ryah: polotek: without caching [00:14] pquerna: polotek: http://github.com/pquerna/node/blob/buffer_stream/benchmark/io.js [00:14] pquerna: polotek: http://github.com/pquerna/node/blob/buffer_stream/benchmark/io.c [00:14] pquerna: polotek: you can bump up 100 meg tsize to 1000 if you want it to take a long time :) [00:14] p6 has joined the channel [00:15] polotek: ryah: so I'm a little confused [00:15] polotek: you're saying http client doesn't use the libeio threads/ [00:16] polotek: ? [00:16] ryah: right [00:16] pquerna: if you had the io.js open up 10 files [00:16] pquerna: you'd push eio decently hard [00:16] pquerna: like try all the buffer sizes at the same time [00:17] polotek: pquerna: thanks, I'll check it out [00:18] polotek: ryah: didn't know that about http [00:18] polotek: still don't know a lot about node [00:18] confoocious has joined the channel [00:18] polotek: which is why I was trying innocuous patches at first [00:18] polotek: that forced to hunt around and figure things out [00:19] _announcer: Twitter: "forked node-Daemon on #GitHub and added support for Connect middleware. http://bit.ly/9M7ijo #nodejs" -- Josh. http://twitter.com/hsoj/status/19379688254 [00:19] ryah: polotek: nod [00:19] hsoj_: damn, that was fast [00:20] confoocious has joined the channel [00:20] polotek: it's always fun to be here when people meet the announcer [00:20] confoocious has joined the channel [00:20] ceej: whats the node call i need to get the path of the fir I'm in from the root ? [00:21] hsoj_: which twitter module does _announcer use? [00:22] polotek: hsoj_: hand rolled I believe [00:22] polotek: but I've got one if you're looking for something [00:22] polotek: http://github.com/polotek/evented-twitter [00:23] hsoj_: polotek, thanks [00:23] [[zz]] has joined the channel [00:25] xla has joined the channel [00:30] elliottcable: actually, I think I can do this an easier way, sort of [00:35] _announcer: Twitter: "@tjholowaychuk @izs @nodejsbot last tweet was in reference to the funny name, nothing against @nodejs #idontmissrails." -- Keegan Watkins. http://twitter.com/keeganwatkins/status/19380660604 [00:39] pedrobelo has joined the channel [00:40] polotek: sweet! [00:40] kriskowal has joined the channel [00:40] polotek: so the io test only runs one io job at a time [00:40] polotek: so active is always 1 [00:40] polotek: which is fine [00:40] polotek: but it does change [00:41] polotek: ryah, pquerna thanks [00:41] polotek: ryah: I'm going to take out this usage stuff for now [00:42] polotek: I'm gonna do some more testing and eventually send you a patch with just the accessor for max threads [00:43] polotek has left the channel [00:46] BrianTheCoder has joined the channel [00:46] _announcer: Twitter: "@pgriess Thank you for your reply. I've added link to node-js at msgpack.org wiki! http://redmine.msgpack.org/projects/msgpack/wiki" -- Sadayuki Furuhashi. http://twitter.com/frsyuki_ha/status/19381316551 [00:49] sh1mmer has joined the channel [00:50] jakehow has joined the channel [00:50] elliottcable: this is unbelievably evil :x [00:51] _announcer: Twitter: "@ Uupaa MessagePack for JavaScript (NodeJS) 曰 of people, Typed Arrays is that ... it seems there is still a normal browser for Hey Do not use. This is great but it might Chrome." [ja] -- FURUHASHI Sadayuki. http://twitter.com/frsyuki/status/19381643936 [00:52] JimBastard has joined the channel [00:52] _announcer: Twitter: "Node.js, discovery. http://bcharp.fr/2010/07/node-js-la-decouverte/" [fr] -- Charpentier Boris. http://twitter.com/Bcharp/status/19381714525 [00:57] mitkok has joined the channel [00:59] pedrobelo has joined the channel [01:03] bradleymeck1 has joined the channel [01:03] clintstel has joined the channel [01:06] mjr_: Even seen node with 50,000 HTTP clients? Only using 122MB of RAM: 7037 mjr 20 0 166m 126m 4540 S 2 3.2 0:21.38 node [01:06] mjr_: how is that possible? [01:06] ryah: what are they doing? [01:06] mjr_: sitting idle [01:06] ryah: 122mb rss? [01:06] mjr_: my client is grinding through GC hell, but the server is rocking [01:07] mjr_: Yeah, I wonder if connections are dropping and I can't tell. [01:07] ryah: 2kb per connection [01:07] mjr_: The RSS number is always going up [01:07] mjr_: {"rss":132947968,"vsize":174391296,"heapTotal":126821152,"heapUsed":122594796,"index":56408,"count":56409} [01:09] mjr_: My client is at 179MB RSS, but has gotten almost unusably slow. [01:09] ryah: the client generated all the requests? [01:09] ryah: what is it? [01:09] mjr_: yeah, one client process, on server process. [01:09] mjr_: both node [01:09] ryah: ah [01:09] mjr_: using http client and http server from node. [01:10] mjr_: noding it up [01:10] micrypt has joined the channel [01:10] ryah: need dtrace probes. could be examining what they are doing better [01:10] mjr_: oh yeah, the server is starting to drop them faster than the client can set them up now [01:11] kevm has joined the channel [01:11] mjr_: Multiple clients can fix this though. [01:11] ryah: they're on diferent boxes? [01:11] mjr_: yeah, two computers, but just one node process each [01:11] ryah: linux? [01:12] mjr_: yeah, linux. OSX died because of select issues in libevent. [01:12] ryah: yeah [01:12] ryah: libev [01:12] mjr_: At like 1000 or something [01:12] mjr_: libev, excuse me [01:12] mjr_: "invalid argument" hard fail, no exception. [01:12] ryah: ACTION shakes his head [01:12] ryah: should test kqueue again.. [01:13] mjr_: So my test is: client does an HTTP GET /memory_usage, and keeps the connection around. [01:13] mjr_: The server fills in the request with process.memoryInfo() and sends it back [01:13] mjr_: final number from the server: {"rss":133120000,"vsize":174522368,"heapTotal":131121536,"heapUsed":122749812,"index":59999,"count":60000} [01:13] ryah: but doesn't end the response? [01:14] mjr_: it ends the response, but the connection is still open. [01:14] ryah: are you sure? httpclient closes the connection automatically [01:14] mjr_: oh but that means it can clean up that response object, and even the parser, perhaps [01:14] mjr_: it sure looks like the client doesn't actually close the socket, even though it has no way of re-using it (yet) [01:15] ryah: :/ [01:15] mjr_: Yeah, that's odd now that I type it out. [01:16] mjr_: Lotsa fds still active though. Lotssa netstat CONNECTED's [01:16] jchris has joined the channel [01:16] mjr_: So anyway, that was 60,000 connections, but maybe not the best test of a real mega-comet. [01:16] mjr_: I'll do another one where the client does a GET that hangs, and just log the stats on teh server. [01:17] mjr_: Probably need to start two client processes for some reason I don't understand. [01:17] bradleymeck1: ryah it doesnt close the socket on my side but i do need to send keepalives to keep it up [01:17] ryah: mjr_: did you turn off the timeout? [01:18] mjr_: Nope, just stock http client. [01:18] polotek has joined the channel [01:18] mjr_: By the time the client had opened all 60K connections though, the server said it only had 40K open, so I think some were timing out and falling off. [01:19] mjr_: Still 40K connections open in only 130MB of RAM. That's awesome. [01:21] micrypt has left the channel [01:22] saikat has joined the channel [01:23] _announcer: Twitter: "@ikai you and me both. I'm thinking Tornado or Node.js with some PubSubHubBub and web worker action would be amazing" -- Cody Swann. http://twitter.com/cody_swann/status/19383615942 [01:23] mjr_: And with that almost-triumph, I must go home. [01:24] ThePub has joined the channel [01:24] eyzn has joined the channel [01:29] mtodd_ has joined the channel [01:30] sechrist has joined the channel [01:30] eely has joined the channel [01:32] _announcer: Twitter: "This domain is way cool people MessagePack for NodeJS author. http://blog.std.in/" [ja] -- FURUHASHI Sadayuki. http://twitter.com/frsyuki/status/19384230792 [01:34] SteveDekorte has joined the channel [01:35] Tim_Smart has joined the channel [01:37] damienkatz has joined the channel [01:37] damienkatz has joined the channel [01:39] Zebra10 has joined the channel [01:39] Zebra10: sorry for the unrelated node question [01:39] Zebra10: but [01:39] Zebra10: just wondering if anyone knows of some frameworks or whatnot like http://knockoutjs.com/ [01:39] Zebra10: was working on a ui last week that im thinking of cleaning up with something like it [01:40] elliottcable: is it possible to sleep over ticks? [01:41] mw_ has joined the channel [01:41] polotek: elliottcable: how do you mean? [01:41] bradleymeck1: elliotcable, why? what if an event occurs during that time? [01:42] polotek: Zebra10: you mean on node? or just in general? [01:42] elliottcable: polotek 3» I’m going to guess no, given ryah’s reaction to my question about wait(); but I meant a `sleep()` function of some sort that freezes the caller, and allows the event loop to continue until the `sleep()`’s time is up, and then re-schedules the caller [01:43] Zebra10: polotek: just in general [01:44] polotek: elliottcable: do you mean stop the caller in the middle of execution? [01:45] polotek: no I don't think so [01:46] mjr_ has joined the channel [01:48] devongovett has joined the channel [01:49] bradleymeck1: elliotcable it sounds like you should be separating out the function instead of trying to put it into one huge block if you want to disrupt it mid execution [01:50] mscdex: what special setting(s) do i need to build a 32-bit binary on a 64-bit os? [01:50] mscdex: for node i mean [01:51] ryan[WIN]: just pass some -march setting or whatever in gcc [01:51] ryan[WIN]: i'm just a regular everday gcc [01:51] elliottcable: bradleymeck1 3» two t’s, it’s not hilighting me, so I keep missing your responses [01:51] mscdex: i thought there was a higher level way though [01:51] ryan[WIN]: nothin' special about me motherf*#er [01:51] mscdex: like with waf [01:51] elliottcable: bradleymeck1 3» that’s the problem [01:51] elliottcable: bradleymeck1 3» don’t worry about it [01:51] ryan[WIN]: how now brown cow? [01:52] ryan[WIN]: it's just a compiler flag [01:52] bradleymeck1: what are the 2 sexiest animals? [01:52] ryan[WIN]: bradleymeck1, both the pythons i got right here [01:52] ryan[WIN]: ACTION flexes [01:52] bradleymeck1: brownchickenbrowncow~ [02:03] zapnap has joined the channel [02:07] ryan_gahl: I make pretty good spaghetti, motherfucker [02:07] pzich: haha [02:08] ryan_gahl: love him [02:13] jherdman_ has joined the channel [02:14] _announcer: Twitter: "Excited to be an official sponsor and taking part in Node.js Knockout. Looks to be a great event! Check it out: http://nodeknockout.com/" -- MongoHQ. http://twitter.com/mongohq/status/19386893853 [02:20] damienkatz has joined the channel [02:20] everton has left the channel [02:22] tmpvar has joined the channel [02:22] tmpvar: happy friday! [02:23] wilmoore has joined the channel [02:25] mscdex: not happy until i can cross-compile node [02:26] mscdex: :p [02:30] devongovett has joined the channel [02:30] tmpvar: lol [02:30] tmpvar: mscdex, what is the target? [02:30] mscdex: x86 on an x86_64 machine [02:30] tmpvar: oh, wow [02:31] mattly has joined the channel [02:31] mscdex: there's got to be an easy way to do this... [02:31] tmpvar: not as bad as I what I thought you might be doing [02:31] mscdex: haha [02:31] tmpvar: whats the problem? [02:31] mscdex: i can't figure out how to do it [02:31] tmpvar: heh, word [02:31] tmpvar: can you avoid doing this? [02:32] mscdex: not really :-) [02:33] mscdex: i've been combing through the waf manual with no luck [02:33] tmpvar: I'm guessing you tried the irc chan? [02:33] mscdex: i need something that doesn't force me to modify the wscript file [02:33] tmpvar: hrm [02:34] mscdex: like overriding DEST_CPU or something [02:36] chrischris has joined the channel [02:38] tmpvar: mscdex, you've seen http://code.google.com/p/waf/issues/detail?id=464 im guessing? [02:38] mscdex: yep [02:39] sechrist has joined the channel [02:39] mscdex: couldn't find anything useful in there though [02:40] tmpvar: yeah [02:40] tmpvar: they need a DEST_CPU as well [02:40] tmpvar: i'd say raise the issue, how long have you been looking? [02:40] mscdex: i've tried setting DEST_CPU several different ways, but it's not honored [02:40] tmpvar: oh, so they do have it [02:40] mscdex: since this evening [02:41] tmpvar: could it be the way that node's waf is written? [02:41] ryah: cross compiling has been achieved [02:41] tmpvar: s/waf/wscript [02:41] Xelysium has joined the channel [02:41] tmpvar: interesting, ryah, do you know the details? [02:41] mscdex: ryah: details? [02:41] mscdex: ha [02:42] mscdex: timing ftw [02:42] ryah: i haven't done it [02:42] sechrist has joined the channel [02:42] ryah: but i know others are - and i think without patches [02:42] mscdex: well, it ought to be posted somewhere :-\ [02:42] ryah: just setting the DEST_CPU env var [02:42] chrischris has joined the channel [02:42] tmpvar: hrm, was this in here or on the ml? [02:43] tmpvar: er, did you hear of it here or in the ml, rather [02:43] ryah: conversations with people [02:43] tmpvar: and also a question.. good god. [02:44] bradleymeck1: mmm prototype vs setting in contructors for extensibility (constructor contructor would allow a for-in over an obj)? [02:44] tmpvar: ryah, sounds like they failed to update the wiki ;) [02:45] CIA-77 has joined the channel [02:45] mscdex: :S [02:45] Xelysium: I'm having problems getting the node version number to update when I build from source... anybody else have this issue? [02:46] Xelysium: I'm stuck at 0.1.18 [02:46] mscdex: :o [02:46] Xelysium: yeah... [02:46] aheckmann: make distclean i think [02:46] tmpvar: Xelysium, do a fresh git pull, make distclean && ./configure && make install [02:47] tmpvar: fresh git pull.. I'm all out of sorts. [02:47] tmpvar: i mean, "git pull" [02:49] jashkenas has joined the channel [02:49] sechrist has joined the channel [02:49] bradleymeck1: git pull --tags if you need version update [02:50] Xelysium: make distclean solved it, thanks [02:50] sechrist has joined the channel [02:50] Xelysium: I can finally install npm now [02:53] Xelysium has left the channel [02:55] kevm: I am playing with ivy and somehow whacked my npm install. npm looks to be instaled to ~/ivy/ivy-bin/npm but when I run npm bash complains that /usr/local/bin/npm was not found. [02:55] kevm: Sorry I have not touched Unix in a decade. [02:56] shimondoodkin has joined the channel [02:57] shimondoodkin: hello [02:57] grahamalot: Is there a way to get the ordinal value of a character? [02:58] shimondoodkin: "a".charCodeAt(0) [02:58] grahamalot: shimondoodkin: awesome, thank you. [02:59] shimondoodkin: hey i found a new debugger http://github.com/dannycoates/node-inspector - seems like it is new, shared from last week and the good news about it that it actually works [03:01] softdrink has joined the channel [03:03] tmpvar: shimondoodkin, are you subscribed to the ml? [03:03] shimondoodkin: no [03:03] tmpvar: oh, you should subscribe :) its good stuff [03:04] tmpvar: node-inspector was announced a few days ago [03:04] tmpvar: 6 days ago to be exact [03:05] shimondoodkin: thanks [03:05] shimondoodkin: it is probably a good idea [03:06] tmpvar: definitely [03:06] shimondoodkin: today i was asking help about debuggind and no body has answered [03:06] tmpvar: oh [03:06] tmpvar: well there are 3 options now :) [03:06] tmpvar: ndb [03:06] shimondoodkin: waht is it? [03:07] tmpvar: eclipse plugin (which has broken for me as of late) [03:07] tmpvar: and now node-inspector [03:08] shimondoodkin: i have tried eclipse today and it was broken [03:09] shimondoodkin: what is ndb? [03:09] shimondoodkin: http://github.com/smtlaissezfaire/ndb [03:09] shimondoodkin: found it [03:10] tmpvar: its like gdb if you are familiar with gdb [03:10] tmpvar: or gcc/++ debugging [03:10] tmpvar: honestly node-inspector looks really promising [03:12] shimondoodkin: how do i mail to mailing list? [03:12] shimondoodkin: do i send to nodejs@googlegroups.com. [03:12] shimondoodkin: and it is all? [03:13] jashkenas has left the channel [03:31] statim1 has joined the channel [03:40] mscdex: finally got node compiling for x86 [03:43] tmpvar: mscdex, woooord [03:43] tmpvar: mscdex, what was the key? [03:44] mscdex: had to install the gcc-4.4-multilib and then set CC='gcc -m32' and CXX='g++ -m32' [03:45] tmpvar: haha, nice! where did you find how to do that? [03:46] tmpvar: aka, braindump p;z [03:46] tmpvar: s/p;z/plz [03:47] Tim_Smart has joined the channel [03:47] mscdex: just after constant googling [03:47] tmpvar: timmeh, whats up? [03:48] tmpvar: mscdex, nice.. any link in particular that helped? [03:48] Eber has joined the channel [03:48] tmpvar: sorry.. im honestly trying to just get this into the logs.. so its *somewhere* [03:49] ewdafa has joined the channel [03:49] maqr: is the guy who wrote d.js ever here? [03:50] tpryme: maqr: what's d.js? [03:50] Eber: Hey guys... I'm totally new to node.js. Actually, I didn't touch it yet nad I'm looking for alternatives before getting my hands dirt but... I need to create a real time web site but I'm looking for a good solution to not have to make an ajax request every second on the browser... I mean, only make new requests when new data arives. What is the best way to do that? [03:51] maqr: tpryme: a thing that watches for your source and reloads node when it changes [03:51] tmpvar: Eber, long polling? [03:51] tpryme: Eber: long polling; you can do this easily in node.js [03:51] mscdex: lol [03:51] tmpvar: :) [03:51] tmpvar: mscdex, im good at this apparently ;) [03:51] tpryme: tmpvar: GOOGLE [03:51] tmpvar: woah? wha? [03:51] tmpvar: ACTION crawls into a corner [03:51] mscdex: ok so i lied earlier: i needed gcc-multilib and g++-multilib [03:51] tpryme: tmpvar: google long polling; too long to explain over irc [03:51] Eber: tmpvar: tpryme: for instance, my data will be on mongodb, so I can compare data, make a while loop and leave the connection open on the client? is that it or is there a fancier way? [03:52] tpryme: tmpvar: Sorry, got my recipients mixed up [03:52] tmpvar: Eber, yeah, you can leave it open.. check out http://github.com/scottgonzalez/node-chat for an example [03:52] tmpvar: tpryme, np [03:53] tmpvar: mscdex, got ya, that made waf work? [03:53] Eber: tmpvar: cool... I found some stuff about comet with bayeux protocal... but I guess that is not really needed, am I right? http://faye.jcoglan.com/ [03:54] tmpvar: peeking [03:54] tmpvar: you could use that.. umm [03:54] mscdex: tmpvar: yeah [03:55] tmpvar: mscdex, awesome [03:55] Eber: tmpvar: what is the benefit? [03:56] tpryme: Eber: Benefit of Bayeux? [03:56] tmpvar: im trying to figure out what faye does lol [03:56] Eber: tpryme: yes... [03:56] Eber: and comet requests based on bayeux.... [03:56] _announcer: Twitter: "Looking to hire some bad ass front end #developers send me your #github acct!!! #nodejs #JavaScript #html5" -- hij1nx. http://twitter.com/hij1nx/status/19393486803 [03:57] tpryme: Eber: Bayeux is an RFC protocol. You don't need to follow it for comet/longpolling, but it does offer a nice framework to think about longpolling via channels, etc. [03:57] Eber: I see... I'm doing something really simple... I guess I won't need anything that fancy... [03:57] tpryme: Eber: If I were you, I wouldn't use faye. Depends on your needs. [03:58] tmpvar: i wouldnt either [03:58] Eber: tpryme: so I won't :) [03:58] tpryme: Eber: Yeah, best to decrease your dependency on others' code, especially since all these libaries aren't as mature as they could be [03:58] Eber: I see... [03:58] tmpvar: hey, another purist ... welcom tpryme ;) [03:58] tmpvar: Eber, what exactly are you trying to do? [03:58] tpryme: tmpvar: glad to be here [03:58] Eber: cool guys! if I run into any other trouble wotking with node, I'll come back :) hope to keep comming! [03:59] tpryme: tmpvar: what are you using node for? [03:59] polotek has left the channel [03:59] statim has joined the channel [04:00] _announcer: Twitter: "ServerSide JavaScript with MooTools and NodeJS http://phpc.in/an7xue shared by @iNisa" -- phpcamp. http://twitter.com/phpcamp/status/19393687042 [04:00] tmpvar: tpryme, templating, message passing, etc.. havent had much time as of late.. but im trying to keep up :) [04:03] tpryme: Anyone here interested in teaming up for node_knockout? [04:03] tmpvar: tpryme, where are you? [04:03] tpryme: SF [04:03] tpryme: San Francisco [04:04] tmpvar: damn [04:04] mscdex: 612 wharf avenue! [04:04] mscdex: :-D [04:04] tmpvar: nice [04:04] tmpvar: there you go [04:04] bmizerany has joined the channel [04:04] tmpvar: dude the nodebodies are going to own all your shit. [04:04] dnolen_ has joined the channel [04:04] tmpvar: :D [04:04] tpryme: tmpvar: ??? [04:04] mscdex: hah [04:05] tpryme: tmpvar: how about you? [04:05] tmpvar: my team, sorry lol [04:05] tmpvar: nyc [04:06] tpryme: tmpvar: you guys know what you're building yet? [04:06] tpryme: mscdex: Are you already registered? [04:06] mscdex: no [04:06] tpryme: mscdex: interested? [04:07] tmpvar: tpryme, we have a couple ideas :) [04:07] tmpvar: mscdex, you should reg now [04:07] mscdex: i don't think i'll even be available when node knockout happens [04:07] tmpvar: lol [04:07] mscdex: it's the end of august [04:07] tmpvar: we were 195/200 [04:08] tmpvar: just because we procrastinate [04:08] tpryme: tmpvar: I was 201/200 [04:08] tpryme: tmpvar: lol [04:08] mscdex: i wouldn't be able to come up with anything worthwhile anyway heh [04:08] tmpvar: ha [04:08] tpryme: mscdex: what company do you work at. near fishermans wharf [04:08] mscdex: lol [04:09] jbrantly1 has joined the channel [04:09] mscdex: 612 wharf avenue was an inside joke [04:09] tpryme: mscdex: gotcha, [04:09] mscdex: for anyone who watches ATHF :P [04:10] mscdex: tpryme: i'm a freelancer for the most part [04:10] mscdex: for now anyway [04:11] mscdex: and probably will stay that way until i complete grad school [04:11] _announcer: Twitter: "Humph. Still waiting for stable async mysql and other DB libs for node.js to be production ready to make it truly useful in production." -- Mark Maunder. http://twitter.com/mmaunder/status/19394443428 [04:11] maqr: mscdex: i have to wonder how mc chris even got that gig [04:12] mscdex: because he can wrap about candy [04:12] mscdex: er [04:12] mscdex: s/wrap/rap [04:12] mscdex: haha [04:12] maqr: :P [04:12] maqr: mscdex: wow, google tells me that 612 wharf avenue is actually in red bank [04:12] maqr: i wonder what's there [04:12] tmpvar: lol [04:12] tmpvar: there is a contest [04:12] tmpvar: to remix mc chris [04:12] mscdex: maqr: a large spider wearing a diaper [04:13] tmpvar: "i want candy" [04:13] mscdex: athf is a fun show [04:13] mscdex: especially carl [04:13] mscdex: haha [04:13] maqr: i enjoy athf [04:13] maqr: boondocks is my new favorite though [04:13] _announcer: Twitter: "Nerve: routing, session/cookies for node.js (http://bit.ly/5k95uK) Will have to try it out. What other awesome node libs am I missing?" -- Robert Smith. http://twitter.com/smithrobs/status/19394557537 [04:14] kriszyp_ has joined the channel [04:14] maqr: mscdex: weird, wharf ave is next to the hospital, i've been there a few times, there's absolutely nothing noteworthy about the area [04:14] mscdex: hah [04:16] tmpvar: maqr, are you in jersey? [04:16] _announcer: Twitter: "nodejs on my laptop is out of date!" -- jamescarr. http://twitter.com/jamescarr/status/19394710916 [04:16] maqr: tmpvar: jersey shore, yo [04:16] tmpvar: word [04:16] tmpvar: *fist pump* [04:16] maqr: srsly [04:16] tmpvar: we need a great designer on our team [04:16] maqr: actually i'm pretty near seaside, and the traffic this time of year makes me rage :P [04:17] maqr: tmpvar: i'm pretty sure, but not entirely sure, that i'm not a great designer [04:17] tmpvar: maqr, do you work in the city? [04:17] maqr: tmpvar: nah, i try to avoid the city, it's a pain in the ass to go to [04:17] tmpvar: maqr, heh [04:17] maqr: i'm pretty far south [04:17] tmpvar: ACTION is bad with geography [04:17] tmpvar: im just here to code. [04:18] maqr: i'm here to discuss the aqua teen hunger force [04:20] maqr: tmpvar: just out of curiosity, what do you look for in a good designer? [04:23] confoocious has joined the channel [04:23] tmpvar: umm [04:24] tmpvar: polished work [04:24] tmpvar: im under the impression that anyone can do anything, its the effort that you put into it thats important [04:24] mscdex: is it ok to strip the node binary? [04:24] mscdex: :S [04:24] maqr: tmpvar: does a designer have to be an animator? [04:24] maqr: and i agree with you :P [04:25] mscdex: i'm going to guess no, but i thought i'd ask [04:25] JimBastard has joined the channel [04:26] satori_: tmpvar: re: doing anything. agreed [04:27] maqr: mscdex: i don't see why not? doesn't stripping just remove debugging info? [04:27] satori_: ACTION has never had formal training at anything [04:27] shimondoodkin: re:doing anything, it takes time of traning [04:27] tmpvar: maqr, depends on what you want [04:27] mscdex: yeah, but i wasn't sure if that would hinder anything [04:27] shimondoodkin: re: doing anything, you can do anything [04:28] satori_: I like learning stuff. I dropped out of high school, but have since been a professioal audio engineer for a decaade, and almost a decade of programming now too [04:28] tmpvar: shimondoodkin, i think more importantly, it takes interest and determination [04:28] tmpvar: satori_, where are you? [04:28] satori_: Sydney [04:28] tmpvar: blah [04:28] satori_: :P [04:28] tmpvar: what time is it now? [04:28] satori_: 2:28pm [04:28] tmpvar: lol. [04:28] maqr: satori_: wow, i really am on australian time, i see you here often :) [04:29] satori_: My day is just starting :) [04:29] satori_: I'm a night owl mostly [04:29] maqr: yeah, me also [04:29] tmpvar: same [04:30] satori_: http://www.psychologytoday.com/articles/200911/intelligence-the-evolution-night-owls [04:30] maqr: satori_: i see we both frequent the same social news sites :P [04:30] satori_: reddit? [04:30] shimondoodkin: my time is 7:30 am [04:30] maqr: yes sir [04:30] maqr: satori_: i actually dind't like that article, the research is weak [04:31] maqr: satori_: did you read the one about blue light on HN? [04:31] satori_: Yeah, not much info really [04:31] satori_: no,didnt see that one [04:31] shimondoodkin: funny research [04:32] maqr: satori_: i can't find it now, but the takeaway was that blue light makes you be more awake, so if we're all staring into monitors, we all stay awake until we pass out [04:32] satori_: I am a keen ocean yachtie, I know about using red lights for night vision. I have often thought about doing it at home. [04:32] maqr: satori_: quick fix: http://stereopsis.com/flux/ [04:32] shimondoodkin: it might be basis for an iphone app [04:32] JimBastard: tmpvar have you been drinking again [04:33] maqr: shimondoodkin: eh? [04:33] satori_: Sounds like something out of cryptonomicon [04:33] tmpvar: JimBastard, wtf dude [04:33] tmpvar: i keel joo [04:33] Eber has joined the channel [04:33] tmpvar: Eber, welcom [04:34] shimondoodkin: im about satori_'s link , there an iphone app of night bio rithm [04:34] Eber: guys, I have a fresh ubuntu install here [10.04] and I'm trying to compile node... It says that it could not configure a cxx compiler... [04:34] maqr: shimondoodkin: oh, i saw that, doesn't it use some kind of attachment to determine when you're waking up? [04:34] Eber: I've installed gcc... nut nothing happens... any hintes? [04:35] satori_: you can check build/config.log [04:35] satori_: for more details [04:35] shimondoodkin: yes something simular , i don't have iphone, as i remember it uses vibration sensores to sense when you turn at sleep [04:37] shimondoodkin: also ther ewas some research of mesuring your sexual cycle at different days [04:37] maqr: shimondoodkin: that might be a depressing graph [04:37] shimondoodkin: i mean how h*rny you are [04:38] shimondoodkin: ACTION feels offtopic [04:39] maqr: haha, sorry, i spaced [04:40] shimondoodkin: maqr: thanks for f.lux now hte screen looks natural [04:40] Eber: compiling now :) [04:41] maqr: shimondoodkin: yeah, it's useful [04:42] mscdex: ACTION nudges _frankie [04:42] maqr: shimondoodkin: it gives me an extra little buffer against sleep too, since i can turn it off if i'm trying to stay up, and it's hugely bright [04:53] sechrist has joined the channel [04:58] visnup has joined the channel [05:00] aheckmann has joined the channel [05:09] quirkey has joined the channel [05:10] BrianTheCoder has joined the channel [05:15] sechrist has joined the channel [05:17] jakehow has joined the channel [05:20] micheil has joined the channel [05:21] mtodd has joined the channel [05:27] sh1mmer has joined the channel [05:29] mikeal has joined the channel [05:33] _announcer: Twitter: "oh, and protobuf services need a node.js c++ addon? yikes #pwned" -- technowürst. http://twitter.com/technoweenie/status/19399249798 [05:34] aglemann has joined the channel [05:34] steadicat has joined the channel [05:34] mscdex: ACTION attempts to summon technoweenie [05:35] maqr: :o [05:35] aglemann has left the channel [05:40] elliottcable: is dat some node [05:40] donspaulding has joined the channel [05:40] elliottcable: mscdex 3» he’s got me on ignore on Twitter. I have absolutely no idea why. [05:40] mscdex: :S [05:41] mscdex: no biggie, was just going to bug him about the github api ;-) [05:47] elliottcable: merp [05:47] micheil: elliottcable: is totally missing your point. [05:48] elliottcable: micheil 3» hm? [05:48] micheil: with the lo stuff. [05:48] elliottcable: micheil 3» I’m confused, what? [05:48] micheil: well, I'm not sure I get what you mean. [05:48] elliottcable: what I mean about what? [05:48] elliottcable: oh, wait, you’re the dude I was talking to on Twitter! [05:49] elliottcable: I’m not good with the transition from Twitter to IRC… I always do Twitter people by their avatars, not their nicks :S [05:49] micheil: >_> [05:49] elliottcable: it’s “Io” not “lo” (uppercase i) [05:49] elliottcable: and it’s a programming language [05:49] micheil: ah [05:49] elliottcable: very, very delicious [05:49] elliottcable: stevedekorte wrote it [05:49] Tim_Smart_ has joined the channel [05:49] elliottcable: I just noticed you linked to one of his other projects, so I brought it up [05:50] elliottcable: and the multiple-exclamation-points was a joke. [05:50] elliottcable: I always thought it was kind of silly that he listed his project as only containing 10k semicolons :3 [05:50] micheil: yeah [05:50] micheil: I was browsing his site.. I had it open in a tab and it looked interesting [05:51] _announcer: Twitter: "after I bought the short puff hacknight much more. Today much node.js http://nodejs.org/" [pt] -- Dirceu. http://twitter.com/dirs/status/19400219841 [05:51] elliottcable: it is :3 [05:51] elliottcable: he’s a damn good programmer [05:53] micheil: I still cannot for the life of me figure out B-Trees [05:53] _announcer: Twitter: "@benbinary msgpack looks sweet though. so glad there's a node.js lib for it" -- technowürst. http://twitter.com/technoweenie/status/19400339713 [05:54] mscdex: figure them out? [05:54] micheil: yeah, like how they work / how to code one [05:54] mscdex: oh [05:54] shimondoodkin: micheil: it is a simple b linked list with special update function so they still in order [05:54] micheil: I know databases & filesystems use them, although, I can't figure out how [05:55] mscdex: i think filesystems use b+trees rather than plain btrees [05:55] micheil: well, either way [05:56] shimondoodkin: micheil: can you imagine linked list? [05:56] micheil: yeah [05:56] micheil: I've written one. [05:56] mscdex: micheil: you saw the b+tree js implementation right? [05:57] shimondoodkin: node1 has one pointer to other node [05:57] micheil: mscdex: yeah, i did, but it didn't really say much [05:57] mscdex: otherwise, wikipedia is usually good for understand how data structures like that work [05:57] mscdex: s/understand/understanding [05:57] shimondoodkin: binary tree is node1 has two pointers insted of oone [05:57] micheil: I can't figure out how a database could possibly use a B-Tree or B+Tree to efficiently index it [05:58] shimondoodkin: the idea of b trees is that they are half pre sorted [05:58] micheil: shimondoodkin: so, node = {data, left, right} [05:58] shimondoodkin: yes [05:58] shimondoodkin: and so they are faster [05:59] micheil: although, how's that help me index / store data [05:59] mscdex: http://en.wikipedia.org/wiki/B%2Btree [05:59] mscdex: ^ [05:59] micheil: or, do we keep a key/value index of column + id pairs [06:01] micheil: because the only examples I know of with b+trees / b-trees are databases which deal with structured data [06:01] micheil: not just a flat array or something like that. [06:01] shimondoodkin: each time you add something you search for a parent node to link to that is little less then the key valu you add<(not sure about little less) and so you add it as a children if there is already a ndoe there it creates new sub node.. [06:03] shimondoodkin: you know that on hard disk is a linked list. you put a chunk of 512kb and point to the next one [06:04] shimondoodkin: got it? [06:04] micheil: so, how would you quickly find an item by a data value? [06:04] micheil: that's what I don't get. [06:05] shimondoodkin: you start with the first node and see what are the values of left and right, if the value you search is larger then right then you go to the right node [06:05] shimondoodkin: otherwise to the left node [06:05] shimondoodkin: and so you save log(n) half time [06:06] shimondoodkin: so you can easily preform binary search [06:06] micheil: but the data is an arbitrary value, so I can't see how you could do a < or > compare [06:06] micheil: unless you assign it an incrementing ID [06:07] shimondoodkin: you build b tree by key [06:07] _announcer: Twitter: "So zaherachil forumchik on node.js + memcached + mongodb (+0 wait a quality video ve balancer). Look, how much load it stand" [ru] -- biophreak. http://twitter.com/biophreak/status/19401050585 [06:08] shimondoodkin: on data you preform bubble search [06:09] shimondoodkin: take keys , string keys, you know that sting compare is comparing "a"<"b" then returns if the first is larger [06:10] shimondoodkin: also "aa"<"ab" [06:10] shimondoodkin: s you can decide in witch left or right to put it [06:10] shimondoodkin: s/s/so/ [06:11] shimondoodkin: on disk and in database the data is linked list, and the keys are b trees [06:12] micheil: so in a table of say: | artist | album | date-purchased | you would use a B-Tree or B+Tree to index the values of artist, album, and date-purchased columns? [06:12] rgl has joined the channel [06:13] shimondoodkin: whatever... [06:13] micheil: just to get away from calling everything key1 key2, etc. [06:13] shimondoodkin: depends on the algorithm you choose, which one is faster.... [06:13] micheil: okay [06:13] shimondoodkin: the keys in javascript array are btrees [06:14] shimondoodkin: and in object also [06:14] micheil: I'm guessing my definition of a key is different to yours.. some how. [06:14] micheil: I'm thinking {key: value, key2: value2} [06:15] shimondoodkin: me too [06:15] shimondoodkin: var myarray={} myarray[key]=value... [06:16] micheil: so, okay, would it be something like: {id: "key", value: "value", next: { id: "key2", value: "value2"} } [06:16] micheil: (that being a singularly linked list) [06:17] shimondoodkin: could be [06:17] micheil: where, when searching you'd do: if( id < searchId ) current = current.right; [06:17] micheil: (next above should've been right) [06:17] damienkatz has joined the channel [06:17] micheil: where id = current.id [06:17] shimondoodkin: i think you can get away with objects and arrays [06:19] shimondoodkin: var mytable = [{searchiblequickly:1,moredata:124123412},{searchiblequickly:2,moredata:124123412}]; [06:20] shimondoodkin: var index={}; foreach(key in mytable...) index[searchiblequickly:2]=key, or index[1]=[keys] [06:21] micheil: okay [06:21] shimondoodkin: like use the built it mechnism of sorting [06:21] micheil: thanks [06:21] statim1 has joined the channel [06:26] qFox has joined the channel [06:38] _announcer: Twitter: "A command based websocket application framework on node.js for real-time apps like games and chats. Still early alpha http://bit.ly/9l24sg" -- hackfrag. http://twitter.com/hackfrag/status/19402599235 [06:39] _announcer: Twitter: "Anyone with a recommendation for a node.js websocket server lib? #node.js #node #websockets" -- Toby Hede. http://twitter.com/tobyhede/status/19402638845 [06:41] derferman has joined the channel [06:43] _announcer: Twitter: "sweet, my node.js chat server is now backing up into mongo!" -- Ben Mills. http://twitter.com/benemills/status/19402828248 [06:53] derferman has joined the channel [06:55] cij has joined the channel [06:55] jakehow has joined the channel [06:58] confoocious has joined the channel [07:07] dnyy has joined the channel [07:10] kodisha has joined the channel [07:15] holydevil has joined the channel [07:19] confoocious has joined the channel [07:25] teemow has joined the channel [07:27] _announcer: Twitter: "node.js stream API for the twitter streaming HTTP API / mikeal's tweetstream at master - GitHub http://htn.to/kfmjYy" -- laiso. http://twitter.com/laiso/status/19404839234 [07:28] confoocious has joined the channel [07:29] hassox has joined the channel [07:34] tyfighter has joined the channel [07:36] femto has joined the channel [07:37] pdelgallego has joined the channel [07:49] confoocious has joined the channel [07:49] confoocious has joined the channel [07:53] jetienne has joined the channel [08:05] _announcer: Twitter: "“@node_knockout: 200 teams registered for node.js knockout!” -- OMG!!!!" -- Malte Ubl. http://twitter.com/cramforce/status/19406464901 [08:06] micheil: anyone know why you'd use a const over a var? [08:06] elliottcable: oh gods [08:06] elliottcable: that was [08:06] elliottcable: ahhhahahahhaha. [08:06] elliottcable: I just spent half an hour trying to figure this out: [08:07] elliottcable: I was pasting some code into the node-repl to test [08:07] elliottcable: and it involved a variable named _ [08:07] elliottcable: then I would typeof(_) to check that it had worked [08:07] elliottcable: … I was completely flabbergasted as to how the `typeof()` expression could be so bugged that it would assign to the variable you’re typeofing :O [08:08] bpot has joined the channel [08:08] elliottcable: I finally realized that node-repl takes the _ variable for its own use, specifically, as the return value of the last statement >,< [08:10] micheil: >_> [08:12] Tim_Smart has joined the channel [08:13] elliottcable: micheil 3» :D [08:17] collypops has joined the channel [08:17] eyzn: shimondoodkin: remember when i said that i prefer `for (var i=0; i < keys.length; i++) { doSth(keys[i]); }` ? this isnt good :p `for (var i=0, key; key = keys[i]; i++) { doSth(key); }` is better (as u said) -- difference is O(n) to O(n^2) [08:19] mscdex: eyzn: what happens when key[i] contains a value that evaluates to false, like undefined or null? [08:19] mscdex: or 0? [08:19] eyzn: well then u have to use the O(n^2) type [08:19] micheil: eyzn: no [08:19] elliottcable: … somebody who uses “u” instead of “you,” and yet knows big-O notation? [08:19] eyzn: i found this in http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml#Closures btw [08:19] elliottcable: who are you and what have you done with my universe :O [08:20] micheil: for(var i=0, len=keys.length; i,< [08:20] elliottcable: no. [08:20] micheil: >_> [08:21] mscdex: so many comparison operators! [08:21] micheil: ACTION isn't wearing his glasses. [08:21] jetienne: do a bench [08:21] elliottcable: actually [08:21] elliottcable: fastest of all: [08:21] mscdex: i would, but i'm not a carpenter [08:21] jetienne: dont assume it is faster. i know it isnt faster in a browser [08:21] micheil: jetienne: I did, a long long time ago, but it wasn't on that, it was on mutating varients [08:21] elliottcable: `for (var i = foo.length - 1; i >= 0; i--){ foo[i] };` [08:21] elliottcable: assuming you can stomache iterating backwards over your items [08:22] mscdex: --i [08:22] mscdex: :P [08:22] elliottcable: i--! [08:22] elliottcable: !i-- [08:22] elliottcable: !--i [08:22] elliottcable: O_O [08:22] mscdex: hax [08:24] jansc has joined the channel [08:28] micheil: hmm.. anyone have a good looking parser / read/writeStream implementation? [08:32] SubStack: stream parsing? [08:33] elliottcable: libxmljs exposes a stream parser [08:33] elliottcable: it’s awesome [08:33] elliottcable: but probably not what you’re saking for [08:33] elliottcable: … asking* [08:33] elliottcable: SubStack 3! [08:33] elliottcable: you fail at lurking D: [08:33] elliottcable: #justsayin’ [08:33] SubStack: elliottcable ! [08:33] SubStack: it's true [08:33] SubStack: also http://github.com/substack/node-bufferlist [08:33] elliottcable: -> ##Paws, my friend [08:33] elliottcable: O_O [08:34] SubStack: also http://github.com/substack/node-rfb for something that uses bufferlist [08:34] elliottcable: ahhahhah a linked list of Buffers? [08:34] SubStack: it's true [08:34] elliottcable: that readme is pretty sparse [08:34] elliottcable: wtf is rfb [08:34] elliottcable: wtfrfbbbqomg [08:34] SubStack: vnc protocol [08:34] elliottcable: ahhhh [08:35] SubStack: hideously stateful [08:35] elliottcable: DON’T STOP! [08:35] elliottcable: BELEIVIN’! [08:35] elliottcable: hooold on to that feeelin’ [08:35] eyzn: actually i thought the comipler takes care of such performance-optimazitions anyway (at least when it comes to the for-loop) [08:35] elliottcable: eyzn 3» not the one I pointed out; it can’t, because that requires your list to be iterated in reverse. Only *you* can make the choice that that is appropriate. [08:36] eyzn: well im revamping my codebase right now :) [08:39] jetienne: SubStack: you are doing something close to vnc ? [08:40] SubStack: something close? [08:40] jetienne: http://github.com/kanaka/noVNC [08:40] jetienne: SubStack: yep, something related to cnc [08:40] jetienne: vnc [08:40] elliottcable: god damnit! [08:40] elliottcable: so close! [08:40] SubStack: yes I've seen it [08:40] jetienne: arg :) [08:41] elliottcable: ACTION gets up and punches a wall [08:41] elliottcable: I thought … I thought I’d done it [08:41] elliottcable: but NOOOOOOO “TypeError: object is not a function” [08:41] elliottcable: thanks a lot, V8, REAL HELPFUL [08:43] SubStack: jetienne: architecturally incompatible unfortunately [08:43] jetienne: SubStack: ok [08:46] jetienne: oh you are behind stackvm [08:48] SubStack: ^_^ [08:50] statim1 has left the channel [08:50] _announcer: Twitter: ""Node.js" server-side java script is different from the level itself." [ko] -- park young chul. http://twitter.com/semanticapp/status/19408350842 [08:52] aliem has joined the channel [08:56] chakrit has joined the channel [09:00] tpryme: SubStack: stackvm looks cool. is the entire stack in node? [09:01] MattJ has joined the channel [09:01] mscdex: woot! [09:01] mscdex: it's allliiiiveee [09:01] satori_ has joined the channel [09:04] mscdex: i now have an autonomous node builder that builds 32 and 64-bit .debs of the latest stable and head versions as they become available [09:04] mscdex: :-D [09:04] holydevil_ has joined the channel [09:05] satori_: nice [09:06] mscdex: right now i have it it checking every 5 minutes for new commits/tags [09:06] mscdex: s/it// [09:06] SubStack: tpryme: yep [09:06] SubStack: for now anyways [09:09] tpryme: mscdex: You should try asking someone with admin access to node on github to set up a webhook to your service [09:10] mscdex: tpryme: i thought about that, but i didn't think they would just be giving out webhooks to anyone [09:10] mscdex: i dunno [09:10] tpryme: mscdex: This is useful enough, I don't see why not. [09:10] tpryme: mscdex: And all that info in webhooks is public anyways, right? [09:11] mscdex: the format is yeah [09:11] mscdex: for post-receive anyway [09:12] mscdex: it might be better this way anyway since i don't have to have a port open in the router... [09:12] mscdex: ACTION shrugs [09:15] satori_: you can open the port automatically [09:15] satori_: with node [09:15] chakrit has left the channel [09:15] satori_: I do it occassionally [09:15] mscdex: how is that? [09:16] satori_: upnp port forward [09:16] satori_: -ing [09:16] mscdex: oh [09:16] satori_: Pretty easy with dgram module [09:16] aliem_ has joined the channel [09:16] elliottcable: what is useful enough? [09:16] elliottcable: what’d I miss? [09:17] satori_: I just wrote it to avoind forwarding ports all the time when testing servers on my home network [09:17] elliottcable: if it’s useful enough to deserve a GitHub.com/ry/node webhook, I wanna know :D [09:17] elliottcable: wait, UPnP actually works? :O [09:17] satori_: sure [09:17] satori_: simple [09:17] elliottcable: I’ve never had something that advertised to automatically open ports for itself, you know, actually… *work* [09:17] elliottcable: ever, not once in my life. [09:17] elliottcable: across multiple routers, OSes, programs… argh. [09:18] satori_: really? [09:18] satori_: shit just works for me [09:18] elliottcable: must be the single most fragile technology Known To Man™! [09:18] elliottcable: ACTION strangles you in jealousy [09:18] satori_: heh [09:18] elliottcable: so yeah JavaScript hates me. #fact [09:18] satori_: torrent programs often use it too [09:18] elliottcable: I’ve spent half a day trying to “subclass” `Function [09:19] elliottcable: that is, to be specific, trying to make a function `Foo`, such that when `Foo` is called via the constructor invocation pattern (`new Foo()`), it returns a new `Function` object that can be *called*, but that inherits prototypally from `Foo.prototype` [09:20] elliottcable: I’ve written some of the most convoluted code in my life in various attempts, and none of it has worked right |= [09:21] satori_: ACTION is working out how to calculate tangents and binormals for fancy pure javascript webgl shaders in chrome dev channel. [09:21] satori_: my matrix math is rusty. very rusty. [09:21] elliottcable: WebGL! [09:22] satori_: well, they're nor *pure* javascript, but the shader code is inline [09:23] elliottcable: does anybody know specifics about now `new Function()` works? [09:23] satori_: This is the teapot model def in js; https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/demos/google/shiny-teapot/teapot-streams.js [09:24] elliottcable: I discovered by accident that it can take a string for the body of the newly created function [09:24] elliottcable: buuuuuut that string’s content seems to be subject to no scoping rules whatsoever: *nothing* is available inside it [09:24] elliottcable: satori_ 3» why, oh why, would you serialize that inline? :O [09:25] elliottcable: satori_ 3» read it in from a text file for gods’ sakes :x [09:25] satori_: mah, its just a demo. that's google code [09:25] elliottcable: lol Google [09:27] satori_: This webgl stuff is far more mature than i expected. At least on chrome/chromium. I'm going to try FF4 next [09:28] mscdex: ok i'm experiencing something odd when calling process.setgid... [09:28] mscdex: i get this when calling process.setgid('nobody'): Error: , Success [09:28] mscdex: and then a stack trace follows [09:28] mscdex: :S [09:29] elliottcable: “Error: , Success” [09:29] elliottcable: Best. Error. Message. Ever. [09:32] mscdex: time to silently trap it ;-) [09:39] pydroid has joined the channel [09:45] pydroid has joined the channel [09:54] jetienne has joined the channel [10:11] holydevil_ has joined the channel [10:13] holydevil_ has joined the channel [10:16] holydevil has joined the channel [10:48] elliottcable: garghghargh. [10:48] tisba has joined the channel [10:50] mscdex: gibberish! [10:57] markwubben has joined the channel [11:00] satori_ has joined the channel [11:04] shockie has joined the channel [11:06] keeto has joined the channel [11:07] phiggins has joined the channel [11:12] keeto has joined the channel [11:17] b_erb has joined the channel [11:22] Blackguard has joined the channel [11:22] markwubben has joined the channel [11:24] p6 has joined the channel [11:26] tisba has left the channel [11:35] collypops has joined the channel [11:45] micheil: anyone know much about virtual streams? [11:45] micheil: like something similar to ReadStream / WriteStream and workable with sys.pump? [11:48] confoocious has joined the channel [11:56] micheil: ryah: with that os module, should I hold off work on that until eventsource is merged? [11:56] aliem has joined the channel [12:04] _announcer: Twitter: "Node.js and How JavaScript is Changing Server Programming http://dlvr.it/2zGQz" -- solydzajs. http://twitter.com/solydzajs/status/19416295448 [12:05] muhqu has joined the channel [12:13] devongovett has joined the channel [12:14] mitkok has joined the channel [12:16] maushu has joined the channel [12:19] mau has joined the channel [12:21] hellp has joined the channel [12:21] aliem has joined the channel [12:28] confoocious has joined the channel [12:32] kriszyp has joined the channel [12:32] mape: html5 parsing and css selectors, the neat things you can do [12:33] micheil: very. [12:34] aheckmann has joined the channel [12:36] mape: just need that parser working, so I can wrap it all up into a small module so I don't have to copypaste everything [12:41] _announcer: Twitter: "We should French developers proposing an alternative to france.fr? who is leaving? # # Rails node.js MongoDB # # repeat" [fr] -- Olivier BONNAURE. http://twitter.com/olivierb/status/19418082925 [12:46] feroz_ has joined the channel [12:54] jherdman has joined the channel [13:03] bradleymeck1 has joined the channel [13:06] _announcer: Twitter: "Still feeling like crap. The question is can I make it to NYC to hang out with @danpozmanter and go to the node.js meetup." -- Marco Rogers. http://twitter.com/polotek/status/19419390984 [13:11] SubStack has joined the channel [13:12] donspaulding has joined the channel [13:16] Aikar has joined the channel [13:21] eely has joined the channel [13:21] clintstel has left the channel [13:22] clintstel has joined the channel [13:24] Tim_Smart has joined the channel [13:26] feroz_ has joined the channel [13:32] shockie has joined the channel [13:33] damienkatz has joined the channel [13:33] damienkatz has joined the channel [13:42] eely: Anyone aware of an Orbited (a way to bridge TCP streams to a web client via comet) equivalent for Node.js? [13:43] MattJ: Ha, that's new to me [13:44] MattJ: I implemented something similar, but not using Node [13:48] bradleymeck1: eely like a websocket? [13:49] eely: bradleymeck1, yes, but actually supported :) [13:50] bradleymeck1: websockets work fine they even have a flash impl that bridges into JS [13:50] phiggins: i've not heard of any bayeux protocol support in node [13:50] bradleymeck1: faye was i thought? [13:51] phiggins: http://blog.jcoglan.com/2010/02/02/faye-a-comet-client-and-server-for-node-js-and-rack/ seems it [13:59] steadicat has joined the channel [14:02] SvenDowideit has joined the channel [14:02] zapnap has joined the channel [14:07] devongovett has joined the channel [14:08] lelosh has joined the channel [14:09] micheil: eely: websockets are to be supported in Firefox 4, currently in Safari 5, Chrome/Chromium 4+ and Opera is said to have an internal build with them [14:10] clintstel has joined the channel [14:12] bradleymeck1: http://github.com/gimite/web-socket-js [14:12] kevm has joined the channel [14:20] micheil: eww.. [14:21] micheil: flash. [14:21] micheil: :P [14:21] micheil: it's a pity that's not yet at draft76+ [14:21] bradleymeck1: it works, therefore i love it [14:21] bradleymeck1: true [14:21] bmizerany has joined the channel [14:21] bradleymeck1: but thats just a lil tweek [14:22] micheil: uhh.. not really. [14:23] micheil: means needing md5 sums, and different header parsing [14:23] clintstel has joined the channel [14:27] bradleymeck1: having the streams and js bridge working i think is much harder than that [14:31] bradleymeck1: ACTION goes to look if he can compile it w/ a free as compiler w/ draft 76 [14:34] _announcer: Twitter: "Subscribe @RonaldWidha - @TemanMacet (default) - http://itunes.apple.com/us/podcast/teman-macet-default/id319237974 #iTunes Ep.51 nodeJS" -- dh3 ardianto. http://twitter.com/ardh3anto/status/19424541100 [14:37] SteveDekorte has joined the channel [14:39] devongovett has joined the channel [14:41] kuya: i would love someone to explain to me how to use flash or whatever to get websockets working with ff < 4.0 [14:42] SubStack has joined the channel [14:46] joemccann_ has joined the channel [14:47] joemccann_: oi! [14:47] steadicat has joined the channel [14:47] joemccann_: ez question: how does one server up a static html file in the latest version of Express? [14:49] sechrist_ has joined the channel [14:52] joemccann_: nm, it appears Express supports html as a 'rendering engine' by default: [14:52] joemccann_: app.get('/', function(req, res){ res.render('index.html'); }); [14:56] tmedema has joined the channel [15:01] SubStack has joined the channel [15:02] jblanche has joined the channel [15:02] _announcer: Twitter: "@nicklewislive u fawks with node.js yet?" -- jalbertbowdenii. http://twitter.com/jalbertbowdenii/status/19426443921 [15:07] holydevil has joined the channel [15:10] dgathright has joined the channel [15:10] kevm_ has joined the channel [15:11] kevm_ has left the channel [15:12] BBB has joined the channel [15:13] kevm_ has joined the channel [15:20] _announcer: Twitter: "@gjohnson391 So you're moving on to Ruby & Nodejs? Good luck! BTW if I ever catch you tweeting "CF is dead" I am going to BITCHSLAP you!!!" -- Dennis Clark. http://twitter.com/boomerangfish/status/19427651517 [15:28] softdrink1 has joined the channel [15:30] _announcer: Twitter: "@jalbertbowdenii dude you know JS... u can teach me more about Node. I just like that everythiing has a callbck" -- Nick Lewis. http://twitter.com/nicklewislive/status/19428261611 [15:33] victorstan has joined the channel [15:33] bmizerany has joined the channel [15:34] PyroPeter: what happened with repl.start().scope? [15:34] markwubben_ has joined the channel [15:37] PyroPeter: my node 0.1.101 has no such attribute [15:40] lelosh has left the channel [15:42] rwaldron has joined the channel [15:45] mikeal has joined the channel [15:46] mikeal: does test-c-ares hang for anyone else? [15:46] PyroPeter: ah, s/scope/context/ this should be fixed in the api-docs [15:46] PyroPeter: patch is here: http://groups.google.com/group/nodejs/browse_thread/thread/e6f62caa5c97d305 [15:47] feroz_ has joined the channel [15:48] mikeal: is there a way to exclude a test from make test? [15:48] stepheneb has joined the channel [15:50] _announcer: Twitter: "finally getting around to trying out node.js :)" -- paulcrawford. http://twitter.com/paulcrawford/status/19429587957 [15:52] kriszyp has joined the channel [15:55] aliem has joined the channel [15:56] rwaldron: still quite new to node.js but totally obsessed... from the node> command, is there a global object that can be inspected? [15:58] rwaldron: similar to window, so i could inspect with something like for (var prop in window) { console.log(prop +': '+ typeof window[prop] + 'etc...') } [15:58] rwaldron: ? [16:15] steadicat has joined the channel [16:15] rwaldron has joined the channel [16:26] pgriess has joined the channel [16:29] bradleymeck1 has joined the channel [16:30] tmpvar: mscdex, aha, so that is what you were doing ;) [16:30] mscdex: :-> [16:38] _announcer: Twitter: "Ooh, I'm always discovering new, useful pages in the Node.js wiki: ECMAScript 5 Features Implemented in V8 - node http://dshaw.me/9nq3RP" -- Daniel Shaw. http://twitter.com/dshaw/status/19432694703 [16:39] damienkatz has joined the channel [16:39] siculars has joined the channel [16:43] gleicon has joined the channel [16:43] gleicon: heya [16:43] mscdex: yo [16:43] gm__: any pointers to a tcp proxy ? [16:44] gm__: I've been hacking the http proxy but no success using net.stream and net to reate a proxy for tcp [16:44] gm__: basically I am working on a websocket proxy for my project: http://github.com/gleicon/restmq [16:44] gm__: I dont want to expose the whole broker to internet, just a proxy to the websocket endpoint [16:45] gm__: doing it in node.js would be nice and make it smaller than twisted [16:49] jxson has joined the channel [16:49] mscdex: gm__: i've never tried it, but i know several people have wrote such things. have you searched through the mailing list? [16:50] hdon has joined the channel [16:57] pgriess has joined the channel [17:01] JimBastard has joined the channel [17:01] JimBastard: http://i.imgur.com/YLwoq.gif [17:01] JimBastard: gooooooooooood moooooooooooorning noooooooooooode [17:02] gm__: mscdex: yeah, I've searched it but I found most http proxies [17:03] gm__: now I'm searching again for net client examples [17:03] gm__: is there anything like print repr(stuff) for node.js ? [17:03] gm__: to check methods and data [17:04] SubStack: sys.puts(sys.inspect(stuff)) [17:05] gm__: thanks [17:05] gm__: will try to use it to search thru socket [17:06] SubStack: oh I guess the new thing is to use console.log instead of sys.puts [17:07] SubStack: ACTION should start doing that [17:07] gm__: hm [17:08] gm__: all net tcp examples are more or less echo server [17:10] _announcer: Twitter: "@pgriess you had me at NodeJS" -- Jonathan Bruck. http://twitter.com/jbruck/status/19434708462 [17:11] pgriess: hah [17:16] gm__: any idiomatic way to manage clients for a proxy other than good ole hash with origin+port as key and client instance ? [17:16] gm__: I will need to create a new client for each incoming connection [17:16] gm__: as there are two tdifferent events, I cant see how to create it and keep thru each "data" event call [17:20] sh1mmer has joined the channel [17:20] jansc has joined the channel [17:28] steadicat has joined the channel [17:36] _announcer: Twitter: "Moving JS To Server Side With Comet & Node.js NodeJS http://bit.ly/crHkO7" -- Freelance Help. http://twitter.com/FreelanceHelper/status/19436208608 [17:42] gm__: does node.js suffer from encoding sickness as python ? [17:42] gm__: http://gist.github.com/488845 [17:43] gm__: proxy seems to be working, but then I point it to my local web server and try curl from the other side, everything breaks [17:43] gm__: just after some weird chars appear along with a broken pipe exception [17:43] gm__: EPIPE [17:47] SubStack: use sys.pump() [17:49] SubStack: also you can just leave everything as buffers, no need to setEncoding() if you don't use the strings for anything [17:49] stepheneb has joined the channel [17:53] _announcer: Twitter: "simple tcp proxy using node.js: http://gist.github.com/488845 #FIST #DOJO4ADULTS" -- gleicon. http://twitter.com/gleicon/status/19437170665 [17:54] _announcer: Twitter: "#ajax Part Time job Moving JS to Server Side with Comet & node.js NodeJS by clintstel: Looking for experienced... http://bit.ly/b8Uicl #php" -- Steve your freelacer. http://twitter.com/beafreelancer/status/19437221313 [17:54] gm__: SubStack: its a proxy forwebsocket server [17:54] gm__: qhere do I use sys.pump() just before opening the client conn ? [17:55] SubStack: looks like that'd work [17:55] V1_ has joined the channel [17:55] gm__: didnt uderstood sys.pump... is it like a pipe ? [17:56] gm__: instead of the crossed "data" events I did, I just do a sys.pump(socket, client) ? [17:57] dshaw has joined the channel [17:57] SubStack: yeah [17:57] gm__: also, data might be bidirectional...most of the times I can tell which is one is readlable/writable [17:57] gm__: lemme give it a try [17:58] gm__: oh, experimental [17:58] gm__: TypeError: Object # has no method 'pump' [17:58] gm__: homebrew's node.js might be a little older [17:58] gm__: 0.1.98 [17:59] JimBastard_ has joined the channel [17:59] JimBastard_: http://i.imgur.com/ziruu.png [17:59] JimBastard_: lulz [17:59] mjijackson has joined the channel [18:00] gm__: installing from git [18:05] _announcer: Twitter: "Tomorrow I'll be mainly exploring #nodejs if you have any good links or recourse please send them this way" -- ColinGemmell. http://twitter.com/colin_gemmell/status/19437855305 [18:06] dnolen_ has joined the channel [18:11] gm__: man [18:11] gm__: sys.pump is beautiful :D [18:14] n3v3le has left the channel [18:15] hoodow has joined the channel [18:16] bpot has joined the channel [18:17] _announcer: Twitter: "GAF AJAX: Moving to Server Side JS with Comet & node.js NodeJS by clint set http://bit.ly/b5ZUg3" [nl] -- Jobs 4 FreeLancers. http://twitter.com/freelancer_jobs/status/19438485540 [18:17] devongovett has joined the channel [18:20] hoodow has joined the channel [18:21] _announcer: Twitter: "Moving JS to Server Side with Comet &amp; node.js NodeJS http://bit.ly/bxocaw -Top #Freelance #projects" -- Freelance-Jobs-Now. http://twitter.com/allfreelance/status/19438724387 [18:25] mostlygeek has joined the channel [18:27] shockie has joined the channel [18:28] shockie: people here skilled with express.js? [18:29] mape: tj is pretty ok [18:29] maqr: heh [18:29] femto has joined the channel [18:30] shockie: trying to get post parameters from a request but express can't find them [18:30] mape: .post() ? [18:30] shockie: and i've set app.use(connect.decodeBody()) [18:30] _announcer: Twitter: "Moving JS to Server Side with Comet &amp; node.js NodeJS by clintstel - http://subdomainz.com/276t" -- Ajax Jobs. http://twitter.com/ajax_jobs/status/19439187693 [18:30] maqr: shockie: that i can help with [18:30] feroz_: bon, je suppose qu'on l'aura la semaine prochiane [18:31] maqr: shockie: they should end up in req.body [18:31] mape: !translate bon, je suppose qu'on l'aura la semaine prochiane [18:31] _frankie: I guess we will have the week prochiane [18:31] shockie: yeah, figured that out, but req.body is undefined [18:31] maqr: shockie: console.log( sys.inspect(req) ) to see what's going on [18:31] kjeldahl has joined the channel [18:31] maqr: shockie: weird, i thought he fixed that bug... in that case, put the connect.decodeBody() in the constructor instead of using app.use [18:31] _announcer: Twitter: "job: Moving JS to Server Side with Comet & node.js NodeJS by clintstel http://cli.gs/qjWZ3" -- Israel Jobs. http://twitter.com/myjobisrael/status/19439245737 [18:31] maqr: shockie: are you on express master? [18:32] mape: !translate en:fr feroz_ I guess you do. But the week ends soon. [18:32] _frankie: feroz_ I guess you do. But the week ends soon. [18:32] mape: >_< [18:32] feroz_: sorry, wrong chan :p [18:33] shockie: uhm i thought so, moment i try to clone it from github and install [18:33] maqr: shockie: well, either way, if you just put all the use() stuff in the constructor instead, it fixes that bug... but i thought tj fixed it already [18:34] shockie: i'm using the skeleton from express which sets the configuration out of the server constructor:) [18:35] maqr: shockie: yeah, i know, i hit the same problem, and it was a routing bug, and the workaround was to put it in the constructor instead [18:35] maqr: shockie: it took me a few hours to figure out wtf i was doing wrong, and it turned out to be a bug :/ [18:36] shockie: lol, that must have been an pain to debug [18:38] maqr: shockie: yeah, after i figured it out, i said screw it and switched to just connect without express [18:38] maqr: but express is still a good idea, i just haven't switched back yet [18:39] _announcer: Twitter: "node.js meetup tonight in NYC http://www.mikealrogers.com/2010/07/nyc-node-js-meetup-this-saturday-july-24th/" -- Mikeal. http://twitter.com/mikeal/status/19439630866 [18:41] shockie: i'm using the master and still get the errors, ok i'll put the configuration on the constructor [18:42] maqr: shockie: if that fixes it, maybe open an issue on github [18:43] adrienf has joined the channel [18:44] hoodow has joined the channel [18:45] mape: 3h to meetup [18:45] maqr: mape: how many people do you get at that kind of thing? [18:46] mape: No idea, I'm in Sweden, but from what I've gathered around 5-15 [18:46] maqr: ah [18:46] maqr: i'll have to make it into the city sometime for one [18:47] mape: If you are close to NY you still have 3h and 12min [18:47] softdrink has joined the channel [18:47] maqr: yeah, i'm like 2 hours away, but it's harder than it sounds to get there [18:48] maqr: maybe next time [18:48] JimBastard_: can anyone remind me the best way to adjust the http.client timeout? [18:49] JimBastard_: is that in the docs? checking... [18:51] holydevil has joined the channel [18:53] JimBastard_: maqr: im gonna walk :-) [18:53] maqr: :) [18:55] rauchg_ has joined the channel [19:04] cij_ has joined the channel [19:05] creationix has joined the channel [19:11] mindeavor has joined the channel [19:12] sh1mmer: apparently the perl people on HN were not impressed with my total lack of caring for their emo [19:12] mischief has joined the channel [19:13] mape: sh1mmer: if they did they won't need emo? [19:13] sh1mmer: heh [19:13] sh1mmer: I criticized perl and now I'm getting down-modded [19:13] JimBastard_: sh1mmer: im very close to launching an anti-social bookmarking site to compete with HN and proggit [19:14] JimBastard_: and very close, i mean close to starting lol [19:14] skampler: anti-social bookmarking site++ [19:14] JimBastard_: >.< i bought the domain and wrote the specs [19:14] sh1mmer: JimBastard_: I don't care. I like HN [19:14] JimBastard_: :p [19:14] sh1mmer: but like everywhere else it has factions [19:14] sh1mmer: JavaScript has tons of problems [19:14] sh1mmer: but it also promises lots of good things too [19:15] sh1mmer: some of those aren't based on the merits of the language but on the pragmatic position in the world it is in [19:16] dshaw has joined the channel [19:16] JimBastard_: javascript is kinda a joke, except now its epic funny [19:16] JimBastard_: we use to shit on it soo hard back in the day [19:16] sudoer has joined the channel [19:16] JimBastard_: but now everything uses it and lots of people know it [19:17] JimBastard_: so thats pretty much it [19:17] hoodow has joined the channel [19:19] skampler: did you see the post about a simple app in clojure? [19:19] sh1mmer: one of the topics I'm really interested in is how do you make a programming langauge/platform conducive to best practices? [19:20] JimBastard: sh1mmer: like by using coffeescript? [19:20] JimBastard: (in the example of JS?) [19:20] sh1mmer: not necessarily [19:21] sh1mmer: I think actual language design is one aspect [19:21] jesusabdullah: That's an interesting question [19:21] sh1mmer: but that removes some design goals [19:21] sh1mmer: because I want to code the same javascript on client/server [19:21] sh1mmer: so at least some of this problem will rest on frameworks [19:21] sh1mmer: and I think that's true in most languages [19:22] sh1mmer: the reason I strongly dislike perl is because it's liberality of expression encourages people to express the same thing differently. [19:23] WALoeIII has joined the channel [19:23] JimBastard_: sh1mmer ive got a bit of a side project about making a dual-sided framework [19:23] JimBastard_: for js [19:24] maqr: i hope the browser becomes the operating system [19:24] mscdex: chrome os! [19:24] JimBastard_: http://github.com/marak/gemini.js [19:24] maqr: yeah, google's really pushing it [19:24] softdrink has joined the channel [19:24] JimBastard_: ^^^ unreleased [19:24] maqr: i'm playing with their closure library right now, and it's obvious that this is where they're heading [19:24] jesusabdullah: The thing I dislike about perl is the tendency for people to write unreadable one-liners. :( [19:24] mscdex: that ^ [19:24] jesusabdullah: BUT, I also have to admit that I haven't given perl an honest chance. [19:25] SubStack: maqr: and legacy apps can run in a web-accessible vm ^_^ [19:25] maqr: perl is really good if you work on the shell and need to do system things [19:25] maqr: SubStack: :) [19:25] JimBastard_: ive only really used perl for this massive scraping engine we built [19:25] JimBastard_: it was kinda painful [19:25] maqr: SubStack: i totally upvoted you on HN :P [19:26] JimBastard_: lots of regex too [19:26] jesusabdullah: SubStack: New hn post? [19:26] SubStack: jesusabdullah: not for at least 1.5 weeks [19:26] maqr: the one from a few days ago [19:26] maqr: well, maybe a week [19:26] maqr: heh [19:26] jesusabdullah: SubStack: oh >_< [19:26] jesusabdullah: Keep up the good work! [19:27] SubStack: oh but pkrumins might do a tech-heavy one [19:27] jesusabdullah: sweet [19:27] sh1mmer: jesusabdullah: oneliners and other crazy stuff is the reason not to use perl [19:27] SubStack: ACTION should really get around to blogging about his crazy haskell powered underwater submersible [19:27] sh1mmer: I'd much rather have a 6 line legible script than a voodoo 1 liner [19:27] pkrumins: ACTION tunes in [19:27] JimBastard_: lol wut SubStack [19:27] maqr: SubStack: .../ [19:27] sh1mmer: I used to write Perl I couldn't read a week later [19:27] JimBastard_: ahahaha [19:27] pkrumins: ah, the dnode post? [19:28] pkrumins: yes, i am doing one next week on all the coolness. [19:28] sh1mmer: SubStack: are you writing code for drugs smugglers? [19:28] SubStack: sh1mmer: I wish. [19:29] JimBastard_: human smugglers ? [19:29] SubStack: the submersible was for a contest in hawaii [19:29] SubStack: my team's crazy cheap hackneyed thing did pretty well [19:29] JimBastard_: if i was in a submarine, i would want it to be powered by haskell [19:29] jesusabdullah: But alas, it's probably powered by ada [19:29] mscdex: nowai [19:29] mscdex: vb! [19:30] jesusabdullah: pffsht [19:30] JimBastard_: ms access database [19:30] mscdex: qbasiccccccc [19:30] jesusabdullah: Those DoD guys get pretty uppity when it comes to security and shit [19:30] JimBastard_: with vb gui [19:30] jesusabdullah: that can find ip addresses [19:30] pgriess has joined the channel [19:30] JimBastard_: 127.0.0.1, lets send the guided missle there [19:30] sh1mmer: hey pgriess welcome to the conversatino about haskall submarines [19:30] mscdex: http://www.youtube.com/watch?v=hkDD03yeLnU [19:31] JimBastard_: lol [19:31] SubStack: thank gods galois gets so many DoD contracts [19:31] feroz_: Hey, are there any examples of node.js being used for something else than HTTP ? [19:31] jesusabdullah: galois? [19:31] sh1mmer: feroz_: lots [19:31] SubStack: jesusabdullah: big haskell company [19:31] jesusabdullah: SubStack: Ah! [19:31] sh1mmer: feroz_: what did you have in mind? [19:32] jesusabdullah: Yeah, I understand haskell's right up there with ada for mission-critical stuff [19:32] SubStack: haskell isn't even strict enough for all of their needs so they use agda too I think [19:32] feroz_: sh1mmer: nothing special, im just discovering node.js, but all the examples i find is for http server [19:32] sh1mmer: feroz_: that's the common use case [19:32] sh1mmer: but there is a pcap module [19:32] sh1mmer: and I'm working on a dns server [19:32] sh1mmer: there is already a dns client in core [19:32] jesusabdullah: feroz_: maybe http://github.com/gf3/Jerk ? IRC bot framework I'm using [19:32] maqr: feroz_: if there aren't bindings for your favorite library yet, there might be in the future, or you could write them [19:32] sh1mmer: and you get raw access to TCP and UDP from Net [19:32] feroz_: xmpp ? [19:33] jesusabdullah: Yeah, there's xmpp bindings [19:33] mscdex: feroz_: take a look at some of the modules available for node, that might get you some idea: http://wiki.github.com/ry/node/modules [19:33] feroz_: i look up for that then, thanks [19:33] jesusabdullah: feroz_: That page is pretty awesome^^ [19:33] pgriess: sh1mmer: hey, submarines and functional programming go together like peanutbutter and mayonaise [19:34] mscdex: udp is a different module [19:34] mscdex: "dgram" [19:34] SubStack: I wish javascript had type inference :( [19:34] sh1mmer: mscdex: dgram is a wrapper [19:35] sh1mmer: but a damn useful one [19:35] sh1mmer: :) [19:35] mscdex: ah [19:35] SubStack: perhaps I'll write one sometime [19:35] mscdex: they ought to have it in the net module or something [19:35] maqr: i think i'd actually have a use for a udp module in the near future [19:35] mscdex: net.dgram maybe [19:36] sh1mmer: mscdex: the api is experimental [19:36] khug has joined the channel [19:36] khug has left the channel [19:37] sh1mmer: SubStack: what do you mean about wanting type inference? [19:38] sh1mmer: ACTION not a Haskell expert [19:38] SubStack: for instance you could say that x :: Integral a => a [19:38] _announcer: Twitter: "going to throw some laundry in and hack together a nodejs site using my new paypal payflow pro package" -- jamescarr. http://twitter.com/jamescarr/status/19442576762 [19:38] SubStack: then x must be a kind of integer-type thing [19:38] SubStack: like an Int or a Word8 or some such [19:39] _announcer: Twitter: "@tmpvar http://www.mikealrogers.com/2010/07/nyc-node-js-meetup-this-saturday-july-24th/" -- AJ Tarachanowicz. http://twitter.com/ajt2/status/19442598204 [19:39] SubStack: the type inference engine figures out which concrete type x should be [19:39] sh1mmer: SubStack: oh I've seen a few ways people do that, I think there is even some library support for it [19:39] SubStack: and if x is ever used with some incompatible type, a type error occurs [19:40] sh1mmer: I guess in a dynamically typed language it matters less. [19:40] sh1mmer: but I've seen some somewhat automated type checking stuff [19:40] SubStack: the perl6 way is a good model for javascript [19:40] SubStack: has $x isa Num or however the syntax goes [19:42] sh1mmer: mostly I see people doing that by iterating over the arguments list and then throwing exceptions [19:42] sh1mmer: which seems like a somewhat reasonable approach [19:43] creationix_ has joined the channel [19:44] jesusabdullah: That'd be an intersting library--one which somehow adds unobtrusive type inferrence [19:45] jesusabdullah: Probably a fairly intense project though [19:45] sh1mmer: it'd be pretty easy to make a library that added 1 line type checking [19:46] tmedema: sh1mmer: try haXe, I just it with node, works great [19:46] SubStack: I think the best way to go about that stuff would be an external program that makes sure all the types agree in a source file [19:47] sh1mmer: tmedema: not really interested in programming anything but JS at this point. Same as with coffeescript I want stuff that works in JS [19:47] ewdafa has joined the channel [19:47] sh1mmer: SubStack: so a JSLint approach? [19:47] fermion has joined the channel [19:48] SubStack: could work [19:49] Eber has joined the channel [19:49] aho has joined the channel [19:49] rauchg_ has joined the channel [19:49] sh1mmer: actually node-repl would make that approach interesting [19:49] Eber: has anyone here ever used node.js on a virtual machine with vmware and accessing it via netwaork on windows? [19:50] sh1mmer: because you could monitor the life of a variable interactively in the environment [19:50] sh1mmer: I guess that's harder though [19:50] sh1mmer: Eber: node now works with cygwin [19:51] Eber: sh1mmer: which version? [19:51] sh1mmer: dunno [19:51] Eber: sh1mmer: i tried to compile it there, but didn't succeeded... [19:51] sh1mmer: but node .100+ should run [19:51] Eber: I'll try again I guess... [19:51] sh1mmer: Eber: can you gist your logs [19:52] Eber: sh1mmer: I had problems with python... [19:52] Eber: I've installed it on windows, but somehow, I guess it's not on the path... [19:52] Eber: maybe that is... [19:52] mscdex: is it windows python or cygwin python? [19:53] Eber: widnows python... [19:53] Eber: it has to be cygwin's? [19:53] mscdex: i dunno, maybe. i've never tried running node on cygwin [19:53] Eber: cygwin is a pain :( [19:54] mscdex: it's nothing like the real thing ;-) [19:54] jesusabdullah: I've ran node on a remote computer and accessed it through ssh [19:54] sh1mmer: Eber: you can get a rackspace unix machine for $10/mo [19:54] jesusabdullah: almost the same right? :v [19:54] mscdex: i have virtualbox VMs that run linux and have node installed on them [19:54] sh1mmer: s/unix/linux/ [19:54] mscdex: in addition to a physical server [19:54] sh1mmer: ACTION just uses Slicehost [19:55] Eber: sh1mmer: I have a VM somewhere... maybe I'll try to use it! [19:55] Eber: I have 2 slicehost VPSs... but I can't use them for testing... [19:55] Eber: I wish I could just develop everything on local... [19:56] Eber: mscdex: and how do you access it? [19:56] Eber: mscdex: do you have to mess with samba or something? [19:56] sh1mmer: Eber: if you gist your configure/make logs we can try and suggest some stuff [19:56] sh1mmer: mscdex: is probably right having a cygwin python could be it [19:57] sh1mmer: but it's hard to say without seeing logs [19:57] Eber: sh1mmer: I'll try to compile it again, and them I paste it! [19:57] mscdex: Eber: nope. i usually just set it up to use NAT and connect through ssh for transferring files... but you can also easily set up the VM's network card to obtain an IP on the physical LAN also [19:57] maqr: i'm in vmware right now, and it's fine :) [19:57] maqr: virtualbox also works [19:58] Matsimitsu has joined the channel [19:58] Eber: maqr: the thing is that I've installed node on a server edition of ubuntu... [19:58] sh1mmer: sweet. [19:58] maqr: Eber: i'm using the desktop version of ubuntu in vmware, but it's the same thing [19:58] Eber: I need to access it from my real OS... [19:58] sh1mmer: I just learned about .break in node-repl [19:59] sh1mmer: I totally needed that in my talk on Thursday [19:59] Eber: maqr: but you access it from the VM itself, right? [19:59] maqr: Eber: i actually putty into it with ssh [19:59] _announcer: Twitter: "Node.js is the New Black http://bit.ly/cFxrvt #html5" -- Daniel Chow. http://twitter.com/danielchow77/status/19443559826 [19:59] maqr: Eber: but i also irc with irssi, edit with vim, and rely on the shell for a lot [19:59] davidwalsh has joined the channel [19:59] jakehow has joined the channel [19:59] Eber: maqr: uhmm, I see! I can try putty! [19:59] Eber: Thanks for the help guys :) [19:59] maqr: Eber: you easily could use gnome though, if you require a graphic interface [20:00] maqr: Eber: there's also ways to mount the drive as a 'folder' or whatever, but ssh + screen is way more workable for me [20:00] Eber: maqr: I don't have a lot of resources right now on my local machine... [20:00] programble has joined the channel [20:01] maqr: if you're comfortable on the console, just go with ssh [20:01] Eber: nice, I'll thanks guys :) [20:01] Eber: Gotta go now! [20:01] Eber: Bye! [20:01] maqr: cya [20:01] sveimac has joined the channel [20:01] jesusabdullah: ssh is pretty awesome! :D [20:03] mape: sh1mmer: btw did the wargames thing work out for the talk? Or was the contrast an issue? [20:03] SvenDowideit has joined the channel [20:03] maqr: sweet, i now have the same templates working for client-side rendering and server-side rendering [20:03] sh1mmer: mape: it rocked the talk [20:03] sh1mmer: wargamez is a cool example of realtime stuff [20:03] mape: ah good, seems ryah had issues with it being to low contrast on a projector [20:03] jesusabdullah: Projectors are lame that way :( [20:04] sh1mmer: I think it depends [20:04] mape: need the good ones [20:04] sh1mmer: it was a somewhat dark room with a big 3000 lumens projector [20:04] mape: hehe k [20:04] sh1mmer: if you do a talk in an office they have crappy ass projectors [20:04] femtoo has joined the channel [20:05] jesusabdullah: *nod* [20:06] sh1mmer: javascript ints are 32-bit right? [20:06] mscdex: everything is double i thought? [20:07] sh1mmer: i think it automatically casts [20:07] sechrist has joined the channel [20:07] mscdex: eh i dunno then [20:07] sh1mmer: ACTION searches some more [20:07] mape: only one type, float [20:07] sh1mmer: hm [20:07] sh1mmer: oh ok [20:08] sh1mmer: I know where that's from [20:08] sh1mmer: if you do bitwise operations it casts into a 32 bit int [20:08] sh1mmer: so if you shift past 32 bits it gets chomped [20:08] mscdex: hmm [20:08] sh1mmer: sources, Flanigans and Crockford, who I asked about this subject. [20:09] mscdex: The Crockford Files! [20:09] sh1mmer: it's fucking crazy [20:09] sh1mmer: he just knows Ecma off the top of his dome [20:09] mscdex: now available on blu-ray [20:10] jesusabdullah: I think my dad has a blu-ray player now [20:10] jesusabdullah: I think? [20:10] jesusabdullah: *shrug* [20:12] V1_ has joined the channel [20:16] drudge has joined the channel [20:17] mjr_: Bit math in JavaScript is really crazy. [20:17] mjr_: Often it does what you want, and sometimes, mysterious other values. [20:19] mscdex: those mysterious values come from the bit bucket [20:21] satori_ has joined the channel [20:22] pnewhook has joined the channel [20:25] pnewhook_ has joined the channel [20:26] wattz: ahhh [20:26] wattz: afternoon guys [20:32] rgl has joined the channel [20:32] _announcer: Twitter: "just got node.js up and running on ubuntu 10.04 - a lot simpler than I thought it would be" -- Howard van Rooijen. http://twitter.com/HowardvRooijen/status/19445123577 [20:35] _announcer: Twitter: "New blog post: Payflow Pro API released for nodejs http://blog.james-carr.org/2010/07/24/payflow-pro-api-released-for-nodejs/" -- jamescarr. http://twitter.com/jamescarr/status/19445254301 [20:37] fizx has joined the channel [20:37] opello has left the channel [20:37] fizx has joined the channel [20:40] V1_ has left the channel [20:45] _announcer: Twitter: "Need a tasteful name for a chunk bucket. #nodejs" -- Daniel Shaw. http://twitter.com/dshaw/status/19445725490 [20:51] satori_: chunk bucket. heh. [20:53] micheil: hmm.. some stuff in node is so easy to be written badly. [20:53] dshaw: s/node/programming [20:53] mape: like? [20:53] bmizerany has joined the channel [20:55] SvenDowideit has joined the channel [21:07] _announcer: Twitter: "Wow, that jet is flying low. Oh, wait, that's my laptop compiling node.js. #thefanmeansitsworking" -- Grant Goodale. http://twitter.com/ggoodale/status/19446749206 [21:07] jesusabdullah: Best tag ever [21:07] jesusabdullah: Man maybe I should get me some twitters [21:07] jesusabdullah: though I think I'd hardly use it [21:10] victorstan has joined the channel [21:13] isaacs has joined the channel [21:13] blerp has joined the channel [21:17] _announcer: Twitter: "@ggoodale Oh yes, but once it's compiled you have SUPER low overhead per request. Node.js is far better for the environment than a jet." -- billwiens. http://twitter.com/billwiens/status/19447220811 [21:18] satori_: boom tish [21:18] bradleymeck1: mape, i can think of plenty of programming examples of how to make stuff fail [21:19] mape: bradleymeck1: sure, code is easy to break, but that is the same in perl as in c# as in ruby [21:20] satori_: I don't think node/javascript makes it intrinsically easier to write bad code than any other lang. It's just that peeps aren't used to async concepts mostly [21:23] blerp has joined the channel [21:26] jesusabdullah: I think javascript is loose enough that it's really easy to have your own "style," and sometimes some styles are better than others. [21:27] jesusabdullah: And, of course, there's always just organizing things poorly, but that has more to do with asynchronous concepts and general disorganization than the language itself [21:27] satori_: Yeah. I agree. I just see people 'not really getting' the async thing at first. [21:27] jesusabdullah: *nod* [21:27] satori_: doesn't take long to grok it though [21:27] jesusabdullah: mmhmm [21:28] ceej has joined the channel [21:30] victorstan has joined the channel [21:35] hellp has joined the channel [21:38] micheil: mape: oh, just some code I'm reading, I think the person implementing it, while they may be new to javascript, their doing things in a round-about way which ends up biting them later [21:38] mape: hmm k [21:39] micheil: like when implementing a protocol, they just guess it works, rather then go read the relevant documentation and rfc's / spec's [21:39] micheil: i should've really said: "why is it so easy to write bad code" [21:40] micheil: but anyway./ [21:43] damienkatz has joined the channel [21:45] creationix has joined the channel [21:47] adrienf has joined the channel [21:54] chrischris has joined the channel [21:57] bmizerany has joined the channel [21:58] bmizerany has joined the channel [22:04] sechrist has joined the channel [22:12] _announcer: Twitter: "I'm interested to do enter node knockout, anyone else want to team up? #node.js" -- jtoy. http://twitter.com/jtoy/status/19449794755 [22:14] RyanG has joined the channel [22:14] RyanG has joined the channel [22:15] sudoer: haha, nice [22:15] sudoer: I'm jtoy btw in case anyone wants to do the node knockout event, im also in SF [22:17] Ned_: isaacs: where does npm try to connect to?, I'm getting connection refused [22:18] Ned_: I don't seem to have any alternate URL configured either :-( [22:23] _announcer: Twitter: "Got XUI Dom Syntax working with JSDom on Nodejs. Hpricot like clone release imminent! #ssjs, #nodejs, #xui" -- Rob Ellis. http://twitter.com/rob_ellis/status/19450351286 [22:23] dnolen_ has joined the channel [22:25] damienkatz has joined the channel [22:32] bradleymeck1: sweet now to writeup how to use flash bridged websockets in a tutorial [22:35] omarkj has joined the channel [22:40] _announcer: Twitter: "@Soeno but I want to take a look at node.js for my current client - only prob is that there isn't a windows port - but it does look awesome" -- Howard van Rooijen. http://twitter.com/HowardvRooijen/status/19451152673 [22:41] micheil: bradleymeck1: what's this? [22:41] bradleymeck1: mmm? [22:41] micheil: "bradleymeck1: sweet now to writeup how to use flash bridged websockets in a tutorial" [22:41] bradleymeck1: http://github.com/gimite/web-socket-js <- working w/ node-websocket-server = love [22:42] micheil: oh, right [22:42] bradleymeck1: just requires a flash supported browser [22:42] mape: hmm http://groups.google.com/group/comp.lang.javascript/browse_thread/thread/ab729e7cd6ee78f6 [22:42] micheil: it should automatically? [22:42] mape: people don't like sencha [22:42] ivan: c.l.j = a very sad place [22:42] bradleymeck1: it does but ppl dont know how to set up the policy file nor which packages make it easier [22:43] mape: They should submit patches, unless the code needs a cla [22:43] _announcer: Twitter: "@ HowardvRooijen Here is how to run # nodejs in Windows (Cygwin): http://bit.ly/bGed0l" [af] -- Diogo Gomes. http://twitter.com/graphnode/status/19451284300 [22:43] maushu: af? Wtf. [22:43] micheil: mape: what was it that the guy behind Raphael said yesterday? "comp.lang.javascript seems to be the playground for this David Mark person that no-ones heard of" [22:43] micheil: bradleymeck1: feel free to write an extension :P [22:44] mape: he seems to point out a lot of things at least [22:45] mape: "For example, about a [22:45] mape: year back I had some snot-nose nastily asking me why I was" [22:45] mape: old bitter person it seems [22:45] softdrink: is anyone considering a libcinder module for node? [22:45] damienkatz has joined the channel [22:45] damienkatz has joined the channel [22:45] micheil: softdrink: what's libcinder? [22:46] softdrink: a nice opengl, input, sound, etc library [22:46] softdrink: libcinder.org [22:46] mape: heh, "Fine by me. Ext must D-I-E. :)" [22:47] satori_: I'm not sure that anyone's done bindings for gui stuff with node at all yet? Or have they? [22:47] micheil: mape: eh' I'm not looking to start wars. [22:48] micheil: satori_: there was one for libcurses [22:48] mape: micheil: huh? [22:48] clint` has joined the channel [22:48] softdrink: node + jscocoa would be neat, too [22:48] bradleymeck1: micheil i will try to make a bundle and have an autopolicy file server [22:48] micheil: mape: what I mean by that is everyone has their preferred way of writing code, in the case of sencha, it looks like they only want to target mobile browsers, which is something like 90% webkit [22:49] micheil: bradleymeck1: just require "node-websocket-server" [22:49] mape: micheil: Yeah? [22:49] mape: All I'm doing is quoting David Mark who seems like a bitter old dude [22:49] micheil: bradleymeck1: provide to methods: createServer and Server [22:49] bradleymeck1: i need to tell on what ports the wss is listening though? [22:50] micheil: mape: but yeah, I don't really see the warrants for what he's saying [22:50] maushu: Woah, cinder is brilliant. [22:50] micheil: bradleymeck1: one sec, example coming your way. [22:50] FransWillem has joined the channel [22:50] softdrink: maushu: isn't it? [22:50] mape: And for some reason he sends out mails to the mailing list saying he doesn't have time to be a helpdesk. And then adds "I want to remind everyone that I run a very reasonably priced support [22:50] satori_: cinder does look impressive, but i doubt it's a 100% async API [22:50] satori_: :P [22:50] mape: service for browser scripting professionals. It's a fixed monthly [22:50] mape: much sooner." [22:50] mape: fee, up to three questions* per day (but obviously not three *every [22:50] mape: day*) and answers are *guaranteed* within 24 hours and typically come [22:50] mape: which seems rather odd, and funny at the same time [22:50] softdrink: good point. didn't think about the async aspect [22:51] _announcer: Twitter: "Anyone doing anything cool with node.js?" -- mathiasx. http://twitter.com/mathiasx/status/19451676712 [22:51] satori_: softdrink: Cinder would have it's event loop too. Doesn't really need node :P [22:51] satori_: *own [22:51] bradleymeck1: also is ryah about? [22:51] softdrink: but i'd much rather write javascript ;) [22:52] satori_: hehe me too [22:52] bradleymeck1: was wondering why a http.Server cant listen to multiple ports [22:53] micheil: bradleymeck1: http://gist.github.com/489059 [22:53] clint` has left the channel [22:54] clint` has joined the channel [22:54] _announcer: Twitter: "@mathiasx Isn't that the idea of what node.js is? :P (sorry, had to.)" -- Micheil Smith. http://twitter.com/miksago/status/19451847767 [22:55] FransWillem: bradleymeck1: Why not just multiple http.Servers with the same request callback ? [22:55] micheil: bradleymeck1: this pattern should help you out. I'm not sure if it's the best pattern, but it is a pattern [22:55] micheil: for example, it totally bombs on the new router api I'm working on. [22:55] wsc has joined the channel [22:55] micheil: (not part of node-websocket-server code) [22:55] wilmoore has joined the channel [22:55] micheil: s/code/core [22:56] micheil: anyway. need shower+food. bbl. [22:57] bradleymeck1: mmm ill look at it some to the listen method, plus need to reverse dns the server, but thats not too bad in node, and FransWillem, i was just thinking its a bit odd you cant listen to multiple ports while it appears you can call it twice, its probably possible to get it a bit speedier too [22:58] mau has joined the channel [22:59] Matsimitsu has left the channel [23:00] dnolen_ has joined the channel [23:00] mape: so, event driven programming, why use that rather then just fireing methods? just a nice abstraction? [23:03] damienkatz has joined the channel [23:03] ryah: mape: ? [23:03] mape: ryah: not at the meetup? [23:04] ryah: mape: what meetup? [23:04] mape: Oh nm, mixed the one you said you were going to with the NY one [23:04] bradleymeck1: mape try to express a state machine w/ a tree rather than a graph, thats firing vs evented, possible, but eww [23:05] creationix has joined the channel [23:06] _announcer: Twitter: "@miksago node.js IS cool, yes. I should be asking: Who is using or working on node.js? :-)" -- mathiasx. http://twitter.com/mathiasx/status/19452428647 [23:06] steadicat has joined the channel [23:06] bradleymeck1: aor mape try to express async behavior with method firing alone w/o blocking [23:07] _announcer: Twitter: "Haven't done anything with node.js yet. Worth looking in to?" -- Will St. Clair. http://twitter.com/wxwill/status/19452478407 [23:07] mape: guess I just need to find a good simple case where it is a good fit to be able to visualize it [23:07] mape: ie when to use it and when not to [23:09] bradleymeck1: oh, then explain A. evented is for use expressing statemachine transitions rather than simple data manipulation B. simple call chains make it difficult to express things such as when an object is being affected in a specific way. IE .onclick must be post hooked constantly to preserve behavior where .addEventListener("blah",...) does not need to posthook [23:10] tong_ has joined the channel [23:10] _announcer: Twitter: "@wxwill I got some node.js all over my face (eyes burn)" -- max is 20 characters. http://twitter.com/0280cbb8710f7b7/status/19452665479 [23:11] bradleymeck1: im raiding wow or id write up a better example, think of a buffet, you could have a person go around and tell each individual when an item appears, or you could have a bell send the data to all [23:12] mape: yeah, makes sense [23:12] bradleymeck1: but yea async behavior oh lord it can get ugly w/ multiple listeners [23:13] bradleymeck1: w/o evented* [23:14] _announcer: Twitter: "@jasongullickson hello, heard you might be doing stuff with node.js from @ckittel." -- mathiasx. http://twitter.com/mathiasx/status/19452848956 [23:14] sechrist_ has joined the channel [23:15] _announcer: Twitter: "@rdempsey let's get a node.js proj going ;)" -- Cody Swann. http://twitter.com/cody_swann/status/19452871511 [23:15] bourne has joined the channel [23:16] Guest19151: I needa redis orm. [23:16] Guest19151: I remember someone showing one they did here. [23:17] maushu: Hmm, found it. [23:17] ryah: maushu: link? [23:17] maushu: http://github.com/maritz/nohm [23:18] maushu: I liked the orm of playnice.ly that they show here: http://www.slideshare.net/playnicelyapp/redis-schema-design-for-playnicely-redis-london-meetup [23:19] maushu: Using getters and setters shouldn't be hard to replicate. [23:19] maushu: Would need to change the array of javascript, or at least the instances in the objects. [23:20] maushu: Oh wait, I forgot about async. Crap. [23:20] ryah: maushu: ;) [23:21] maushu: I blame this on you ryah. It's all your fault. [23:21] rwaldron_ has joined the channel [23:22] maushu: Pretty much. [23:22] maushu: You and your async madness. [23:23] bpot has joined the channel [23:26] _announcer: Twitter: "@moQuez I am sensing that there could be a little Node.js in your future..." -- Chris Matthieu N7ICE. http://twitter.com/chrismatthieu/status/19453435999 [23:27] fizx has joined the channel [23:28] ryan_gahl has joined the channel [23:30] _announcer: Twitter: "... and we need even more amazing people: devops, scala, ruby, rails, v8, nodejs, javascript, rooster care, k/v stores, java, objc, c#" -- Matt Knopp. http://twitter.com/mhat/status/19453643517 [23:35] damienkatz has joined the channel [23:40] Tim_Smart has joined the channel [23:43] quirkey has joined the channel [23:43] RyanG` has joined the channel [23:45] ryah has joined the channel [23:45] rwaldron_ has left the channel [23:45] rwaldron_ has joined the channel [23:46] bradleymeck1: 3 is the answer [23:48] ryan_gahl: 42 [23:48] ryan_gahl: isaacs: ping [23:48] dtaylor has joined the channel [23:48] isaacs: ryan_gahl: yo [23:49] ryan_gahl: hey, just wanted to say a couple things about our debate yesterday [23:49] ryan_gahl: first of all, i still disagree :P [23:49] isaacs: hehe [23:49] isaacs: that's cool :) [23:49] ryan_gahl: but really just wanted to say sorry if my tone came through as bitchy... serisously just how i debate (loudly) [23:49] ryan_gahl: seriously* [23:50] isaacs: oh, no problem. strong opinions are good. [23:50] ryan_gahl: been bothering me a bit today [23:50] ryan_gahl: ok cool [23:50] isaacs: ACTION is pretty hard to offend [23:50] isaacs: likewise, i hope it didn't come off as dismissive or whatever. [23:50] isaacs: s/it/i/ [23:50] zensatellite has joined the channel [23:50] ryan_gahl: nope, we 'koo [23:50] isaacs: :) [23:50] ryan_gahl: not sure what the ' is for there [23:51] isaacs: yeah.... trying to figure that out myself, heh [23:51] stagas has joined the channel [23:51] isaacs: i don't think any words end with "koo".. [23:51] FransWillem: Anyone here feel like helping me out on a Redis question? they don't seem to be very active in #redis :/ [23:51] ryan_gahl: so anyway, i threw that up in a repo... quick question on that, i just put the whole modified events.js file up there - is that cool or should i also include Ryan's copyright if I do that? [23:52] rwaldron_: isaacs: cuckoo [23:52] rwaldron_: ;) [23:53] isaacs: ryan_gahl: i'd recommend just create a decorator. [23:53] ryan_gahl: a little new to OSS for some of that stuff [23:53] ryan_gahl: yeah, the issue with that is i need to modify the body of .emit and .on [23:53] isaacs: ryan_gahl: like, var events = require("events"); events.EventEmitter.prototype.suppress = function .. [23:53] isaacs: ryan_gahl: you can't do it by just wrapping? [23:54] ryan_gahl: no, because logic in emit has to honor the suppression specs [23:54] isaacs: like, ee.prototype.on = (function (original) { blah blah blah return original.apply(this, arguments) })(ee.prototype.on) [23:54] ryan_gahl: nope, you can see in the patch how that's not cleanly viable [23:55] ryan_gahl: hence the patch in the first place (plus my opinion it'd be good core functionality) [23:55] isaacs: hm... not so sure i'm convinced of that. [23:55] isaacs: link? [23:55] isaacs: oh, wait, i have it in my downloads already [23:55] ryan_gahl: http://github.com/ryedin/node-core-enhancements/blob/master/events/events.js [23:55] isaacs: also, i think once can be heavily simplified. [23:56] necrodearia has joined the channel [23:56] ryan_gahl: it's light as it is, but ok :) [23:56] AAA_awright has joined the channel [23:56] pnewhook has joined the channel [23:56] ryan_gahl: you mean don't attach metadata at the listener level? [23:56] isaacs: once = function (ev, cb) { this.on(ev, function () { this.removeListener(ev, cb); cb.apply(this, arguments) }) } [23:56] ryan_gahl: or how i'm tracking them for removal [23:56] isaacs: er, wait, no... [23:57] isaacs: once = function (ev, cb) { this.on(ev, function () { this.removeListener(ev, arguments.callee); cb.apply(this, arguments) }) } [23:57] ryan_gahl: ah, good call [23:57] isaacs: no tracking or anythign [23:57] ryan_gahl: yep [23:57] ryan_gahl: didn't think to AOP it [23:57] isaacs: (that's how i'm currently doing once stuff by hand in a few places in npm. [23:58] ryan_gahl: but the suppression logic - i can't see how it can be non-tightly integrated [23:58] isaacs: looking at it now.. [23:58] isaacs: before i was just evaluating it from a theoretical pov, not actually digging into the code [23:59] elliottcable: ’sup y’all