[00:00] Guest64416: deanlandolt, www.419eater.com [00:00] deanlandolt: sweet...thanks :D [00:07] fictorial: kodisha: true, any rdbms is not really a great idea for a kv store. but, if you are really into it, I guess check out what has come before. http://friendlyorm.com/ [00:08] tmpvar: thats sort of silly [00:08] tmpvar: just a bit [00:09] mde: Anybody working with the uncaughtException event with process? [00:09] mde: I'm trying the example in the docs, and the program just poops out with a ReferenceError instead of printing out the exception like I was expecting. [00:10] mde: Node verson is 0.1.97 [00:10] mde: http://nodejs.org/api.html#event-uncaughtexception-52 [00:10] mde: Literally copy-pasted the code from the docs. [00:10] _announcer: Twitter: ""Excellent, thanks! Great intro to NodeJS: http://yhoo.it/crPAnd" - codelotus http://tumblr.com/xgcarvesl"-- Craig W. http://twitter.com/mind_scratch/status/15141318904 [00:12] Nohryb has joined the channel [00:12] fictorial: tmpvar: it's utterly ridiculous but hey, "always do your homework" [00:15] _announcer: Twitter: "http://bit.ly/9ef8r9 ★ Express - #Nodejs Web Development Framework"-- François-G. Ribreau. http://twitter.com/FGRibreau/status/15141551642 [00:23] Nohryb has joined the channel [00:25] wbruce has joined the channel [00:25] steven_t has joined the channel [00:25] steven_t: hello :) [00:25] tmpvar: yo [00:26] steven_t: i can dig it! [00:30] tmpvar: hrm, I'm going to have to figure out this buffer stuff later.. food time [00:32] ajpiano has joined the channel [00:33] jherdman has joined the channel [00:36] mrjjwright has joined the channel [00:48] technoweenie has joined the channel [00:52] joshbuddy has joined the channel [00:52] bpot has joined the channel [00:52] mrchrisadams has joined the channel [00:52] charlesjolley- has left the channel [00:53] technoweenie has joined the channel [00:54] charlesjolley- has joined the channel [01:04] probably_ has joined the channel [01:05] broofa has joined the channel [01:06] probablycorey_: Do requests for same url in a http.createServer callback block? [01:06] probablycorey_: or, it seems like that is what is happening to me [01:10] technoweenie: that seems like it'd be a pretty big bug [01:11] probablycorey_: technoweenie: Yeah, 100% chance i'm doing it wrong [01:11] technoweenie: you deserve better in a framework! [01:11] technoweenie: do you have an example? im going to try a bare bones one real quick [01:11] probablycorey_: technoweenie: Ha, it's either something to do with EventEmitter or my request callback [01:12] probablycorey_: technoweenie: I'm putting one together now [01:13] technoweenie: doesnt seem like it's blocking ot me [01:13] inimino: I'm pretty sure if you want multiple requests in parallel you'd need multiple clients [01:13] softdrink has joined the channel [01:14] technoweenie: probablycorey_: i just wrapped a setTimeout around the default example and it worked fine [01:16] bradleymeck_ has joined the channel [01:16] probablycorey_: technoweenie: Must be an emitter thing. Let me get this code as simple as I can [01:19] Tekerson: Is there any way to register an "onShutdown" type function for a script? eg, to allow data to be persisted when a sigterm is received? [01:19] aconbere has joined the channel [01:20] x_or has joined the channel [01:21] probablycorey_: technoweenie: http://gist.github.com/420448 [01:21] dwww: technoweenie: http://gist.github.com/420448 [01:21] probablycorey_: i'm working off some example code (which may be old/wrong) [01:22] probablycorey_: but i can't get the emiter call multiple callbacks for the exact same url in parallel. [01:22] technoweenie: oh maybe its blocking in the client like inimino suggested? [01:24] ditesh|cassini has joined the channel [01:25] probablycorey_: technoweenie: The client is just calling one url every 10 seconds, so I don't think it is blocking. The emitter will calls multiple callbacks as long as the request url's aren't the same. [01:26] probablycorey_: So I think it is an emitter problem. I'm assuming it is on my end, but I can't figure out where. [01:27] technoweenie: try using a different client instance [01:29] _announcer: Twitter: "gittin my git on, fetching and building the latest node.js and npm so I can play with this fun http-console toy: http://is.gd/cxyxL"-- Morgan Pyne. http://twitter.com/morganpyne/status/15145709955 [01:30] technoweenie: probablycorey_: what are you expecting to happen? [01:30] technoweenie: i see this in the server: if (uri.match(/goog/i)) { [01:30] technoweenie: but the pathname is just / so that'll never be true [01:31] probablycorey_: i'm doing http://localhost:8080/goog [01:31] probablycorey_: i'm getting rid of the http.client stuff now, it's not needed to get the bug to appear I think [01:31] bradleymeck_: ryah where was that vt100 manual you had lying about? [01:31] technoweenie: oh i see now you're proxying [01:32] probablycorey_: technoweenie: http://gist.github.com/420448 [01:32] joshbuddy_ has joined the channel [01:32] probablycorey_: There is a simplified version [01:34] steven_t: i heard that node.js is just a hair slower than nginx, which is to say 50 times faster than apache [01:35] tmm1: hmm [01:35] tmm1: party in here eh [01:36] probablycorey_: tmm1: Yeah, did you bring the doritos? [01:36] tmm1: no, but i have beer! [01:37] probablycorey_: tmm1: perfect [01:39] _announcer: Twitter: "Parsing file uploads at 500 mb/s with node.js - http://debuggable.com/posts/parsing-file-uploads-at-500-mb-s-with-n… http://bit.ly/97ZhdY"-- zzzzhe. http://twitter.com/zzzzhe/status/15146264510 [01:40] SubtleGradient has joined the channel [01:42] technoweenie: probablycorey_: that works for me [01:43] technoweenie: i make the 3 requests and it always returns 'this is the data' [01:43] technoweenie: i'm on node v 1.97 [01:44] technoweenie: steven_t: yes, that claim is from ryan's latest talk [01:45] probablycorey_: technoweenie: Does it return all of them at the same time, or does it take 10 seconds for each request? [01:45] technoweenie: they all came back at once [01:46] probablycorey_: technoweenie: Cool, i'm on 0.1.96, i'll upgrade! [01:47] smtlaissezfaire has joined the channel [01:50] technoweenie: probablycorey_: there's also a few quick tweaks... req.close() => req.end() and resp.sendHeader => resp.writeHead [01:55] probablycorey_: technoweenie: Cool, thanks! [01:55] rictic has joined the channel [01:56] _announcer: Twitter: "current status: http://nodejs.ytmnd.com/"-- Probably Corey. http://twitter.com/probablycorey/status/15147202713 [01:56] pandark_ has joined the channel [02:02] Tim_Smart: http://121.79.216.71:8000/ - Completely served with node atm [02:04] riq has joined the channel [02:06] Tim_Smart: Just some simple templating and asset packaging http://gist.github.com/420479 [02:06] jedschmidt has joined the channel [02:07] _announcer: Twitter: "NOOOOOOOOOOOOOOOOOOOOOOOOODE.js http://nodejs.ytmnd.com/"-- Tom Preston-Werner. http://twitter.com/mojombo/status/15147843007 [02:13] vnguyen has joined the channel [02:14] kodisha has joined the channel [02:22] kodisha has joined the channel [02:25] riq has joined the channel [02:29] SteveDekorte has joined the channel [02:29] SteveDekorte: anyone extended cookie-node for ClientRequest? [02:29] mde: Looks like they broke uncaughtException in 0.1.95 [02:31] smtlaissezfaire has joined the channel [02:37] probably_ has joined the channel [02:40] cloudhead has joined the channel [02:41] wbruce has joined the channel [02:48] mcarter has joined the channel [02:50] paul_irish has joined the channel [02:53] brianmario has joined the channel [02:56] smtlaissezfaire has joined the channel [02:56] admc has joined the channel [02:59] technowe_ has joined the channel [03:00] Aria: I ... just read a file asynchronously. In JS. Without using Node. [03:01] Tim_Smart: What did you use, then? [03:01] Aria: seed [03:01] Aria: http://git.gnome.org/browse/seed-examples/tree/async-quine.js?id=d5772613de90e99d041aad943dba8fb2a55bc116 [03:01] Validatorian: I was going to guess notepad [03:02] Aria: Gio isn't nearly as pretty as node's API [03:02] Aria: But folks! We have two async JS implementations! [03:04] shajith has joined the channel [03:05] kodisha has joined the channel [03:05] _announcer: Twitter: "Installed Node.js on my @Dreamhost server, courtesy of this easy article. Why didn't I do this before the 3-day weekend? http://goo.gl/WZeI"-- Chris Basham. http://twitter.com/chrisbasham/status/15151116117 [03:06] polyrhythmic: wat [03:06] polyrhythmic: I need to do that [03:07] smtlaissezfaire has joined the channel [03:08] technowe_: thats a good idea [03:08] mgkimsal has joined the channel [03:08] fictorial: shared hosting is a good idea you mean? [03:08] technoweenie: it has its uses [03:09] cedricv has joined the channel [03:10] tmpvar: blarg, so lost [03:10] fictorial: What troubles you my son? [03:11] tmpvar: does anyone know how to modify a argument in v8/c++ land? [03:11] fictorial: You mean to a method signature? [03:11] tmpvar: nah [03:11] tmpvar: like arg[1] = Number::New() [03:12] fictorial: Oh, I see. [03:12] tmpvar: a by ref param [03:12] fictorial: Not off the top of my head. I haven't needed to do that myself. [03:12] tmpvar: ah [03:13] tmpvar: i'm sending pointers into opengl land and in some cases the var gets populated, which I need to send back out to js [03:13] tmpvar: oh, Aria I'm not sure [] access is possible in jsdom without leaking memory [03:13] fictorial: like reading the projection matrix or somesuch? [03:13] Aria: Oh? Why not? [03:14] tmpvar: yeah, or glGenTexImage() [03:14] fictorial: sure, ok. [03:14] tmpvar: Aria, there is no way to detect invalid index access, and the lists are live [03:14] Aria: Ah. Hm. [03:14] tmpvar: in the very least.. its not a 10 minute fix heh [03:14] Aria: Heh, yeah. [03:15] fictorial: I see, so you are trying to do call by reference and set the reference from with v8's api ... I suppose if you send a Buffer from JS code as a parameter/arg, you can call the methods of the C++ Buffer object from your C++ code to alter it. [03:15] fictorial: But setting the reference itself sounds jenky - not sure. [03:15] tmpvar: yeah [03:16] tmpvar: i should be able to mod the value of the incoming var and go to magic land [03:16] fictorial: Might just want to return an object with multiple properties or an array [03:16] tmpvar: unfortunately the docs for v8 are pretty bad, no idea how to set a Number after its been created heh [03:17] tmpvar: whether or not I can/need to unwrap first, etc [03:17] tmpvar: fictorial, yeah.. that though had crossed my mind. not really sold though, as it doesn't really follow the way opengl works [03:17] tmpvar: and I *really* want to just do straight ports of tuts and things to js [03:18] tmpvar: (and not write huge amounts of documentation) [03:19] fictorial: I get your motive; it makes sense. [03:20] fictorial: Arguments looks read-only to me. [03:20] tmpvar: yeah, its a const [03:20] tmpvar: hrm [03:20] fictorial: well I mean there is nothing that let's you swap out an argument for another. just operator[] [03:21] fictorial: well, maybe Object** arguments() could be of use. Change the pointer. [03:21] tmpvar: digging [03:21] fictorial: deps/v8/src/arguments.h:66 [03:24] fictorial: I'm a little confused about the Arguments of include/v8.h and the aforementioned Arguments [03:24] fictorial: assuming there's some namespacing going on [03:24] fictorial: yes [03:24] fictorial: v8::internal [03:24] fictorial: hmm [03:24] tmpvar: ah [03:26] tmpvar: i bet ryah would know [03:26] SamuraiJack has joined the channel [03:27] fictorial: I have not looked at your ogl bindings but what about var output_buffer = new Buffer(size); gl.glGetTexImage(gl.GL_TEXTURE_2D, 0, gl.GL_RGBA, gl.GL_UNSIGNED_BYTE, output_buffer) [03:27] fictorial: and then just call methods on output_buffer from within your C++ code? [03:28] tmpvar: thats exactly what im doing :) [03:28] fictorial: ok [03:28] tmpvar: there is some tricky stuff though [03:28] fictorial: oh but you needed to set the Number value for texture names? [03:29] tmpvar: in glGenTexImage the texture is not modified [03:29] kodisha has joined the channel [03:29] tmpvar: in however. [03:29] fictorial: hmm, where is your code? [03:29] tmpvar: glGenTextures.. there is a bidirectional param [03:29] tmpvar: i'd push it up, but its gnarly [03:30] tmpvar: actually, its not horrible.. 1 sec [03:30] wbruce: should I be using kiwi, npm, something else... ? [03:30] fictorial: tmpvar: lol it's ok - you are figuring stuff out - it's always a mess then [03:30] wbruce: eg, if you were writing a module, what would you use? [03:31] technoweenie: wbruce: npm seems to have the most mindshare [03:31] fictorial: wbruce: up to you really - there's no sanctioned package manager. as of late, npm is getting a lot of use. [03:31] wbruce: ok, cool [03:31] tmpvar: fictorial, http://github.com/tmpvar/node-ogl/blob/master/example/nehe/lesson6.js [03:31] tmpvar: and [03:31] tmpvar: http://github.com/tmpvar/node-ogl/blob/master/src/gl.cc [03:32] fictorial: what are you using under the covers? glfw? [03:32] tmpvar: yeah, i think ill move towards glut though [03:32] fictorial: freeglut? cool [03:32] tmpvar: i was scared away from glut because glutInit() takes an unadulterated argc/v [03:32] fictorial: I would have never thought of doing OGL in Node BTW! Interesting... [03:32] tmpvar: :) [03:33] mostlygeek has joined the channel [03:34] fictorial: is gl.cc generated by some program? [03:34] tmpvar: yeah [03:34] tmpvar: node-ogl/utils/gen.php [03:34] tmpvar: yeah, i know php. [03:34] tmpvar: lol [03:34] fictorial: me too, and I'm still recovering [03:35] tmpvar: so ive been solving these problems one by one, and adding them to the generator.. which has worked pretty well thus far heh [03:35] tmpvar: if i can get it to ~80% and handcode the rest i'll be happy [03:35] fictorial: so, is this what's not working? http://github.com/tmpvar/node-ogl/blob/master/src/gl.cc#L4351 [03:35] tmpvar: doesnt appear to be [03:35] tmpvar: actually, no its not [03:35] hassox has joined the channel [03:36] joshbuddy has joined the channel [03:36] tmpvar: i tried doing something similar to the method above that one.. no luck really [03:37] tmpvar: im going to grab a smoke before my head explodes [03:41] smtlaissezfaire has joined the channel [03:43] sh1mmer has joined the channel [03:46] _announcer: Twitter: "Beautiful command line HTTP debugger written in node.js - http://u.nu/9295b"-- Baishampayan Ghose. http://twitter.com/ghoseb/status/15153362468 [03:47] kodisha has joined the channel [03:49] bradleymeck_: seeing all this talk about opengl makes me wish that openal wasnt so messed up on my mac to test it with node [03:49] fictorial: tmpvar: yeah, I am not sure you are going to call call-by-reference working to be honest. Arguments and how its created looks pretty locked down. [03:49] fictorial: s/its/it's/ [03:49] tmpvar: ouch [03:49] creationix: http://www.facebook.com/album.php?aid=2037944&id=1261797308&l=1b543d0b55 yeah, Sweden [03:50] tmpvar: fictorial, so maybe if i wrapped the whole in in js [03:50] fictorial: yeah, you could do that [03:51] fictorial: well, maybe - how are you going to set the value of a number for say a texture id/name? [03:51] tmpvar: in the proposed js api? by returning an array I guess [03:51] tmpvar: thats pretty painful, but I suppose it would work [03:52] fictorial: right, that's what I was getting at - it's not typical opengl style but that's ok in my book [03:52] tmpvar: yeah, well the js api could make it appear to be consistent [03:52] technoweenie: tjgillies: hey are there any planned post-osbridge meetups this week? [03:53] creationix: tmpvar: you seem to like tackling the hard problems, how about gtk bindings after dom and gl [03:53] fictorial: tmpvar: so, I would think that if C had multiple return values the opengl api would not use parameters that were altered [03:53] tmpvar: creationix, canvas impl is next ;) [03:53] creationix: canvas works for me :) [03:53] creationix: gtk is crap on osx anyway [03:53] tmpvar: gtk is crap everywhere [03:54] creationix: sorry for spamming that photo link, that was for twitter, that's what I get for using adium for everything [03:54] tmpvar: fictorial, agreed [03:54] tmpvar: creationix, nice man, you having fun? [03:55] tmpvar: it looks clean :) [03:55] creationix: yeah, but adjusting to the time zone is hard [03:55] tmpvar: fictorial, dude there has to be a way to do this [03:56] tmpvar: im trying to think of another addon that might have needed to do this [03:56] creationix: yesterday I went to bed about 4am and woke up at 2pm, tonight, I just stayed up all night, about to go to breakfast [03:56] wbruce: just published my first node.js module, http://github.com/bruce/node-temp (temporary file and directory support) [03:56] tmpvar: heh, well, hopefully you'll sleep well tonight :) [03:56] wbruce: comments welcome [03:57] wbruce: it's probably a bit rough [03:57] technoweenie: it'd be cool if temp.open could yield the fs object so you can do info.write [03:57] fictorial: tmpvar: you cannot change the reference as in args[1] = xxxx... the best you could do would be args[1]->blah(). but args[i] is just Object, not Number or Buffer, etc. [03:58] tmpvar: true, I can get at the raw object though [03:58] tmpvar: so you cant modify the args, but I'm not convinced that you cannot touch the contained objects [03:58] fictorial: so I suppose if you pass in a dummy number, you would get a Number in C++ land, and could reinterpret_cast (or whatever v8 util there is to cast) to a Number and set its value. [03:58] wbruce: technoweenie: I was thinking about that [03:58] technoweenie: wbruce: i like that aspect of ruby's tempfile [03:58] fictorial: tmpvar: right, that's what I'm getting at [03:59] bradleymeck_: mmmm have you tried the Object::set(int32) [03:59] tmpvar: bradleymeck_, will do [03:59] wbruce: technoweenie: I'm not very familiar with the fs internals; still a bit fuzzy on how binding, etc, works in there [04:00] technoweenie: ahh [04:00] fictorial: tmpvar: actually, Number looks immutable. [04:00] wbruce: technoweenie: right now the `info` object I'm giving is a poor-man's substitute [04:00] tmpvar: fictorial, wonderful! [04:00] tmpvar: :/ [04:00] fictorial: Yeah, you're fighting an uphill battle my friend. [04:00] fictorial: :) [04:00] tmpvar: bradleymeck_, no matching function for call to �v8::Object::Set(int)� [04:01] bradleymeck_: it has a second arg, forget the type [04:01] tmpvar: oh dude [04:01] tmpvar: yeah, thats for setting a property of an object, no? [04:01] fictorial: that's setting a property [04:02] bradleymeck_: yes, but indexed vs named react diff int = indexed, value = named [04:02] bradleymeck_: idk if it will fix to the right one on args, but it might [04:02] tmpvar: oh, you mean do that on the args object [04:02] tmpvar: interesting, I'm not sure that will work because its a const [04:03] fictorial: hmmm Arguments does has its own values distinct from properties [04:03] fictorial: s/does// [04:03] fictorial: v8.h:1619 [04:06] bradleymeck_: mmm and values_ cant recast to Handle* (array style pointer)? [04:06] tmpvar: i believe so, yes [04:06] tmpvar: woops, i think they can actually [04:06] softdrink has joined the channel [04:06] tmpvar: digs [04:06] kodisha has joined the channel [04:07] _announcer: Twitter: "Just found out the @osbridge FPGA talk was canceled. :-( At least it makes it easier to decide to go to the Node.js talk, instead."-- Jacob Helwig. http://twitter.com/jhelwig/status/15154486315 [04:08] fictorial: values_ is private [04:09] _announcer: Twitter: "Just released initial temporary file and directory support for Node.js: http://github.com/bruce/node-temp"-- Bruce Williams. http://twitter.com/wbruce/status/15154586973 [04:09] fictorial: == wbruce? [04:09] wbruce: (dude, that was a *fast* announcement) [04:10] fictorial: tweetstream? [04:10] tmpvar: we are in the flow of it [04:10] wbruce: ACTION nods [04:10] fictorial: howdy [04:10] wbruce: howdy ;-) [04:10] shajith has joined the channel [04:10] bradleymeck_: then again, even if you change the arguments, that shouldnt change the values of all those object's pointers should it? [04:11] jedschmidt has joined the channel [04:11] technoweenie: yea the twitter streaming shit is amazing [04:11] bradleymeck_: s/object's/objects'/ [04:11] technoweenie: i wonder how many open connections they have right now [04:11] wbruce: yeah, I wasn't even sure I'd *sent* it yet [04:12] wbruce: it almost beat my onkeyup [04:12] fictorial: bradleymeck_: that's the trick - Number in C++ land is immutable, so no. [04:12] fictorial: for instance [04:12] tmpvar: bradleymeck_, pointers, no.. values .. hopefully [04:12] technoweenie: it beats my tweetie refresh [04:12] wbruce: yeah, nuts [04:12] technoweenie: though i'm not sure if the tweetie refresh is periodic or it displays immediately after sending [04:13] fictorial: tmpvar: I think at this point you have to just return values instead of trying to get call by reference working... call by reference will freak JS people out anyway. :) [04:13] fictorial: or not [04:13] bradleymeck_: i emulate call by ref w/ object properties, as its about the only sane way i can think of it in js [04:14] fictorial: right [04:14] fictorial: tmpvar: ^^^ that too [04:14] rektide: proxy api is coming [04:14] rektide: doobie doobie doobie doobie [04:14] tmpvar: heh [04:14] rektide: i cant believe v8 finally decided they have to break with jsc, hurrah [04:15] _announcer: Twitter: "http://bit.ly/aiwAoC ★ #Redis client for #Nodejs"-- François-G. Ribreau. http://twitter.com/FGRibreau/status/15154867428 [04:15] bradleymeck_: rektide which kind of proxy, the object proxies or net one? [04:15] rektide: ES Harmony's Proxy API [04:15] rektide: the one true way forward [04:15] rektide: the salvation of all javascript [04:16] tmpvar: lol [04:16] bradleymeck_: im working on that... sorry if im a bit slow [04:16] bradleymeck_: have to do a lot of munging to get it to match [04:16] rektide: although alex russell informs me method pre+post hooks are also vital for life [04:16] bradleymeck_: pre/post set/get? [04:17] rektide: as well as function calls [04:17] tmpvar: well, your suggestions are good, but they change the api, which sort of haunts me [04:17] fictorial: rektide: oh, that looks good. I could use that perhaps for the redis client to proxy api calls so that future commands will just work without a new release since they all serialize to the same format. [04:17] rektide: sorry i'm probably being a red herring here bradleymeck_, usually its safest to ignore me [04:18] mgkimsal has joined the channel [04:19] bradleymeck_: im not too much a fan of the api personally but i think having a standard is nice, i forget what, but it was missing something last time i looked [04:23] rektide: moz has had __noSuchMethod__ for a while [04:23] cedricv has joined the channel [04:23] bradleymeck_: you can emulate that right now using node-watchable, should prolly rename it when we move over to ES Harmony's [04:25] rektide: people way way smarter than I were paid to formalize Proxy API & i dont fully understand its limitations myself. the end has some interesting discussion. [04:25] rektide: there's also weak pointers and ephemeron tables, whcih are both things i would've loved to have back when i was doing .net hacking [04:25] rektide: btw, hiya cedricv [04:25] cedricv: hey rektide [04:26] rektide: i wrote some intrumentation to keep a transactional log of my objects, but it meant the objects never got GC'd since there were always managed references to them [04:26] rektide: total proejct killer [04:26] jwm: anyone know some good javascript coding practice documents? [04:26] jwm: I'm adding more and more code [04:26] jwm: I know closures are good [04:27] ajpiano has joined the channel [04:27] mostlygeek: jwm: closures are the bomb! :) [04:28] rektide: http://wiki.ecmascript.org/doku.php?id=harmony:proxies proxy link, for good measure. [04:30] Aria: Eegh. People are gonna start making crazy slow proxy objects if they get that, aren't they? [04:30] kodisha has joined the channel [04:33] fictorial: fun reading before sleep: http://www.fubiz.net/2010/02/23/found-functions/ bye. [04:33] creationix: fictorial: goodnight [04:34] mscdex: !so-last [04:34] _announcer: Last Question: "nodejs and database communication - how?" by FractalizeR. http://stackoverflow.com/questions/2934884 [04:34] mscdex: !so-next [04:34] _announcer: Time left for the next fetch: 00:00:03 [04:35] mde: jwm: Get a copy of Crockford's "Good Parts" book. It's pretty solid. [04:35] tmpvar: peace [04:35] mscdex: !so-next [04:35] _announcer: Time left for the next fetch: 00:29:05 [04:36] jwm: mde: hehe I have it already [04:36] mscdex: !so-next [04:36] _announcer: Time left for the next fetch: 00:28:21 [04:36] mscdex: oops [04:36] mde: Then it's really just looking at a lot of source code, deciding how you feel about different styles. [04:37] jwm: yeah [04:37] SteveDekorte has joined the channel [04:38] SteveDekorte: is there sample code for using node.js's Crypto? [04:38] bradleymeck_: Aria they might make crazy slow proxy stuff, but at the same time i hope people dont abuse it just because it is not needed very often, so there will be many posts about dont use this w/o knowledge [04:38] Aria: Google 'method_missing' and hate what you see. [04:39] mde: It's kind of hard to find good, basic, idiomatic JS, because there's excess in all the toolkits. :) [04:39] jwm: I just have a bunch of UI functions I need to code [04:39] jwm: and am stressing it [04:39] mde: The JQuery guys warp JS into something more JQuery than JS. And the Dojo guys make it kinda Java-like. [04:40] mde: Just put stuff in namespaces, don't uses lots of inheritance. [04:40] jwm: yeah I use jquery mostly [04:40] mde: In six months you'll look at it, and go, "what the fuck was I thinking?" [04:40] bradleymeck_: and mootools makes me cry inside [04:40] mde: And if you don't, it means you've stopped learning. :) [04:41] aiskander has joined the channel [04:41] mde: I haven't had the pleasure of using MooTools yet. [04:41] mde: But I've used a bunch of JQuery, and a metric ton of Dojo. [04:41] mde: And even Prototype. [04:42] mde: Which is the "how did all this shit get in my Array?" toolkit. [04:42] bradleymeck_: mootools is like if prototype was the blob attacking the dom [04:42] SteveDekorte: actually, I specifically need an example of doing SSL with node.js [04:43] _announcer: Twitter: "Pride in the company planned to study haetseum node.js. JavaScript is a client / server side can be used throughout, so it would be okay in the end I conclude own risk ~" [ko]-- Yeonho Jang. http://twitter.com/siabard/status/15156211856 [04:43] mde: They all try to implement classical inheritance, which is really going against the JS grain. [04:44] jwm: jquery is nice though [04:44] jwm: more a util [04:44] mde: JQuery has done more to evangelize JavaScript than anybody else. It's really solid. [04:45] mde: But the endless chaining and huge multiline functions passed as args make me want to cry. [04:46] halorgium: SteveDekorte: http://github.com/halorgium/elasticnode/blob/master/ec2client.js#L80 [04:46] bradleymeck_: see im still waiting for a js lib that has an option to static compile down chains [04:46] rektide: CSP was really never designed for a nested syntax [04:47] rektide: err DataFlow / CPS [04:47] SteveDekorte: halorgium: cool - thanks [04:47] bradleymeck_: use that Function(argnames...callsrc) [04:47] _announcer: Twitter: "Little known fact: node.js isn't the only JS engine that does async I/O well. http://live.gnome.org/Seed"-- Aria Stewart. http://twitter.com/aredridel/status/15156404986 [04:48] jwm: mde: what is your style of code? [04:48] jwm: have an example? [04:49] cloudhead: hey how do you get all the values of an object? [04:49] bradleymeck_: do you mean property names? [04:49] cloudhead: bradleymeck_: no values [04:50] cloudhead: I thought I saw an Object.values somewhere [04:50] mde: jwm: It's pretty plain-vanilla JS: http://github.com/mde/geddy/blob/master/geddy-core/lib/controller.js [04:50] cloudhead: but that doesn't work [04:51] CIA-77 has joined the channel [04:52] bradleymeck_: cloudhead you can either get the keys and return the values from a looping over them, or try some library, which will do the same for you I think javascript-fu has something akin to that [04:52] mde: jwm: Also, maybe this date stuff is a good example: http://github.com/mde/geddy/blob/master/geddy-util/lib/date.js [04:52] cloudhead: bradleymeck_: yea for some reason I thought I saw something specific [04:52] mde: It's pretty much the same code that ended up in Dojo. [04:53] bradleymeck_: nope, just be sure to use Object.getOwnPropertyNames(obj) if you want to involve non-enumerable properties [04:55] nsm has joined the channel [04:56] bradleymeck_: mmmm is there a weak handle module for node out there yet? [05:03] mscdex: geddy lee! [05:06] mscdex: geddy lee! [05:07] mscdex: ack, i gotta find a better irc client [05:07] mde: Dude, I'm with you on the Geddy thing. [05:08] mde: But I guess that's pretty obvious. [05:10] Neil has joined the channel [05:12] mscdex has joined the channel [05:17] bpot has joined the channel [05:17] mscdex: awesome i think this build is working bettar [05:20] _announcer: Twitter: "@jhelwig Let me know how the Node.js talk was; I've been meaning to get in on that action for a while now..."-- pvande. http://twitter.com/pvande/status/15157866381 [05:23] ryah: hello [05:23] mape: mornin [05:23] micheil: morning' [05:27] mscdex: ditto [05:29] jedschmidt has joined the channel [05:37] bradleymeck_: bleh? its not morning at all [05:37] Aria: It's always morning UGT. [05:40] bradleymeck_: its never morning on the dark side of the moon [05:42] bradleymeck_: im losing it in c++ land, i be off to bed, sleep tight all you morning ppl [05:43] markwubben has joined the channel [05:47] aho has joined the channel [05:48] _announcer: Twitter: "[reddit] http-console: simple, intuitive HTTP console for node.js http://goo.gl/fb/2iJE0"-- Bruce Wang. http://twitter.com/number5/status/15158975900 [05:50] nsm has joined the channel [05:50] creationix has joined the channel [05:50] hassox has joined the channel [05:51] _announcer: Twitter: "file uploading now very fast http://debuggable.com/posts/parsing-file-uploads-at-500-mb-s-with-node-js:4c03862e-351c-4faa-bb67-4365cbdd56cb"-- Amit Agarwal . http://twitter.com/amitdotagarwal/status/15159104263 [05:53] _announcer: Twitter: "@aremes yes, node.js is the way to go!"-- Siegmund Führinger. http://twitter.com/0xx0/status/15159190154 [05:54] Yuffster has joined the channel [05:54] Tim_Smart has joined the channel [05:55] _announcer: Twitter: "@ Arem if serverside js -> node.js / cc @ 0XX0" [de]-- Andreas Klinger. http://twitter.com/andreasklinger/status/15159270447 [06:00] cloudhead has joined the channel [06:04] _announcer: New Question: "Is there a Thrift or Cassandra client for Node.js/JavaScript" by Toby Hede. http://stackoverflow.com/questions/2947470 [06:09] Aria has left the channel [06:22] _announcer: Twitter: "I ride the 26 th June at # MarginCon. I will make a report on Node.js" [ru]-- Владислав Семенов. http://twitter.com/Semenov/status/15160317846 [06:36] aconbere has joined the channel [06:38] TomY has joined the channel [06:44] mattly has joined the channel [06:44] mattly has joined the channel [06:45] ph^ has joined the channel [06:52] b_erb has joined the channel [06:53] Nohryb has joined the channel [07:00] mostlygeek has joined the channel [07:05] gwoo has joined the channel [07:09] jedschmidt has joined the channel [07:10] saikat_ has joined the channel [07:11] _announcer: Twitter: "@donaq That's my opinion but there's a web framework here for Node.js that you may like: http://github.com/visionmedia/express"-- KahWee. http://twitter.com/kahwee/status/15162035544 [07:11] ayo has joined the channel [07:21] virtuo has joined the channel [07:24] tpryme has joined the channel [07:29] _cheerios has joined the channel [07:29] ph^ has joined the channel [07:37] Ori_P has joined the channel [07:37] sveimac has joined the channel [07:39] felixge has joined the channel [07:39] felixge has joined the channel [07:39] mpoz2 has joined the channel [07:46] aconbere: ha [07:46] aconbere: so this afternoon [07:46] aconbere: I ported assert and minitest to run in the browser [07:46] aconbere: and it's actually a pretty decent testing tool [07:50] SubStack: awesome [07:50] SubStack: I wrote a client-side EventEmitter a few days ago [07:51] aconbere: :) [07:52] aconbere: and.... bed time [07:52] SubStack: oh I also wrote a require() yesterday [07:52] SubStack: still testing that one [07:52] SubStack: managing client-side libraries is so crazy [07:53] SubStack: http://gist.github.com/419788 [07:53] aconbere: ha [07:53] aconbere: yes it is [07:54] aconbere: I would love a single file [07:54] aconbere: "node-compat" [07:54] SubStack: yes, want [07:54] aconbere: okay I gotta sleep :) [07:54] aconbere: bring me a node-compat [07:54] aconbere: I expect it on my desk in the morning :) [07:54] SubStack: I'm on it! [07:54] aconbere: night! [07:56] SubStack: hmm, I could use that as a platform to foister some of my other projects too [07:56] SubStack: like scoped monkey patching [07:58] cedricv has joined the channel [07:58] SubStack: Array should have zip, take, drop, and all that functional goodness [08:00] _announcer: Twitter: "http://bit.ly/9OQU05 | Socket.IO = # HTML5 websocket / flash client-side & server-side NodeJS" [lv]-- François-G. Ribreau. http://twitter.com/FGRibreau/status/15163699977 [08:03] tav_ has joined the channel [08:06] felixge has joined the channel [08:06] felixge has joined the channel [08:18] margle has joined the channel [08:19] ewdafa has joined the channel [08:22] linuxsable has joined the channel [08:24] pdelgallego has joined the channel [08:24] mostlygeek has joined the channel [08:31] _announcer: Twitter: "my node.js + riak presentation slides: http://bit.ly/9GHJVL #nodejs #riak"-- Francisco T. http://twitter.com/frank06/status/15164756644 [08:32] _announcer: Twitter: "Node.JS + Django = djangode http://github.com/simonw/djangode" [sr]-- A.J. http://twitter.com/andrwj/status/15164785792 [08:32] mAritz has joined the channel [08:45] N` has joined the channel [08:49] markwubben has joined the channel [08:53] rnewson has joined the channel [09:00] darrell has joined the channel [09:04] nsm has joined the channel [09:08] margle_ has joined the channel [09:09] alexpercsi has joined the channel [09:12] Ori_P has joined the channel [09:13] maushu has joined the channel [09:15] margle has joined the channel [09:20] rra has joined the channel [09:22] felixge: bah, sys.log is unusable since it uses non-flushing stdout [09:22] felixge: :| [09:30] _announcer: Twitter: "@gmosx is that an issue with #nodejs or the available hosting options? #heroku has #nodejs running in the cloud so I don't buy your argument"-- Aslak Hellesøy. http://twitter.com/aslak_hellesoy/status/15166796401 [09:31] _announcer: Twitter: "Turns out I need to get git to use nvm to use node.js to use npm to use http-console. Maybe I'll just stick with curl. http://bit.ly/bHbMo2"-- Mike Arvela. http://twitter.com/mieky/status/15166855144 [09:34] pdelgallego has joined the channel [09:36] javajunky has joined the channel [09:36] mscdex: heh [09:39] sh1m has joined the channel [09:40] MattJ has joined the channel [09:42] _announcer: Twitter: "@mieky Ask those Twitter clients from the authors of node.js/nvm. Probably they have something recursive for you to enjoy."-- Janne Pikkarainen. http://twitter.com/the_jaba/status/15167224649 [09:48] hassox has joined the channel [10:01] derbumi has joined the channel [10:04] |Bolt| has joined the channel [10:05] |Bolt| has left the channel [10:06] _announcer: Twitter: "@timwhitlock i'm afraid something that's nice enough with nodejs. will do some research this week. http://bit.ly/aPay1M will help me a bit"-- Janos P Toth. http://twitter.com/tjp/status/15168114051 [10:30] _announcer: Twitter: "Does not it node.js like what I have achieved multi-" [ja]-- あんでぃふぁいんど. http://twitter.com/nullkal/status/15169041112 [10:35] SvenDowideit_ has joined the channel [10:36] stagas has joined the channel [10:38] sveimac has joined the channel [10:38] SvenDowideit has joined the channel [10:39] Nohryb has joined the channel [10:39] _announcer: Twitter: "@ Semenov report node.js!? long wanted to hear about it!" [ru]-- Mikhailov Anatoly. http://twitter.com/amikhailov/status/15169368377 [10:45] _announcer: Twitter: "I'm node.js heroku of experimental support. Get antsy. http://ow.ly/1Snrr" [ja]-- 西山 雄也/Nishiyama Yuya. http://twitter.com/nsyee/status/15169595932 [10:45] ph^ has joined the channel [10:47] mgkimsal has joined the channel [11:08] fermion has joined the channel [11:33] _announcer: Twitter: "@frank06 nice presentation, easy to understand even though I wasn't present during the show. what do you use for hosting (node.js), heroku?"-- Tonći Galić. http://twitter.com/tuxified/status/15171634599 [11:40] ivan has joined the channel [11:42] jherdman has joined the channel [11:51] mitkok has joined the channel [11:52] _announcer: Twitter: "another great keynote "nodejs and ruby" http://bit.ly/d4iwRg #nodejs #ruby #websockets"-- Régis Gaidot. http://twitter.com/rgaidot/status/15172525280 [11:57] _announcer: Twitter: "great post on redis, nodejs and websockets (Real-time Collaborative Editing with Web Sockets, Node.js & Redis) http://bit.ly/cS3J1H"-- Régis Gaidot. http://twitter.com/rgaidot/status/15172763950 [12:18] dkastner has joined the channel [12:29] hellp has joined the channel [12:29] hellp has joined the channel [12:31] K`` has joined the channel [12:31] K``: Hello, there. [12:33] K``: is it possible to stop incoming POST stream and just reply a 406? req.connection.end() does not seem to do that, and req.conection.destroy() just kills connection without sending response. am i missing somthing? [12:33] sveimac has joined the channel [12:34] Tim_Smart: response.writeHead(404); response.end(); ? [12:35] Tim_Smart: 406 rather [12:35] mscdex: ^ that [12:35] b_erb has joined the channel [12:37] K``: ummm, yeah. but in this case it does not stop a huge POST [12:40] phiggins has joined the channel [12:40] kodisha has joined the channel [12:44] sveimac has joined the channel [12:45] _announcer: Twitter: "Anyone have questions for @michaeln3, today? He will be on talking about Mongo, Node.js, Hummingbird, etc."-- WebPulp TV. http://twitter.com/webpulptv/status/15175245558 [12:46] mscdex: a huge post? [12:54] steadicat has joined the channel [12:54] [[zz]] has joined the channel [12:56] stepheneb has joined the channel [12:56] hassox has joined the channel [13:04] dwww has joined the channel [13:04] steadicat has joined the channel [13:09] Psytherium has joined the channel [13:12] maushu: So tired. [13:12] maushu: Need to finish this work till tomorrow or I will have my head on a spike. [13:13] james has joined the channel [13:15] saimon has joined the channel [13:16] saimon: fictorial: ping [13:16] broofa has left the channel [13:16] stepheneb has joined the channel [13:20] _announcer: Twitter: "Web-development / [Translation] Node.NET: Running on Windows through Node.JS. NET: Node is planning to eventually http://url4.eu/3w4Dv" [ru]-- Вадим Поляков . http://twitter.com/vadimpolak/status/15177219734 [13:24] davidsklar has joined the channel [13:24] _announcer: Twitter: "@ Timpritlove proves that the world needs node.js to stop these accidents DDoS:)" [de]-- Leon Weidauer. http://twitter.com/techpriester/status/15177486451 [13:30] TomY has joined the channel [13:33] _announcer: Twitter: "Stumbled on something that is node.js, funny thing, some tasks on networks could be straight on it is normal to write" [ru]-- Kanterov Gleb. http://twitter.com/glebus/status/15177968689 [13:39] Psytherium_ has joined the channel [13:40] felixge has joined the channel [13:40] felixge: anybody here using the crypto module for AES? [13:40] felixge: It seems like init vectors are not supported? [13:41] felixge: nvm [13:41] felixge: just not documented [13:41] unomi has joined the channel [13:42] sudoer has joined the channel [13:43] softdrink has joined the channel [13:47] Neil_ has joined the channel [13:47] pjb3 has joined the channel [13:47] ceej has joined the channel [13:49] _announcer: Twitter: "http://habr.ru/p/95120/ Node.NET: Running on Windows through Node.JS. NET # habr" [ru]-- Egloo. http://twitter.com/egloo_kz/status/15178950059 [13:51] TheEnd2012 has joined the channel [13:56] kriszyp has joined the channel [13:56] K`` has joined the channel [13:59] ineation has joined the channel [14:00] fictorial: saimon: pong [14:02] _announcer: Twitter: "[del] [from FlatSpace] Parsing file uploads at 500 mb/s with node.js » Debuggable Ltd: http://url4.eu/3w8uY"-- sldfjd ldajds. http://twitter.com/sldfjd/status/15179740187 [14:03] hsuh has joined the channel [14:04] K``: o_O [14:04] phiggins has joined the channel [14:04] xla has joined the channel [14:06] saikat has joined the channel [14:08] _announcer: Twitter: "objective-c,node.js,javascript and html5 in 1 project....i think my eyes are flashing red lights for system overload :^)"-- royi benyossef. http://twitter.com/Royi_benyossef/status/15180146693 [14:09] kriszyp_ has joined the channel [14:10] kriszyp__ has joined the channel [14:12] _announcer: Twitter: "@rsinger @robotrobot why not node.js (better expressjs.com), jake and cappuccino?"-- Laurian Gridinoc. http://twitter.com/gridinoc/status/15180377712 [14:15] kodisha has joined the channel [14:22] _announcer: Twitter: "Check out this SlideShare presentation : node.js + Riak http://slidesha.re/aKdTry"-- Michael Paul. http://twitter.com/michaelpoul/status/15180975505 [14:27] jedschmidt has joined the channel [14:28] gf3 has joined the channel [14:29] riq has joined the channel [14:34] halorgium has joined the channel [14:37] saimon has joined the channel [14:40] _announcer: Twitter: "Node.NET: Running on Windows through Node.JS. NET http://ff.im/lhOnQ" [ru]-- Андрей Гаевский. http://twitter.com/gaech/status/15182150343 [14:42] nefD has joined the channel [14:44] Yuffster has joined the channel [14:46] ivan`` has joined the channel [14:48] hsuh` has joined the channel [14:50] rolfb has joined the channel [14:50] ditesh|cassini has joined the channel [14:53] rockstar has joined the channel [14:53] rockstar has joined the channel [14:55] hsuh` has joined the channel [14:57] probably_ has joined the channel [14:57] o_o has joined the channel [14:59] probably_ has joined the channel [15:02] pquerna has joined the channel [15:02] spoob_ has joined the channel [15:02] pquerna has joined the channel [15:03] tjholowaychuk has joined the channel [15:05] bradleymeck: tmpvar, you got an example or docs on how to use your node-protobuf [15:11] bolson has joined the channel [15:12] unomi has joined the channel [15:15] _announcer: Twitter: "@ Porqz agree, a report on Node.js must be there" [ru]-- Edward Tsech. http://twitter.com/edtsech/status/15184332516 [15:15] _announcer: Twitter: "Compiling #nodejs on 3 machines in parallel. #globalwarming"-- Felix Geisendörfer. http://twitter.com/felixge/status/15184347525 [15:20] stepheneb has joined the channel [15:20] _announcer: Twitter: "Heroku Experimental node.js support .... http://tiny.cc/42ynd"-- Giancarlo Valente. http://twitter.com/gncvalente/status/15184622253 [15:20] _announcer: Twitter: "@felixge what do you use to compile node.js on multiple boxen?"-- Jacek Becela. http://twitter.com/jacek_becela/status/15184648379 [15:21] maushu: Hang in there _announcer dude. DON'T CRASH ON ME. [15:22] _announcer: Twitter: "the basics of node.js async programming ..... what is a node.js promise ? http://techno-weenie.net/2010/1/15/node-js-for-my-tiny-ruby-brain"-- Giancarlo Valente. http://twitter.com/gncvalente/status/15184755234 [15:23] tmpvar has joined the channel [15:24] mscdex: huhuhuhu [15:24] tmpvar: hello [15:24] mscdex: _announcer would never crash! [15:24] mscdex: hai tmpvar [15:25] tmpvar: how you do? [15:26] mscdex: alright, trying to muster up enough motivation to continue working on node modules [15:26] mscdex: heh [15:26] mscdex: you? [15:26] pgriess has joined the channel [15:27] tmpvar: workin [15:27] binary42 has joined the channel [15:27] tmpvar: what modules are you working on? [15:27] tmpvar: hey bin [15:28] tmpvar: binary42 even [15:28] binary42: tmpvar: Hey. [15:28] jedschmidt_ has joined the channel [15:29] mscdex: mostly socket.io and node-asterisk [15:30] riq has joined the channel [15:30] tmpvar: ah nice, node-asterisk sounds fu [15:30] tmpvar: fun [15:31] tmpvar: having a bit of difficulty typing today apparently [15:31] binary42: tmpvar: You need to write a module for node called spellche.js [15:32] joshbuddy has joined the channel [15:32] mscdex: heh [15:32] tmpvar: nice [15:32] mscdex: yeah i'm using it for work actually [15:32] mscdex: to do some realtime stuff inside of sugarcrm [15:33] bradleymeck: anyone got a protocol buffer impl for js lying around that can eat .proto files [15:35] quirkey has joined the channel [15:36] mscdex: not that i'm aware of, but that would be neat [15:37] mscdex: er, i take that back. none for node specifically, but a couple js implementations here: http://github.com/sirikata/protojs and http://code.google.com/p/protobuf-js/ [15:38] bradleymeck: yea but they dont eat .proto files in js :/ [15:38] mscdex: it's a start though ;-) [15:40] o_o: i'm having trouble getting a response.write out to the browser - the headers are coming fine. [15:41] mscdex: response.end(); ? [15:41] mscdex: :P [15:42] o_o: :D nope [15:42] o_o: i have that [15:42] mscdex: gist the code you're using [15:43] mscdex: on the server end [15:43] o_o: http://gist.github.com/420585 [15:43] o_o: thanks! [15:47] quirkey_ has joined the channel [15:48] jedschmidt: voodootikigod just posted the next jsconf talk: http://blip.tv/file/3684946 [15:49] mscdex: o_o: have you tried setting Connection to 'close' instead? [15:49] kriszyp_ has joined the channel [15:51] mscdex: i'm not understanding the flow here, which is the server code? [15:51] o_o: mscdex: no difference [15:51] o_o: mscdex: it's all the server code [15:52] o_o: service.js [15:52] o_o: gets method POST [15:52] margle has joined the channel [15:52] o_o: and goes to http://gist.github.com/420585#file_lo.js [15:52] mscdex: i see [15:54] o_o: i'm stumped - jquery is considering the call a success - but only triggering 'completed' and not 'success' [15:54] margle: what are you guys using to map urls to views? [15:54] margle: is there a framework? [15:54] o_o: margie : no framework [15:54] o_o: just a port. [15:54] tmpvar: o_o, does that mean that the error callback is being called? [15:54] felixge has joined the channel [15:54] felixge has joined the channel [15:54] mscdex: o_o: what if you try connecting from another node instance that is a http client? check to see if you get a body then? [15:54] margle: o_o: if request.path == '/margle/' { callback? } [15:54] o_o: mscdex: nope error doesn't get called - just complete and it has status 'success' [15:55] mscdex: eh? [15:55] mscdex: that was tmpvar :) [15:55] bradleymeck: you did end() it? [15:55] o_o: margie: the http://gist.github.com/420585#file_lo.js is getting exectuted - the headers are getting sent - just not the response output [15:55] o_o: it is response.end(); [15:56] margle: o_o: I'm talking about in general - [15:56] mscdex: o_o: well, as a side note your charset has a typo [15:56] o_o: ahh! [15:56] o_o: that is good to know [15:56] K``: is there a way to detect if user presses Esc (stops sending data) in browser while upload ? [15:57] mscdex: o_o: but i would try connecting to the server with an http.Client and see what kind of response you get [15:57] o_o: mscdex what is the typo? [15:57] mscdex: o_o: just to see if it's something related to the browser/jquery or not [15:57] mscdex: o_o: charset=uft-8 should be charset=utf-8 [15:57] bradleymeck: K``:try onkeydown/up ill pull up the char code one sec [15:58] K``: ummno, i was thinking - serverside [15:58] K``: i am mucking around on nodejs.org documentation but catnt quite get it [15:58] mscdex: K``: maybe listen on stdin? [15:58] o_o: mscdex: thank you i missed that! [15:59] margle: any template engine recommendations? [16:00] bradleymeck: K``, yes, you can use curses, and you can use node-terminal, but terminal has a bug exiting raw mode, and its really ugly [16:00] K``: pfff, we are talking diffent things [16:01] vnguyen has joined the channel [16:01] bradleymeck: you have to listen to stdin, esc does not fire a break signal normally [16:01] bradleymeck: so entering raw mode allows you to do that [16:02] K``: i have a http upload receiver, written with nodejs, and i am looking for a way to detect if user has canceled upload [16:02] bradleymeck: oooh [16:03] mscdex: K``: are you using node-formidable? [16:03] K``: no [16:03] felixge: K``: not using formidable? Why? :) [16:04] mscdex: hehe [16:04] K``: um, wont be posting using html-ish forms [16:04] felixge: K``: you should listen to req.connection.addListener('end') [16:04] K``: and i think i found solution - [16:04] K``: yeah [16:04] K``: req.connection.addListener('end', function () { sys.puts("conn goodbye\n"); req.connection.end(); }); [16:04] felixge: K``: what kind of forms are you thinking about? [16:05] K``: um, no forms per-se, my thingy will be just a receiver for upload/post [16:06] K``: jquery/ajax-ish [16:08] felixge: K``: is it a file upload? [16:08] K``: yeah [16:08] K``: i am probably reinventing the wheel [16:09] felixge: K``: you will need a multipart parser [16:09] K``: yea i have that covered [16:09] felixge: K``: what are you using? [16:10] K``: lalala:8000/upload?id=123123 receives upload / lalala:8000/progress?id=123123 echoes upload progress every half second or so [16:10] K``: plain nodejs [16:10] o_o: curl -d "callback=hi&JSON=1" localhost:7001 => ;hi(1); [16:10] o_o: mscdex: ^^ [16:11] o_o: so - something wacky with jquery then. [16:11] pgriess has left the channel [16:11] mscdex: o_o: sounds like it [16:11] felixge: K``: that still does not explain how you plan to parse the actual data stream coming in [16:12] felixge: K``: I mean you are not getting a plain file, you get a multipart wrapper that has the file [16:12] mscdex: o_o: what does the jquery code look like? [16:12] K``: var p = new multipart.parser(); p.headers = req.headers; req.addListener("data", function(chunk) { p.write(chunk); }); [16:13] K``: as i said, multipart part is working nicely. [16:14] o_o: mscdex : http://gist.github.com/420585#file_jq_test.js [16:15] o_o: mscdex: if i change the dataType to 'json' then the success gets run [16:15] o_o: but post still returns no body [16:15] o_o: and jquery doesn' send the callback=aeaoeuaoeu123123123 [16:15] o_o: thing [16:17] felixge: K``: I doubt it's working nicely. There is only one decent multipart parser for node.js, and it's not the one you're using ;) [16:17] K``: um. i am using one from github [16:17] K``: em [16:17] K``: multipart-js [16:17] K``: is there somthing wrong with it? [16:18] felixge: K``: yes, that one is well done, but it uses Strings rather than Buffers which is not very efficient [16:18] o_o: ahh tea! [16:18] felixge: K``: http://github.com/felixge/node-formidable [16:18] o_o: so good [16:18] o_o: but no luck :D [16:18] sh1mmer has joined the channel [16:18] K``: i should use that one, felixge? [16:19] felixge: K``: it's specifically crafted for file uploads, has been benchmarked at 500 Mb/sec, and is fully non-buffering which makes it highly memory efficient [16:19] K``: oh. [16:20] felixge: K``: so yeah :) [16:20] K``: and is written by you, hehe [16:20] K``: ok ill give it a spin [16:20] felixge: K``: well, I work on a project that is entirely focused on file uploads, so I have spend a bit of time on this :) [16:20] felixge: K``: you can read more about the parser here: http://debuggable.com/posts/parsing-file-uploads-at-500-mb-s-with-node-js:4c03862e-351c-4faa-bb67-4365cbdd56cb [16:21] K``: i think i red that today on HN [16:21] felixge: K``: yeah. Do you need to write your uploads to disk? [16:21] K``: yeah, thats the idea [16:21] felixge: K``: because that's another nice thing this library can do for you [16:21] K``: uplaod, get upload pogress and store to disk [16:21] felixge: K``: that's the use case this library is meant for :) [16:21] K``: so other lawnmovers can access it [16:22] quirkey has joined the channel [16:22] K``: this is my 1st exposrure to node.js ever, but it looks really nice. [16:22] kriszyp: felixge: how hard is it to use node-formidable if I don't want the files written to disk (want to get a stream instead)? [16:22] felixge: kriszyp: the readme has a section on that, you just overwrite form.onPart [16:23] kriszyp: its a little confusing to me, it says "path: 'the path in the uploadDir this file was written to", does this mean it still writes the file? [16:24] felixge: kriszyp: no, by the time you get the file event, the entire file was received *and* flushed to disk [16:24] _announcer: Twitter: "'woot' #express 0.13.0 is out and about ;) http://github.com/visionmedia/express/tree/0.13.0 #expressjs #nodejs #awesome ;)"-- Ciaran Jessup. http://twitter.com/ciaran_j/status/15188588986 [16:25] mattly has joined the channel [16:25] kriszyp: ok, so if use onPart, I basically don't get any help from node-formidable on field parsing? [16:26] felixge: kriszyp: let me make that easier for you, 1 sec [16:26] kriszyp: ok, sorry for being difficult [16:26] mostlygeek has joined the channel [16:28] bpot has joined the channel [16:33] felixge: kriszyp: http://github.com/felixge/node-formidable/commit/f23f5478ddf90dc22aa5c5966e650c1bdfd5ae31#L0R112 [16:33] felixge: kriszyp: also published a new version in npm for your convenience ;) [16:33] kriszyp: nice [16:34] felixge: kriszyp: now go and do some evil streaming :) [16:34] Ori_P has joined the channel [16:34] kriszyp: you don't like streaming? [16:35] K``: Error: parser error, 0 of 907 bytes parsed hmmmm [16:36] kriszyp: so when I get a file in onPart, it will be an object with a "filename" property, but not a "path" property (since it wouldn't be written to the disk)? [16:36] kriszyp: and the "data" events would be the contents of the file, or would they include the headers? (mime type, content-disposition) [16:36] felixge: K``: did you set the boundary? [16:36] felixge: K``: what browser / client? [16:36] K``: probably not, i just retyped from example [16:36] felixge: kriszyp: yeah, no path property [16:36] K``: safari / osx [16:37] felixge: kriszyp: no, the headers are already parsed [16:37] felixge: kriszyp: mime type is part.mime [16:37] kriszyp: that sounds aweome [16:37] felixge: kriszyp: other headers are currently not exposed, patch welcome [16:37] kriszyp: very cool [16:38] felixge: kriszyp: actually, nvm. They are exposed: part.headers [16:38] kriszyp: great [16:38] felixge: kriszyp: Unit testing makes it hard to ignore missing things :| [16:38] _announcer: Twitter: "@ Neskreba Here on # margincon come with a report on # node.js Come listen." [ru]-- uglock. http://twitter.com/uglock/status/15189455173 [16:38] felixge: K``: ok, let me test the example on safari [16:38] K``: //req.setEncoding('binary'); [16:38] BBBB has joined the channel [16:39] K``: commented out this and now it kinda works [16:40] felixge: K``: setEncoding is not in the example, is it? [16:40] K``: it is not [16:40] K``: my bad [16:40] felixge: K``: the binary encoding makes things slow, by default node is now using buffers [16:40] felixge: K``: which are like arrays of memory [16:41] felixge: K``: each byte being one element [16:41] K``: i get that thnx [16:41] felixge: K``: those are very fast and formidable uses it :) [16:41] inimino: felixge: nice article on Boyer-Moore [16:41] felixge: inimino: thanks [16:42] felixge: inimino: it wasn't really on boyer moore, just how my non-CS degree ass got around doing actual science again :) [16:42] b_erb: it's so nice just to watch your conversation, that req.setEncoding('binary') / API change could just be the bug i'm hunting right now [16:43] hellp has joined the channel [16:44] technoweenie has joined the channel [16:44] CIA-77: node: 03Ryan Dahl 07master * rf86a214 10/ (79 files in 8 dirs): Upgrade to V8 2.2.13 - http://bit.ly/amsuzp [16:44] CIA-77: node: 03Ryan Dahl 07master * rd62b0f4 10/ lib/sys.js : Fix style in sys.js - http://bit.ly/8ZoOJe [16:44] CIA-77: node: 03Orlando Vazquez 07master * re9ced39 10/ (4 files in 3 dirs): [16:44] CIA-77: node: Add a parameter to spawn() that sets the child's stdio file descriptors. [16:44] CIA-77: node: After the child is forked, these file descriptors will get dup2()'d to STDIN, [16:44] CIA-77: node: STDIO, and STDERR. - http://bit.ly/a7Q3ig [16:44] inimino: felixge: hehe, well it was a good read, and fun to see people doing that kind of stuff in node :) [16:44] ryah: sorry i ddin't mean to push that one yet [16:44] ryah: forced push [16:45] b_erb: felixge: you really don't have a cs background? [16:45] CIA-77: node: 03Ryan Dahl 07master * rd62b0f4 10/ lib/sys.js : Fix style in sys.js (+599 more commits...) - http://bit.ly/8ZoOJe [16:45] felixge: b_erb: no, I started freelancing in high school and I'm running a tiny companyn ow [16:45] b_erb: highschool = gymnasium? [16:47] K``: huh, incomingForm.handlePart(part); - it is gone? [16:48] felixge: b_erb: yes [16:49] felixge: K``: what is gone? [16:49] b_erb: felixge: and you never thought about studying? [16:49] K``: TypeError: Object # has no method 'handlePart' [16:49] felixge: b_erb: not CS. Right now my plan is to build a profitable lifestyle business *or* sell a company so I can spend the majority of my life learning & doing the things I find interesting [16:50] felixge: b_erb: I'd be much more interested in robotics, math, philiosophy, history, physics, etc. than CS [16:50] felixge: b_erb: CS seems kinda pointless to me if you're a self-taught kinda person [16:50] b_erb: felixge: so you're rather looking for some meta subject? [16:50] felixge: K``: hope I didn't fuck this up [16:50] felixge: K``: let me check [16:51] K``: grep -R does not find handlePart in formidable dir :/ [16:51] _announcer: Twitter: "@janl Prodding? Ok, how about Node.js as an all-in-one CouchDB co-process? Won't leave much to be desired! (Dumping core imagining it. ;-)"-- Jan-Piet Mens. http://twitter.com/jpmens/status/15190226186 [16:51] stagas has joined the channel [16:52] felixge: K``: wait, have you updated your version in the last 10 minutes? [16:52] stevendavie has joined the channel [16:52] felixge: K``: this feature is sort of "new" :) [16:52] K``: oh. [16:53] K``: it is HOT, i would even say. [16:53] felixge: b_erb: no, I'm looking for things that are interesting and entertain me or are interesting in that they can be applied [16:54] probablyCorey has joined the channel [16:54] b_erb: felixge: ok, sounds like you're exactly knows what you're doing. and obviously you even can make a living of that [16:54] K``: felixge, cloned most recent one, now it works as advertised. [16:55] b_erb: felixge: so why not [16:56] probablyCorey: Is there something similar to Ruby's Rack or Python's WSGI for node? [16:56] felixge: b_erb: I have no idea what I'm doing : ). But I have a few goals [16:56] felixge: probablyCorey: fab [16:56] felixge: probablyCorey: not 100% done yet [16:56] probablyCorey: felixge: Thanks, I'll check it out [16:56] b_erb: ok see you guys, gotta go [16:57] kriszyp: probablyCorey: http://github.com/kriszyp/jsgi-node/ might be the most similar to WSGI for node [16:57] ryah: felixge: i think the docs could make it more clear how special stderr is [16:57] ryah: felixge: but i'm realtively happy with using stderr for debugging purposes [16:57] drudge: probablyCorey: as far as i know tjholowaychuk has a rack-like node project in the works [16:58] kriszyp: JSGI is kind of the async version of WSGI, I don't think fab tries to be like WSGI [16:58] kriszyp: and there is a lot of middleware available for JSGI [16:59] probablyCorey: So I've got lots to choose from! [16:59] felixge: ryah: I'm trying to be a better unix citizen when writing tools, so having stdout and err ordered would be nice [16:59] felixge: g2g [16:59] shajith has joined the channel [16:59] ryah: kriszyp, probablyCorey, felixge: fwiw creationix and TJ are releasing thier JSGI replacement soon [16:59] technoweenie: is that what its being billed as? [17:00] technoweenie: creationix shared a tarball of it over the weekend, it looked cool [17:00] kevwil has joined the channel [17:00] JimBastard has joined the channel [17:00] technoweenie: it looked more like a full on web framework with filters (rack apps, jsgi modules, whatever) [17:00] kriszyp: yeah, it seems like there has a been a lot of "JSGI replacements" [17:01] technoweenie: jsgi is fully async? [17:01] drudge: technoweenie: i didn't think connect was their rack-like stuff [17:01] kriszyp: yes [17:01] kriszyp: jsgi-node is anyway [17:01] technoweenie: drudge: ohhh, that's interesting then [17:01] technoweenie: kriszyp: do you have an example? are you referring to the bottom example on the readme [17:02] kriszyp: yes, that would be an example [17:02] kriszyp: well, both of the examples are async actually [17:02] technoweenie: is it possible to stream a response body [17:02] kriszyp: yes [17:03] mattly has joined the channel [17:03] kriszyp: return {status:200, body:forEach(function(write){ write("next chunk")... [17:03] ryah: JSGI is not a very good interface, IMO [17:03] ryah: I also am not convinced by creationix's interface [17:04] kriszyp: yeah, I assumed you liked your interface better [17:04] ryah: although i only looked at it for 2 seconds :) [17:04] mostlygeek has joined the channel [17:04] kriszyp: I assume you wouldn't leave your interface the way it is if you didn't like it :P [17:04] tjholowaychuk: ryah: the api sucks right now IMO, needs some work [17:04] quirkey has joined the channel [17:04] ryah: tjholowaychuk: when is it coming out? [17:05] tjholowaychuk: ryah: AFAIK right away, some time this week I would imagine [17:05] kriszyp: I don't dislike node's interface, I just find JSGI better for building middleware stack on top of it [17:05] ryah: anyway - there is some need for middleware stackable things, i suppose [17:05] technoweenie: i think its good that node's interface stays very low level [17:05] ryah: it's just not something i am concerned with - i've got lots of stuff that i just want a raw http interface [17:06] ryah: for [17:06] tjholowaychuk: kriszyp: connect is a really thin layer on top of node, the benchmarks I did show verrrrrrry little deviation from the strictly node equivs [17:06] kriszyp: I was actually thinking of making a reverse of jsgi-node, so you kind of stack JSGI middle /node's http middeware-ish components interchangeably [17:14] cloudhead has joined the channel [17:15] _announcer: Twitter: "Learning node.js following an outdated tutorial is quite interesting :)"-- soryu2. http://twitter.com/soryu2/status/15191632997 [17:16] mertimor has joined the channel [17:17] joshbuddy has joined the channel [17:18] mertimor has joined the channel [17:19] mertimor has joined the channel [17:19] rolfb has joined the channel [17:20] mertimor has joined the channel [17:21] paul_irish has joined the channel [17:21] mertimor has joined the channel [17:22] mertimor has joined the channel [17:23] [[zz]] has joined the channel [17:24] mertimor has joined the channel [17:24] rednul_ has joined the channel [17:24] eto has joined the channel [17:25] eto: is there some good reading about js's this? [17:25] mertimor has joined the channel [17:25] eto: something easy, i can't wrap my head around it [17:25] JimBastard: sup eto [17:25] eto: sup? [17:26] inimino: eto: Eloquent JavaScript has something about it, I think [17:26] mertimor has joined the channel [17:26] eto: well i understand that scope is function based [17:26] inimino: what's confusing you about it? [17:26] eto: but the this seems to me it's fluctuating like it has no logic [17:27] inimino: the logic is entirely determined by how the function is called [17:27] mertimor has joined the channel [17:27] ewdafa: eto: http://howtonode.org/what-is-this [17:27] inimino: `this` is a characteristic of a specific function call, it has nothing to do with the function itself [17:28] eto: well I have procedural background in c++ -> object isntance is basically autofilled by compiler like this: method(object_vtablepointer_aka_this, params) [17:28] mertimor has joined the channel [17:29] eto: but in js it seems to me its like jsfunc(random,params) [17:29] kodisha has joined the channel [17:29] JimBastard: eto: maybe you should be looking at some basic JS tutorials [17:29] mertimor has joined the channel [17:30] inimino: try Eloquent JavaScript [17:30] inimino: `g eloquent javascript @ eto [17:30] gbot2: eto: Eloquent JavaScript -- interactive tutorial - http://eloquentjavascript.net/ [17:30] eto: JimBastard okay are there some good ones with respect to person who dealt only with structs/types and "functions"/procedures? [17:30] ewdafa: i just pasted the url up there [17:31] eto: ok i am reading that thank you all very much you are very helpfull [17:31] mertimor has joined the channel [17:31] JimBastard: eto: pretty much all structs are JS are JSON [17:31] JimBastard: and "types" don't really exist [17:31] eto: i know [17:31] JimBastard: i mean they do [17:32] eto: those are "objects" [17:32] mertimor has joined the channel [17:32] JimBastard: if you are coming from C, you'll have to retard yourself slightly to do JS [17:32] JimBastard: i would suggest whiskey [17:32] inimino: :/ [17:32] eto: JimBastard really? [17:33] paul_irish has joined the channel [17:33] ewdafa: yeh some languages require it [17:34] technoweenie: JimBastard: just dont retard yourself too much http://www.youtube.com/watch?v=PNn87mD0g6c [17:34] _announcer: Twitter: "node-unittest, nascent xUnit-style testing for node.js, because JSpec.should.not_be_the_only_one: http://github.com/termie/node-unittest"-- termie. http://twitter.com/termie/status/15192643837 [17:35] tjholowaychuk: haha ew.. [17:36] tjholowaychuk: you_should_not_use_jspec_with_async_anyways [17:37] technoweenie: jspec isnt the only one [17:37] technoweenie: theres like 500 node test frameworks that looks nearly identical [17:38] tjholowaychuk: that there is [17:38] tjholowaychuk: they all try and do way to much IMO, im super happy with the tiny wrapper around assert that I have [17:39] technoweenie: i just use assert and break my tests up into tiny files. that seems to be a more common node pattern [17:39] technoweenie: i wrote http://github.com/technoweenie/ntest but async errors bust through any try i gave it, so fuck it [17:40] technoweenie: and i used a # to comment my example js code [17:40] qFox has joined the channel [17:40] tjholowaychuk: awesome lol. ya i dont find any BDD-style frameworks suitable for async stuff at all [17:40] tjholowaychuk: reporting with the assert module is not really possible right now anyways [17:40] tjholowaychuk: but meh [17:41] tjholowaychuk: only thing i hate is I like to annotate my assertions when they are not clear, but the assert module exceptions will just output that message without the op / actual / expected vals [17:41] JimBastard: o [17:41] _announcer: Twitter: "Really interesting talk of @ryah about node.js and non-blocking I/O http://www.yuiblog.com/blog/2010/05/20/video-dahl/"-- Christian Wirkus. http://twitter.com/_walfisch/status/15193031723 [17:41] JimBastard: i've been using Vows [17:41] JimBastard: works kinda nice [17:41] technoweenie: thats a simple assert patch, and pretty important [17:41] tjholowaychuk: im just using this http://github.com/visionmedia/expresso [17:42] tjholowaychuk: technoweenie: i patched it, ryan didnt apply it though :( [17:42] technoweenie: doh [17:43] drudge: express ftw [17:43] drudge: not with utf8! :P [17:43] drudge: now* [17:44] indiefan has joined the channel [17:47] paul_irish has joined the channel [17:47] rictic has joined the channel [17:50] xer0x has joined the channel [17:51] tjholowaychuk: hmm [17:51] halorgium: tjholowaychuk: "no" [17:51] tjholowaychuk: when you chdir(), and then require('./mod') should it not be relative from the cwd [17:51] tjholowaychuk: haha [17:53] halorgium: tjholowaychuk: unless node stores the module dir when it starts up [17:54] tjholowaychuk: must be the case [17:55] [[zz]] has joined the channel [17:56] _announcer: Twitter: "damnit..have a perfect use for node.js...except I need udp"-- karlseguin. http://twitter.com/karlseguin/status/15193840716 [17:56] tjholowaychuk: does node have fork support now [17:57] maushu has joined the channel [17:57] mjr_ has joined the channel [17:59] drudge: i saw a webworker imp for node [17:59] drudge: http://github.com/cramforce/node-worker [17:59] tjholowaychuk: im adding rackup-like functionality to connect [18:03] sveimac has joined the channel [18:03] Nohryb has joined the channel [18:04] ezmobius has joined the channel [18:08] stagas: I hear a lot of people talk about UDP. what are the benefits over TCP ? less protocol handshaking? [18:08] grahamalot has joined the channel [18:08] avidal: much less overhead [18:08] tmpvar: less protocol overhead [18:08] avidal: but also less reliable [18:08] kevwil has joined the channel [18:09] sveisvei has joined the channel [18:09] tmpvar: avidal, haha.. not necessarily [18:09] stagas: i see. will it ever come to node? [18:09] paul__ has joined the channel [18:09] tmpvar: you could write a robust / TCP-like system using UDP [18:09] avidal: Yeah I guess it's not always unreliable [18:10] tmpvar: garenteed ordering and delivery [18:10] avidal: but TCP/IP is a fairly reliable protocol built on top of unreliable network transmission [18:10] Ori_P has joined the channel [18:10] avidal: whereas UDP doesn't really have a lot of those goodies [18:10] avidal: like guaranteed delivery and proper ordering [18:10] mjr_: I've been measuring things lately, and UDP doesn't have THAT much less protocol overhead [18:10] tmpvar: huh? [18:10] mjr_: The only reason to use UDP is if you want to tolerate packet loss. [18:11] mjr_: If you have big packets, the header size difference between UDP and TCP isn't that great. [18:11] avidal: i can still see udp for client-server sync in gaming and such [18:11] avidal: small packets with extremely high frequency [18:11] skampler: mjr_: it's more of a latency issue [18:11] tmpvar: avidal, absolutely [18:11] mjr_: only if you want to tolerate packet loss [18:11] mjr_: Which could be for latency reasons, etc. [18:11] stagas: ah I see now. tcp makes sure to transmit packet whereas with udp you need to handle packet loss yourself [18:12] mjr_: Otherwise, TCP is a fantastic protocol. [18:12] stagas: am I right? [18:12] tmpvar: stagas, correct [18:12] tmpvar: ordering and gaurantees are not provided in UDP, so you have to code up your own handling [18:13] tmpvar: s/handling/handlers [18:13] stagas: that's why everybody were so happy with utorrent having udp [18:13] tmpvar: sure, order doesnt really matter with torrents (from what i understand) [18:14] _announcer: Twitter: "Kyoto Cabinet asynchronous write Node.js be binding. I have become Visitor and Ku form a separate thread all they mean, V8 is supposed to initialize a global per-thread, the thread has not been behind an object before the thread. Should." [ja]-- edvakf. http://twitter.com/edvakf/status/15194735493 [18:14] tmpvar: but delivery does, so you can do away with waiting for missing packets (unlike tcp) [18:14] blowery: whoa [18:14] stagas: yeah, you miss a packet, you just search for another seed for that loss [18:14] blowery: translated twitter statuses! [18:14] stagas: and everybody's fast and happy [18:14] tmpvar: stagas, yes [18:15] javajunky has joined the channel [18:15] mattly has joined the channel [18:16] stagas: blowery: a few days now :) [18:16] blowery: stagas: that's pretty sweel [18:16] blowery: sweet even [18:17] tmpvar: stagas, unfortunately UDP is not available in the browser ;) [18:17] binary42: yet. [18:19] tmpvar: heh [18:19] binary42: You know that it's only a matter of time, t, being big enough. All browser features converge on t=infinity. [18:20] bradleymeck: except variables in css [18:21] TobiasFar has joined the channel [18:21] tmpvar: sass? [18:21] tmpvar: :P [18:22] brianmario has joined the channel [18:22] binary42: Or to write it in terms of JS: function callWhenImplemented(fn) {setTimeout(fn, 1.0/0.0);} [18:22] binary42: (of course, when you try that you'll be happy to find out that t already = infinity) [18:23] stagas: that would need to be implemented before calling it to be implemented [18:23] stagas: :P [18:24] bradleymeck: sass is nice but im waiting on a pure js impl of it for me to say its kind of in browser, and even then, talking to the CSS spec ppl they are hell bent on snuffing sass from becoming part of css [18:24] binary42: Yes. It might quality as a #wtfdom snippet. [18:24] stagas: also it implements itself after infinity after it is implemented [18:24] binary42: bradleymeck: You would have liked JSSS [18:24] stagas: I'm dizzy [18:25] binary42: qualify * [18:25] bradleymeck: jsss would have been a more sane route for a programmer, but i think the css syntax is clearer for combining honestly [18:25] binary42: (Also, tmpvar's typing skills are contagious =D) [18:25] binary42: bradleymeck: I think CSS is great, I'm just noting that they already thought of going that route of pure JS. [18:26] steven_t_ has joined the channel [18:26] mcarter_ has joined the channel [18:26] jwm_ has joined the channel [18:26] tmpvar: its a disease, sorry for breaking quarantine [18:26] pgriess1 has joined the channel [18:26] saimon_ has joined the channel [18:26] _announcer: Twitter: "I'm giving a talk at 1:30 in Morrison at #osbridge on node.js for anyone who's interested #osb2010"-- Mikeal. http://twitter.com/mikeal/status/15195388410 [18:26] binary42: tmpvar: It's only IRC so who can we blame but ourselves. [18:26] mikeal has joined the channel [18:26] bengl has joined the channel [18:27] bolson has left the channel [18:27] paul_irish has joined the channel [18:29] steven_t_ has joined the channel [18:31] chadj has joined the channel [18:32] steadicat has joined the channel [18:32] chadj: Does anyone know if libxml.js blocks when it is parsing XML into a document object? [18:34] panderon has joined the channel [18:34] panderon: hey all [18:35] tmpvar: yo [18:37] bmizerany has joined the channel [18:37] technoweenie has joined the channel [18:37] tjholowaychuk has joined the channel [18:37] tjholowaychuk: weww that was fun [18:37] mau has joined the channel [18:38] technoweenie: i think you and i were unstuck in time [18:40] panderon: does anyone here have experience with qwebirc? [18:41] panderon: if so, is there any node.js implementation that's similar? [18:41] mikeal has joined the channel [18:42] tjholowaychuk: does node wrap freopen() at all? [18:42] tjholowaychuk: in the stream lib [18:43] siculars has joined the channel [18:44] _announcer: Twitter: "i've decided to use http://bit.ly/8e7oaF for templating with node.js .. but seriously: '<%=' ?! why not throw in a $ while youre at it?"-- Raphael Siebenhofer. http://twitter.com/aremes/status/15196279286 [18:47] fictorial: hmm, I am interested in Kyoto Cabinet. Tokyo Cabinet has "issues" with large datasets. Hey! That guy has a similar profile pic to my own. http://bit.ly/d1GQIo http://bit.ly/bWvIQl [18:47] pgriess has joined the channel [18:48] unomi: yours is the cool red one right? [18:48] unomi: ;) [18:49] unomi: jefe looks mighty cool btw [18:49] fictorial: yes [18:49] fictorial: unomi: thanks [18:49] fictorial: please try to break it [18:49] chadj has left the channel [18:49] unomi: will do [18:50] fictorial: become root and I'll buy you lunch [18:50] unomi: I doubt I will have time soon, but I am definitely going to see if we can put it out there [18:51] unomi: crowdsourcing :p [18:56] _announcer: Twitter: "@vain: working out this "Blog rolling with mongoDB, express and Node.js" tutorial http://is.gd/cyy5z"-- Reuben Peter-Paul. http://twitter.com/reubenPeterPaul/status/15196847781 [18:57] drudge: http://smokescreen.us [19:01] samsonjs: cloudhead: are you around? this might be better than github :) [19:02] drudge: nothing is better than github [19:02] samsonjs: *nothing*? [19:02] drudge: nothing. [19:03] _announcer: Twitter: "@TheSandyWalsh cool. if i ever get my nodejs server to a point where it doesn't suck i'll let ya know ^^"-- Thomas. http://twitter.com/tjgillis/status/15197208262 [19:03] samsonjs: hopefully your partner isn't in the room ;-) [19:03] cloudhead: samsonjs: oh hey [19:03] drudge: oh she knows, trust me. [19:04] drudge: i can fork with github anytime.. [19:04] drudge: with her i have to make an appointment [19:04] cloudhead: samsonjs: I'm trying to figure out the best way to go about the cookie thing [19:04] samsonjs: cloudhead: me too, i'm not exactly sure how to approach it [19:05] samsonjs: http://seclists.org/fulldisclosure/2009/Mar/299 and http://seclists.org/fulldisclosure/2009/Mar/301 show that it's a muddy area [19:06] samsonjs: i think we should store the first k=v component of set-cookie: in this.cookies[k], and send only that part back to clients [19:06] samsonjs: multiple cookies could be delimited with a comma [19:06] samsonjs: (when sent back to the server) [19:08] cloudhead: samsonjs: problem with coma is the expires= field [19:08] cloudhead: which can have a comma in the date [19:08] cloudhead: I don't think multi cookies are allowed per Set-Cookie [19:08] cloudhead: so I'm assuming 1 [19:09] samsonjs: i'm checking if the Cookie: header sent to the server can have multiple cookies or not [19:09] samsonjs: it seems that google (at least) stuffs all values into a single cookie [19:09] cloudhead: yeh [19:12] samsonjs: cloudhead: both the comma and semi-colon are allowed to delimit cookies in the Cookie: header, and we should send path and domain parts back [19:12] samsonjs: i'll work on this a bit if i have time this afternoon or evening and send you another pull request [19:12] samsonjs: lunch time :) [19:13] samsonjs: oh, and you're right about set-cookie, it can only have a single cookie but multiple headers are allowed [19:13] javajunky has joined the channel [19:13] cloudhead: ok [19:14] cloudhead: samsonjs: I think for storage, the best would be { key: {value: 'foo', options: { expires: 123 }}} [19:14] magcius_ has joined the channel [19:20] liucougar has joined the channel [19:21] technoweenie: Well, NodeJS is a valid, if over hyped, solution. But it only helps you come up with a toy application. With 'toy' I mean an application that runs on your laptop or your staging server. [19:21] technoweenie: http://www.gmosx.com/blog/agVnbW9zeHIPCxIHQXJ0aWNsZRipwwEM/on-appenginejs fightin words :) [19:22] mjr_: I think that's mostly fair at the moment. [19:22] mjr_: Except the "over" hyped. [19:22] technoweenie: thats the only part i could agree with :) [19:22] technoweenie: well, over hype vs LOTS of hype who knows [19:22] fictorial: of you were about to sign-up to a service as a developer, not a user, what would you _want_ authentication system to be? I'm assuming most developers are savvy enough to dig openid, openauth, facebook connect, twitter oauth, etc. [19:22] tmpvar has joined the channel [19:22] technoweenie: people did manage to get stuff done before GAE/heroku [19:22] o_o: problem solved [19:22] fictorial: (typo city there sorry) [19:22] technoweenie: fictorial: github oauth2 :) :) [19:23] javajunky: fictorial: github oauth2 is likely to be popular [19:23] javajunky: just out of interest has anyone tried my oauth2 library out against github yet ? [19:23] o_o: FYI : POST also needs 'Access-Control-Allow-Origin': 'domain' - not just OPTION [19:23] fictorial: javajunky: technoweenie: didn't know that existed. I'll go check it out. [19:23] rnewson has joined the channel [19:24] technoweenie: fictorial: i just announced it publicly last week. its good enough for SSO now: http://gist.github.com/419219 [19:24] technoweenie: if you want to see it in action: calendaraboutnothing.com/ [19:24] technoweenie: http://calendaraboutnothing.com/ thanks chrome! [19:24] fictorial: technoweenie: looks good. I didn't realize you worked at GH. [19:24] javajunky: goddamn now I have to go test http://github.com/ciaranj/node-oauth against it. [19:25] technoweenie: fictorial: yea its a new gig for me [19:25] fictorial: technoweenie: sounds like a sweet one at that [19:25] JimBastard: yo technoweenie will CAN show previous history? [19:25] technoweenie: it goes as far back as the gh event feed [19:25] fictorial: javajunky: yeah, that was my next question -- I've seen some random things fly across my screen about node and oauth [19:25] technoweenie: which is limited to 30 entries at the moment [19:25] JimBastard: i think i might win [19:25] JimBastard: lol [19:26] cloudhead: is there a way to do a split() on the first occurence of a delimiter? [19:26] cloudhead: or something equivalent? [19:26] technoweenie: JimBastard: i dont know man, there are some users that update .dotfiles daily [19:26] javajunky: fictorial: oauth2 is so ridiculously trivial I'd be surprised if it *didn't* work [19:26] technoweenie: yea oauth2 is great [19:26] JimBastard: i update projects everyday, multiple times [19:26] technoweenie: ssl what a concept! [19:26] JimBastard: signing up now [19:26] fictorial: javajunky: ok, I've been waiting for the dust to settle with all this auth stuff for a while. now I need it :) [19:26] mattly has joined the channel [19:27] JimBastard: http://calendaraboutnothing.com/~marak [19:27] fictorial: I really don't want to store passwords on my side for a new service... it's 2010 after all. [19:27] gf3: plaintext passwords FTW [19:27] gf3: double rot13 to be secure [19:27] javajunky: indeed, but it doesn't really preclude storing *something* .. who knows if the 3rd party dies, I'd still keep email addresses or something (encrypted yadda yadda) [19:27] technoweenie: JimBastard: ha your activity worked against you, only 3 days worth [19:28] waterdoggie has joined the channel [19:28] fictorial: javajunky: yes, of course... you still need an identifier [19:28] drudge: womp womp [19:29] orlandov has joined the channel [19:29] fictorial: so, http://github.com/ciaranj/node-oauth is the front-runner here? [19:29] derferman has joined the channel [19:29] javajunky: technoweenie: is there a 'standard' button to use here ? [19:29] stagas_ has joined the channel [19:29] JimBastard: technoweenie: my real problem is that i have to see what my readme's look like on github [19:30] JimBastard: i cant judge the layout without seeing the whole page >.< [19:30] javajunky: fictorial: ..given its mine I'm biased …. but oauth 2 is so simple you prolly don't even need a library.. [19:30] fictorial: oh -- that is you, ok. [19:30] fictorial: really? I need to go educate myself on oauth2 it seems. thanks. [19:30] javajunky: just adding a github strategy to http://github.com/ciaranj/express-auth now (which depends on node-auth) [19:30] technoweenie: javajunky: http://intridea.com/2010/6/1/authbuttons-free-and-open-source-web-logo-icons [19:31] _announcer: Twitter: "@reubenPeterPaul node.js sounds interesting! just rolled out a mongodb implementation for a very large site... impressive with a few quirks"-- Navin. http://twitter.com/vain/status/15198592427 [19:31] javajunky: technoweenie: any issue with direct linkage [19:31] technoweenie: those arent mine [19:31] javajunky: ah ;) [19:31] technoweenie: but i'd think it'd be common courtesy to host them on your own site [19:31] aho has joined the channel [19:32] javajunky: ;) indeed I would if I put it on a site, but this is for a framework example… which (ironically) would be stored on github..so wadda you do ? ;) [19:32] aconran has joined the channel [19:35] aconran has joined the channel [19:37] linuxsable has joined the channel [19:37] Ori_P has joined the channel [19:42] JimBastard: so technoweenie, there is no way to go back past 3 days for CAN? i think my streak might be months long [19:42] technoweenie: no it only goes back as far as the github event feed [19:42] JimBastard: got ya [19:42] technoweenie: which was capped off for perf reasons [19:42] JimBastard: is that data saved on github at all? [19:42] technoweenie: yea [19:42] JimBastard: understood [19:43] technoweenie: clearly we should move it to something like cassandra [19:43] _announcer: Twitter: "I'm diggin the node.js, kiwi, express, mongoDB tech stack!"-- Reuben Peter-Paul. http://twitter.com/reubenPeterPaul/status/15199189138 [19:43] technoweenie: but the github event feed isnt exactly *vital* its on the list though :) [19:43] JimBastard: yeah its not that important [19:43] _announcer: Twitter: "Presentation: An introduction to node.js and Riak - While most of Francisco Treacy’s (@frank06) “An... http://tumblr.com/xzjatfsvz"-- Alex Popescu. http://twitter.com/al3xandru/status/15199209754 [19:45] admc has joined the channel [19:46] technoweenie: when its fixed i'll rescan everyone, that should be fun :) [19:46] _announcer: Twitter: "@0xx0 or http://bit.ly/cWBCIV if you like mustache and want raw speed with node.js"-- Siegmund Führinger. http://twitter.com/0xx0/status/15199355570 [19:49] fictorial: javajunky: have some questions - I'll PM you. [19:50] TheEnd2012 has joined the channel [19:53] javajunky: technoweenie: hmmm github seems fussy about requiring content-length headers is that right ? [19:53] technoweenie: nginx is [19:54] javajunky: bugrit, will have to stop being lazy ;) .. [19:55] _announcer: Twitter: "Getting ready to go learn a bit about Node.js. I’m loving the hacker lounge! #osb10 http://tumblr.com/xtuatgel6"-- Justin Gallardo. http://twitter.com/jirwin/status/15199791807 [19:55] javajunky: fictorial: bear with me looks like I'll to change node-oauth to start sending content-length headers [19:57] javajunky: a content-length of 0 , awesome ;) [19:57] probably_ has joined the channel [20:00] javajunky: fictorial: okey, cool got SSO working out of the box, just need to bump a version here and there ;) (sorry) [20:00] gf3: who owns _announcer [20:00] gf3: ? [20:03] ryah: gf3: maushu [20:03] gf3: ryah: thx [20:03] gf3: graphnode on GH, IIRC? [20:03] ryah: yes [20:05] javajunky: fictorial: ok, this tag works with github just fine http://github.com/ciaranj/node-oauth/tree/0.7.3 about to push an example over on the express-auth framework, url to follow [20:06] cloudhead: samsonjs: I pushed an update to the cookie code, all it needs now is to be path aware [20:10] _announcer: Twitter: "wow, node-oauth.js is VERY nice. a model of how i should be coding... http://github.com/mediacoder/node-oauth/raw/master/node-oauth.js"-- ray brooks. http://twitter.com/rayui/status/15200578019 [20:12] javajunky: fictorial: ta-dah, fully working github SSO with node.js / node-oauth / express : http://github.com/ciaranj/express-auth/blob/master/lib/express/plugins/auth.strategies/github.js [20:12] technoweenie: i dont personally like that style. isn't OAuth.setProperties redefining a bunch of methods each time its called? [20:13] _announcer: Twitter: "my tiny & unobtrusive event library for node.js http://github.com/jeffturcotte/event"-- Jeff Turcotte. http://twitter.com/jeffturcotte/status/15200719813 [20:14] JimBastard: i like coding JS top - bottom procedural. its a huge pita to write that way, so i use build scripts to auto-generate my procedural code. yes i know im crazy, but it allows to me make huge changes rapidly with minimal effort. it also produces code that is insanely easy to read [20:14] JimBastard: pretty much everything is extending one big ass singleton [20:14] JimBastard: :-\ [20:15] samsonjs: cloudhead: nice, that was fast! i'll check it out when i get a chance a bit later [20:15] JimBastard: http://github.com/Marak/Faker.js/blob/master/Faker.js is a decent example of this style [20:16] tmpvar: ryah, do you know of an example in an addon/node's c++ source where a js object passed by reference is modified via the args object? [20:16] rnewson has joined the channel [20:17] ly- has joined the channel [20:17] _announcer: Twitter: "new version of express-auth out, with support for github authentication http://bit.ly/bBtRfg #nodejs #expressjs #github"-- Ciaran Jessup. http://twitter.com/ciaran_j/status/15200933327 [20:19] mostlygeek has joined the channel [20:22] sveimac has joined the channel [20:22] ryah: tmpvar: i'm not sure what that means? [20:22] fictorial: javajunky: thanks [20:23] tmpvar: ryah, something like: http://github.com/tmpvar/node-ogl/blob/master/src/gl.cc#L4346 [20:23] tmpvar: but not broken ;) [20:24] _announcer: Twitter: "I wanna give a shout out to all my holmies in #node.js on freenode - hey yall!!! :)"-- Steven. http://twitter.com/sdegutis/status/15201277474 [20:24] steven_t_: :) [20:24] johanhil: hihi [20:25] JimBastard: sop [20:25] saikat has joined the channel [20:25] JimBastard: if you wanna be my hommie you gotta buy me stuff [20:26] _announcer: Twitter: "Why You Should Pay Attention to Node.Js http://tbo.hm/bQjGZo"-- ɯɥøq sɐɯoɥʇ. http://twitter.com/thbo/status/15201369132 [20:26] technoweenie: JimBastard: this isnt TRL [20:26] JimBastard: ? [20:26] technoweenie: nevermind [20:26] JimBastard: is that a MTV joke? i havent watched that shit since 1999 [20:27] technoweenie: NOT FUNNY [20:27] technoweenie: we should be able to reply to tweets via _announcer [20:27] steven_t_: i have a bot that does that.. grbot [20:28] JimBastard: we are working on it technoweenie [20:28] halorgium: steven_t_: does it hook your irc session to twitter via oauth? [20:28] steven_t_: sortof [20:28] JimBastard: i was asking about this the first day announcer joined [20:28] technoweenie: no it should be anonymous [20:28] steven_t_: i mean, it uses oauth, but it depends on your definition of hook ;) [20:28] halorgium: technoweenie: haha, good call [20:29] steven_t_: we had a lot of trouble deciding how grbot should integrate wit twitter [20:29] steven_t_: we settled on @grbot_irc [20:29] technoweenie: it could be a 'node.js trolls the twitters' bot [20:29] steven_t_: so hey whats this node.js thing? [20:30] JimBastard: do fserve style [20:30] JimBastard: and have it auth on names that are registered with nickserv? [20:30] mrchrisadams_ has joined the channel [20:30] JimBastard: (huge security gap there) [20:30] steven_t_: heh, yeah, for a while grbot could execute random python code [20:30] steven_t_: it was fun [20:30] JimBastard: !retweet @foobar - you are stupid [20:31] JimBastard: or something [20:31] technoweenie: /msg _announcer blah [20:31] steven_t_: is _annoucner written in node.js? [20:33] mape: I bet it is written in .NET [20:34] _announcer: Twitter: "Finally attending a session (node.js and you in Morrison). #osbridge #osb2010-0306"-- Christie Koehler. http://twitter.com/christiekoehler/status/15201796504 [20:34] _announcer: Twitter: "Parsing file uploads at 500 mb/s with node.js » Debuggable Ltd: http://bit.ly/alaXio"-- Eelco Wiersma. http://twitter.com/pagebakers/status/15201804819 [20:35] derferman has joined the channel [20:37] tjholowaychuk has joined the channel [20:39] charlesjolley- has joined the channel [20:39] _announcer: Twitter: "back to the whiteboard ... so many stuffs in mind: nodejs, eventmachine, redis as cache_store, nginx modules ..."-- Edgar González. http://twitter.com/edgar/status/15202065641 [20:39] _announcer: Twitter: "Thinking I should have gone to @chrismessina's session. node.js is keen enough but not grabbing me today. #osb10"-- VM Brasseur. http://twitter.com/vmbrasseur/status/15202072238 [20:44] _announcer: Twitter: "We're looking to expand. 6mo Ruby/Rails contract position in Indianapolis/LA, projects for various startups. Bonus: Redis/Nodejs/excitement."-- supermatter. http://twitter.com/supermatter/status/15202323858 [20:45] mjr_: Job announcements mentioning node. The momentum builds. [20:45] technoweenie: where are the books [20:46] ryah: technoweenie: ask creationix and mde [20:46] technoweenie: ah cool [20:46] technoweenie: thats just another sign of momentum [20:46] technoweenie: and then: the oreilly conf [20:48] javajunky: technoweenie: there's been plenty of chatter from publishers about books [20:48] technoweenie: im sure [20:49] Nohryb has joined the channel [20:50] wbruce has joined the channel [20:51] derferman has joined the channel [20:51] stepheneb has joined the channel [20:52] ryah: publishers are blood suckers [20:52] sveilin has joined the channel [20:52] stepheneb has joined the channel [20:53] tjholowaychuk: im never writing a book again, unless it is self published [20:54] ryah: they add very little value [20:55] ryah: (and then wonder why thier industry is falling apart) [20:55] tobeytailor has joined the channel [20:55] ryah: but yes, there are people out there who will give you royalties and front $1000 for printing a node book [20:55] ryah: s/people/publishers/ [20:57] tjholowaychuk: ive made more on a tiny little ebook than i did with my published book [20:57] tjholowaychuk: its brutal [20:57] javajunky: there's also the somewhat historical issue with node of its rate of change which would put me off even bothering to start one ;) ..although things are trending out nicely now :) [20:58] _announcer: Twitter: "What's the deal with the crazy spergitude on the @nodejs list today?"-- Edward O'Connor. http://twitter.com/hober/status/15202985926 [20:58] technoweenie: sure, self publishing is the way to go [20:58] technoweenie: anyways, preaching to the choir. later dudes :) [21:00] rnewson has joined the channel [21:02] _announcer: Twitter: "Node.js and Ruby http://slidesha.re/9U4WoB"-- Ahmad Gozali. http://twitter.com/gozali/status/15203185874 [21:02] _announcer: Twitter: "@ Edgarsj solution where I use node.js, asynchronous model was exactly what is needed (such as near real-time Crawler)" [lv]-- Sandis. http://twitter.com/sandis/status/15203198935 [21:02] charlesjolley- has joined the channel [21:05] jhelwig has joined the channel [21:05] derferman has joined the channel [21:05] _announcer: Twitter: "I’m tempted into taking the plunge in playing with Node.js after hearing @mikeal’s talk. #osb10 http://tumblr.com/xtuatjuue"-- Justin Gallardo. http://twitter.com/jirwin/status/15203345547 [21:06] mape: anyone know more about the "new web framework" ? [21:07] gwoo: fab? geddy? express? [21:10] edspencer has joined the channel [21:10] javajunky: creationix ' I assume. [21:10] tjholowaychuk: me and creationix are working on it ATM [21:10] tobeytailor has left the channel [21:10] javajunky: tjholowaychuk: great, does that mean I should sack off express now [21:10] mape: tjholowaychuk: What does the base look like? [21:11] tjholowaychuk: javajunky: not for a while, its a lot lower level, and express will probably be ported to work ontop of it, its not really a replacement for anything like express [21:11] tjholowaychuk: not yet at least [21:11] _announcer: Twitter: "Fun time pairing with @redsquirrel on his node.js app. Enjoyable having a 'refactoring' sandbox to play in."-- Corey Haines. http://twitter.com/coreyhaines/status/15203646513 [21:11] derferman has joined the channel [21:11] BBBB has joined the channel [21:11] mape: Ah so it isn't a plug and play thing? [21:11] JimBastard: theres another framework in progress for about 4 months now [21:11] gwoo: tjholowaychuk: is it more about the utilities needed for web apps? [21:11] JimBastard: cloudhead and i have been working on [21:12] _announcer: Twitter: "Node.js session at #osbridge, something I definitely still want to play with"-- Chris Bailey. http://twitter.com/chrisrbailey/status/15203675827 [21:12] JimBastard: most of the pieces are complete and on cloudhead's github [21:12] javajunky: hmm middlewear eh [21:12] javajunky: s/wear/ware [21:12] javajunky: *sob* need sleep [21:13] charlesjolley- has joined the channel [21:14] gwoo: JimBastard: what's the name of it? [21:14] JimBastard: TBD [21:14] JimBastard: i'm thinking "Biggie" but we haven't decided yet [21:14] JimBastard: but most of the pieces are built.....or still being built [21:14] JimBastard: and already online [21:14] gwoo: ah yeah [21:14] gwoo: good, i was looking at the pieces [21:15] JimBastard: im working on the front-end stuff [21:15] JimBastard: behavior libraries, client side routers, etc [21:15] JimBastard: client side templating [21:15] JimBastard: i made the behavior library private until its ready [21:15] mape: I would love for something that does paths, serves files/css/templates and has user handling (facebook/oath) out of the box. In a neat little package [21:16] JimBastard: express? [21:16] drudge: sounds like express to me [21:16] mape: Well, I just find it to be a little, hmm.. Bushy? [21:16] gwoo: mape: you are not worried about data sources? [21:16] brainproxy: thoughts on using mustache with express? is using raycmorgan's mu within the context of an express app.js the way to go? [21:16] drudge: bushy? [21:16] mape: Yeah.. stuff sticking out everywhere [21:17] mape: gwoo: data sources? Ie using mongo or whatever to store stuff? [21:17] drudge: i don't follow you mape :P [21:17] gwoo: mape: yeah [21:17] mape: Well yeah, but that hooks into the path stuff no? [21:18] mape: Also a wonder, what the best way of managing code is, a separate module for each page/route? [21:18] markwubben has joined the channel [21:18] drudge: i'm using express+mongoose+mongodb+node-supervisor atm [21:18] mape: Having everything in one big file seems like a poor solution [21:18] mde: mape: We're working on that with Geddy, but it's still pretty early. [21:18] mape: Geddy? [21:19] mape: Ah nm found on github [21:19] mde: It's for building more modular apps, with controllers and actions. [21:19] mjr_: JimBastard: your gruff, East Coast approach to node advocacy is lost on people that haven't seen you on IRC. [21:19] mape: Like django where you get apps and tie together? [21:19] felixge has joined the channel [21:19] felixge has joined the channel [21:19] JimBastard: mjr_: i kinda self destructed on the list today [21:19] JimBastard: its all good though, i think my rage actually did a bit of good [21:19] mde: mape: Yes, something batteries-included, like Merb/Rails/Pylons/Django. [21:20] JimBastard: i got a bunch of emails, we are moving forward [21:20] gwoo: mde: lots of good stuff in geddy [21:20] mde: We're working hard on it, have a new router landing looks like today. [21:20] ryah: JimBastard it was tl;dr [21:20] ryah: for me [21:20] gwoo: nice [21:20] mjr_: JimBastard: it's easy for mailing list discussions to spiral out of control and waste everybody's time. [21:20] mape: mde: Well that would be handy :) Mostly the user handling parts I don't care to redo every single site (and facebook as a extra way of hooking new users) [21:20] javajunky: when I first hit into node, bomber was my favourite, but it just sorta died.. it had file separation for controllers [21:20] mjr_: JimBastard: when they point of the whole thing is, hey, we should have a regular node meeting. [21:21] JimBastard: yeah ryah, sorry for flipping out on the list. ill make a point to not let that happen again [21:21] mde: mape: Pluggable auth is an annoying problem that we haven't really started tackling yet. [21:21] javajunky: JimBastard: was really glad I decided to offer that guy a response on the encryption..no wait. [21:21] JimBastard: we are moving forward with a node nyc meetup though, will probably be a subset of nyc.js [21:21] mde: javajunky: I looked at Bomber first, yeah. But it was dead. [21:21] mde: That's why I started hacking on Geddy. [21:22] javajunky: mde: its a royal PITA I've started off porting 'warden' to express.. but I'm not happy with it atm [21:22] mde: javajunky: We need help on Geddy. :) [21:22] javajunky: don't get me wrong I've been able to implement basic, digest, facebook, twitter, yahoo, custom, session based authentication models simply with the framework, but its still not quite right [21:23] javajunky: ;) my time is stupidly thin at the minute, and I'm kinda committed to carrying on with express, but if tjholowaychuk is moving away from express then who knows! :) [21:23] mde: Auth is not a one-size-fits-all deal. But you can get pretty close, and take care of most people's basic needs I think. [21:23] brainproxy: nvm, kiwi search turned up a mustache packaged for express [21:23] tjholowaychuk: javajunky: our new framework is aimed more at having community shareable libraries [21:23] brainproxy: :) [21:24] tjholowaychuk: but to provide a nice set of standard middleware out of the box as well [21:24] mape: Well facebook/twitter/regular signup should work for most sites. [21:24] javajunky: tjholowaychuk: how does that differ from commonjs, kiwi, npm etc. ? [21:24] tjholowaychuk: its not the be-all-end-all of frameworks or anything like that [21:24] javajunky: (oh and now github ) [21:24] admc has joined the channel [21:24] javajunky: tjholowaychuk: sounds very 'rack' ? [21:24] mde: Making separate modules work nicely together is doable. Merb was a very good example of that. [21:24] tjholowaychuk: javajunky: pretty much lol [21:25] mape: Something like wordpress, but not shitty, and not php, and not a blog and in node. [21:26] javajunky: meh, for my needs atm, express has been working non stop 24/7 for the last month (I even went on holiday and left it all going) .. monit never fired once.. pretty happy atm .. no 27 instances of mongrel going on [21:27] mape: I just think it isn't concise enought, might just be my unability to grasp how to manage modules and dependencies in a proper way [21:28] tjholowaychuk: mape: it does not utilize node idioms properly, BUT most of that is legacy crap due to how unstable node was around 0.1.2-ish [21:28] tjholowaychuk: back when i started [21:29] [k2] has left the channel [21:30] derferman has joined the channel [21:31] javajunky: tjholowaychuk: we're slowly chipping away at that stuff ;) but error handling and logging still isn't nailed imho . [21:31] javajunky: (error logging that is) [21:31] tjholowaychuk: javajunky: its getting there! kinda [21:31] tjholowaychuk: very slowly now haha [21:31] mape: tjholowaychuk: yeah I don't think it is express specific though, seems there are a lot of different ways of requiring stuff that breaks, and people tend to use them all [21:32] mape: especially when you want to keep modules in a centralized place [21:32] mape: and your app is in another dir [21:32] javajunky: mape: personally I'm still blaming the lack of a 'one true package manager' … fingers crossed ryah will decide that the time is right for one at some point soonish ;) [21:33] mattly has joined the channel [21:33] tjholowaychuk: there shouldnt be a PM in node IMO, but we do need one that is heavily adopted [21:33] tjholowaychuk: npm is finally getting there [21:34] tjholowaychuk: although I cant push my stuff yet lol [21:34] mape: I really should get that page finished :/ [21:34] JimBastard: isaacs and i have been discussing some really interesting things with NPM and cloud deployment [21:34] mape: But isaacs has be busy this last week? and will be the following? [21:34] mjr_: I like the idea of package managers including node. [21:34] JimBastard: hes gone on vacation for a week i think [21:34] mape: Yeah [21:34] mape: At least that gives me some time [21:34] JimBastard: we had a great talk before he left though, exciting times [21:34] derferman has joined the channel [21:35] javajunky: tjholowaychuk: I don't care if its part of node or not, just its existence makes life easier for describing which versions of stuff are being used :) SHA's just aren't the same [21:36] mape: If it isn't packaged with node someone needs to do a defacto "node startup kit" [21:36] tjholowaychuk: javajunky: course!, I will gladly retire / redirect the users to npm once I feel it is ready as well, less stuff for me to maintain [21:36] mape: Or just a separate 1 page step by step guide how to get stuff working proper. with the latest and greatest tools [21:37] mape: tjholowaychuk: Why aren't you able to push to the "npm-repo"? [21:38] tjholowaychuk: mape: the cli is broken [21:38] mape: Oh [21:38] tjholowaychuk: on "publish" i think [21:38] mape: someone pushed 2h ago? [21:38] mape: created 13h ago [21:38] tjholowaychuk: i tried a few days ago [21:38] tjholowaychuk: 2 or 3 i think [21:39] tjholowaychuk: good work though its looking pretty good :) [21:40] brainproxy: is there a js library that will run client side that works as cleanly with haml as haml.js on the server side [21:41] mape: I'm wondering if I should just drop the right sidebar, and the sorting at the top, kinda makes it hard to find the logic in sorting when they are separate from the table head [21:41] mape: And think isaacs want the github stuff dropped, less stuff to keep running [21:42] tjholowaychuk: mape: it was a bit confusing when i looked, granted i didnt look tons but hey [21:42] mape: Yeah, well you shouldn't have to, should just make sense [21:44] Nohryb has joined the channel [21:45] mrchrisadams_ has joined the channel [21:45] stepheneb_ has joined the channel [21:53] technoweenie has joined the channel [21:55] xla has joined the channel [22:04] javajunky has joined the channel [22:08] _announcer: Twitter: "At #osbridge , wonderful location and awesome talks , ruby, python, erlang, node.js, couch db not a word on php yet ;)"-- jayadev. http://twitter.com/jayadev/status/15206525533 [22:09] _announcer: Twitter: "Playing with node.js and JSpec, quite like them both so far :)"-- Adam Holt. http://twitter.com/adamholt/status/15206590106 [22:09] admc has joined the channel [22:11] Neil_ has joined the channel [22:15] _announcer: Twitter: "dead simple TDD for #nodejs "expresso", CI-friendly, executable, test coverage support, uses assert module, http://bit.ly/cYBHlZ"-- TJ Holowaychuk. http://twitter.com/tjholowaychuk/status/15206901851 [22:16] javajunky has joined the channel [22:23] saikat: What are people using to test Node.js apps? Seems to be a ton of JS testing tools out there [22:23] saikat: Just saw the tweet from tjholowaychuk about Expresso which seems pretty cool for a one hour project [22:23] saikat: Though i was hoping to find something that supports mocks and spies [22:24] tjholowaychuk: saikat: honestly, its soooo simply to mock / stub in js you dont really need a library [22:24] tjholowaychuk: for that [22:24] gwoo: tjholowaychuk: just some tutorials :) [22:24] gwoo: tjholowaychuk: thanks for workin on this [22:24] saikat: yeah i guess that's a good point [22:25] saikat: mocks are basically implementing prototype-based inheritance [22:25] javajunky has joined the channel [22:26] tjholowaychuk: it doesnt have pretty output but it does not run tests in serial either, so its basically just a layer on top of assert [22:26] tjholowaychuk: and you can run hundreds of node servers WITHOUT mocking lol which is very important IMO [22:26] saikat: well [22:26] saikat: i still need a mock for my DB layer [22:26] tjholowaychuk: and still run tests in < 0.05 ms [22:26] tjholowaychuk: for sure [22:27] saikat: the speed isn't an issue for me yet [22:27] saikat: i hope to one day have enough tests to where it is =) [22:28] saikat: tjholowaychuk: how are you doing automated setup for the tests? is there a way to do it without calling my setup method manually in each test function? [22:28] saikat: it would of course also not be hard to implement that myself, just curious [22:28] tjholowaychuk: saikat: right now there is no setup / teardown support, could add it but I have not personally had the need at all yet [22:29] gwoo: tjholowaychuk: why not call it node-tdd or somthing similar? [22:29] tjholowaychuk: gwoo: because I like coffee :) [22:29] saikat: tjholowaychuk: should have worked for cappuccino instead of extjs =) [22:29] gwoo: and bacon! [22:29] tjholowaychuk: haha [22:29] gwoo: ha [22:29] tjholowaychuk: im a vegetarian :p tofo!!! [22:29] tjholowaychuk: haha [22:29] tjholowaychuk: fuck [22:29] tjholowaychuk: cant even spell [22:30] gwoo: haha [22:30] gwoo: that's what happens when you don't eat meat [22:30] gwoo: :) [22:30] gwoo: haha [22:30] saikat: gwoo: there's a coffee shop in SF that sells maple bacon coffee [22:30] saikat: if you're in the area [22:30] gwoo: philz? [22:30] saikat: pirate cat radio [22:30] gwoo: adding it to my list [22:30] gwoo: ritual, philz, now pirate cat [22:30] javajunky has joined the channel [22:31] WALoeIII has joined the channel [22:31] saikat: don't forget coffee bar, sightglass, blue bottle [22:31] saikat: four barrel [22:31] saikat: i'm hacking away at coffee bar as we speak [22:31] gwoo: nice [22:31] gwoo: WALoeIII: im not gonna make it up there [22:32] mjr_: Is there a way to prevent keepalives on an http server? [22:32] mjr_: I used to use the undocumented closeOnExit, but that seems to have changed recently. [22:32] WALoeIII: gwoo: ah sad day [22:32] gwoo: tell me about it [22:40] mrjjwright has joined the channel [22:40] bradleymeck: mmm does tautologistics ever come on irc? [22:41] mikeal has joined the channel [22:43] admc has joined the channel [22:45] brainproxy: hmm, I used kiwi to install mustache.js, and the info says it's "wrapped for use as an express engine"; but I don't seem to be having much luck with that in my app.js for express [22:47] brainproxy: am I better off just using mustache on the browser-side and sticking with haml on the server side, i.e. if I'm using express? [22:47] brainproxy: I was hoping to unify my approach to templating, for the most part, but I guess I can split my mind across both [22:47] hassox has joined the channel [22:48] tjholowaychuk: brainproxy: if your writing an app, do it client-side, if your writing a "site" use haml or ejs or something [22:49] brainproxy: there's some templating that happens on both ends [22:49] brainproxy: some of it's inside my classes that get handed to the client [22:49] joshbuddy has joined the channel [22:49] brainproxy: but there's some "setup templating" that happens on the server side too [22:50] mitkok has joined the channel [22:51] mattly has joined the channel [22:58] sh1mmer has joined the channel [23:00] freshtonic has joined the channel [23:03] _announcer: Twitter: "serving HTTP in #NodeJS for #Akka services over #AMQP passes all the tests I can think of so far. And it's a joy to write servers in JS! ^_^"-- kschzt. http://twitter.com/kschzt/status/15209488424 [23:06] ryah: so apparently node is already linking to libz for libcrypto [23:07] ryah: might as well throw in some bindings [23:08] paul_irish has joined the channel [23:13] paul___ has joined the channel [23:14] jashkenas has joined the channel [23:16] SteveDekorte has joined the channel [23:16] WALoeIII has joined the channel [23:25] stepheneb has joined the channel [23:29] steadicat has joined the channel [23:37] [[zz]] has joined the channel [23:42] Psytherium has joined the channel [23:42] derferman has joined the channel [23:42] derferman has joined the channel [23:43] aconbere has joined the channel [23:43] derferman has joined the channel [23:44] x_or has joined the channel [23:45] x_or: I'd like to use express for some web apps. I am a bit spooked that when I require express it pollutes the global namespace with "get" and "configure" methods. Is this really the case, that there is no way to namespace libraries like express? This seems like a worrisome downfall of us JS. [23:45] TommyM has joined the channel [23:46] jashkenas: x_or: be more worried that it extends Object.prototype ... [23:46] x_or: Ok, even worse than I thought, eh. :) [23:46] inimino: x_or: it's not a problem that's inherent in SSJS, perhaps just an issue with that particular package [23:47] x_or: It seems like other libraries have you call foo = require( 'package') and then you use foo.method, but not express. [23:48] inimino: some people apparently aren't bothered by global namespace pollution [23:48] x_or: Express has some really great features, though, so I wish it were better designed. I'm just worried that someone else will have a method calling get somewhere in another library and I'll have no way to know that things are breaking. [23:48] vnguyen has joined the channel [23:48] x_or: Well, this is confirmation that I am not missing something obvious in using node.js and commonjs. [23:49] tjholowaychuk: x_or: thats all legacy crap, from like wayyy back that I have not got around to changing, sorry [23:49] tjholowaychuk: before node was even commonjs for the most part [23:49] tjholowaychuk: jashkenas: it doesnt anymore lol [23:50] x_or: tjholowaychuk: Am I using it correctly then? Is this just there for legacy apps? Should I be doing something else to use it properly in a modern context? [23:50] tjholowaychuk: x_or: but yea you can namespace them with the commonjs module system, I just have not had time. it would look like this: [23:50] tjholowaychuk: express.get('/foo', ...) etc [23:51] x_or: When you say would, meaning if things were modified, or if I were to use a commonjs way of loading libraries (different from the standard require('express'))? [23:51] x_or: Is this possible now, or could be in the future? [23:51] x_or: If this is possible now, I would be happy to write a blog post on how to do it were you to give me a quickstart. [23:51] tjholowaychuk: later it will be var express = require('express'); express.get(...) [23:51] x_or: Cool. But, right now, not possible yet, correct? [23:52] tjholowaychuk: not with express no [23:52] ceej: sweeet, I finally got a heroku node js invite [23:52] jashkenas: tjholowaychuk: glad to hear it. [23:52] x_or: OK, well, so far I don't see it breaking my apps, just something I was worried about, and debugging node.js is still a bit of a mystery for me to do, so I am trying to be proactive. [23:52] tjholowaychuk: jashkenas: that was my ruby Hash brain in action :) [23:53] x_or: I love the features of express, sass+haml. Thanks for building it. [23:53] TommyM: sass is awesome :) [23:53] tjholowaychuk: x_or: np. globals are bad practice, but honestly I have never broken anything from having some globals around (accidentally or not) [23:54] inimino: it works fine until everybody does it :) [23:55] gf3 has joined the channel [23:56] tjholowaychuk: yup [23:56] tjholowaychuk: lol