[00:00] jakehow has joined the channel [00:02] hammerdr has joined the channel [00:03] jimmy203: ok I`ve probably done something silly. [00:04] jimmy203: I`m getting the following error [00:04] jimmy203: TypeError: Cannot set property 'version' of undefined [00:04] jimmy203: exports.version = '1.0.0rc'; [00:04] jashkenas has left the channel [00:04] mcarter has joined the channel [00:04] jimmy203: any one else come across it? [00:06] digitalspaghetti: can you pastebin the code? [00:06] jimmy203: sure [00:07] jimmy203: http://pastebin.com/TPacebwR [00:09] digitalspaghetti: can you paste the backtrace of the error then? [00:09] digitalspaghetti: that code is fine [00:09] jimmy203: done [00:11] digitalspaghetti: link? [00:11] jimmy203: some just refresh [00:11] jimmy203: same** [00:12] digitalspaghetti: nope, i still see the origional [00:12] jimmy203: http://pastebin.com/99J8r7A9 [00:12] jimmy203: my bad.. sorry :) [00:13] digitalspaghetti: ahh you didn't install express with npm? [00:13] markwubben has joined the channel [00:15] digitalspaghetti: did you follow the installation instructions for it? [00:15] digitalspaghetti: http://github.com/visionmedia/express [00:16] jimmy203: I used npm install express [00:16] jimmy203: I can show you the npm logs? [00:16] jimmy203: it finishes with nothing to install - ok [00:18] digitalspaghetti: sorry my bad, it does install to .node_libraries [00:18] digitalspaghetti: i thought it maybe installed to /usr/local [00:18] digitalspaghetti: hmm, not sure then [00:19] jimmy203: I don`t need to use npm to install node? [00:19] jimmy203: node runs fine on its own with other small test apps [00:20] Stephen has joined the channel [00:20] saikat: if i want to use sys.inherits [00:20] digitalspaghetti: you need node for npm [00:20] saikat: the two objects have to be objects created using new, right? [00:20] saikat: or rather [00:20] saikat: they have to be names of functions [00:20] saikat: that can have the new operator applied on them to create instances? [00:21] jimt has joined the channel [00:21] saikat: there isn't a way to do something like x = {myMethod : function() {this.emit('error');}}; sys.inherits(x, process.EventEmitter); [00:21] jimmy203: ok I give up for the night maybe something with kiwi is conflicting will rollback vm snapshot tomorow and try it from scratch.. Thanks - gnight. zzz zz [00:22] saikat: since x is an instance, not a class? [00:22] saikat: is there some method that lets me just copy event emitter's prototype methods into an object created using obj = {}? [00:28] jimt_ has joined the channel [00:30] hij1nx has joined the channel [00:30] paulwe has joined the channel [00:32] Stephen_ has joined the channel [00:33] nrstott: saikat, that seems to come up a lot. id suggest npm installing underscore and using its 'extend' method [00:33] saikat: nrstott: i'm actually trying to do it using this method that crockford describes [00:33] saikat: http://javascript.crockford.com/prototypal.html [00:34] saikat: seems fairly straightforward if i understand him correctly [00:34] nrstott: sure [00:34] saikat: but if this doesn't do what i want, ill try what you suggested - thanks =) [00:34] nrstott: underscore and wu are both great libs that have a lot of utiltiy, as does 'narwhal' lib which also has an 'update' that would do what you want [00:35] nrstott: id recommend using one of them, but copying Crockford isn't bad either :) [00:35] saikat: oh cool - yeah i already have narwhal actually [00:35] saikat: so might just grab it from there [00:35] nrstott: require('narwhal/util').update(myobj, otherobj) [00:35] saikat: and otherobj would be [00:35] saikat: otherobj = new process.EventEmitter [00:35] saikat: ? [00:35] nrstott: yeh [00:35] saikat: er new process.EventEmitter() [00:36] saikat: ok cool, thanks [00:36] nrstott: wait its not update, its merge :) [00:36] nrstott: sorry [00:36] nrstott: no i had it right first time [00:36] nrstott: its update [00:37] wattz: evening [00:38] JimBastard has joined the channel [00:38] JimBastard: why does futon not paginate [00:39] nrstott: futon does paginate [00:40] JimBastard: nrstott: ?!??!? then who was long scroll list? [00:40] zemanel has joined the channel [00:40] wattz: ! [00:40] nrstott: im looking at futon right now... at the bottom of the grid it gives you the option for how many to show per page and it has a next and previous button ;0 [00:40] nrstott: it defaults to 10 [00:40] JimBastard: im talking about a whole bunch of properties on a document [00:40] nrstott: oh [00:40] JimBastard: not pagination for documents [00:40] nrstott: well yeah it doesn't do that [00:41] JimBastard: we have a HUGE translation database here [00:41] JimBastard: adding a local engine for translate.js [00:41] nrstott: well that's a good idea [00:41] JimBastard: ;-) [00:41] nrstott: great idea JimBastard, code a patch :) [00:41] JimBastard: yaa! http://github.com/marak/translate.js [00:41] wattz: i was thinking about writing a data store from scratch today :D [00:41] wattz: seems like what the cool people are doing [00:41] JimBastard: its always good to act like the cool kids [00:42] wattz: yeah [00:42] wattz: JimBastard: you will be glad to hear Bob is doing good [00:42] JimBastard: what about Bob? [00:42] wattz: good moviw [00:42] wattz: movie [00:43] saikat: is there a way to restart node in case of an uncaught exception? i know i can listen for uncaught exception and issue a sigint to myself to make me shut down gracefully, but i would probably need an outside process to start it up again, right? [00:43] saikat: i guess monit can just watch to see if node goes down and start it again? [00:46] wattz: pretty! http://cl.ly/c86b3b92f30f09918bde [00:49] digitalspaghetti: yea, i;ve come to the conclusion that cool != profit (at the moment) [00:49] digitalspaghetti: so I need to come up with a cool free time not profit project to do with node now :D [00:49] wattz: digitalspaghetti: javascript, c++, ? [00:50] digitalspaghetti: what one wattz ? [00:50] wattz: i mean what are you looking to build one in? [00:50] digitalspaghetti: my work project, currently Django + MySQL with ExtJS frontend [00:51] digitalspaghetti: but my cool project will be node + probably couchdb [00:51] wattz: so a site [00:51] wattz: ahh [00:51] digitalspaghetti: my work, not a site [00:51] digitalspaghetti: a web application, pretty data driven [00:52] wattz: ahh [00:52] digitalspaghetti: lots of grids, forms, lists, etc [00:52] digitalspaghetti: with my cool project, could be anything :D [00:52] wattz: ahh [00:52] wattz: build bob! [00:52] wattz: :D [00:53] digitalspaghetti: i wrote a 7 line IRC bot that insults people when they enter the chanel :D [00:53] wattz: lol [00:53] digitalspaghetti: *channel [00:54] digitalspaghetti: what's bob? [00:54] wattz: Build system [00:54] wattz: like Make/Config [00:55] wattz: and Waf, but built with v8/c++ and you write the configure and make files in pure js [00:55] digitalspaghetti: interesting [00:55] digitalspaghetti: KILL ANT! [00:55] wattz: http://github.com/wess/Bob-The-Builder [00:55] _announcer: Twitter: "@christkv but where do you see trolling? he is not saying negative things about node.js I think" -- Xavier Noria. http://twitter.com/fxn/status/21190793495 [00:55] digitalspaghetti: KILL SCONS! [00:56] wattz: my anger with scons and waf prompted this [00:56] AAA_awright: Aye to that [00:56] AAA_awright: Why can't someone finally make a build system that works? [00:56] wattz: Bob! [00:56] wattz: :D [00:56] wattz: finish up configure then build [00:56] AAA_awright: Instead we have this python and Makefile and ./configure crap [00:56] wattz: AAA_awright: with bob you just write a Builder.js file [00:56] wattz: and run bob. [00:57] wattz: it checks system, dependence, location [00:57] AAA_awright: That doesn't sound any better [00:57] wattz: makes sure the files are readable [00:57] AAA_awright: It's still a script [00:57] wattz: Builder.js is just your configure [00:57] digitalspaghetti: AAA_awright: what do you suggest? [00:57] AAA_awright: autotools has come the closest, but the implementation is awful [00:58] wattz: AAA_awright: you can't just guess gcc/g++ [00:58] wattz: flags arch [00:58] wattz: etc.. [00:58] wattz: files you could [00:58] AAA_awright: What you do is you have a file that lists all the metadata about your project [00:58] wattz: Builder.js is that. [00:58] AAA_awright: Probably XML or something [00:59] _announcer: Twitter: "node.js, twitter, you can search ChiperStream would just come out of depression" [ja] -- Yohei Sasaki. http://twitter.com/yssk22/status/21190978796 [00:59] AAA_awright: wattz: But javascript isn't data, maybe you could embed limited amounts of Javascript, but you don't use that to store your data [00:59] wattz: store data? [00:59] AAA_awright: Yes, metadata [00:59] wattz: like a json string [00:59] AAA_awright: Like what executables will be built, and which files and which libraries you use to build it [00:59] wattz: you don't really store meta data, it's present in your configure/makefile.in script [00:59] digitalspaghetti: I think JSON can be more verbose than XML [00:59] _announcer: Twitter: "@christkv though I don't understand the intro, if you want to explain threads are not "useless", why mention node.js at all" -- Xavier Noria. http://twitter.com/fxn/status/21191029818 [00:59] digitalspaghetti: and easier to read [01:00] AAA_awright: The build system scans the metadata and the source files, and determines how to build what you asked for [01:00] AAA_awright: No scripting [01:00] AAA_awright: Only based on metadata [01:00] wattz: technically that is scripting.. [01:00] wattz: just not progmatic [01:00] AAA_awright: Scripting has logic in it, so no it isn't [01:00] AAA_awright: Maybe you have some expressions in, [01:00] wattz: Bob's builder file is just calling commands [01:01] wattz: but you have a good idea there [01:01] AAA_awright: Like OpenSSL must be compiled in if you also have feature X [01:01] wattz: and i think im going to make it command based or just a js object [01:01] _announcer: Twitter: "Watching @ggoodale's node.js+mongoDB lecture. Node seems a logical step from async socket code. But why anon funcs instead of passing cntxt?" -- Rick Osborne. http://twitter.com/rickosborneorg/status/21191145054 [01:02] AAA_awright: wattz: Maybe you want to help me make this [01:02] wattz: what's that? [01:02] AAA_awright: Let's call it guru [01:02] wattz: ? [01:02] AAA_awright: You call: "guru" and it builds the executables [01:03] wattz: i can call bob and do the same [01:03] wattz: :P [01:03] AAA_awright: But here is the cool thing [01:04] derferman has joined the channel [01:04] AAA_awright: You can create a build file without any knowledge of what a Gentoo package is [01:04] JimBastard: !tweet @fxn they see me noding, they hating, debating, trying to get evented, trying to get evented [01:04] AAA_awright: (for example) [01:05] AAA_awright: And yet, you can still install a Gentoo package extension, and because all the metadata is there, from that you can still build a Gentoo, Debian, Red Hat package [01:05] AAA_awright: And it just works [01:05] wattz: AAA_awright: you know whati was thinking about too [01:06] wattz: a web service that stores meta data, and such [01:06] wattz: an you call bob.remote('...'); [01:06] wattz: and it pulls and builds for you [01:06] AAA_awright: Maybe this Bob would be something to fork into a dedicated build system [01:06] Viriix: like .... a repository? [01:06] AAA_awright: Haha [01:07] wattz: AAA_awright: you could, i expose JS to the lowest level of system as i can [01:07] wattz: or give js access [01:16] robrighter has joined the channel [01:18] mattly has joined the channel [01:19] derferman has joined the channel [01:24] SingAlong_ has joined the channel [01:37] scoates: I'm probably just looking in the wrong place, but is there good v8 documentation somewhere? e.g. where can I find docs on JSON.stringify() ? [01:37] JimBastard: JSON.stringify(obj, true, 2); [01:37] JimBastard: there you go [01:37] JimBastard: :p [01:37] scoates: heh [01:38] Stephen: scoates: Not sure, but I could probably answer your question [01:38] scoates: what are the 2nd and 3rd parameters? [01:38] JimBastard: try it out [01:38] JimBastard: pretty print time [01:38] Stephen: https://developer.mozilla.org/en/Using_JSON_in_Firefox [01:39] JimBastard: scoates: also if you are trying to debug or something, try eyes. http://github.com/cloudhead/eyes.js [01:39] scoates: no, I'm actually trying to find a way to trick it into serializing functions [01:39] Stephen: hah [01:39] wattz: JimBastard: bob is about to configure you [01:39] Stephen: scoates: XSS is bad m'kay [01:39] scoates: heh yeah (-: [01:40] Stephen: but to stringify a function just call it like this: [01:40] scoates: this is for a non-web project where we're using json to save the context locally [01:40] Stephen: function Hello(){}; Hello.toString() [01:40] Stephen: toString(), no parenthesis on the function [01:41] Stephen: the replacer parameter might allow you to do that [01:41] scoates: yep. I know how to do that. was hoping I could use the replacer to do that or something [01:41] scoates: yeah (-: [01:41] Stephen: depending on what your parser is [01:41] Stephen: Node? Or are you using something ike Rhino? [01:41] scoates: yeah, node [01:41] Stephen: Welkl [01:41] scoates: https://developer.mozilla.org/en/Using_JSON_in_Firefox looks helpful .. thanks for that. Is there really no actual V8 documentation? [01:41] Stephen: Can you explain what you need it for? [01:42] Stephen: Because DNode might be able to help you [01:42] Stephen: wait [01:42] Stephen: non web [01:42] Stephen: never mind [01:42] Stephen: http://code.google.com/apis/v8/intro.html [01:43] scoates: I think I'll just wrap the write/read functions to serialize the functions with some sort of prefix. Dirty, but it'd work. [01:43] Stephen: That's v8 documentation [01:43] scoates: "This documentation is aimed at C++ developers who want to use V8 in their applications" [01:43] wattz: ACTION raises his hand [01:43] scoates: I was hoping for JS api docs, not "how to embed V8" [01:43] wattz: js docs for what? sorry for coming in late [01:43] Stephen: I know, but each system implements it differently [01:43] Stephen: the info should be there [01:44] scoates: JSON is v8 though, no? [01:44] wattz: scoates: what are you trying to do? [01:44] deepthawtz has joined the channel [01:44] wattz: JSON is javascript [01:44] scoates: or is that ECMA, directly? [01:44] scoates: ah [01:44] wattz: JavaScript Object Notation [01:44] AAA_awright: JSON is valid Javascript, as it is a very specific subset of Javascript :) [01:45] wattz: it's just js object converted back and forth from a string [01:45] scoates: yes, I understand that (-: I thought the JSON object was provided by V8, not by ECMAScript [01:45] wattz: heh [01:45] wattz: is provided by who ever wants to provide it [01:46] Stephen: http://code.google.com/apis/o3d/docs/utilitylist.html [01:46] wattz: speaking of C++ [01:46] Stephen: JSON is a bastardization of some quirks in Javascript that became a data model [01:46] wattz: i wonder if i can create a new Arguments object on the fly [01:46] Stephen: Buit if you need something modifyable, look for JSON2.js [01:47] Stephen: It's a fairly common serialization engine, and wouldn't take much to modify it how you need [01:47] scoates: ok. thanks. [01:48] Stephen: It's most likely you'll find native JSON methods will avoid it [01:48] JimBastard: dont make me summon crockford on your ass [01:49] scoates: hehe [01:49] scoates: yeah, I uderstand why functions aren't serialized in JSON-proper [01:49] scoates: we're not using it as a trasport, just as a serializer, so it's safe.. which is why I need some hackery. [01:50] Stephen: Ah, here we are [01:50] Stephen: v8 documentation ultimately points here for their implementation: [01:50] Stephen: http://json.org/js.html [01:50] Stephen: There is an open source implementation for download at the bottom [01:51] scoates: yep, I've seen that. Sorry I wasn't clear; I was looking for V8's provided API documentation, but didn't realize that JSON wasn't a V8-specific implementation. [01:51] scoates: (JSON the object, not JSON the 'standard') [01:51] Stephen: :-) [01:52] CrockBot has joined the channel [01:52] stagas has joined the channel [01:52] JimBastard: no fucking way [01:52] JimBastard: Crockford? [01:52] JimBastard: lulz [01:52] JimBastard: close [01:52] JimBastard: needs an update [01:52] JimBastard: o well [01:52] JimBastard: back to real work again [01:52] scoates: heh [01:55] jwcooper has joined the channel [01:55] jimt_ has joined the channel [02:00] _announcer: Twitter: "great post "Threads (in Ruby): Enough Already" http://bit.ly/9LwmXz #ruby #eventmachine #nodejs" -- Régis Gaidot. http://twitter.com/rgaidot/status/21194714020 [02:01] bryanl has joined the channel [02:02] wattz: any C++ devs around? [02:02] jb55: sup [02:03] wattz: oohhhhhh jb55 !!!! [02:03] wattz: :D [02:03] jb55: :D [02:03] wattz: bob is rolling again! :D [02:03] wattz: soooo clooosee [02:03] jb55: nice [02:03] wattz: wondering if i can create an Arguments on the fly [02:04] wattz: i have a method: [02:04] wattz: Handle Verbose(const Arguments &args); [02:04] wattz: and i want to call that from another method in the namespace [02:05] mikeal has joined the channel [02:05] jb55: Arguments is a handy construct for when javascript land is calling you [02:05] wattz: so what would calling a method look like? [02:06] jb55: well ideally you wont need to call Verbose from your C++ code [02:06] wattz: i want to call it from eiher [02:06] wattz: either [02:06] deepthawtz has joined the channel [02:07] wattz: so i have a method that takes const Arguments &args, how would i pass a var to it from within C++ [02:08] Stephen_ has joined the channel [02:08] jb55: sec [02:08] jimt has joined the channel [02:08] jb55: no you cant [02:08] jb55: and that's a good thing [02:09] joshbuddy has joined the channel [02:09] joshbuddy has joined the channel [02:09] jb55: Arguments has a private constructor [02:09] wattz: so i need to rearrange so the js methods and C++ methods just call medium methods [02:09] wattz: intermediate [02:09] jb55: yes [02:10] jb55: which would probably be less of a hastle then building a javascript argument list inside your c++ code [02:10] wattz: yeah [02:10] wattz: just tedeous [02:11] jb55: refactoring is fun! [02:12] wattz: dude, it's cool [02:12] wattz: it's because im adding a feature [02:12] wattz: wanna see a working example of a builder.js file? [02:12] wattz: :D [02:12] wattz: the 2 ways you can build stuff [02:12] _announcer: Twitter: "Did you know? Heroku supports Node.js, yes really! http://bit.ly/9l4pEp if you are cool enough, they'll let you try it. #nodejs" -- Christian Sanz. http://twitter.com/csanz/status/21195484352 [02:12] jb55: sure :P [02:13] _announcer: Twitter: "@ Lucabastos Unfortunately I could not stay late, but the @ emerleite really kicked ass! # NodeJS" [pt] -- diogobaeder. http://twitter.com/diogobaeder/status/21195525572 [02:13] wattz: http://gist.github.com/524981 [02:14] stagas has joined the channel [02:14] jb55: neat [02:14] wattz: pretty clean [02:15] JimBastard: what can i use to bootstrap a fresh server instance using node [02:16] jakehow has joined the channel [02:16] JimBastard: and maybe not use chef or ruby at all [02:16] dylang has joined the channel [02:16] jb55: what's the deal with 8 space tabs, I could never stand them [02:16] JimBastard: like bash scripts? [02:16] JimBastard: jb55: whats the deal with airline food [02:16] wattz: jb55: 4 space? [02:16] JimBastard: seinfielded [02:17] daleharvey has joined the channel [02:17] tyfighter has joined the channel [02:19] aho has joined the channel [02:19] SingAlong: anyone used processing.js here? is it possible to seperate the processing code from the html page? [02:20] SingAlong: every tutorial hat I search for uses the script tag with the type="application/processing" attribute. [02:21] jb55: the tutorials suck and seem outdated even, I think there's a way but I never ended up figuring it out [02:21] jb55: you might have better luck asking on their mailing list or something [02:21] SingAlong: jb55: are you referring to processing.js? [02:21] jb55: yes [02:21] SingAlong: jb55: their learning section has demos lol i was expecting some basic tutorial [02:21] SingAlong: jb55: they have no irc channel too [02:21] jb55: honestly I couldnt even get a hello world going [02:22] SingAlong: jb55: you know any alternatives to processing? [02:22] jb55: what are you trying to do [02:22] jb55: simple canvas graphics? [02:22] jb55: with animation? [02:22] SingAlong: jb55: thats the same hello world i'm trying. i just copied one of their demos and trying to create it on my local machine. a simple creategraphics demo that creates a rectangle [02:23] jb55: I ended up just using http://raphaeljs.com/ [02:24] SingAlong: jb55: hey thanks! I was assuming that raphael is an alternative to node. [02:24] SingAlong: jb55: their site is slick! and doc-searcher friendly :) [02:24] c4milo has joined the channel [02:24] stagas has joined the channel [02:25] SingAlong: jb55: and they IE6+. wow. i never wanted that tho :P [02:27] tango3 has joined the channel [02:27] JimBastard: hey SubStack you around? [02:27] mw_ has joined the channel [02:27] _announcer: Twitter: "@assaf Definitely the funniest thing I've read in a while. The Rails and Node.js communities deserve each other." -- Benjamin Black. http://twitter.com/b6n/status/21196484832 [02:28] JimBastard: !tweet @b6n node.js owns your face [02:29] JimBastard: lulz [02:31] jimt has joined the channel [02:33] SingAlong: !tweet [02:34] SingAlong: jb55: I got a hello world running in raphael. thanks to you :) [02:34] jb55: SingAlong: a lot easier isn't it? :) [02:35] SingAlong: jb55: ya :) [02:35] SingAlong: jb55: any way to target a particular canvas? Using Raphael() seems to create a canvas on its own. [02:35] stagas has joined the channel [02:36] jb55: yup [02:36] jb55: var notepad = document.getElementById("notepad"); [02:37] jb55: var paper = Raphael(notepad) [02:37] SingAlong: jb55: thanks! [02:37] deepthawtz has joined the channel [02:37] jb55: !tweet @nodejsbot #nodejs is awesome! [02:38] c4milo: ds [02:38] tekky has joined the channel [02:39] JimBastard: sup c4milo [02:40] JimBastard: jb55: i think i have to add you [02:40] JimBastard: im pretty sure its a whitelist [02:40] c4milo: JimBastard: just testing my connection hhahaha [02:41] JimBastard: i got _bastardbot running from my local right now [02:41] JimBastard: c4milo: you using colors for anything fun? [02:41] JimBastard: :-) [02:41] JimBastard: << marak [02:41] c4milo: ahaha [02:41] JimBastard: best colors.js demo ever : http://maraksquires.com/doublerainbow/ [02:41] JimBastard: :p [02:42] c4milo: nahh I usually don't follow the children's play of Marak [02:42] c4milo: :P [02:42] JimBastard: lulz [02:42] JimBastard: i do serious stuff sometimes [02:42] stagas has joined the channel [02:42] JimBastard: i even work for a node.js hosting and consulting company now! http://github.com/nodejitsu [02:43] c4milo: aha, you are work mate of marak [02:43] JimBastard: i am marak! [02:43] c4milo: coworker [02:44] c4milo: Marak child ! [02:44] c4milo: xD [02:44] JimBastard: ahaha [02:44] JimBastard: !translate English:Spanish I am king of all the jelly fish. [02:44] _bastardbot: Soy el rey de todas las medusas. [02:44] JimBastard: :-D [02:44] c4milo: but sometimes you make me laugh [02:44] c4milo: ahaha [02:45] c4milo: where do you get time to do things like rainbow ? :S [02:45] JimBastard: i try to be coding or researching at least 15 hours a day [02:45] JimBastard: if not more [02:45] c4milo: ahaha [02:45] JimBastard: ive been on that schedule for about two years now [02:46] JimBastard: last 4 months have been brutal [02:46] jb55: !translate English:Japanese Hello [02:46] _bastardbot: こんにちは [02:46] JimBastard: !translate English:Japanese Mr. Robot [02:46] _bastardbot: 氏ロボット [02:46] c4milo: but you can make more serious projects. You have the skills to do it [02:46] JimBastard: !translate Japanese:English 氏ロボット [02:46] _bastardbot: Mr. Robot [02:46] c4milo: don't waste your time in rainbows [02:47] c4milo: or things like that [02:47] JimBastard: c4milo: waste of time? [02:47] JimBastard: im working on broodmother everyday, its just not public yet [02:47] c4milo: ahah, I mean, you can make a great project with that time [02:47] JimBastard: its the core platform for nodejitsu [02:48] c4milo: you are founder in nodejitsu ? [02:48] JimBastard: aye :-) [02:48] c4milo: because that name has your sign :P [02:51] c4milo: JimBastard> c4milo: you using colors for anything fun? <-- got it. I was just curious [02:51] ashleydev has joined the channel [02:52] fearphage has joined the channel [02:56] Stephen has joined the channel [02:59] fearphage has joined the channel [02:59] JimBastard: can anyone recommend a simple tutorial for setting up simple systems bash scripts? [03:00] wattz: systems bash scripts? [03:00] JimBastard: http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html ? [03:00] JimBastard: ya [03:00] wattz: to do what? [03:00] JimBastard: im a linus noob [03:00] eisd: `l bash hello world @ JimBastard [03:00] gbot2: JimBastard: http://lmgtfy.com/?q=bash+hello+world [03:01] eisd: :) [03:01] JimBastard: i gotta bootstrap a clean machine [03:01] wattz: JimBastard: what are you trying to do? [03:01] JimBastard: install some apps (apt-get) install node, run some more command line stuff [03:01] JimBastard: simple stuff [03:01] JimBastard: i think the tutorial i got is a good start [03:01] JimBastard: im trying to avoid chef [03:01] wattz: just write your commands out in a text file and use && to seperate them and \ to move to next line [03:02] JimBastard: wattz: i would think bash script will give me better things like error handling and what not [03:02] eisd: there's also #bash [03:02] JimBastard: better separation of stuff too [03:02] wattz: JimBastard: ignore him, you know we love you and will help however we can! [03:03] JimBastard: lulz.com [03:03] wattz: JimBastard: Bob :D - var sys = new System(); sys->execute('command')->execute('command'); [03:03] wattz: :D [03:03] JimBastard: im sorry eisd ill try to sit back and observe more im new here [03:03] JimBastard: :-\ [03:03] JimBastard: and very excited about node! [03:03] wattz: lol [03:03] JimBastard: its awesome [03:03] JimBastard: can i get a callback? [03:03] stagas has joined the channel [03:03] JimBastard: SCOPE! [03:04] wattz: scope.Close(String::New("amen!")); [03:04] JimBastard: :-) [03:04] jwcooper_ has joined the channel [03:05] JimBastard: okay, are there any node scripts for easily sys execing ssh and starting a session to pipe commands? [03:05] ako has joined the channel [03:05] JimBastard: step 1 perhaps? [03:05] wattz: can't node do child_process? [03:05] eisd: JimBastard: heh, of course the former was a joke, but #bash is helpful [03:05] JimBastard: wattz: for sure, i can do that [03:05] JimBastard: im asking if its been done already [03:06] wattz: nt jake [03:06] wattz: bob. [03:06] wattz: not [03:06] tekky has joined the channel [03:06] JimBastard: it would prob make sense to actually build the protocol, but im a nub [03:06] JimBastard: ill try some child process experiments, see what i can do [03:07] wattz: JimBastard: if you want to compile bob you can use the system level stuff [03:07] JimBastard: http://github.com/tsmith/node-control [03:08] JimBastard: let me test that out! [03:10] JimBastard: ugh why cant people ship projects with fucking demo files [03:11] kersny has joined the channel [03:14] softdrink has joined the channel [03:20] wattz: lol [03:20] ceej: JimBastard: and test files? :) [03:20] wattz: JimBastard: help me write docs for Bob [03:20] JimBastard: wattz: as much as i'd love to work on your one week old first node.js project [03:21] JimBastard: sorry i forgot where i was going with that [03:21] wattz: it's not node.js [03:21] JimBastard: >.< [03:21] wattz: and it's been more than a week [03:21] wattz: and Im nice to you. [03:21] wattz: and you don't have to hurt my feelings. [03:21] wattz: ._. [03:22] JimBastard: im knee deep anyway man, id help if it made sense [03:22] JimBastard: but i dont know what your thing does [03:22] JimBastard: or have seen it working [03:22] JimBastard: or why / if i'd need it for anything [03:23] c4milo: JimBastard: do you know puppet ? [03:23] wattz: JimBastard: i was actually just picking on you [03:23] JimBastard: c4milo: what language is puppet written in again? [03:23] wattz: JimBastard: you need to settle down or i will give you 20 lashes with giraffe neck [03:23] c4milo: JimBastard: I guess you already know , Ruby [03:24] stagas has joined the channel [03:24] JimBastard: yeah c4milo i'd like to stick in pure jabascripts / bash script [03:24] JimBastard: <3 chef though [03:24] JimBastard: just today is not a ruby day [03:24] aho has joined the channel [03:24] c4milo: JimBastard: do a javascript version of puppet that would be nice [03:25] hij1nx: as much as i hate oracle, anyone know about oracle bindings for nodejs? [03:25] wattz: newp [03:25] JimBastard: dont troll the node room hij1nx [03:25] JimBastard: bad [03:25] hij1nx: hehe [03:25] JimBastard: thats what #jquery is for [03:26] hij1nx: JimBastard: hey have you ever used bash? [03:26] JimBastard: hij1nx: only on your face [03:26] JimBastard: ACTION reaches over the laptop and slaps hij1nx  [03:26] JimBastard: its only funny caus he's on the other side of my marble counter [03:26] hij1nx: JimBastard: you keep swinging your dick around its bound to hit someone! =) [03:27] JimBastard: oopa! [03:27] JimBastard: we having a javascript party here tonight [03:27] hij1nx: auh jeah [03:27] c4milo: jum, please. keep your nasty language for your house [03:28] c4milo: :P [03:28] JimBastard: c4milo: did you peep http://github.com/tsmith/node-control [03:28] JimBastard: i got it running now, debating how to structure this [03:28] JimBastard: dunno if i want to offload it to javascript, or just have node-control send over the bashscript [03:28] c4milo: JimBastard: not yet, I'm in other business [03:29] JimBastard: c4milo: it has some server admin syntax a bit [03:30] mattly has joined the channel [03:31] c4milo: ok, time to sleep [03:31] JimBastard: night night [03:32] c4milo: good night gentlemen [03:32] _announcer: Twitter: "Socket.#IO http://goo.gl/fb/jD8Kz #ajax #nodejs #node #websocket #programming #socketio #sockets #realtime" -- Delicious Over 50. http://twitter.com/readelicious/status/21200801703 [03:32] wattz: nite [03:32] wattz: ok, just pushed Bob with configure working [03:32] wattz: time to head to zee bed as well [03:32] stagas has joined the channel [03:33] ohwtf2 has joined the channel [03:33] ohwtf2: hello everybody i have a slight problem maybe somebody can help? [03:34] ohwtf2: im trying to install node.js on fedora 12 but ./configure fails [03:34] ohwtf2: [root@linux node-v0.1.104]# ./configure [03:34] ohwtf2: Checking for program g++ or c++ : not found [03:34] ohwtf2: Checking for program icpc : not found [03:34] ohwtf2: Checking for program c++ : not found [03:34] ohwtf2: /home/Kiur/Desktop/node-v0.1.104/wscript:130: error: could not configure a cxx compiler! [03:35] ezmobius has joined the channel [03:35] wattz: ohwtf2: install g++ [03:35] wattz: yum install g=+ [03:35] wattz: g++ [03:36] ceej: ohwtf2: yum install gcc gcc-c++ make [03:36] ohwtf2: tried, says no package g++ avalible [03:36] _announcer: Twitter: "Good day. Table tennis, _The Big Sleep_, and _Mulholland Drive_. Tomorrow, node.js and Web sockets w/@neagle." -- Ian McCracken. http://twitter.com/iancmcc/status/21201070199 [03:36] wattz: ohwtf2: no idea on fedora [03:36] JimBastard: !tweet @iancmcc node.js is awesome! [03:36] wattz: yum search g++ [03:36] wattz: ? [03:36] ohwtf2: trying, one sec [03:37] ceej: try yum install gcc-c++ [03:37] ohwtf2: trying [03:37] cardona507 has joined the channel [03:38] ohwtf2: downloading [03:38] wattz: ok for real, http://github.com/wess/Bob-The-Builder ;) Goodnight alL! [03:39] ceej: wattz: night :) [03:39] ohwtf2: gnite [03:39] eisd has left the channel [03:41] qschzt has joined the channel [03:44] mscdex: wattz the heck! [03:50] ohwtf2: thanks im good no [03:50] ohwtf2: now [03:51] _announcer: Twitter: "This is an node.js-HTML5 Websockets-server http://github.com/miksago/node-websocket-server - #nodejs #html5" -- Carlos Cardona. http://twitter.com/cgcardona/status/21202084390 [03:58] grahamalot has joined the channel [03:59] tek has joined the channel [04:01] tek: hm [04:03] mscdex: hrm [04:08] _announcer: Twitter: "Wrapped my head around Node.js tonight with asynchronous callbacks + flow control. It was *much* harder than I expected, but it's working." -- Scott Newman. http://twitter.com/greencoder/status/21203203411 [04:13] mscdex: !tweet @greencoder irc.freenode.net #node.js for any questions [04:13] stagas_ has joined the channel [04:16] _announcer: Twitter: "Introducing node-dht, a distributed hash table library for #nodejs http://github.com/jb55/node-dht" -- Bill Casarin. http://twitter.com/jb55/status/21203748449 [04:16] SubStack: much harder? o_O [04:17] jb55: harder than what? lol [04:18] mscdex: much harder than magic [04:18] jb55: I cast spells to write programs [04:19] mscdex: i wanna cast magic missile [04:19] mscdex: i'm attacking the darkness! [04:19] iheartnodejs has joined the channel [04:19] iheartnodejs: :-D [04:19] jb55: ok [04:22] charlieyan has joined the channel [04:22] charlieyan: for anybody who uses node-redis-client to store data [04:22] mscdex: woot. gotta love regular and predictable upstream library updates [04:22] charlieyan: how do you do full-text search? [04:23] charlieyan: like a sphinx implementation [04:23] saikat has joined the channel [04:27] JimBastard_ has joined the channel [04:28] mscdex: !seen zalgoninja [04:30] JimBastard_: does seen work? [04:31] mscdex: you mean you don't see the output? [04:31] JimBastard_: no? [04:31] mscdex: heh [04:32] mscdex: i keed i keed [04:32] mscdex: there is no seen bot [04:32] mscdex: YET [04:36] mscdex: !seen seenbot [04:37] mscdex: :S [04:37] _announcer: Twitter: "The sweet thing about async Node.js is that I don't have to use background workers or delayed jobs to call webhooks anymore." -- Scott Newman. http://twitter.com/greencoder/status/21205053546 [04:38] ryankshaw has joined the channel [04:38] ashleyde1 has joined the channel [04:42] ashleyde1 has joined the channel [04:53] qschzt: lames++ semilames moreso++ even moreso++ [04:54] qschzt: http://nodejs.debuggable.com/ [04:56] bryanl has joined the channel [05:01] stagas has joined the channel [05:02] _announcer: Twitter: "http://nodejs.org - Evented I/O for V8 JavaScript. "Node's goal is to provide an easy way to build scalable network programs."" -- Ron Klein. http://twitter.com/kleinron/status/21206585180 [05:02] wllm has joined the channel [05:04] CrabDude has joined the channel [05:06] megan has joined the channel [05:06] megan: does node has session variables yet? :) [05:06] mbleigh has joined the channel [05:12] _announcer: Twitter: "definitely want to take a look at node.js after most of my project is done. Curious on how it would perform vs implementing in Erlang" -- Edward. http://twitter.com/edv4rd0/status/21207221266 [05:13] mattly has joined the channel [05:22] JimBastard_ has joined the channel [05:22] JimBastard_: hey jed [05:22] JimBastard_: dammit [05:24] JimBastard_: anyone in here speak japanese? [05:25] jb55: speak or read [05:25] Stephen: speak [05:25] Stephen: j/k [05:27] _announcer: Twitter: "'m test error. AssertionError: null == "6f5902ac237024bdd0c176cb93063dc4" at node-mongodb-native/integration/integration_tests.js: 2768:18" [ja] -- youichi kato. http://twitter.com/katoy/status/21208040238 [05:27] Stephen: I do a really bad impression of a japanese song to the tune of Hawaii 5-0 [05:27] JimBastard_: i got it [05:28] JimBastard_: best project name evar [05:28] JimBastard_: its a secret [05:28] JimBastard_: shhh [05:28] mbleigh: is there a simple way to vendor npm packages for use on heroku or do you have to do it painfully? [05:29] jsilver has joined the channel [05:34] inimino: Is there a way to print an unquoted string in the node REPL? [05:35] inimino: I want to see real line breaks and indentention in the output, not "'a\nb'" [05:37] Aria: require('sys').print(stuff) [05:37] SubStack: console.log it [05:37] Aria: or that [05:39] inimino: hm, ok [05:43] saikat has joined the channel [05:43] [[zz]] has joined the channel [05:45] konobi: *knackered* [05:48] luddep_ has joined the channel [05:50] softdrink has joined the channel [05:52] tilgovi has joined the channel [05:54] siculars has joined the channel [05:55] brapse has joined the channel [06:03] saikat has joined the channel [06:22] zomgbie has joined the channel [06:28] MattJ has joined the channel [06:29] stagas has joined the channel [06:29] pydroid has joined the channel [06:30] hansek has joined the channel [06:32] ewdafa has joined the channel [06:33] confoocious has joined the channel [06:45] pdelgallego has joined the channel [06:50] SamuraiJack has joined the channel [06:51] Tobsn has joined the channel [06:51] jedschmidt has joined the channel [06:54] _announcer: Twitter: "hey @ryah , I wonder what do you think about Alligator, the new Application-Server for NodeJS http://github.com/mrohad/Alligator" -- MrOhad. http://twitter.com/MrOhad/status/21212632726 [06:57] mu-hannibal has joined the channel [07:02] stagas has joined the channel [07:11] tyfighter has joined the channel [07:14] Tobsn: people write the oddest stuff with nodejs [07:15] Aria: On? [07:15] Aria: er. Oh? [07:15] Tobsn: Twitter: "hey @ryah , I wonder what do you think about Alligator, the new Application-Server for NodeJS http://github.com/mrohad/Alligator" -- MrOhad. http://twitter.com/MrOhad/status/21212632726 [07:16] Tobsn: !tweet @MrOhad this shit is wicked! [07:16] Tobsn: :P [07:16] Aria: Heh [07:16] Tobsn: or what was that stupid command [07:16] Tobsn: !twitter @MrOhad this shit is wicked! [07:16] Tobsn: cant remember [07:17] Tobsn: !twit @MrOhad this shit is wicked! [07:17] qFox has joined the channel [07:17] Tobsn: arg stupid bot is not here i think [07:18] TangoIII has joined the channel [07:18] Gruni has joined the channel [07:20] _announcer: Twitter: "@asolovyov Interesting - my test was on node.js" -- Steve Dekorte. http://twitter.com/stevedekorte/status/21213891569 [07:22] ewdafa has joined the channel [07:23] _announcer: Twitter: "Proxy for CouchDB to start work and start writing in node.js." [ja] -- Yohei Sasaki. http://twitter.com/yssk22/status/21214074423 [07:37] mikeal has joined the channel [07:38] stagas has joined the channel [07:43] _announcer: Twitter: "Have gotten opportunity to write some commercial node.js application." -- Paul Nikitochkin. http://twitter.com/pftg/status/21214958901 [07:43] ajsie has joined the channel [07:45] ajsie has joined the channel [07:47] ajsie has left the channel [07:52] ezjs has joined the channel [07:53] ezjs: has anyone rewritten couchdb with node yet? [07:54] amerine has joined the channel [07:59] _announcer: Twitter: "Woot! Using #vows & #nodejs to test #javascript code, with a #ruby rake task to run them. Maybe I'll write a post on this." -- Matthew Denner. http://twitter.com/mattdenner/status/21215654203 [08:02] Throlkim has joined the channel [08:05] stagas: hm if you have an if (foo || bar) and foo = true will it evaluate bar ? [08:05] hansek has joined the channel [08:05] femtoo has joined the channel [08:06] javajunky has joined the channel [08:06] stagas: it doesn't [08:11] keeto has joined the channel [08:15] jetienne has joined the channel [08:16] jetienne: {}.length is not legal... how can i know the number of key in the hash ? [08:16] John9e9 has joined the channel [08:17] AAA_awright: http://vowsjs.org/ is a really spiffy idea [08:21] fod has joined the channel [08:21] jetienne: to my question... there is no way but counting them one by one...fails [08:24] _announcer: Twitter: "@stevedekorte In V8, this is false. Tested in NodeJS and MongoDB shell." -- Boo. http://twitter.com/BooBSD/status/21216773999 [08:25] AAA_awright: Because .length is defined in Array, I thought [08:25] tango3 has joined the channel [08:26] ryah: so, basically you can't reject connections without closing the server socket [08:26] ryah: annoying [08:30] femtooo has joined the channel [08:34] _announcer: Twitter: "http://nodeknockout.com/ is down by error #nodejs @node_knockout" -- mindwork. http://twitter.com/mindwork/status/21217180004 [08:39] blackdog_ has joined the channel [08:40] pkrumins: jetienne: Object.keys(hash).length [08:45] micheil: man... some of the proposals for client side api changes are crazy. [08:45] micheil: for websockets [08:46] ryahh has joined the channel [08:46] micheil: like having three different ways to send data.. [08:46] ryahh: !twitter node.js sucks! #javascript [08:47] technoweenie: that sucks [08:47] SubStack: pkrumins: for enumerable keys anyways [08:47] technoweenie: thats one of the best things about websockets IME [08:47] technoweenie: its so freaking simple [08:47] technoweenie: connect/send/on('data') [08:47] pkrumins: that person doesn't know what that is [08:47] technoweenie: thats like all you need [08:49] micheil: technoweenie: yeah, some of the stuff that comes up on the hybi / IETF mailing list is a little bit crazy [08:49] micheil: I think I'm going to do a slight change proposal: [08:50] tpryme has joined the channel [08:50] micheil: boolean send(in DOMString data, in optional DOMString encoding); [08:50] micheil: instead of the current: [08:50] micheil: boolean send(in DOMString data); [08:50] technoweenie: encoding? [08:50] technoweenie: as in utf8 vs binary? [08:51] technoweenie: they should probably just be utf8, when are you going to send binary data to the browser [08:51] technoweenie: images i guess, hm [08:52] micheil: yeah [08:52] micheil: because the protocol is being design to support both binary and utf8 [08:52] micheil: if there is no encoding, assume utf8 [08:53] micheil: then also (I don't know where the IDL for this actually is) a change to the onmessage interface [08:54] _announcer: Twitter: "The CouchDB Proxy node.js made. Reverse Proxy instead of just INPUT / OUTPUT act like a filter." [ja] -- Yohei Sasaki. http://twitter.com/yssk22/status/21218051496 [08:54] micheil: onmessage ( DOMString | ByteArray data, DOMString encoding); [08:54] micheil: but that could easily be done with onmessage ( DOMString|ByteArray data ); [08:55] javajunky has joined the channel [08:57] luddep has joined the channel [08:57] _announcer: Twitter: "CouchDB filterable proxy for node.js/express http://bit.ly/dpfY9B" -- Yohei Sasaki. http://twitter.com/yssk22/status/21218203987 [09:01] Yuffster has joined the channel [09:07] jwm has joined the channel [09:08] AAA_awright has joined the channel [09:08] tango3 has joined the channel [09:09] sh1mmer has joined the channel [09:10] _announcer: Twitter: "@kwogger mh, you should probably be experienced with the serverside before in that case, and then transition to node.js" -- Paul Bakaus. http://twitter.com/pbakaus/status/21218800434 [09:13] _announcer: Twitter: "My take on testing front end #javascript within #rails using #nodejs and #vows: http://bit.ly/ddKl3T" -- Matthew Denner. http://twitter.com/mattdenner/status/21218907835 [09:25] JimBastard has joined the channel [09:27] mpoz2 has joined the channel [09:38] jetienne: pkrumins: thx [09:40] Tim_Smart has joined the channel [09:45] _announcer: Twitter: "The thread vs evented discussion is silly. You need both. Learn about evented using either node.js or eventmachine and apply when needed." -- Christian Kvalheim. http://twitter.com/christkv/status/21220251352 [09:53] _announcer: Twitter: "Said # COSCUP - http://tinyurl.com/2g5qbff (node.JS in interactive web applications slide) http://plurk.com/p/6y0fgw" [zh-TW] -- ericpi. http://twitter.com/ericpi/status/21220550803 [09:55] _announcer: Twitter: "What uses (vastly) less CPU than Adobe AIR and TweetDeck? #nodejs, Chromium and Denby. Woo! :-)" -- Jeff Waugh. http://twitter.com/jdub/status/21220629464 [09:57] jetienne: denby? [10:00] ezmobius has joined the channel [10:07] ingemar has joined the channel [10:10] rnewson has joined the channel [10:10] rnewson has joined the channel [10:15] Tim_Smart has joined the channel [10:25] rsms has joined the channel [10:28] _announcer: Twitter: "a #perfect world: ServerSide JS { #GoogleV8 + #nodejs } + #JSON DB {like #MongoDB :P) + #JQuery ... aaahhhh ... :)" -- SayB. http://twitter.com/SayB/status/21222039210 [10:31] Akufen has joined the channel [10:35] _announcer: Twitter: "The @storify api has been a blast to play with in #nodejs / #expressjs - I have a ton I want to do with it over the next week." -- Daniel Erickson. http://twitter.com/TechWraith/status/21222351562 [10:35] jblanche has joined the channel [10:46] _announcer: Twitter: "The #nodejs mailing list has now more than 2000 members: http://bit.ly/6SifoR" -- Felix Geisendörfer. http://twitter.com/felixge/status/21222806712 [10:52] davidc_ has joined the channel [10:53] astrolin has joined the channel [10:54] astrolin has joined the channel [11:01] _announcer: Twitter: "Safely esconsed in starbucks to write an OAuth Provider for connect-auth #nodejs Also, c'mon arcot, unverifiable certificates, really ?" -- Ciaran Jessup. http://twitter.com/ciaran_j/status/21223440827 [11:01] javajunky has joined the channel [11:02] davidc_ has joined the channel [11:13] _announcer: Twitter: "If you are seeing NodeJS adrenaline. -_-;" [ko] -- Rhio.kim. http://twitter.com/Rhiokim/status/21223915037 [11:31] _announcer: Twitter: "Did _changes CouchApp default is to use the feed. take in a large number of proxy node.js log w" [ja] -- Yohei Sasaki. http://twitter.com/yssk22/status/21224702225 [11:33] pdelgallego has joined the channel [11:34] dylang has joined the channel [11:35] _announcer: Twitter: "#Denby demo video: http://is.gd/eiBNW Starring @stilgherrian, @thewetmale, @anthonybaxter, @tagalongtess and @sampsonian! #nodejs" -- Jeff Waugh. http://twitter.com/jdub/status/21224866034 [11:42] sveisvei has joined the channel [11:44] astrolin has joined the channel [11:48] mape: dylang: Glad to hear it is working out :) [11:48] mape: So you are embedding the font into the css? [11:49] dylang: mape: yup [11:50] mape: For all different browsers? [11:50] dylang: there are browsers other than chrome and firefox? [11:50] mape: Hehe [11:50] dylang: (and i worked on IE5.5 back in college....) [11:54] dylang: i need to figure out a better way to sync dependencies into my project. heroku doesn't support npm - all deps have to be included, so i'm currently copying files manually. painful after being spoiled by npm. [11:54] mape: isaacs spoke about something like that for npm [11:54] mape: packaging it into one thing [11:55] mape: seen his last talk? [11:55] dylang: no - do you have a link? [11:55] mape: http://vimeo.com/14120299 [11:56] mape: 2 other videos from that event as well if you are so inclined [11:56] dylang: last we chatted here he had me change my npm root to my project's deps directory but npm creates a crapload of symlinks and other stuff that i don't know if heroku will be happy with [11:57] dylang: ah thanks, from the sencha meetup last week? i'm behind in these. thanks! [11:57] mape: Yup [11:58] fearphage has joined the channel [11:59] Akufen has joined the channel [11:59] Akufen has joined the channel [11:59] blackdog_ has joined the channel [12:06] zomgbie has joined the channel [12:09] Akufen has joined the channel [12:14] atmos: anyone used the native mongo driver much ? [12:16] javajunky: yeah a bit christkv's ? [12:21] atmos: yeah [12:21] atmos: having an interesting time deleting an element by id [12:29] mape: I've had issues using update casing duplicates, but sure if that is the code or me not using it correctly though [12:34] atmos: i guess i can't call remove with _id: id [12:34] dylang: mape: just learned of http://npm.mape.me/ from issacs video. Really nice site, i was thinking of building something similar but i doubt it would have been as nice. [12:34] SamuraiJack has joined the channel [12:34] atmos: i have to wrap it in a new ObjectID(id) object [12:34] mape: Still some things to be added but easier to browse then raw json [12:34] _announcer: Twitter: "@ FTW ayosec node.js could organize a session hacking" [es] -- Alberto Perdomo. http://twitter.com/albertoperdomo/status/21227699052 [12:37] fearphage has joined the channel [12:37] digitalspaghetti: .we [12:37] digitalspaghetti: opps, wrong chan :D [12:39] digitalspaghetti: What the npm site really needs is the name to link to the github for the project (if there is one) [12:39] Blackguard has joined the channel [12:39] digitalspaghetti: more info doesn't really give enough [12:39] d0k has joined the channel [12:40] digitalspaghetti: is it open source at all? I'd be happy to contribute to it [12:41] mape: Well it is pretty much what you see [12:42] mape: no backend, it just fetches it from the npm repo through jsonp [12:43] digitalspaghetti: ahh yea, the url is the actual .git :/ hmm [12:45] digitalspaghetti: it's just a pain having to google for the package info to find the repo that has it. Maybe the package.json could have that link added as a field, and the name of the package could link to it on the site? [12:45] mape: would have to talk to isaacs about that [12:49] digitalspaghetti: brb [12:54] digitalspaghetti has joined the channel [12:55] digitalspaghetti: fixed it so hopfully i should appear in wargamez now :D [12:55] digitalspaghetti: oh wait, it was cached wasn't it? [12:55] digitalspaghetti: i kept meaning to fix my home server, but was too lazy until now, but means i have a proper node dev machine now as well :D [12:55] WarBot has joined the channel [12:56] hansek has joined the channel [12:56] mape: digitalspaghetti: speak [12:56] digitalspaghetti: mape: boom [12:56] mape: there you go [12:56] mape: digitalspaghetti: seems to work [12:56] digitalspaghetti: yay :D [12:56] digitalspaghetti: going to run it on another channel i run [13:01] feroz_ has joined the channel [13:06] digitalspaghetti: heh http://twitter.com/phil_nash/status/21159419598 [13:08] _announcer: Twitter: "@ Albertoperdomo Yes, I would be cool to know more about node.js. Besides, I had not stopped to think seriously about the issue of off-browser JS" [es] -- Ayose. http://twitter.com/ayosec/status/21229466866 [13:13] _announcer: Twitter: "Twitter scripts written in Python that capture simple porting work node.js" [ja] -- Yohei Sasaki. http://twitter.com/yssk22/status/21229761900 [13:16] digitalspaghetti: mape: had any issues with node-websocket-server with wargamez? [13:17] digitalspaghetti: Error: Cannot find module 'node-websocket-server/lib/ws' [13:17] mape: Not really [13:17] mape: if you only use node-websocket-server ? [13:17] mape: if you installed it through npm [13:18] digitalspaghetti: npm install websocket-server [13:18] mape: yeah so does require('websocket-serve') work? [13:18] digitalspaghetti: no, tried it too [13:18] mape: *r [13:19] mape: hm, node-websocket-server? [13:19] digitalspaghetti: ahh, just ('websocket-server') [13:19] mape: yes [13:19] digitalspaghetti: as teh entry point is set in the package.json [13:20] jochen has joined the channel [13:20] mape: If you are using npm it should solve that for you, so just 'websocket-server' should point to the correct module [13:20] ewdafa has joined the channel [13:23] bryanl has joined the channel [13:26] _announcer: Twitter: "Okay, node.js cron you can escape from, yet I capture in real time" [ja] -- Yohei Sasaki. http://twitter.com/yssk22/status/21230528530 [13:31] _announcer: Twitter: "pubsub using node.js, redis and websockets http://post.ly/rwDk" -- Ivan Ribeiro. http://twitter.com/irr/status/21230826005 [13:33] maushu has joined the channel [13:33] digitalspaghetti: hmm, seem to get wargamez up but the webserver side times out :( [13:36] mape: listening to the right port? [13:36] digitalspaghetti: yea, 1337 [13:37] mape: the port is open and whatnot? [13:37] digitalspaghetti: should be at http://cobolwarz.ifies.org:1337/ [13:37] digitalspaghetti: yesm opened it on my router [13:39] mape: Well that is the websocket port [13:39] digitalspaghetti: http://pastebin.com/a8c6F3W7 is my config [13:39] digitalspaghetti: and i changed the jquery file too to point to it [13:39] digitalspaghetti: the bot goes in the channel [13:40] mape: well you need to host the frontend stuff [13:40] digitalspaghetti: although i do keep seeing Failed update, digitalspaghetti lacks coordinates. [13:40] mape: the port is only the websocket [13:40] digitalspaghetti: ahh gotcha [13:40] digitalspaghetti: so i need to have a webserver point to the /public dir [13:40] mape: yeah [13:41] digitalspaghetti: do'h [13:41] _announcer: Twitter: "@jdub Why have you separated Denby into a nodejs backend with a frontend? Why not call the streaming API directly from the frontend?" -- Jeremy Visser. http://twitter.com/jeremyvisser/status/21231411118 [13:48] kriszyp has joined the channel [14:04] ollie has joined the channel [14:08] digitalspaghetti: mape: what is this vietmap.info in the wargame file? [14:08] digitalspaghetti: it seems to be broken [14:08] mape: vietmap? [14:09] digitalspaghetti: line 92 http://github.com/mape/node-wargames/blob/master/lib/wargames.js [14:09] digitalspaghetti: looks like some sort of geoip resolver? [14:09] mape: is empty [14:09] mape: oh yeah [14:10] mape: that is a service that does geo ip location [14:10] mape: you can roll your own if you want to [14:10] digitalspaghetti: seems to be broken :( yea, i think there is another one i can use if i can remember the name of it [14:17] ryankshaw has joined the channel [14:25] jetienne has joined the channel [14:25] mu-hannibal has joined the channel [14:29] jamescarr has joined the channel [14:29] jamescarr: hey... [14:29] jamescarr: did something happen with npm? when i try to publish, it never finishes :( [14:29] jamescarr: vim package.json [14:30] jamescarr: oops [14:33] hansek has joined the channel [14:33] mape: big package? [14:36] ajsie has joined the channel [14:36] ajsie has left the channel [14:38] jamescarr: mape, not really [14:39] mape: hmm k [14:39] digitalspaghetti: gahhhhh.. turns out for some reason the IRC network I am on trying to run wargames, you can resolve the hostnames for some reason :/ [14:39] mape: cloaked? [14:40] digitalspaghetti: must be, at least part of them [14:40] digitalspaghetti: zyb-d6fa64b9.cable.virginmedia.com vs cpc1-sgyl30-2-0-cust599.sgyl.cable.virginmedia.com [14:40] jamescarr: just http://github.com/jamescarr/paynode [14:40] digitalspaghetti: the second one (on freenode) is resolvable, the first one isn't :( [14:41] jamescarr: fuck [14:42] jamescarr: I wish this goddamn thing would just publish! [14:43] jamescarr: is there some manual interface? [14:43] mape: don't think so [14:44] jamescarr: am I doing something wrong that I have just forgotten? [14:44] mape: npm publish in the dir [14:44] jamescarr: I thought as long as you had "npm adduser" all you needed to do was npm publish . [14:46] jamescarr: the size of the tarball is only 14729 [14:48] bsstoner has joined the channel [14:50] drudge: jamescarr: any plans to implement refunding for paypal apis [14:52] javajunky has joined the channel [14:52] Throlkim_ has joined the channel [14:53] slif has joined the channel [14:54] slif: Hey guys, I'm working on wrapping my head around how connection pooling is possible in node [14:56] slif has left the channel [14:56] jetienne: any textile guru ? i got a textile file and i would like to insert an bunch of html+js in the page. this html+js MUST NOT be processed by textile, how can i do that ? [14:57] rslifka has joined the channel [14:58] rslifka: I'm working on understanding how connection pooling is possible in node [14:58] rslifka: With a thread-based system, i can sleep on of my workers to test the pool. Is there a similar operation in node? [14:59] jetienne: rslifka: i think somebody provided that for http client recently. like last week [14:59] jetienne: check mailing list [14:59] digitalspaghetti: i should really get on the mailing list [14:59] digitalspaghetti: oh wait, i am just have it set to no mail [15:00] rslifka: I had a look at the generic pool and http subclass inside of couchdb's driver, it seemed pretty straightforward [15:00] rslifka: So given that i have a pool, how do i get it to use more than one connection, so i know its working :) [15:01] rslifka: Jetienne: someone provided a mechanism to test pooling? [15:02] jetienne: http://groups.google.com/group/nodejs/browse_thread/thread/ee6cb269d34c82a0/22b5481a7551a268?#22b5481a7551a268 [15:02] jetienne: this is what i remembered. i havent tested it [15:02] rslifka: Thanks, having a look now! Darn iPad with no multitasking... Brb [15:03] femtoo has joined the channel [15:03] siculars has joined the channel [15:03] dylang has joined the channel [15:03] jetienne: :) [15:04] jetienne: ipad is multitask only for webapps :) [15:07] rslifka: Hmm... That's more code to have a look at. Too bad Kris left, was going to ask when connection pooling would be available in the mongodb native driver (since that's where we need it) [15:08] shimondoodkin has joined the channel [15:09] MattJ has joined the channel [15:09] _announcer: Twitter: ""i wonder what node.js would look like in lisp" "however you wanted" "brackety!"" -- Sam Elliott. http://twitter.com/Lenary/status/21237340733 [15:11] rslifka: jetienne: My question is a little bit higher level - is there a way to simulate a callback taking a long time to fire? [15:12] jetienne: rslifka: sure insert a callback with the setTimeout in it [15:13] rslifka: How about when you're using an API? [15:13] rslifka: E.g. Using the mongo driver, I'd like it's db.open event to take a few seconds to be called back [15:13] rslifka: (forgive my abuse of phrasing and terminology :) [15:15] shimondoodkin: maybe somebody has a clue, the events of post does not work and i get a request timeout, http://gist.github.com/525584#L130 [15:15] jetienne: rslifka: sorry no time to give the details. this is fairly simple js tho, and independant of nodejs itself. you can try #javascript [15:16] rslifka: Oh, I'm familiar with settimeout, just curious how that would work with node given it's single-threaded nature although if that's the same threading model as js the I see what you're saying [15:16] rslifka: Then* [15:17] _announcer: Twitter: "lisp.js: a Lisp for node.js (via HN): http://lisp-js.posterous.com/lispjs-a-lisp-for-nodejs-0" -- Jawher Moussa. http://twitter.com/jawher/status/21237914531 [15:17] jetienne: rslifka: nodejs is single threaded but a webpage is single threaded too. setTimeout is the same [15:18] evlapix has joined the channel [15:18] rslifka: Yep, makes sense. Not sure why that didn't occur to me :). Thanks jet! [15:19] jetienne: np [15:20] javajunky has joined the channel [15:20] evlapix: Hey guys, just getting started with Node. Found myself need a package manager and was wondering if there a consensus on which use? [15:21] MattJ: npm I think [15:22] maushu: npm [15:22] evlapix: Thanks MattJ. Any words on SeedJS? [15:23] MattJ: evlapix: None :) [15:23] MattJ: Never used it [15:25] tango3 has joined the channel [15:26] evlapix: Simple enough. Thanks. [15:30] jamescarr: drudge, yes [15:30] drudge: cool [15:30] drudge: jamescarr_: 2checkout uses authorize.net api as well iirc [15:31] digitalspaghetti: oh someone just released lisp for node.js :D [15:31] jamescarr: drudge, in fact, i plan to implement all nof it [15:31] cardona507: this node-websocket-server is too cool http://github.com/miksago/node-websocket-server [15:31] micheil: it is cool. [15:31] micheil: ask me if you need any help with it; I'm the developer [15:32] bryanl has joined the channel [15:32] _announcer: Twitter: "Introducing lisp.js: a Lisp for node.js http://dlvr.it/3qP0H" -- Tech & Friki Stuff. http://twitter.com/FrikiFeeds/status/21238996105 [15:33] ashleydev has joined the channel [15:33] jochen: Failed to parse JSON {"a" : []} [15:33] jochen: SyntaxError: Unexpected token ILLEGAL [15:33] jochen: what's up with that? :P [15:33] cardona507: micheil: great to know - I am thinking of using it somehow in my presentation today at google :) Thanks [15:33] _announcer: Twitter: "miksago's node-websocket-server at master - GitHub "A WebSocket server written in low-level node.js, should be 9 http://j.mp/9g32u2 #twittaw" -- YungSang. http://twitter.com/yungsang/status/21239099957 [15:33] micheil: okay, that'd be pretty awesome. [15:34] cardona507: I'll mention you and post a link to your github [15:34] micheil: is this a google tech talk? [15:34] cardona507: nope - this weekend is a 3 day HTML5 hackathon - I am doing real time analytics with websockets and node - [15:34] micheil: ah, nice [15:36] _announcer: Twitter: "Another #Denby video, with some thoughts about the web as rapid devel platform. http://is.gd/eiOEb (OGV, 22MB) #nodejs #html5 #gnome" -- Jeff Waugh. http://twitter.com/jdub/status/21239327126 [15:38] tango3 has joined the channel [15:38] jochen: anyone got an idea why this would fail? => Failed to parse JSON {"a" : []} [15:38] _announcer: Twitter: "@kallepersson That's node.js javascript, not for browsers. AFAIK browsers don't have datagram support yet ;)" -- Rasmus Andersson. http://twitter.com/rsms/status/21239473026 [15:39] jamescarr: argh... I wish I could figure out why npm refuses to publish on either machine [15:39] c4milo has joined the channel [15:41] micheil: jochen: [15:41] micheil: node> JSON.parse('{"a" : []}'); [15:41] micheil: { a: [] } [15:41] micheil: works for me. [15:41] jdub: cardona507: very cool... also see socket.io, which uses it [15:41] jochen: hmm weird [15:42] Neil__ has joined the channel [15:42] jdub: cardona507: socket.io gives you a lovely wrapper around ws, xhr, flashsocket on the server end (it's very nodey) *and* a lovely js client :-) [15:43] joeshaw: jdub: hey duder. :) [15:45] joeshaw: my only issue with socket.io is that you can't optionally choose which protocols you want to support [15:46] jdub: yeah you can [15:46] joeshaw: well, to clarify [15:46] joeshaw: you can choose which ones you want to support, but you can't not import them [15:46] jdub: joeshaw: oh, concerned about client code size? [15:46] jdub: hi btw :-) [15:47] joeshaw: yeah, and i think there was some dependency there i didn't want? [15:47] joeshaw: or maybe i didn't want to run a flashsocket server because that would require root [15:47] joeshaw: it's been a few weeks since i last tried, so i can't remember exactly now [15:47] micheil: the flashsocket is actually using the websocket server, iirc. [15:47] jdub: yeah, if you run nodejs+socket.io without root, it can't listen on flashsocket [15:47] s1mn has joined the channel [15:47] joeshaw: i really only wanted websocket support anyway, so i went with a different piece of code [15:48] micheil: which piece, if I could ask? [15:48] joeshaw: node-websocket-server [15:48] micheil: ah, cool [15:48] micheil: anything you find difficult about using it? [15:48] jdub: which is what socket.io uses for ws anyway :-) [15:48] joeshaw: heh [15:48] micheil: jdub: does socket.io now use it? [15:49] joeshaw: micheil: nope, it was a piece of cake [15:49] _announcer: Twitter: "node.js not magic, JSP (A bridge between JavaScript and Perl languages) more exciting than this" [zh-TW] -- 愛慕MSN機器人. http://twitter.com/msnrobot/status/21240218783 [15:49] micheil: joeshaw: okay, that's good [15:49] jdub: oh! [15:49] jdub: it must not [15:49] micheil: jdub: k.. :) [15:50] jdub: ah, i must've seen node-websocket-client and read it wrongly :) [15:50] joeshaw: micheil: it's very similar in API to the standard http server [15:50] micheil: heh, node-websocket-client is an awesome piece of code [15:50] micheil: joeshaw: that was the original goal, along with being up-to-date and up to spec with the protocol [15:50] jdub: micheil: does -server do the httup upgrade for you? [15:51] micheil: hmm? [15:51] micheil: i'm not sure what you mean. [15:51] joeshaw: micheil: the other nice thing is that you can pass an existing http server to the websocket constructor and have the protocol upgrade Just Work [15:51] joeshaw: oh, heh [15:51] micheil: joeshaw: that's actually changing in the next version, as the current api for that is rather dirty [15:51] jdub: ^ as joeshaw said :) [15:51] micheil: it'll soon be an option [15:51] joeshaw: micheil: oh, are you the author? :) [15:51] micheil: yes [15:51] joeshaw: hah [15:52] joeshaw: well done then [15:52] micheil: so, rather then doing: ws.createServer({}, httpServer), it'll be: ws.createServer({server: httpServer}); [15:52] joeshaw: jdub: right now i do it like this: this.server = ws.createServer({}, http.createServer()); [15:52] _announcer: Twitter: "node.js me about what all this resource-consuming? A fool? Die? The stink or my code? ?" [ja] -- ishikawan(22). http://twitter.com/scraperonce/status/21240479848 [15:53] jochen: micheil: I found the JSON.parse problem… there was a \0 in the string :) [15:53] micheil: ah. [15:53] micheil: yeah, illegal character for JSON [15:53] joeshaw: and possibly trouble-causing on WS? [15:53] micheil: possibly remove them with: str.replace("\0", "") [15:53] daleharvey has joined the channel [15:53] micheil: shouldn't hurt websockets. [15:53] jochen: yep that's what I did, thx :) [15:53] jdub: micheil: that's what i meant about upgrade. great that it does it. i wonder if socket.io could shift over... [15:54] micheil: I hate it when you know stuff but can't say it. [15:54] joeshaw: jdub: yeah, works great. i serve static files off of my http server that i also use for WS [15:54] jdub: joeshaw: i am doing something very dirty with denby atm [15:55] micheil: y'know, there was a little point in time where they didn't want that in websockets, but we argued and got it left in? [15:55] jdub: joeshaw: http -> nginx -> php (manages oauth with twitter, passes access_token via js) [15:56] jdub: then the client connects to ws and gives it the access_tokens :)) [15:56] micheil: I think there's actually an oAuth lib for node, isn't there? [15:56] jdub: micheil: they all appear to be... "fresh"? :-) [15:56] micheil: jdub: the next version of node-websocket-server should help you too, as each connection will have an (optional) data storage area [15:57] aho has joined the channel [15:57] s1mn has left the channel [15:57] joeshaw: jdub: is this to work around the oauthpocalypse and open source stuff? [15:58] _announcer: Twitter: "Understanding node.js » Debuggable Ltd http://goo.gl/fb/Mhrei #nod" -- Delicious Over 50. http://twitter.com/readelicious/status/21240888069 [15:58] jdub: joeshaw: the evil above? no [15:58] joeshaw: oh, ok [15:59] joeshaw: the litl does some similar evil for oauth to facebook, iirc [15:59] jdub: joeshaw: for the mo, nodejs is really just doing the twitter api plumbing [15:59] jdub: later i'll mash the necessary html bits into it [16:00] _announcer: Twitter: "http://bit.ly/cmwU5V ◊ Emitting Events with Node.js #node" -- François-G. Ribreau. http://twitter.com/FGRibreau/status/21241008251 [16:00] jdub: micheil: i suppose socket.io does a similar thing... you just store stuff in your client closure or on the instance [16:00] jamescarr: doh doh doh [16:00] jamescarr: is there a debug mode to see why this npm publish keeps failing? [16:00] zapnap has joined the channel [16:00] jdub: micheil: i'm a little bummed now that socket.io doesn't use n-ws-server tho :| [16:02] micheil: which means you can then store data with the connection and not have to worry about cleaning it up [16:02] micheil: jdub: ask the author about that. [16:03] maushu has joined the channel [16:04] joeshaw: micheil: like, an API for that? i find JS's ability to just set it on objects makes that sort of thing much less necessary [16:04] nrstott has joined the channel [16:04] joeshaw: maybe i don't tally understand though [16:04] micheil: joeshaw: well, there is an api I'm adding for it, just something simple, inspired by redis [16:05] jdub: micheil: i think i will... much nicer to be sharing this code [16:05] micheil: http://gist.github.com/525632 [16:05] micheil: that's the data store that will come with node-websocket-server [16:05] micheil: of course, if you want to use something else, you can easily, just set the storage option to something different [16:06] micheil: rather, datastore option [16:06] karboh has joined the channel [16:06] joeshaw: ah, ok [16:06] jdub: 16 Aug 01:07:45 - DENBY IS LISTENING [16:06] jdub: 16 Aug 01:08:06 - HELLO DENBY [16:06] jdub: 16 Aug 01:08:08 - DENBY WELCOMES jdub [16:06] joeshaw: so more an API for data structures themselves [16:06] jdub: ^ i love node :-) [16:07] micheil: although, I think I need to work out a slightly better api for the datastores [16:07] micheil: currently it's just an object, function or boolean (turns the storage off) [16:07] micheil: joeshaw: the reason for it, is that it gets cleaned up by the GC when the connection get's removed [16:08] micheil: currently it's unreleased, iirc. [16:12] polotek has joined the channel [16:15] jamescarr: good gried [16:15] jamescarr: is it just me!? [16:15] jamescarr: can anyone else publish to npm? [16:15] micheil: jamescarr: maybe ask isaac to fix your account if it's borked [16:17] jamescarr: does that happen? [16:17] _announcer: Twitter: "And now use the JavaScript backend is cool. # Nodejs" [gl] -- Gustavo Mandolesi. http://twitter.com/ghmandolesi/status/21242269568 [16:18] micheil: occassionally [16:18] micheil: especially if you forget your password [16:19] _announcer: Twitter: "Going to have to pull my NodeKO team because of a scheduling conflict. :-( Still got an awesome Nodejs project that I'm gonna work on though" -- Travis Swicegood. http://twitter.com/tswicegood/status/21242385906 [16:19] jamescarr: I'll just create a new account then [16:20] _announcer: Twitter: "Lisp on Node using JS.Class http://j.mp/b5rxAh" -- James Coglan. http://twitter.com/jcoglan/status/21242424952 [16:20] micheil: jamescarr: no, talk to isaacs. [16:21] micheil: he doesn't tend to eat people, and he's not too hard to contact. [16:23] jamescarr: yeah, I'll contact him. Somethings up... I can publish other packages [16:24] cardona507: jochen: sorry for the delayed response - I was away from my computer - I will check out socket.io also [16:25] jamescarr: had to add --registry http://registry.npmjs.org/ [16:27] jamescarr: awesome [16:28] jwcooper has joined the channel [16:30] micheil: what was that preso: the difference between nginx and apache, explained with bunnies? [16:31] micheil: http://www.slideshare.net/simon/evented-io-based-web-servers-explained-using-bunnies [16:31] micheil: found it. [16:36] javajunky has joined the channel [16:36] confoocious has joined the channel [16:39] ashleydev has joined the channel [16:41] jamescarr: drudge, actually, the refund transaction part of payflow pro in paynode probably already works [16:41] jamescarr: I just have not tested it, meaning the method isn't publicly exposed yet [16:41] ceej has joined the channel [16:43] polotek: is there a function to get all properties of an object including traversing up the proto chain? [16:44] micheil: I don't think so [16:44] polotek: Object.keys and Object.getPropertyNames don't traverse [16:44] micheil: for(in) [16:44] micheil: perhaps? [16:46] c4milo: yep, for in in yourObject -> yourObj[] [16:46] c4milo: sorry yourObj[in] [16:47] polotek: yeah I know I can write one real quick [16:47] c4milo: what about sys.inspect ? [16:47] polotek: just trying to avoid it [16:47] polotek: there is a function in the v8 api that will do it [16:47] polotek: I think [16:47] _announcer: Twitter: "libevent node.js is not what did I'll libev." [ja] -- utatane. http://twitter.com/Constellation/status/21244198861 [16:47] polotek: might be nice to surface it [16:50] c4milo: /** [16:50] c4milo: * Returns an array containing the names of the enumerable properties [16:50] c4milo: * of this object, including properties from prototype objects. The [16:50] c4milo: * array returned by this method contains the same values as would [16:50] c4milo: * be enumerated by a for-in statement over this object. [16:50] c4milo: */ [16:50] c4milo: V8EXPORT Local GetPropertyNames(); [16:51] marshall_law has joined the channel [16:51] polotek: yep [16:51] blogometer has joined the channel [16:51] c4milo: why don't work for you ? [16:51] blogometer: http://wiki.github.com/ry/node/windows-port-mingw [16:52] polotek: c4milo: it does. but it's not surfaced in js [16:52] _announcer: Twitter: "Evented I/O based web servers, explained using bunnies ... http://slidesha.re/8AnlcF #nodejs #apache #threadcocks" -- Jeff Waugh. http://twitter.com/jdub/status/21244474429 [16:53] _announcer: Twitter: "From @nodejs google group: 'If I appear arrogant, it's because I'm French :p' #stereotypes" -- Keegan Watkins. http://twitter.com/keeganwatkins/status/21244592228 [16:54] c4milo: polotek: yeah, true [16:55] zapnap has joined the channel [16:55] jakehow has joined the channel [16:58] robotarmy has joined the channel [16:58] polotek: http://gist.github.com/525692 [17:04] _announcer: Twitter: "Seems certain people in the ruby community has identified node.js as a threat and is now doing the typical (cont) http://tl.gd/35ch26" -- Sveinung Røsaker. http://twitter.com/sveisvei/status/21245304529 [17:05] mape: New kid on the block [17:05] blogometer: Node.js is a game changer. [17:05] blogometer: ACTION Newbie here. [17:05] jdub: it's a game changer. it changes games. [17:05] blogometer: 5 MB on OS X. [17:06] blogometer: And does 80% of what any scripting language is supposed to do. [17:07] _announcer: Twitter: "Finally got some sort of a VPS-compatible node.js + nginx contrapation running(?)." -- p6. http://twitter.com/p6/status/21245461344 [17:07] blogometer: You are all pretty steeped in it, and every one of you it too modest, but you can afford to be modest when you're so insanely productive. [17:07] blogometer: I want my official fanboy decoder ring! [17:07] blogometer: Anyhoo... [17:08] blogometer: I created a page that has a to do list for a Windows port. [17:08] blogometer: You're feedback is welcome. [17:08] blogometer: http://wiki.github.com/ry/node/windows-port-mingw [17:08] mape: blogometer: hehe yeah I saw that on the github dashboard :P [17:09] blogometer: I would be an eager first follower of the person who wanted to lead this project. [17:09] micheil: blogometer: modesty is a bit of an art. [17:10] blogometer: michell: Node.js is the part of Ruby on Rails you actually need, for 5MB. [17:10] micheil: wrong. [17:11] _announcer: Twitter: "have been trying to dream up a node.js toy app that I can implement with CoffeeScript" -- Mike Mondragon. http://twitter.com/monde/status/21245734405 [17:11] micheil: node.js is more like nginx or apache as far as function, compared to rails or django [17:11] micheil: each has their respective places [17:12] jwcooper: geddy would be a better rails comparison...same for express vs. sinatra [17:12] jetienne: node.js is like ruby/python/php [17:12] blogometer: Meh. Routing and templates are easy enough to add. I prefer starting with nothing and building out. [17:13] c4milo: polotek: nice code [17:13] javajunky: blogometer: thats fine when you're on your own, but pre-existing conventions can be handy [17:13] javajunky: sinatra on connect is almost as close to the metal as I like to be.. [17:13] javajunky: sry express on connect 'freudian' [17:14] micheil: I think node.js should seriously be the new word for the backend, just like html5 is for the frontend >_> [17:14] blogometer: Node.js network support and event orientation are a real head start. [17:15] stride: micheil: IE6 doesn't understand what you just said [17:15] blogometer: micheil: Yes. I see a class of applications that is no longer generating pages. [17:15] polotek: c4milo: thanks, it's working out [17:15] micheil: stride: IE6 can, but I don't really give a toss on IE6 now on personal projects [17:15] davidwalsh has joined the channel [17:15] tyfighter has joined the channel [17:16] stride: micheil: :) [17:16] micheil: html5shiv ftw. [17:17] blogometer: Node.js is disruptive. Ruby on Rails was necessary to tame the J2EE insanity. At this point though, RoR is starting to look to some, such as myself, like a fat beastie. [17:17] blogometer: Anyhoo... [17:17] SubStack: it was necessary? [17:18] blogometer: SubStack: Ruby on Rails simplified web development with convention over configuration. [17:18] SubStack: I disagree [17:18] SubStack: rails is very complex [17:19] SubStack: and this complexity is not well hidden by this "convention over configuration" philosophy [17:19] blogometer: SubStack: I agree. It is very complex, still. It was part of the walk back from the website as an Enterprise System. [17:19] jwcooper: completely agree with SubStack [17:19] c4milo: SubStack: agree, I prefer sinatra [17:19] SubStack: especially not when you run a script that dumps a bunch of generated code into your directory tree [17:20] blogometer: I much prefer to start a Node.js project with a single function and work from there. [17:20] polotek: SubStack: Rails is complex only when you expect to know what it's doing [17:20] SubStack: I do like how sinatra doesn't try to overreach and just focuses on doing one thing well in the unix tradition [17:20] polotek: if you're prepared to accept the convention, it's pretty easy [17:20] blogometer: polotek: True dat. [17:21] c4milo: Simplicity is the ultimate sophistication - Davinci [17:21] SubStack: polotek: it is fundamentally complex to start a rails project [17:21] SubStack: as blogometer implies, you can't just start with a function and build up with rails [17:21] blogometer: c4milo: Word. [17:21] polotek: SubStack: no you can't. but that doesn't mean much [17:22] SubStack: There are too many entry points into the computation for that. Lots of ancillary state needs to be setup. [17:22] c4milo: actually I used to prefer merb over rails [17:22] polotek: developers are supposed to figure stuff out [17:22] polotek: some stuff is simple [17:22] blogometer: Actually, we're going to move to a UNIX model of network programming. [17:22] polotek: some isn't [17:22] blogometer: With a bunch of small, sharp services implemented by the likes of Node.js. [17:22] blogometer: And assembled in HTML 5. [17:22] stride: polotek: wasn't that exactly why it became popular over the classic j2ee stack with spring, hibernate, etc.? [17:23] polotek: you can get started with rails pretty easily by following some tutorials [17:23] polotek: you just won't really have a clue what's doing and why [17:23] c4milo: rails is simple if you compare it with jee stack [17:23] blogometer: polotek: Yes. You can build the blog in 10 minutes. [17:23] polotek: don't get me wrong. I'm not defending rails [17:23] c4milo: for serious projects rails is a pain [17:23] SubStack: polotek: fundamental complexity is orthogonal to the ease of getting started with good documentation [17:23] polotek: I'm just saying it also does what it does well [17:23] polotek: which is hide complex machinery behind a magic wall [17:23] blogometer: But, then, unless you want to build another blog in another 10 minutes... [17:24] polotek: SubStack: I agree. Maybe we're talking about different things [17:24] blogometer: RoR curbed the J2EE insanity. [17:25] TobiasFar has joined the channel [17:25] SubStack: polotek: oh I see what you were saying there, I misread [17:25] shreekavi has joined the channel [17:25] blogometer: Node.js is well budgeted for complexity. [17:25] scoates: The only people who ever thought J2EE was a good idea was Java developers and their managers. [17:26] scoates: *were [17:26] blogometer: As a total noob, I can read and comprehend the operation of Node.js key-value store (nStore) in about an hour. [17:26] stride: "were"? it's still a pretty standard approach for most larger enterprises here in germany [17:26] smtlaissezfaire has joined the channel [17:26] SubStack: one big problem I have with the convention over configuration idea is that it tends to encourage tight coupling of components [17:27] c4milo: rails isn't component oriented and You always stick your business logic with the rails models. I prefer an agnostic framework like merb. I don't look at rails 3 yet but I hope it becomes more component oriented and agnostic [17:27] c4milo: I mean, the rails convention sugests stick it [17:27] bronson has joined the channel [17:28] c4milo: s/component oriented/ ddd/i [17:30] c4milo: I really dream with to have my business isolated from infraestructure code. If I have to make a desktop version I just write the infraestructure code related with the same for a mobile version [17:30] c4milo: don't pay attention, I'm drunk [17:31] blogometer: Anyway, I'm a total fanboy today. [17:31] blogometer: Visions of sugar plums dance through my head. [17:32] polotek: ugh, I hate when modules wrap objects and hide the functionality there [17:33] c4milo: polotek: ? mixins ? [17:33] paulwe has joined the channel [17:33] polotek: I'm using this node-sizzle module [17:34] polotek: http://github.com/dachev/node-sizzle.git [17:34] SubStack: I like how haskell does built-in functions and typeclasses with the prelude [17:34] polotek: it uses libxmljs to provide a browser-like dom and allow css selectors [17:34] polotek: which is nice [17:34] polotek: but the elements it gives you back are NOT standard libxmljs elements [17:34] polotek: they are neutered [17:34] SubStack: you can import your own prelude if you want, but the standard one is there by default [17:34] polotek: lame [17:35] streampunk has joined the channel [17:36] c4milo: polotek: // This is just a set of hacks to provide the absolute minimum DOM implementation required by sizzle. [17:36] c4milo: he already said that hahha [17:37] jamescarr: man I hate javascript when it comes to simple float math [17:37] polotek: c4milo: that's not point [17:37] polotek: he created his own element implementation [17:37] c4milo: no, yeah, I understand what you said [17:37] polotek: instead of just extending the ones that were there [17:37] jamescarr: 12..70+1.36 == 14.059999999999 [17:37] polotek: that's not the minimum required [17:37] polotek: because he rewrote functions there were already available [17:38] c4milo: yes I noticed that [17:38] blogometer: Is there any sort of coverage tool for V8 Javascript? [17:40] c4milo: anybody knows a css compressor written with javascript ? [17:40] wllm has joined the channel [17:41] micheil: no, but with some regex it shouldn't be too hard [17:41] micheil: depends how far you want to go. [17:41] c4milo: as far as I can hehe [17:42] polotek: script.replace(/\s*/, ''); [17:42] polotek: that's pretty far [17:43] polotek: this is no good [17:43] polotek: gonna have to use xpath [17:43] polotek: :( [17:43] c4milo: :s [17:43] c4milo: what are you doing ? [17:44] polotek: just writing a script that pulls some content out of some html, writes it to another file [17:44] polotek: thought it was a good excuse to exercise libxmljs and check out node-sizzle [17:44] polotek: I'm not done with that second part :) [17:45] c4milo: libxmljs has a html parser right ? [17:45] polotek: yeah node-sizzle is wrapped around libxmljs [17:45] micheil: xml != html [17:45] micheil: oh boy. it's 3:45 am again. [17:46] c4milo: weird, node-sizzle isn't enought ? [17:47] c4milo: micheil: I know that, but libxml has a html parser module [17:48] micheil: k [17:51] polotek: yeah the html parser in libxmljs is pretty good [17:51] polotek: I haven't fully tested it with all kinds of crappy html [17:52] polotek: but it has never failed on me [17:53] c4milo: http://github.com/yui/yuicompressor/blob/master/src/com/yahoo/platform/yui/compressor/CssCompressor.java [17:54] c4milo: it's pretty short [17:54] siculars has joined the channel [17:54] polotek: c4milo: it'll be even shorter in js :) [17:55] c4milo: polotek: yes ! [17:55] daleharvey has joined the channel [17:55] polotek: actually [17:55] polotek: does the Closure Compressor have a js component? [17:56] c4milo: I don't know, but I don't like js code from google [17:56] polotek: whyzat? [17:56] astrolin has joined the channel [17:57] c4milo: they have a lot of java style [17:57] c4milo: http://www.sitepoint.com/blogs/2009/11/12/google-closure-how-not-to-write-javascript/ [17:58] c4milo: anyways, they were java people writing javascript [17:58] overra has joined the channel [17:59] polotek: c4milo: that's not bad [17:59] polotek: most of the stuff in here isn't a big deal [18:00] c4milo: I prefer to use UglifyJS [18:01] c4milo: maybe it's a mental wall that I have [18:02] c4milo: may be it could be my java repudiation [18:02] c4milo: hehe [18:06] smtlaissezfaire has joined the channel [18:07] cardona507: micheil: I have your websocket-node example up and running - I am wanting to get the 'test message' that gets sent to the server to log in client.html as well. Any suggestions? [18:07] micheil: umm.. [18:07] rwaldron has joined the channel [18:07] javajunky: woot, oauth access + request tokens now being served up by connect-auth itself ;) [18:07] micheil: could you create a gist/pastie of your code? [18:09] cardona507: yep 1sec [18:09] shreekavi has left the channel [18:11] cardona507: the client code http://gist.github.com/525766 [18:12] cardona507: the server code [18:12] cardona507: http://gist.github.com/525768 [18:12] cardona507: the server code is yours [18:12] cardona507: the websocket code in the client is also yours [18:12] mau has joined the channel [18:12] mpoz2 has joined the channel [18:12] cardona507: i am wanting to have a page of buttons - and when the people in the room click the buttons it will dynamically render a canvas chart [18:12] hij1nx has joined the channel [18:12] cardona507: right now I am just trying to figure out how to send info back to the client from the server [18:13] cardona507: I will then plug that info into the rgraph api [18:13] micheil: you can either send to all clients, or send back to just one client [18:13] micheil: conn.send(data) [18:13] micheil: server.send(client_id, data) [18:14] micheil: server.broadcast(data) [18:14] micheil: iirc. [18:14] micheil: (I haven't touched the nws code for about 4 weeks, as I've had to focus on heaps of other things) [18:15] kevm_ has joined the channel [18:16] micheil: cardona507: also, my examples are very dirty code, with extra dev crap [18:16] cardona507: it's still the best example of node and websockets that I have seen around :) [18:17] CIA-77: node: 03Ryan Dahl 07master * r1b589be 10/ TODO : Remove TODO item - http://bit.ly/coSKYW [18:17] CIA-77: node: 03Herbert Vojčík 07master * r361759d 10/ src/node.js : Using Array.isArray for Array testing in findModulePath. - http://bit.ly/cuMhc2 [18:17] CIA-77: node: 03Herbert Vojčík 07master * r13a3bf5 10/ src/node.js : [18:17] CIA-77: node: Clean up findModulePath [18:17] CIA-77: node: Separating "what to traverse" from "how to traverse and what to do with it " [18:17] CIA-77: node: in findModulePath. It may also fix one not-yet-found bug (absolute ids [18:17] CIA-77: node: weren't loaded when dirs.length = 0). - http://bit.ly/9poMlW [18:17] CIA-77: node: 03Herbert Vojčík 07master * rff953dc 10/ src/node.js : Refactor of resolveModulePath to make it clearer. - http://bit.ly/bRJbqF [18:17] _announcer: Twitter: "Node.js is very cool! I hope a windows version comes out soon!" -- Anaz Zubair. http://twitter.com/anazzubair/status/21249799478 [18:18] micheil: wiow. [18:20] bsstoner has joined the channel [18:22] micheil: cardona507: this should do it: http://gist.github.com/525776 [18:22] micheil: then just flesh out the App object [18:22] cardona507: cool thanks [18:22] Yuffster has joined the channel [18:22] micheil: as for the server side, you can drop all the logging stuff too. [18:22] cardona507: yeah [18:23] _announcer: Twitter: "Yesterday was day 1: Built the in-browser game using #canvas. Today, day 2: Made it multiplayer using #nodejs! Will launch soon." -- Rakesh Pai. http://twitter.com/rakesh314/status/21250154725 [18:25] jamescarr: express question...ssl? [18:25] jamescarr: I mean, is there some mechanism to auto redirect to ssl if someone lands on the url via non-ssl? [18:25] digitalspaghetti: does this channel generate some werid unicode or something? [18:26] micheil: http://gist.github.com/525784 [18:26] micheil: nup [18:26] digitalspaghetti: cos i always get weird stuff happening in this channel [18:26] micheil: cardona507: ^^ [18:26] mscdex: digitalspaghetti: like how/where? [18:26] srh has joined the channel [18:26] digitalspaghetti: well for example when i switch between this channel and another, i get the bottom 3 lines of the other channel in here, but not other channels [18:27] digitalspaghetti: and i sometimes see big gaps in this channel at the bottom of the text [18:27] cardona507: micheil: thanks - you rock [18:27] micheil: no worries :) [18:27] digitalspaghetti: digitalspaghetti: If someone posts broken utf8, sometimes it f's up irssi's perception of what screen positions it needs to redraw when switching channels [18:27] micheil: k. I need to hit the hay. gotta be up in less then 3 hours. [18:27] mscdex: digitalspaghetti: sounds like a client problem [18:27] mscdex: digitalspaghetti: oh [18:28] ezmobius has joined the channel [18:28] digitalspaghetti: mscdex: yea, but only in this channel [18:28] srh: either that or i'm writing the same things itc [18:28] mscdex: digitalspaghetti: i've never used irssi before, mostly always xchat [18:28] digitalspaghetti: srh: heh, you are trying to trick me [18:28] digitalspaghetti: also [18:30] Guest65830: Checking for header port.h : not found <- what is port.h? [18:30] tmpvar has joined the channel [18:30] tmpvar: yo yo [18:31] digitalspaghetti: Guest65830: a header file for port handling in unix, but it's not required to build [18:33] jamescarr: ̻̻̗͇̮͈͚̗ͤ̄ͭ̇ͭ͛̽̚Ȋ̵͙̦̲͔̖̳̌͐̇̾̋̔̚̕͞n̵̡̢̺͍̠̜ͥͪv̳̤̈̀̓̔͢͝ô̰̝̂̏̉͟k̽͌̅̎͂͏̶̡̲̜̩̻͍̝i̵̢͖͎͓̲͉̰̟ͮͫ̾͒͛̑̓̿n̢̩͙̓̌̋͛͟͞g̴͓͊̂ ̢͛̈́͝҉̼t̖̭̊ͭ̕͠ḩ̯̳̩̜̠̦̼͓́͒͒̔ę͚̫͎̱̮̘͔͎͆̈́ͭ̈́ ̮̘͉̤̞̓f̯̱͍͙̘͛͑͜e̛̙̤̹͎̹̘̮͌͐̂̆͋͒̈ͪ́ḛ͓̞͈̑̍͊̂͛̊̂l̩͓͎̪̘ͯ̉͛͜͟͡i̫̲̹̭͍̇̿̀̌́n̉̐̆͌ͩ́ [18:33] jamescarr: ̱̖̼̙̘̦͡g͙̗ͫ͆̉̀̐̂̽ͪ̎ ̬̭̫̘͔̻ͣ̃ͤ̊̂͑ͭo̡̞̮̬͉͒ͭfͭ̊ͪ̇̌̀͝҉͓̜͔̬̙ ̵̗̱ͦc̴̗̗̺͙͚̞͖̳ͥ͒͜h̷̜̮̭̬͓͑͆͑́͒̚͜a̰̻̻̅͛̑o̦̭͚̝͚͛̍ͩ̂͆̏ş̸̤̮̽́̽ͮ̈ͬͯ.̹̝̼̖̀ͪ̈̂͑ͭ̽ͮ̄ [18:33] jamescarr: ̭͕̱͈̊ͨ͗̃ͦͦͫ̕͢͟Ẃ͚͎̺̅̂͐̈́͒̒͟ͅi̴̮͓̱̯͂̎̓͛̀t͈̖̝̮ͤͤ̚ẖ͕̤͉͙͕̲̗̭ͥͩ̄ͯ̒̿ͧ ̭̰̱̘͆̄̋ͅͅͅŏ̶̐̌̄̓̂ͧ̊҉̥̦͖̗̰ͅû̵̧̟̣̩̳̝̝͕̝ͯṯ̢͎͙̦̣ͮ̀̚ ̵͍̥̥̐ͥ̊́͋͒̑̓͊͢͠oͤ̑ͩͭ̿̔̂͏̘̲̹͍͝ͅr̢͔̺̺̪͑̑ͫ̍d̛̖͈̒̾̽͂͋͂͠ḙ̴̸̶̯̣͕͓̪ͭͪ̾̏̏ȑ̲̟̬ͯͥ͝.̴̰̻̰͖̞̯̗͊ͥ̀̈ͦͣ̑ͫ̏ [18:33] jamescarr: ̨͚̣̭̪̗̮̙̒̊̋̎̈̔ͨͅT͓̼̜͈̪̖͈͆͌ḩ̵̘̭̙̰͇ͨ̋̓̒̈́ͧę̪̆͊̑ͭ͠ ̢͑͏̮͚̙͈ͅŅ̶̣̟͕̝̮͚̻̼͌̃ȇ̡̖̙̼̺z̬̤͇͋̏̎̀ͬp̪̼̱͖̒ͩ͜e̤͇ͬ̅͑̍̚͠r̶̷͇̝̭̙̲͇͖̽̋̓ͬd͓̮ͮͪͩ͋̂́̒̀i̧̙̣͈̱͋ͭ̈́̓͑ͥ͆̋͜͡a̶͎̥͖̝̠͇ͤ̓̏n̘̬̐̐͟͠ͅ ̸̶̛͚͖̯̗͖ͩ͌ͯ̚h̪̼̻̭̼̀͛̎̒̒ͮͣ̚i̢͈̫̳̳͔̫ͧ͘v͍̖͍̫̜̲̲̱̥̏̈̀e̶̴̸̞̹͙̙̞ͥ͗̾ͪ̏ [18:33] jamescarr: ̘-̩͓̟̱͖͎͔̐̏̀͟m̈́̀ͨ͏̫͖̗ͅi̫̻̬̬ͤ̎ͣͤ͑̒̓̉͞n͙͉̟͇̜̈́̌̿̌͟d̶̨͕̹̻̏̃͒̈ͦ ͋ͣͭͥ̈́̓̔҉̰̯̭̻̙͙ͅo̧̪̜̗̠͎̦̯̘ͤͨͫ͑͗͞f͎̱̱͔͍̬̤̥̠̊̍̐ͤ̆̓̀͗̈͝ ̛̛̪̱͕̙͇̜̪ͦ̉́c̴̛̣̝͔̔̆̋̾̎ͥͤ̂h̶͇̼̝̊ͨ̃̈̓̏̒ȁ͚͉̮̞̀͑͌̑͋̔̐͒o̟͍̖͉̯̻̠̝̟̔̀͌͘s̡̝̣̟͇̼̯̉̓͊ͥ̄͝.̷̟̱͖̥̖͔ͧ̿͐͟͞ ̷ͤͩ͏̞͎̻Z̨̛̻̦̝̲̲͖͓̥̔͜aͣ [18:33] mr_daniel has joined the channel [18:33] jamescarr: ̟̺͖̟̰̟̮̉̀̋̒̓̈́̊l̵̼͎͔̗͚̦ͭ̂g̰̪͓̝̞̾̈͠o̘̬̠͖̮̲͛̆̿͆ͅ.̸̵̹̝̯̮̿̍̊̅̉ͮ̓ ̶͕͐͗͘ [18:33] jamescarr: ͚̓ͨ̂͊͂H̡̛̳͙̾̽̋̍͆͡eͦ̿̂͒҉̶̱̭͝ ̢̮ͮ͊͊ͪ͊͝͞w̺̳̝͚͍̣͊ͯ́͗ͬ͑̋́̕h̤̮͔̃̋ͪ͛̇͡ọ̮͈̣̐ ̫͚͔̲̩̟͔̋͑W͇ͧ̏ͥ͑͑̈́͌͠à͈̫̭̜͖̹ͤͯ͌̏͐̊̄̈̀͘͢i̧̙̫͉ͮ̔͆̎ͣ̄͠t̷̼̖̪͓̲͕ͫ̆ͅs̟͙̈ͣ̀̉̃̊̓̇ͧ͠ ̢̱͍̩́͜͠B̶̡̩͌̉e̊́̒͒ͪ̾͏͎̣͠h̷̺̝̠̜̦̘͚͐͒̉̂̔͐̒̈́ͬ͜i̝̍ͥ̆̅͒͆ͭ͜ņ͔͓̥̥̞̉̄̀͘d̵͈̟̼̝̫̩̺̆̈́ ͥͬͯ̔ͧ̂̏ [18:33] jamescarr: ͩ̃͏̴̢̰̳̮Ţ̗̭̰̤̫͔͎̮ͫ͑̇̌̇ͪ̇͑h̛̝̹͚̱̞̘̲̘͙ͨ͒ͮ̀̐̿ͫ̉́ȅ̯̟̦̫̫͓̓̓͐̄ͅ ̮̖͚̖̓ͩͨͬ͂̅̓ͯͅW̘͙͂ͩ̍̏͛̂a̱̝̲̞͙̖̰͎̎̋ͣͪ̈̋ͧ̔̓l̬̠̓̄͌ͪ̅̚͜l̴̺̪̄̔͊̔̆ͥ̇̊.̰̘̦̫̭̎ͫ̐͌ͨ̏̊ͤͧ̕ [18:33] digitalspaghetti: oh year, i have weird unicode stuff going on in this channel :( [18:33] jamescarr: ̶̛͔̳̏Ż̵̤͎̑̇̿A̷̡̦̼̘͎̍ͥ́͑ͤ͒͆ͅḺ̶̶̙̲̣͌͑̉G̷͙͉̦̺̺ͧ̆̏́͝O̢͉ͤͯ̉!̹̞̹̋̾͂̇́͟ [18:33] digitalspaghetti: i can see it now [18:33] jamescarr: digitalspaghetti, like that? [18:33] tmpvar: /clear [18:33] tmpvar: heh [18:34] jamescarr: ͚̓ͨ̂͊͂H̡̛̳͙̾̽̋̍͆͡eͦ̿̂͒҉̶̱̭͝ ̢̮ͮ͊͊ͪ͊͝͞w̺̳̝͚͍̣͊ͯ́͗ͬ͑̋́̕h̤̮͔̃̋ͪ͛̇͡ọ̮͈̣̐ ̫͚͔̲̩̟͔̋͑W͇ͧ̏ͥ͑͑̈́͌͠à͈̫̭̜͖̹ͤͯ͌̏͐̊̄̈̀͘͢i̧̙̫͉ͮ̔͆̎ͣ̄͠t̷̼̖̪͓̲͕ͫ̆ͅs̟͙̈ͣ̀̉̃̊̓̇ͧ͠ ̢̱͍̩́͜͠B̶̡̩͌̉e̊́̒͒ͪ̾͏͎̣͠h̷̺̝̠̜̦̘͚͐͒̉̂̔͐̒̈́ͬ͜i̝̍ͥ̆̅͒͆ͭ͜ņ͔͓̥̥̞̉̄̀͘d̵͈̟̼̝̫̩̺̆̈́ ͥͬͯ̔ͧ̂̏ [18:34] jamescarr: ͩ̃͏̴̢̰̳̮Ţ̗̭̰̤̫͔͎̮ͫ͑̇̌̇ͪ̇͑h̛̝̹͚̱̞̘̲̘͙ͨ͒ͮ̀̐̿ͫ̉́ȅ̯̟̦̫̫͓̓̓͐̄ͅ ̮̖͚̖̓ͩͨͬ͂̅̓ͯͅW̘͙͂ͩ̍̏͛̂a̱̝̲̞͙̖̰͎̎̋ͣͪ̈̋ͧ̔̓l̬̠̓̄͌ͪ̅̚͜l̴̺̪̄̔͊̔̆ͥ̇̊.̰̘̦̫̭̎ͫ̐͌ͨ̏̊ͤͧ̕ [18:34] mape: /clear and ctrl+l :) [18:34] jamescarr: lololo [18:34] _announcer: Twitter: "Updated node.js to v0.1.104 at www.node.ee and added table listing functionality to remotedb. next logical step to take - simple mongoadmin" -- Andris Reinman. http://twitter.com/andris9/status/21250756565 [18:34] jamescarr: Zalgo! He comes! [18:34] digitalspaghetti: jamescarr: http://i34.tinypic.com/30j4qag.png [18:34] digitalspaghetti: hopfully that'll fix it :D [18:35] mr_daniel: Just downloaded the .tar.gz from 2010.08.13, but I have problems with ./configure. For example it complains that the 'execinfo library' is not available, but this can't be true, because I just build a c-test-snippet with #include and everything works fine. [18:36] jamescarr: ͚̓ͨ̂͊͂H̡̛̳͙̾̽̋̍͆͡eͦ̿̂͒҉̶̱̭͝ ̢̮ͮ͊͊ͪ͊͝͞w̺̳̝͚͍̣͊ͯ́͗ͬ͑̋́̕h̤̮͔̃̋ͪ͛̇͡ọ̮͈̣̐ ̫͚͔̲̩̟͔̋͑W͇ͧ̏ͥ͑͑̈́͌͠à͈̫̭̜͖̹ͤͯ͌̏͐̊̄̈̀͘͢i̧̙̫͉ͮ̔͆̎ͣ̄͠t̷̼̖̪͓̲͕ͫ̆ͅs̟͙̈ͣ̀̉̃̊̓̇ͧ͠ ̢̱͍̩́͜͠B̶̡̩͌̉e̊́̒͒ͪ̾͏͎̣͠h̷̺̝̠̜̦̘͚͐͒̉̂̔͐̒̈́ͬ͜i̝̍ͥ̆̅͒͆ͭ͜ņ͔͓̥̥̞̉̄̀͘d̵͈̟̼̝̫̩̺̆̈́ ͥͬͯ̔ͧ̂̏ [18:36] jamescarr: ͩ̃͏̴̢̰̳̮Ţ̗̭̰̤̫͔͎̮ͫ͑̇̌̇ͪ̇͑h̛̝̹͚̱̞̘̲̘͙ͨ͒ͮ̀̐̿ͫ̉́ȅ̯̟̦̫̫͓̓̓͐̄ͅ ̮̖͚̖̓ͩͨͬ͂̅̓ͯͅW̘͙͂ͩ̍̏͛̂a̱̝̲̞͙̖̰͎̎̋ͣͪ̈̋ͧ̔̓l̬̠̓̄͌ͪ̅̚͜l̴̺̪̄̔͊̔̆ͥ̇̊.̰̘̦̫̭͚̎ͫ̐͌ͨ̏̊ͤͧ̓ͨ̂͊͂̕H̡̛̳͙̾̽̋̍͆͡eͦ̿̂͒҉̶̱̭͝ ̢̮ͮ͊͊ͪ͊͝͞w̺̳̝͚͍̣͊ͯ́͗ͬ͑̋́̕h̤̮͔̃̋ͪ͛̇͡ọ̮͈̣̐ ̫͚͔̲̩̟͔̋͑Wͧ̏ͥ͑͑̈́͌͠ [18:36] jamescarr: ͇à͈̫̭̜͖̹ͤͯ͌̏͐̊̄̈̀͘͢i̧̙̫͉ͮ̔͆̎ͣ̄͠t̷̼̖̪͓̲͕ͫ̆ͅs̟͙̈ͣ̀̉̃̊̓̇ͧ͠ ̢̱͍̩́͜͠B̶̡̩͌̉e̊́̒͒ͪ̾͏͎̣͠h̷̺̝̠̜̦̘͚͐͒̉̂̔͐̒̈́ͬ͜i̝̍ͥ̆̅͒͆ͭ͜ņ͔͓̥̥̞̉̄̀͘d̵͈̟̼̝̫̩̺̆̈́ ͥͬͯ̔ͧ̂̏ͩ̃͏̴̢̰̳̮Ţ̗̭̰̤̫͔͎̮ͫ͑̇̌̇ͪ̇͑h̛̝̹͚̱̞̘̲̘͙ͨ͒ͮ̀̐̿ͫ̉́ȅ̯̟̦̫̫͓̓̓͐̄ͅ ̮̖͚̖̓ͩͨͬ͂̅̓ͯͅW̘͙͂ͩ̍̏͛̂a̎̋ͣͪ [18:36] jamescarr: ̱̝̲̞͙̖̰͎̈̋ͧ̔̓l̬̠̓̄͌ͪ̅̚͜l̴̺̪̄̔͊̔̆ͥ̇̊.̰̘̦̫̭͚̎ͫ̐͌ͨ̏̊ͤͧ̓ͨ̂͊͂̕H̡̛̳͙̾̽̋̍͆͡eͦ̿̂͒҉̶̱̭͝ ̢̮ͮ͊͊ͪ͊͝͞w̺̳̝͚͍̣͊ͯ́͗ͬ͑̋́̕h̤̮͔̃̋ͪ͛̇͡ọ̮͈̣̐ ̫͚͔̲̩̟͔̋͑W͇ͧ̏ͥ͑͑̈́͌͠à͈̫̭̜͖̹ͤͯ͌̏͐̊̄̈̀͘͢i̧̙̫͉ͮ̔͆̎ͣ̄͠t̷̼̖̪͓̲͕ͫ̆ͅs̟͙̈ͣ̀̉̃̊̓̇ͧ͠ ̢̱͍̩́͜͠B̶̡̩͌̉e̊́̒͒ͪ̾͏͎̣͠h͐͒̉̂̔͐ [18:36] jamescarr: ̷̺̝̠̜̦̘͚̒̈́ͬ͜i̝̍ͥ̆̅͒͆ͭ͜ņ͔͓̥̥̞̉̄̀͘d̵͈̟̼̝̫̩̺̆̈́ ͥͬͯ̔ͧ̂̏ͩ̃͏̴̢̰̳̮Ţ̗̭̰̤̫͔͎̮ͫ͑̇̌̇ͪ̇͑h̛̝̹͚̱̞̘̲̘͙ͨ͒ͮ̀̐̿ͫ̉́ȅ̯̟̦̫̫͓̓̓͐̄ͅ ̮̖͚̖̓ͩͨͬ͂̅̓ͯͅW̘͙͂ͩ̍̏͛̂a̱̝̲̞͙̖̰͎̎̋ͣͪ̈̋ͧ̔̓l̬̠̓̄͌ͪ̅̚͜l̴̺̪̄̔͊̔̆ͥ̇̊.̰̘̦̫̭͚̎ͫ̐͌ͨ̏̊ͤͧ̓ͨ̂͊͂̕H̡̛̳͙̾̽̋̍͆͡eͦ̿̂͒҉̶̱̭͝ ̢ͮ͊͊ͪ͊͝͞ [18:36] jamescarr: ̮w̺̳̝͚͍̣͊ͯ́͗ͬ͑̋́̕h̤̮͔̃̋ͪ͛̇͡ọ̮͈̣̐ ̫͚͔̲̩̟͔̋͑W͇ͧ̏ͥ͑͑̈́͌͠à͈̫̭̜͖̹ͤͯ͌̏͐̊̄̈̀͘͢i̧̙̫͉ͮ̔͆̎ͣ̄͠t̷̼̖̪͓̲͕ͫ̆ͅs̟͙̈ͣ̀̉̃̊̓̇ͧ͠ ̢̱͍̩́͜͠B̶̡̩͌̉e̊́̒͒ͪ̾͏͎̣͠h̷̺̝̠̜̦̘͚͐͒̉̂̔͐̒̈́ͬ͜i̝̍ͥ̆̅͒͆ͭ͜ņ͔͓̥̥̞̉̄̀͘d̵͈̟̼̝̫̩̺̆̈́ ͥͬͯ̔ͧ̂̏ͩ̃͏̴̢̰̳̮Ţ̗̭̰̤̫͔͎̮ͫ͑̇̌̇ͪ̇͑hͨ͒ͮ̀̐̿ͫ̉ [18:36] jamescarr: ̛̝̹͚̱̞̘̲̘͙́ȅ̯̟̦̫̫͓̓̓͐̄ͅ ̮̖͚̖̓ͩͨͬ͂̅̓ͯͅW̘͙͂ͩ̍̏͛̂a̱̝̲̞͙̖̰͎̎̋ͣͪ̈̋ͧ̔̓l̬̠̓̄͌ͪ̅̚͜l̴̺̪̄̔͊̔̆ͥ̇̊.̰̘̦̫̭͚̎ͫ̐͌ͨ̏̊ͤͧ̓ͨ̂͊͂̕H̡̛̳͙̾̽̋̍͆͡eͦ̿̂͒҉̶̱̭͝ ̢̮ͮ͊͊ͪ͊͝͞w̺̳̝͚͍̣͊ͯ́͗ͬ͑̋́̕h̤̮͔̃̋ͪ͛̇͡ọ̮͈̣̐ ̫͚͔̲̩̟͔̋͑W͇ͧ̏ͥ͑͑̈́͌͠à͈̫̭̜͖̹ͤͯ͌̏͐̊̄̈̀͘͢i̧̙̫͉ͮ̔͆̎ͣ̄͠t̷ͫ̆ [18:36] tmpvar: mr_daniel, i think thats just a warning [18:36] jamescarr: ̼̖̪͓̲͕ͅs̟͙̈ͣ̀̉̃̊̓̇ͧ͠ ̢̱͍̩́͜͠B̶̡̩͌̉e̊́̒͒ͪ̾͏͎̣͠h̷̺̝̠̜̦̘͚͐͒̉̂̔͐̒̈́ͬ͜i̝̍ͥ̆̅͒͆ͭ͜ņ͔͓̥̥̞̉̄̀͘d̵͈̟̼̝̫̩̺̆̈́ ͥͬͯ̔ͧ̂̏ͩ̃͏̴̢̰̳̮Ţ̗̭̰̤̫͔͎̮ͫ͑̇̌̇ͪ̇͑h̛̝̹͚̱̞̘̲̘͙ͨ͒ͮ̀̐̿ͫ̉́ȅ̯̟̦̫̫͓̓̓͐̄ͅ ̮̖͚̖̓ͩͨͬ͂̅̓ͯͅW̘͙͂ͩ̍̏͛̂a̱̝̲̞͙̖̰͎̎̋ͣͪ̈̋ͧ̔̓l̬̠̓̄͌ͪ̅̚͜l̴̺̪̄̔͊̔̆ͥ̇̊. [18:36] jamescarr: ̰̘̦̫̭͚̎ͫ̐͌ͨ̏̊ͤͧ̓ͨ̂͊͂̕H̡̛̳͙̾̽̋̍͆͡eͦ̿̂͒҉̶̱̭͝ ̢̮ͮ͊͊ͪ͊͝͞w̺̳̝͚͍̣͊ͯ́͗ͬ͑̋́̕h̤̮͔̃̋ͪ͛̇͡ọ̮͈̣̐ ̫͚͔̲̩̟͔̋͑W͇ͧ̏ͥ͑͑̈́͌͠à͈̫̭̜͖̹ͤͯ͌̏͐̊̄̈̀͘͢i̧̙̫͉ͮ̔͆̎ͣ̄͠t̷̼̖̪͓̲͕ͫ̆ͅs̟͙̈ͣ̀̉̃̊̓̇ͧ͠ ̢̱͍̩́͜͠B̶̡̩͌̉e̊́̒͒ͪ̾͏͎̣͠h̷̺̝̠̜̦̘͚͐͒̉̂̔͐̒̈́ͬ͜i̝̍ͥ̆̅͒͆ͭ͜ņ͔͓̥̥̞̉̄̀͘d̆̈́ [18:36] jamescarr: ̵͈̟̼̝̫ [18:36] jamescarr: crap [18:36] jamescarr: sorry guys [18:36] mape: The zalgo stuff was comical for about 5minutes.. [18:36] jamescarr: wierd that that is one line in my client, but when I hit send it is multiple lines [18:37] mr_daniel: tmpvar: not sure if you are right [18:37] mr_daniel: Checking for library execinfo : not found [18:37] digitalspaghetti: what is it your pasting jamescarr ? [18:37] fod has joined the channel [18:37] digitalspaghetti: irssi relly doesn't like it [18:37] jamescarr: digitalspaghetti, yeah [18:37] ryah: mr_daniel: that's not necessarally a problem [18:38] digitalspaghetti: also jamescarr : boom [18:38] ryah: necessarily even [18:40] CrabDude has joined the channel [18:41] digitalspaghetti: oh hey ryah i had a thought yesterday i wanted to run by you :) [18:42] digitalspaghetti: a) Have you thought of having a sprint (http://code.djangoproject.com/wiki/Sprint14Sep) for node.js and b) if not, would you? [18:42] tmpvar: mr_daniel, the summary should tell you if its required [18:42] tmpvar: if it says configure ok, then you're good to make [18:43] mr_daniel: I don't know, 'make' is still running and I'll see in a moment if it works or not, even with the 'not founds' from ./configure [18:43] tmpvar: it wouldnt make if configure failed ;) [18:43] mr_daniel: here is the ./configure output: http://nopaste.info/816d1d7805.html [18:43] mr_daniel: well, ./configure fails :) [18:43] mr_daniel: s/fails/failed [18:43] tmpvar: mr_daniel, no.. its not failing [18:44] tmpvar: 'configure' finished successfully (3.959s) [18:45] mr_daniel: true, didn't read that, the 'AttributeError:' at the end grabbed my whole attention [18:45] mr_daniel: nice, also 'make' finished [18:46] mr_daniel: uff, forget to tell ./configure to use another folder then /usr/... [18:46] mr_daniel: ...well lets start the fun part again :) [18:49] ewdafa has joined the channel [18:50] jashkenas has joined the channel [18:54] tav_ has joined the channel [18:54] mr_daniel: Anyway, the thing that ./configure complains si weird, because it is installed on my system. My knowledge about autotools and ./configure is very limited, but maybe there is a bug in the ./configure script for node.js causing this false 'not found' message [18:55] jashkenas has left the channel [18:55] tmpvar: do you have the dev package installed? [18:55] tmpvar: headers, all that fun stuff [18:56] _announcer: Twitter: "@infininight Less.js works on the serverside or locally with Node.js You can also use it clientside while developing." -- Thomas Aylott. http://twitter.com/SubtleGradient/status/21252037816 [18:57] mr_daniel: well, I guess so [19:00] saikat has joined the channel [19:00] jochen: how do you loop the keys in an object? I thought for (var key in obj) would work... :( [19:01] mape: jochen: Object.keys(yourObject).forEach(function(key){}); [19:01] jochen: thx mape :) [19:02] programble has joined the channel [19:03] polotek: jochen: why didn't for..in work? what did it do? [19:08] micheil: hmm.. http://thechangelog.com/post/958501415/nitrode-a-lightweight-server-on-top-of-nodejs [19:09] smtlaissezfaire has joined the channel [19:09] tmpvar: how did that happen? [19:09] tmpvar: oh [19:09] tmpvar: that makes sense [19:09] _announcer: Twitter: "Nitrode: A lightweight server built on top of Node.js — http://is.gd/ej0Iu (also my first changelog post.)" -- Micheil Smith. http://twitter.com/miksago/status/21252765835 [19:10] geojeff_ has joined the channel [19:11] mikeal has joined the channel [19:12] TangoIII has joined the channel [19:14] _announcer: Twitter: "Nitrode: A lightweight HTTP Server on top of Node.js http://wynn.fm/4w #javascript" -- The Changelog. http://twitter.com/changelogshow/status/21253033116 [19:14] jamescarr_: why do some modules use an index.js? is it a commonjs practice? [19:14] micheil: something like that. [19:16] jashkenas has joined the channel [19:17] _announcer: Twitter: "ITMS: / / itunes.apple.com/us/app/mayorama/id376535867? mt = 8 # # appcelerator nodejs # foursquare" [lv] -- Daniel Luxemburg. http://twitter.com/dluxemburg/status/21253225366 [19:17] jashkenas has left the channel [19:19] polotek: jamescarr_: index.js is the default file to look for with you require a module [19:19] polotek: so require('foo') will either be foo.js, foo.node or foo/index.js [19:22] dylang has joined the channel [19:22] herbySk has joined the channel [19:23] mscdex: or foo/index.node [19:23] mscdex: :p [19:24] ajsie has joined the channel [19:28] ama has joined the channel [19:29] _announcer: Twitter: "thinks that node.js: http://nodejs.org/ could be the future. At least the event driven style it promotes is (see twisted or eventmachine)" -- douglasjsellers. http://twitter.com/douglasjsellers/status/21253887363 [19:29] statim has joined the channel [19:30] ajsie has left the channel [19:30] javajunky: nitrode… another framework 'woot' [19:30] atmos: what do they mean by logic ? [19:30] atmos: config files ? [19:31] statim: "this is a server for those who want the power of something like Nginx, but would prefer to write the logic in JavaScript."… ive got to say i dont understand that since its written in js using the node.js core, hmm [19:32] kriszyp has joined the channel [19:32] digitalspaghetti: i suppose it's from web servers, index.html/.php/.asp is pretty standard for any directory [19:32] digitalspaghetti: so index.js make sense :) [19:33] polotek has left the channel [19:34] _announcer: Twitter: "Just made my node-gif node.js module fully async -- http://bit.ly/bvAkmH -- Also documented AnimatedGif and AsyncAnimatedGif classes. Enjoy!" -- Peteris Krumins. http://twitter.com/pkrumins/status/21254130320 [19:34] statim: anyone see any trends in the ORM category in node.js? thats still the one area i cant figure out how to port stuff to node. [19:37] mape: statim: mongoose? [19:37] mape: Think it is still pretty basic though [19:37] wllm has joined the channel [19:38] statim: mape, ya looks promising. im not sure im buying the whole nosql thing full bore yet though after giving it a pretty good run [19:39] digitalspaghetti: nosql definetly has it's place [19:39] digitalspaghetti: unfortunatly, not for what i am doing in my day job [19:40] digitalspaghetti: but good for stuff like logging, caching and smaller apps like todo lists, micro-blogs, etc [19:40] srh has left the channel [19:41] technoweenie has joined the channel [19:42] statim: it seems like if relational databases just added some features it would make it mostly a non-issue… auto sharding, json datatypes (or nested table defs), and some sql nested accessesors for where's and such. but i dont know what im talking about [19:42] statim: because the rest of sql already does all the stuff mongo has to try and reinvent.. all the conditions etc [19:46] digitalspaghetti: mind you, if nosql added some built in join stuff for PK's over documents, then that would solve a lot of stuff in-between the two [19:46] stride: I really don't get why everybody nowadays thinks SQL is a bad thing [19:46] digitalspaghetti: where you don't need a full relational database [19:48] mscdex: sql 4 lyfe [19:49] Guest65830: I don't know. Schemaless database are cute. [19:49] ph^ has joined the channel [19:49] stride: yeah, true [19:51] amerine has joined the channel [19:51] jakehow has joined the channel [19:55] olalonde has joined the channel [19:56] olalonde: im getting an error with openssl when trying to ./configure nodejs [19:56] olalonde: although i just installed the openssl package [19:57] olalonde: Checking for openssl : not found [19:58] javajunky: and openssl-dev ? [19:58] pengwynn has joined the channel [19:59] maushu: Is there a way to find if a file is the entry point or it was just required? [19:59] ewdafa has joined the channel [20:00] digitalspaghetti: olalonde: install libcurl4-ssl-dev [20:00] digitalspaghetti: might be -openssl- [20:00] olalonde: thanks [20:01] _announcer: Twitter: "my head is spinning ... from php to django to aleph, clojure, node.js, mongodb, orientdb, websockets, express.js netty, nosql, nio.. wow" -- Orangutan Cloud. http://twitter.com/orangutancloud/status/21255653742 [20:02] maushu: digitalspaghetti, huh, isn't that curl? [20:03] digitalspaghetti: maushu: yes, but on ubuntu for some reason it has teh correct dev libs for node to compile, openssl-dev doesn't [20:03] jb55: speak or read [20:03] jb55: oops [20:03] jb55: mt [20:03] olalonde: i also installed libssl-dev in case -_- [20:04] olalonde: ./configure still fails to find some files but unrelated to openssl [20:04] mikeal has joined the channel [20:05] jb55: mt [20:05] olalonde: library execinfo, header port.h, header sys/event.h, function kqueue [20:05] shockie has joined the channel [20:05] digitalspaghetti: mikeal: ignore this, i'm showing someone wargamez :D [20:05] JimBastard has joined the channel [20:05] mikeal: haha [20:06] JimBastard: i heard yall like javascript up in hurr [20:06] JimBastard: i wanna get me some of that [20:09] _announcer: Twitter: "Installing node.js on ubuntu 10.04 http://bit.ly/djA2T1" -- Developer Bookmarks. http://twitter.com/devmarks/status/21256110379 [20:10] streampunk: JimBastard: Oh .. I though js stood for java server. woops. [20:12] JimBastard: is this not the javaservers channel? [20:13] alcuadrado has joined the channel [20:13] streampunk: Has anyone created a sandbox system for node yet? [20:13] JimBastard: jefe? [20:13] JimBastard: streampunk: me and paolo built this slick little patch for Futon last night, we took the document view and replaced it with a SlickGrid [20:14] JimBastard: so you get infinite scroll on document properties now [20:14] streampunk: JimBastard: Screenshot? [20:14] JimBastard: its all on his machine i gotta track him down so we can push and do a screen cast [20:14] streampunk: ACTION is reading http://github.com/fictorial/jefe [20:14] streampunk: Ah. Cool. [20:14] JimBastard: just woke up [20:14] JimBastard: about to coffee bagel and blunt it [20:15] JimBastard: i dove deep into the starcraft 2 map editor rabbit hole at like 5am [20:15] streampunk: JimBastard: Do they have any real scripting? [20:15] streampunk: like Lua stuff? [20:15] JimBastard: maybe [20:15] JimBastard: you can build custom functions aparently [20:15] streampunk: I'd try it out just for that. [20:15] JimBastard: its designed from the top down though [20:15] JimBastard: so by default everything is clickable and pretty well set [20:16] streampunk: Otherwise I'm ready to sit it out given blizzard's current lameness. [20:16] JimBastard: like they defintely encourage you to manually create 10 triggers, instead of building one with a loop [20:16] JimBastard: but i think its possible [20:16] JimBastard: its just not as encouraged as the clicky click stuff [20:16] c4milo has joined the channel [20:16] streampunk: Yeah. event based is better for that stuff. [20:17] JimBastard: i could see people spending 10 hours making pointless triggers instead of build a method with a loop [20:17] streampunk: But if I could somehow build a little event bridge and turn SC into a node.js chat room client... [20:17] JimBastard: i just scratched the surface though [20:17] JimBastard: streampunk: i had that idea weeks ago [20:17] JimBastard: getting real-time data into the sc2 engine [20:17] streampunk: How well does it work? [20:17] JimBastard: ID BE ALL FUCK FUCK YOU HUMMINGINGBIRD [20:17] JimBastard: YOU CANT STOP MY ANALYTICS [20:17] JimBastard: THEY BE A ZERG RUSH [20:17] maushu: Wat. [20:17] streampunk: :P [20:18] JimBastard: yeah i went there [20:18] JimBastard: starcraft 2 zerg rush representing real-time web analytics [20:18] JimBastard: maushuhu [20:18] maushu: Wut. [20:18] streampunk: You must show me this next time in the jail. [20:18] JimBastard: aight [20:19] JimBastard: breakfast time, im hungry like the wolf, brb [20:19] streampunk: JimBastard: How'd the BBQ go? [20:19] JimBastard: streampunk: ohh i didnt tell you [20:19] streampunk: ? I guess not. [20:19] JimBastard: i get kinda ripped and forgot to write down directions or phone numbers [20:19] JimBastard: then got lost in prospect park for 2 hours [20:19] streampunk: lol [20:19] streampunk: heheh. That happens. [20:19] JimBastard: then i crashed some Jamaican / bapist / jesus concert thing [20:19] JimBastard: then i went home defeated [20:20] JimBastard: it kinda sucks having to write an email to your boss saying that you are a retard [20:20] JimBastard: and couldn't find the pinic [20:20] streampunk: I always have my GF lead the way there. She knows the park much better than I do. [20:20] JimBastard: yeah, well its her workplace [20:20] streampunk: Ended up in central park ironically. [20:20] JimBastard: hiyoooooo [20:20] mscdex: http://github.com/marak/maps.js [20:20] streampunk: JimBastard: ... :P [20:21] mscdex: huhu [20:21] JimBastard: mscdex: im soo terrible with direction you have no idea [20:21] JimBastard: i got that absent minded proffesor thing [20:21] JimBastard: ill get on the subway going the wrong way and not figure it out for 30 minutes [20:21] streampunk: JimBastard: I gotta get you a guide dog. [20:21] JimBastard: i use to get lost in everquest soo badly, i could only play a wizard (they since could teleport) [20:21] JimBastard: streampunk: charlie says no [20:22] streampunk: heheh. Isn't he gone? [20:22] JimBastard: i think hes coming back [20:22] streampunk: Not till next week? ;-) [20:22] john___ has joined the channel [20:22] JimBastard: breakfeast nowwwwwwwwwwww [20:22] streampunk: Anyway.. go get some food before you shrivel. [20:23] exlibris has joined the channel [20:23] CIA-77: node: 03Illarionov Oleg 07master * rcde80d9 10/ lib/net.js : Fix OpenSSL 100% CPU usage on error - http://bit.ly/cKC0tf [20:25] john___: Heyo, could anyone help with a couple of noob questions? --- is it possible edit the default modules? eg. http.js - where are they installed in the default setup? [20:25] ryah: john___: they're compiled into the node binary [20:26] mjr_: john___: you can find them in the source in the "lib" dir. If you modify them, you need to recompile. [20:26] tango3 has joined the channel [20:26] john___: Thanks! [20:27] ewdafa has joined the channel [20:29] aliem has joined the channel [20:30] john___: Second question - and the reason I'm hacking around in http.js - it seems that http.ClientRequest.headers concatenates headers with the same key - i'm proxying requests w/ multiple set-cookie headers and these seem to be dropped... are there any 3rd party HTTP libs that provide a more traditional approach to headers with duplicate keys (eg. failing back to an array?) [20:30] hansek has joined the channel [20:32] daleharvey has joined the channel [20:33] blogometer has joined the channel [20:35] mjr_: john___: I can't remember what the latest on that issue is. It has been discussed often on the mailing list. [20:35] mjr_: I think we'd talked about having set-cookie be an array, but I'm not sure if that ever ended up going in. [20:35] JimBastard: DELETE COOKIES!?!?!? [20:36] JimBastard: http://imod.co.za/wp-content/uploads/2008/06/delete-cookies.jpg [20:37] JimBastard: john___: you need proxy? [20:37] JimBastard: http://github.com/nodejitsu/node-http-proxy ? [20:37] _announcer: Twitter: "Working a couple of Geddy issues on GitHub: http://github.com/mde/geddy/issues Anybody have thoughts on catchall routes? #nodejs #node.js" -- Matthew Eernisse. http://twitter.com/mde/status/21257651394 [20:38] saikat has joined the channel [20:38] mattly has joined the channel [20:40] olalonde: im trying to get started with node.js and one thing thats bugging me is always having to restart the server to test the result of my code [20:40] olalonde: is there any way to get around this? [20:41] JimBastard: olalonde: yeah kinda [20:41] mape: no clean way [20:41] JimBastard: i dont get why people hate on that soo much [20:41] john___: JimBastard: node proxy suffers from this exact issue ; ) [20:41] ryah: i'll be adding a clean way in the near future [20:41] JimBastard: i can get node to restart the app on ever request [20:41] JimBastard: every* [20:42] JimBastard: john___: i read up, i see [20:42] ryah: after node knockout :) [20:42] JimBastard: ryah: nyc hq is gonna hold it down [20:42] JimBastard: :-) [20:42] hansek has joined the channel [20:43] JimBastard: show yall west coast motha f*ckas how we hold it down on the east side [20:43] JimBastard: javascript [20:43] ajpiano has joined the channel [20:44] Ponder has joined the channel [20:46] mape: ryah: want to slow people down during the knockout by not implementing it before? ;) [20:47] daleharvey: olalonde: on linux? [20:48] daleharvey: I took a brutal approach with inotify :P http://github.com/daleharvey/dropup/blob/master/start.sh [20:48] digitalspaghetti: After the node knockout, should do a node sprint :D [20:51] JimBastard: does anyone know if tsmith ever idles in here? [20:51] ryah: mape: right :) [20:52] JimBastard: i think we are going to see some mindblowing entries for node knockout [20:52] JimBastard: like some teams are gonna come out of the woodwork and build something amazing [20:53] digitalspaghetti: JimBastard: wish i had the time or a team :( [20:53] jkreeftmeijer has joined the channel [20:53] JimBastard: digitalspaghetti: you can be on my team, team awesome [20:53] JimBastard: unoffically [20:54] JimBastard: just talk mad shit about us being the best [20:54] digitalspaghetti: daleharvey: when is the next royal society of hackers? [20:54] digitalspaghetti: is it the same weekend? [20:54] digitalspaghetti: JimBastard: well if you need someone, although not sure what use i'd be :D [20:54] daleharvey: yeh we are due one of those, ill get sam to see if the venues free for next weekend [20:58] digitalspaghetti: if so i could probably make sure i'm free next weekend and make something awesome to beat JimBastard :p [20:59] JimBastard: you cant beat me [20:59] JimBastard: :-) [21:00] daleharvey: heh we can do our own little local nodeknockout [21:00] JimBastard: node-lovetap ? [21:00] daleharvey: I am still deciding whether to do my chat with node.js or erlang [21:00] JimBastard: daleharvey: really? [21:01] digitalspaghetti: i'm thinking somethign along the lines of useful rather than cool would be in order, contribute to the ecosystem rather than use [21:02] daleharvey: yeh, although I havent really decided wether I am going to support irc in front or behind xmpp yet, and thats kinda more important [21:04] cheriot has joined the channel [21:04] JimBastard: digitalspaghetti: aye, we are doing something useful :-) [21:04] tyfighter has joined the channel [21:05] nerdEd has joined the channel [21:05] daleharvey: I do worry about nodes error handling capabilities though, debugging asynchronous code is not easy, erlang has a very deep root in being debugable / robust which I havent really seen from node [21:06] CrabDude has joined the channel [21:08] skampler: http://github.com/ry/web_ircd [21:08] daleharvey: I mean I only wrote a little 50 line file uploader thing, but I couldnt possibly have a global "if this request crashes, just send a 503" request without threading try catches all the way through my code [21:09] CIA-77: node: 03Ryan Dahl 07master * r4593c04 10/ (4 files in 3 dirs): [21:09] CIA-77: node: Implement net.Server.maxConnections [21:09] CIA-77: node: Simplify EMFILE behavior. - http://bit.ly/9sxbtt [21:10] _CrabDude has joined the channel [21:10] _announcer: Twitter: "Oracle is shutting down OpenSolaris because it's not built on node.js." -- Joe Damato. http://twitter.com/joedamato/status/21259617034 [21:12] JimBastard: lol ^ [21:12] daleharvey: cheers skampler, looks good [21:14] _announcer: Twitter: "lisp.js, a Lisp for node.js vhttp://bit.ly/aELr5O" -- grantmichaels. http://twitter.com/grantmichaels/status/21259836157 [21:16] amerine has joined the channel [21:17] amerine has joined the channel [21:17] rnewson has joined the channel [21:18] rsms has joined the channel [21:18] amerine has joined the channel [21:22] TobiasFar has joined the channel [21:22] _announcer: Twitter: "Nitrode: A lightweight HTTP Server on top of Node.js #javascript http://tumblr.com/xsmfuzkmb" -- Brian Tingle. http://twitter.com/tingletech/status/21260331184 [21:24] _announcer: Twitter: "Sunday program: to write scriptzihnos node.js" [pt] -- Fabricio Zuardi. http://twitter.com/fczuardi/status/21260419030 [21:25] polotek has joined the channel [21:26] polotek: yo, who's here [21:27] polotek: trying to show some people the wargamez thing [21:27] ceej: I'm not [21:27] polotek: thanks ceej [21:27] cardona507: me neither [21:27] _announcer: Twitter: "@s7ephen Don't forget node.js while we're on the subject." -- Postmodern. http://twitter.com/postmodern_mod3/status/21260590491 [21:27] ceej: lol :) [21:27] CIA-77: node: 03Ryan Dahl 07master * rae5d613 10/ wscript : Add --without-snapshot configure option - http://bit.ly/aSiHRP [21:27] JimBastard: polotek: ne buether [21:27] polotek: JimBastard: what up [21:28] polotek: wow, not getting the booms [21:28] digitalspaghetti: polotek: boom [21:28] JimBastard: polotek: ͭ̃̅͒̽ͦͤ̎ͯ̆́͋̂͌̀͐ͦ̿̊̀ͮͦͦ̎̀͗͆̓̊̔ͣͥ̈́̏̀̏͌ͦ̈ͥ̋ͯͭͫ͋̄̾ͭ̓̈̇ͮͥ̔ͯ̔̎͂̑ͨͪ̄͒ͣ͗̿͌̐ͫͯͬ̍̄̅̂̓̄̄͂͒̈͑̓ͧͫͩͮ̔ͭͮ̔ͤͦ̉̒͗̿͂́ͬ̊ͧ̐ͯ͐ͣͩ̔͗ͯ͒͛ͫͭͧ̏̄͒ͨͧͭ̿̉ͮ͂̂ͨ͑̓ͥ̓̓ [21:28] _announcer: Twitter: "Node.js, Asp.Net Mvc 3 (Razor, Code First EF), WAI-ARIA, HTML5, CSS 3, Rails 3, Silverlight 4. Its like 2nd fulltime job just to keep up." -- michael herndon. http://twitter.com/michaelherndon/status/21260672336 [21:28] JimBastard: polotek: must obey ͈͚̦̫͔̥͙̝͔͙̼͙͓̲͔͔̳͚̜͈̰͖̗̮̩̪͈̖̰̞͍͚̘̙̤̗̬̤̣͔͎̫̺̘̠̮͙̲͇̠̗͔͇̳̤̣͚͓̝̰̼̠̩͚̫̗̦̻͔͍͈̤̰̟͔͇̜̖̞͍̭͕̱̹̲̤̙̰̙̼͎̖͎̲̪̳̻̯̝̤̺̻͍͚̻͍̰̦̗̯̱͖̖̗̻̲̺̺̻͉̪̼̳̭͉͈̹̻̫̤̙̮̝ [21:29] digitalspaghetti: it's broken :( [21:29] ncb000gt has joined the channel [21:29] jimmy203 has joined the channel [21:29] polotek: zalgo doesn't like wargamez [21:29] digitalspaghetti: JimBastard: boom [21:29] polotek: JimBastard: you gotta get him under control [21:29] dylang: hello [21:29] digitalspaghetti: oh there we go [21:30] JimBastard: ACTION is possessed  [21:30] polotek: cardona507: you're on the west coast [21:30] digitalspaghetti: polotek: boom [21:30] polotek: cool [21:30] cardona507: polotek: yep [21:30] deepthawtz has joined the channel [21:30] digitalspaghetti: skampler: boom [21:30] cardona507: boom [21:31] _announcer: Twitter: "Do people using Node.js not set cookies? ClientResponse and ServerResponse have non-existant / broken handling multi set-cookie headers..." -- John Boxall. http://twitter.com/johnboxall/status/21260817807 [21:31] digitalspaghetti: cardona507: boom [21:31] cardona507: digitalspaghetti: booM [21:31] digitalspaghetti: hehe :) [21:31] cardona507: polotek: bOoM [21:31] jimmy203: with expressjs you can define if you can set app params 'production' or 'development' I couldn`t figure out how you specify which environment you want to to use? [21:31] JimBastard: BOOM BOOM BOOM [21:31] cardona507: BOOM BOOM [21:32] digitalspaghetti: I want you in my room [21:32] digitalspaghetti: (or however that song goes :( [21:32] digitalspaghetti: ) [21:33] digitalspaghetti: jimmy203: i believe it's an environment variable [21:33] dylang has joined the channel [21:33] polotek: thanks all [21:33] jimmy203: if I connect to node in a browser how do I define to connect to dev or production? [21:34] jimmy203: I couldn`t find much info in the docs [21:35] digitalspaghetti: To alter the environment we can set the CONNECT_ENV environment variable, or more specifically EXPRESS_ENV, for example: [21:35] digitalspaghetti: $ EXPRESS_ENV=production node app.js [21:35] jimmy203: sorry I just saw it.. [21:35] jimmy203: just as you pasted.. :) thanks. [21:35] alcuadrado: hey, the other day somebody told me that mysql driver was still blocking but there was a guy makin a pure node one... can you please tell me with non-blocking databse drivers are available? thanks [21:37] ryah: alcuadrado: http://github.com/felixge/node-mysql [21:39] alcuadrado: yeah, that was... but I though there was a mongo (i think it was mongo) driver that was non-blocking.. [21:42] pheuter has joined the channel [21:42] pheuter: I would like to read a line from stdin, how can i do so? [21:42] deepthawtz: fyi everyone, lot of people at this Google HTML5 hackfest trying to use node for the first time. [21:42] ryah: alcuadrado: i beleive almost all of them are non-blocking... [21:43] _announcer: Twitter: "I'm desperately looking for an excuse to start writing Node.js code. I have a programming language problem..." -- BinaryParadox. http://twitter.com/BinaryParadox/status/21261572256 [21:44] bryanl has joined the channel [21:45] jkreeftmeijer has joined the channel [21:45] pheuter: ? [21:46] mape: deepthawtz: today? [21:47] Gruni has joined the channel [21:50] alcuadrado: thanks for the answer ryah, I'l google it more :p [21:50] deepthawtz: mape: yes today, this afternoon some will present (it'll be on ustream) [21:50] mscdex: pheuter: http://nodejs.org/api.html#process-openstdin-57 [21:51] mape: deepthawtz: ah neat [21:51] pheuter: mscdex: right, but how do i get it to break after a newline? [21:51] mscdex: break? [21:51] mape: quite a bit of judges now on the knockout [21:51] twoism has joined the channel [21:52] mscdex: pheuter: check if the callback argument for the 'data' event has a newline [21:52] mscdex: pheuter: then act appropriately [21:53] mscdex: pheuter: you'll want to create a buffer [21:53] mscdex: pheuter: a string object to append to until you see a newline [21:53] amerine has joined the channel [21:54] pheuter: and when i do, how do i break the stream? break; ? [21:54] zemanel has joined the channel [21:54] mscdex: pheuter: you don't break the stream, but you can remove the listener from within the callback [21:55] mscdex: pheuter: or maybe close stdin completely [21:55] pheuter: oh, ok. Makes sense, I just thought there was an easier way to do so, like process.Openstdin().readln() or something [21:56] mscdex: pheuter: there isn't one in core. but you could easily just do what i said and emit your own "line" event for example [21:57] pheuter: right, k, thanks a lot! [21:57] Aria has joined the channel [21:57] luddep_ has joined the channel [22:00] polotek has joined the channel [22:00] _announcer: Twitter: "NodeJS REPL should exit on `exit` #kthxbye" -- Jacques Crocker. http://twitter.com/railsjedi/status/21262607850 [22:01] ryah: ACTION rolls eyes [22:01] Dmitry1 has joined the channel [22:02] decklin has joined the channel [22:07] SubStack: the repl should actually never exit [22:07] SubStack: it could hop process ids to avoid being killed [22:07] SubStack: and rootkit the kernel [22:08] ryah: !tweet railsjedi dear jedi, ^d. [22:10] pquerna: writing straigt c is refreshing until you want to have a hash table. [22:10] ryah: pquerna: nod [22:10] ryah: btw - why scons? [22:10] SubStack: or any kind of abstraction [22:10] pquerna: (without pulling in a dependency of course) [22:10] ryah: pquerna: haven't we had enough pain? [22:10] SubStack: c is good for twiddling bits around [22:11] pquerna: scons is what i know best. [22:11] ryah: :~ [22:11] pquerna: inperfect, but it was easier to get rolling. [22:11] ryah: make never hurt anyone [22:11] pquerna: hah [22:11] SubStack: ryah: citation needed [22:13] pquerna: i think i'll just use a linked list, and leave a TODO. [22:13] Tim_Smart has joined the channel [22:13] pquerna: always nice to have things you can optimize later... :) [22:14] codemariner has joined the channel [22:16] zemanel has joined the channel [22:16] unomi has joined the channel [22:17] ryah: ACTION clanging [22:18] jamescarr has joined the channel [22:18] ashleydev: ACTION ryah \o/ [22:19] SubStack: so I've been thinking about persistence and server restarts with active websocket connections [22:19] javajunky: oh ffs, I give in, connect has stopped serving session cookies, I need sleep [22:20] luddep has joined the channel [22:20] tg has joined the channel [22:22] robotarmy has joined the channel [22:24] _announcer: Twitter: "Sweet. Tweaked node-supervisor to reload #coffeescript. Now for git forking and patching malarkey. #nodejs" -- David Taylor. http://twitter.com/zensatellite/status/21264073806 [22:25] mr_daniel: I think I need some time to rewire my brains to understand non-blocking programming. In the meantime: [22:26] mr_daniel: I want to see how fast Node.js can be, so I want to make 100 request to www.google.com and see how much times this takes. I made a little snippet, but it took about 10 seconds. So every request took 100ms. I am not sure, but I don't think that this is fast and I think I made some beginner mistake. This is the code: http://nopaste.info/9cd0bc377e.html [22:26] Draggor: Question, if a websocket connection has been made, and the client has a function called myFunc(a, b) { alert(a + b); }, how would I go about having the server call that function? [22:27] mscdex: Draggor: check out something like dnode [22:27] mscdex: Draggor: that kinda does what you're wanting, except the functions are on the server and not the client [22:27] mscdex: Draggor: http://github.com/substack/dnode [22:27] Draggor: So, i have socket.io, and have socket.addListener('message', function(msg) { alert(msg); }); [22:29] mscdex: mr_daniel: imho you would probably be better off testing receiving connections instead of making connections to determine a ballpark idea of performance [22:29] mscdex: mr_daniel: you can't depend on the performance of an external server [22:29] softdrink has joined the channel [22:31] _announcer: Twitter: "Blog rolling with mongoDB, express and Node.js http://icio.us/tlt43f" -- Mauro De Giorgi. http://twitter.com/mdgArt/status/21264463677 [22:31] chrischris has joined the channel [22:35] mr_daniel: mscdex: sorry, but I don't 100% understand what you mean [22:35] SubStack: mscdex: actually the functions can be defined on either end of the connection [22:35] mscdex: mr_daniel: i'm saying you shouldn't measure the performance of node.js based on how long it takes some server on the internet to respond [22:35] SubStack: both even [22:35] mscdex: SubStack: ah ok [22:36] polotek has joined the channel [22:36] mr_daniel: mscdex: yes, of course you are right [22:36] mscdex: s/some server/some other server/ [22:36] mr_daniel: to be honest: I not only want to test the performance of Node.js, but also compare it with other solutions build on Java or Python or other languages [22:37] ncb000gt: question: who's the organizer of node knockout? [22:37] mr_daniel: the reason is that I need a way to make a lot of http request in a short period of time, and I though maybe Node.js is a good solutions for this, but I am not sure [22:37] mscdex: mr_daniel: a better benchmark would be seeing how many requests per second a node server can handle [22:38] mscdex: mr_daniel: node is good at handling lots of concurrent connections [22:38] mr_daniel: ...and thats exactly what I need [22:38] polotek: !tweet @railsjedi try ".exit" also ".help" [22:38] mscdex: well, that was easy ;-) [22:38] mr_daniel: the problem is that I am not sure if I use Node.js correctly [22:39] mscdex: polotek: a twitter bot isn't in here [22:39] dnolen has joined the channel [22:39] mr_daniel: because I do not want to loss performacne, and I am very sure that I am NOT using Node correctly [22:39] mscdex: mr_daniel: do you have code we could see? [22:39] polotek: mscdex: what happened to it [22:39] mr_daniel: I made a Java program which makes 100 request to google.com. It is single-threaded and a single request took about 110ms. [22:40] mscdex: polotek: well, bradleymeck's bot is down because of some internet problem at his house and JimBastard has one in here occasionally [22:40] mr_daniel: a snippet I wrote in Node.js also took about 110ms for a single request, so there must be a problem with my code, because my Node.js-code-snippet has a 'single-thread' performance [22:41] mr_daniel: mscdex: sure [22:41] mscdex: mr_daniel: i thought you were interested in handling lots of _incoming_ connections, not outgoing? or no? [22:41] mr_daniel: this is the code snippet: http://nopaste.info/9cd0bc377e.html [22:41] mr_daniel: mscdex: sorry, no, I don't want to make a server test [22:42] mr_daniel: in my case I want to make outgoing connections [22:43] mscdex: mr_daniel: you're using 1 client connection and are constantly connecting to google without waiting until the connection is closed first. http.createClient doesn't return a client pool, it's a single client [22:46] rnewson has joined the channel [22:47] mr_daniel: mscdex: you were right mscdex [22:47] mscdex: mr_daniel: there is work being done on having a client pool available though [22:47] mr_daniel: the performance is better now, 100 requests no take 5 seconds, so a single request needs about 50ms. This is the code: http://nopaste.info/baa15dd780.html [22:48] mr_daniel: BUT I am not happy with this solutions, I think the code is still not good and I am losing performance [22:49] zapnap has joined the channel [22:49] mr_daniel: some weeks ago I read a blog where the author said that he was able to issue 500 request in 1 second [22:50] mr_daniel: I am not if it was DNS or HTTP requsts, but thats impressive. And compared to my code, this is a huge difference. [22:50] mscdex: mr_daniel: how about only creating the next client when the current one has its connection closed? [22:55] erdem has joined the channel [22:55] _announcer: Twitter: "writing my first node.js program #geek" -- Christian Sanz. http://twitter.com/csanz/status/21265926241 [22:55] polotek has joined the channel [22:56] mr_daniel: mscdex: interesting idea, do you mean something like this http://nopaste.info/210547f375.html [22:56] mr_daniel: I first create all clients in a array and then make a request with them [22:57] [[zz]] has joined the channel [22:57] mscdex: mr_daniel: not exactly, 1 sec [22:58] mattly has joined the channel [22:58] mr_daniel: I remember what ryan said in a presentation: "...you know when there is a non-blocking event... it is when you use callbacks..." well, in my snippet there is no callback, so I guess I am still making blocking-operations. It really takes time to move from the blocking to the non-blocking world. [22:58] satori_ has joined the channel [23:00] ryah: mr_daniel: your snippit looks fine to me [23:00] sveisvei has joined the channel [23:00] ryah: 100 concurrent requests to google [23:02] zemanel has joined the channel [23:04] ryah: does seem pretty slow... [23:05] brapse has joined the channel [23:06] mr_daniel: ryah: thanks for having a look on my snippet ryan [23:07] mr_daniel: but I don't think that the performance of code ok [23:09] _announcer: Twitter: "Eagerly counting my box tops to see if I have enough to send away for my Secret Node.js Fanboy Decoder Ring!" -- Alan Gutierrez. http://twitter.com/bigeasy/status/21266829727 [23:10] mr_daniel: to be more concrete: there is a podcast about JavaScript, which also talks about Node.js http://chaosradio.ccc.de/cre146.html [23:11] mr_daniel: and at minute 44:30 the dialog partner talks about that a 'twitter-bit.ly-resolver-program' runs in his Mac mini with 0% CPU usage and it resolves 500 URLs in every second [23:11] mr_daniel: and don't know if you can speak german :) but thats something I am very impressed about, and I WANT IT, I want to this performance for DNS and HTTP requests too. [23:11] brapse has joined the channel [23:12] mscdex: mr_daniel: how are you measuring? [23:12] mr_daniel: I use 'time node snippet.js' [23:13] mr_daniel: ...on a bash console [23:14] probablyCorey has joined the channel [23:15] mr_daniel: well, I don't know how long Node.js needs for startup [23:16] megan: Hi [23:16] micheil: hi megan [23:17] megan: How are you Micheil [23:17] twoism has joined the channel [23:17] micheil: not too bad, yourself? [23:17] megan: I'm okay. I was wondering about sessions in nodejs [23:18] micheil: what sort of sessions? [23:18] micheil: http, ir? [23:18] micheil: *or [23:18] megan: session variables [23:18] micheil: okay, that doesn't tell me much [23:19] megan: I just want to know if they are built in :P [23:19] micheil: no [23:19] mscdex: mr_daniel: i'm not getting 5 seconds with the code you posted [23:19] megan: or if someone made a plugin for it [23:19] micheil: if you mean something like sessions from php or ruby [23:19] micheil: (on rails) [23:19] SubStack: session variables aren't applicable to something like node.js because there is only one entrypoint [23:19] mscdex: mr_daniel: what version of node are you using, out of curiousity? [23:20] SubStack: so you can very trivially thread state around multiple connections [23:20] megan: thread state? o_O [23:20] _announcer: Twitter: "parse the 'tail -f *.log' stream to communicate between ruby/rails and node.js" -- Lance Pollard. http://twitter.com/viatropos/status/21267538286 [23:21] ncb000gt: megan: Connect has some middleware that helps deal with http sessions. [23:21] megan: oh okay ncb000gt :) [23:21] mr_daniel: mscdex: I just downloaded it from http://nodejs.org/#download the version from 2010.08.13 [23:21] micheil: megan: that's why I asked what sort of "sessions" ;P [23:21] megan: I said variables ;P [23:21] megan: for the users [23:22] ncb000gt: bbl [23:22] micheil: uhh.. :P [23:22] megan: ugh [23:23] megan: ya know, a user logs in. I keep an object so I don't have to keep authenticating [23:23] mscdex: mr_daniel: i get 9 seconds... but then again it may be that you're getting a geographically closer server? i dunno for sure [23:23] megan: and there's a cookie on the client, and I use that to keep up with it [23:23] micheil: the simplest way? create an Object, on each connection, check for the existence of a session_id cookie, if it exists, pull the data at obj[key] and use it, else, create a key, and add it to the object [23:24] micheil: then set / persist that key with the Set-Cookie header [23:24] megan: yeah, but I will use connect since they probably fixed the security holes in that [23:24] micheil: megan: that would be HTTP cookie based sessions [23:24] micheil: megan: that's no security hole [23:24] micheil: it's something that developers have added on top of http. [23:24] micheil: (in a way) [23:25] megan: ya [23:25] micheil: either way, you need to store a cookie on the client and then be able to pull / modify data from a datastore given the cookie's value [23:26] mscdex: mr_daniel: ok, if i modify the code a bit, i get 4.8 seconds [23:26] micheil: wow. I don't believe it's 9.26am already [23:27] megan: am? [23:27] micheil: yeah, Australia [23:27] megan: uh huh [23:27] micheil: what? [23:27] megan: You people and your winter :P [23:27] megan: :) [23:28] mscdex: mr_daniel: hrm, it seems to bounce around between 4.8 and 9 seconds [23:28] micheil: it's actually more of spring / rainy season [23:28] megan: ohh [23:28] micheil: but anyway... :P [23:29] pheuter has joined the channel [23:29] joshbuddy has joined the channel [23:29] mr_daniel: mscdex: I just tested 500 requests, takes 15 seconds, so 1 request in 30ms [23:29] softdrink has joined the channel [23:29] megan: is that good daniel? [23:30] mr_daniel: well megan , to be honest, I don't know if this is good [23:30] megan: it could be bad :O [23:30] pheuter: How do i set up a blocking stdin stream? [23:30] pheuter: rather [23:30] mr_daniel: the only thing I know is that some person was able to do 500 requests in every second [23:30] pheuter: non-blocking, but send an EOF [23:31] mr_daniel: ...and I try to do the same [23:31] pheuter: i cant do stdin.end() (Error: ENOTSOCK, Socket operation on non-socket) [23:31] micheil: something sounds odd with your code mr_daniel [23:31] micheil: pheuter: EOF is sent on exit [23:31] micheil: iirc. [23:32] pheuter: micheil: how do i exit? [23:32] micheil: process.exit() [23:32] micheil: process.exit(code) [23:32] mscdex: yeah, the time bounces around... this time i got 3.6 seconds [23:33] micheil: or just wait for all sockets to close and all timers to end [23:34] mscdex: pheuter: you can do: stdin.destroy(); [23:34] pheuter: if i stdin.pause(), is there an event that i can callback on pause? [23:35] dipser has joined the channel [23:36] mscdex: pheuter: no, there isn't a pause event [23:36] mscdex: or anything like that [23:36] lachlanhardy has joined the channel [23:36] polotek has joined the channel [23:36] micheil: ryah: lovin' boost over there? [23:37] pheuter: mscdex: if i destroy(), will "end" be emitted ? [23:37] mscdex: pheuter: i believe so, but i haven't tested it [23:37] pheuter: nope, didnt work [23:38] mr_daniel: ok, I rewrote the snippet to measure the elapsed time in JavaScript instead of 'time' in bash: http://nopaste.info/ea9ad97fb6.html [23:38] micheil: why would you need "end" to be emitted if you know when / where you're going to close STDIN? [23:38] mr_daniel: 100 requests take 4182ms, so a single request needs about 42ms [23:39] polotek: micheil: events are for keeping things decoupled [23:39] mr_daniel: but this is still far away from 500 requests in 1 second, or 1 request in 2ms [23:39] micheil: polotek: yeah, but in this case use an event emitter [23:39] polotek: anyone listening for "end" should be notified [23:39] micheil: no the stdin "end" event [23:39] polotek: micheil: yeah I know [23:39] polotek: stdin is already an event emitter [23:40] polotek: what I was wondering is why not just call end() before destroy() [23:40] mscdex: mr_daniel: got a link to the article that claimed 500 req/s? [23:40] micheil: ryah: that's right... I need to work on re working the documentation, don't I? [23:40] polotek: which should make sure the end event gets fired [23:40] charlesjolley- has joined the channel [23:42] davidwalsh has joined the channel [23:42] mr_daniel: mscdex: it is not a blog of article, but a blog of podcasts, there is one about JavaScript http://chaosradio.ccc.de/cre146.html at 44:30 the dialog partner talks about the 500req/s thing [23:43] _announcer: Twitter: "@humanzz i didn't understand node.js well even after reading about it .. did you get it ?" -- Osama Brekaa. http://twitter.com/BioNuc/status/21268959463 [23:43] mr_daniel: ...and I hope you can understand germand, because it is a german podcast [23:43] atmos has joined the channel [23:43] allengeorge has joined the channel [23:44] polotek has left the channel [23:44] cheriot: Has anyone had issues installing mjsunit? http://pastebin.com/TN5TMDAU [23:45] mscdex: mr_daniel: i don't heh. i would doubt their claim unless they showed their code somewhere [23:46] mr_daniel: yeah, I think I'll write an email to the dialog partner, hope I can find his email address somewhere [23:46] mr_daniel: ...because when this is true, that would be just AWESOME [23:47] sveisvei has joined the channel [23:47] mr_daniel: he said he used the client to make an backup archive of short-urls, so in case when a service is not available anymore the backup-archive can be used [23:47] pheuter: damn it, why am i spending hours trying to get stdin to work [23:47] mscdex: mr_daniel: i mean, i could see handling incoming requests at at least 500 req/s, but not _outgoing_ requests, because there are so many problems involved there [23:47] mr_daniel: and of course for such application a LOT of DNS and HTTP requests need to be handled [23:48] pheuter: i want to create a repl environment for a language that i am writing, its actually a calculator [23:48] pheuter: it reads a line of stdin, and does some stuff on the given string [23:48] pheuter: then it reads again [23:48] pheuter: and does something again [23:48] megan: sounds very academic [23:48] pheuter: however, i cant seem to implement such an environment [23:48] amuck has joined the channel [23:48] mscdex: pheuter: gist the code you've got so far [23:49] cnu has joined the channel [23:49] mr_daniel: pheuter: '...for a language that i am writing...', you mean you develope your own language? [23:49] pheuter: right, well, its just a reverse polish notation calculator [23:50] pheuter: eventually, it will be a stack-based language [23:50] pheuter: http://bpaste.net/show/i2avMuUjHqCT8DSedzdX/ [23:50] pheuter: btw, the parser is pegjs generated [23:54] mr_daniel: I know the polish notation, didn't know that there is also a reversed version of it [23:54] mr_daniel: just found it http://en.wikipedia.org/wiki/Reverse_Polish_notation [23:54] pheuter: mhm [23:55] pheuter: basically: 1 2 3 4 5 + 3 / = 5 [23:55] mr_daniel: pheuter: what problems do you exactly have with implementing your repl environment? [23:55] mr_daniel: there are many language which have a repl like ruby, python or scala [23:55] pheuter: well, the fact that i have no clue how to implement one in nodejs [23:57] mr_daniel: OK, I think I understand you. I just copy+pasted your code, which does *nothing* when I execute it. [23:57] pheuter: well, also because u are missing the parser.js file [23:58] mscdex: pheuter: why are you calling stdin.resume() without a corresponding stdin.pause() ? [23:58] pheuter: mscdex: it shouldnt be there, i just forgot to remove it [23:58] mscdex: i see [23:58] pheuter: makes no difference [23:59] johnster has joined the channel [23:59] johnster: So encoding... making an HTTPRequest against a service that returns iso8859-1... is this possible to decode without going into C town?