[00:00] benburkert has joined the channel [00:00] JimBastard: hey shimondoodkin are you around? [00:00] shimondoodkin: yes [00:01] Astro: heya [00:01] Astro: I can publish my pkg on npmjs sans erreur [00:01] Astro: but the new version is just not appearing [00:01] Astro: node-xmpp is the name [00:02] JimBastard: Astro: hrmmm [00:02] tav_ has joined the channel [00:02] mrdoob: now using node-websocket-server [00:02] mrdoob: http://mrdoob.com/lab/javascript/multiuserpad/ [00:05] malkomalko: lol, who is drawing all of those crazy lines? [00:05] malkomalko: looks like a js function :) [00:05] qschzt: me [00:05] JimBastard: malkomalko: i bet you could do fun things in firebug [00:05] malkomalko: sign wave [00:06] malkomalko: sin [00:06] JimBastard: i can do anything in firebug :-) [00:06] malkomalko: that's what I was saying [00:06] qschzt: oops, could use undo ;) [00:06] Astro: what a nice toy [00:06] JimBastard: thats such a great idea, ive been thinking about that for a long time [00:06] JimBastard: i think moot is building the same thing @ canv.as [00:06] JimBastard: http://canv.as [00:06] JimBastard: (4chan owner) [00:07] qschzt: mrdoob, users v. cpu now? [00:07] jashkenas: malkomalko: https://gist.github.com/2f79d1cd0d16e126ac82 [00:07] malkomalko: figured :) [00:07] mrdoob: qschzt, eek, let me track that [00:08] malkomalko: bamn, just added a red square [00:09] qschzt: i wanna see more of jashkenas's tests [00:10] qschzt: mrdoob, great job! way to get into node [00:11] jashkenas: qschzt: http://jashkenas.s3.amazonaws.com/misc/deJong/deJong.html [00:11] jashkenas: click and drag to re-seed the attractor. [00:11] jashkenas: http://jashkenas.s3.amazonaws.com/misc/deJong/deJong.html [00:11] jashkenas: is the source. [00:11] jashkenas: sorry: http://jashkenas.s3.amazonaws.com/misc/deJong/deJong.coffee [00:11] qschzt: whoah o_O [00:12] bpot has joined the channel [00:12] mrdoob: qschzt, thanks! :) [00:13] malkomalko: that's very cool [00:14] mrdoob: wops, reseted the server [00:14] mrdoob: refrehs :) [00:14] mrdoob: *refresh [00:15] mrdoob: now I can see the amount of users [00:16] shimondoodkin: jashkenas: what does it do? [00:17] jashkenas: shimondoodkin: works best in chrome. it's one of these: http://local.wasp.uwa.edu.au/~pbourke/fractals/peterdejong/ [00:17] jashkenas: x = sin(a y) - cos(b x) [00:17] jashkenas: and vice versa. [00:18] malkomalko: yup [00:19] unscene has joined the channel [00:19] Tim_Smart: mrdoob: Is that using websockets now? [00:20] malkomalko: this is pretty fun [00:20] mrdoob: Tim_Smart, yep [00:21] shimondoodkin: jashkenas:i'm facinated with your toy [00:22] jashkenas: it's pretty fun. I've been wanting to write an article about it, as sort of a gentle introduction to CoffeeScript and Canvas, with a nice reward. [00:22] qschzt: jashkenas, that's very nice [00:22] creationix has joined the channel [00:23] creationix: shimondoodkin: yes? [00:23] shimondoodkin: creationix: yep i'm here [00:23] qschzt: jashkenas, beautiful in fact [00:23] creationix: shimondoodkin: did you get your connect question answered? [00:24] JimBastard: im feeling stupid here. can i not cherry-pick a single commit from a remote repo? [00:24] jashkenas: qschzt: it's my favorite strange attractor. You can plot it in three dimensions as well, if you've got some way to input the z-index. [00:24] JimBastard: git cherry-pick SHA ? [00:24] jashkenas: JimBastard: fetch it first. [00:24] shimondoodkin: no i've started my own http library leraning from you [00:24] Tim_Smart: JimBastard: Yeah you can. I made a write-up on how to do that somewhere. [00:24] JimBastard: trying jashkenas [00:24] qschzt: jash there is some 3d feel to it but i can't quite grab it [00:25] Tim_Smart: JimBastard: http://stackoverflow.com/questions/1405030/using-git-how-can-i-selectively-pull-merge-changes-from-anothers-fork [00:26] shimondoodkin: creationix: thanks getting bak, and your code ir really helpful [00:26] creationix: :) [00:29] JimBastard: hrmmm [00:29] aheckmann: this sketch pad is a blast. [00:30] piratepenguin has joined the channel [00:30] Tim_Smart: mrdoob: Has the load decreased now? [00:32] [[zz]] has joined the channel [00:33] qschzt: that's the question [00:35] mattly has joined the channel [00:36] qschzt: shame the quality with a collaborative wall is just going to be pretty low :) [00:36] JimBastard: yeah, for some reason it really wanted me to add the remote [00:36] JimBastard: qschzt: now you gotta add photo uploads [00:36] JimBastard: ;-) [00:36] mrdoob: Tim_Smart, yeah, seems better [00:37] mrdoob: 14 people 8% cpu [00:37] mrdoob: hasn't reached 100% so far [00:37] JimBastard: that doesnt seem right [00:37] qschzt: *clap* wonderful [00:37] mrdoob: max has been 25% [00:37] qschzt: that's a great optimization [00:37] JimBastard: it might not get over 35 or so for a while [00:37] qschzt: it's still too high, but it's much better [00:37] Tim_Smart: Imagine it it got put on Hacker News haha [00:38] Tim_Smart: qschzt: You need to do some rate limiting on the client side [00:38] Tim_Smart: Maybe only send commands when they draw [00:38] qschzt: we talked about it [00:38] qschzt: I thought maybe send draw events every 1s and on every click [00:38] mrdoob: Tim_Smart, yeah, but then people won't fight with the cursors [00:38] qschzt: now I think mrdoob sends every draw event [00:38] mrdoob: ;) [00:39] mrdoob: it's sending every mouse move [00:39] qschzt: every move event even [00:39] mrdoob: which is quite a lot [00:39] mrdoob: and mouse down, mouse up [00:40] qschzt: that's definitely too much [00:41] Tim_Smart: Yeah it is ~13 kB / s of commands atm :/ [00:42] mrdoob: Tim_Smart, how can you track that? [00:42] mrdoob: I lack the tools [00:43] mrdoob: oh, websockets also work on safari :), so it's safari + chrome [00:43] mrdoob: better than I ghough [00:43] qschzt: i'm using mac menumeters :) [00:43] mrdoob: hah [00:44] qschzt: mrdoob well.. you could count the size of packets received and report + reset it every second in setInterval [00:44] Tim_Smart: mrdoob: Ubuntu system monitor has a network monitor [00:44] mostlygeek has joined the channel [00:44] mrdoob: yeah, I'm using ubuntu [00:45] mrdoob: Resources/Network History? [00:45] Tim_Smart: Yup. [00:45] mrdoob: I see [00:47] qschzt: nnnmmmhh [00:47] jamescarr has joined the channel [00:47] qschzt: yeah ok that'll tell you the entire packet [00:48] qschzt: *if [00:48] jamescarr: there was a module that its name eludes me... takes a json object and converts it to a url string? [00:48] jamescarr: i.e. {foo:1, bar:'baz'} becomes ?foo=1&bar=baz? [00:49] jamescarr: querystring [00:50] qschzt: mape, how many concurrent users did you have? [00:50] jashkenas: holy cow! you guys are going to like this. [00:50] mape: qschzt: didn't really track [00:51] jashkenas: fuck. V8 is just as fast as Java is. [00:52] Tim_Smart: jashkenas: Are you running bench's or something? [00:53] jashkenas: nah, I've got something up my sleeve. Give me a minute to get it clean and documented. [00:53] qschzt: mape, ok, tack anyway [00:53] mape: :) [00:54] qschzt: mape, it was kinda half duplex too [00:54] qschzt: is [00:54] benburkert has joined the channel [00:54] qschzt: still extremely cool [00:57] mklappstuhl has joined the channel [00:59] qschzt: mape/mrdoob, next is basically just keeping track of stats and optimizing details [00:59] qschzt: how many people are online, what platforms, what locations, etc [00:59] qschzt: mrdoob, maybe creating rooms .. [01:00] mrdoob: yeah [01:00] mrdoob: if I this gets somehow manageable I'll do that [01:00] mrdoob: want to see 100 people on it and the server handling it [01:00] mrdoob: otherwise won't bother [01:00] qschzt: now you know how node works anyways, yes the next step for you is to see it stress out [01:00] mrdoob: yep [01:01] pkrumins: is here a way to make fs.readFile do chunked io? or does it do it already? [01:01] pkrumins: from the docs it seems it reads the whole file in memory before calling callback [01:01] qschzt: mrdoob, can we see the code again? [01:02] mrdoob: server? [01:02] mrdoob: sure [01:02] pkrumins: my files can be hundreds of megs in size, that will bring down the whole node [01:02] pkrumins: probably have to write it myself [01:02] pkrumins: with fs.read [01:02] mrdoob: qschzt, http://pastebin.com/FZ3ATy46 [01:04] qschzt: top notch excellent work. I'm off, bona notte :) [01:05] ncursestest has joined the channel [01:05] mrdoob: ^^ [01:05] skampler: pkrumins: i use fs.createReadStream in that case [01:06] Tim_Smart: fs.createReadStream ftw [01:07] pkrumins: oic, hadn't used createReadStream before [01:08] pkrumins: so i create a readstream, attach a 'data' listener and i am ready to go, right? [01:08] sewpafly has joined the channel [01:08] skampler: yes [01:08] mrdoob: I'm off too [01:08] mrdoob: thanks everyone for the hints [01:08] mrdoob: <3 [01:08] pkrumins: naisss. [01:09] pkrumins: thanks! [01:10] shimondoodkin_ has joined the channel [01:11] pplante has joined the channel [01:13] unscene: I just installed npm through brew, then install vows [01:13] unscene: it doesnt look like my installation allows me to just call vows from the cmdline [01:13] unscene: anyone else had this problem? [01:13] Tim_Smart: unscene: Depends if it inserts it into you PATH [01:13] unscene: yeah i have node_libraries [01:14] unscene: .node_libraries* [01:14] Tim_Smart: $PATH as in environment variable [01:14] unscene: yep its in the path [01:15] Tim_Smart: node_libraries isn't relevant in this case, if vows can't be found via command line [01:16] Tim_Smart: Its the bin path that you need fixing. [01:16] unscene: example? [01:17] shimondoodkin: require.paths.unshift(__dirname); //make local paths accecible --= is this it? [01:17] unscene: maybe im not understanding how npm works but i thought it threw the installs into .node_libraries [01:17] [[zz]] has joined the channel [01:18] shimondoodkin: require.paths.unshift(__dirname); //make local paths accessible [01:18] Tim_Smart: unscene: Look at binpath http://github.com/isaacs/npm/blob/master/doc/config.md [01:18] Tim_Smart: shimondoodkin: Not the node path, the os path. [01:19] shimondoodkin: k [01:19] unscene: gotcha [01:19] unscene: thx [01:21] tacobreath has joined the channel [01:21] mw has joined the channel [01:29] coolston_bro has joined the channel [01:29] callen: has anyone here used the C preprocessor with js? [01:40] TS_ has joined the channel [01:41] shimondoodkin: where have you seen staff about C ? [01:41] JimBastard: ive got an interesting one. why is it that i can eval() JSON that has comments in it, but i can't JSON.parse() it >.< [01:42] JimBastard: thats a bit fucked i have to use eval() here [01:42] callen: shimondoodkin: I'm sorry? [01:42] callen: JimBastard: http://stackoverflow.com/questions/244777/can-i-comment-a-json-file [01:42] callen: JimBastard: JSON is data not code. [01:42] JimBastard: callen: i have a good use case i swear [01:43] callen: JimBastard: then either hack up your parse or suck it up and use eval. [01:43] shimondoodkin: hi callen maybe you can tell memore about what are you talking i have tried searching about C and could not find anything [01:43] callen: JimBastard: having a good use case doesn't break convention, I'm afraid. parse is intentionally very simple. [01:43] JimBastard: yeah i gotta eval [01:43] JimBastard: o well [01:43] callen: shimondoodkin: uhm. what? [01:43] JimBastard: WOULDNT BE THE FIRST TIME [01:43] callen: JimBastard: *shrugs* no big deal. [01:43] JimBastard: mwahaha [01:43] JimBastard: :p [01:43] shimondoodkin: " has anyone here used the C preprocessor with js?" [01:44] callen: shimondoodkin: yeah. emacs js major modes usually support using cpp in js. [01:44] callen: I'd read that and was amused, wondering if anybody's actually done that before with production code. [02:01] pkrumins: hmm [02:01] shimondoodkin: pop [02:05] malkomalko: what's the proper way to chain function calls with coffeescript? [02:08] ryah: hi [02:09] malkomalko: howdidly [02:09] mape: ryah: arent you in France? [02:10] ryah: mape: yeah... [02:10] ryah: mape: jet lag, can't seep [02:10] mape: Ah k [02:10] ryah: i didn't demo your app unfortunately [02:11] mape: It was broken? [02:11] ryah: i was all prepared to but the screen wouldn't show it very well [02:11] ryah: not enough contrast [02:11] ryah: shitty screen [02:11] ryah: the beamer [02:11] mape: Ah, could have changed it [02:11] mape: If I wasen't sleeping when you pinged me [02:11] mape: So what was the presentation? [02:12] ryah: mape: introduction to node [02:12] pkrumins: ryah: the API of buffer.write didn't suddenly change, did it? I am now looking at docs and they say `buffer.write(string, offset=0, encoding='utf8')` -- I always thought (and I am using in my code right now) that 2nd argument was encoding, but now the docs say 'offset' [02:12] pkrumins: but it all works [02:12] softdrink has joined the channel [02:12] pkrumins: i am a bit confused [02:12] mape: ryah: just random people? [02:12] ryah: pkrumins: yeah, it switched order [02:12] ryah: pkrumins: but we support the old order still [02:13] pkrumins: ah! that's why it didn't broke. [02:13] pkrumins: whew. [02:13] ryah: (trying to be friendly) [02:13] pkrumins: :) [02:13] ryah: pkrumins: http://github.com/ry/node/commit/898afbaf348a3f7188cfd759914528704350a448 [02:13] creationix has joined the channel [02:13] pkrumins: ryah: did it appear in changelog? [02:14] ryah: mape: paris web scene [02:14] pkrumins: ryah: oh it did [02:14] mape: Ah k [02:14] pkrumins: * Switch order of arguments for Buffer.write [02:14] pkrumins: ryah: node 0.1.100! [02:15] ryah: pkrumins: :) [02:15] ryah: pkrumins: did you just notice now [02:15] ryah: ? [02:15] pkrumins: yeah [02:15] pkrumins: did you release it like a minute ago?! [02:15] coolston_bro has joined the channel [02:15] ryah: pkrumins: no, about 19 hours ago [02:16] mape: hehe [02:16] pkrumins: oh. :) [02:16] pkrumins: anyway \o/ [02:16] pkrumins: i am still using 0.1.99 :) [02:16] pkrumins: will see what breaks if anything when i upgrade [02:16] pkrumins: sys.pump is also in :) [02:17] CIA-76: node: 03Ryan Dahl 07master * r0315251 10/ (doc/api.markdown doc/index.html): Use 'on' in the docs - http://bit.ly/bDgErx [02:17] CIA-76: node: 03Ryan Dahl 07master * r3d948d8 10/ (23 files in 2 dirs): Remove a bunch of useless waf files - http://bit.ly/9vCPhV [02:17] ryah: a6b8586 ry@tinyclouds.org 20 hours ago bump version [02:17] ryah: i guess 20 hours [02:18] ryah: alias l='git log --format="%h %Cgreen%ae %Cblue%cr%Creset %s"' [02:18] ryah: ^-- useful [02:18] ryah: green='%{\e[40;32m%}' [02:18] ryah: blue='%{\e[40;34m%}' [02:19] pkrumins: trying! [02:19] ryah: type "l -5" in a git dir [02:19] pkrumins: looks awesome :D [02:23] rictic has joined the channel [02:27] [[zz]] has joined the channel [02:28] mostlygeek has joined the channel [02:29] ryah: what are people using for JS vim configs? [02:30] creationix has joined the channel [02:30] Tim_Smart: ryah: I got a few plugins I use. [02:30] Tim_Smart: Let me dig up my .vimrc + .vim [02:30] ryah: Tim_Smart: if you do setTimeout(function () { [02:30] ryah: does it indent 4 spaces or 2 ? [02:30] Tim_Smart: 2 [02:30] ryah: somehow i've got a bug in my stuff - because normally mine is also two [02:31] ryah: except when setTimeout starts on column 0 [02:31] ryah: maybe this will help: http://www.vim.org/scripts/script.php?script_id=1840 [02:32] Tim_Smart: ryah: http://dl.dropbox.com/u/396394/vim.tar.gz [02:33] Tim_Smart: (See ToggleIndent function) [02:35] ryah: i don't understand it [02:35] ryah: what does it do? [02:35] ryah: it's a command? [02:35] ryah: :ToggleIndent(2) ? [02:36] ryah: :Tit, ok [02:36] Tim_Smart: heh [02:36] Tim_Smart: ToggleIndent has a if else switch [02:36] Tim_Smart: numbers are a different option [02:36] ryah: vim has such an awful langauge [02:36] Tim_Smart: a:1 = first argument [02:37] Tim_Smart: Yeah. [02:37] coolston_bro: what's going on in node land? [02:38] JSiLVER: word [02:38] Tim_Smart: :Tis = 2 spaces, :Tit = tab, :TIs = 4 spaces [02:38] Tim_Smart: (T)oggle (i)ndent (s)pace is how I remember it [02:39] ryah: Tim_Smart: yeah - this isn't fixing it.. it must be some strange config i've got [02:39] Tim_Smart: Yeah. You vimrc must have some weird stuff in it or something. [02:41] ryah: unforunately i've been accumulating a random .vimrc for many years, but hve no idea what all the stuff does [02:43] Tim_Smart: My favourite plugins would be autoclose, snipMate, NERD Commenter, supertab [02:44] ryah: do you use nerd tree? [02:44] Tim_Smart: nope :/ [02:44] ryah: pretty sweet [02:44] Tim_Smart: ctags or something? [02:44] Tim_Smart: Oh.. Do you have a good Javascript ctags config? [02:45] ryah: nope [02:45] Tim_Smart: Urgh. Ctags for javascript is horrible atm. [02:45] ryah: nerdtree, file browsing thing [02:46] Tim_Smart: OK cool cool. [02:48] ryah: Tim_Smart: oh nerd commenter - great [02:49] Tim_Smart: Yeah - very handy. [02:51] Tim_Smart: ryah: You should show http://mrdoob.com/lab/javascript/multiuserpad/ to the crowd out there. [02:53] ryah: Tim_Smart: conf is over [02:54] Tim_Smart: Oh right. Anyway, I better get going. [02:56] jashkenas has joined the channel [02:58] JSiLVER: hi all [02:58] jsilver: whats cool in node land right now [02:58] jsilver: i got npm and node working [02:58] jsilver: i think i have coffee working too [02:58] jsilver: on jolicloud netbook [02:59] rauchg_ has joined the channel [03:00] jsilver: thinking of doing a node reimplementation of twitter [03:00] jsilver: with async and nosql [03:00] jsilver: or maybe mysql-http [03:00] jsilver: whatevers considered cool [03:00] jsilver: ne care [03:00] [[zz]] has joined the channel [03:08] mikeal has joined the channel [03:08] jashkenas has joined the channel [03:11] malkomalko has joined the channel [03:12] SamuraiJack has joined the channel [03:19] mklappstuhl has joined the channel [03:21] mscdex: node.js rules! [03:22] Sembiance: indeed it does [03:22] Sembiance: although I kinda wish there was a simple include() [03:23] Sembiance: Forcing me to do require() and forcing every individual file into it's own 100% sandbox is kinda restricting [03:23] Sembiance: it ends up meaning I have to pass a whole bunch more stuff between 'modules' heh, but other than that node.js is great :) [03:26] mscdex: restricting how? [03:27] mscdex: what are you passing between modules? [03:27] Dmitry has joined the channel [03:30] Sembiance: maybe I should ask a question instead. If I do require('abc') in two seperate modules, each one get's it's own entire copy right? [03:30] mscdex: yeah [03:30] mscdex: well [03:30] mscdex: the module is cached [03:31] mscdex: so at least the content is the same [03:31] mscdex: but i'm assuming they're not references and are copies [03:32] mscdex: on an unrelated note, does anyone know if the barcamp talks are up online anywhere? [03:32] x_or1 has joined the channel [03:32] creationix has joined the channel [03:33] Sembiance: mscdex: I use node-redis which is a NoSQL database. Every time I require('node-redis') it's going to make a connection to the DB. I have several modules that need to talk to the DB, but they all don't need their own connection. [03:33] mscdex: wha? [03:33] mscdex: why would it connect when you do a require()?! [03:33] Sembiance: Since each module is locked in a sandbox, I have to create the DB connection at some 'top level' and then pass the object all around [03:34] Sembiance: mscdex: sorry, it doesn't connect when you require, you have to connect. [03:34] Sembiance: mscdex: but the problem remains. [03:34] mscdex: how else would you envision the solution then, without passing the connection around? [03:35] JimBastard has joined the channel [03:35] JimBastard: すべての雹キングネプチューンと彼の水を吹く! [03:35] Sembiance: mscdex: Well Java solves it by having a Singleton or Thread local (basically a global object) with a pool of connections. [03:35] mscdex: i mean, modules are sandboxed for a reason [03:36] Sembiance: mscdex: aye, very good reasons, I'm not saying they shouldn't be sandboxed, I'm just saying it makes some things more difficult :) [03:37] mscdex: well if your modules are "classes", then you could just pass in the connection into the constructor and be done with it [03:38] Sembiance: mscdex: aye, several of my modules do that. [03:38] Sembiance: mscdex: I just have one or two that don't and it just starts to feel a little icky passing it around all the time ;) [03:38] Sembiance: mscdex: no worries though, I still love node :) [03:39] [[zz]] has joined the channel [03:42] DarthShrine has joined the channel [03:43] malkomalko: I've been getting into the habbit of creating a boot.js Sembiance requiring everything I need, and using exports to assign the libs [03:44] malkomalko: then in all of my files I just require the lib [03:44] mikeal has joined the channel [03:44] malkomalko: err the boot lib [03:45] Sembiance: malkomalko: but won't your other modules when they require() the boot lib cause everything to be generated again? [03:46] malkomalko: requiring a file just gives another file access to what's in it [03:47] malkomalko: let's say you create a var for the require(redis).server or whatever it is [03:47] malkomalko: just exports that and use that reference elsewhere [03:48] Sembiance: malkomalko: So the only time it's "Executed" is the first time it's required? After that the already created resultant object is just made available to subsequent requires? [03:50] malkomalko: exactly [03:50] malkomalko: when you start up your program it hits all the requires to make sure it can load everything up [03:50] malkomalko: it's just like any other js var, once it's assigned it's in mem [03:51] Sembiance: malkomalko: perfect then, that opens up some possibilities :) [03:51] Sembiance: malkomalko: thanks :) [03:52] malkomalko: welcome [03:55] rtl has joined the channel [04:04] jashkenas has joined the channel [04:15] Tim_Smart has joined the channel [04:18] sechrist has joined the channel [04:23] Tim_Smart: jashkenas: What was the Java thing you were talking about? [04:25] jamescarr has joined the channel [04:28] Sembiance: woot. the web-socket-js guy added a 'WEB_SOCKET_DISABLE_AUTO_INITIALIZATION' parameter :) [04:28] Sembiance: now I don't have to modify his file every time I update with the latest version ;) [04:28] callen: did node.js break npm with version 0.1.100? [04:29] callen: EventEmitter has no method 'on' [04:29] callen: ryah: ^^ [04:30] ryah: callen: 'on' is in HEAD [04:30] ryah: after 100 [04:30] callen: bugger all. thanks. [04:30] ryah: is isaacs using it? [04:31] ryah: :/ [04:31] callen: ryah: yes. :| [04:31] callen: that's why I'm cursing over here. [04:31] ryah: yeah that's not good [04:31] ryah: complain :) [04:31] callen: ryah: I'll give you a stick to go beat him with. [04:31] callen: meanwhile, recompiling node again :( [04:31] callen: hooray for fast filesystems. [04:32] rictic has joined the channel [04:32] callen: ryah: his latest commit message, "s/addListener/on/g" [04:32] callen: I'm going to beat him. [04:34] callen: I sent an email, with an explanation and a sad face. [04:34] callen: works now. [04:36] softdrink has joined the channel [04:40] seeflanigan has joined the channel [04:46] mikeal has joined the channel [04:49] tyfighter has joined the channel [04:55] mostlygeek has joined the channel [04:57] jashkenas: Here's the fun sketch promised from a couple hours ago (sorry I took off for a while): [04:57] jashkenas: http://jashkenas.s3.amazonaws.com/misc/buddhabrot/buddhabrot.html [04:58] jashkenas: It'll hammer your CPU real hard -- use chrome. [04:58] jashkenas: the source is at http://jashkenas.s3.amazonaws.com/misc/buddhabrot/buddhabrot.coffee [05:01] ewdafa has joined the channel [05:02] Aria: Nice. [05:02] Aria: (Safari 5 is actually faster) [05:03] jashkenas: that's interesting ... I wonder what they're doing different with math ... the inner loop of it is that Buddhabrot#iterate function. [05:10] meiu has joined the channel [05:10] aheckmann has joined the channel [05:13] Aria: Maybe 10% faster. Not huge, but visible. [05:24] creationix has joined the channel [05:25] Sembiance: Is there a way to call a function and pass each item in an array as a argument? [05:26] Aria: anArray.forEach(function(entry) { ... }) ? [05:26] jashkenas: Sembiance: func.apply(object, array) [05:27] jashkenas: (object will be set as "this", in the body of the function.) [05:28] Sembiance: jashkenas: perfect, thanks [05:30] teemow has joined the channel [05:31] Sembiance: jashkenas: what's normally the 'this' for the function? 'this' ? 'func' ? [05:31] Aria: Aah. [05:32] jashkenas: Sembiance: that's one of JavaScript's biggest cans of worms. [05:32] jashkenas: Sembiance: http://www.quirksmode.org/js/this.html [05:32] jashkenas: actually, that might be a little wordy ... "this" is the object that the function happens to be attached to at the time. [05:33] Sembiance: Basically I'm calling a node-redis function that takes multiple arguments. Like this redis.hmget("key", "field0", "field1", "field2", callback); except I don't know my fields before runtime, so I need to create an array with them and then do redis.hmget.apply(???, argsArray); :) [05:33] Sembiance: so I probably want redis.hmget.apply(redis, argsArray); :) [05:33] jashkenas: right, or redis.hmget ... [05:33] jashkenas: I'm sorry. [05:33] jashkenas: that's wrong -- "redis" is correct. [05:36] Sembiance: jashkenas: cool, thanks for your help :) [05:46] peburrows-mobile has joined the channel [05:46] meso has joined the channel [05:55] mscdex: ugh, i hate dealing with git when i made a mistake in a previous commit [05:55] mscdex: guess i'll just blast it away and redownload the branch [05:57] rauchg_: sadly, i do that many times as well [05:57] rauchg_: haha [05:57] rauchg_: but what i hate the most is --recursive not being a default of pull / clone [05:57] mscdex: i did a local commit, then merged changes from the remote branch, and it wouldn't let me revert the commit before the merge [05:57] mscdex: so... bleh [06:04] mscdex: :-\ [06:11] mscdex: ryah: doc patch goes to the ML? [06:16] Sembiance: oh neat, I can crash redis-node with one line :) [06:20] mscdex: Sembiance: it's a feature, not a bug [06:28] Sembiance: hehe [06:28] Sembiance: http://github.com/fictorial/redis-node-client/issues#issue/28 [06:32] pplante has joined the channel [06:35] jashkenas: Aria: got another fun port of Tarbelliana: http://gist.github.com/463218 [06:35] Aria: Nice! [06:36] jashkenas: link: http://jashkenas.s3.amazonaws.com/misc/binary-ring/binary-ring.html [06:36] jashkenas: click to toggle the blackout. [06:39] jashkenas: I think it switches over too often. [06:39] Sembiance: fixed the redis-node bug. Dunno if my patch causes other issues or not though heh [06:42] jashkenas: ok, now it shouldn't toggle by itself -- you have to click. [06:45] Sembiance: I should go to bed [06:45] Sembiance: it's like 3AM almost [06:46] mscdex: same here [06:46] mscdex: quarter til [06:46] jashkenas: one for the road: http://cl.ly/5350280cfcbe4f5d9a60 [06:46] mscdex: poof! [06:46] mscdex: beam him back up scotty! [06:46] _api has joined the channel [06:47] mscdex: !api on [06:47] _api: mscdex: (EventEmitter) method: on(event, listener) -- Adds a listener to the end of the listeners array for the specified event. [ http://nodejs.org/api.html#emitter-on-17 ] [06:47] jashkenas: !api console [06:47] mscdex: console isn't public [06:47] mscdex: heh [06:47] Sembiance: jashkenas: oooh that is pretty! [06:49] frodenius: jashkenas: where'd you go? [06:50] Sembiance: heh [06:51] mscdex: he tripped and fell into the bitbucket [06:52] softdrink has joined the channel [06:59] mattly has joined the channel [07:02] Sembiance: well, good night. heading to bed. [07:03] softdrink has joined the channel [07:19] khug has joined the channel [07:34] fuzzybutter has joined the channel [07:37] mikeal has joined the channel [07:41] DarthShrine has joined the channel [07:43] fuzzybutter has joined the channel [07:47] BrianTheCoder has joined the channel [07:51] qFox has joined the channel [07:56] zomgbie has joined the channel [07:59] teemow has joined the channel [08:09] javajunky has joined the channel [08:21] ph^ has joined the channel [08:27] rauchg_ has joined the channel [08:40] cloudhead has joined the channel [08:45] markwubben has joined the channel [09:03] sixbit has joined the channel [09:08] femto has joined the channel [09:08] aubergine has joined the channel [09:17] sveimac has joined the channel [09:24] aubergine has joined the channel [09:38] Dmitry has joined the channel [09:40] tmedema has joined the channel [09:43] markwubben has joined the channel [09:56] lianj_ has joined the channel [10:01] stagas has joined the channel [10:04] aaron___ has joined the channel [10:04] aaron___: anyone here use npm? [10:19] markc: aaron___: I just installed it for the first time [10:20] aaron___: is there some sort of basic config that has to happen? I downloaded & npm installed the mongo-native driver, and it shows up in .node_libraries/.npm [10:20] aaron___: but for the life of me I can't get it to load via require [10:20] aaron___: wondering if I need to tweak node to get it to read npms local repo? [10:27] ryah: yes [10:27] ryah: hard emitters = working [10:27] ryah: maybe [10:37] aaron___: npm issue => solved; though latest npm src dorks on make [10:42] zomgbie has joined the channel [10:52] mikekelly: anyone here big on jsgi? I'm thinking about implementing something along these lines: http://gist.github.com/451295 [11:03] mertimor has joined the channel [11:10] x_or has joined the channel [11:11] hellp has joined the channel [11:13] Dmitry has joined the channel [11:14] micheil: aaron___: probably because npm used ini's [11:17] Dmitry has joined the channel [11:24] tmedema: Hey folks, what should I read/learn to decide my encoding type? I'm probably using a text based protocol, but it has to be really fast.. so probably ascii rather than utf8 right? [11:25] tmedema: Or is it a big recommendation to broadcast objects rather than strings? [11:26] tmedema: I guess one disadvantage with text is that it has to be parsed [11:26] frodenius: *any* protocol has to be parsed [11:26] stagas: I think utf8 isn't multibyte if you don't use over ascii chars [11:27] frodenius: yep, that's why ascii and utf-8 are compatible [11:31] tmedema: stagas: the node.js documentation says that utf8 is really slow compared to ascii.. "'ascii' - for 7 bit ASCII data only. This encoding method is very fast, and will strip the high bit if set." [11:32] tmedema: also: "The encoding argument is optional and only applies when chunk is a string. The encoding argument should be either 'utf8' or 'ascii'. By default the body uses ASCII encoding, as it is faster." [11:32] tmedema: one more: "Sends data on the stream. The second parameter specifies the encoding in the case of a string--it defaults to ASCII because encoding to UTF8 is rather slow." [11:32] micheil: hmm.. I wonder if now would be a good time to tell marak why a client side require is best with callbacks? [11:33] stagas: oh yes I see now. the ascii stuff are optimized so use that then [11:34] tmedema: alright stagas.. does utf8 offer a lot more characters than ascii though? [11:35] frodenius: :) a lot more is an understatement [11:38] stagas: if you want to broadcast documents, I suggest utf8 [11:38] tmedema: I only want to broadcast client <> server events.. it's for a game [11:39] tmedema: eg. turnRight, turnLeft, moveForward, etc. [11:39] tmedema: or, info#position#xCoord#yCoord [11:39] mklappstuhl has joined the channel [11:39] tmedema: (which would be optimized by converting keywords to corresponding keyword IDs) [11:40] stagas: those can be optimized to be ascii easily, and you should write your own serializer/deserializer parser to avoid the json overhead [11:40] tmedema: hmm json overhead? what do you mean stagas? [11:41] stagas: tmedema: are you using the browser as the client? [11:41] zomgbie has joined the channel [11:42] tmedema: no stagas, flash player [11:44] stagas: ok, json is a way to convert an object into a string (serialize) so it can be passed to the client where the client needs to convert it back to an object again to use it (deserialize) [11:44] tmedema: what do you mean with json overhead though? somekind of overhead not mentioned in the docs? [11:44] Tim_Smart has joined the channel [11:44] tmedema: well stagas, if you broadcast a string, it does not have to be stringified right [11:44] tmedema: since it's already a string [11:45] stagas: yes [11:45] tmedema: so how can there be json overhead stagas? [11:45] stagas: json just adds a lot of extra characters to express the object you serialized [11:46] tmedema: yeah.. but I am not serializing any objects.. right? [11:46] stagas: how are you going to send all that data then [11:47] tmedema: well like this stagas: socketStream.write("1#12232.123#991.93"); [11:47] maritz has joined the channel [11:48] tmedema: then in the client it uses the delimiter # to get each argument, then convert the first argument (the keyword ID) to the corresponding keyword [11:48] stagas: cool that's what I meant, you did the serialization yourself there :) [11:48] tmedema: eg. 1 means position update [11:48] tmedema: well stagas maybe I should use Message Objects and make my own serializer like you suggested, because writing literal strings could get quite confusing ? [11:49] tmedema: like MessageObject { keywordId, arg1, arg2 } [11:50] tmedema: im thinking I need a shared library between client and server containing all server<> client messages [11:50] femtoo has joined the channel [11:59] keeto has joined the channel [12:00] tav has joined the channel [12:04] Tim_Smart has joined the channel [12:09] malkomalko has joined the channel [12:12] DarthShrine has joined the channel [12:17] Dmitry has joined the channel [12:22] tmedema: Are there prebuild tools available which can fake mass connections to a server? I would like to stress test my server and see if there are any memory leaks etc. [12:23] manveru: tmedema: ab (apache bench) or httperf [12:24] tmedema: manveru: it's not a http server though [12:24] tmedema: tcp [12:24] manveru: hmm [12:24] manveru: not sure about that... what protocol? [12:24] jamescarr has joined the channel [12:24] manveru: http is tcp as well ;) [12:25] tmedema: manveru: I guess, but http closes the connection after one request.. I need it to stay alive [12:25] tmedema: I want to have thousands of simulatenous connections [12:25] manveru: http also has keepalive connections [12:25] tmedema: oh [12:26] manveru: simulating thousands of simultanous connections might be a problem in a single process without changing the ulimits [12:26] tmedema: ulimits? [12:27] manveru: yeah, to increase the number of file descriptors allowed at the same time, it defaults to 1024 [12:27] tmedema: oh, are there more system settings I need to take into consideration? [12:29] stagas: better to start testing with 10 step increments simultaneous, the load could max easily [12:30] manveru: tmedema: not that i know of [12:31] manveru: tmedema: http://www.xenoclast.org/doc/benchmark/HTTP-benchmarking-HOWTO/node7.html#SECTION00072100000000000000 [12:32] tmedema: thanks manveru [12:33] manveru: you might also need to do that for your server [12:33] phiggins has joined the channel [12:34] tmedema: yeah [12:44] hellp has joined the channel [12:44] Dmitry has joined the channel [12:51] nostromo has joined the channel [12:54] tmedema: manveru: looks like ab never returns when keeping the connection alive, and if I set a timelimit (-t 10 or so) it simply stops without giving benchmarking results [12:54] tmedema: it works without the keep alive though.. but thats not very helpful [12:55] Dmitry has joined the channel [12:56] manveru: tmedema: you can tell ab to save the results as cvs [12:56] manveru: tmedema: http://www.cyberciti.biz/tips/howto-performance-benchmarks-a-web-server.html [12:56] tmedema: manveru: it doesn't return results though [13:07] tmedema: well I managed to do some basic testing without keep alive.. seemed to do good [13:07] tmedema: is it possible to listen to console input while running node? [13:07] tmedema: on windows (with cygwin) the input seems to be blocked while running node [13:09] Tim_Smart has joined the channel [13:13] kriszyp has joined the channel [13:14] malkomalko: is there any tool right now for node that will take an installed node module and package it up in your application? [13:15] malkomalko: I'd love to 'unpack' what I have in .node_libraries or elsewhere into a 'vendor' folder in my application so I can distribute the application without worry [13:18] tmedema: same malkomalko [13:18] tmedema: just like I'd love a static build option [13:18] malkomalko: I wonder if nodules does that, I need to go read up on it [13:18] malkomalko: if not, maybe I'll build it [13:26] rgl: ACTION waves [13:27] kriszyp_ has joined the channel [13:27] pplante_ has joined the channel [13:29] malkomalko: hmm, I don't get the nodules example [13:29] aho has joined the channel [13:30] bradleymeck: you can use request.paths [13:32] malkomalko: ahh I get it now [13:42] ves_ has joined the channel [13:49] MrNibbles: just a quick note: you are all awesome people :D [13:51] bradleymeck: just let us know if you have any questions [13:52] tmedema: is it possible to spawn childs which will execute given code? (so you dont need to actually give a certain existing process name) [13:52] bradleymeck: js code you mean? [13:53] tmedema: yes bradleymeck [13:53] bradleymeck: !api Script [13:53] _api: bradleymeck: (Script) constructor: Script -- undefined [ undefined ] [13:53] tmedema: eg. spawnChild(function() { //child code }); [13:53] bradleymeck: anywho script module [13:53] bradleymeck: script.runInThisContext script.runInNewContext [13:54] bradleymeck: or you can load in the script and just eval it [13:54] tmedema: bradleymeck: the script module requires the code to be inserted as a string [13:54] tmedema: also I need it to be executed in a child process [13:54] bradleymeck: what are you inserting it as? [13:54] tmedema: what do you mean? [13:55] tmedema: I want to spawn childs to execute long blocking calculations [13:55] tmedema: to make them async [13:55] bradleymeck: if you cant insert it as a string? and look into jefe for that i would think [13:55] bradleymeck: they will still be eating cpu at same amount w/o multiple cores just remember [13:55] tmedema: syntax like this is not possible bradleymeck ? child = spawnChild(function() { //child code }); [13:55] bradleymeck: jefe can do it if i remember right [13:56] tmedema: what do you mean with the eating cpu thing? [13:56] tmedema: the process can be executed on a different core if needs be right? [13:56] bradleymeck: actually, doesnt look like jefe can, sec, umm yes it can but if you spawn more than your cores you will still be using up context switches [13:57] mertimor has joined the channel [13:57] bradleymeck: anywho doesnt look like we have anything to serialize a function's closure after a lil search, so no that is not possible [13:58] tmedema: bradleymeck: can't 2 processes execute at the same time on 1 core? [13:58] bradleymeck: yes [13:58] tmedema: so what is the problem? [13:58] bradleymeck: but you will be using context switching so you dont gain perf you lose it [13:59] bradleymeck: at the OS level it has to swap between the processes [13:59] tmedema: not sure what context switching is but the point is to make the calculation non-blocking [13:59] tmedema: so you're saying that spawning childs for heavy calculations is not a good thing? [13:59] bradleymeck: its good if you spawn as many as you have cores, past that it is not [14:00] tmedema: hmm didn't know that [14:00] bradleymeck: then you are going to have to serialize the code to a string in order to get all closures you need [14:00] tmedema: :[ [14:02] tmedema: well bradleymeck maybe you know what I should do instead. Basically I have a normal server app and while the server is running I want a couple of things to be checked constantly.. eg. one "thread" has to loop over all sockets all the time, perform calculations for them and do actions based on the results.. I want this thread to not block the main server (much) [14:03] bradleymeck: oi JimBastard, could broodmother do ^ [14:06] davidwalsh has joined the channel [14:06] tmedema: ? [14:06] bradleymeck: well anywho you can do that as long as you can separate out the functions you need called, i would use a system like broodmother that is set up to make multiple processes [14:06] sechrist: broodmother [14:07] zapnap has joined the channel [14:08] maushu has joined the channel [14:11] sechrist: hmm [14:11] tmedema: hmm, it's a load balancing library? I don't need that though ;) [14:12] malkomalko: kriszyp: whenever you get around, how does nodules work with packages that have dependencies? [14:12] sechrist: man [14:12] sechrist: i'm about to compile node on a kindle that has it's filesystem mounted over NFS [14:12] sechrist: this is going to be painful [14:14] sechrist: where's the _announcer [14:14] bradleymeck: idk [14:14] bradleymeck: bother maushu [14:15] sechrist: I totally just tweetnoded [14:15] maushu: You lie. [14:15] sechrist: no [14:15] sechrist: http://twitter.com/chasesechrist/status/17722665520 [14:15] sechrist: serious business [14:15] sechrist: [50/68] already [14:16] sechrist: surprising [14:16] sechrist: v8 is probably the last thing and it's going to take a year [14:17] _frankie has joined the channel [14:17] bradleymeck: !nick _utility [14:17] sechrist: must hide the nodebot [14:18] sechrist: maushu: it bork? [14:18] maushu: Don't know. [14:18] _announcer has joined the channel [14:18] maushu: It was probably twitter. [14:18] sechrist: blame it on the failwhale [14:18] sechrist: I don't even know why i'm going to run node on my kindle [14:19] sechrist: I'm going to build a proxy but I'm 99.9% sure I should do it in C [14:19] tmedema: is orlandov here? [14:22] sechrist: wow it's been compiling code like a mofo for like 10 mins and it's not even warm [14:22] _announcer: Twitter: "Restarted announcer again. I hate you twitter. #nodejs" -- Diogo Gomes. http://twitter.com/graphnode/status/17723176686 [14:23] Sembiance: :) [14:23] Sembiance: morning :) [14:23] _announcer: Twitter: "Checking about realtime debugging on the browser side. Need to read about the v8 debugging protocol. #v8 #nodejs" -- Diogo Gomes. http://twitter.com/graphnode/status/17723234664 [14:24] sechrist: so [14:24] sechrist: we can debug node [14:24] sechrist: inside of chrome? [14:25] sechrist: or how does this work [14:25] Sembiance: heh [14:25] Sembiance: well, v8 has a built in debugging server. [14:25] kriszyp: malkomalko: you make a set of mappings defining how your modules should be mapped to the dependency packages [14:25] Sembiance: I know that you can get an eclipse plugin from google that lets you debug a remote v8 instance, but I never tried it with node.js before [14:25] sechrist: server? I knew about the prof and the tick tool [14:26] malkomalko: let me try that kriszyp [14:26] malkomalko: basically, if a repo has a .gitmodules [14:26] kriszyp: there should be an example and examples in the docs [14:26] malkomalko: map the .gitmodule paths relative to the require parent module [14:27] Sembiance: sechrist: http://wiki.github.com/ry/node/using-eclipse-as-node-applications-debugger [14:27] sechrist: yeah but "on the browser side" sounds like in chrome [14:27] malkomalko: so I guess the question should of been what if a dependency has a dependency [14:27] sechrist: malkomalko: funroll loops [14:28] malkomalko: fruit roll ups? :) [14:28] Sembiance: sechrist: I'm not sure I understand your confusion, sorry [14:28] sechrist: i'm not confused [14:28] sechrist: lol [14:28] Sembiance: :) [14:28] sechrist: "Checking about realtime debugging on the browser side." [14:28] kriszyp: transivitive dependencies should be fine [14:28] kriszyp: each package can declare its own set of mappings/dependenceis [14:28] Sembiance: sechrist: so you want to debug server side node.js inside of a browser? [14:29] sechrist: Sembiance: no I was quoting that tweet [14:29] Sembiance: oh rofl [14:29] Sembiance: now I get it :) [14:29] sechrist: >.< [14:30] tmedema: Last check.. there is no "multithreading" alternative such as spawning childs library atm right (I know these are different things)? [14:30] sechrist: last I knew, just processes [14:30] sechrist: with message passing [14:31] tmedema: yeah but you have to compile a separate process right sechrist ? there is no library that allows something like spawnTempProcess(function() { //child coded }); [14:31] sechrist: uh [14:31] sechrist: yeah [14:31] sechrist: node-webworkers [14:31] sechrist: or workers [14:31] sechrist: I forget [14:31] sechrist: check that out [14:32] sechrist: you create them dynamically, you don't have to run node multiple times [14:34] tmedema: sechrist: it still requires a custom js file [14:34] sechrist: custom as in having to implement it? yeah [14:34] tmedema: custom as in the code not being inside the spawner sechrist [14:34] sechrist: well technically it's in a require [14:34] sechrist: but require caches [14:34] sechrist: so [14:34] sechrist: yeah [14:35] tmedema: maybe I shouldn't use worker processes though.. the thing is that I'd have to pass an array to the child with over 10.000 objects [14:35] tmedema: might not be good performance wise [14:35] maushu: OVER 9000?! [14:35] sechrist: yeah I wouldn't do that [14:35] tmedema: No. [14:35] tmedema: Over 10.000. [14:36] maushu: :o [14:36] sechrist: that's ridiculous [14:36] _announcer: Twitter: "Nodejs dangerous dangerous. It is God" [ja] -- ishikawan. http://twitter.com/scraperonce/status/17723977305 [14:36] ajpiano has joined the channel [14:36] sechrist: you should var object = eval(JSON.stringify(the_array); in a loop for each iteration as well [14:36] tmedema: =p well ridiculous would be to handle 10.000 objects and perform calculations with them inside the main server app [14:36] sechrist: to consume more [14:36] tmedema: as it would block new connections [14:37] sechrist: tmedema: uh [14:37] sechrist: why do you need to pass an object with 10000 subobjects [14:37] sechrist: at the same time [14:37] sechrist: over and over [14:37] tmedema: I don't... only when the child is created [14:37] tmedema: so at server startup [14:37] tmedema: though whenever a new connection is made it has to be updated [14:37] sechrist: oh, that's not that terrible then [14:38] tmedema: problem is when someone disconnects the child has to remove the client too [14:38] tmedema: I guess its doable [14:38] sechrist: so you have to synchronize stuff [14:38] sechrist: or depending on your use case [14:38] sechrist: just sit on redis and pubsub [14:39] mertimor has joined the channel [14:39] tmedema: So you folks think workers are a good solution? I'd use them for jobs like checking whether clients are in line of sight with each other, to backup data in memory to a database, etc. [14:39] sechrist: you haven't really described your use case other than 10k objects [14:40] sechrist: oh [14:40] sechrist: k [14:40] tmedema: sechrist: they're socket clients for a game [14:40] sechrist: meanwhile, node is still compiling on my kindle [14:41] sechrist: I hope the usb chipset in the macbook pro is good because I swear I think i'll burn it out [14:41] tmedema: why compile node on an e-book? [14:41] sechrist: because there's no real good way to cross compile [14:41] sechrist: it was easier just to let it compile there than set up a cross compile toolchain [14:41] sechrist: fuck that [14:42] tmedema: you need to run node.js on an e-book? [14:42] sechrist: well yeah [14:43] sechrist: it's more of a wifi hotspot not [14:43] sechrist: now* [14:43] sechrist: not so much an ebook [14:43] sechrist: I'm going to use node to route requests [14:43] tmedema: so it's like a netbook [14:43] sechrist: sort of [14:43] sechrist: it's a free internet device that I can read on [14:44] tmedema: nice =D [14:44] jakehow has joined the channel [14:46] sechrist: sad part is it uses at&T [14:46] sechrist: so it's no better than my iphone [14:46] sechrist: but I can't tether my iphone without paying $20 more a month and having a data cap [14:47] sechrist: (until the iphone 4 is jailbroken) [14:47] sechrist: then I have two wireless devices [14:47] sechrist: woah holy shit musclenerd already has arbitrary code running on the new baseband [14:48] tmedema: I wish I had gadgets like you do =p [14:49] tmedema: I'd have a watch with satellite tv, e-books spreading wifi wherever I am and iphones just for the sake of having one [14:50] tmedema: solar charges on my back of course [14:51] sechrist: haahah [14:51] sechrist: still compiling ugh [14:51] mklappstuhl has joined the channel [14:51] sechrist: I might as well go to sleep [14:52] tmedema: You should do this for other people and charge an hourly rate [14:52] sechrist: LOL [14:52] sechrist: see it would probably make more sense to take the wireless crap out of the kindle and put it into a netbook [14:53] sechrist: but I'm afraid of getting banned [14:53] sechrist: and I want a working kindle [14:53] tmedema: Wireless crap? You mean you've got somekind of e-book with free internet? [14:53] sechrist: uh [14:53] tmedema: "free internet" [14:53] tmedema: lol [14:53] sechrist: kindles have 100% internet, internationally [14:53] sechrist: 100% free internet* [14:54] sechrist: you buy the kindle [14:54] sechrist: you have 3G internet [14:54] sechrist: no monthly fee [14:54] tmedema: Wow seriousely? [14:54] tmedema: You can so abuse that [14:54] sechrist: hush [14:54] sechrist: it's not _that_ abusable [14:54] sechrist: because everything has to go through amazon's proxy [14:54] sechrist: I have to provision the headers and stuff [14:54] sechrist: but I'm going to work on a point to point proxy to get all types of traffic out [14:54] sechrist: which is why I'm building node [14:54] tmedema: A kindle is an ebook offered by amazon or something? [14:55] sechrist: yeah [14:55] sechrist: tmedema: where do you live? [14:55] tmedema: sechrist: holland [14:55] sechrist: oh I see [14:55] tmedema: Don't you have to sign somekind of contract saying that you'll be (temporarily) blocked whenever you use 10 times the average bandwidth? [14:56] tmedema: That's what most of these services do [14:56] sechrist: eh I accepted a eula [14:56] sechrist: but I didn't read it [14:56] tmedema: It probably contains something along those lines [14:56] sechrist: oh i'm sure [14:56] sechrist: I don't care [14:56] tmedema: =) would be nice if it works [14:57] tmedema: So the e-book doesn't simply use somekind of mobile phone card? [14:57] tmedema: (not sure what the correct term is) [14:57] sechrist: of course it does [14:58] sechrist: the international kindle 2 uses a GSM/HSPDA card [14:58] sechrist: I don't think it's mini pci-e anymore, it's built into the mobo I think [14:58] tmedema: Just take it out and put it inside some reader? [14:58] sechrist: the older american kindles used evdo/sprint and that was a pci-e card [14:58] sechrist: what do you mean? the sim card is all you need [14:58] sechrist: I could take the sim and drop it into any 3G USB adapter thing [14:59] sechrist: well not any, specifically at&ts [14:59] tmedema: that's what I mean sechrist [14:59] tmedema: just do that [14:59] sechrist: no [14:59] sechrist: I want a working kindle [14:59] tmedema: http://www.chinavasion.com/product_info.php/pName/usb-modem-hsdpa-modem-for-high-speed-internet-via-sim-card/ [14:59] sechrist: this is cooler anyway [14:59] tmedema: Heh =p [14:59] sechrist: dude that thing looks so cheap [15:00] tacobreath has joined the channel [15:00] tmedema: Just linked a random one to show what I was talking about [15:00] tmedema: not sure what they are called [15:00] mw has joined the channel [15:00] sechrist: I wonder if I could get one that clones the ids [15:00] sechrist: there's unique ids for GSM chips sort of like mac addresses [15:00] sechrist: illegal to clone in the US [15:01] sechrist: but in other countries they don't have laws regarding it [15:01] tmedema: why would you want to change the "mac address"? [15:01] sechrist: because if I put the sim card in another device [15:01] sechrist: its obvious i'm connecting ot the cell network with a non-kindle [15:02] sechrist: unless the ID is cloned [15:02] sechrist: of the kindle chipset [15:02] tmedema: so the sim card broadcasts that Id to the server? [15:02] sechrist: yeah it's part of the GSM auth process [15:02] tmedema: ah alright [15:02] tmedema: well you should be able to change the id [15:03] tmedema: I can't believe it'd be illegal.. that's like changing your mac address would be illegal [15:03] sechrist: uh [15:03] sechrist: changing your mac address, other than for use in routers [15:03] sechrist: is illegal [15:03] tmedema: lol? [15:04] sechrist: oh, that's incorrect [15:04] sechrist: it's just that a lot of people use it for wardriving [15:04] sechrist: so :\ [15:05] jakehow has joined the channel [15:05] sechrist: but yeah gsm phones/devices have this IMEI number [15:05] Blackguard has joined the channel [15:05] sechrist: it's essentially a mac address [15:05] tmedema: weird law to be honest [15:05] sechrist: well there's several reasons [15:05] tmedema: that's like saying "it is illegal to be anonymous" [15:05] sechrist: if a phone gets stolen [15:05] sechrist: they can report it [15:05] sechrist: and have the phone shut off [15:06] sechrist: blacklisted, whatever [15:06] sechrist: it also makes it easier to triangulate [15:06] sechrist: for better or for worse [15:06] Blackguard has joined the channel [15:07] tmedema: if they do all that sechrist it's surprising that the e-book's OS allows you to do what you're doing now [15:07] sechrist: it's linux [15:07] sechrist: they can't stop me [15:07] sechrist: you can't put linux on an embedded device and expect it not to get hacked [15:07] sechrist: sorry [15:08] tmedema: =D [15:08] sechrist: https://gist.github.com/a5bca350a1e9bee06c12 [15:09] tmedema: but how do you go into the console etc. sechrist ? [15:09] sechrist: ssh [15:09] tmedema: or do you connect it to a pc? [15:10] sechrist: yeah it's connected via usb [15:10] tmedema: ah it accepts incoming sockets? [15:10] sechrist: not by default [15:10] tmedema: I see ^^^ [15:10] sechrist: the entry vector is rebuilding a software update that enables a usb networking featured used for debugging [15:10] sechrist: then, install a telnet/SSHD [15:11] sechrist: but I went a little further than that, I got a full ubuntu system running [15:11] sechrist: headless, but the guts are there [15:11] sechrist: NFS mounted over the wire [15:11] tmedema: nice [15:11] sechrist: which is why I thought I was going to burn out my usb [15:14] tmedema: how big is that thing sechrist ? and howlong does the battery last if you use it as an international router? [15:14] sechrist: i have no idea [15:14] tmedema: also does it connect over a satelite? [15:15] sechrist: nah [15:15] tmedema: hmm how can you have a connection everywhere then? [15:15] sechrist: good question [15:15] sechrist: but it does [15:15] tmedema: o.o [15:15] sechrist: it's cell based [15:15] sechrist: so anywhere the's 3G gsm [15:15] khug has joined the channel [15:16] tmedema: yeah but they'd have to pay for each route from tower to tower [15:16] sechrist: I'm not sure how the internationalism works [15:16] sechrist: but I do know it'll work everywhere in the US without a hiccup [15:16] sechrist: and they call it "international" perhaps they ship it with a simcard localized to you [15:17] tmedema: nice so they cover all the costs the international phone companies ask for using their towers [15:17] tmedema: I want one :p [15:18] tmedema: I guess you need a pretty expensive one to be fast enough for this purpose? [15:18] sechrist: I paid $150 usd [15:18] sechrist: on woot [15:18] sechrist: you can get a used kindle 2 for cheaper [15:18] sechrist: prolly [15:18] augustl has joined the channel [15:18] sechrist: but I don't suggest doing this [15:18] sechrist: i'm doing it for fun, not really to use it [15:19] augustl: sort of topic: does anyone know what Google used to create the Google Maps documentation? http://code.google.com/apis/maps/documentation/javascript/reference.html [15:19] augustl: is it some JavaScript comments => html thing, manual labour, something else? [15:20] sechrist: probably a structure for javascript comments to html [15:20] augustl: judging from the docs, their source code probably follows a strict Java/maven-like convention [15:20] tmedema: sechrist: I would do it for "fun" since being able to use my netbook anywhere in the world with a connection would be quite entertaining [15:20] augustl: perhaps they rolled their own docs generator based on that [15:22] augustl: would certainly like to have a look at the un-minified google maps JavaScript.. [15:28] nostromo has joined the channel [15:32] jos_ has joined the channel [15:46] JimBastard_ has joined the channel [15:46] JimBastard_: Alla hagel Kung Neptunus och hans luftningsanordningar vatten. [15:47] mape: need to get that translation working [15:47] JimBastard_: whats the literal on that one? [15:47] JimBastard_: lol [15:47] JimBastard_: how close is it? [15:48] JimBastard_: All hail King Neptune and his water aeration devices. [15:48] mape: All hailstone King Neptunus and his air appliance water. [15:48] JimBastard_: lol [15:48] JimBastard_: hailstone! [15:49] BBB has joined the channel [15:55] rtl has joined the channel [15:57] syaramak has joined the channel [15:59] cloudhead has joined the channel [16:07] markwubben_ has joined the channel [16:17] ceej has joined the channel [16:19] jlertle has joined the channel [16:33] tmedema: is it possible to stringify a function so that you can use it with eval ? [16:34] tmedema: or better, a block of code [16:36] charlesjolley- has joined the channel [16:39] Sembiance: tmedema: don't you know that eval is evil? [16:39] cloudhead has joined the channel [16:43] JimBastard__ has joined the channel [16:43] JimBastard__: has anyone seen fictorial around in the IRC lately? i want to tell him to go fuck himself [16:43] Kiba: JimBastard__: you are a true bastard. [16:43] JimBastard__: if anyone see's him please pass along the message [16:43] tmedema: Sembiance: probably.. I am probably going to use process.compile, though I guess it's the same.. anyway I need to spawn a dynamically created child which runs a piece of code (given inside the spawner) [16:44] rtl has joined the channel [16:44] towski: *cough* path to madness *cough* [16:44] Sembiance: tmedema: ah :) [16:45] tmedema: Sembiance, I want to do this: child = spawnChild(function() { /* child code */ }); [16:45] tmedema: so I figured I had to write that code to a js file [16:45] tmedema: then compile that js file [16:45] tmedema: and then run it as a child [16:45] _announcer: Twitter: "Finally taking a look at node.js today…" -- Matt Willhite. http://twitter.com/MiWillhite/status/17731753074 [16:45] tmedema: or is there a faster better way? [16:46] Sembiance: haven't done any child spawning with node yet [16:46] JimBastard__: eval ? [16:46] technoweenie has joined the channel [16:47] tmedema: JimBastard__: ? [16:47] JimBastard__: just eval the code? [16:48] tmedema: JimBastard__: ehh it has to be executed in a different process [16:48] JimBastard__: why? [16:49] MattJ has joined the channel [16:49] tmedema: JimBastard__: I need to run several background jobs for a server app.. they check every socket client, perform calculations and inform the main thread.. or they backup data from memory to a database.. [16:50] tmedema: basically they need to do their lower prioritization stuff in the background without blocking the main app [16:50] JimBastard__: isnt there like a DJ implementation [16:51] bradleymeck: Eval is not evil is used correctly, just like a gun is not evil in good hands [16:51] tmedema: DJ implementation JimBastard__ ? [16:51] JimBastard__: no [16:51] JimBastard__: im drawing a blank right now, but im fairly certain there are libs in place to help you with this [16:52] JimBastard__: in my node coding so far i havent came across a place where i need to do what you are trying, in the way you are doing it [16:52] JimBastard__: i just spawn up new apps [16:52] JimBastard__: and have the database be shared [16:53] JimBastard__: maybe you can do what you need to do in an easier way [16:53] JimBastard__: i dunno [16:53] tmedema: yeah well I really dislike creating a new application for what is actually part of the same application [16:54] markwubben has joined the channel [16:54] JimBastard__: i didnt say to do that [16:54] technoweenie: tmedema: you might need to wait for web workers [16:55] JimBastard__: i said in a similar situation, thats what i did [16:55] JimBastard__: technoweenie: i thought those guys had that shit working? [16:55] technoweenie: oh wait, different process [16:56] technoweenie: have you seen node-resque? [16:56] tmedema: technoweenie: the webworker libs require you to make a separate js file [16:56] technoweenie: http://github.com/jbr/node-resque [16:56] technoweenie: just throwing ideas out [16:56] JimBastard__: yeah [16:56] JimBastard__: like DJ for node [16:57] tmedema: hmm I'm not using redis [16:57] malkomalko has joined the channel [16:58] skampler: i use redis to share data for background processing [16:59] technoweenie: i do too, its actually pretty awesome for that [16:59] skampler: basically, a c program connects to redis and runs the monitor command, and the node program just does it's thing [17:00] _announcer: Twitter: "Summary of BarCamp node.js, mogoDB, NoSQL, WebSocket ... webWorkersCamp! http://ow.ly/26N4B" [fr] -- Romain Simiand. http://twitter.com/pixxelboy/status/17732569780 [17:00] tmedema: Well... can I not convert a block of code to a string? [17:00] tmedema: If I can do that, I could write that string to a new .js file.. then I can run that .js file with node as a child process. [17:01] JimBastard__: toString() [17:01] tmedema: toString on what? :p [17:01] JimBastard__: your closure [17:01] JimBastard__: the function [17:01] tmedema: well it's not a function [17:01] JimBastard__: everything is a function [17:02] JimBastard__: give it scope if you have to [17:02] tmedema: { class Child { private var someVar:Int; private function test() { } } }.toString() [17:02] JimBastard__: wtf is a class [17:03] tmedema: hmm I am working in haXe.. I might have to change my wordings [17:03] JimBastard__: yeah [17:03] JimBastard__: haxe looks cool, havent tried it [17:03] tmedema: it's great [17:05] JimBastard__: but yeah can .toString() on functions in JS [17:05] JimBastard__: and it turns them back into code [17:05] JimBastard__: im unsure what haxe is outputting though [17:05] JimBastard__: how does that work? is it done at compile time? or does it autogenerate the js files and then you run them? [17:05] kersny has joined the channel [17:06] JimBastard__: is there a custom node build for haxe? [17:07] tmedema: yes JimBastard__ blackdog is very active on it.. http://groups.google.com/group/haxe-nodejs/web/haxe-node-getting-started see that [17:08] _announcer: Twitter: "@mrdoob did you say it was node.js for the server on the multiuser sketchpad?" -- Robert O 'Rourke. http://twitter.com/sanchothefat/status/17733062013 [17:09] JimBastard__: rgr [17:10] malkomalko: coffeescript all the way [17:10] Sembiance: geez firefox's CSS transform rotation produces ultra shitty results compared to webkit browsers. Even opera kicks firefox's ass here. [17:10] Sembiance: Guess firefox users will just have to put up with jaggies :) [17:10] JimBastard__: sup malkomalko [17:11] malkomalko: howdidly [17:11] JimBastard__: i dunno why, but i like JS over CF [17:11] JimBastard__: probably because i enjoy pain [17:11] malkomalko: yah, you love pain [17:11] malkomalko: I saw some dickhead walking around with a life is pain tattoo [17:11] malkomalko: was that you? [17:11] malkomalko: :) [17:12] JimBastard__: i do most of my coding in firebug on github.com anyway [17:12] JimBastard__: so until firebug can read CF >.< [17:13] malkomalko: I program in a 24px fontsize inconsolata [17:13] malkomalko: started going to the super big font sizes a while ago and now I can't go back [17:13] JimBastard__: i use this as my keyboard [17:13] JimBastard__: http://www.geeks3d.com/public/jegx/200808/keyboard-for-real-coder-big.jpg [17:13] JimBastard__: i cant tell if you are joking about the 24px [17:13] malkomalko: not [17:14] JimBastard__: thats a little crazy [17:14] JimBastard__: i need to be able to see a certain amount of lines on the screen [17:14] JimBastard__: i would think 24px font would limit that [17:14] malkomalko: I can see 30 lines [17:14] malkomalko: and it forces me not to go over 80 columns [17:14] JimBastard__: on my laptop i get around 50 [17:14] JimBastard__: you got a big screen? [17:14] malkomalko: oh it's big alright [17:14] JimBastard__: word [17:15] JimBastard__: :-) [17:15] malkomalko: :D [17:15] JimBastard__: what you working on today? anything interesting? [17:15] sveimac has joined the channel [17:15] malkomalko: I wrote a node library to integrate with the search engine marketing apis yesterday [17:16] malkomalko: very short but able to query google adwords [17:16] JimBastard__: o? [17:16] JimBastard__: got ya [17:16] malkomalko: boring [17:16] JimBastard__: im thinking of working on JSONloops today [17:16] JimBastard__: ive been hesitant to get it working in the browser, because i know its gonna be too much latency [17:16] JimBastard__: but until i actually do it, there is hope [17:17] JimBastard__: im like right there too ahaha [17:17] malkomalko: what's the idea for JSONloops? [17:17] JimBastard__: ohh did you not see? [17:17] malkomalko: I wanna do a multi player platform game [17:17] JimBastard__: http://github.com/Marak/JSONloops/blob/master/node-demo.js [17:17] JimBastard__: (this track is mostly empty on the repo, got another one locally) [17:17] JimBastard__: http://github.com/Marak/JSONloops/blob/master/loops/nyc.json [17:18] JimBastard__: the metronome track is a good test [17:18] JimBastard__: if you have mac os you can clone and run demo [17:18] JimBastard__: the metronome barely keeps time on my machine [17:18] JimBastard__: im using afplay for now......need a real audio pipe [17:19] malkomalko: hmmm [17:19] malkomalko: there's gotta be a nice way [17:19] JimBastard__: i gotta yell at tmpvar too, he refactored my looping algo and he broke it a bit [17:19] JimBastard__: i might have to revert to the ugly one [17:19] JimBastard__: malkomalko: openal or libao or something else [17:19] JimBastard__: people have been looking into it [17:19] JimBastard__: a bit [17:20] JimBastard__: but no one has given me a pipe yet [17:20] malkomalko: I got a pipe right now [17:20] malkomalko: it's too hot to go outside [17:20] malkomalko: challah! [17:20] JimBastard__: i mean i got a L in my mouth [17:20] JimBastard__: but thats a diffirent story [17:24] JimBastard__: but yeah, malkomalko i have a few good ideas for getting this JS sequencer working. i think a web frontend using raphael and then it can work over the web or to a locally running node instance [17:24] JimBastard__: using browser audio for over the web, and a direct pipe for local [17:24] JimBastard__: node might be awesome for an audio sequencer if i can actually get a solid BPM going [17:25] malkomalko: I did that demo using osc [17:25] malkomalko: built a web interface to control my ableton live set [17:25] malkomalko: was looking to do a thing with web sockets [17:26] malkomalko: throw it on top and do a live set where people can mix your set [17:26] malkomalko: and do a streaming audio interface back out so people can hear what they are doing [17:28] JimBastard__: so like [17:28] JimBastard__: osc is something else all together [17:28] benburkert has joined the channel [17:28] JimBastard__: i wanted to just build a pure javascript looper that run on JSON [17:28] JimBastard__: pretty mucha sampler + sequencer for wav files [17:29] malkomalko: yah, I got it [17:29] JimBastard__: something really small and simple [17:29] malkomalko: I dig it [17:29] JimBastard__: i think integration with other digital music technologies is good though [17:29] JimBastard__: just not my first goal with this [17:30] JimBastard__: also, my knowledge of OSC and maxmsp etc is pretty weak [17:30] JimBastard__: i could definitely use a crash course or two [17:30] sanchothefat has joined the channel [17:30] malkomalko: osc is simple [17:31] JimBastard__: i know binary42 is into this stuff [17:31] malkomalko: it just looks like an html route [17:31] JimBastard__: i havent used any that stuff yet, just lots of MIDI and VSTs and Cubase and protools [17:31] JimBastard__: and some other random tools [17:31] JimBastard__: COOLEDIT [17:32] JimBastard__: but yeah malkomalko , if you can figure out how to play a 24bit stereo interlaced wave file from node with < 20ms latency i'll give you 100 internet dollars [17:33] malkomalko: why try to shoot for 24 bit waves? [17:33] malkomalko: those things are big [17:33] JimBastard__: and +15 points [17:33] malkomalko: even if they are just short hits [17:33] JimBastard__: well, i have a large library of tracks [17:33] JimBastard__: and samples [17:33] JimBastard__: most of which are 24 bit [17:33] malkomalko: ok [17:34] JimBastard__: to my understanding you can hear the difference between 16 bit and 24 bit, but i dunno if i can >.< [17:35] devtime has joined the channel [17:35] JimBastard__: im not really worried about file size though, everything will prob get preloaded and cached [17:35] JimBastard__: and its on the "server" [17:35] JimBastard__: for the browser we might do mp3 in a SWF i dunno [17:35] malkomalko: brb [17:35] JimBastard__: kk [17:36] Kiba: why do they even have the CAP key? [17:36] Kiba: nobody use the CAP key [17:36] Kiba: I can't use the right side [17:36] JimBastard__: I DUNNO [17:37] Kiba: cool [17:37] Kiba: I accidently discovered a cool emacs feature [17:37] cloudhead has joined the channel [17:38] Kiba: wrong channel [17:38] zapnap has joined the channel [17:42] syaramak has joined the channel [17:46] syaramak: hi all - this may've been asked before but is there an adapter for oracle in the works? [17:50] syaramak: ACTION ping #node.js [17:51] _announcer: Twitter: "node-ugly allows node.js to run PHP code. Great name. http://github.com/felixge/node-ugly" -- Jon Suderman. http://twitter.com/suderman/status/17735289241 [17:52] JimBastard__: syaramak: lol [17:53] JimBastard__: syaramak: do you mean like the oracle in the matrix? or do you mean that database? [17:53] syaramak: JimBastard hehe [17:53] syaramak: the one in the matrix [17:53] JimBastard__: yeah im on it [17:53] mscdex: afaik nobody's working on an oracle binding [17:53] JimBastard__: as for the DB, im not sure i heard anybody working on that [17:54] syaramak: ok thanks [17:55] _announcer: Twitter: "Messing around with Node.js and HTTP http://phpc.in/10hij5" -- Amit Singh. http://twitter.com/onlyPHP/status/17735495794 [17:55] syaramak: any ideas how easy / hard it'd be to write one? :) [17:56] syaramak: i assume we'd have to use threading, no? [17:57] benburkert has joined the channel [17:57] derferman has joined the channel [17:58] JimBastard__: syaramak: i dunno man....ive managed to stay away from oracle my entire career [17:58] JimBastard__: maybe you should post on the mailing list? [17:58] syaramak: ACTION envies JimBastard [17:58] javajunky has joined the channel [17:59] malkomalko has joined the channel [17:59] syaramak: hm i'll do that. thanks for your help. [17:59] syaramak: what db do you use, btw? [17:59] mscdex: depending on how far you want to go, you could create an oracle module/binding that's written using pure JS [17:59] mscdex: :P [18:00] mscdex: then it'd be completely async and wouldn't need to worry about threads [18:00] syaramak: mscdex: really, we can do that? [18:01] mscdex: syaramak: sure, but you have to know about the protocol oracle uses between client and server heh [18:01] mscdex: syaramak: there's a couple projects out there that have that do exactly this for mysql [18:02] mscdex: node-mysql and nodejs-mysql-native [18:03] mscdex: but as far as commonly used databases go, lots of people use NoSQL stores like redis, mongodb, and couchdb [18:03] mscdex: there's also postgres and sqlite bindings [18:03] syaramak: mscdex: interesting [18:03] mscdex: syaramak: http://wiki.github.com/ry/node/modules#database [18:04] mscdex: for a complete listing -^ [18:04] syaramak: thanks i'll take a look. great link. [18:07] syaramak: oracle may be an interesting beast - all apps that talk over the wire seem to use de facto OCI comm library [18:10] liucougar_ has joined the channel [18:10] mscdex: and oracle's protocol is proprietary, so the docs for it are not publicly available [18:10] mscdex: :\ [18:11] mscdex: that's probably why there isn't any async oracle bindings for node [18:11] mscdex: heh [18:11] mscdex: to get access to the docs you apparently need to become an oracle partner and pony up ~$100k [18:12] syaramak: hehe that's a ridiculously small amount [18:12] DozyPieman has joined the channel [18:12] arnaudsj has joined the channel [18:13] syaramak: anyways [18:14] BBBB has joined the channel [18:15] syaramak: mscdex: would it be possible to use node's thread pool for creating an oracle binding [18:16] mscdex: yes, you could do that [18:18] javajunky1 has joined the channel [18:19] syaramak: mscdex: can you give me some pointers for that? or is the codeline the best place to start looking? [18:21] syaramak: deps/coupling? [18:22] Yuffster has joined the channel [18:22] mscdex: not sure, i've never had to write something where it came to using the thread pool before [18:22] mscdex: you might search the mailing list though [18:26] malkomalko has joined the channel [18:27] micheil: syaramak: try looking into libeio, and the sqlite binding [18:28] micheil: although, I do remember ryah mentioning something about some libraries should be managing their own threadpool, as to not overload node's internal one (through libev and libeio) [18:28] micheil: also, look into libev [18:29] syaramak: micheil: ya, was just starting ot look into libeio [18:30] _announcer: Twitter: "express framework for node.js - lightweight framework for node. http://ow.ly/17ZTm0" -- Javascript News. http://twitter.com/del_javascript/status/17737277884 [18:30] syaramak: this thread is interesting - http://groups.google.com/group/nodejs/browse_thread/thread/aff97d25c59f6f2d [18:32] aubergine has joined the channel [18:38] _announcer: Twitter: "there will be a #nodejs meetup with @ryah in cologne on tuesday!! We'll met at 7:00 p.m. @cowoco who's coming? http://bit.ly/9tu33k" -- Oleg Podsechin. http://twitter.com/olegpodsechin/status/17737663388 [18:40] syaramak: mscdex: thanks your help [18:40] syaramak: micheil: thank you [18:40] syaramak: later people [18:40] micheil: no worries, and good luck [18:45] kriszyp has joined the channel [18:45] tilgovi has joined the channel [18:46] maushu has joined the channel [18:48] _announcer: Twitter: "# MySQL connector for # nodejs node-mysql-libmysqlclient and discussion asynchronous API: http://bit.ly/aXhHBM" [ru] -- Oleg Efimov. http://twitter.com/SannisDev/status/17738120865 [18:49] cloudhead has joined the channel [18:51] _announcer: Twitter: "Messing around with Node.js and HTTP « Giant Flying Saucer http://bit.ly/aWovxf" -- deepak_kumar. http://twitter.com/deepak_kumar/status/17738256782 [18:51] zomgbie has joined the channel [18:54] GhostChe has joined the channel [18:59] benburkert has joined the channel [19:06] jamescarr: hmmm [19:06] jamescarr: crypto.createHash('sha1').update(str).digest('base64') doesn't generate the sha1 hash I'd expect :( [19:09] _announcer: Twitter: "Messing around with Node.js and HTTP: I've done a few articles/tutorials on using Node.js. Today though I'm goin... http://bit.ly/dnJu1A" -- GlobalTechNews. http://twitter.com/GlobalTechNews/status/17739138747 [19:13] jamescarr: I needed to digest it in hex [19:15] micheil: so, .digest("hex") [19:15] micheil: jamescarr: that's almost a case of rtfm, but we're friendly here. [19:17] jamescarr: yeah yeah, I was saying I figured out I was digesting it wrong ;) [19:19] maushu has joined the channel [19:30] teemow has joined the channel [19:32] _announcer: Twitter: "@igrigorik you've used node.js? what would you say between sinatra/thin and node? I like ruby but the ab-c 200 weighed to the node" -- dirs. http://twitter.com/dirs/status/17740167759 [19:35] hellp has joined the channel [19:35] markwubben has joined the channel [19:35] mklappstuhl has joined the channel [19:38] micheil: jamescarr: ah, okay, fair enough :) [19:40] quirkey has joined the channel [19:42] jamescarr: amusingly enough my problems haven't been with node, it's been trying to follow the oauth steps correctly ;) [19:42] maushu: I wonder if I should keep the sandboxes/processes running in the background even not in use. [19:42] _announcer: Twitter: "@dirs em/twisted can do 2500 req/s with vanilla HTTP stacks. Node is faster.. but I'll take Ruby ecosystem over js rewrite anyday." -- Ilya Grigorik. http://twitter.com/igrigorik/status/17740653989 [19:43] jamescarr: @_announcer booo... [19:44] maushu: I need to talk to linux guys. [19:44] _announcer: Twitter: "@dirs funny, I'm the opposite. I use ruby to do somethings in my Node.JS ecosystem but am slowly replacing with js equivalents" -- jamescarr. http://twitter.com/jamescarr/status/17740707947 [19:44] jamescarr: linux users? [19:44] maushu: More like experts. [19:46] maushu: Ok, lets try to enumerate advantages and disadvantages. [19:46] maushu: By keeping the sandbox running in the background the "creation" of a sandbox should theorically be faster. It just needs to receive code. [19:47] stagas has joined the channel [19:47] jamescarr: yep [19:47] maushu: But! [19:47] jamescarr: theoretically it should be faster because it's already in memory [19:47] maushu: If the sandbox crashes because of the code it would need to be recreated. [19:47] jamescarr: yep [19:47] maushu: And it should need to be recreated at the end? [19:48] jamescarr: I' [19:48] jamescarr: I'd guard against it crashing [19:48] maushu: The global section might get dirty. [19:49] maushu: jamescarr, not like crashing but more like infinite loops that need the sandbox to be destroyed and recreated. [19:49] tjholowaychuk has joined the channel [19:49] jamescarr: ah [19:49] tjholowaychuk: weee [19:49] maushu: To prevent infinite loops (and do the fixing thing) the checkbox needs to be checked. [19:49] maushu: *sandbox [19:49] maushu: Like every 20 seconds, like a ping. [19:50] jamescarr: tjholowaychuk, working non-stop on connect.js? [19:50] jamescarr: :) [19:51] tjholowaychuk: jamescarr: nahh, working on tons of stuff [19:51] tjholowaychuk: some secret projects [19:51] tjholowaychuk: jade that i just released [19:51] tjholowaychuk: but ya connect is a big one, its pretty much wrapped up though [19:51] jamescarr: cool [19:52] jamescarr: I've been meaning to ask... you using jspec+node.js with growl? [19:52] tjholowaychuk: i have yup but not anymore im just using expresso [19:52] tjholowaychuk: which thanks for reminding me i should add growl support to :D [19:52] jamescarr: hehehehe [19:53] [[zz]] has joined the channel [19:54] JimBastard__: roar [19:54] tjholowaychuk: JimBastard__: roarararrrar [19:55] JimBastard__: Salut King Neptune et son eau reniflards [20:09] charlesjolley- has joined the channel [20:12] isaacs has joined the channel [20:20] fizx has joined the channel [20:22] sixbit has left the channel [20:22] honeybadger has joined the channel [20:23] maushu has joined the channel [20:24] hassox has joined the channel [20:33] kersny has joined the channel [20:36] Kiba` has joined the channel [20:37] pkrumins: what's the difference between Local and Handle