[00:10] voodootikigod_ has joined the channel [00:12] Astro: test [00:14] voodootikigod_ has joined the channel [00:16] unscene has joined the channel [00:16] unscene: why would a connection not be writable, having trouble writing to my request [00:16] voodootikigod_ has joined the channel [00:16] mscdex: Astro: test successful. [00:17] Astro: mscdex: you're on http://wargamez.mape.me/ too [00:17] mscdex: unscene: maybe the other side closed the connection? [00:17] unscene: hmm right after headers are send? [00:17] unscene: sent* [00:18] mscdex: unscene: what code are you using? [00:18] mscdex: Astro: pew pew pew pew [00:18] voodootikigod_ has joined the channel [00:19] mscdex: brb [00:19] unscene: mscdex: just writing the body to an http request [00:19] unscene: i think i need to specifiy keep-alive :P [00:19] Astro: unscene & mscdex live pretty close to each other :) [00:19] unscene: how you know that? [00:20] unscene: ip? [00:20] Astro: http://wargamez.mape.me/ [00:20] unscene: hmm [00:20] unscene: cool [00:20] mape: :) [00:20] unscene: oh no rof [00:20] unscene: im at starbukcs [00:20] unscene: i live in florida [00:21] _announcer: Twitter: "I started with node.js for web related stuff, I've wounded up making commandline tools with it :)" -- jamescarr. http://twitter.com/jamescarr/status/17753261820 [00:22] [[zz]] has joined the channel [00:28] unscene: so the connection is not writable but the headers have not been sent, arg [00:28] voodootikigod_ has joined the channel [00:29] unscene: the request is stil in _outgoing, so i should be able to write the body [00:32] satori: anyone with libeio exp around atm? [00:34] Astro: mape: why do you show so few locations at once? [00:35] mape: since if I show all it gets bloated [00:35] mape: it is suppose to show activity [00:35] mape: so only shows the last 40in [00:35] Astro: yes, but only 5? [00:36] mape: not my fault no one is talking ;) [00:36] Astro: :) [00:36] voodootikigod_ has joined the channel [00:42] jamescarr has joined the channel [00:48] satori: anybody with c++ addon exp around? I need help with eio_custom() [00:51] tzmartin has joined the channel [00:55] kodisha: lol [00:56] kodisha: it does whois and then gets geo ip? [00:56] kodisha: great! [00:56] mape: yeah [00:56] kodisha: love it :) [00:57] _announcer: Twitter: "[del] [from maleko] How to Install Node.JS on Windows - DTrejo's posterous: http://url4.eu/5OAqf" -- sldfjd ldajds. http://twitter.com/sldfjd/status/17755020002 [01:09] keyvan has joined the channel [01:10] _announcer: Twitter: "How to Install Node.JS on Windows http://bit.ly/b1g0fA #design #how-to" -- Jessyka. http://twitter.com/yummymashup/status/17755676450 [01:11] maushu: I wonder if it would be too dificult to customize the windows version of node. I haven't touched c++ for a really long while. [01:11] satori: customize how? [01:11] maushu: I suppose changing the javascript files inside would be enough. [01:12] maushu: Basically, to get packages. [01:12] maushu: Turn it into a package manager. [01:13] satori: I like the idea of using node for windows clients [01:13] maushu: Heroku uses a ruby gem to manage stuff. [01:14] keeto has joined the channel [01:14] maushu: Since node.js doesn't have an installer I though of making a downloadable custom version (that works just like node.js) with package manager features. [01:14] satori: I can see how that would be useful [01:15] satori: A windows installer with customizable package installation would be neat. [01:16] satori: I currently use a vm to do node stuff on a windows 7 laptop. It will useful (and save some mem) for me to do dev in windows. [01:16] _announcer: Twitter: "@ Nowazhu less version also has node.js = _, =" [zh-CN] -- aki. http://twitter.com/aki_xavier/status/17756013517 [01:26] _announcer: Twitter: "How to Install Node.JS on Windows: http://wp.me/pKkTb-41" -- BlackDog. http://twitter.com/blackdog66/status/17756496052 [01:29] keeto has joined the channel [01:31] satori: any c++ developers here atm? I am stuck on a problem and have little c++ exp. [01:32] ditesh|cassini has joined the channel [01:34] SvenDowideit has joined the channel [01:56] Aria has joined the channel [01:59] maushu has joined the channel [02:01] rtl has joined the channel [02:07] markwubben has joined the channel [02:09] mjr_ has joined the channel [02:09] arnaudsj has left the channel [02:13] unscene has joined the channel [02:18] _announcer: Twitter: "Relaxing for bit. I'm taking a break from fighting with node.js" -- Robert Hurst. http://twitter.com/RobertWHurst/status/17759232744 [02:19] tmpvar_ has joined the channel [02:21] SamuraiJack has joined the channel [02:40] keeto has joined the channel [02:41] pandark_ has joined the channel [02:46] syaramak has joined the channel [02:48] _announcer: Twitter: "Nice article on using continuations to manage async callbacks ala node.js: http://bit.ly/aXDoUb" -- JavaScript Montreal. http://twitter.com/jsmontreal/status/17760859929 [02:49] _announcer: Twitter: "@ Leeiio En, node.js communities, people are all mad = =" [zh-CN] -- aki. http://twitter.com/aki_xavier/status/17760947770 [02:54] unscene: how do i create a file? touch? [02:54] _announcer: Twitter: "@ Aki_xavier before you engage in the node.js Cultural Handbook does ..." [zh-CN] -- leeiio. http://twitter.com/leeiio/status/17761218698 [02:54] satori: sure. thats one way [02:55] unscene: nothing through the api though? [02:55] satori: just call open with create flags [02:56] satori: ? [02:57] unscene: thanks overlooked that [02:57] satori: fs.open(path, "w") should be fine depending on where you create the file [03:03] PyroPeter has joined the channel [03:09] _announcer: Twitter: "Video: Hummingbird, Node.js and Gilt Groupe http://bit.ly/byRPpb" -- Justin Vincent. http://twitter.com/justinvincent/status/17762026802 [03:11] _announcer: Twitter: "@ Chris_Ys Every time I see node.js the author said they intend to change twitter api, I want to cry = =" [zh-CN] -- aki. http://twitter.com/aki_xavier/status/17762129906 [03:14] manveru: why is process.execPath always undefined? [03:16] manveru: can't find it in the source of node... [03:17] Aria: Which version? [03:17] Aria: It's new in .100, I think.. [03:17] manveru: ah, i'm on .98 [03:20] isaacs: !api stdin [03:27] meso has joined the channel [03:28] Tim_Smart: mscdex: Fix teh !api :p [03:30] isaacs: anyone know how to do something like the command-line "read" program in node? i can't seem to figure out how to close stdin. [03:30] isaacs: like, you can open it, and it halts waiting for input, but then if I try to close it, it blows up [03:33] cataska has joined the channel [03:46] mde has joined the channel [03:47] mtodd has joined the channel [03:51] unscene has joined the channel [03:54] callen: ryah: izzy was alerted to the addListener/on issue and has since fixed it. He's considering branching off his active dev away from master :) [03:55] callen: speaking of [03:55] callen: isaacs: greetings. [03:55] isaacs: hi, callen [03:55] callen: isaacs: thanks for getting that btw. [03:56] isaacs: getting what now? [03:56] unscene: are headers sent immediately on a request? [03:56] callen: isaacs: you broke npm for anybody not using ^HEAD of node :P [03:56] isaacs: oh, yeah [03:56] callen: I sent you the email in the wee hours of the morning [03:57] callen: still a small community mate ;) [03:58] manveru: how do you distinguish between a script started via shebang and one started via `node foo.js` ? [03:59] Yuffster has joined the channel [03:59] callen: manveru: well. check for a stdin. [03:59] Tim_Smart: manveru: process.argv[0]? [03:59] callen: manveru: which is how you do it with uh, any programming language. [03:59] isaacs: callen: it'd have stdin blocking both ways [03:59] callen: isaacs: wouldn't stdin not exist in the case of a shebang execution? [03:59] isaacs: callen: no [03:59] isaacs: callen: you can open it, read from it, etc. [03:59] isaacs: 100% the sme [04:00] liucougar_ has joined the channel [04:00] callen: what would you use stdin for on a #! run? [04:00] callen: hooking into it? [04:00] manveru: echo foo | myscript [04:01] manveru: well, my problem is with the argument passing when executing my executable via coffeescript [04:01] callen: well in python it's __name__ [04:01] manveru: argv and execPath look the same both ways [04:02] jakehow has joined the channel [04:08] manveru: oh well, i'll let the coffescript guys figure this out [04:08] manveru: not critical right now [04:20] mrdoob has joined the channel [04:28] Tim_Smart has joined the channel [04:30] mde has joined the channel [04:36] isaacs: manveru: is it really relevant? [04:36] isaacs: manveru: i mean, would'nt you *want* the same behavior either way? [04:36] isaacs: manveru: a shebang script should be identical to node my-program.js [04:37] mostlygeek has joined the channel [04:43] mjr_ has joined the channel [04:48] tmpvar: xml namespaces suck. [04:48] Aria: Oh? I kinda like 'em. [04:48] Aria: The parsing's a little annoying though [04:49] tmpvar: rephrased: implementing xml namespaces sucks ;) [04:51] tmpvar: level2/core is 50% implemented.. btw [04:51] Aria: I saw! [04:58] quirkey has joined the channel [05:01] charlesjolley- has joined the channel [05:02] mscdex: !api methods in file system [05:02] _api: mscdex: File System methods: rename(path1, path2, callback), renameSync(path1, path2), truncate(fd, len, callback), truncateSync(fd, len), chmod(path, mode, callback), chmodSync(path, mode), stat(path, callback), lstat(path, callback), statSync(path), lstatSync(path), fstatSync(fd), link(srcpath, dstpath, callback), linkSync(dstpath, srcpath), symlink(linkdata, path, callback), symlinkSync(linkdata, path), readlink(path, callba [05:02] mscdex: heh too many methods [05:02] mscdex: something for my todo list i guess [05:04] mscdex: Tim_Smart: it's not broken [05:07] isaacs: ugh, i cannot for the life of me figure out how to read something into a node program from the keyboard without echoing it out to the terminal [05:07] isaacs: anyone know how to do this? [05:07] isaacs: it's driving me insane [05:08] satori: isn't that a terminal client issue? [05:08] isaacs: satori: no, it works fine if i just use the "read" program [05:08] satori: ahh [05:08] isaacs: satori: "read -s foo" [05:08] isaacs: satori: i want that, in node [05:09] Aria: read -s would do terminal trickery -- setting echo off. [05:09] Aria: That'd take a binding in node, I think. [05:09] isaacs: satori: actually, I want: read -p "enter foo: " -s foo [05:09] satori: is there an escape seq for that sort of thing? [05:09] Aria: I don't believe there is. [05:10] isaacs: i'd even be ok with using read or sh for this, but that doesn't seem to work, even if i pass the stdin fd to the read program, it flips out [05:10] isaacs: says Resource Unavailable [05:10] Aria: Yeah, since it has to manipulate the terminal itself. [05:11] Aria: Not just the pipe. [05:11] isaacs: i see [05:11] isaacs: that makes sense [05:11] Aria: Welcome to the part of the unix API that evolved in 1972. [05:11] Aria: And froze there. [05:11] isaacs: i could write \u0008 to stdout after each char, if it was giving me info about each char [05:11] isaacs: maybe [05:12] Aria: Yeah, so not the right way. What you want is a node binding to tcsetattr [05:12] isaacs: yeah [05:13] Aria: You may be able to shell to tset as a hack. [05:13] isaacs: Aria: ? [05:13] Aria: (shell to, rather than spawning in any more complicated way -- you really want system()) [05:15] Aria: Er. tput. Not tset. [05:16] isaacs: Aria: hm. this is new magic. [05:16] isaacs: :) [05:16] Aria: Hehe. [05:16] Aria: tput, node IO, tput [05:17] Aria: rather than trying to get a subprocess to do the actual IO [05:18] isaacs: though, that would make npm even more unportable. [05:19] Aria: Ifs around it! [05:19] Aria: You're doing a password prompt? [05:19] isaacs: maybe i'll just leave it the way it is, so when you type your password into npm adduser, it's exposed in your history, and I'll tell people to complain about it and i'll support silent input when node does [05:19] isaacs: yeah [05:20] isaacs: changing around the: npm adduser [05:20] Aria: Aaah. [05:20] isaacs: so you just type "npm adduser" and it asks for what it needs [05:20] mjr_: isaacs: I think we do need that binding in node for stty echo [05:21] isaacs: mjr_: kewl. then i'll go ahead and not build it for npm :) [05:21] Aria: I'll so have to add that to my huge todo list. [05:21] mjr_: maybe build it for node and claim the prize of 500 internets [05:21] mjr_: I already spent 500 of my internets on fireworks [05:21] mscdex: internet fireworks? [05:22] mscdex: using canvas? :-D [05:26] kriszyp has joined the channel [05:32] temp01 has joined the channel [05:34] khug has joined the channel [05:35] tmpvar: i need to find a job where I can work on my own projects all day ;) [05:35] tmpvar: or atleast, most of the day [05:35] chilts: quitting work helps :) [05:35] chilts: that's what I'm doing [05:36] mscdex: or work on node projects that you can use at/incorporate into work [05:36] mscdex: :-D [05:37] mscdex: that's what i do [05:37] tmpvar: heh [05:37] tmpvar: i like chilts approach [05:37] mscdex: :P [05:37] chilts: heh [05:37] chilts: it's not for the feint of heart I don't think [05:37] chilts: anyway, 4 weeks to go :) [05:38] tmpvar: ive been doing mscdex's for a while.. burning out [05:38] mscdex: ah [05:38] chilts: same ... since I've known I'm going to quit, I've been much happier :) [05:38] tmpvar: not making quite the impact that I'm capable of... time, grr [05:38] chilts: of course, different problems lie ahead (like, figuring out how to put food on the table) [05:38] mscdex: yeah heh [05:39] tmpvar: right [05:39] mscdex: we need a node.js job board [05:39] mscdex: :-> [05:40] tmpvar: there is a possibility I'll get to work on node full time at arc90.. we'll see though [05:40] DarthShrine has joined the channel [05:41] tmpvar: also, we're hiring ;) [05:42] chilts: who do you work for? [05:44] mscdex: the NIA [05:44] mscdex: node intelligence agency [05:44] mscdex: :P [05:44] chilts: heh [05:44] chilts: sounds like fun :) [05:45] mscdex: i guess i'm lucky in the sense that my boss doesn't really care what i use to get a problem done, as long as it's feasible [05:45] mscdex: *solved [05:45] dnyy: mscdex: ditto, but my only other coworker does. :( [05:48] tmpvar: chilts, were you asking me? [05:48] chilts: yep :) [05:48] chilts: jus tcurious [05:48] tmpvar: http://arc90.com [05:48] chilts: ACTION clicks [05:50] tmpvar: Aria, , I'm not sure I like your removal of __dirname ;) [05:50] Aria: No? It makes it actually function for me. [05:50] tmpvar: oh really? [05:50] Aria: Yeah. I was getting "cannot access property level2 of undefined" [05:50] tmpvar: weird, how are you running it? [05:51] tmpvar: needs to work from the tests and from wherever you require() it from [05:51] Aria: var l2 = require('jsdom/level2/core').dom.level2.core; [05:51] tmpvar: thats extremely odd [05:51] Aria: Any reason that'd break it running from the tests? relative paths in node are relative to the current file. [05:51] Aria: Yeah, that's what I said. [05:52] tmpvar: they are relative to the node process' CWD, no? [05:52] Aria: Nope. [05:52] Aria: Relative to the current file. [05:52] Aria: Weird design decision, but one that works out pretty darn alright in practice. [05:53] tmpvar: ok [05:53] tmpvar: so that means __dirname is weird? [05:53] Aria: Apparently. [05:53] Aria: node> __dirname [05:53] Aria: ReferenceError: __dirname is not defined [05:54] tmpvar: wha! [05:54] tmpvar: what version is that? [05:54] Aria: 0.1.100 [05:54] Aria: (or just after -- I'm running head) [05:54] Aria: Yeah, 0.1.100 too [05:55] tmpvar: ok, thats really odd [05:55] Aria: Oh? [05:56] tmpvar: yeah, I must be completely mistaken [05:57] tmpvar: but in either case __dirname should "work" the case of your example [05:57] Aria: Heh, and it works by accident by having the right thing in your path or something? [05:57] tmpvar: i dont touch my path for this reason ;) [05:57] Aria: Well. . . with dirname, it wouldn't, since __dirname + "/../jsdom/" would become just "/jsdom" or whatever [05:59] tmpvar: Aria, http://gist.github.com/464054 [05:59] tmpvar: seems to work for me :) [06:00] Aria: Huh. Now that's odd. [06:00] Aria: Maybe there's also a repl bug [06:00] tmpvar: seems that way [06:00] tmpvar: that works on your system? [06:00] Aria: yeah. It does. [06:00] tmpvar: (the gist) [06:00] tmpvar: hrm. [06:02] tmpvar: Aria, I am fine with your html5 stub however. I saw you were moving the dom binding out of the core to be possibly externalized? (i like this as well) [06:02] Aria: Yep. [06:03] tmpvar: cool :) [06:03] Aria: So you set up a document, window, whatever. [06:03] Aria: Then hand the parser a document and say "put it here" [06:03] Aria: I'm working on integrating innerhtml parsing right now -- I've a rough idea what I'm going to do now, but it's gonna take some hacking. [06:04] tmpvar: superb! i was just going to get a sense for how you felt about parsing frags [06:04] Aria: The parser spec covers it. [06:04] tmpvar: got ya [06:04] Aria: There's a bit of impedance mismatch between the (tree-structure-agnostic) ruby code I was translating and the (dom-only) code I've written [06:05] Aria: So I'm undoing some of the bowing to the generic tree structures, and using the dom a bit more thoroughly internally [06:06] Aria: I'm intending to keep it so you can hand the parser a fragment, and it'll hand you a fragment of DOM back, without an existing document to build it into [06:06] Aria: But I'm also writing the case where you want to say "parse and insert this HTML under element X" [06:08] tmpvar: Aria, perfect [06:08] sechrist has joined the channel [06:08] Aria: That's kinda what I was thinking. Hence that stub being so darn small. [06:09] Aria: So I'm gonna work on refactoring this fugly code so I can do that. [06:09] tmpvar: dom frags that are not owned by a document. that might be tricky.. but awesome [06:09] Aria: Yeah, that actually already works -- it makes a new document, does some contortions, then gives you the DocumentFragment. [06:09] Aria: So they're owned by a document, but not one you care about ;-) [06:10] manveru: Aria: you're using a framework? [06:10] Aria: A framework? [06:10] Aria: No, this is a hand-written parser. [06:10] manveru: oh, i mean for web stuff [06:10] Aria: (Has to be to handle the insane edge cases in HTML) [06:10] Aria: Oh, not in node, no. [06:10] Aria: I'm not doing any directly web-facing stuff in node at the moment. [06:11] manveru: ok [06:11] Aria: Still using Ruby for that. Inertia, you know. [06:11] manveru: :) [06:11] Aria: (Well, and Wordpress....) [06:11] manveru: i'm still torn between picard, express, and writing my own [06:11] tmpvar: Aria, there might be some trickery there with documentOwner, not sure if document fragments throw exceptions when they jump documents.. ill have to peek it [06:11] Aria: I think they should, but not sure if they do. [06:12] Aria: But it's not like I expect people to use that mode much but for parsing snippets and then not adding them to a larger dom [06:12] tmpvar: in either case level2/core has an importNode method which does this :) [06:12] Gruni has joined the channel [06:12] tmpvar: yep, just thinking about re-using templating "shards" [06:12] Aria: nice. [06:13] Aria: Well, if I make that difficult, smack me and I'll fix it. [06:13] tmpvar: will do, this __dirname thing is throwing me off currently. seriously. wtf? [06:13] Aria: Hehe. Yeah. It threw me for a while. [06:13] Aria: But that said, I definitely prefer the style without [06:14] Aria: (even if I do wish require() was just more C include-like, where it tries prefixes until it matches) [06:15] tmpvar: alright, im going to try and dupe it on my machine after I take a little walk. its birthday beer time. lol [06:15] Aria: Aright. I'm off to bed. I've loaded my brain with problems to solve, so I'm gonna sleep and see if I have solutions in the morning. [06:15] Aria: Happy birthday! [06:15] tmpvar: tanks :) [06:16] Aria: Night, all. [06:16] tmpvar: sounds good, night [06:22] ph^ has joined the channel [06:31] shimondoodkin has joined the channel [06:35] qFox has joined the channel [06:38] satori: who here knows libeio/eio_custom() ? [06:39] shimondoodkin: http://groups.google.com/group/nodejs/browse_thread/thread/af28b0857a60c7e6?pli=1 [06:40] shimondoodkin: is this what you are talking about? (searched in google) [06:40] satori: hehe I already came across that problem.... [06:40] satori: and that thread (thank god) [06:40] shimondoodkin: (lol) [06:41] satori: my problem now is alittle more complicated. I am using a eio threadpool thread, but it turns out my algorithm needs mutexs and conditionals [06:41] satori: I found the xthread.h header in libeio that seems to abstract threads for platforms. [06:42] satori: I know very little about linux, c++, or threading beyond the concepts. [06:42] satori: I am not sure if I should be doing this. [06:42] tmpvar: satori, I'd ask as best as you can here, and if nobody responds.. post to the ml [06:43] voodootikigod_ has joined the channel [06:43] tmpvar: satori, of course you should ;) [06:43] tmpvar: hey voodootikigod_ [06:43] manveru: is there any channel for express? [06:43] satori: it's not directly exposed by libeio and there is no documentation for it [06:43] satori: beyond the header comments themselves [06:43] tmpvar: ah [06:44] tmpvar: there is a libeio channel [06:44] tmpvar: #phazm i believe [06:44] tmpvar: guys are pretty hardcore.. so know what you are going to ask before asking lol [06:44] satori: It *seems* to work. I think my only other option in rolling my own threadpool. But that is way too much work for me to do x platform. [06:45] satori: Yeah, i am too newbish to mix with people that really know their stuff [06:45] tmpvar: I wouldn't say that.. you and everyone else is bad-ass until proven otherwise (or so I'd like to think) [06:46] satori: haha. I know my limits... [06:46] tmpvar: heh [06:46] tmpvar: what is the core of the problem? [06:46] tmpvar: ie: why do you need a thread pool? [06:46] satori: ..though node is helping to expand them immensely. I have been learning node.js, linux, and c++ simultaneously. [06:47] tmpvar: satori, thats what its all about man, just keep iterating [06:47] satori: I have a blocking function that selects UDT sockets [06:47] satori: ... [06:47] tmpvar: UDP sockets you mean? [06:47] tmpvar: UDT runs on top of UDP.. right? [06:48] satori: nah, UDT..... reliable streams on top of UDP...faster than TCP [06:48] satori: yeah, anyways... I am using a libev async watcher so I dont have to exit the eio thread [06:48] satori: I can signal the watcher across threads safely [06:48] davidwalsh has joined the channel [06:48] tmpvar: hrm [06:49] satori: ....the prob is that the thread loop with select the same ready thread 100s of times before the watcher callback actually reads from it [06:49] tmpvar: im not convinced that you are attacking this from the wrong angle [06:49] tmpvar: s/are/arent [06:49] sveimac has joined the channel [06:49] satori: so the thread spins at 100% till the callback initates a read [06:49] tmpvar: tell me this code is on the internet? [06:50] satori: I am using a mutex and cond so that the thread can block till the callback has init'd a read....then it can signal the thread to select again [06:50] tmpvar: wow. rephrase: is this code online somewhere? [06:50] satori: yeah....not compiling just yet [06:50] satori: one sec [06:50] satori: http://github.com/satori99/node-udt [06:50] shimondoodkin: also might be #schmorp channel [06:51] satori: binding.cc line 1513 [06:51] tmpvar: definitely #shmorp, sorry about that [06:52] satori: It's not compiling atm cuase I am changing stuff to use the xthreads [06:52] satori: I am going to remove to struct I was using to pass state to the thread dont need it anymore. [06:53] tmpvar: wow, looking UDT up on the googles is not a good thing. [06:53] satori: udt @ sourceforgwe [06:53] satori: http://udt.sourceforge.net/ [06:53] satori: I know it will work now, as it is a fair bit simpler than posix sockets. [06:54] tmpvar: oh [06:55] satori: It took me a while to understand the io_watcher.cc and other classes so i could build one for UDT sockets. [06:55] tmpvar: thats why this is so rediculous [06:55] satori: how so? [06:55] tmpvar: UDT is a library that provides its own "socket" implementation on top of UDP [06:55] satori: yeah [06:55] tmpvar: that seems .. eh [06:56] satori: benefits are numerous [06:56] tmpvar: right [06:56] tmpvar: im not doubting the benefits at all [06:56] satori: can be up to 30% faster than a tcp stream in a high bw senario [06:56] voodootikigod_ has joined the channel [06:56] tmpvar: im all for UDP :P [06:56] satori: also can multiplex multi streams on a single UDP port and hole puch NAT router and firewalls [06:56] tmpvar: but re-inventing this portion seems _way_ too time consuming and possibly pointless [06:56] tmpvar: this portion being the low level socket api [06:57] satori: regular UDP can't do that, and isn't reliable [06:57] satori: UDT is [06:57] tmpvar: umm [06:57] tmpvar: let me dig a bit [06:57] _announcer: Twitter: "Sunny weekend near brest, but i missed web work force with nodejs and websockets arrrrrgg" -- coulix. http://twitter.com/coulix/status/17773275192 [06:57] shimondoodkin: UDT is a used today for grid computing [06:57] satori: there are commercial products that are not much more than tcp thru UDT tunnels [06:57] satori: can be, because it is real fast [06:58] tmpvar: lol, im not saying that I think its a horrible idea. I love the concept! [06:58] tmpvar: I dont like the implementation, is all [06:58] tmpvar: but in c++ land, this would be nice I guess [06:58] satori: it uses a rate based algortim for congestion control, rather than a window based one like tcp. [06:58] tmpvar: in js land, node already solves many of these threading problems [06:58] tmpvar: udp owns, i get it :) [06:59] mitkok has joined the channel [06:59] tmpvar: its like lightning and a turtle [06:59] satori: i know, if node understood UDT socket descriptors none of this would be nessesary [06:59] tmpvar: udp vs tcp [06:59] tmpvar: right, but the UDT socket descriptor is just a wrapper [06:59] satori: If it works (and I know it will now) it will do exactly what node does under the hood except for UDT stream. [06:59] derferman has joined the channel [07:00] satori: and it will present them in much the same way to javascript cpde [07:00] tmpvar: satori, upon a quick glance.. I think you could implement most of this in js [07:00] satori: the ability to create UDT servers in a few lines of js will make some commercial products look fairly pointless [07:00] satori: I am implemting most of in js. [07:01] satori: the c++ is just the bindings and threads the wrap async methods [07:01] derferman has joined the channel [07:01] rektide has joined the channel [07:01] tmpvar: satori, node already does that [07:01] tmpvar: am I making any sense? [07:01] satori: yeah. thats what i mean. I have to duplicate the parts of node that deal with tcp and udp [07:02] satori: ...but it will be a first class citizen as far as node's supported protocols go [07:02] satori: think about the possibilities of having node peers connect directly without server objects or listeners. [07:03] satori: interesting things can be done that are difficult to do with node out of the box [07:03] tmpvar: sure [07:04] tmpvar: im simply saying you might be re-inventing too many wheels for this to be feasible [07:04] satori: I reckon I am on the home straight now (famous last words) [07:04] tmpvar: instead of digging into thread pools, etc [07:04] tmpvar: why not figure out how UDT works, and implement it in JS on top of UDP? [07:04] satori: nah way too difficult. [07:04] satori: way easier to statically link the UDT lib into a node addon [07:05] satori: way better perf too. [07:05] tmpvar: dude, the majority of UDT (the lib) is socket manip/threads/signals/etc [07:05] satori: UDT is a perculiar timer and rate based protocol. js timers are way too coarse [07:05] tmpvar: im guessing 90% of that is already handled with node [07:06] tmpvar: use a better timer.. i believe node now uses a us timer now [07:06] tmpvar: if not, they exist node-microseconds [07:06] satori: Have a look at how many classes i would have to re-implement... [07:06] satori: ...I found a pure java UDT implementation and it was 10 times the size of what I have written so far [07:06] tmpvar: 12 tops [07:07] satori: I found it easier to study and emulate what ryan has done. [07:07] tmpvar: java isnt known for its optimized source code size lol [07:07] tmpvar: satori, by re-inventing a thread pool [07:07] satori: nah, I am not reiventing it..... I am using it [07:07] tmpvar: im just saying its not the approach I'd take.. thats all [07:07] satori: the node one [07:08] satori: I am using eio_custom to dispatch threads in the same threadpool that does node io [07:09] tmpvar: It *seems* to work. I think my only other option in rolling my own threadpool. But that is way too much work for me to do x platform. [07:09] satori: yeah [07:10] tmpvar: satori, I may be way off base.. I guess I'm just curious why you didn't consider it [07:10] satori: consider rolling my own threadpool? [07:10] tmpvar: I don't mean to be a nay-sayer.. because I honestly think its a great project [07:10] tmpvar: UDT bindings [07:11] satori: I found out about it. and did some experiments with ut using c++ and they worked great. [07:11] satori: but c++ is combursome for me. i am new to it but learning fast [07:12] satori: I was also spending a lot of time playing with node and I thought I'd give bindings a try [07:12] satori: honestly I thought it's be a bit easier. [07:12] ryan[WIN] has joined the channel [07:13] satori: I have done multithreaded coding before in c# so I know the concepts but learning c++ and doing multithreaded stuff at the same time was doing my head in [07:13] satori: I think I am on top of it now though :) [07:13] satori: I am battling it alone though and I sometimes don't know the right qeustions to ask. [07:17] tmpvar: good luck :) [07:17] satori: heh. If all goes well I will be able to report some sort of success in the next few days. [07:18] tmpvar: night [07:18] satori: ciao [07:20] shimondoodkin: i am having little like random nag waits from node js on gc, maybe i culd somehow to proxy it to different instances of node but i dont know how toknow it does gc [07:22] satori: how to know when node(v*) does gc? [07:22] satori: v8 [07:23] concernedcitizen has joined the channel [07:24] aliem has joined the channel [07:25] christkv has joined the channel [07:26] kpx has joined the channel [07:27] shimondoodkin: how to know in javascript that node js does a gc ? [07:27] kpx: Hi I was looking to use a websocket library in nodejs for an application I am making and was facing the dilemma of how to handle message when it is delivered in chunks... [07:28] satori: not possible to know when a gc happens in node but this might help... http://github.com/billywhizz/node-gc [07:28] mikeal has joined the channel [07:30] kpx: I mean like XHR has everything inbuilt into it so that we recieve the whole request... To have something similar on websockets will i pretty much have to write message handling from scratch...? [07:30] virtuo has joined the channel [07:30] shimondoodkin: if you dont gen an answer youmight look in logs http://nodejs.debuggable.com/ [07:30] virtuo has joined the channel [07:31] shimondoodkin: there were tals 1 to 3 days ado about [07:31] shimondoodkin: s/ado/ago/ [07:32] shimondoodkin: satori: thanks [07:32] margle has joined the channel [07:32] shimondoodkin: is it possible to know when gc is needed ? [07:33] satori: I am not an expert but I am fairly certain that all of that is opaque to js. It just happens when it wants or needs to [07:33] satori: v8 does that bit on it's own [07:35] shimondoodkin: i woild be happy to send 500 error from http server while in gc so any like haproxy coild get around it [07:39] mulander has left the channel [07:41] cloudhead has joined the channel [07:44] isaacs: w00t. you can use npm adduser to auth an existing user on a new machine now, with one command. [08:07] viktors has joined the channel [08:09] Dmitry1 has joined the channel [08:10] shimondoodkin_ has joined the channel [08:10] TomY has joined the channel [08:14] syaramak has joined the channel [08:15] _announcer: Twitter: "Story of a successful configuration: Slicehost, and Node.js WebSocket by @ rem http://ow.ly/26Z3N" [fr] -- Romain Simiand. http://twitter.com/pixxelboy/status/17776386273 [08:15] kjeldahl has joined the channel [08:17] micheil: isaacs: why not just use a npm config user=USER email=EMAIL (prompt for password, to echo off) [08:17] isaacs: micheil: becasue you can't turn echo off in node [08:17] micheil: oh. [08:17] micheil: that kinda sucks ;P [08:17] isaacs: not even if you child_process.spawn() to read [08:17] zomgbie has joined the channel [08:17] isaacs: yeah [08:18] micheil: there must be a C / C++ api to enable it [08:18] mertimor has joined the channel [08:18] isaacs: sure [08:18] isaacs: it belongs in node, imo [08:18] viktors has joined the channel [08:18] micheil: patch? [08:19] mape: mornin [08:20] ewdafa has joined the channel [08:20] _mql has joined the channel [08:20] aubergine has joined the channel [08:21] tyfighter has joined the channel [08:21] satori: Is there a x platform standard way to turn echo off? [08:21] _mql has joined the channel [08:26] mape: not echoing? [08:29] mscdex: hmm [08:29] mscdex: why can't you just pipe the main process's stdin to the child process's stdin? [08:32] robinduckett has joined the channel [08:34] Tim_Smart has joined the channel [08:37] sanchothefat has joined the channel [08:39] xla has joined the channel [08:39] caolanm has joined the channel [08:40] ollie has joined the channel [08:54] romainhuet has joined the channel [08:58] hansek has joined the channel [08:59] javajunky has joined the channel [08:59] pavelz has joined the channel [09:00] aubergine has joined the channel [09:00] viktors has joined the channel [09:01] mscdex: oh teh noez, process.openStdin() does not exist? [09:01] zomgbie has joined the channel [09:02] mscdex: nvm [09:04] mape: test [09:05] Tim_Smart: mape: Wut chu testin? [09:05] tmedema has joined the channel [09:05] mape: Tim_Smart: Figured I'd get the irc stats working better [09:06] Tim_Smart: Oh cool cool. [09:15] pufuwozu has joined the channel [09:19] maushu has joined the channel [09:21] pufuwozu has joined the channel [09:25] aubergine has joined the channel [09:26] keeto has joined the channel [09:27] aubergine has joined the channel [09:28] pufuwozu has joined the channel [09:30] _announcer: Twitter: "ok so i won't be able to work unless I get me hands dirty with #mongo and #nodejs first" -- SayB. http://twitter.com/SayB/status/17779321281 [09:32] mape: wt.. [09:32] mape: isn't webkit suppose to be able to handle widths with decimals? [09:35] pufuwozu has joined the channel [09:35] teemow has joined the channel [09:37] Tim_Smart: mape: Should be able to. What is it failing on? [09:37] b_erb has joined the channel [09:37] mape: Tim_Smart: http://nodejs.se/ [09:38] mape: works now since I spaced it so it doesn't have decimals but seems it just ignores the decimal part [09:38] mape: ie it renders 4% === 4.1231% [09:38] mape: Worked fine in ff though [09:39] mape: Generates the stats every 15min [09:39] Tim_Smart: Oh yeah, I have come across that before. Only seems to like integers or 1 dp or something. [09:40] halorgium: mape: rank perhaps? [09:40] mape: halorgium: huh? [09:40] halorgium: mape: position in the list [09:40] mape: like it is now? [09:40] mape: or you mean just print #1 ? [09:41] halorgium: yer, #XX [09:41] mape: if you refresh [09:41] mape: that is kinda misleading.. but yeah [09:42] _announcer: Twitter: "Instead of chaining in Node.js RT: @ IOExceptionDE: Barrier points in Node.js / http://bit.ly/cBhA5Y / # # node.js barrier # javascript" [de] -- Benjamin Erb. http://twitter.com/b_erb/status/17779766622 [09:42] halorgium: hrm, yer [09:42] halorgium: number each column? [09:42] mape: it does? [09:43] halorgium: i meant "#1 message count" [09:43] halorgium: "#1 messages per day" [09:43] halorgium: what kinda backend is it? [09:43] halorgium: just flat? [09:43] mape: oh, well that will bloat it up like crazy [09:43] mape: flat as in? [09:43] halorgium: file [09:43] mape: Oh yeah, just a json file kept in memory [09:44] mape: and the log files cached [09:44] mape: on disk [09:44] halorgium: pics from github? [09:44] mape: gravatar [09:44] halorgium: how do you get the email address? [09:45] mape: from a previous project I did [09:45] Dmitry1 has joined the channel [09:46] halorgium: mapping irc -> email? [09:46] mape: yeah, well nick [09:46] halorgium: http://github.com/api/v2/json/user/show/halorgium :) [09:46] halorgium: fill in the blanks! [09:46] halorgium: need a bot in here to oauth to github :P [09:47] halorgium: to associate freenode accounts to github accounts [09:49] mape: There we go [09:50] halorgium: mape: i meant all of em :P [09:50] halorgium: got the source someplace? [09:50] mape: Issue is most people don't keep the nick same on irc/github [09:50] halorgium: mape: hence the oauth! [09:51] mape: halorgium: gime a sec to clean it up a little [09:52] halorgium: ACTION ponders creating a github control bot [09:52] halorgium: i wonder if you can post to create a commit in a sane way [09:54] sechrist: can node's http.client interface with a http proxy? [09:54] sechrist: I don't see any options for it in the docs [09:54] halorgium: sechrist: don't believe so [09:54] stride has joined the channel [09:56] MattJ has joined the channel [09:56] lianj has joined the channel [09:58] mape: halorgium: http://nodejs.se/runGeneration.js [09:58] sechrist: well damn that was easy [09:58] _announcer: Twitter: "Example installation on ubuntu Node.js to use WebSocket: http://bit.ly/9Xmrm5" [fr] -- jpvincent. http://twitter.com/theystolemynick/status/17780395277 [09:58] mape: If you find anything that is obviously dumb/can be improved be sure to give me a shout [09:59] sechrist: you just pass the whole url as the pathname [09:59] sechrist: and createclient on the proxy [09:59] rolfb has joined the channel [09:59] halorgium: sechrist: ah, true [10:00] halorgium: GET http://google.com/ HTTP/1.0 [10:00] tmedema: ACTION pokes orlandov [10:01] halorgium: mape: ah, so you aren't collecting logs yourself [10:02] mape: halorgium: nope used felixge since he has them way back [10:03] halorgium: yer, thought you might've been streaming in from now [10:03] mape: yeah I guess an irc bot to do it might be more sane, but this was easier initially [10:04] halorgium: irc -> json-http stream [10:04] freshtonic has joined the channel [10:05] rolfb has joined the channel [10:05] mscdex: Json Bourne [10:05] mscdex: huhu [10:15] tmedema: Hi folks. I'm trying to build orlandov's sqlite_bindings.node file. First node-waf returned that I do not have "sqlite3" and "library sqlite3" installed. So, I downloaded sqlite3, unpacked, then ./configure, make, make install... everything went OK. However when I now try to configure the sqlite_bindings file it does say that "library sqlite3" is installed, but it says that "sqlite3" is not installed. Yet I just installed it and I c [10:17] aubergine has joined the channel [10:19] pufuwozu has joined the channel [10:21] blackdog_ has joined the channel [10:25] mscdex: tmedema: you got cut off there [10:28] tmedema: hmm [10:28] tmedema: mscdex: I'm trying to build orlandov's sqlite_bindings.node file. First node-waf returned that I do not have "sqlite3" and "library sqlite3" installed. So, I downloaded sqlite3, unpacked, then ./configure, make, make install... [10:28] tmedema: everything went OK. However when I now try to configure the sqlite_bindings file it does say that "library sqlite3" is installed, but it says that "sqlite3" is not installed. Yet I just installed it and I can run sqlite3 by calling the command sqlite3 anywhere. [10:28] meso has joined the channel [10:28] blackdog_: tmedema, you want to install the sqlite3 headers [10:29] mscdex: tmedema: i wouldn't worry about it if the bindings compile fine [10:29] tmedema: mscdex: I did ignore it but then I get somekind of missing module error when I launch a test [10:29] tmedema: how blackdog_ ? [10:30] blackdog_: tmedema, usually in debian, it's apt-get install libsqlite3-dev [10:30] blackdog_: i don't know on centos [10:30] blackdog_: but a package like that [10:31] tmedema: why can't I find those at http://www.sqlite.org/download.html blackdog_ ? [10:32] tmedema: in CentOS there is yum install, but it doesn't find sqlite3 nor libsqlite3-dev [10:32] tmedema: so I had to wget the source from sqlite.org [10:32] blackdog_: tmedema, conv on other channel [10:33] tmedema: roger [10:33] pufuwozu has joined the channel [10:34] jetienne has joined the channel [10:34] concernedcitizen has joined the channel [10:34] davidwalsh has joined the channel [10:36] Dmitry1 has joined the channel [10:36] hellp has joined the channel [10:44] pufuwozu has joined the channel [10:48] zomgbie has joined the channel [10:51] neytema has joined the channel [10:51] hojberg has joined the channel [10:55] femto has joined the channel [11:00] sanchothefat has joined the channel [11:01] _announcer: Twitter: "@SayB http://howtonode.org/express-mongodb #mongo #nodejs" -- Ciaran Jessup. http://twitter.com/ciaran_j/status/17782885443 [11:05] stride: tmedema: if you haven't found it yet, i think sqlite-devel in the centos repos is what you're looking for [11:08] tmedema: found it thanks stride [11:11] mklappstuhl has joined the channel [11:13] margle has joined the channel [11:16] Tim_Smart has joined the channel [11:20] jetienne: q. is there a way to tune the bandwidth used by a connection ? like output data at no more than 40kbyte/s [11:22] sechrist has joined the channel [11:23] sechrist_ has joined the channel [11:31] jetienne: i guess not :) [11:31] jetienne: is kiwi working better than npm ? [11:33] Astro: wasn't kiwi osx-only? [11:35] jetienne: Astro: dunno. i havent tried it. i did a npm package 2 months ago and npm failed/crashed like 6 time out of 8 :) not a good record.. just looking for a viable alternative [11:36] Astro: npm got better I think [11:36] Astro: at least it can install my pkgs... [11:36] jetienne: Astro: lucky you :) [11:36] jetienne: kiwi is cross plateform from http://github.com/visionmedia/kiwi [11:37] Astro: oh, that's new [11:37] jetienne: hmm unfortunayly both relies on the same package.json [11:38] jetienne: i just want one which works [11:38] blackdog has joined the channel [11:38] maushu: Hmmm. [11:39] Astro: hrm, can't npm install kiwi :/ [11:39] jetienne: apparently the 2 package.json are that incompatible... not that bad [11:40] jetienne: are=arnt [11:41] jetienne: maybe i should simply do a "make install/uninstall" makefile, the time nodejs got a working package manager everybody agree on [11:43] ph^ has joined the channel [11:43] maushu: What are you doing here blackdog? [11:44] rolfb has joined the channel [11:49] Tim_Smart has joined the channel [11:50] jetienne: LIB_DEST = ~/.node_libraries <- people install lib at the user level... but executable at the system level [11:51] jetienne: visionmedia comes here sometime ? [11:56] geojeff has joined the channel [11:58] Dmitry1 has joined the channel [11:58] keeto has joined the channel [12:06] margle has joined the channel [12:09] skaurus has joined the channel [12:10] skaurus: hello! I have a question. Where i can find http.js for debugging? ( or file which loaded on require('http') ) [12:12] keeto has joined the channel [12:12] caolanm: skaurus: http://github.com/ry/node/blob/master/lib/http.js ? [12:13] skaurus: no, where i can find it in my system :) [12:13] skaurus: or i should edit http.js in sources and then run make install? [12:15] caolanm: if I'm messing with node source I have a seperate checkout [12:15] caolanm: and run make, but not make install [12:15] caolanm: then you can run node from the bin directory in the checked out repo [12:16] caolanm: without messing with your system install [12:17] jetienne: skaurus: you can run node without installing it. it would be my choise in you case [12:17] jetienne: jerome@jmebox:~/opt/node$ build/default/node -v [12:17] jetienne: v0.1.100 [12:17] skaurus: caolanm, jetienne: thanks, will try that! [12:20] gormer has joined the channel [12:21] phiggins has joined the channel [12:25] devtime has joined the channel [12:29] jashkenas has joined the channel [12:31] mklappstuhl has joined the channel [12:31] zapnap has joined the channel [12:32] _announcer: Twitter: "Looks like I'm going to miss a Node.js meetup with Ryan Dahl tonight in Cologne :(" -- Jens Ohlig. http://twitter.com/johl/status/17787051761 [12:34] mape: Whats the deal with Eagle Scouts? [12:36] markwubben has joined the channel [12:39] rolfb: they don't see no crows [12:40] _announcer: Twitter: "Node.js http://post.ly/lvlQ meetup on Tuesday" [de] -- Michael Bumann. http://twitter.com/Bumi/status/17787476238 [12:47] kriszyp has joined the channel [12:48] maushu: So, ryah is going to germany now? [12:48] tzmartin has joined the channel [12:49] jetienne: q. where is the doc for the new console.* stuff ?. [12:50] mrdoob has joined the channel [12:52] Tim_Smart: jetienne: Object.getOwnPropertyNames(console) :D [12:52] jetienne: Tim_Smart: :) i guess i will have to see the source [12:52] jetienne: i used a firebug.js to emulate up to now [12:52] jetienne: good to share code between browser and server [12:54] Tim_Smart: jetienne: http://github.com/ry/node/blob/master/src/node.js#L192 [12:55] jetienne: Tim_Smart: thx [12:55] Tim_Smart: mrdoob: Whats the server load now? [12:55] Tim_Smart: The dots are like flys [12:56] mrdoob: 100% [12:56] mrdoob: :( [12:56] maushu: I wonder how v8 handles debugging in evals. [12:56] Tim_Smart: Ouch. [12:56] mrdoob: 55 people connected [12:56] Tim_Smart: Heh. [12:56] mrdoob: mm [12:56] mrdoob: 61 [12:56] jetienne: hmm ryan forgot console.dir [12:57] Tim_Smart: mrdoob: Did you get deltas implemented? [12:57] mrdoob: no :/ [12:57] mrdoob: haven't had time to work on the project since saturday [12:57] mw has joined the channel [12:58] Tim_Smart: Right. You also need to cut down on commands somehow. [12:58] mrdoob: or just limit it to up to 3 people per room [12:59] mrdoob: mmm, 82 people [12:59] mrdoob: I think I'll have to switch it off [12:59] Tim_Smart: Did it get published somewhere? [13:00] mrdoob: my twitter [13:01] tacobreath has joined the channel [13:01] skaurus has joined the channel [13:01] skaurus: hello again :) I found a bug in http module and have fix for it. How and where i should submit it? [13:02] skaurus: bug about parsing headers with empty values [13:02] maushu: Make a diff and then email it to ryah? [13:03] skaurus: pretty obvious, i think, just doing it for first time ;) [13:03] skaurus: thank you [13:03] DozyPieman has joined the channel [13:06] Tim_Smart: skaurus: You could also open a issue / start a topic on the mailing list with the patch to get others to pitch in. [13:06] jetienne: mrdoob: anyway to get a username ? [13:07] mrdoob: there is a option on the menu... [13:07] mrdoob: there is only 2 options on the menu [13:07] phiggins has joined the channel [13:07] mrdoob: ... [13:09] maushu: mrdoob: It seems your menu is not idiot proof, I'm afraid. [13:09] mrdoob: I think I'll try to make it single option then [13:09] mrdoob: ;) [13:10] skaurus: Tim_Smart: mailing list is at http://groups.google.com/group/nodejs ? [13:10] Tim_Smart: Correct. [13:10] skaurus: ok, i do it both ways [13:10] jetienne: mrdoob: just make is appears as a menu [13:10] maushu: I found this: http://code.google.com/p/v8/wiki/DebuggerProtocol [13:10] maushu: Anyone knows how to use this with node.js? [13:10] Tim_Smart: maushu: Eclipse or something. [13:10] mrdoob: jetienne, Windows 95 kind of menu? [13:11] Tim_Smart: http://wiki.github.com/ry/node/using-eclipse-as-node-applications-debugger [13:11] jetienne: mrdoob: nope, just something which is clear on the page.you got flattr in green and some unclear stuff on top [13:11] maushu: Tim_Smart: But does eclipse use the json protocol? [13:11] Tim_Smart: maushu: Not sure :/ [13:11] jetienne: mrdoob: just feedback [13:11] Tim_Smart: Haven't tried it out quite yet. [13:11] maushu: I connected directly to node.js in debugging mode and tried to send those commands, it just echoes stuff. [13:12] mrdoob: jetienne, yep, thanks. this is just an experiment of node.js, haven't spent much on UX design [13:12] maushu: I think it uses a http protocol. [13:12] maushu: mrdoob: Link. \o/ [13:12] mrdoob: maushu: mrdoob.com/lab/javascript/multiuserpad/ [13:12] mrdoob: damn chrome [13:13] mrdoob: maushu: http://mrdoob.com/lab/javascript/multiuserpad/ [13:14] jashkenas: mrdoob: folks behind firewalls can't see it ... because it's connecting off port 80. [13:14] jashkenas: maybe you can reverse proxy from nginx or something. [13:16] mrdoob: jashkenas, good to know, there are too many users already tough [13:16] mrdoob: *though [13:16] jashkenas: ha. [13:17] mape: http://nodejs.se/ fixed time offset, and if you hover you can see what the first thing was people said [13:17] mape: That were captured by logs that is [13:17] Tim_Smart: mrdoob: It's sending around 15-20 kb/s worth of commands :p [13:17] _announcer: Twitter: ""Threads should be used by experts only. Experts program in C." Ryan Dahl creator of Node.js" -- Aurélien Sibiril. http://twitter.com/aureliensibiril/status/17789529292 [13:18] jashkenas: mape: same goes for you on nodejs.se on port 9999. [13:18] mape: jashkenas: Well if they can't see it they probly aren't suppose to? :P [13:19] jashkenas has left the channel [13:20] shimondoodkin has joined the channel [13:20] mrdoob: mape: that's what I was going to say :) [13:21] Blackguard has joined the channel [13:26] mape: Anyone know of a desktop app for osx that allows you to get stats from apache logs? [13:31] elliottcable: Hey y’all. [13:31] jetienne: mrdoob: maybe good to clear the page from time to time, it is almost black now :=) [13:31] jashkenas has joined the channel [13:31] mrdoob: jetienne, refresh [13:31] mape: elliottcable: what is up with eagle scouts? [13:31] elliottcable: working on my résumé, @bluebie suggested I ask peeps on IRC for commentary on my work, stuff I can quote [13:32] elliottcable: any of you who’re familiar with my work, commentary of any sort would be appreciated… [13:32] jetienne: mrdoob: ok. it is taking 35kbyte/s here. is that normal [13:32] mrdoob: jetienne, yep, it's brute force [13:33] gf3 has joined the channel [13:33] jetienne: mrdoob: a good but simple sketching program with like 5 users could be usefull as whitebrand [13:33] mrdoob: whitebrand? [13:34] mrdoob: yeah I was thinking that, unlimited users was good to test the performance of everything [13:34] mrdoob: but if I move this project somewhere will be up to 3 users per room [13:35] jetienne: mrdoob: a business term. whitebrand = you rent the service and other advertize it as their own. like they can include the multipad in their own site without you appearing on it [13:35] mrdoob: 2-3 users interaction seem fun [13:35] mape: Hmm I got 18,729 page views since someone put http://wargamez.mape.me/ on hackernews [13:36] jetienne: mrdoob: like a white board but for people far from each other [13:36] mrdoob: jetienne, yeah [13:36] maushu: mape: "someone", eh? [13:36] mape: For around 23% it didn't work. [13:36] mape: maushu: hehe yeah [13:36] maushu: I knew it was you! [13:37] mape: hmm was refered by scobleizer.com .. [13:38] elliottcable: hahaha [13:38] jetienne: nodejs community is surely quite dynamic :) [13:38] _announcer: Twitter: "impromptu #nodejs meetup in cologne tuesday night. http://coworkingcologne.posterous.com/nodejs-meetup-am-dienstag" -- Ryan Dahl. http://twitter.com/ryah/status/17790752173 [13:38] elliottcable: pfft it screwed up my location [13:38] mape: seems like it was some generic twitter thingy [13:39] elliottcable: Washington my ass, I’m in Alaska [13:39] mape: Is Forrst any good? [13:40] _announcer: Twitter: "slides from my #nodejs talk at #webworkerscamp http://nodejs.org/web_workers_camp.pdf" -- Ryan Dahl. http://twitter.com/ryah/status/17790818286 [13:40] mape: elliottcable: you should call your ISP [13:40] elliottcable: pfft [13:40] elliottcable: why complain to my ISP when I can complain to someone much more nearby? [13:40] elliottcable: ACTION points at you [13:40] elliottcable: YOUR FAULT [13:41] mape: Were only like 9k unique visitors [13:41] mape: Don't really get why people say they get "hackernewsed" [13:42] mape: And around 7k unique IPs [13:42] mrdoob: yeah, hackernews isn't really a lot of hits [13:42] mrdoob: slashdot is [13:42] elliottcable: I don’t know, they probably count for more [13:42] elliottcable: higher quality so to speak of visitor [13:42] mrdoob: but these kind of sites are annoying [13:42] elliottcable: ones more likely to follow/utilize/contribute to your project/system/community/site/etc [13:42] mrdoob: stumbleupon kind of hits at least are constant every day [13:43] unscene has joined the channel [13:43] mape: Pushed like 50MB per hour.. So could almost do that with a 56k modem :P [13:44] mape: Or well not really but yeah [13:44] mape: Guess that is why the load never went over 0.09 [13:48] jblanche has joined the channel [13:53] unscene: any good debuggers out there? [13:54] margle has joined the channel [13:55] shimondoodkin: searches in google says you should use eclipse [13:55] unscene: lol [13:57] mitkok has joined the channel [13:58] shimondoodkin: http://wiki.github.com/ry/node/using-eclipse-as-node-applications-debugger [13:59] unscene: oh man i thought you were puling my leg [13:59] unscene: thx :D [14:00] micheil: ryah: you know you had a code error in slide 15? [14:00] micheil: net.addListener vs s.addListener [14:01] Ori_P has joined the channel [14:03] margle has joined the channel [14:05] micheil: ryah: some good slides otherwise. [14:11] mape: http://rem.im/tron [14:12] mape: someone should throw some graphics on that and make it multiplayer [14:14] shimondoodkin: looks good, who did this? [14:14] mape: rem [14:14] mape: oh it is multiplayer [14:14] mape: shimondoodkin: you are in [14:14] mape: ? [14:15] shimondoodkin: there is a need to add names to the the heads of the snakes [14:15] zapnap has joined the channel [14:15] shimondoodkin: no i am game over [14:15] mape: refesh? [14:15] shimondoodkin: i just was in [14:16] mape: hmm [14:16] mape: guess it doesn't work [14:17] shimondoodkin: when you go back it gameovers [14:23] shimondoodkin: and maybe to make the game much lower so you can do other things like to chat [14:29] keeto has joined the channel [14:31] kodisha has joined the channel [14:32] proppy has joined the channel [14:32] bradleymeck: morning everybody~ [14:32] royi has joined the channel [14:33] shimondoodkin: hey bradleymeck morning [14:34] davidwalsh has joined the channel [14:34] proppy: Hi, typo spotted in node/LICENSE http://gist.github.com/464407 [14:35] khug has joined the channel [14:36] _announcer: Twitter: "Wonder if there's an ruby sinatra mustache javascript node.js open source crazy software shop here in Bergen.." -- Bjarte Djuvik Næss. http://twitter.com/bjartn/status/17794341570 [14:36] royi: Hello guys, i was wondering if i can use node.js in an html page as i do with js and how? [14:36] mape: royi: to do what? [14:37] creationix has joined the channel [14:37] jakehow has joined the channel [14:38] bradleymeck: royi, kinda, you can use nodejs to serve things and stream things to an html page, but the vast majority of its features can not be accessed from the browser. That being said many modules for node.js do not even really require nodejs (and as such can be used in the browser w/ minor tweaks) [14:39] royi: anybody? at least tell me how stupid if this question is stupid so i'll know i'm barking up the wrong tree :) [14:39] jashkenas: royi: yep, wrong tree. [14:39] aubergine has joined the channel [14:41] jashkenas: Has anyone played around with doing an Arel/Sequel like ORM in Node yet? [14:42] aubergine has joined the channel [14:43] bradleymeck: people were talking about orm in the last couple days, s'all i know [14:43] jashkenas: perstore, I guess, would be the closest... [14:43] jashkenas: and(eq(foo,3),lt(price,10)) [14:46] wmealing has joined the channel [14:48] bradleymeck: brings back memories of lisp [14:48] wmealing: when I install a library via kiwi, am I wrong to expect you to just be able to require and use it. [14:48] wmealing: what should I be doing ? [14:50] jashkenas: wmealing: perhaps consider using npm instead? I think kiwi is in a semi-comatose state these days. [14:50] shimondoodkin: if you use kiwi you should require first kiwi and then use it to require other modules [14:51] wmealing: right. [14:51] shimondoodkin: iprefer doing it with http://github.com/shimondoodkin/optparse-js/commit/5035cc0a8aa91287837fd9e32d49f2df37645654 and simply git clone in a deps folder [14:51] shimondoodkin: and use regular require [14:52] shimondoodkin: i mean require.paths.unshift(__dirname); [14:52] wmealing: ok.. that makes sense. [14:54] jashkenas_ has joined the channel [15:00] manveru: argh, the backtraces from haml.js are just worthless :| [15:01] manveru: "SyntaxError: (view/layout.html.haml): Unexpected string"... where? [15:01] cloudhead has joined the channel [15:03] _announcer: Twitter: "Just discovered nodejs. Quite possibly one of the most promising ideas around at the moment. Very cool stuff." -- Nick Telford. http://twitter.com/nicktelford/status/17796154597 [15:04] _announcer: Twitter: "Morning node.js Meetup in Köln. Did I have always looked at me Schonmal: http://bit.ly/bwUcPy js # # # nodejs cowoco" [de] -- Christian Scholz. http://twitter.com/mrtopf/status/17796209527 [15:04] manveru: ah... it doesn't like string interpolation... [15:11] sechrist has joined the channel [15:11] manveru: how do you merge two objects? [15:12] manveru: like {a: 1, b: 2}.merge({c: 4, d: 5}) [15:12] unscene: http://gist.github.com/464444 [15:13] manveru: heh, thanks :) [15:13] _announcer: Twitter: "just did first node.js hello world, now to try something a little bit more..." -- Andy McKay. http://twitter.com/andymckay/status/17796836014 [15:15] proppy: jquery.extends also allow to merge objects [15:15] proppy: it could be ripped out of jquery easily [15:15] manveru: yeah, but this is in node [15:15] shimondoodkin: i have an excellent merger [15:15] shimondoodkin: do you need? [15:15] manveru: hmm, i think express even has that... [15:17] proppy: manveru: http://gist.github.com/464449 [15:17] manveru: wow... [15:17] manveru: i really only need something simple :) [15:18] jashkenas_: while we're comparing implementations ... http://github.com/documentcloud/underscore/blob/master/underscore.js#L445-451 [15:19] manveru: http://github.com/visionmedia/ext.js/blob/master/lib/ext/core_ext/object/extensions.js#L5-20 [15:19] manveru: i'm using this, basically what unscene gave me [15:19] jashkenas_: yeah ... Object.keys is wonderful if you have it. [15:20] manveru: well, this is node... [15:20] proppy: didn't know about underscore, thanks for sharing :) [15:21] jashkenas_: I still get the heebie-jeebies about writing non-portable JS. It just feels so risky ... somehow. What if you want to copy-paste a handy function later on? [15:21] jashkenas_: Guess I just have to get over it. [15:21] shimondoodkin: http://github.com/shimondoodkin/nodejs-mongodb-app/blob/master/merger.js [15:21] proppy: jashkenas_: does it play well with node ? [15:21] jashkenas_: proppy: absolutely. [15:21] proppy: nice to know [15:21] jblanche: Hi guys, wondering if there is a node.js module for using it as an imap client ? [15:22] manveru: jashkenas_: i have no idea how portable js looks like... :) [15:22] jashkenas_: But you don't need it as much on Node -- because you already have map(), reduce(), forEach() etc. from ECMA5 . Much more handy to provide all of those across-browsers. [15:22] creationix: jashkenas_: at least Object.keys is proper ECMA 5th [15:22] manveru: i simply use jquery in the browser [15:22] creationix: but yeah, Object.getOwnPropertyNames is impossible to implement in the browser if it's not there already [15:23] jashkenas_: creationix: huh? why not? [15:23] jashkenas_: for (name in obj) if hasOwnProperty.call(obj, name) ... [15:23] creationix: Object.keys can be done with for..in [15:23] creationix: but getOwnPropertyNames included non-enumerable properties [15:23] creationix: so for..in can't see them [15:24] jashkenas_: ah, non-enumerable. thanks. [15:24] jashkenas_: (what a nightmare)... [15:24] khug has joined the channel [15:25] manveru: sixbit: http://gist.github.com/464460 [15:25] manveru: haven't tested it yet, but this should be all you need for openid with janrain [15:26] _announcer: Twitter: "Took a brief break from nodejs and fabjs to look into metaprogramming in JavaScript. Should be back in fabjs land shortly." -- A'braham Barakhyahu. http://twitter.com/BlessYahu/status/17797656999 [15:27] _announcer: Twitter: "Released Task-Joose-NodeJS-0.03 http://tinyurl.com/32tpw7a #jsan" -- SamuraiJack8. http://twitter.com/SamuraiJack8/status/17797722048 [15:27] aubergine_ has joined the channel [15:28] ph^ has joined the channel [15:30] admc_ has joined the channel [15:30] admc has joined the channel [15:30] tmedema: Q: when building node, what files in the build folder should be copied to the node binary folder (where you launch it)? Because it seems like there are still source files there.. and the js files in the lib folder dont seem to be used by node. I can require('fs') in node just fine without that lib folder. [15:31] _announcer: Twitter: "@EugeneWare yep. I handed it off to him. We announced it on the node.js and libxmljs mailing lists." -- Jeff Smick. http://twitter.com/sprsquish/status/17798021575 [15:32] stagas has joined the channel [15:32] hellp has joined the channel [15:33] aubergine has joined the channel [15:35] tomc has joined the channel [15:35] markwubben has joined the channel [15:41] TomY: tmedema, why not pass --prefix=some_tmp_directory to ./configure and then run make install to work out what files are necessary? [15:42] TomY: ACTION wasn't saying that just to get on wargamez.mape.me at all ;-) [15:42] unscene: woot my oauth lib is done [15:43] sr: unscene, nice [15:43] sr: ACTION wasn't either [15:43] manveru: unscene: does it do openid too? [15:43] tjholowaychuk has joined the channel [15:44] unscene: no just oauth 1.0a [15:44] unscene: i am making a simplegeo client and had to roll my own oauth lib [15:44] shimondoodkin: how oauth works? [15:44] shimondoodkin: how to make a server for oauth? [15:44] unscene: http://dev.twitter.com/pages/auth [15:45] unscene: good article on it [15:45] shimondoodkin: i want to make a website with services waht should i do [15:45] unscene: http://oauth.net/core/1.0a/ [15:45] shimondoodkin: thnask ill readit [15:45] shimondoodkin: thanks ill read it [15:45] viktors has joined the channel [15:46] proppy: a simplegeo client in node.js ? [15:46] proppy: unscene: ^ ? [15:46] mpoz2 has joined the channel [15:46] unscene: yes [15:46] proppy: you might be interested in Pincaster then http://github.com/jedisct1/Pincaster it borrow some inspiration of simplegeo api [15:47] proppy: it would be nice to have a js client for it :) [15:47] unscene: oh nice [15:47] _announcer: Twitter: "@rem Okay, well someone copped a slight education about websocket protocols & the node.js servers which support draft76. :D" -- Micheil Smith. http://twitter.com/miksago/status/17799105262 [15:47] unscene: wow the apis are really similar [15:48] proppy: yes, I'm sure jedisct1 would be happy to have a node.js client for it [15:48] proppy: you can join #pincaster if interested [15:48] _announcer: Twitter: "on the realm of web servers and interesting stuff, http://nodejs.org/web_workers_camp.pdf" -- Nuno Morgadinho. http://twitter.com/morgadin/status/17799181662 [15:49] unscene: sure thing, i just had a coding binge all night to finish this [15:49] unscene: so im off [15:49] proppy: gn [15:49] tmedema: TomY: when I do that I get a folder with bin, include, lib and share folders.. yet only running bin/node seems to work without the other folders ? [15:50] _announcer: Twitter: "@mrdoob r u using node.js ?" -- julien barbay. http://twitter.com/y_nk/status/17799253011 [15:50] tmedema: also the lib folder is pretty much empty [15:51] richardhodgson has joined the channel [15:51] _announcer: Twitter: "@y_nk Yes. node.js + node-websocket-server" -- Mr.doob. http://twitter.com/mrdoob/status/17799351666 [15:52] [[zz]] has joined the channel [15:52] ben_alman has joined the channel [15:53] TomY: tmedema, I'm by no means an expert on this, but I'd guess that these are not strictly required for running node apps, but useful for other stuff... [15:53] TomY: like building extensions, embedding, getting docs, etc. [15:53] ben_alman has joined the channel [15:53] tmedema: TomY: so how is node using node.js and things like http.js when they are not there? [15:53] ben_alman has joined the channel [15:54] ben_alman has joined the channel [15:54] ben_alman has joined the channel [15:55] ben_alman has joined the channel [15:55] TomY: tmedema, that's probably a question for someone who actually builds node [15:57] _announcer: Twitter: "http://games.disktree.net/letter/ .. multiplayer letterdragging using haXe/node.js server" -- tong. http://twitter.com/disktree/status/17799767319 [16:03] mrdoob: test [16:03] mape: tust [16:04] mrdoob: mape, test2 [16:04] mrdoob: ha, nice :) [16:04] mape: mrdoob: peew pew [16:04] mrdoob: how do you get the geolocation? [16:04] richardhodgson: mape: v. cool [16:04] mape: mrdoob: whois+geoip [16:04] mape: richardhodgson: :) [16:05] Ori_P: Are there any of the organizers of the node knockout around? [16:05] mape: Doesn't seem like it [16:05] sechrist has joined the channel [16:05] mrdoob: mape, but which service for geoip? [16:05] mape: But I'm terrible for names [16:06] mape: mrdoob: http://www.geoiptool.com/ [16:07] mrdoob: ah nice [16:07] mrdoob: interesting :) [16:07] mape: Would be nice to have an open one running node with a decent database [16:07] mrdoob: agreed [16:10] _announcer: Twitter: "Nice #node.js experiment by @mape. Visualising the activity of IRC Channel #node.js @ FreeNode. http://wargamez.mape.me/" -- Mr.doob. http://twitter.com/mrdoob/status/17800609078 [16:10] kersny has joined the channel [16:11] tyfighter has joined the channel [16:12] KungFuHamster_ has joined the channel [16:14] mape: So what are thoughts on the documentation? [16:14] mape: Would it be better if the separate sections were separate pages? [16:15] TomY: i like it, very easy to navigate [16:15] richardhodgson: mape: maybe use the location stuff in the browser, if its available? http://www.readwriteweb.com/archives/google_chrome_becomes_location_aware.php (Firefox and Opera have this too) [16:15] mape: richardhodgson: Well it fetches stuff from irc [16:15] TomY: it'd be nice to be able to link to certain section more easily [16:15] mape: then you would have to authenticate users [16:16] TomY: mape: are you talking about node docs? [16:16] mape: TomY: The new docs do that.. Anchors that is [16:16] jashkenas_ has left the channel [16:16] richardhodgson: mape: good point :p that would mean everyone in IRC would need wargamez open in a browser [16:17] mape: yeah, the idea is that it is all passive [16:17] TomY: ah, i see you can pick up the anchors from the link. Shame it's not in the address bar. [16:17] mape: Harder to get traction other :) [16:17] mape: TomY: It does in the new [16:17] quirkey has joined the channel [16:17] TomY: gotcha [16:17] _announcer: Twitter: "Love the lazer sound effect on this node.js asteroids game http://bit.ly/dgZp6J #node" -- Paul James Campbell. http://twitter.com/pauljcampbell/status/17801067690 [16:22] creationix has joined the channel [16:22] MrNibbles: thats pretty fun [16:23] jetienne has joined the channel [16:24] olegp has joined the channel [16:26] drewolson has joined the channel [16:26] drewolson: anyone out there using express? I'm seeing an issue with the parseQuery method [16:27] tjholowaychuk: drewolson: use HEAD [16:27] kersny has joined the channel [16:27] drewolson: tjholowaychuk: will do, is there an easy way to do that using npm? i'll do so manually if not [16:27] tjholowaychuk: nope, just grab the tarball or clone the repo [16:27] tjholowaychuk: I should probably push a new release [16:28] tjholowaychuk: but id rather wait for the rewrite [16:28] drewolson: alright, i'll grab the tarball [16:28] drewolson: thanks [16:29] jetienne: if $PROGRAM_NAME == __FILE__ <- how to do that in node ? [16:29] aubergine_ has joined the channel [16:31] drewolson: tjholowaychuk: looks like with head i'm getting Error: Cannot find module 'ext' [16:31] tjholowaychuk: drewolson: git submodule update --init [16:31] mat__ has joined the channel [16:32] Guest62662: KungFuHamster_: testin the wargamez. ignore this [16:32] Guest62662: hm.. didnt work [16:32] drewolson: ah, doesn't work if downloading a tarball i'd assume [16:32] Guest62662: tjholowaychuk: test [16:32] Guest62662: drewolson: test [16:33] tjholowaychuk: drewolson: maybe not :( I dont think github packages up the submodules [16:33] mape: Guest62662: It doesn't? [16:33] drewolson: tjholowaychuk: looks like no. i was able to use npm to do a direct install from the tarbal, but no submodules [16:33] Guest62662: mape: no, it's working [16:34] zomgbie has joined the channel [16:34] Guest62662: zomgbie: ignore me [16:34] Guest62662: zomgbie: sorrz [16:40] mitkok has joined the channel [16:40] SubStack has joined the channel [16:41] bpot has joined the channel [16:42] endor has left the channel [16:44] jetienne: if $PROGRAM_NAME == __FILE__ <- this is ruby, how to do that in node ? anybody for this one ? [16:44] drewolson: tjholowaychuk: is there an easy way to add the :each filter to haml-js? the github page mentions a plugin, but i don't seem to be able to find a reference to that plugin anywhere [16:45] tjholowaychuk: drewolson: express uses my haml.js implementaiton [16:45] tjholowaychuk: you can use anything you want though [16:45] tjholowaychuk: but haml.js is bundled with it [16:45] tjholowaychuk: you can use - each val in arr [16:46] micheil: ping [16:46] drewolson: i used: :each notification in notifictions [16:46] micheil: okay.. so I still have a net connection.. [16:46] tjholowaychuk: drewolson: jade is a better implementation though http://jade-lang.com [16:46] cromney has joined the channel [16:46] SubStack: jetienne: __filename [16:46] drewolson: and got the error: 5 filter `each' does not exist [16:46] tjholowaychuk: drewolson: yeah that is haml-js though, not my implementation... [16:46] tjholowaychuk: mine is more like real haml [16:47] drewolson: are there docs showing how to drop in my own renderer? [16:47] tjholowaychuk: anything that can require(engine).render(str, options) [16:47] tjholowaychuk: as long as it's installed, and you have foo.ENGINE.html it will work [16:48] tjholowaychuk: or wait no foo.html.ENGINE [16:48] tjholowaychuk: haha [16:48] tjholowaychuk: :D [16:48] tjholowaychuk: so layout.html.jade after you npm install jade [16:48] drewolson: tjholowaychuk: ok, giving it a shot, more questions forthcoming :) [16:49] jetienne: if( process.argv[1] == __filename ) <- this was the answer [16:49] jetienne: SubStack: thanks [16:50] drewolson: tjholowaychuk: does jade implement the :each filter? don't see it in the docs [16:50] SubStack: ah yeah argv [16:50] SubStack: confusing indexing in argv [16:50] tjholowaychuk: drewolson: each is not a filter lol something like :markdown is a filter [16:50] tjholowaychuk: each is just.. iteration, you can do - items.forEach(function(item){ ... - }) [16:50] tjholowaychuk: or - for (var key in obj) [16:50] tjholowaychuk: etc [16:51] drewolson: got it [16:51] drewolson: thanks [16:51] tjholowaychuk: np [16:54] sveimac has joined the channel [16:55] drewolson: tjholowaychuk: should something like this work: [16:55] drewolson: -notifications.each(function (notification) { [16:55] drewolson: %li= notification.name [16:55] drewolson: -}); [16:55] tjholowaychuk: with jade? no % prefix [16:55] tjholowaychuk: on tags [16:56] drewolson: with you implementation of haml.js, can i execute code using - as well? [16:56] drewolson: s/you/your/g [16:56] tjholowaychuk: yeah, but it is not buffered as well as in jade, so you have to use - each item in items [16:56] tjholowaychuk: which is not vanilla js (obviously) but it's there [16:57] drewolson: alright, thanks [16:58] drewolson: looks like if a do - each item in items, and try to reference item in a nested line, it is undefined [16:59] tjholowaychuk: maybe it is undefined :p [16:59] mitkok: Hye, guys. Anyone using vim for writing node code ? Just want to ask you do you use different syntax js file or you tweaked the configuration ? [16:59] tjholowaychuk: should work though, check out the specs for reference if you need [17:00] rgl has joined the channel [17:03] drewolson: tjholowaychuk: should jade rendering work given a filename? or do i need to slurp the content into a string first [17:04] tjholowaychuk: drewolson: you can use renderFile() or render() which accepts a string [17:09] JimBastard has joined the channel [17:09] mape: anyone has a forrst invite? [17:09] JimBastard: negatron [17:10] felixge has joined the channel [17:10] felixge has joined the channel [17:10] kevm_ has joined the channel [17:11] femto has joined the channel [17:11] cloudhead has joined the channel [17:11] figital has joined the channel [17:12] jetienne: anybody knows a bandwidth limiter on a connection ? [17:13] felixge: ryah: did you get my messages about that CONNECT patch the other day? [17:17] JimBastard: jetienne: there is charlies proxy on mac os [17:17] JimBastard: charles [17:18] jetienne: JimBastard: this is more to be included directly in my nodejs server [17:18] JimBastard: yeah i dunno about that [17:18] jetienne: JimBastard: currently i do a small write and then a sleep... clearly not nice [17:18] JimBastard: JS can sleep? [17:18] jetienne: setTimeout [17:19] JimBastard: yeah i have no clue, never implemented that before [17:19] jetienne: i have but in c++ :) [17:19] JimBastard: maybe there is some middle ware you can get that will do it for you [17:20] _announcer: Twitter: "i must say, node.js does look rather nice" -- Andrew. http://twitter.com/darkliquid/status/17805014863 [17:23] zomgbie has joined the channel [17:23] _announcer: Twitter: "@andymckay :) I mean't what's node.js. A little googling now I'm back at my desk and I found http://nodejs.org/ - very interesting" -- Chris Simpson. http://twitter.com/chris_e_simpson/status/17805209218 [17:29] cloudhead has joined the channel [17:30] markwubben has joined the channel [17:33] tilgovi has joined the channel [17:38] aubergine has joined the channel [17:40] _announcer: Twitter: "Is #node.js really this awesome? Holy crap!" -- Kenneth Love. http://twitter.com/kennethlove/status/17806207850 [17:41] Yuffster has joined the channel [17:42] benburkert has joined the channel [17:47] JimBastard: !tweet @kennethlove yes, yes it is. [17:54] gf3: !tweet @JimBastard NO NO U [17:55] _announcer: Twitter: "@LuigiMontanez here's a refactoring to node.js events: http://bit.ly/cp0loK - you'd use dom events for similar effect on the client" -- brandon_beacher. http://twitter.com/brandon_beacher/status/17807076451 [17:56] Ori_P has joined the channel [17:57] _announcer: Twitter: "Hmmmm, head out with the camera,.. or get back to some node.js ,....... Decisions decisions" -- Gary Rafferty. http://twitter.com/gary_rafferty/status/17807184160 [18:02] rauchg_ has joined the channel [18:02] ajpiano has joined the channel [18:07] voodootikigod_ has joined the channel [18:09] cloudhead has joined the channel [18:11] unscene has joined the channel [18:12] maushu has joined the channel [18:12] unscene: shameless plug: http://github.com/unscene/node-oauth/ [18:13] mape: better then javajunkys? [18:13] sanchothefat has joined the channel [18:13] creationix has joined the channel [18:15] b_erb has joined the channel [18:18] rauchg_ has joined the channel [18:19] _announcer: Twitter: "Thus, in the @ # sublab's is just around nodejs" [de] -- j m. http://twitter.com/feuervogel83/status/17808433499 [18:21] everton has joined the channel [18:23] liucougar_ has joined the channel [18:25] _announcer: Twitter: "#jade for #nodejs is pretty darn sweet!" -- Torgeir. http://twitter.com/torgeir/status/17808752072 [18:26] phiggins has joined the channel [18:28] isaacs has joined the channel [18:29] isaacs: npm now has a one-line install command [18:29] isaacs: curl http://npmjs.org/install.sh | sh [18:31] mape: snassy [18:31] mjr_ has joined the channel [18:33] _announcer: Twitter: "Node.js 0.1.100 packages available for Ubuntu Lucid and Karmic: http://bit.ly/atCQ1S #ubuntu #nodejs" -- Chris Lea. http://twitter.com/chrislea/status/17809186093 [18:35] rolfb has joined the channel [18:40] aubergine has joined the channel [18:46] jashkenas has joined the channel [18:46] joshbuddy has joined the channel [19:00] sechrist has joined the channel [19:02] _announcer: Twitter: "Node.js Patterns http://goo.gl/fb/Gu3k0" -- Derek Hammer. http://twitter.com/hammerdr/status/17810750075 [19:05] tjholowaychuk has joined the channel [19:09] rauchg_ has joined the channel [19:09] tmedema: Anyone here using node with cygwin? I got it running but now I need to use orlandov's SQLite addon.... :( [19:15] liucougar__ has joined the channel [19:16] steadicat has joined the channel [19:23] mklappstuhl has joined the channel [19:30] hammerdr has joined the channel [19:32] stevendavie has joined the channel [19:34] liucougar has joined the channel [19:36] bradleymeck1 has joined the channel [19:37] isaacs: tmedema: you can get node to run on windows. but a LOT of node programs are not windows-compliant. [19:38] mjr_: I am not windows-compliant. [19:38] isaacs: tmedema: i've tried to make npm pretty agnostic, i mean, it *should* work as long as you have tar installed... but i don't test on cygwin at all. [19:41] raz has left the channel [19:42] _announcer: Twitter: "Working on my first #nodejs site now. It seems that it's mostly strapping hard-to-find packages together. Still seems too low-level..." -- Eric Clemmons. http://twitter.com/ericclemmons/status/17812818370 [19:43] bradleymeck1: !tweet @ericclemmons come to the #node.js channel on freenode for any questions [19:44] wilmoore has joined the channel [19:45] lianj has joined the channel [19:45] _announcer: Twitter: "Looking at NodeJs. Looks good to implement collaborative applications .. :-P" [es] -- Javier Toledo. http://twitter.com/javier_toledo/status/17813013703 [19:46] tmedema has joined the channel [19:46] ericclemmons has joined the channel [19:47] ericclemmons: I wonder how many people also arrive because of bradley's auto-responder on twitter :) [19:47] sh1mmer: isaacs: npm just utterly failed to install on my mac [19:47] ericclemmons: missing dev tools? [19:47] isaacs: sh1mmer: gist the log, please [19:47] sh1mmer: isaacs: I was about to :) [19:48] isaacs: :) [19:48] sh1mmer: have you tested npm head on 11 [19:48] sh1mmer: on 100 yet? [19:48] isaacs: sh1mmer: i'm running node at ry/master [19:48] sh1mmer: ok [19:49] sh1mmer: http://github.com/isaacs/npm/issues/issue/84 [19:49] ericclemmons: I've been using npm on my linux box, but just switched to Kiwi. Maybe I'm retarded, but I couldn't see package descriptions via npm [19:49] mape: moving from kiwi to npm might be the wrong way [19:49] isaacs: ericclemmons: npm ls lists them out. but yeah, it'd be better to show the descriptions [19:49] Astro: test [19:50] isaacs: ericclemmons: you can check out http://npm.mape.me for a proof of concept site that uses the jsonp data fromthe registry [19:50] ericclemmons: I found myself just parsing the json @ http://registry.npmjs.org/ [19:50] ericclemmons: nice [19:51] sh1mmer: mape: how are you doing license discovery? [19:51] isaacs: ericclemmons: i usually do that. the firefox jsonview extension makes it really nice [19:52] mape: sh1mmer: through the data supplied [19:52] sh1mmer: mape: NPM has it? [19:52] mape: If I recall correctly, yes [19:52] sh1mmer: ah ok [19:52] sh1mmer: I should read Isaac's docs [19:52] mertimor has joined the channel [19:53] isaacs: sh1mmer: so, it looks like you are doing "make install" on code that is not the latest [19:53] isaacs: sh1mmer: either update the code, or just do "make" [19:53] sh1mmer: isaacs: I just cloned from github [19:53] ericclemmons: I've been considering http://embeddedjs.com/ for my templating, or are you guys partial to any other lib? [19:53] sh1mmer: isaacs: I'm on the master branch [19:53] tjholowaychuk: ericclemmons: totally depends what you are into, I use http://jade-lang.com [19:54] matt_c has joined the channel [19:54] isaacs: sh1mmer: do you see the kludge lines at the top of npm.js? [19:54] mostlygeek has joined the channel [19:54] figital has joined the channel [19:54] sh1mmer: isaacs: also, `make` has the same failure [19:54] rolfb has joined the channel [19:55] ericclemmons: I prefer HTML over HAML, but primarily looking for a DTL-like syntax. I may checkout Dojo's implementation again: http://dojocampus.org/content/2009/04/17/dojo-dtl-basics/ [19:56] gwoo: ericclemmons: looks like mustache [19:56] ewdafa has joined the channel [19:56] ericclemmons: Good point. Just realized there's a node port called Mu [19:57] gwoo: it might even be in npm [19:57] jblanche has joined the channel [19:58] femto has joined the channel [19:59] ericclemmons: Since meeting @creationix @txjs, I'm having a go with Connect. [19:59] _announcer: Twitter: "node.js のOAuthライブラリ http://github.com/unscene/node-oauth" -- Toshihiro Shimizu. http://twitter.com/meso/status/17813689401 [20:03] bradleymeck1: !translate ライブラリ [20:03] _utility: Library [20:03] femtoo has joined the channel [20:04] maritz has joined the channel [20:10] cfq has joined the channel [20:10] _announcer: Twitter: "@topfunky when is the node.js peepcode due to hit?" -- Alastair Brunton. http://twitter.com/pyrat/status/17814271808 [20:11] _announcer: Twitter: "@pyrat Node.js is definitely high on my radar. Hopefully later this summer." -- Geoffrey Grosenbach. http://twitter.com/topfunky/status/17814328785 [20:12] mscdex: !translate necessitas node.js ahora [20:12] _utility: node.js now [20:12] mscdex: :S [20:12] mscdex: it missed the first part [20:14] mscdex: hmm... [20:14] opello: 'needs node.js now' [20:15] mscdex: i think it's trying to interpret 'necessitas' as the language of origin [20:15] opello: (but odd behavior :) [20:15] mscdex: ACTION nudges bradleymeck1 [20:16] mscdex: !translate necessitas necessitas node.js ahora [20:16] _utility: necessitas node.js ahora [20:16] mscdex: :o [20:16] opello: !translate spanish necessitas node.js ahora [20:16] _utility: necessitas node.js ahora [20:16] opello: !translate english necessitas node.js ahora [20:16] _utility: necessitas node.js ahora [20:16] opello: well then [20:16] aho has joined the channel [20:18] mscdex: !translate es necessitas node.js ahora [20:18] _utility: necessitas node.js ahora [20:18] mscdex: hrm [20:18] mscdex: oh well [20:20] mscdex: odd... google translate doesn't seem to understand verb conjugation and requires you to put the specifier in front? [20:20] JimBastard: i dunno [20:20] JimBastard: its all magic [20:20] JimBastard: and barely works [20:20] JimBastard: !translate spanish all hail [20:20] _utility: all hail [20:20] JimBastard: !translate english spanish all hail [20:20] kodisha has joined the channel [20:20] _utility: spanish all hail [20:21] JimBastard: fuuuu [20:21] mscdex: maybe you have to use the country codes or whatever [20:21] mscdex: language code [20:21] opello: !translate en es hello [20:21] _utility: is hello [20:21] ericclemmons: Is anybody else using supervisor ?http://github.com/isaacs/node-supervisor/ [20:21] opello: heh [20:22] isaacs: ericclemmons: i use it sometimes. i'm not sure, though, i may be the only one. [20:22] isaacs: :) [20:22] ericclemmons: It installs as a binary, or is it something I need to require to use? [20:22] mscdex: !translate es yo que node.js [20:22] _utility: I do that node.js [20:23] mscdex: :P [20:23] khug has joined the channel [20:23] ves__ has joined the channel [20:29] aubergine has joined the channel [20:30] ericclemmons: isaacs: instead of running "node app.js" you run "supervisor app.js" ? [20:30] isaacs: ericclemmons: so, you'd do something like this: node-supervisor -p app.js -w path-to-watch [20:30] isaacs: the -w is optional [20:30] ericclemmons: ahh, there it is [20:32] ericclemmons: Thanks! [20:32] _announcer: Twitter: "Ive posted Node.js Brief Overview http://bit.ly/byJfU3 #fb" -- Alastair Brunton. http://twitter.com/pyrat/status/17815401944 [20:33] _announcer: Twitter: "@ Bumi's meeting at the node.js see later on the game? :-) # Worldcup" [de] -- Christian Scholz. http://twitter.com/mrtopf/status/17815426608 [20:33] ericclemmons: the docs on the website had me assume the executable was simply "supervisor", not "node-supervisor" [20:34] khug: Hey all, is Conductor the only dependency-aware chaining thingy out there atm? [20:35] ericclemmons: Is there anything out there for it besides the 3 files @ http://github.com/creationix/conductor ? [20:36] khug: not that I know of [20:40] PyroPeter has joined the channel [20:43] _announcer: Twitter: "considering a combination of node.js, less.js and s3 for css handling. embrace the madness?" -- seaofclouds. http://twitter.com/seaofclouds/status/17815935564 [20:43] cloudhead has joined the channel [20:48] JimBastard: !tweet @seaofclouds the node.js irc rooms says, DO IT! [20:49] saikat has joined the channel [20:53] jblanche has joined the channel [20:57] xla has joined the channel [20:57] maushu has joined the channel [21:02] Tim_Smart has joined the channel [21:03] _announcer: Twitter: "plain hello world node.js program: 7600 r/s, adding a framework with only one route to it: 2500 r/s.. yay to frameworks ;-) #nodejs #js" -- Christian Scholz. http://twitter.com/mrtopf/status/17816969528 [21:06] rtl has joined the channel [21:06] jakehow has joined the channel [21:06] isaacs: !tweet @mrtopf Maybe you're using the wrong framework. Check out http://extjs.github.com/Connect/ [21:06] _announcer: Twitter: "framework version without logging: 3300 r/s. #nodejs" -- Christian Scholz. http://twitter.com/mrtopf/status/17817125780 [21:08] tjholowaychuk: isaacs: its probably express lol if you have all the plugins in use there is a lot of baggage [21:08] tjholowaychuk: but its all relative [21:08] isaacs: tjholowaychuk: yeah [21:08] isaacs: tjholowaychuk: i like the approach that you and tim are taking with connect. [21:08] isaacs: tjholowaychuk: being faster with a framework than without one, that's when you know it's a win. [21:09] tjholowaychuk: isaacs: ya its better, still not perfect but better [21:09] isaacs: yeah [21:09] isaacs: i still feel like connect is kinda hard to get started with [21:09] jashkenas has joined the channel [21:09] _announcer: Twitter: "@nodejsbot thanks for the hint. The goal would be to use tools, not a framework though. But will check connect out. #nodejs" -- Christian Scholz. http://twitter.com/mrtopf/status/17817255085 [21:09] isaacs: compared with, say, jsgi or fab [21:09] tjholowaychuk: the new api is really jsgi-ish [21:10] isaacs: orly? that'd be nice [21:10] tjholowaychuk: i think some people assume that it's bound to the "connect" executable [21:10] isaacs: closures > object literals [21:10] sanchothefat_ has joined the channel [21:10] tjholowaychuk: but its really not at all [21:10] isaacs: no, of course not. [21:10] isaacs: the connect exe just starts up your site with node, afaict, right? [21:10] _announcer: Twitter: "I think I am also not necessarily a friend of middlewares ;-) #nodejs #connect #wsgi #whatever" -- Christian Scholz. http://twitter.com/mrtopf/status/17817308688 [21:10] tjholowaychuk: isaacs: yeah it just has some candy for launching the server(s) [21:11] tjholowaychuk: and daemonizing soon GRRRRrrrr [21:11] Tim_Smart: tjholowaychuk: Can you start a connect server with the normal node binary? [21:12] tjholowaychuk: Tim_Smart: yup! it is just an instanceof http.Server [21:12] tjholowaychuk: so you can do whatever you like [21:12] tjholowaychuk: we just suggest exporting it as the module, so that it can potentially be launched with the executable, not mandatory at all though [21:13] Tim_Smart: Ah cool cool. I haven't used connect yet, but me and Tim made sure middleware were interchangeable with biggie router [21:13] Tim_Smart: Yay for standardization [21:13] tjholowaychuk: plus that way you can chain apps together, and if you need to just require('whatever-app').listen(3000) opposed to listening within your main app file [21:13] tjholowaychuk: haha yayyy [21:13] ericclemmons: Sweet! My first foray into Node (using Connect + Mu) is working out great! [21:14] ericclemmons: Has there been any discussions on app structure/convention? Specifically, once you start templating and using routes/routers [21:14] cloudhead has joined the channel [21:16] _announcer: Twitter: "@ MrTopf yes, we can NEN beamer and who wants kucken the game. If the weather is nice, we are also the grill. # # Node.js meetup" [de] -- Michael Bumann. http://twitter.com/Bumi/status/17817598701 [21:17] saikat has joined the channel [21:17] vesech has joined the channel [21:19] _announcer: Twitter: "@mloughran yeah! You're coming tomorrow for node.js? Can I pick you up somewhere? From the mainstation?" -- Michael Bumann. http://twitter.com/Bumi/status/17817762765 [21:19] _announcer: Twitter: "first time with node.js and express but one of the first things to do is fix some bug ;-) (parseQuery vs. parse) #nodejs" -- Christian Scholz. http://twitter.com/mrtopf/status/17817768233 [21:20] tjholowaychuk: its already fixedddDDD gahh [21:20] tjholowaychuk: lol [21:23] ericclemmons: I think i'll have to checkout expressjs again. It looks like bootstrapping in Mu support is a cinch. [21:23] _announcer: Twitter: "blog example with memory storage: 900 r/s, mongodb storage: 580 r/s. #nodejs #mongodb #js #webdev I should compare it with a WSGI version." -- Christian Scholz. http://twitter.com/mrtopf/status/17817993423 [21:25] tjholowaychuk: ACTION cant wait to get express on Connect [21:26] _announcer: Twitter: "I wonder if I should do my next project with node.js and maybe port some of my python libs to it. #nodejs" -- Christian Scholz. http://twitter.com/mrtopf/status/17818105389 [21:27] Guest62257 has joined the channel [21:28] Guest62257: ericclemmons: just testing, ignore me [21:28] ericclemmons: tjholowaychuk: what do you mean "express on Connect"? As a middleware? There's already a router, bodyDecoder, and several other implementations [21:28] ericclemmons: heh [21:28] tjholowaychuk: yeah i know, i wrote them [21:28] ericclemmons: hah [21:28] tjholowaychuk: :p [21:28] ericclemmons: then what's missin'? :) [21:28] tjholowaychuk: view supper and a few other small things [21:29] tjholowaychuk: support* [21:29] tjholowaychuk: not supper haha [21:29] hpoydar has joined the channel [21:29] ericclemmons: the view implementation is pretty nice, tbh. Very extensible [21:29] Guest62257: tjholowaychuk: another test [21:30] tjholowaychuk: ericclemmons: thanks! I could add hard-coded support for engines, but I think it is best to go this route [21:30] ericclemmons: agreed [21:30] ryan[WIN]: so [21:30] ericclemmons: using that response() hook system makes it a cinch to write adapters, which is what I was about to do for Mu [21:31] ryan[WIN]: durpydurp [21:31] ryan[WIN]: who here is using node for non-web-app purposes [21:31] tjholowaychuk: the "compiler" middleware for Connect is pretty nice though, handles pseudo statics like less / sass and writes them to the disc when changed for staticProvider [21:31] jashkenas: ryan[WIN] + 1 [21:32] ericclemmons: Haven't looked @ the compiler yet, but Connect is really what drew me towards finally trying out node vs. zend/php [21:32] ryan[WIN]: o hay jashkenas [21:33] rictic has joined the channel [21:33] ericclemmons: And, actually, I'm going to check out your class.js implementation. I was just looking at pulling in Mootools.core just for simple OO, but had a feeling that'd be a bad idea :) [21:34] tjholowaychuk: I wouldnt use it to be honest haha.. I wrote a lot of that stuff when I was kinda migrating from ruby-land to SSJS land [21:34] tjholowaychuk: nothing is wrong with it [21:34] tjholowaychuk: but it is not really necessary [21:35] _announcer: Twitter: "#nodejs runs on Windows now (using Cygwin). It's a perfect time to play with #nodejs if you've been holding out: http://nodejs.org/" -- Robert Coker. http://twitter.com/robsays/status/17818612074 [21:36] ericclemmons: Just looking to find some convention for organizing code a bit more. Right now, everything's looking kinda django-ish with the MVT pattern that's emerged. Maybe that's fine, though. Module/OO doesn't quite fit into this evented environment, though [21:36] mikeal has joined the channel [21:36] jashkenas: ericclemmons: 'cmon man. what does OO have to do with events? [21:36] ericclemmons: :D [21:37] jashkenas: new EventEmitter() ;) [21:37] tjholowaychuk: i verrrry rarely feel myself thinking oh hey wow wish I was using a class implementation right now [21:37] tjholowaychuk: js is messy, haha we just have to live with that :D [21:38] ericclemmons: I think if I just use some sexy namespacing, then I can keep some of this stuff clean [21:38] ericclemmons: already, using connect's router, I'm separating routes into logical namespaces. Otherwise you have *tons* of functions spitting out templates. [21:39] tjholowaychuk: for sure. you can do connect.router(require('./first-app'), require('./second-app')) [21:39] tjholowaychuk: etc [21:39] Kof1 has joined the channel [21:39] _announcer: Twitter: "Connect seems to be indeed faster for a routed hello world: 5000 r/s. But I forgot what the express version was ;-) #nodejs" -- Christian Scholz. http://twitter.com/mrtopf/status/17818800812 [21:40] s0enke has joined the channel [21:40] ryan[WIN]: so does anyone else find it funny that design patterns basically disappear in javascript [21:41] tjholowaychuk: why oh why do people forget that the hello benchmark is useless lol if your app does nothing at all, then great that is fantastic [21:41] _announcer: Twitter: "Slides of my talk at @ # nodejs sublab tonite: http://cthulhu.c3d2.de/ ~ astro/nodejs-c3le-2010-07-05 /" [fil] -- Astro. http://twitter.com/astro1138/status/17818920074 [21:42] s0enke: hi [21:42] _announcer: Twitter: "so connect seems to be double as fast than connect for this case.. what's a bit missing is proper docs though, e.g. request/response #nodejs" -- Christian Scholz. http://twitter.com/mrtopf/status/17818961418 [21:42] Aria has joined the channel [21:42] tjholowaychuk: omg this guy is a tweet machine [21:42] ericclemmons: I wonder if it's bad practice to extend connect.router to allow for connect.router("./path/to/routes") and have it pull them from the FS [21:43] mw has joined the channel [21:43] tjholowaychuk: ericclemmons: i have considered that, but unless it is supported widely (which it is not) it just confuses people [21:43] s0enke: ACTION is wondering which scheduling algo nodejs uses for the serialized js execution (in case i did understand a bit of the functionality of nodejs ;) ) [21:44] ericclemmons: What part's not supported? Passing anything besides a callback throws an error [21:44] _announcer: Twitter: "Node.js, in a nutshell: } }); }) }); #hahaonlyseriously" -- Adam Keys. http://twitter.com/therealadam/status/17819056401 [21:44] tjholowaychuk: yeah but you dont see node assuming that strings are paths to a module [21:45] ericclemmons: Ahh, now i see. I assume one could write their own "var routes = routerFinder.find('./path/to/routes')" and just do connect.router.call(this, routes) [21:45] _announcer: Twitter: "What I might need #nodejs for is simple RESTful APIs only anyway with support for long polling. Not so much for templating and UI logic." -- Christian Scholz. http://twitter.com/mrtopf/status/17819137109 [21:46] _announcer: Twitter: "node.js looks really good" -- jae lee. http://twitter.com/jaequery/status/17819172517 [21:46] tjholowaychuk: ericclemmons: yeah if you really wanted to [21:46] tjholowaychuk: the requires are less confusing though lol [21:47] tjholowaychuk: but yeah you could just readdir and chuck those in [21:47] tjholowaychuk: that is kind of the idea though, that Connect is "dumb" and fancy structured things like this can be handled by say Express [21:47] tjholowaychuk: to provide app structure [21:47] ericclemmons: In the end, sometimes you still want to be more explicit than not. "magic" has already hurt most PHP frameworks with __call __get, etc. [21:47] tjholowaychuk: in terms of where routes live, config etc [21:47] ericclemmons: right on. [21:48] maushu has joined the channel [21:48] ericclemmons: Thanks for the help tj et al. I'm out. See you guys later! [21:48] tjholowaychuk: later [21:49] _announcer: Twitter: "Mayflower Wuerzburg invites you to a talk on "node.js" - 07/08 6pm, Pleichertorstrasse 2, #zend #php,http://bit.ly/bkmhuI" -- Mayflower. http://twitter.com/mayflowerphp/status/17819342266 [21:52] s0enke: omg twitter eggdrops [21:52] s0enke: ;) [21:58] zapnap has joined the channel [21:59] aubergine has joined the channel [22:03] mklappstuhl has joined the channel [22:04] _announcer: Twitter: "compiling node.js ;) yeah colorized build system #nodejs" -- Soenke Ruempler. http://twitter.com/s0enke/status/17820098671 [22:04] quirkey has joined the channel [22:05] mape has joined the channel [22:07] Aikar: s0enke: who said it was eggdrop? i think its node. eggdrop is going to die ;) [22:09] Dmitry1 has joined the channel [22:09] s0enke: Aikar, aaaaah ok so this was the real use case for node.js - not that bleeding edge javascript-async-html5-nosql-supercool web stuff [22:10] drewolson has joined the channel [22:10] s0enke: :-) [22:10] drewolson: any picard users out there seeing a 500 when redirecting from post actions? [22:10] coolston_bro has joined the channel [22:15] mape has joined the channel [22:18] kennethlove has joined the channel [22:27] phiggins has joined the channel [22:31] saikat has joined the channel [22:31] mklappstuhl has joined the channel [22:32] zomgbie has joined the channel [22:35] camilo has joined the channel [22:35] camilo: ? [22:36] kersny has joined the channel [22:37] kersny has left the channel [22:43] Kof1 has left the channel [22:45] captainbenis has joined the channel [22:45] captainbenis has left the channel [22:48] rtl has joined the channel [22:48] pandark_ has joined the channel [22:51] khug has joined the channel [22:51] ph^ has joined the channel [22:56] piratepenguin_ has joined the channel [22:56] khug: is there any way to access the source of a function assigned to a var? [22:57] bmizerany has joined the channel [22:57] mape: toString? [22:57] khug: AWESOME [22:57] piratepenguin_: Hey guys. Is it possible to initialize a canvas element in node.js code? [22:57] khug: I was stuck down a toSource keyhole [22:57] khug: thanks mape! [22:57] mape: :) [23:00] bradleymeck1 has joined the channel [23:01] piratepenguin_: I want to be able to draw an image in a canvas and use getImageData to do some image processing server-side, can I do this in node? [23:02] isaacs: can TCP be encrypted with tls like HTTPS is? [23:02] isaacs: (yes, i'm aware of ssh) [23:02] isaacs: i'd like to start a repl, and let a user connect to it via tcp, but it's important to have the channel encrypted. [23:03] bradleymeck1: piratepenguin_, i dont think there is a canvas api module [23:03] stagas_ has joined the channel [23:04] isaacs: khug: Beware of: Function.prototype.toString = function () { return "I DRINK YOUR MILKSHAKE" } [23:04] khug: there are node dom implementations, not sure what the state of canvas is in them [23:04] khug: http://github.com/tmpvar/jsdom [23:04] olegp_ has joined the channel [23:05] bradleymeck1: isaacs does stream.setSecure not work on tcp? [23:05] mscdex: isaacs: i'm pretty sure you can do tls over tcp, since http uses tcp [23:05] isaacs: bradleymeck1: oh, yeah, i guess you can do that, huh [23:05] khug: isaacs: er, wow. That could be a problem [23:05] khug: I want my milkshake :-/ [23:05] isaacs: hehe [23:05] bradleymeck1: canvas is not in jsdom, idk of any raw nodejs image libs to hold up a canvas impl though [23:05] _announcer: Twitter: "Toying with node.js, interesting stuff. Maybe what I need to get the motivation flowing again." -- Stewie. http://twitter.com/deefadawg/status/17823496953 [23:07] piratepenguin_: khug, bradley: thanks for the replies [23:08] isaacs: ok, so, rather than add a registry WS endpoint that lets you do remote management, i'll just have a command to make npm start a TCP server, and then npm on another machine can connect to that and do stuff. [23:08] isaacs: http is a great paradigm for sending files back and forth, but for executing commands, it sucks a lot. [23:08] isaacs: you really want to have immediate back-and-forth type stuff [23:09] mostlygeek: hi, anybody ever play around with flow-js? or other async handling libraries? [23:09] isaacs: mostlygeek: i think Step is the go-to one [23:09] isaacs: mostlygeek: i've just rolled my own kit for npm, though [23:09] bradleymeck1: i <3 step and i love tj/ceationix [23:09] mostlygeek: isaacs: really, why? [23:09] isaacs: mostlygeek: why step, or why don't I use it? [23:10] mostlygeek: isaacs: ahh both :) [23:10] mostlygeek: i was looking at Step and Flow and they both look interesting [23:10] mostlygeek: i haven't played around with either yet [23:10] isaacs: mostlygeek: in npm, i pretty much only ever care about a case like "do this, then do that, etc, and when it's done, run this cb function" [23:11] isaacs: and all the functions i'm calling take a cb as the last argument [23:11] mostlygeek: so you wrote your own for npm? BTW: what is npm? [23:11] isaacs: so, i have a chain() function that takes a list of function+arg lists, and then the last argument is the callback to call when it either all succeeds or something fails [23:11] isaacs: mostlygeek: npm is a node package manager. http://github.com/isaacs/npm [23:12] isaacs: mostlygeek: i use http://github.com/isaacs/npm/blob/master/lib/utils/chain.js for some things, and http://github.com/isaacs/npm/blob/master/lib/utils/promise-chain.js for some other things [23:12] mostlygeek: ok i guess the right async lib. depends on what you're using it for then... [23:12] mostlygeek: hmm.. [23:12] isaacs: mostlygeek: it takes so little code to satisfy my needs, it seemed like overkill to have step or flow or conductor or whatever. [23:12] mostlygeek: right [23:12] isaacs: i don't really need parallel execution much, and when i do, it's not hard to do by hand [23:12] mostlygeek: i agree w/ that [23:13] isaacs: promiseChain is really useful, and almost no code [23:14] derferman has joined the channel [23:16] captainbenis has joined the channel [23:17] mostlygeek: i never really got that whole promise pattern... but it seems to be pretty popular [23:19] TS_ has joined the channel [23:20] mostlygeek: isaacs: for promise-chain.js, you got something against semicolons? :) [23:20] isaacs: mostlygeek: yes, i do. http://github.com/isaacs/npm/blob/master/doc/coding-style.md#readme [23:20] isaacs: :) [23:21] mostlygeek: how'd you develop that style? [23:22] mostlygeek: never found using js's auto-semicolons a little troubling? :) [23:22] kersny has joined the channel [23:22] camilo: isaacs: I'm disagree with not to use semicolos in javascript [23:23] isaacs: camilo: that's nice. we can disagree :) [23:23] camilo: isaacs: :) [23:23] isaacs: mostlygeek: i started out by trying to remove everything that is not necessary in the language, so that all i'm seeing is the code, and then structuring that so that any errors are as immediately visible as possible. [23:24] isaacs: mostlygeek: human brains are good at spotting a break in a straight line. they suck at detecting a missing token on the jagged right edge. you can say "use a linter" but it turns out, i have a human brain built-in, and don't have to configure my editor or terminal to automatically use it. it's always working. [23:25] konobi: leading commas are a little odd [23:25] mostlygeek: isaacs: ok, i don't agree cause one of the first things I thought was "no semicolons?!" :) [23:25] isaacs: konobi, mostlygeek : remember the first time you saw c? did it look "sensible"? [23:25] isaacs: if you say "yes", you're a lying liar. [23:25] isaacs: it looked like gobledeegook [23:26] isaacs: then you learn it, and it looks normal, and everything that doens't look like it is garbage. [23:26] isaacs: that's just how brains work. they are not good at evaluating new things. use this style regularly for a month, and you'll never want to go back. [23:26] mostlygeek: I think i'm used to semicolons now that not seeing them is weird [23:26] isaacs: mostlygeek: exactly! [23:26] mscdex: c syntax isn't the same as styles [23:26] isaacs: "used to" [23:27] isaacs: mscdex: my point is merely that a lot of javascript "convention" is borrowed from the requirements of other languages (mostly, c and java), and that that's a bit silly. [23:27] isaacs: it's like putting hay in your engine, because the horse-drawn carriages ran on hay [23:27] mscdex: why is it necessarily silly? [23:27] mitkok has joined the channel [23:27] mostlygeek: but the JS engine will go in and add semi-colons for you [23:27] isaacs: you may say "but my car runs fine with a hood full of hay." [23:27] isaacs: mostlygeek: that's actually not how it works. [23:27] mscdex: why not draw on conventions that people are already familiar with? [23:27] isaacs: semicolon-insertion is a bad term. what actually is going on is that the interpreter knows when a statement ends. [23:28] isaacs: mscdex: see ^ hay analogy [23:28] isaacs: ";" is a statement in js [23:28] isaacs: it's the null statement, which never continues the statement before it [23:28] mostlygeek: oh... heh [23:28] mscdex: erm, the hay analogy doesn't really work well [23:28] isaacs: *most* statements are terminated by a linebreak. the null statement is terminated by anything. [23:28] captainbenis: *cough*coffeescript [23:28] mostlygeek: javascript is like a box of chocolates... [23:29] isaacs: mscdex: well, yeah, semicolons aren't flammabale :) [23:29] jashkenas: captainbenis: I was about to *cough* the same thing... [23:29] isaacs: mscdex: but reducing visual clutter *does* make better use of your brain's ability to detect irregularities [23:29] steadicat has joined the channel [23:30] mscdex: one man's clutter is another man's preference [23:30] mscdex: ;-) [23:30] isaacs: mscdex: but, don't you see? that's just my point. preference shouldn't factor into it. you can choose to prefer whatever you wish to, by simply exposing yourself to it regularly. [23:30] isaacs: you don't even have to "try" to like it [23:30] isaacs: you just have to keep looking at it, and using it, and it sinks in involuntarily. [23:31] mscdex: so you want to force people into a style? [23:31] isaacs: mscdex: s/people/myself/ [23:31] isaacs: why not consciously choose to create the preference for the thing that more optimally makes use of your facilities for code analysis? [23:31] mscdex: maybe semicolons are not considered clutter to some, but are to others? [23:31] isaacs: mscdex: they are more pixels on teh screen. [23:32] mscdex: well, if that's your definition of clutter... [23:32] isaacs: mscdex: my definition of cluter: more stuff to look at. [23:32] isaacs: ";" is more "stuff" than " " [23:32] mape: '' [23:32] mostlygeek: I still think it is safer to add in a ;, javascript syntax is just too weird to leave things to chance :) [23:33] isaacs: mostlygeek: it's not "chance" [23:33] isaacs: mostlygeek: that's why i put a ; at the *start* of the lines where it matters. [23:33] isaacs: mostlygeek: so that it's more clear when they're missing [23:33] jashkenas: *cough* (function(){}); ... seriously, isaacs -- if you want to de-clutter your JavaScript, pop on into #coffescript and we can help you customize the compiler to create your preferred style. [23:33] jashkenas: JavaScript should be the language that you want it to be. [23:33] isaacs: jashkenas: i like cs a lot [23:33] mostlygeek: isaacs: it's cool with me :) i probably won't adopt it... heh [23:34] isaacs: jashkenas: but npm needs to work with node without anything else. [23:34] jashkenas: isaacs: it turns into JS that you distribute, that runs without any dependencies on any Node... But my point was that the compiler was tiny. [23:34] isaacs: jashkenas: also, it'd be: ;(function() {}) [23:34] isaacs: ;) [23:35] mostlygeek: jashkenas: what's the motivation for coffeescript? just for fixing JS weirdness?:) [23:35] jashkenas: If you have a preferred subset you'd like to use -- or a style you'd like to enforce, you can roll your own pretty easily. [23:35] isaacs: jashkenas: also... i dunno... i kinda dig js. [23:35] captainbenis: cs is a weird one. i tried it out just out of interest [23:35] captainbenis: and it jelled with me [23:35] jashkenas: isaacs: me too. I love the underlying semantics and the object model. Just not the quirks/broken corners/ Java syntax. [23:36] captainbenis: i like how the syntax reminds me of haskell and it promotes functional programming [23:36] captainbenis: -> instead of function [23:36] isaacs: jashkenas: when i started down this road of using minimal left-aligned js, i found that i kind of fell in love with it again. [23:36] jashkenas: mostlygeek: Let me refer you to this: http://news.ycombinator.com/item?id=1486546 [23:36] captainbenis: i think we all love .js ;D [23:36] isaacs: it's not quite CS, but it's still nice [23:36] jashkenas: isaacs: that's sweet ;) [23:36] captainbenis: but the thing i love about js is the runtimes and the scoped programming, not the syntax especially [23:36] isaacs: <3 [23:37] [[zz]] has joined the channel [23:37] Tim_Smart: isaacs: got married to ecmascript. They made many apps together. [23:37] isaacs: then i got a job, and they were like "NO! WE USE JQUERY HERE AND SEMICOLONS CUZ OTHERWYZE THA WORLD BRAKES OMGWTF!!!L!11!!!" [23:37] isaacs: [23:37] isaacs: ([1,2])[(3,4)] --> ([1,2])[4] --> undefined [23:42] konobi: derRichard: what's the filesize after your attempt? [23:42] _announcer: Twitter: "Descubriendo http://nodejs.org/ -> Node's goal is to provide an easy way to build scalable network programs (vía @javier_toledo) #javascript" -- Kilian Barrera. http://twitter.com/kilianbarrera/status/17825563188 [23:44] derRichard: konobi: always a few kbytes less than expected. e.g. 4.3mb instead of 4.4mb. the funny thing is the downloaded file has always another checksum [23:44] derRichard: somthing really nasty is going on :( [23:44] konobi: hhhmmm... enotime at the moment [23:45] derRichard: large textfiles work fine [23:45] Tim_Smart: derRichard: You are writing every chunk at the same offset [23:45] technoweenie has joined the channel [23:45] derRichard: Tim_Smart: i don't think so [23:46] phiggins has joined the channel [23:47] Tim_Smart: derRichard: Yeah, you are writing every chunk to offset 0 [23:47] Tim_Smart: I suggest you use fs.createWriteStrean and a pump. [23:47] derRichard: Tim_Smart: you mean this line: "fs.write(fd, chunk, 0, chunk.length, null, function(err, written)" 3rd parameter? [23:47] Tim_Smart: Yes [23:48] Tim_Smart: So they overwrite each other :) [23:48] derRichard: the dokumentation says: "offset and length determine the part of the buffer to be written" [23:48] derRichard: when i download large text files it works great [23:49] Tim_Smart: derRichard: They must be only one chunk [23:49] admc has joined the channel [23:49] admc_ has joined the channel [23:50] mjr_: derRichard: can you print out "written" in the fs.write callback? [23:50] joemccann has joined the channel [23:50] derRichard: Tim_Smart: when i say large text files, i mean large text files :) [23:50] derRichard: mjr_: sure. wait [23:50] joemccann: sup [23:51] bmizerany: man. `on` is def better than `addListener`. I'm +10 on keeping it. my 2 cents if it helps. [23:51] mjr_: derRichard: I've not done openSync and closeSync before, so I'm not sure if this matters, but is it possible you are closing the file before all of the bytes have been written to the file? [23:52] mjr_: bmizerany: agree. I started writing code like that today, and it looks so much better. [23:52] joemccann: anyone uses exec() with express? [23:52] bmizerany: mjr_: I just did a quick s///g on borg and it looks far less noisy. much nicer. [23:52] Tim_Smart: derRichard: nvm. I'm thinking of the position parameter [23:52] derRichard: mjr_: i get the same results when i remote the fs.closeSync() [23:53] derRichard: Tim_Smart: AFAIK the position parameter is the offet within the buffer [23:53] mjr_: yes, that's the position of the buffer to write. You have null for the file offset, which is right, according to the docs. [23:54] joemccann: how about this [23:54] mjr_: derRichard: Hmm, well I wish I had time to figure this out, but I have to run. Good luck. [23:54] joemccann: what is the best practice for using curl with node? [23:55] _announcer: Twitter: "node.js is like the wild west. I'm too old for this. Oh god, I've become a Java developer. Which means Java has shifted to Algol." -- Trek Glowacki. http://twitter.com/trek/status/17826242715 [23:55] keyvan has joined the channel [23:55] derRichard: mjr_: no problem. :) [23:56] joemccann: anyone? [23:56] joemccann: bueller [23:57] satori has joined the channel [23:57] bradleymeck1: why do you need curl? [23:57] joemccann: well may not NEED it [23:57] joemccann: but [23:58] joemccann: client's API gives examples like this: [23:58] derRichard: because node does not have a good http client library [23:58] joemccann: curl --basic --username username:password http://someurl.com/auth [23:58] technoweenie: whats not good about it [23:58] bradleymeck1: anywho id use spawn [23:58] bradleymeck1: !api spawn [23:58] _api: bradleymeck1: (Child Processes) method: spawn(command, args, env) -- Launches a new process with the given `command`, command line arguments, and environment variables. If omitted, `args` defaults to an empty Array, and `env` defaults to `process.env`. [ http://nodejs.org/api.html#child_process-spawn-89 ] [23:58] technoweenie: if you need to use curl, start a child process [23:59] joemccann: i was looking at that [23:59] joemccann: and the exec() method [23:59] joemccann: however, i'm not sure how to get it to play nice with Express [23:59] derRichard: mjr_: when i'm using writeSync() it works [23:59] derRichard: strange