[00:01] ysynopsis has joined the channel [00:01] temp01 has joined the channel [00:03] _announcer: Twitter: "Fun morning enumerated. nodejs,express,socket.io,nave,redis,pubsub and to top it off my son cuddled with me through 2 discs of invader zim!" -- Adam Baldwin. http://twitter.com/adam_baldwin/status/3598756016558080 [00:04] micheil: ryah_: yeah, I have a patch to add them [00:05] mogilny: asked a question earlier, but got no love. is node.js good for pushing data to many connected subscribers [00:05] micheil: ryah_: just haven't finished it yet [00:05] micheil: ryah_: I'm going to set stuff up to generate a TOC for them on page load. [00:05] micheil: mogilny: depends how you do it. [00:06] micheil: Dreamer3: well, those are the two reasons. Generally people doing node.js really like javascript (or they're using coffeescript) [00:06] drudge: mogilny: check out faye [00:06] Dreamer3: yeah i was going to try coffeescript and eco [00:07] mogilny: micheil: i am using emitter and listeners [00:07] bradleymeck has joined the channel [00:07] mogilny: drudge: thanks [00:08] micheil: ryah_: gitignore shouldn't have needed to change for new docs. [00:08] AutomaticPixel has joined the channel [00:08] micheil: mogilny: I'm more thinking about how you're storing a list of connections [00:08] Aikar: mogilny: yes its great for it. utilizing socket.io provides a great push architecture that supports fallbacks for old browsers too [00:09] AutomaticPixel: Hey hey [00:09] micheil: watch there, socket.io doesn't always handle large number of connections the best [00:09] rbranson: socket.io++ [00:09] Aikar: really? [00:09] rbranson: but yeah [00:09] Aikar: whats considered 'large' [00:09] rbranson: 1000+ [00:09] rbranson: i would definitely not put 1000+ concurrent clients on socket.io right now [00:10] micheil: Aikar: high volume of connect/disconnect [00:10] Aikar: could use webworkers and launch multiple servers :) [00:10] micheil: and large numbers to push to [00:10] losing has joined the channel [00:10] micheil: because it's storing the clients in just a flat array or object [00:10] AutomaticPixel: has anyone built node on EC2? [00:10] AutomaticPixel: Im having some issues [00:10] Aikar: EC2 doesnt matter, depends on your OS distro [00:10] micheil: AutomaticPixel: what os? [00:10] AutomaticPixel: Ubuntu 10.10 [00:10] Aikar: i compiled fine on CentOS 5.3 [00:10] losing: When you call res.writeHead(), does it send the header RIGHT THEN, or does it wait until the callback finishes executing, or until you call res.end() ? [00:11] micheil: AutomaticPixel: okay, when you do ./configure, do you see "openssl: not found" [00:11] micheil: ? [00:11] AutomaticPixel: I get this [00:11] AutomaticPixel: Exception: supported architectures are arm, ia32, x64 but NOT 'x86'. [00:11] rbranson: nice [00:11] micheil: oh.. [00:11] micheil: odd [00:11] mikeal has joined the channel [00:11] AutomaticPixel: when I run configure [00:11] ajpiano has joined the channel [00:11] micheil: AutomaticPixel: let me check something.. bbiam [00:11] AutomaticPixel: kk [00:12] jakehow has joined the channel [00:13] micheil: hmm.. what was that unix command to get system info/ [00:13] micheil: ? [00:13] AutomaticPixel: hmm [00:13] rbranson: system info? [00:13] rbranson: uname -a? [00:14] losing: https://github.com/ry/node/blob/master/lib/http.js#L616 looks like no? Looks like it just stores the head so it can write it later? [00:14] micheil: losing: it's a bit confusing to explain, but sort of [00:14] rbranson: losing: it will send it before your body [00:14] rbranson: but not right then [00:15] losing: micheil: does it build the response up, and then send it all at once? [00:15] rbranson: nope [00:15] rbranson: you can stream responses [00:15] micheil: it does some delay, but also streams it [00:15] AutomaticPixel: when I run "uname -p [00:15] AutomaticPixel: " on ec2, I get "unknown" [00:15] micheil: yeah [00:15] losing: micheil: rbranson what triggers it to send a response? [00:15] micheil: I've got an ubuntu ec2 that I compiled fine on the other day [00:16] micheil: losing: uhh. I think the first syscall write() [00:16] losing: res.end()? [00:16] rbranson: losing: it does it at the end of a loop cycle afaik [00:16] losing: ahh [00:16] rbranson: or what micheil said :) [00:16] jacobolus has joined the channel [00:16] johan_bouveng: AutomaticPixel: i get i686 [00:16] micheil: AutomaticPixel: Linux ip-**** #15-Ubuntu SMP Thu Aug 19 02:35:46 UTC 2010 i686 GNU/Linux [00:16] rbranson: Linux better 2.6.32.16-linode28 #1 SMP Sun Jul 25 21:32:42 UTC 2010 i686 GNU/Linux [00:16] micheil: is the full output of uname -a [00:16] johan_bouveng: Linux ip-10-234-226-109 2.6.34.7-56.40.amzn1.i686 #1 SMP Fri Oct 22 18:48:33 UTC 2010 i686 i686 i386 GNU/Linux [00:17] AutomaticPixel: o I get that on mine [00:17] micheil: AutomaticPixel: it should be building fine [00:17] rbranson: yeah, i've built node on EC2 a bunch [00:17] johan_bouveng: me 2. [00:17] AutomaticPixel: hmm [00:17] johan_bouveng: AutomaticPixel: what AMI? [00:18] rbranson: I think that's a V8 build error [00:18] johan_bouveng: AutomaticPixel: it build with no problems on the default linux one. [00:18] losing: micheil: rbranson: so I assume you can call writeHead() once, and then write() as many times as you want? [00:18] rbranson: losing: yes [00:18] rbranson: nm, it's in wscript [00:19] techwraith has joined the channel [00:19] jacobolus has joined the channel [00:19] losing: and then end() actually calls one more write() and closes the connection? [00:19] AutomaticPixel: AMI 508c7839 [00:19] rbranson: not necessarily [00:19] AutomaticPixel: its the official Ubuntu 10.10 one [00:19] rbranson: the data gets flushed to the socket at the end of the event loop [00:19] techwraith: I can't seem to get nvm running on ubuntu - anyone have any experience that I can draw upon? [00:19] micheil: AutomaticPixel: try pulling the git master [00:20] micheil: git clone git://github.com/ry/node.git [00:20] Aikar: i couldnt compile .3 off site but git master worked [00:20] rbranson: that's weird [00:20] svnlto has joined the channel [00:20] micheil: there were just some changes to that stuff [00:20] Aikar: the configure script was really different too [00:20] johan_bouveng: AutomaticPixel: http://pastie.org/1296042 <- that works fine on the default linux ami-6a31041e , ireland. [00:20] rbranson: the 0.2.4 on my system supports x86, x86_64, and arm [00:20] losing: rbranson: is the event loop different than "receive a request -> execute the callback" [00:20] rbranson: losing: yes, it's internal to node [00:20] Utkarsh has joined the channel [00:20] losing: rbranson: so internal that it is actually somewhere in libevent? [00:21] micheil: losing: is there something in particular you're trying to do? [00:21] rbranson: in node [00:21] rbranson: node has it's own event loop that is built on libev [00:21] micheil: some of the event stuff in node is odd, like, it's not exactly where you'd expect it [00:21] zorzar has joined the channel [00:21] twoism has joined the channel [00:21] losing: micheil: rbranson: I'm actually curious to see if it is possible to create node.js in PHP using kargo-event [00:21] micheil: node does any syscall over libev any fs call over libeio, and everything else stays in js [00:22] losing: micheil: cool, that is very helpful [00:22] rbranson: losing: well, just because node does something one way, doesn't mean it's the right way or the best way :) [00:22] losing: rbranson: totally [00:22] rbranson: but it is a good starting point [00:22] losing: rbranson: but Im still very curious to know how node does it [00:22] losing: right [00:22] rbranson: it is actually pretty simple honestly [00:22] johan_bouveng: npm info uninstall mongoose@0.0.3 complete [00:23] johan_bouveng: bai bai!! [00:23] JohnnyL has joined the channel [00:23] rbranson: most of the complexity you see is for efficiency [00:23] losing: PHP's problem is it's abuse of $_GLOBALS [00:23] johan_bouveng: rbranson: what u work with? [00:23] AutomaticPixel: recloned the master and still get the error [00:23] rbranson: johan_bouveng: work what? :D [00:23] micheil: AutomaticPixel: okay, not sure. [00:23] techwraith: Is there a way to npm install nvm? [00:23] micheil: ryah_: you about? [00:23] johan_bouveng: rbranson: heh, what is your experince with ec2, node, etc. jsut curious. [00:24] losing: and all of php's exensions are synchronous D: [00:24] AutomaticPixel: Traceback (most recent call last): [00:24] AutomaticPixel: File "/home/ubuntu/node/tools/waf-light", line 158, in [00:24] AutomaticPixel: Scripting.prepare(t, cwd, VERSION, wafdir) [00:24] AutomaticPixel: File "/home/ubuntu/node/tools/wafadmin/Scripting.py", line 145, in prepare [00:24] AutomaticPixel: prepare_impl(t, cwd, ver, wafdir) [00:24] AutomaticPixel: File "/home/ubuntu/node/tools/wafadmin/Scripting.py", line 135, in prepare_impl [00:24] johan_bouveng: php [01:24] micheil: ryah_: moving the docs to be built to build/doc/* was a deliberate move, making the documentation not make the repo dirty at all [01:24] micheil: _announcer: clear the tubes [01:24] rbranson: lol [01:24] micheil: _announcer: clean the tubes [01:24] _announcer: Cleaning the tubes for great justice! [01:24] micheil: there. [01:24] johan_bouveng: it didnt pick up my tweet. [01:24] rbranson: _announcer isn't the most reliable [01:24] johan_bouveng: that i did 55 seconds ago. [01:24] twoism has joined the channel [01:25] rbranson: it's usually instantaneous [01:25] johan_bouveng: i tweeted : node.js "/quit [01:25] johan_bouveng: :> [01:25] rbranson: like as soon as I hit enter on echofon, it shows the tweet before echofon does [01:25] _announcer: Twitter: "Node.js's announcer bot should probably be picking up tweets.." -- Micheil Smith. http://twitter.com/miksago/status/3619464390115328 [01:25] micheil: see. [01:25] chrischris has joined the channel [01:25] rbranson: micheil: what does clear the tubes do? restart it? [01:25] micheil: sort of [01:25] micheil: clears its caches and stuff [01:26] rbranson: needs moar self healing ;) [01:26] johan_bouveng: still doesnt pick it up [01:26] johan_bouveng: nevermind. [01:28] Anti-X has joined the channel [01:28] mikeal has joined the channel [01:28] _announcer: Twitter: "Ooh! Raptor RDF parser and serializer bindings for Node.js by Norman Heino @nheino at https://github.com/0xfeedface/node_raptor" -- Dave Beckett. http://twitter.com/dajobe/status/3620203388739584 [01:29] johan_bouveng: bah [01:29] rbranson: it still doesn't get all of them [01:29] rbranson: not 100% [01:29] johan_bouveng: mikeal: i cant find that post on mongodb that you talked about on howtonode. [01:30] micheil: johan_bouveng: okay, I'm not sure then [01:30] mraleph has joined the channel [01:30] johan_bouveng: micheil: but you pasted code! :/ [01:31] micheil: ACTION had that from another project, I don't know where I got it from though [01:31] johan_bouveng: micheil: http://howtonode.org/express-mongodb ? [01:31] micheil: probably [01:31] gerad has joined the channel [01:32] johan_bouveng: dont like his non friendly ArticleProvider abstraction. [01:32] johan_bouveng: :/ [01:32] johan_bouveng: micheil: what project did that come from? [01:32] micheil: although, that article isn't it. [01:32] _announcer: Twitter: "Learning Node.js: Date formatting inside of hamljs http://bit.ly/d8jPog #nodejs #hamljs" -- Carl Furrow. http://twitter.com/carl_furrow/status/3621302514483200 [01:32] micheil: johan_bouveng: one that I can't disclose details on, yet. [01:33] johan_bouveng: bha ok :P [01:33] johan_bouveng: is it... the next twitter? :D [01:33] JohnDav has joined the channel [01:34] johan_bouveng: ill continue peek at https://github.com/orlandov/node-mongodb/blob/master/README.md then even tough it seems like its full of error and or outdated information :( [01:34] micheil: http://nodeknockout.posterous.com/countdown-to-knockout-post-6-nodejs-and-mongo-0 [01:35] techwraith has joined the channel [01:35] micheil: johan_bouveng: no, I'm just working on it in a bit of spare time, but I'm not allowed to talk too much about it, as it's not my own project. [01:35] rbranson: so web scale [01:36] johan_bouveng: micheil: ok, i just want to se examples of how ppl build their web apps. remember that we talked about that, practises and structure? =) [01:36] micheil: johan_bouveng: yeah, I think this project will end up being open source, but I'm not sure. [01:36] mogilny has left the channel [01:38] craiggles has joined the channel [01:39] evanmeagher has joined the channel [01:39] rbranson: i defintely agree with micheil though... super lightweight backend, put everything on the client is the way to go [01:39] rbranson: especially in node [01:39] micheil: ACTION is doing a lot of data-collection style things [01:39] micheil: so that approach actually makes a lot of sense [01:40] rbranson: http://www.indeed.com/jobtrends?q=node.js [01:40] rbranson: http://www.indeed.com/jobtrends?q=node.js&l=&relative=1 much better [01:41] craiggles: hey guys, has anyone made a vim plugin so that i can execute the current file with a simple command? [01:44] johan_bouveng: rbranson: elaborate on that a little, i understand what you mean, but there is more usable cycles on the back end. [01:44] rbranson: johan_bouveng: i'd argue the opposite... your users = a giant grid computer [01:45] micheil: johan_bouveng: not really, it's far easier to do slightly simple but still computational work on the client [01:45] johan_bouveng: rbranson: yeah, but what exactly, are you refering to put on clients. [01:45] admc has joined the channel [01:45] themiddleman has joined the channel [01:45] rbranson: so ok, you've got a 3-tier architecture [01:45] micheil: johan_bouveng: anything. [01:45] micheil: johan_bouveng: this is what's become to be known as middle-end development [01:45] micheil: iirc. [01:45] johan_bouveng: heh [01:45] rbranson: client handles all view concerns, server just does data validation, data storage, and authorization, and you've got a 3rd tier that does computationally intensive tasks in a queue/worker pattern [01:46] johan_bouveng: i mean, yeah, i can build the dom on the client, but i dont think that was what you was talking about, just curious. [01:46] micheil: http://blog.getify.com/2010/07/what-exactly-is-the-middle-end/ [01:46] micheil: iirc. [01:46] micheil: also, server push means that you can have realtime stuff happening too [01:47] micheil: (example, node-eventstream) [01:47] rbranson: which is much easier if you've got the view entirely implemented on the client [01:48] johan_bouveng: our current dashboard is real time, but its implemented with classic ajax polling. [01:48] rbranson: nothing wrong with polling [01:48] rbranson: :) [01:48] micheil: then all you need to actually serve up is a lightweight html file, and a few templates and a few javascript files [01:48] rbranson: for a dashboard it's probably fine [01:48] johan_bouveng: but im not one of the cool guys with polling :( [01:49] micheil: short polling imo. is like ddos'ing your own servers. [01:49] rbranson: micheil: depends [01:49] johan_bouveng: would a stream be better? [01:49] micheil: long polling is better, then from there, websockets are better [01:49] rbranson: that also depends [01:49] stride: craiggles: just map :!node %:p to a key of your choice [01:50] micheil: rbranson: for anything realtime, where data is changing < 5 second intervals. [01:50] charlenopires has joined the channel [01:50] johan_bouveng: im just curios, there is a big difference in what i do at work, and my hobby projects with node on the sparetime, but i can still learn stuff that might be usable in production at owrk. [01:50] rbranson: micheil: ok there you go :) [01:50] craiggles: thanks stride [01:50] micheil: and if you're short-polling, you're doing stuff < 5sec intervals more then likely [01:51] rbranson: micheil: pivotal tracker does like 3 sec polls :O [01:51] evanmeagher has joined the channel [01:51] johan_bouveng: rbranson: btw, how can i change so that the ssh connection dont drop every 5 minute on my instance? [01:51] rbranson: johan_bouveng: TCP keepalive [01:51] johan_bouveng: rbranson: where is that set? [01:51] hornbeck has joined the channel [01:51] rbranson: johan_bouveng: google it [01:51] rbranson: ssh tcp keepalive [01:51] johan_bouveng: THANK YOU!!!1 [01:52] johan_bouveng: ;) [01:52] rbranson: :D I would have had to do it [01:52] ooooPsss has joined the channel [01:52] rbranson: I could have lmgtfy.com'd it [01:52] gf3 has joined the channel [01:53] gf3 has joined the channel [01:53] johan_bouveng: rbranson: yes. [01:53] JohnnyL: how stable is node.js? [01:53] rbranson: chevrolet stable [01:54] johan_bouveng: JohnnyL: depends on your code, node.js is really stabile if its doing nothing. [01:54] johan_bouveng: :P [01:54] micheil: does this look like markdown to anyone else? [01:55] micheil: http://nodejs.org/changelog.html [01:55] techwraith: johan_bouveng: lol [01:55] rbranson: micheil: keepin it classy with

[01:55] johan_bouveng: micheil: open it in textmate and se what it says.
[01:55] micheil: techwraith: just realised something bad about working in SF; I can't catch up with people over drinks because I'm < 21
[01:56] rbranson: fake ID
[01:56] micheil: rbranson: I'm thinking doctool could handle it.
[01:56] johan_bouveng: micheil: you are younger than my old cat.
[01:56] johan_bouveng: :>
[01:56] techwraith: micheil: Go with a big enough group and no one will even ask :)
[01:56] rbranson: that's pretty fnny
[01:56] techwraith: I'm  only 22
[01:56] mikeal has joined the channel
[01:56] johan_bouveng: ACTION is 31
[01:56] micheil: techwraith: fair enough, in which case, next year we should catch up over drinks :P
[01:56] rbranson: haha
[01:56] rbranson: bah, fucking SF
[01:57] rbranson: i would be drunk and broke
[01:57] techwraith: micheil: We should indeed :)
[01:57] micheil: rbranson: where're you?
[01:57] rbranson: middle america
[01:57] rbranson: memphis, tn
[01:57] micheil: k
[01:57] johan_bouveng: i never been to u.s
[01:57] micheil: currently regional australia, soon, hopefully san fran.
[01:57] johan_bouveng: :/
[01:57] micheil: johan_bouveng: neither.
[01:57] rbranson: i'm sure i'll eventually end up in SF
[01:57] johan_bouveng: my old work is all in CA now.
[01:57] rbranson: it's like an inevitable gravity well for developers
[01:58] techwraith: rbranson: Everyone does ;)
[01:58] johan_bouveng: apple bought the last startup i worked at.
[01:58] johan_bouveng: so the all went to cupertino
[01:58] techwraith: I just moved here in late august from Portland, Oregon
[01:58] rbranson: I'm from Los Angeles, but I think I'd rather live on the east coast
[01:58] rbranson: I like NY, Boston, and New England
[01:58] johan_bouveng: rbranson: i want an american average girl.
[01:58] atmos_: i love living in SF now that i've been here for a year
[01:59] johan_bouveng: rbranson: or at least, ppl tell me to.
[01:59] atmos_: i was skeptical at first but its grown on me
[01:59] rbranson: johan_bouveng: haha
[01:59] rbranson: i would love SF for the peeps
[01:59] johan_bouveng: rbranson: have to much experince with the VICIOUS^10 blondes from sweden.
[01:59] rbranson: johan_bouveng: that doesn't sound so bad
[01:59] johan_bouveng: want something simple.
[01:59] johan_bouveng: =)
[01:59] WRA: I've lived everywhere
[02:00] techwraith: WRA: that's a lot of places ;)
[02:00] WRA: yeah
[02:00] JohnnyL: johan_bouveng: ok
[02:01] WRA: I have yet to experience "VICIOUS^10 blondes from sweden." so I think I need to go there next ;)
[02:01] micheil: hmm.. is the `open` command on most *nix's?
[02:01] rbranson: JohnnyL: if the question is "would I charge an unsuspecting person my consulting rate and suggest node.js? no... i wouldn't, unless they were already set on it"
[02:01] galaxywatcher has joined the channel
[02:01] rbranson: micheil: pretty sure it's a mac thing
[02:01] micheil: hmm..
[02:02] johan_bouveng: rbranson: now i have edited my ssh config, is there a configtest for the deamon? i dont want to break it so i cant login anymore :D
[02:02] dipser has joined the channel
[02:02] rbranson: johan_bouveng: you should be able to do it on the client side 
[02:02] WRA: oh yeah, I'm 25
[02:02] johan_bouveng: rbranson: yea i know, but i did it in the server config.
[02:02] rbranson: johan_bouveng: not really
[02:03] johan_bouveng: condrestart|try-restart
[02:03] johan_bouveng: sounds safe =)
[02:03] rbranson: might even try reload
[02:03] rbranson: hehe
[02:04] rbranson: losesMeMoney ? exit() : fuckItDoItLive();
[02:04] johan_bouveng: oh i love doing stuff live
[02:04] JohnnyL: rbranson: k thanks
[02:04] johan_bouveng: i have implemented new features in a wordpress based shopping site live :D
[02:04] WRA: "Gonzo'ing"
[02:04] johan_bouveng: ?dev in the url
[02:04] johan_bouveng: go hack
[02:04] johan_bouveng: =D
[02:04] johan_bouveng: some simple ifs.
[02:05] WRA: man I still do stuff on production but I usually create a virtual sandbox
[02:05] johan_bouveng: coward.
[02:05] JohnnyL has left the channel
[02:05] johan_bouveng: :)
[02:05] WRA: wize man you mean
[02:05] johan_bouveng: probably yes
[02:05] WRA: I've been burnt too many times
[02:05] johan_bouveng: but live is hot and fun! :D
[02:06] johan_bouveng: rbranson: reload worked...
[02:06] johan_bouveng: rbranson: wonder if that is enough for it to pick up the new confif
[02:06] rbranson: you'll see soon i guess
[02:06] rbranson: changing the client config has always worked for me
[02:07] WRA: speaking of which, new idea I'm working on. Generic server backend for games/applications that the only thing you code is objects. Objects have data associated with them, client side hooks and server side events.  You are able to code new objects live on teh server via a browser based IDE. 
[02:07] WRA: You are also able to spawn child servers of the one you are on for... sandboxing, sharding, etc.
[02:08] twoism has joined the channel
[02:08] WRA: I also have integrated the Xen API so it can spawn VMs for your new child servers
[02:08] WRA: thus truely a sandbox
[02:09] WRA: so I'm implementing different apps in it now and the idea of user spaces. Basically its the WordPress of networked applications :D
[02:10] johan_bouveng: rbranson: one thing regarding AWS. if i have understood this right, im able to build my shit on my instance, lala, once it gets to small, i can make a EBS snapshot, kill the micro, launch a bigger one, and put my snapshot on it, transparent, aye?
[02:10] WRA: some VM hosts allow you to up the memory/cores available in place
[02:10] WRA: I haven't done anything with AWS yet tho
[02:11] WRA: but there is one universal truth
[02:11] WRA: Horizontally scaling is much cheaper than vertically
[02:11] rbranson: johan_bouveng: yeah
[02:12] rbranson: johan_bouveng: that works fine... i've done it
[02:12] johan_bouveng: coolio.
[02:12] rbranson: scaled from a large to an XL to a 2XL for a caching proxy server
[02:12] johan_bouveng: and the snapshot is the whole 'machine'
[02:12] rbranson: actually what's cool about that
[02:13] rbranson: is I created the instance new, while the old instance was running, from the snapshot
[02:13] johan_bouveng: ie the whole disk
[02:13] rbranson: and then once the new one was running, I switched the elastic IP
[02:13] johan_bouveng: yeah
[02:13] rbranson: so zero downtime
[02:13] WRA: yeah its seamless
[02:13] johan_bouveng: i think we do that when we deploy.
[02:13] WRA: I've been doing creative things with VMs at work as well
[02:13] rbranson: it's not all it's cracked up to be, honestl
[02:13] WRA: dynamic scaling is also fun
[02:13] rbranson: EBS snapshots are slow to begin with
[02:13] rbranson: because they're pulled piece by piece off S3
[02:13] cloudhead has joined the channel
[02:14] rbranson: it takes like 10 minutes for the "cloned" instance to come up
[02:14] johan_bouveng: ok
[02:14] WRA: yeah 10 minutes is pretty standard
[02:14] johan_bouveng: have a break then
[02:14] johan_bouveng: :D
[02:14] rbranson: WRA: I mean after it's started the actual instance :)... it takes that long to boot
[02:14] polotek: is ciaranj about?
[02:14] WRA: I'm on a VMWare platform, it takes us about 5-10 minutes to clone an isntance
[02:14] polotek: node-oauth question
[02:14] WRA: and start a new VM
[02:14] WRA: however, we cheat now
[02:15] rbranson: WRA: VMware clones aren't lazy like EBS clones are though
[02:15] polotek: I think he uses a different name in here
[02:15] WRA: this is true
[02:15] rbranson: it copies the whole thing up front
[02:15] johan_bouveng: TypeError: Object [object Object] has no method 'connect'
[02:15] johan_bouveng: GRRRR
[02:15] rbranson: I like ESX though
[02:15] WRA: We now have a generic image so we don't clone live ones anymore
[02:15] rbranson: the management tools are really nice
[02:15] johan_bouveng: whats the point of having a README if the shit dosent work in it.
[02:15] WRA: and the generic image talks to a requsitioning service
[02:16] WRA: and based on many variables it'll get what it needs to be a... web server, proxy, caching service, platform service... etc
[02:16] WRA: and that only takes like a minute
[02:16] WRA: so we can keep a pool of generic VMs that aren't using any allocated processing power/memory
[02:16] johan_bouveng: rbranson: http://pastie.org/1296194 how can these simple lines fail.
[02:17] WRA: and immediately provision them with teh software/deploy them
[02:17] WRA: aka saving my ass.
[02:17] johan_bouveng: rbranson: its more or less straight from https://github.com/orlandov/node-mongodb/blob/master/README.md
[02:18] rbranson: eh?
[02:18] rbranson: your code says new mongodb.Db()
[02:18] rbranson: not new mongodb.MongoDB()
[02:18] johan_bouveng: yes.
[02:18] johan_bouveng: new mongodb.MongoDB()
[02:18] johan_bouveng: failed
[02:19] johan_bouveng: mongodb.Db() micheil told me to try.
[02:19] rbranson: o
[02:19] johan_bouveng: and that worked.
[02:19] rbranson: well i don't know anything about the mongo driver
[02:21] johan_bouveng: when i log the mongodb object it has the connect function
[02:21] johan_bouveng: perhaps i can skip the new mongodb stuff.
[02:22] prettyrobots has joined the channel
[02:22] Wizek has joined the channel
[02:25] mikeal has joined the channel
[02:28] _announcer: Twitter: "I wish ejs had all the cool stuff that jade does. EJS sucks as a template language, but it's great in that it uses plain old HTML. #nodejs" -- Daniel Erickson. http://twitter.com/TechWraith/status/3635387171864576
[02:29] tylerstalder has joined the channel
[02:30] johan_bouveng: rbranson: yay now i could connect.
[02:30] johan_bouveng: rbranson: found a snippet in some presenation on slideshare!
[02:30] johan_bouveng: ......
[02:35] jamescarr has joined the channel
[02:35] jamescarr: whew
[02:36] necrodearia has joined the channel
[02:40] maushu has joined the channel
[02:42] _announcer: Twitter: "Massively distributed in-browser map-reduce with #nodejs server, SETI-style. Neat! http://bit.ly/9B5PFK (by @rubenfonseca)" -- Jakub Nesetril. http://twitter.com/jakubnesetril/status/3638770825957376
[02:42] cloudhead has joined the channel
[02:46] mraleph has joined the channel
[02:46] bradleymeck has joined the channel
[02:46] Me1000 has joined the channel
[02:47] tmpvar: micheil, yo
[02:48] micheil: hey
[02:48] tmpvar: ive been thinking about something similar to node-eventstream
[02:48] tmpvar: big hangup for me is not waiting for the round trip
[02:48] micheil: hmm?
[02:49] tmpvar: for instance a drag/drop interface.  client A moves a box, and as its moving its emitting events to the server for ACK
[02:49] tmpvar: if there are no conflicts/etc that event (new x,y of the object) are pushed out to all of the listening clients
[02:50] Anti-X: sounds intensive
[02:50] tmpvar: is that sort of what this does?
[02:51] tmpvar: micheil, `this` being node-eventstream
[02:51] tmpvar: event routing and other fun
[02:51] micheil: tmpvar: pretty much
[02:51] dgathright has joined the channel
[02:52] micheil: tmpvar: think: node's eventemitter, but when you emit() from server-side, it gets pushed to the client via websockets as a JSON blob
[02:52] tmpvar: ah, cool
[02:53] tmpvar: so client side prediction and other fun stuff would need to be built on top
[02:53] jchris has joined the channel
[02:53] micheil: what do you mean, client-side prediction?
[02:53] micheil: you have eventstream.js which you use on the client side
[02:53] micheil: it bundles with it an api of node's eventemitters
[02:54] tmpvar: allowing 'movement' on the client without waiting for a round trip
[02:54] micheil: it doesn't wait at all.
[02:54] micheil: if you were want to do client -> client
[02:54] micheil: then you could do: 
[02:54] _announcer: Twitter: "Just registered for Node.js Camp http://camp.nodejs.org/ Dec 14 in SF" -- stonecobra. http://twitter.com/stonecobra/status/3641933532499969
[02:54] micheil: client -> server -> client
[02:54] estoyfeliz has joined the channel
[02:55] tmpvar: right, let me grok this really quick
[02:55] micheil: emit() is outgoing over websockets
[02:55] micheil: the trigger of an event is on the incoming over websockets
[02:55] tmpvar: ah, interesting, this may work well
[02:56] micheil: seriously, the code is about 300 or 400 lines total (client and server) and it's not that complicated
[02:56] micheil: took about 2 hours to write it.
[02:57] johan_bouveng: micheil: cant you show me some node.js + mongodb code? i cant get this to work, have uninstalled mongoose now, but i still struggling with this, there is no docs at all. getting a bit sad now.
[02:57] micheil: johan_bouveng: not really, I've barely worked with the mongo driver, tbh.
[02:57] johan_bouveng: what do ppl use then?
[02:57] rbranson: postgres
[02:57] johan_bouveng: orly.
[02:58] rbranson: it's web scale
[02:58] davidc_ has joined the channel
[02:58] johan_bouveng: we use postgre on work.
[02:58] rbranson: if i care about the data i'm storing, i wouldn't use anything else
[02:59] micheil: rbranson: that sounds like a bad claim to make
[02:59] rbranson: how so?
[02:59] micheil: considering gas and oil pipelines use riak
[02:59] rbranson: that's fine for them
[03:00] av: Johan, not sure if this will be helpful but I came across this http://howtonode.org/express-mongodb
[03:00] av: I am new to Node so still exploring
[03:01] rbranson: micheil: I always ask the use case in that scenario too.. and you find out they're just using it for metrics or sensor data collection or something non-critical
[03:01] mscdex has joined the channel
[03:02] noahcampbell has joined the channel
[03:02] rbranson: besides, riak is kind of different... they use InnoDB 
[03:03] rbranson: and InnoDB is fantastic
[03:03] johan_bouveng: av: seen it, but its not a very good tutorial, its so abstracted in his ArticleProvider shizniz.
[03:03] micheil: ACTION really wants a graph database that isn't built on java
[03:03] tmpvar: installing windows7 in a vm so i can use some of this ram ;)
[03:04] tmpvar: and futz around with apc40 when i get bored
[03:04] rbranson: micheil: they aren't complex... unless you need sophisticated query support :)
[03:04] micheil: heh heh
[03:04] micheil: I'm thinking of writing one on top of redis
[03:05] micheil: bbl. need another tea.
[03:05] Dreamer3 has joined the channel
[03:05] rbranson: HandlerSocket :)
[03:05] tmpvar: that thing is pretty infantile, no?
[03:06] rbranson: it's just a thin layer ontop of InnoDB
[03:06] _announcer: Twitter: "Tough questions: Do I continue studying up on Ruby on Rails, or should I go ahead and start experimenting with Node.js?" -- David Brandon Dees. http://twitter.com/brandondees/status/3644855670546432
[03:06] rbranson: quite possibly the most awesome storage engine ever built
[03:06] dnolen has joined the channel
[03:07] rbranson: too bad it's owned by oracle
[03:08] micheil: rbranson: HandlerSocket?
[03:09] xla has joined the channel
[03:10] _announcer: Twitter: "@brandondees ruby on rails is the past, node.js is the future" -- jamescarr. http://twitter.com/jamescarr/status/3645865344376833
[03:10] jamescarr: hehehehe
[03:10] rbranson: micheil: it's a plug-in for MySQL that bypasses the SQL interpreter/planner for accessing InnoDB tables
[03:11] rbranson: jamescarr: must suck for people still stuck on php ;)
[03:11] jamescarr: or java :)
[03:11] rbranson: let's be specific... spring/hibernate :)
[03:12] jamescarr: micheil, nope... custom in house built frameworks all the way down :(
[03:12] micheil: jamescarr: ?
[03:12] jamescarr: I'm helping them update though :)
[03:12] jamescarr: micheil, I meant rbranson
[03:12] mikew3c_ has joined the channel
[03:12] _announcer: Twitter: "@brandondees your life will be a shit ton easier if you just use Rails, node.js is fun but very new. similar to Rails circa 06." -- Rick. http://twitter.com/rbranson/status/3646542124679168
[03:13] rbranson: :P
[03:13] rbranson: ugh
[03:13] rbranson: in-house eh?
[03:13] jamescarr: micheil, although I do have a websockets related question for you... if you're up for it? :)
[03:13] rbranson: NIH syndrome?
[03:13] micheil: jamescarr: fire.
[03:13] jamescarr: rbranson, yep
[03:13] rbranson: :/
[03:13] _announcer: Twitter: "@jamescarr honestly I think Ruby on Rails is the near future, and node.js is that future's future. PHP is still gaining popularity." -- David Brandon Dees. http://twitter.com/brandondees/status/3646699549499392
[03:13] rbranson: ORLY?
[03:14] jesusabdullah: rbranson: DISAGREE >:O
[03:14] jamescarr: micheil, I gave a preveiw of my websocket presentation at work and one question I got that was rather good was related XSS...
[03:14] rbranson: with?
[03:14] jesusabdullah: Your tweet
[03:14] jesusabdullah: Then again, I don't know Rails so
[03:14] jesusabdullah: it would make my life a lot harder
[03:14] jamescarr: the question was: what is to keep a XSS script from using websockets to fire a credit card number off to an external site?
[03:14] jesusabdullah: >:P
[03:14] micheil: jamescarr: okay, so, currently websockets work cross domain
[03:14] jamescarr: I said essentially "well, if your site is suspectible to XSS you're pretty much fucked anyway" :)
[03:15] rbranson: jesusabdullah: Rails is well documented, very stable, easy to deploy, all the edge cases have been ironed out, huge plug-in community, etc
[03:15] micheil: although, I do believe the CORS work fixes this
[03:15] jamescarr: micheil, yeah, but i think the spec defines an autorized X-domain policy?
[03:15] rbranson: jesusabdullah: it was not so in '06... very similar to the way node is right now
[03:15] jamescarr: the most recent ones at least
[03:15] micheil: jamescarr: however, your server can protect, by only allowing certain sec-websocket-origins or something like that
[03:16] micheil: jamescarr: keep in mind that JSONP isn't safe from XSS 
[03:16] jamescarr: micheil, exactly
[03:16] jamescarr: thats what I said too
[03:16] micheil: and is far easier to do then websockets
[03:16] rbranson: personally, I don't think node.js will be the "rails of real time" as many people have tried to say... I think it will form the foundation of a not-yet-invented framework that becomes the "rails of real-time"
[03:16] micheil: although, there is work being done to fix that.
[03:17] jamescarr: rbranson, yeah, back in 06 Dave Thomas was running around everywhere telling people rails would solve world hunger
[03:17] jamescarr: I dont think anyone was reserved about getting into rails and using it for work
[03:18] jamescarr: at least definitely not by 06
[03:18] rbranson: i was
[03:18] rbranson: in '06
[03:18] jesusabdullah: haha
[03:18] rbranson: but part of that is because Rails is also much more applicable to what most devs were already working on
[03:18] jamescarr: well yeah, and some of the people I work with still have reservations about getting into "this Spring thing" :)
[03:18] jesusabdullah: Spring?
[03:19] johan_bouveng: progress!
[03:19] rbranson: I think Rails met a lot of people where they were at too... node.js is kind of a mind-fuck
[03:19] johan_bouveng: trial and error for the win
[03:19] johan_bouveng: :/
[03:19] rbranson: the path from PHP n00b hitting MySQL DB with mysql_query() -> Rails is a much shorter path than Rails -> async development in node
[03:19] rbranson: and not quite as urgent or compelling
[03:20] rbranson: at least if you're not doing real-time
[03:20] Aria has joined the channel
[03:21] jamescarr: rbranson, oh.. you were at Strange Loop?
[03:21] rbranson: yeah
[03:21] jamescarr: cool... did we meet?
[03:21] rbranson: don't think so
[03:21] rbranson: i was pretty incognito
[03:21] jamescarr: I was disappointed this year... I didn't get to socialize as much... 
[03:22] rbranson: I definitely plan on being more social next year
[03:22] jamescarr: and the one night I did, I was pretty sloshed and talked to a lot of people I dont remember well :)
[03:22] rbranson: haha, well, I hung out with what had to be the rowdiest crowd there
[03:22] c4milo has joined the channel
[03:22] rbranson: 3 of them were presenters :O
[03:23] jamescarr: I was one :)
[03:23] jamescarr: a presenter that is. Although next year I'm not co-presenting
[03:24] Dreamer3: rbranson: agree
[03:24] Dreamer3: rails is much easier to wrap your head around :)
[03:24] rbranson: I was in mike malone's talk during yours :D
[03:24] Dreamer3: unless you just LOVE javascript
[03:24] rbranson: meh
[03:24] guybrush: ACTION nods
[03:24] rbranson: sync is just easier to reason about
[03:24] rbranson: it's a list of instructions
[03:24] rbranson: that happen in sequence
[03:24] johan_bouveng: yay
[03:24] johan_bouveng: users.insert({foo:'bar'},function(){});
[03:24] johan_bouveng: finally........
[03:25] johan_bouveng: :/
[03:25] rbranson: there are 2 things that are hard about concurrent programming: order of operations, and locking
[03:25] rbranson: and event-loop single-stack only solves one of those :)
[03:26] jamescarr: I'll admit I don't give two shits about the performance metrics around node... I just like javascript. Period.
[03:27] rbranson: I'm going to laugh when someone builds a sync framework & multi-process app server ontop of node.js and everyone suddenly moves in droves
[03:28] rbranson: ITS TEH NEW REVOLUTION
[03:28] guybrush: haha
[03:28] Dreamer3: rofl
[03:28] guybrush: well in the end
[03:28] guybrush: when you love js
[03:28] guybrush: and sync coding
[03:28] Dreamer3: sheep
[03:28] rbranson: 75% of the appeal of node is that it's JavaScript
[03:28] rbranson: imho
[03:29] Dreamer3: i love ruby but like learning new things
[03:29] rbranson: most people are like james, don't give a fuck about the performance
[03:29] rbranson: i'm just going to follow doug crockford's advice and be a heretic :D
[03:30] guybrush: the community arround nodejs is also quite nice and active
[03:31] rbranson: web scale
[03:31] guybrush: interesting frameworks popping out every day
[03:31] _announcer: Twitter: "@brandondees in that case I'd say yeah, learn Rails. Go with node.js if you're willing to get your hands dirty and help build it up :)" -- jamescarr. http://twitter.com/jamescarr/status/3651178722238464
[03:31] guybrush: s/frameworks/modules/
[03:31] jamescarr: rbranson, well, I do care about performance...
[03:32] jamescarr: what I meant to say is those performance metrics on how node outperforms nginx and what not don't concern me
[03:32] Dreamer3: where re those?
[03:32] rbranson: in ryan's preso :D
[03:32] Aria: Hehe. The trivial HTTP benchmark.
[03:32] rbranson: the worst benchmark evar :)
[03:33] rbranson: but neato to show off
[03:33] Aria: Nginx = 4mb ram, Node = 40mb; node = slightly faster.
[03:33] Aria: But yeah. In the same realm, entirely.
[03:33] rbranson: he should show the 100k response performance :)
[03:35] Dreamer3: link?
[03:35] Aria: http://www.google.com/search?client=safari&rls=en&q=nodejs+presentation&ie=UTF-8&oe=UTF-8
[03:35] Aria: It starts off most of ryah's presentations.
[03:35] jwatte has joined the channel
[03:35] Aria: Kind of a "hey, wake up. This can be fast.", even if not that useful a benchmark.
[03:35] rbranson: jamescarr: so what attracts you to node over ringo?
[03:36] jwatte: Why don't I get a debug print when a module cannot be resolved, when I run with NODE_DEBUG=1 ?
[03:36] jwatte: (I'm using the latest version, built today)
[03:37] jamund has joined the channel
[03:39] jamund: confused about the diff between url.parse().query and querystring.parse(). the docs indicate the url.parse().query "could" be an object or maybe a string???
[03:39] jwatte: @jamund: I only ever get a string
[03:39] jwatte: I wish it were an object!
[03:39] jamund: jwatte: good, me too :)
[03:40] jamund: this was kinda my way of handling it...
[03:40] jamund: var args = {};
[03:40] jamund: if (uri.query) { args = querystring.parse(uri.query); }
[03:41] jamund: wondering if there was a more built in way to do it
[03:41] jwatte: I haven't found one. Then again, I haven't looked very hard :-)
[03:41] jwatte: So, I still want to know why debug() from within node.js doesn't show up when I run with NODE_DEBUG=1
[03:42] jamund: i wish i knew!
[03:44] chrischris has joined the channel
[03:45] Aria: debug() ?
[03:45] chrischris has joined the channel
[03:45] jamescarr: what font is the node.js logo in?
[03:46] Dreamer3: nice font
[03:50] Aria: Looks like maybe Deja Vu Serif.
[03:50] Aria: But that's a wild-ass guess.
[03:50] Aria: .oO(Wild ass-guess)
[03:50] blaines has joined the channel
[03:51] rbranson: yeah i might agree with that
[03:52] rbranson: nope
[03:52] davidascher has joined the channel
[03:53] noahcampbell has joined the channel
[03:53] Aria: Nuts.
[03:55] c4milo has left the channel
[03:55] jamund has joined the channel
[03:57] Aria: Man. I don't think any typeface I have on my mac matches.
[03:59] rbranson: i've never really looked at the logo, but the short d makes it a pretty unique typeface
[03:59] Aria: Yeah.
[04:00] Aria: And it's really unusually round. Cooper Black is as close as I've got.
[04:00] johan_bouveng: TypeError: string is not a function at String.CALL_NON_FUNCTION (native)
[04:00] johan_bouveng: whats that? :/
[04:00] dipser_ has joined the channel
[04:02] Aria: johan_bouveng: You're calling a string as a function -- var a = "a"; a(), or something that ends up being something like that.
[04:03] _announcer: Twitter: "Wow, this patch to Node.js for the documentation makefile will be awesome! :D" -- Micheil Smith. http://twitter.com/miksago/status/3659197006749696
[04:03] johan_bouveng: Aria: hmm..
[04:04] johan_bouveng: it dosent tell me 
[04:04] johan_bouveng: fuck this is painful dev.
[04:04] johan_bouveng: :(
[04:04] Aria: Well, what's the code at that point look like?
[04:05] johan_bouveng: Aria: http://pastie.org/1296310
[04:05] Aria: And where's the error?
[04:06] ryah_: micheil: yeah, you can fix the changelog
[04:06] johan_bouveng: what do you mean where?
[04:06] micheil: ryah_: okay
[04:07] micheil: ryah_: did I ever show you this? http://d.pr/6nNd
[04:07] johan_bouveng: ryah_: is it possible to have a better, perhaps more descriptive stacktrace, at some point in the future=
[04:08] Aria: johan_bouveng: It mentions a line number? I don't know what in your code triggers that error.
[04:08] micheil: johan_bouveng: it's coming, sort of, in eventsource
[04:09] johan_bouveng: http://pastie.org/1296314
[04:09] johan_bouveng: what am i supposed to do with that? :(
[04:09] johan_bouveng: and the funny thing is... the stuff that breaks, works in other parts of the code.
[04:10] johan_bouveng: here is the complete app.js: http://pastie.org/1296317
[04:11] johan_bouveng: all .get's work, except /list
[04:12] micheil: also, that's considered a good stacktrace
[04:12] johan_bouveng: dosent make sense.
[04:12] rbranson: yeah :D
[04:12] shirro has joined the channel
[04:12] Aria: ... Does db.collections take a string as its first argument?
[04:12] rbranson: a bad stacktrace usually starts with an event trigger inside of node
[04:12] Aria: The exception is inside of db.js, inside of mongodb.
[04:12] rbranson: that has nothing to do with your code :)
[04:12] johan_bouveng: Aria: i dont know? its not documented, i found snippet in a slide on slideshatr.
[04:12] Aria: And it's in calling its callback -- possibly what you pass it.
[04:12] johan_bouveng: slideshare.
[04:12] Aria: Heh, well... bingo.
[04:13] Aria: You used an undocumented API ;-)
[04:13] micheil: johan_bouveng: the best documentation for it will be the source code
[04:13] johan_bouveng: /register works
[04:13] johan_bouveng: same code.
[04:13] achristianson has joined the channel
[04:14] marshall_law has joined the channel
[04:14] johan_bouveng: its kind of hard trying to build stuff.
[04:14] johan_bouveng: ill look in db.js
[04:15] Aria: Looks like in db.js, at least the HEAD copy on github, it only takes one argument.
[04:15] johan_bouveng: Aria: urk
[04:15] johan_bouveng: url
[04:15] Aria: Oh, collection, not collections. One moment.
[04:15] mscdex: gah. i hate writing documentation
[04:15] Aria: I was wrong there.
[04:15] Aria: (https://github.com/christkv/node-mongodb-native/blob/master/lib/mongodb/db.js )
[04:16] johan_bouveng: is it native im using=
[04:16] johan_bouveng: why am i looking at https://github.com/orlandov/node-mongodb then
[04:16] mscdex: finally got a working imap module
[04:16] mscdex: :-D
[04:16] jakehow has joined the channel
[04:16] Aria: I don't know, johan_bouveng.
[04:16] johan_bouveng: npm gave it to me.
[04:17] Aria: There's no db.js in the one you linked to ;-)
[04:17] jvolkman_ has joined the channel
[04:17] johan_bouveng: mm
[04:18] johan_bouveng: still dosent makes sense
[04:18] abstractj has joined the channel
[04:18] johan_bouveng: the /register one works.
[04:18] johan_bouveng: the /list not.
[04:18] micheil: mscdex: oh?
[04:19] mscdex: yeah, i finally got a chance to start working on it again recently
[04:19] micheil: ACTION still hasn't updated his smtp module
[04:19] johan_bouveng: Aria: client.collection('test_insert', function(err, collection) {
[04:20] johan_bouveng: Aria: 'collection_name' nd callback
[04:20] johan_bouveng: could it be that i dont have to specify it once its specified?
[04:20] johan_bouveng: doesnt make sense.
[04:20] mscdex: right now it just supports basic stuff like logging in, logging out, fetching and searching for messages, and opening/closing mailboxes
[04:20] rbranson: mscdex: like the .exe?
[04:21] mscdex: rbranson: eh?
[04:21] rbranson: mscdex: from MSDOS days?
[04:21] johan_bouveng: Aria: sorry, it was a typo.
[04:21] mscdex: oh
[04:21] johan_bouveng: :(((((
[04:21] mscdex: rbranson: pretty much ;-)
[04:21] johan_bouveng: Aria: collections != collection
[04:21] rbranson: shweet
[04:21] johan_bouveng: Aria: collections take 1 arg, collection 2.
[04:22] Aria: Yeah, I was realizing that.
[04:22] Aria: rar.
[04:22] johan_bouveng: its 05:22 in the morning here in sweden
[04:22] micheil: johan_bouveng: can you paste the output of npm view $modulename
[04:22] micheil: where $modulename is the name of the npm module you're using for mongodb?
[04:23] achristianson: hey guys --trying to build node 0.2.4 on a Linux 2.6.9-89.0.29.ELsmp i686, getting "../src/platform_linux.cc:29: error: `PR_SET_NAME' was not declared in this scope". full build output is @ http://gps.caltech.edu/~andyc/build.txt --any ideas?
[04:23] maushu: "Exception: supported architectures are arm, ia32, x64 but NOT 'x86'."
[04:23] maushu: Wat.
[04:25] johan_bouveng: micheil: http://pastie.org/1296331
[04:25] micheil: johan_bouveng: source code is located at: http://github.com/christkv/node-mongodb-native
[04:25] Aria: Heh. Something spitting out x86 where ia32 is expected?
[04:25] micheil: not the repo you were looking in
[04:25] maushu: cygwin
[04:25] maushu: Better add that to the cygwin manual
[04:26] saschagehlich_ has joined the channel
[04:26] johan_bouveng: micheil: yes, Aria pointed that to me. abd i found my problem, it was a typo, but ill look in src as api.
[04:26] _announcer: Twitter: "Picone node.js Apple TV and choke the already acquired the domain name and cool! I Kita - WebSocket aim at "real Web"! - @ IT http://t.co/2BufYb9" [ja] -- Masakuni Kato. http://twitter.com/mackato/status/3665077899100160
[04:26] Aria has joined the channel
[04:27] sudoer has joined the channel
[04:29] johan_bouveng: finally
[04:29] johan_bouveng: https://github.com/christkv/node-mongodb-native/blob/master/examples/queries.js
[04:29] johan_bouveng: EXAMPLEZZZZZ
[04:31] maushu: ♬ Examples make the world go around... ♫ ♩
[04:31] johan_bouveng: i havent drinken any alcohol for >6 months. node.js make me want the get fucked up.
[04:32] mbrochh has joined the channel
[04:32] mbrochh has joined the channel
[04:32] Aria: heh. To make sense of a backtrace, you do have to read the code mentioned in the backtrace.
[04:32] rbranson: eh
[04:32] Aria: When dealing with callbacks, that means you might end up reading the code that calls your code.
[04:32] rbranson: someone else had that problem building node on EC2
[04:32] Aria: Rather than your own code.
[04:33] micheil: johan_bouveng: hey, dude, maybe take a break from programming, get some sleep, then come back to it with a fresh mind
[04:34] johan_bouveng: :)
[04:34] johan_bouveng: im used to this. this is just like at work, so... :D
[04:35] johan_bouveng: *startups*
[04:35] johan_bouveng: but yeah, good advise.
[04:35] johan_bouveng: just want it to utput some data to the browser first :)
[04:36] paupau has joined the channel
[04:36] paupau: Is there a socket.io channel?
[04:37] paupau: couldn't find one
[04:37] micheil: paupau: nup, but there is a mailing list for it
[04:37] paupau: yeah
[04:37] paupau: blarg, prefer IRC
[04:37] aho has joined the channel
[04:37] paupau: I can bother people *in real time*!
[04:38] achristianson: is nodejs really not supported on x86?
[04:38] micheil: paupau: sometimes there are the devs in hear, but not terrible often
[04:39] micheil: paupau: best to just ask your question.
[04:39] rbranson: yup
[04:39] rbranson: just ask
[04:39] rbranson: don't ask to ask :)
[04:39] rbranson: THE UNIVERSAL RULE OF IRC
[04:39] micheil: achristianson: I'm not sure, it should work on x86, i think.
[04:39] Aria: achristianson: ia32 == x86.
[04:39] rbranson: someone else was having that build problem
[04:39] rbranson: on the 0.3 tarball
[04:39] rbranson: on EC2 / Ubuntu 10.10
[04:40] micheil: achristianson: could you email the node.js mailing list about it?
[04:40] paupau: heheh pretty much
[04:40] paupau: thoughts on the node.js:63 no-stack-trace problem, anyone?
[04:40] achristianson: OK, micheil/Aria: I am attempting a build on Linux 2.6.9-89.0.29.ELsmp i686, having a hard time. getting "Exception: supported architectures are arm, ia32, x64 but NOT 'x86'." on fresh checkout of nodejs git. 0.2.4 and 0.3.0 would not build either, but with diff. error
[04:41] micheil: achristianson: yeah, report to the mailing list.
[04:41] rbranson: achristianson: gcc --version
[04:41] micheil: paupau: does that reference something about Timers?
[04:41] paupau: nope
[04:41] paupau: usually when I'm loading a template synchronously at server start and something goes wrong
[04:42] achristianson: rbranson: gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-11) --btw, here is full build output for 0.2.4: http://gps.caltech.edu/~andyc/build.txt
[04:42] rbranson: woah
[04:42] rbranson: that is an old gcc
[04:42] paupau: I get an exception with no stack trace :( I've been able to cope usually but a fix for this would be best
[04:42] rbranson: what version of RedHat?
[04:42] rbranson: I think cat /etc/REDHAT_RELEASE or /etc/redhat_release 
[04:42] rbranson: something lie that
[04:42] achristianson: rbranson: yeah, it is old stuff. I'm building a system on a server I'm not admin for... but I can build my own toolchain if I really need to ;)
[04:43] achristianson: this server is like a museum
[04:43] johan_bouveng: YAY i have output!
[04:43] johan_bouveng: fantastic!
[04:43] johan_bouveng: :DDD
[04:43] johan_bouveng: it only took me 8 hrs
[04:43] johan_bouveng: this is the future!11
[04:43] micheil: no, the future is properly documented projects
[04:44] achristianson: rbranson: Red Hat Enterprise Linux AS release 4 (Nahant Update 8)
[04:44] rbranson: oh my god
[04:44] rbranson: 4-5 year old distro
[04:44] achristianson: yeah!
[04:44] achristianson: you'd think they would have something better, but no
[04:44] rbranson: i installed that on boxes like 2 jobs ago :D
[04:44] rbranson: python --version
[04:45] rbranson: I think the build stuff (waf) gets it's platform version from python
[04:45] johan_bouveng: micheil: :)
[04:45] johan_bouveng: micheil: im putting myself through this stuff, and im not blaming anyone :)
[04:46] achristianson: it is Python 2.7 --I built a fresh one in a prefix in my homedir, since I couldn't get anywhere with the system py (2.3
[04:47] achristianson: rbranson: I can ping the sysadmin (if there is one?? :P) about upgrading --but for now I might bootstrap my own toolchain. what gcc would you recommend?
[04:48] micheil: 4.2.1 works pretty well
[04:48] bpot has joined the channel
[04:48] Aria: Oof, 2.3 is old.
[04:48] Aria: paupau: Often, that's an exception in an event handler, and node doesn't catch it.
[04:49] achristianson: I think these guys must take the strategy of buying a server and never touching the software ... ever
[04:49] micheil: paupau: can you give me the exact exception?
[04:49] maushu: Great, how am I going to add c-ares to cygwin.
[04:49] micheil: maushu: isn't that built in / vendored to node?
[04:50] achristianson: ok i'm off to build a toolchain. my night just got a lot longer!
[04:50] maushu: It is? Hmmm.
[04:50] maushu: Silly cygwin.
[04:51] maushu: ../deps/c-ares/ares_strcasecmp.c:18:24: ares_setup.h: No such file or directory
[04:52] _announcer: Twitter: "HTML5 + node.js in an even or make a music management software, and I thought that it node.js Twitter API to hit the target more" [ja] -- こば@恋する生徒会長. http://twitter.com/KOBA789/status/3671513643352064
[04:52] johan_bouveng: micheil: is it really ment that i should iterate over the cursor in order to get my rows back?
[04:53] micheil: johan_bouveng: no. idea.
[04:53] jamescarr: hmmm... looking for a fun "retro style" background of the opening slide of my intro to node.js slide deck
[04:53] jamescarr: http://www.flickr.com/photos/nypl/3110616716/ ?
[04:53] johan_bouveng: micheil: tought u said that u had done mongodb in that secret project of yours ? :)
[04:53] AutomaticPixel has joined the channel
[04:53] brianmario has joined the channel
[04:54] micheil: johan_bouveng: not much.
[04:54] twoism has joined the channel
[04:54] micheil: johan_bouveng: I was only using it for storage. Should have really been using redis though
[04:54] mjr_: A lot of people are Redis-ing around these days.
[04:54] maushu: silly cygwin, returning x86 instead of ia32.
[04:55] polotek: anybody tried node-oauth with twitter lately?
[04:55] micheil: mjr_: just because for my use case redis made sense
[04:55] mjr_: polotek: I tried it last night, and it didn't work, but I couldn't figureout why
[04:55] micheil: mjr_: oh damn.
[04:56] mjr_: micheil: I'm noticing increasing overlap between people that think node is cool and people that think Redis is cool.
[04:56] micheil: mjr_: yeah, in this application it was just to store the data for later analysis
[04:56] polotek: mjr_: :(
[04:57] mjr_: polotek: does it work for you?
[04:57] polotek: no, just get 401 unauthorized
[04:57] polotek: but I'm also not sure I'm using it right
[04:57] polotek: I just copied the examples from the wiki pages
[04:58] _announcer: Twitter: "betting the farm on #javascipt (and #nodejs)?  http://bit.ly/aujrC1" -- Math Gladiator. http://twitter.com/mathgladiator/status/3673042320363520
[04:58] mjr_: It took me forever to get it working the first time.
[04:58] maushu: Wait a second... amd64? What kind of madness is this.
[04:58] mjr_: I just can't believe how hard it is to make node talk to twitter via oauth
[04:58] maushu: mjr_, ZING.
[05:00] guybrush: mjr_: im using https://github.com/ciaranj/connect-auth works pretty good
[05:02] maushu: What the hell is this "Options".
[05:07] maushu: Ah, here it is.
[05:08] maushu: Thats it?!
[05:12] jvolkman_ has joined the channel
[05:12] maushu: Hug me sideways.
[05:15] dohtem has joined the channel
[05:15] dohtem has joined the channel
[05:15] SvenDowideit has joined the channel
[05:16] johan_bouveng: micheil: ok..
[05:17] hornbeck has joined the channel
[05:17] johan_bouveng: micheil: give me a tip on this one: http://pastie.org/1296400 , then im going to bed. the console log spits each row out, as it should, how do i get that stuff out from this mayhem of callbacks? any tip? =))
[05:18] elbod has joined the channel
[05:19] micheil: http://pastie.org/1296405
[05:19] micheil: should do it,
[05:20] johan_bouveng: yeah, i tried something like that..
[05:20] johan_bouveng: lemme try yours.
[05:23] johan_bouveng: that hangs the server :)
[05:24] johan_bouveng: ah no sorry, i didnt return anything
[05:24] johan_bouveng: the array is empty :/
[05:28] johan_bouveng: it should be an array of objects
[05:28] maushu: Great, I fixed this arch problem now I don't remember what I did.
[05:28] micheil: johan_bouveng: no idea then man.
[05:29] polotek: mjr_: do you have an example of your node-oauth code that used to work with Twitter?
[05:30] mAritz has joined the channel
[05:31] path[l]2 has joined the channel
[05:32] erlnoob has joined the channel
[05:34] johan_bouveng: micheil: mm ok...
[05:42] intacto has joined the channel
[05:45] mbrochh_ has joined the channel
[05:48] mbrochh has joined the channel
[05:49] polotek: isaacs: hey you there?
[05:50] johan_bouveng: uhm fuck it, going to bed.
[05:50] johan_bouveng: micheil: found this http://eberfreitas.virb.com/blog/text/12619617 might have a look at that..
[05:50] johan_bouveng: laters.
[05:50] johan_bouveng: =)
[05:50] micheil: neat. I haven't seen much on the new virb.
[05:51] masahiroh has joined the channel
[05:52] mscdex: anyone know of a markdown preview that is more accurate than the one github uses?
[05:52] mscdex: for github's markdown parser?
[05:54] maushu: I give up. I can't make node.js >3.0 work on cygwin.
[06:03] maushu_ has joined the channel
[06:04] mscdex: sounds like cygwin needs more cowbell
[06:07] polotek: mscdex: have you tried the gollum ruby gem?
[06:07] mscdex: i don't use ruby :S
[06:08] mscdex: i had a college course where I had to use it for the first time and that's about it
[06:08] mscdex: hah
[06:09] polotek: heh, you don't have to do much.  it gives you a commandline script
[06:09] polotek: so you can preview markdown
[06:09] mscdex: oh
[06:09] mscdex: i found another one online that seemed to do a better job
[06:10] jamund has joined the channel
[06:11] _announcer: Twitter: "#plan Node.js Camp (1675 Owens St) Tue, Dec 14, 2010 http://planca.st/HQ4" -- Michael Van Riper. http://twitter.com/vanriper/status/3691447681286144
[06:11] brianmario has joined the channel
[06:13] isaacs_ has joined the channel
[06:14] maushu_: Hmm, I wonder how well node.js would run on tinycore.
[06:16] maushu_: Well, lets try it.
[06:18] Dreamer3: tinycore?
[06:18] mscdex: it's a linux distro
[06:18] Dreamer3: oh
[06:19] Dreamer3: i always liked... trying to think fo the name of the window manager
[06:19] mscdex: one of those micro distros
[06:19] Dreamer3: it was small
[06:20] paupau: It's so perfectly miniature!
[06:20] billywhizz has joined the channel
[06:21] isaacs1 has joined the channel
[06:21] Dreamer3: maybe it was fvwm
[06:21] Dreamer3: damn so long ago
[06:22] Dreamer3: i think it had an X in it though
[06:22] Dreamer3: http://xwinman.org/others.php
[06:22] Dreamer3: ACTION looking
[06:23] Dreamer3: http://xwinman.org/xfce.php
[06:23] Dreamer3: there we go
[06:23] Dreamer3: that's it
[06:25] _announcer: Twitter: "Node.js Camp, 14th December 2010 | Lanyrd http://htn.to/RpS1j5" -- Kosei Moriyama. http://twitter.com/cou929/status/3694905893326848
[06:26] mscdex: yeah, xfce is nice
[06:31] blaines has joined the channel
[06:35] fangel has joined the channel
[06:36] SubStack_ has joined the channel
[06:39] techwraith has joined the channel
[06:39] _announcer: Twitter: "The question is: if @ryah hadn't made node.js, would somebody else have done it? Same for Redis and @antirez." -- John D. Rowell. http://twitter.com/jdrowell/status/3698474583330816
[06:39] Dreamer3: can be
[06:39] tylerstalder has joined the channel
[06:39] mikeal has joined the channel
[06:40] billywhizz has left the channel
[06:42] maushu_: Yay, after all this work... I was able to clone node.js!
[06:42] maushu_: Now to actually configure it and make it.
[06:45] _announcer: Twitter: "Also, the language and I do my 絞Ritai JavaScript or switch to the rails from a node.js." [ja] -- 今井 虹太郎. http://twitter.com/nijitaro/status/3700104506646528
[06:46] boaz has joined the channel
[06:47] boaz has joined the channel
[06:50] tony_ has joined the channel
[06:58] _announcer: Twitter: "Google is Python, Java, JavaScript and old but I heard that the # appengine adopted NodeJS come! Do not like it." [ja] -- 今井 虹太郎. http://twitter.com/nijitaro/status/3703278713962496
[07:00] jamund has joined the channel
[07:00] Lorentz: Lot of japanese nodejs users. Even more than english-speaking people?
[07:01] _announcer: Twitter: "Node.js: Building a Simple Web Service [Video Tutorial] http://is.gd/h1nC6" -- coders_vzla. http://twitter.com/coders_vzla/status/3703978214825984
[07:05] blaines has joined the channel
[07:09] maushu_: Well, node.js is compiling in tinycore.
[07:12] _announcer: Twitter: "Awesome. That took longer then expected, but I now have a new doctool for node.js" -- Micheil Smith. http://twitter.com/miksago/status/3706714129965056
[07:16] jesusabdullah: tinycore?
[07:17] path[l]2 has left the channel
[07:18] micheil: jesusabdullah: a nix distro
[07:20] maushu_: Didn't compile.
[07:20] maushu_: ;_;
[07:20] ehaas has joined the channel
[07:20] maushu_: The cpu is also on fire. Literally.
[07:20] jesusabdullah: Ah
[07:20] jesusabdullah: o__o
[07:21] maushu_: And it's raining fire and brim stone.
[07:21] maushu_: And I can hear some unholy music from my bathroom.
[07:22] maushu_: All this is probably because the error I got is "gcc: Internal error"
[07:23] maushu_: It also asks me to submit a bug report.
[07:28] micheil: ryah_: if you're about, I think we need to slightly rethink the way we're doing the website.
[07:29] _announcer: Twitter: "@jdrowell As most clever inventions both node.js and Redis look pretty obvious once you learn about them." -- Antonio Ognio. http://twitter.com/gnrfan/status/3711057851842560
[07:30] zentooo has joined the channel
[07:34] _announcer: Twitter: "Rabbitmq + node.js = rabbit.js - Messaging that just works - http://su.pr/7XLlt8" -- eBot. http://twitter.com/kicauan/status/3712344098082816
[07:36] sirevanhaas has joined the channel
[07:41] micheil: hey evan.
[07:42] micheil:  / sirevanhaas 
[07:42] sirevanhaas: hello
[07:42] sirevanhaas: i was actually just about to go to sleep
[07:42] micheil: haha, okay, good point, it is kinda late in boston
[07:42] sirevanhaas: whats up
[07:42] micheil: not a lot, just working on node.js docs
[07:42] sirevanhaas: you must be thinking of someone else...i'm in san francisco
[07:43] micheil: hmm.. wait. no, I'm thinking of you, just getting the location mixed up with the swiss-miss studio
[07:43] maushu__ has joined the channel
[07:43] faust45 has joined the channel
[07:44] sirevanhaas: ah yes that is me :)
[07:44] micheil: yeah. just had the location wrong. I've done that before with you, iirc.
[07:45] sirevanhaas: no worries...sorry i can't stay and chat...had a long saturday
[07:45] micheil: yeah, no worries :)
[07:45] sirevanhaas: later
[07:55] twoism has joined the channel
[08:00] agnat has joined the channel
[08:00] mbrochh has joined the channel
[08:01] _announcer: Twitter: "Massively distributed in-browser map-reduce with #nodejs server - http://bit.ly/9B5PFK" -- Tobias O.. http://twitter.com/tobsn/status/3719050249109504
[08:04] _announcer: Twitter: "did anyone see the facebook style #pagelets concept prototyped for #nodejs or #php? (javascript templating etc.)" -- Tobias O.. http://twitter.com/tobsn/status/3719803642580992
[08:04] jesusabdullah: Does this mean maprejuice got updates?
[08:05] jesusabdullah: NOPE something else
[08:05] jesusabdullah: Interesting
[08:05] jesusabdullah: I should work on gru some more
[08:05] aho: mmm delicious mapre juice
[08:05] jesusabdullah: Anyone heard anything about it since nko?
[08:11] micheil: hmm.. http://static.brandedcode.com/nodejs.org/
[08:11] micheil: (click the documentation link.)
[08:13] jesusabdullah: white
[08:13] micheil: yeah.
[08:13] micheil: but. I've rewritten the make scripts that build it all.
[08:14] micheil: if the whole page was white, reload.
[08:14] micheil: ACTION was resyncing it.
[08:16] jesusabdullah: No, I just meant that the stylings didn't quite match
[08:17] _announcer: Twitter: "@AlainCouthures Are xpath2js/xquery2js usable separately from XSLTForms? Could be interesting on node.js. Nudge nudge, wink wink." -- Alessandro Vernet. http://twitter.com/avernet/status/3723145609478144
[08:19] micheil: jesusabdullah: oh, yeah, that's fine-ish
[08:20] _announcer: Twitter: "Python Hackathon end https: / / gist.github.com/676004 redis hands node.js program I tried to port. # Shibukawa" [ja] -- Yohei Sasaki. http://twitter.com/yssk22/status/3723950957797376
[08:22] micheil: jesusabdullah: the website is actually being redesigned by a group.
[08:25] Dreamer3 has joined the channel
[08:28] jesusabdullah: A group?
[08:28] jesusabdullah: Porting js to python? Disasterous!
[08:29] _announcer: Twitter: "@joshuaziering if you mean the nodejs postings, that is javascript (used serverside) see nodejs.org" -- Tobias O.. http://twitter.com/tobsn/status/3726082364674048
[08:29] micheil: jesusabdullah: huh?
[08:29] micheil: oh.
[08:29] micheil: jesusabdullah: yeah, some company offered to redesign the site, while it looks better then what it currently does, I still think it has a long way to go
[08:29] jesusabdullah: Huh!
[08:29] jesusabdullah: Cool!
[08:29] micheil: as for the documentation, it's just in a cleaner style until I know where the site's heading
[08:30] jesusabdullah: Do you think the site needs redesigning? I thought it was a bit dark but otherwise was okay with it :)
[08:30] micheil: yeah, definitely needs a bit more structure, imho.
[08:30] pquerna: it does. frames.
[08:30] pquerna: and google-able parts
[08:31] micheil: pquerna: frames?
[08:31] pquerna: googlea-bale api docs are a key feature
[08:31] fangel: don't really care that much about the design - it works.. but the readability of the docs could be better - which is what micheil is addressing in a very nice way.. :)
[08:31] micheil: pquerna: http://static.brandedcode.com/nodejs.org/api/
[08:32] pquerna: http://nodejs.org/api.html
[08:32] pquerna: isn'tt hat a frame of somekind?
[08:32] micheil: pquerna: ?
[08:32] micheil: no
[08:32] pquerna: the api list?
[08:32] micheil: it's not.
[08:32] pquerna: IT LOOKS LIEK IT
[08:32] micheil: that's a position:fixed thing + javascript
[08:32] micheil: it's generated on the fly.
[08:32] pquerna: but yes, thank you for making the api docs broken out
[08:32] micheil: ACTION wrote part of it.
[08:34] tylerstalder has joined the channel
[08:36] springmeyer has joined the channel
[08:37] jesusabdullah: Man, I had one of those days where I didn't get anything done :(
[08:39] micheil: ACTION got heaps done.
[08:39] micheil: https://github.com/ry/node/pull/419
[08:39] micheil: :D
[08:42] AAA_awright_ has joined the channel
[08:42] skohorn has joined the channel
[08:44] jesusabdullah: :(
[08:44] Druid_ has joined the channel
[08:53] intacto has joined the channel
[08:53] matjas has joined the channel
[08:54] _announcer: Twitter: "Saved by one of @rentzsch's node.js blog posts: http://rentzsch.tumblr.com/post/664884799/node-js-handling-refused-http-client-connections" -- Chris Wanstrath. http://twitter.com/defunkt/status/3732409887498240
[09:00] paupau: damn error handling
[09:00] paupau: EVERY TIME
[09:03] micheil: does this read better? http://static.brandedcode.com/node-doc/net.html
[09:04] langworthy has joined the channel
[09:05] paupau: easy there, redundancy
[09:05] langworthy_ has joined the channel
[09:05] micheil: paupau: hmm?
[09:06] micheil: you mean with the repetition of "This will create a"
[09:06] paupau: yeah
[09:06] langworthy has joined the channel
[09:06] micheil: what should it be instead? :/
[09:06] paupau: stuff that's glaringly obvious from the type signature
[09:06] paupau: just omit it
[09:07] micheil: well, it's actually not glaringly obvious..
[09:07] paupau: port, host is
[09:07] paupau: path isn't
[09:08] micheil: see.
[09:08] paupau: but there's no reason to keep the port, host line
[09:08] paupau: just for some symmetry
[09:08] micheil: yeah there is.
[09:08] jesusabdullah: HOLD ON
[09:08] jesusabdullah: I WILL SETTLE THIS
[09:08] paupau: HOLY JESUS
[09:08] micheil: unless I go "if `host` is obmitted, then `localhost` will be assumed"
[09:09] paupau: there you go
[09:09] micheil: there is this freaky kid who keeps riding his bike past my window, and looking in with this odd grin.. O.o
[09:09] paupau: most of the one-liners on that page are unnecessary
[09:10] jesusabdullah: It reads in a repetitious manner, but I think describing what the arguments do is important
[09:10] jesusabdullah: Maybe something like
[09:10] paupau: It really isn't if the meaning is already apparent
[09:10] paupau: just reduces signal:noise
[09:10] micheil: hmm..
[09:10] jesusabdullah: but it's not necessarily.
[09:11] micheil: how's... that look?
[09:11] paupau: "Set this property to reject connections when the server's connection count gets high." is just confusing
[09:11] losing has joined the channel
[09:11] paupau: looks better
[09:11] micheil: ACTION hasn't done any work there.
[09:11] jesusabdullah: It's important to describe that the default host is localhost if none is given, and that a path will create a unix socket
[09:12] langworthy has joined the channel
[09:12] paupau: Yeah, those are important
[09:12] paupau: but lots of other stuff isn't
[09:12] SamuraiJack has joined the channel
[09:12] micheil: jesusabdullah: see the site.
[09:12] micheil: http://static.brandedcode.com/node-doc/net.html
[09:12] jesusabdullah: That works great
[09:12] jesusabdullah: Well
[09:13] jesusabdullah: I liked the "Creates a tcp connection" part--you just shouldn't repeat it is all
[09:13] micheil: apart from the unfinished first sentence that I'm currently writing
[09:13] mikew3c_ has joined the channel
[09:13] sechrist has joined the channel
[09:13] micheil: actually, I think that's important information
[09:13] langworthy_ has joined the channel
[09:13] micheil: as it does both tcp and unix
[09:13] jesusabdullah: i agree with you
[09:13] jesusabdullah: it just looks like they're no longer complete sentences
[09:14] SamuraiJack has joined the channel
[09:14] jesusabdullah: or, rather, complete phrases
[09:14] micheil: hmm, try that?
[09:15] jesusabdullah: I like
[09:15] langworthy has joined the channel
[09:15] SamuraiJack has joined the channel
[09:16] micheil: if anyone would like to contribute to the node documentation, it's probably best to fork github.com/miksago/node/ and send me pull requests.
[09:17] d0k has joined the channel
[09:17] n0cturnal has joined the channel
[09:17] n0cturnal: hi all
[09:17] micheil: ho
[09:17] micheil: hi
[09:18] n0cturnal: node is so damned cool!
[09:18] micheil: :)
[09:18] n0cturnal: i just have a question
[09:18] micheil: sure
[09:18] micheil: jesusabdullah: this doesn't sound right: "This class is used to create a TCP or UNIX server."
[09:19] n0cturnal: i have some difficoulties in understanding classes syntax and visibility
[09:19] micheil: okay, like?
[09:19] n0cturnal: i have a const something = 10; in my main file
[09:19] micheil: and you can't access it from another file?
[09:19] n0cturnal: and then i have a class = require('./classes/file');
[09:19] Utkarsh has joined the channel
[09:19] n0cturnal: yes
[09:20] micheil: n0cturnal: okay, that's because in order to access variables from another file in node, you have to export them
[09:20] n0cturnal: how can i see that constant from within another class , without passing it to the constructor?
[09:20] micheil: such as, export.something = 10;
[09:20] micheil: then when you require() that file you'll get something like:
[09:20] paupau: exports.something = 10; /* typo */
[09:21] micheil: paupau: good catch
[09:21] micheil: then in order to use, it's something like:
[09:21] micheil: var myClass = require('./classes/something');
[09:21] micheil: myClass.something == 10;
[09:22] n0cturnal: i'll try
[09:22] micheil: paupau: this doesn't sound right: "This class is used to create a TCP or UNIX server."
[09:22] n0cturnal: but here is another question. if i use : const LisenPort = 1234; then could i export that constant ?
[09:22] micheil: like, it isn't really a class..
[09:22] micheil: yes
[09:22] n0cturnal: great.
[09:23] micheil: n0cturnal: same deal as before.
[09:23] n0cturnal: perfect.
[09:23] micheil: exports.ListenPort = 1234;
[09:23] n0cturnal: may i just use export.something; ?
[09:23] n0cturnal: after declaring each value
[09:23] micheil: exports.* will be accessible by anything that require()'s that file
[09:23] micheil: yes
[09:23] micheil: you can also do:
[09:23] micheil: var something = exports.something = 10;
[09:24] n0cturnal: i know :D
[09:24] n0cturnal: but wait.
[09:24] n0cturnal: i knew visibility issues from main to some classes but i want to know how a can see a var declared into main.js file from a required class 
[09:25] n0cturnal: it is the same ?
[09:25] paupau: ACTION cough indirection cough
[09:25] micheil: you can't access variables across files
[09:25] n0cturnal: i mean: exports.var is not in required class, but in "requiring" 
[09:25] micheil: n0cturnal: I'm not sure what you mean by that.
[09:25] n0cturnal: i'll write 3 lines code.
[09:26] n0cturnal: wait
[09:26] micheil: n0cturnal: you know in clientside javascript, where you have closures?
[09:26] micheil: well, when ever a module is require()'d it is wrapped in a closure
[09:26] micheil: meaning the any stuff declared in it cannot leak out of it
[09:27] micheil: the exports variable is passed into the closure, so that's why you can access that.
[09:27] n0cturnal: --main.js:
[09:27] n0cturnal: exports.x = 10; var class = require('something');
[09:27] n0cturnal: --something.js:
[09:27] n0cturnal: here i want to see that x
[09:27] micheil: k. so in something:
[09:27] micheil: var main = require("./main");
[09:27] micheil: main.x == exports.x from main.js
[09:29] n0cturnal: i should do some tries.
[09:29] n0cturnal: but thank you very much :D
[09:29] micheil: no worries :)
[09:29] n0cturnal: i love node.
[09:29] micheil: I do too.
[09:29] n0cturnal: just 2 minutes to fall in love :D
[09:30] n0cturnal: but it is a little bit hard to develop
[09:30] _announcer: Twitter: "Health.js: CPU usage streaming and notification for Node.js - http://su.pr/99TD0K" -- eBot. http://twitter.com/kicauan/status/3741517134954496
[09:31] n0cturnal: here is a theroical question: how to scale node?
[09:31] micheil: n0cturnal: depends how you mean
[09:32] micheil: do you mean scale as in run over multiple machines with load balancers or?
[09:32] micheil: or do you mean scale across multiple CPU's?
[09:32] n0cturnal: multiple machines
[09:32] micheil: okay
[09:32] n0cturnal: i'm writing a sort of chat
[09:32] micheil: currnently there isn't a really easy way
[09:33] n0cturnal: each node ( :D ) should be able to see other server's connections
[09:33] micheil: okay, that's not going to happen.
[09:33] n0cturnal: i know
[09:33] micheil: as you can't actually share file descriptors across different machines
[09:33] micheil: however, there is a sort of way to.
[09:33] n0cturnal: i supposed to have a main server which could relay connections across different instances of node
[09:34] micheil: part of my research at the moment is into something I'm calling XEE, or cross-node event emitters.
[09:34] n0cturnal: :O
[09:34] micheil: essentially you have an event emitter from node, and then you hook it up with a net.Server and net.Stream, you then pass events between different node processes using network sockets
[09:35] micheil: (you could also replace network sockets with a central pub/sub queue, like zeromq, rabbitmq, or redis pub/sub)
[09:35] micheil: It's a bit complicated.
[09:35] n0cturnal: not so much
[09:35] n0cturnal: i understand what you mean.
[09:35] paupau: research?
[09:35] micheil: paupau: yeah.
[09:36] micheil: I'm going to be writing a paper on it soon.
[09:36] paupau: isn't that pretty much solved implementation work?
[09:36] micheil: paupau: what do you mean?
[09:36] paupau: shlep some JSON objects around?
[09:36] micheil: well, that's the basics of it.
[09:37] n0cturnal: why you guys don't open a forum about node ?
[09:37] paupau: don't understand where the research comes in, is all
[09:37] micheil: see. https://github.com/miksago/ideabin/wiki/Node-Network-Protocol
[09:37] paupau: seems like the kind of thing people hack up on a weekend
[09:37] micheil: paupau: it still needs a fair bit of thought as to all the pros/cons and such
[09:37] micheil: n0cturnal: http://groups.google.com/group/node-js/
[09:37] paupau: what's the compelling reason to reinvent this wheel?
[09:38] micheil: erm http://groups.google.com/group/nodejs/
[09:38] micheil: paupau: what do you mean?
[09:38] n0cturnal: oh thanks :P
[09:38] paupau: why write this?
[09:38] paupau: hasn't this been done like a hundred times already?
[09:38] micheil: well, there's nothing prior to it.
[09:38] micheil: not for node, anyway.
[09:38] paupau: okay, so it's trivial implementation/porting work
[09:39] micheil: not really
[09:39] micheil: node isn't the platforms your used to.
[09:39] paupau: so my question is what makes it non-trivial
[09:39] paupau: asynchronous code isn't new
[09:39] micheil: yeah, but scaling it is a new-ish problem
[09:39] paupau: uh huh...
[09:39] micheil: and doing it in a way that plays homage to node is.
[09:40] paupau: well, I don't get it
[09:40] paupau: sounds like the same old thing to me
[09:40] paupau: oh well!
[09:40] liar has joined the channel
[09:40] micheil: paupau: what I said before was just scrapping the surface, there's still issues like: how do you know about the peers that events should be emitted to and such
[09:41] qFox has joined the channel
[09:41] paupau: you might as well ask how a wireless router knows what clients it has, or how a cell phone network works
[09:41] micheil: paupau: which I have, in the past ;P
[09:42] paupau: indeed
[09:42] paupau: solved problems
[09:42] micheil: as for a wireless router, it knows it's peers by a peer talking to it and telling it about itself.
[09:42] paupau: of course, the same principles apply.
[09:42] micheil: as for node, it's slightly different
[09:42] paupau: oho
[09:42] micheil: and I feel it does need to be documented.
[09:43] micheil: (It also needs to be written, which I'll be doing as well.
[09:43] paupau: so... what about the research?
[09:44] CIA-95: node: 03isaacs 07master * r589e279 10/ (lib/fs.js test/simple/test-fs-write-file-buffer.js): 
[09:44] CIA-95: node: writeFile fixes
[09:44] CIA-95: node: writeFileSync could exhibit pathological behavior when a buffer could
[09:44] CIA-95: node: not be written to the file in a single write() call.
[09:44] CIA-95: node: Also, writeFile was not quite as optimized as it could be. - http://bit.ly/aj0EMG
[09:44] micheil: well, research as to the best way to go about it. There's no real point saying "been there done that" when it's non-existent and not really thought about in the context of node
[09:45] ryah has joined the channel
[09:45] paupau: to me research isn't "porting this to a different platform" but perhaps I have a different definition
[09:46] micheil: until something exists, and is reliable, robust, and well documented it isn't a solved problem
[09:46] micheil: also, there's no porting happening.
[09:46] micheil: to my knowledge, nothing uses the same kind of pattern as node with eventemittersz
[09:46] paupau: event emitters? publish subscribe?
[09:47] micheil: not really the same.
[09:47] paupau: huh
[09:47] Nomon_: we use redis pub/sub with our node.js processes for communication, asking for cached data etc
[09:47] micheil: also, as far as I know, there's no such thing as a pub / sub with network scaling.
[09:47] micheil: not without centralisation.
[09:47] paupau: ah, so it's decentralized is what you're saying?
[09:48] micheil: granted, I could write it in a weekend, however, I think it'd be wise to write about why I'm doing it a specific way, rather then just doing it.
[09:48] paupau: peer to peer ad-hoc event emitter configuration?
[09:48] micheil: paupau: sort of.
[09:48] paupau: go on
[09:49] micheil: like I said, what I gave before was the rough over view.
[09:49] micheil: as for "going on", that'll come later, when I write this paper.
[09:49] paupau: everything you're talking about is "sort of" like something else existing but not quite, I get a vague depiction
[09:49] micheil: aka, this is something that I'm writing as open source for the company I work for.
[09:49] SkyMarshal has joined the channel
[09:49] paupau: ah, nice
[09:50] paupau: good to have that freedom
[09:50] mape: mjr_: Got the error again, when using redis as a session store, any idea of how I might debug it?
[09:50] stride: morning guys
[09:50] micheil: paupau: so, until I write said paper I'm not really going to go into the details.
[09:50] micheil: morning stride 
[09:53] n0cturnal: micheil
[09:53] micheil: ?>
[09:54] n0cturnal: last question then i stop bothering you :P
[09:54] n0cturnal: i tried to make the http.js class accepting an alias of Content-Length but i did not found anything 
[09:55] micheil: n0cturnal: uhh..
[09:55] micheil: as in?
[09:55] micheil: gist.github.com your code.
[09:56] karboh has joined the channel
[09:56] n0cturnal: erm, there is no code yet. i want to make the httpserver understand a custom header and use it as Content-Length
[09:58] n0cturnal: i found var contentLengthExpression = /Content-Length/i;
[09:58] ewdafa has joined the channel
[09:59] n0cturnal: but not yet the point where http server store the value of this header.
[10:00] Moominpapa: Am I missing something obvious about sass.js?
[10:00] Moominpapa: $red : #C02942
[10:00] Moominpapa: .grid_3
[10:00] Moominpapa:   background-color : $red
[10:00] femtoo has joined the channel
[10:01] Moominpapa: works fine in sass-lang.com/try.html.  But generates a blank page in express.
[10:01] micheil: n0cturnal: it can be accessed at res.headers.contentLength
[10:01] micheil: iirc.
[10:02] paupau: Anyone know how to get the remote IP in socket.io?
[10:02] shanebo has joined the channel
[10:02] micheil: paupau: I did, but I can't remember
[10:02] paupau: It's difficult to google socket.io :/
[10:03] micheil: basically you access the underlying stream and then do .remoteAddress
[10:03] lmorchard has joined the channel
[10:03] paupau: hmm, independent of transport?
[10:03] micheil: v8: "test string".test(" ")
[10:03] v8bot: micheil: TypeError: Object test string has no method 'test'
[10:03] stride: n0cturnal: that expression is only used for http clients
[10:03] n0cturnal: clients ?
[10:03] micheil: yeah
[10:03] n0cturnal: sure of that ?
[10:04] _announcer: Twitter: "Nikoniko I have not seen recently. node.js is too much fun" [ja] -- こば@恋する生徒会長. http://twitter.com/KOBA789/status/3749985036279808
[10:04] micheil: stride: actually, it's in OutgoingMessage too
[10:04] n0cturnal: how can i make a post without content-lenght ?
[10:04] dietricha has joined the channel
[10:04] micheil: n0cturnal: a POST request?
[10:04] micheil: you can't.
[10:04] n0cturnal: yes
[10:04] micheil: iirc, it's against http spec to do so.
[10:04] dietricha: anyone know why i get this when trying to ./configure? Exception: supported architectures are arm, ia32, x64 but NOT 'x86'.
[10:05] n0cturnal: i know i can't, so that's why i feel strange to ear content-length is used ony for clients
[10:05] stride: micheil: oh, that's server-code right. missed that
[10:05] micheil: dietricha: I don't know why, but we know about the issue
[10:05] micheil: dietricha: could you email the mailing list about it please?
[10:05] dietricha: micheil: ok. yep, will do.
[10:05] micheil: thanks
[10:06] paupau: I grepped socket.io and found nothing similar to remoteAddress, or anything relevant with either remote or Address
[10:06] paupau: oh right
[10:06] paupau: it's on the stream you say
[10:06] micheil: remoteAddress is defined on the socket.
[10:06] sixtus42 has joined the channel
[10:06] paupau: socket er yeah.
[10:06] micheil: it's internal to node
[10:06] paupau: yeah.
[10:06] micheil: so, you need to figure out where socket.io stores that stream
[10:06] paupau: hmm I'll fire up a test server and poke at it then
[10:06] n0cturnal: guys i have to leave now, thank you for your help 
[10:07] n0cturnal: see you soon
[10:08] hellp has joined the channel
[10:08] femtooo has joined the channel
[10:09] micheil: paupau: try connection.connection.remoteAddress
[10:10] paupau: aha, connection.request.socket.remoteAddress
[10:10] paupau: thankx
[10:10] paupau: s*
[10:11] micheil: and request.socket == connection.connection
[10:11] micheil: iirc.
[10:11] paupau: oho.
[10:11] paupau: hmm shows up as "circular" on the console.log
[10:11] paupau: perhaps that's just because request.socket showed up first
[10:12] paupau: guess an artifact from circular structure checking.
[10:17] shirro has joined the channel
[10:19] kkaefer: is there a way to set a property so that it doesn't appear with console.log?
[10:19] kkaefer: I tried to set the property to not enumerable
[10:19] kkaefer: but it still shows up
[10:21] aho: copy the object, delete that one property you dont like, output via console.log :>
[10:21] kkaefer: hm, apparently when assigning a new value to the property, it doesn't retain the enumerable property
[10:21] intacto has joined the channel
[10:21] spetrea-home has joined the channel
[10:24] Nohryb has joined the channel
[10:24] micheil: console.log shows pretty much everything
[10:25] dgathright has joined the channel
[10:25] kkaefer: micheil: it doesn't show non-enumerable properties
[10:25] stride: console.log(utils.inspect(foobar, true)); maybe
[10:25] kkaefer: I defined the property as non-enumerable in the prototype
[10:25] stephank has joined the channel
[10:25] kkaefer: and overwrote it in a constructor
[10:26] kkaefer: and apparently when you do that, it loses its property configuration
[10:26] kkaefer: which kind of makes sense, of course
[10:26] stride: oh, your problem is that it shows to much?
[10:26] kkaefer: stride: yes
[10:26] stride: ACTION wanders off to get better coffee. this one obviously isn't sufficient..
[10:30] superjudge has joined the channel
[10:31] _announcer: Twitter: "Joyent open source project was funded Node.js develop into the fast lane http://bit.ly/byBp57" [zh-CN] -- InfoQ中文站. http://twitter.com/infoqchina/status/3756829385424896
[10:31] tmm1 has joined the channel
[10:33] _announcer: Twitter: "@ Cmilfont remember it when I asked who would be the new node. js? Yeah: http://code.google.com/p/anic/" [pt] -- Leonardo Eloy. http://twitter.com/leonardoeloy/status/3757303006236672
[10:34] stride: @ that tweet. I saw that on news.ycombinator last week.. "Faster than C, Safer than Java, Simpler than *sh" is probably the worst claim I've read this year
[10:35] sr has joined the channel
[10:35] mytrile has joined the channel
[10:37] beppu has joined the channel
[10:38] tmm1 has joined the channel
[10:39] steadicat has joined the channel
[10:40] jesusabdullah: Yeah, that actually looked pretty dumb
[10:41] sveimac has joined the channel
[10:42] fangel: I love their completely unreadable clock/calculator example.. :)
[10:43] jetienne has joined the channel
[10:46] rajeshsr has joined the channel
[10:46] SubStack_ has joined the channel
[10:51] _announcer: Twitter: "I'm messing with CouchDB & node.js but in the back of my mind is "work tomorrow", but I work for myself messing with code..." -- Stoo Goff. http://twitter.com/darthstoo/status/3761567577411584
[10:52] spoobie has joined the channel
[10:55] _announcer: Twitter: "@bytebot  1) GWT equivalent in JS; 2) node.js in Chromium; 3) better-than-Mint; on radar; 8 month study break in Jan; might look for ++$" -- R.E.D̶. B.ored. http://twitter.com/jerng/status/3762939983036416
[10:56] ph^ has joined the channel
[10:56] SamuraiJack_ has joined the channel
[11:02] _announcer: Twitter: "@ Yutopp node.js you! I would like to think." [ja] -- こば@恋する生徒会長. http://twitter.com/KOBA789/status/3764637904408576
[11:02] oal has joined the channel
[11:04] _announcer: Twitter: "That's right @ KOBA789 somewhat terrible, node.js" [ja] -- ゆうと. http://twitter.com/yutopp/status/3765143552925696
[11:09] _announcer: Twitter: "node.ws.js, a minimal WebSockets server for node.js just got https support: https://github.com/ncr/node.ws.js, /cc @dailyjs, @howtonode" -- Jacek Becela. http://twitter.com/jacekbecela/status/3766460400795648
[11:09] _announcer: Twitter: "That's right w @ KOBA789 Even though node.js What applications are suitable for the what?" [ja] -- ゆうと. http://twitter.com/yutopp/status/3766513152557056
[11:10] _announcer: Twitter: "js almost + +? http://www.k33g.org/?q=node/56 ... bad code 4 learning" [de] -- Philippe Charrière. http://twitter.com/k33g_org/status/3766800332361728
[11:13] _announcer: Twitter: "from infoQ Node.js Joyent open source projects were funded to develop into the fast lane http://bit.ly/byBp57" [zh-CN] -- incr. http://twitter.com/ihere/status/3767366454349825
[11:13] superjudge has joined the channel
[11:23] shirro has joined the channel
[11:23] unomi has joined the channel
[11:24] mape: Anyone here good with imagemagick? Trying to make a handler for css that replaces background: rgba(0,0,0,0.2); to background: url(/img/rgba-00002.png); and generating an appropriate image
[11:24] mape: Or would I be better of using something else?
[11:25] unomi: what are you trying to achieve exactly?
[11:25] mape: unomi: rgba fallback when used in simple cases like filling a div with an transperant background
[11:25] unomi: for browsers that don't have opacity?
[11:25] shirro has joined the channel
[11:25] mape: For browsers who don't support rgba
[11:25] tmedema has joined the channel
[11:26] necrodearia has joined the channel
[11:26] aho: i'd use rrggbbaa as file names
[11:26] necrodearia has joined the channel
[11:26] mape: sure, I'm more interested in the best tool to create a 1x1 png that has the correct rgba value
[11:27] aho: well, with node.js you can just use node canvas (or whatever it's called)
[11:28] aho: if you don't support ie6 you could probably also use js to generate an b64'd inlined image :>
[11:28] unomi: mape, well, ie6 handles png with transparently very poorly
[11:28] mape: Jup, that is what I'm planning
[11:28] mape: unomi: Sure, I don't support ie6 on my projects so that isn't an issue
[11:29] mape: But I guess you can add a handlar that adds the filter
[11:29] mape: *handler
[11:29] faust45 has joined the channel
[11:31] zorzar_away has joined the channel
[11:31] erlnoob has joined the channel
[11:32] mape: gm convert -size 1x1 -border 0x0 "xc:rgba(255,255,30,100)" filename.png seems easy enough
[11:34] aho: http://kaioa.com/k/uc1px.png
[11:34] aho: uncompressed single pixel png
[11:35] aho: AA BB CC 80 <- rr gg bb aa
[11:35] svnlto has joined the channel
[11:35] aho: so, all you need is those bytes before, then rgba, then those bytes after that. done :>
[11:36] aho: oh wait... wasnt there some checksum somewhere? :>
[11:37] SamuraiJack__ has joined the channel
[11:37] aho: ye, there is. meep .)
[11:38] kkaefer: aho: maybe https://github.com/learnboost/node-canvas is something for you
[11:38] aho:  well, with node.js you can just use node canvas (or whatever it's called)
[11:38] aho: ;)
[11:39] kkaefer: ah, sorry
[11:41] kkaefer: mape, unomi: IE6 /does/ support alpha transparency for 8 bit PNG, just not for 24 bit
[11:41] kkaefer: iirc
[11:41] mape: kkaefer: Yeah, not very useful with rgba
[11:42] kkaefer: ah sorry, it doesn't support it fully
[11:42] kkaefer: it just doesn't draw the gray background
[11:46] mape: Dumb question.. new RegExp('rgba\( *'+rgba+' *\)','ig');
[11:46] mape: how do I escape the escape \ ?
[11:47] mape: Having one removes it, having two leaves two
[11:47] unomi has joined the channel
[11:47] kkaefer: you need two
[11:48] kkaefer: how do you know it leaves two?
[11:48] kkaefer: new RegExp('rgba\\( *'+rgba+' *\\)', 'ig');
[11:48] mape: oh yeah, seems it breaks if you only \\ one of them
[11:48] mape: Thanks
[11:49] kkaefer: it breaks because "\(" will become "("
[11:49] kkaefer: and ( is a special character in (
[11:49] kkaefer: so regex compilation fails
[11:50] christophsturm has joined the channel
[11:52] Brainlag has joined the channel
[11:53] _announcer: Twitter: "NodeJSは化ける。" -- 今井 虹太郎. http://twitter.com/nijitaro/status/3777541538062336
[11:56] _announcer: Twitter: "seems like some people found my rather old blog post about node.js recently - still crisp: http://bit.ly/cBVjLt  #nodejs" -- Rocco Georgi. http://twitter.com/GeeROC/status/3778186840117249
[11:58] micheil: mape: http://static.brandedcode.com/node-doc/freelist.html
[11:58] micheil: :D
[11:59] _announcer: Twitter: "I have not yet understood the nodejs, JavaScript is more than JavaScript "in you" where I can feel the potential." [ja] -- 今井 虹太郎. http://twitter.com/nijitaro/status/3778938258071552
[11:59] _announcer: Twitter: "@ditesh perhaps of interest: on node.js architecture for Lua http://stackoverflow.com/questions/2985388/node-js-for-lua" -- R.E.D̶. B.ored. http://twitter.com/jerng/status/3779070106009600
[12:01] aubergine has joined the channel
[12:03] _announcer: Twitter: "Delve deeper into Node.js or watch the final Grands Prix of the season. For once not a tough choice :)" -- Guy Whitfield. http://twitter.com/guywhitfield/status/3780109056086016
[12:04] Twelve-60 has joined the channel
[12:06] killfill has joined the channel
[12:12] mraleph has joined the channel
[12:12] unomi has joined the channel
[12:13] _announcer: Twitter: "Man. Totally loving the fact that the new doctool for node.js only recompiles the changed documentation." -- Micheil Smith. http://twitter.com/miksago/status/3782644596740096
[12:15] bnoordhuis has joined the channel
[12:17] mape: micheil: neat, I would personally make the font size a tad smaller but overall nice
[12:17] micheil: mape: yeah, the styling will probably get changed later, for now I'm working on the content
[12:17] mape: Ah k
[12:18] killfill has joined the channel
[12:18] _announcer: Twitter: "@snowcode All I knew about #CoffeeScript is what's on that page.  Still don't know where I could use it.  Kinda like my knowledge of node.js" -- simonstewart. http://twitter.com/simonstewart/status/3783905245138944
[12:19] karboh: I guess require.cache is what used to be module.moduleCache?
[12:19] micheil: mape: reworking heaps of the documentation to make it read much nicer.
[12:19] micheil: karboh: I think so.
[12:19] karboh: thx
[12:20] micheil: mape: but seriously, FreeList is so damn awesome.
[12:22] tony_ has joined the channel
[12:23] micheil: ryah: was there any decision on removing newListener?
[12:23] jvolkman_ has joined the channel
[12:24] _announcer: Twitter: "@simonstewart IMHO Node.js is cool as a language if u wanted 2 build ur own super performant low power specialised networked device" -- Alan Hemmings. http://twitter.com/snowcode/status/3785217101795328
[12:26] jamescarr: yawn
[12:27] jamescarr: pondering whether or not to include the OS related stuff in node.js in my talk
[12:28] _announcer: Twitter: "Learning Javascript with Object Graphs (Part II) - How To Node - NodeJS http://ow.ly/19XX1h" -- Javascript News. http://twitter.com/del_javascript/status/3786267003199488
[12:28] jamescarr: I see tim is up and at em early
[12:29] jamescarr: micheil, I've been thinking of creating a module for my amqp based event emitter...
[12:29] jamescarr: or do you think it belongs to event stream?
[12:29] micheil: jamescarr: heh heh
[12:29] micheil: jamescarr: I should probably start writing down my ideas about XEE
[12:29] jamescarr: probably a separate module, just does something similar ;)
[12:29] jamescarr: XEE?
[12:29] micheil: or cross-node event emitters
[12:29] jamescarr: ah
[12:30] jamescarr: I started a blog post :)
[12:30] micheil: ACTION is meant to be writing up a bit of a research paper on them, but so far hasn't
[12:30] jamescarr: I'm also including you eventstream module in my websockets talk
[12:30] jamescarr: as a good example how they're not just for the web :)
[12:30] micheil: jamescarr: nice.
[12:31] micheil: ACTION is actually working on the Events.EventEmitter documentation right now..
[12:31] micheil: jamescarr: this is part of XEE: https://github.com/miksago/ideabin/wiki/Node-Network-Protocol
[12:31] guybrush: ACTION cant wait to read it
[12:31] micheil: (or will be used in XEE)
[12:32] micheil: guybrush: read which?
[12:32] guybrush: Events.EventEmitter docu
[12:32] guybrush: micheil: the doc will have new look too?
[12:32] micheil: http://static.brandedcode.com/node-doc/events.html
[12:33] micheil: that's the current look, as to whether it will change is up to ryah 
[12:33] micheil: was at: http://nodejs.org/api.html#eventemitter-13
[12:33] guybrush: it is so essential to have good docu
[12:34] micheil: jamescarr: it's basically a simple network protocol to efficiently send and receive data in the context of a node app.
[12:34] jamescarr: ah I see
[12:34] jamescarr: ignoring the transport?:
[12:35] micheil: jamescarr: pretty much
[12:35] jamescarr: cool
[12:35] micheil: jamescarr: XEE is node-to-node, no middle man
[12:35] micheil: also, that format parses fairly quickly
[12:35] jamescarr: oh I see, built into node
[12:35] micheil: not so.
[12:35] jamescarr: just a standardized message format then?
[12:35] micheil: I don't think node will ever have it built in, unless ryah want's it.
[12:36] micheil: yeah
[12:36] micheil: so, like, XEE, may send a message like:
[12:37] micheil: {"event": "message","source":"websocket-server","data":"this is a message"}
[12:37] micheil: or something.
[12:38] micheil: there'll also be a few special events, such that they allow mesh networking of emitters..
[12:39] micheil: for example:
[12:39] jamescarr: ah I see
[12:40] micheil: {"event":"newPeer","source":"xee","data":{"ip":"124.67.23.04","port":65732}}
[12:40] jamescarr: I think using websockets for it is a novel approach...
[12:40] jamescarr: in that case, the websocket server essentially becomes a message broker
[12:40] micheil: yeah, but websockets have unneeded over head.
[12:41] micheil: so, if it's only for node-to-node, then websockets are too expensive, and we can get away with a simple net.Steam and net.Server
[12:42] micheil: I'm also thinking there'll be a process that you can run where you can tell a specific XEE Server that there is a new peer to add to the network, so you can scale out to many different XEE nodes without downtime.
[12:44] dquestions has joined the channel
[12:45] rkieffer has joined the channel
[12:46] _announcer: Twitter: "console.log(require('util').inspect(global, true)); // simple way to see all the global objects in nodejs" -- arjo. http://twitter.com/arjo/status/3790880070705152
[12:48] rkieffer: Anyone know if there's a way to iterate through all the locally defined vars?  E.g. https://gist.github.com/676139
[12:49] derren13 has joined the channel
[12:49] micheil: try for(k in this)
[12:49] micheil: but it is a dangerous thing to do.
[12:49] femtoo has joined the channel
[12:50] _announcer: Twitter: "】 【{GReader Share} Joyent Node.js open source project received funding to develop into the fast lane http://is.gd/h1WBV" [zh-CN] -- Kyle Lau. http://twitter.com/ulinkwo/status/3791822191067136
[12:50] sixtus42 has joined the channel
[12:51] rkieffer: micheil: locals aren't assigned to the 'this' property.  I don't believe that will work.
[12:52] micheil: hmm..
[12:52] micheil: I think they will be
[12:52] rkieffer: micheil: just tried it.  they aren't.
[12:52] micheil: odd.
[12:52] micheil: well, in which case you can't access them
[12:52] Nomon_: ofc locals are not assigned to this, they wouldn't be local after that :D
[12:53] rkieffer: Yeah, I'm just wondering if there might be something specific to node (or at least V8) that might make this possible.
[12:55] unomi has joined the channel
[12:56] micheil: rkieffer: probably not.
[13:08] jamescarr: the second argument to httpServer.listen is a callback for when the server has started, right!?
[13:08] jamescarr: I always put a function there and have it print "server started on port blah blah"
[13:09] jamescarr: but I noticed the api examples make it look synchronous by putting the "server started" output as a separate console.log after the server creation
[13:09] _announcer: Twitter: "node.js http://icio.us/vknkyr" -- lindad. http://twitter.com/lindadxu/status/3796667140669441
[13:10] stride: gnah.. just debugged 10 minutes until I found writeable (Stream) vs. writable (process.stdout) in 0.2.3.. guess I should finally update node..
[13:11] stride: jamescarr: you have to use the callback if you want to wait until the port is really bound to your server iirc
[13:13] Gurpartap has left the channel
[13:16] vandenoever has joined the channel
[13:16] vandenoever has joined the channel
[13:19] _announcer: Twitter: "npm convenience. node.js s amazing. No wonder this is a catch. oh." [ja] -- mooz. http://twitter.com/stillpedant/status/3799057944285184
[13:19] vandenoever: ACTION wonders if jsdom can serialize to xml
[13:25] _announcer: Twitter: "Node.js REPL is nice, not sure if Rhino has similar. Still feels a bit odd writing JS on the console but quite cool." -- Nick Martin. http://twitter.com/ntmartin/status/3800672256401408
[13:31] polotek has joined the channel
[13:32] unomi has joined the channel
[13:33] tisba has joined the channel
[13:35] SamuraiJack has joined the channel
[13:36] rnewson has joined the channel
[13:37] boaz has joined the channel
[13:42] cloudhead has joined the channel
[13:43] mytrile has joined the channel
[13:50] polotek: I thought the node repl had command history built in now
[13:50] polotek: although I'm not sure where  I got that impression
[13:55] superjudge has joined the channel
[13:57] hornbeck_ has joined the channel
[13:59] _announcer: Twitter: "Wow, node.js looks really cool b4 9am on a Sunday." -- Chris McGee. http://twitter.com/seeteegee/status/3809200375332864
[13:59] tisba has joined the channel
[14:00] _announcer: Twitter: "Best quote for node.js: "Everything runs in parallel, except for your program." So my program becomes one big mutex. #mindblown" -- Chris McGee. http://twitter.com/seeteegee/status/3809615275892736
[14:03] Anti-X has joined the channel
[14:03] tisba has joined the channel
[14:07] Nohryb has joined the channel
[14:08] tisba has joined the channel
[14:08] Mic92 has joined the channel
[14:10] herbySk has joined the channel
[14:11] _announcer: Twitter: "@joyent are you still giving out coupon codes for #nodejs smartmachine?" -- Fabrizio Codello. http://twitter.com/Fabryz/status/3812176515047424
[14:11] altnight has joined the channel
[14:11] delapouite has joined the channel
[14:14] Anti-X has joined the channel
[14:14] altnight has left the channel
[14:15] tony_ has joined the channel
[14:18] _announcer: Twitter: "Oh but then how does a node.js http server handle multiple requests at once? #thebigquestion" -- Chris McGee. http://twitter.com/seeteegee/status/3814014563917824
[14:19] hzin_ has joined the channel
[14:20] _announcer: Twitter: "Some people there seems to be interested in Intramart node.js http://oss.intra-mart.org/pipermail/open-im-dev/2010-November/000168.html" [ja] -- Yohei Sasaki. http://twitter.com/yssk22/status/3814493540851712
[14:25] ooooPsss has joined the channel
[14:25] herbySk74 has joined the channel
[14:26] tprice: would it be good to read an html file into an array for latter use?
[14:27] jamescarr: no
[14:27] tprice: why?
[14:27] jamescarr: well, only if you know how big it is
[14:27] jamescarr: but most likely you will not, so reading it into an array will take up gobs of memory
[14:27] jamescarr: especially if this is on a server
[14:28] ako has joined the channel
[14:29] tprice: 10 files 80kb not that big
[14:29] tprice: im just thinking of cutting down file reads
[14:29] tprice: only do it once at the start
[14:32] cardona507 has joined the channel
[14:32] braddunbar has joined the channel
[14:33] tisba has joined the channel
[14:33] rnewson has joined the channel
[14:34] _announcer: Twitter: "Palm webOS 2.0 has a new feature found in the JavaScript Service. Node.js embed in a JS web server platform in Sikkim" [ko] -- Seonman Kim. http://twitter.com/seonman/status/3817943926317056
[14:36] mbrochh has joined the channel
[14:37] rnewson has joined the channel
[14:39] _announcer: Twitter: "@pthulin try installing nodejs… much faster with it (:" -- Antoine Abt. http://twitter.com/brankgnol/status/3819383713439745
[14:41] Nohryb has joined the channel
[14:48] MattJ100 has joined the channel
[14:49] pandark_ has joined the channel
[14:54] _announcer: Twitter: "Playing with #nodeJS (http://nodejs.org) it's really interesting !" -- Nicolas Vahlas. http://twitter.com/nvahlas/status/3823018786684928
[14:54] necrodearia has joined the channel
[14:56] Mic92: The following problem should be easy to solve by some of you: https://gist.github.com/676215
[14:57] tony_ has joined the channel
[14:57] Mic92: I updated it.
[14:58] bradleymeck has joined the channel
[15:01] Mic92: argh gist's edit features are pure.
[15:03] bnoordhuis has joined the channel
[15:05] sveimac has joined the channel
[15:08] jchris has joined the channel
[15:10] rnewson has joined the channel
[15:11] davidc_: nodejitsu down right?
[15:12] mikew3c_ has joined the channel
[15:16] dnolen has joined the channel
[15:17] rnewson has joined the channel
[15:17] achristianson has joined the channel
[15:18] karboh has joined the channel
[15:20] kodisha has joined the channel
[15:24] smtlaissezfaire has joined the channel
[15:25] rnewson has joined the channel
[15:25] rnewson has joined the channel
[15:27] femtoo has joined the channel
[15:27] _announcer: Twitter: "I just found http://howtonode.org/ Great site for #node.js beginners" -- Krzysztof Kula. http://twitter.com/krzychukula/status/3831435228090369
[15:28] stagas: davidc_: yeah
[15:28] davidc_: Okidok.
[15:28] davidc_: Thanks.
[15:29] jchris has joined the channel
[15:30] ehaas has joined the channel
[15:32] alexmchale has joined the channel
[15:34] noahcampbell has joined the channel
[15:35] alexmchale: Anyone use node.js with redis here?
[15:35] sveimac_ has joined the channel
[15:35] mjr_: I sure do.
[15:36] alexmchale: Have you run into any problems with BLPOP?
[15:36] mjr_: I haven't, but I don't use it regularly.
[15:36] mjr_: What problems ar eyou having>
[15:36] mjr_: For me, I'm having a problem typing.
[15:36] alexmchale: It works perfectly for me from the command line --- but when I BLPOP w/ timeout of 0 from the node.js API, it seems to just start eating data w/o firing events.
[15:37] alexmchale: As in my list will remain empty forever, but my BLPOP callback never launches.
[15:37] necrodearia has joined the channel
[15:37] alexmchale: Even as data gets pushed into it.
[15:38] mjr_: hmm, that's bad
[15:38] mjr_: I have a test for blpop in the suite,but I guess its not exercising this correctly.
[15:38] mjr_: Can you distill this down to a simple example and gist it?
[15:38] mjr_: I very much want to fix this.
[15:39] mjr_: Also, what version of node and redis server are you using?
[15:41] losing has joined the channel
[15:42] alexmchale: node v0.3.1-pre, but i was using v0.3.0 when i ran into this problem ---- i upgraded in case it was a node issue that was fixed
[15:42] alexmchale: redis api v0.3.7
[15:43] mjr_: what's the first line of INFO say?
[15:43] alexmchale: One sec let me see if I can make a nice simple test demo.
[15:43] alexmchale: redis 2.1.7
[15:43] mjr_: oh, interesting
[15:43] mjr_: I've mostly been testing with 2.0.x redis server
[15:44] mjr_: I guess I need to start testing with the newer ones.
[15:48] Gruni has joined the channel
[15:49] alexmchale: Ah awesome I've got a boiled down demo that shows it. Prefer CoffeeScript or JavaScript?
[15:49] _announcer: Twitter: "Running UNIX commands in node.js http://ff.im/tJAmQ" [ko] -- Outsider. http://twitter.com/Outsider__/status/3836949160792065
[15:49] jamescarr: hmm
[15:49] mjr_: JS, please
[15:49] alexmchale: k one sec
[15:50] jamescarr: some guy committed to one of my projects... he calls a function that has setTimeout at the end to call it again in one second...
[15:50] jamescarr: Although I told him it might be better to use setInterval, I am curious...
[15:50] jamescarr: does setTimeout in that matter cause the call stack to be nested?
[15:50] jamescarr: s/matter/manner
[15:50] sudoer has joined the channel
[15:50] mjr_: setTimeout should unwind the stack
[15:51] alexmchale: Ok now with this demo, if you comment out the popOneItem line at the bottom and run the script to add some items to the list it's working with (or add them by hand to buggy-pop-demo), then re-add the popOneItem line --> it'll successfully pop all items that exist in the list at the start.
[15:51] mjr_: just like setinterval
[15:51] jamescarr: i.e. function foo(a){ console.log(a); setTimeout(foo, 1000); }
[15:51] jamescarr: ah okay
[15:51] mjr_: I think setTimeout and setInterval are implemented almost identically.
[15:53] alexmchale: Oh shoot
[15:53] alexmchale: Nevermind. I'm dumb.
[15:54] liar has joined the channel
[15:54] alexmchale: The reason it seemed buggy was because I was using the same client for the push as for the pop. That means that once the pop was blocking, no pushes would ever make it to the database.
[15:55] alexmchale:  /facepalm
[15:55] mjr_: oh yeah, that's for sure going to happen
[15:55] alexmchale: Ok, nevermind, all is right in the world :-)
[15:55] alexmchale: Thanks for writing the API. It's a joy to work with.
[15:55] mjr_: cool, glad you like it.
[15:56] mjr_: I'm eager to make it as solid as it can be.  If you run into issues, please report them.
[15:56] alexmchale: I particularly like the consistency of the (err, res) params to the continuations.
[15:56] SkyMarshal has joined the channel
[15:57] alexmchale: Sure will.
[15:57] alexmchale: Glad I can get back to my project, heh.
[15:57] alexmchale: I've been messing with this for hours.
[15:57] mjr_: I guess that should be documented better.  doing blpop or subscribe will prevent future commands on the same client.
[15:58] alexmchale: It makes complete sense. I was just not thinking it through.
[15:58] rnewson has joined the channel
[15:58] rnewson has joined the channel
[15:59] alexmchale: Do you know, if you require("redis") twice in node.js -- does it load the lib twice, or does it use the existing copy in memory?
[15:59] mjr_: second time is from cache
[15:59] mjr_: Also note that require is always blocking, so try to do it at the beginning.
[16:02] mbrochh has joined the channel
[16:03] maushu has joined the channel
[16:03] stalled has joined the channel
[16:03] maushu: Virtualbox, why must you complicate things?
[16:03] alexmchale: Does your api reconnect if the connection dies, or do I need a new client instance?
[16:04] bradleymeck: maushu ubu in vb?
[16:04] maushu: Yup.
[16:05] maushu: I'm currently using NAT and want to add Host-Only.
[16:05] maushu: I somewhat screw everything and lose NAT and don't get Host-Only.
[16:05] sveimac has joined the channel
[16:06] _announcer: Twitter: "Gravity Bongs & Node.js early on Sunday morning. :)" -- A.J. Cates. http://twitter.com/ajcates/status/3841158492979200
[16:06] mjr_: alexmchale: it'll reconnect
[16:09] miccolis has joined the channel
[16:09] _announcer: Twitter: "Thinking about shutting down my godaddy hosting and moving to slicehost and running everything off node.js, thoughts?" -- Andrew Lowther. http://twitter.com/AndrewLowther/status/3841877061140480
[16:13] jamescarr: am I wrong in saying that node.js implements the commonjs module 1.0 spec with the exception that it doesnt support the core modules defined in it?
[16:14] bradleymeck: it is not 100% the same, largely node is more flexible in what you can import
[16:14] bradleymeck: but it is compatible, so if you use commonjs you are fine
[16:15] jpld has joined the channel
[16:18] _announcer: Twitter: "2 @ asela years in Sri Lanka have been drinking with friends. Children's stories and Buddhism, quantum theory, language, jQuery, node.js, Kitou to talk to a boy and malt, I had to meet within a year or two. I Bunahabun delicious." [ja] -- miyake chikara. http://twitter.com/chikaram/status/3844319387582464
[16:19] bradleymeck: O-o
[16:19] jamescarr: I noticed the children attribute of module... it never gets populated
[16:20] jamescarr: how does it get populated, outside of a module populating it itself via module.children.push({}); ?
[16:22] bradleymeck: did commonjs add a children thing? /goes to look
[16:22] Aikar: people actually use godaddy hosting? do they not read reviews?
[16:23] bradleymeck: jamescarr i dont see any .children in the spec?
[16:24] stride: bradleymeck: the attribute exists in node
[16:24] jamescarr: bradleymeck, no, but do a console.dir(module) in any module
[16:24] jamescarr: there is a children array in it
[16:24] bradleymeck: mmm, not documented to my knowledge
[16:25] jamescarr: yeah, in that case I wont touch it. 99.99% of the time all people will use is exports :)
[16:25] bradleymeck: doesnt do anything looking at the code
[16:26] bradleymeck: except be shared somewhat like exports
[16:28] galaxywatcher has joined the channel
[16:30] liar has joined the channel
[16:32] sveimac has joined the channel
[16:34] elijah-mbp has joined the channel
[16:35] _announcer: Twitter: "Wrote: Shindig wave feature of drawing a simple chat achieved feat. Node.js and Socket.IO - love and courage and beer http://d.hatena.ne.jp/zentoo/20101114/1289751462" [ja] -- ぜんとくん. http://twitter.com/zentooo/status/3848379813593088
[16:36] Aikar: love and courage and beer
[16:36] Aikar: lets get up with this guy!
[16:36] brianmario has joined the channel
[16:37] sudoer has joined the channel
[16:37] ako has joined the channel
[16:38] _announcer: Twitter: "So @graphnode recommended linode instead, which looks like better value :D who wants to run a node.js server with me?" -- Andrew Lowther. http://twitter.com/AndrewLowther/status/3849158234476544
[16:40] sixtus42 has joined the channel
[16:45] prettyrobots has joined the channel
[16:47] meandi has joined the channel
[16:47] AutomaticPixel has joined the channel
[16:48] ph^ has joined the channel
[16:49] alexmchale: Are any of the node.js unit testing frameworks gaining momentum? Not sure what I should be looking at.
[16:50] phiggins has joined the channel
[16:51] javruben has joined the channel
[16:51] jamescarr: vows or expresso at the moment
[16:52] programble has joined the channel
[16:53] bradleymeck: i find it a bit funny that there is no CSS selector engine right now that you can cache a parsed query before it is executed...
[16:56] _announcer: Twitter: "I must thank @ JakubNesetril for excellent lecture on the # # NodeJS WebExpoDigest" [cs] -- Augi. http://twitter.com/AugiCZ/status/3853769364217856
[16:58] _announcer: Twitter: "The node.js ecosystem made some impressive progressive since I last looked at it. Very exciting." -- haselbach. http://twitter.com/haselbach/status/3854413009526784
[17:01] davidascher has joined the channel
[17:03] agilandfast has joined the channel
[17:04] WRA has joined the channel
[17:05] tylerstalder_ has joined the channel
[17:07] rajeshsr has joined the channel
[17:08] mikeal has joined the channel
[17:11] sudoer has joined the channel
[17:11] siculars has joined the channel
[17:17] phiggins has joined the channel
[17:21] jamescarr: hmmm
[17:23] erlnoob has joined the channel
[17:24] agilandfast has joined the channel
[17:24] davidc_: alexmchale, I like expresso too :)
[17:26] losing has joined the channel
[17:26] jamescarr: is this statement truthy or falsy?
[17:26] jamescarr: Another interesting fact to note is that modules get cached the first time they're required so that node doesn't read from the fs in subsequent inclusions of the same module.
[17:26] Twelve-60 has joined the channel
[17:31] dipser has joined the channel
[17:32] jchris has joined the channel
[17:36] stride: jamescarr: yeah
[17:37] stride: writing on a blog post? :)
[17:37] jamescarr: stride, no, refining my intro to node.js talk
[17:37] jamescarr: woprking on the slides :)
[17:38] stride: ah, nice :)
[17:38] jamescarr: it's an intro to node.js, but I'm kind of going in deep in the slides
[17:39] jamescarr: covering the module system, event emitters, npm, express, websockets, and pgriess's webworker module
[17:39] stride: nice captain america picture there.. :D
[17:39] jamescarr: oh thats old :(
[17:39] jamescarr: and embarrassingly bad :)
[17:40] jamescarr: not the photo, but the slide deck ;)
[17:40] stride: I saw a video of my first talk at a conference last week.. my student haircut totally beats your outfit.. :)
[17:41] ako: oh yea? i got a stundent hairuncut :v
[17:41] stride: :)
[17:41] AAA_awright_ has joined the channel
[17:42] ako: -n :f
[17:42] inimino has joined the channel
[17:42] ako: boy, that took me long... to figure out why that word looked so stupid :>
[17:43] _announcer: Twitter: "I play with and # # nodejs jsdom (DOM implementation for CommonJS!), The possibilities are endless: http://bit.ly/b8fr2Y" [fr] -- Pierre Bertet. http://twitter.com/bpierre/status/3865521040658432
[17:45] _announcer: Twitter: "uffff un webserver en javascript http://nodejs.org/" -- bedomax. http://twitter.com/bedomax/status/3866200119451648
[17:45] prettyrobots has joined the channel
[17:46] Aikar: UNFFFF
[17:47] _announcer: Twitter: "@ Finscn node.js it, they sent my phone and said point of nice things. . .囧" [zh-CN] -- lordhong. http://twitter.com/lordhong/status/3866540118122496
[17:48] tapwater has joined the channel
[17:50] bpadalino has joined the channel
[17:52] sanduz2 has joined the channel
[17:52] _announcer: Twitter: "Creating safe and composable 'mixins' with traits.js http://bit.ly/aKPmIj thanks to #nodejs I'm really appreciating javascript." -- Craig W. http://twitter.com/mind_scratch/status/3867795620110336
[17:54] ben_alman has joined the channel
[17:57] _announcer: Twitter: "Writing a proper/working MongoDB session store for ExpressJS #nodejs" -- Dav Glass. http://twitter.com/davglass/status/3869019316686848
[18:05] bradleymeck: another poorly written blog post done
[18:05] dgathright has joined the channel
[18:06] murz has joined the channel
[18:06] spetrea-home has joined the channel
[18:07] ewdafa has joined the channel
[18:16] dgathright has joined the channel
[18:20] johan_bouveng: hello folks
[18:21] ako: mape, that rgba thing... i just remembered... there is a hack for that
[18:21] ako: you can simulate a rgba background with a filter which creates a gradient which uses the same colors for start and stop
[18:22] ako: -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#550000FF, endColorstr=#550000FF)"; /* ie8 */
[18:22] ako: filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#550000FF, endColorstr=#550000FF); /* ie6-7*/
[18:22] zemanel has joined the channel
[18:22] johan_bouveng: yes
[18:22] johan_bouveng: that works good.
[18:22] ako: that's like rgba(0,0,255,0.33)
[18:24] johan_bouveng: a few more lines and its x browser
[18:24] johan_bouveng: http://pastie.org/1297485
[18:25] johan_bouveng: thats my version that i have used in prod. for a while now in various projects.
[18:25] ako: the last * shouldnt be there
[18:25] stride: rgb fallback before rgba? does that work crossbrowser in this order?
[18:25] johan_bouveng: ako: huh?
[18:26] ako: * = ie6/7
[18:26] ako: -ms-filter is for ie8
[18:27] _announcer: Twitter: "nice interview with @ # felixge on nodejs http://chaosradio.ccc.de/cre167.html" [de] -- Oleg Slobodskoi. http://twitter.com/oleg008/status/3876667030245376
[18:28] johan_bouveng: ako: oh, yes, thats right.
[18:28] tg has joined the channel
[18:28] shockie has joined the channel
[18:29] _announcer: Twitter: "Been testing a new Node.js & GT.M Twitter voting system" -- rtweed. http://twitter.com/rtweed/status/3877314576261120
[18:31] jpld has joined the channel
[18:33] shockie has joined the channel
[18:34] Fullmoon has joined the channel
[18:34] robotarmy has joined the channel
[18:35] _announcer: Twitter: "Super duper awesomepants, "Installing Node.js on a Dreamhost Shared Server." http://bit.ly/9aHAGI" -- Ara Pehlivanian. http://twitter.com/ara_p/status/3878693399166977
[18:35] achristianson has joined the channel
[18:37] _announcer: Twitter: "Installing Node.js on a Dreamhost Shared Server » Dan Dean http://ff.im/-tJXRz" -- Walter Rumsby. http://twitter.com/wrumsby/status/3879307403329536
[18:37] johan_bouveng: micheil: evening!
[18:38] johan_bouveng: :P
[18:38] ph^ has joined the channel
[18:43] Pilate has joined the channel
[18:43] Pilate has joined the channel
[18:51] joemccann has joined the channel
[18:53] joemccann: anyone know how to modify the expires header in express apps?
[18:56] smtlaissezfaire has joined the channel
[18:56] johan_bouveng: res.header?
[18:56] johan_bouveng: i think
[18:56] johan_bouveng: hm
[18:56] johan_bouveng: no, sorry.
[18:59] johan_bouveng: joemccann: if u find out, let me know :)
[18:59] johan_bouveng: im also playing with express.js
[19:00] superjudge has joined the channel
[19:00] joemccann: yeah by default it sets a one month expires header
[19:00] joemccann: some shit i want to have that, but others not so much
[19:01] dnolen has joined the channel
[19:03] femtooo has joined the channel
[19:06] miccolis has joined the channel
[19:06] johan_bouveng: joemccann: what u building with express? just curious.
[19:07] joemccann: johan_bouveng: all kiinds of shit right now
[19:07] joemccann: porting my current portfolio site to express:  subprint.com
[19:07] joemccann: nearly complete
[19:07] joemccann: but i have random apps as well:  http://evented.io:3001
[19:08] johan_bouveng: okay, nice.
[19:09] unomi has joined the channel
[19:10] johan_bouveng: joemccann: eerrhm, you have some code to share? im learning... nice to se working examples and such..? =)
[19:10] johan_bouveng: joemccann: really little docs out there. :/
[19:10] joemccann: yeah im gonna open source my subprint.com port
[19:10] joemccann: subprint.com was all php
[19:10] joemccann: now it is all express
[19:11] stride: nice design
[19:11] joemccann: but im building a json data store of all the content....taking some time for the conversion of the data/content
[19:11] joemccann: stride: thx!
[19:11] jpld has joined the channel
[19:11] jpld has joined the channel
[19:13] Shiem has joined the channel
[19:13] _announcer: Twitter: "Collected first ideas to make node-usb work with libusb asynchronous API. It *should* work... #node.js #libusb #node-usb" -- Schakko. http://twitter.com/schakko/status/3888274431016960
[19:13] johan_bouveng: joemccann: what do you use more than express?
[19:14] johan_bouveng: joemccann: im trying to rock node.js+express.js+mongodb
[19:15] joemccann: johan_bouveng: currently i'm using nginx to reverse proxy to node. need to spin up spawn-fcgi to run the wordpress blog and nginx serves static files super fast
[19:15] joemccann: so it's not technically 100% all node, but i prefer this setup until node is 99% rock solid
[19:15] joemccann: so, nginx, express, and couchdb
[19:15] joemccann: i try to keep a lot of stuff "in memory" if the apps are small
[19:15] joemccann: for example
[19:16] joemccann: https://github.com/joemccann/shawtie
[19:17] joemccann: is an in-memory url shortener for node a la express
[19:17] johan_bouveng: coolio
[19:17] polotek: okay I've got a data question for the room
[19:17] johan_bouveng: ACTION is in a chat room
[19:17] joemccann: but i don't need a true db in this case so i just keep it in memory and write to a .json file for bakcup
[19:17] johan_bouveng: joemccann: ok, where u based btw?
[19:17] polotek: I need to store a list of ids
[19:18] joemccann: RAM is cheap nowadays so max that shit out when you can
[19:18] polotek: The ids point to other data, but the list of ids is the primary structure
[19:18] joemccann: johan_bouveng: im in Austin, Tx
[19:18] polotek: The list is ordered and the first id in the list is the "head"
[19:18] polotek: it's a linked list basically
[19:18] johan_bouveng: joemccann: ur profile told me =)
[19:18] johan_bouveng: joemccann: now im following :>
[19:18] joemccann: on twitter?
[19:18] polotek: I need to query by the head id
[19:18] johan_bouveng: joemccann: no on gitter
[19:18] johan_bouveng: ;)
[19:19] joemccann: ahh derp
[19:19] polotek: and I need to query for an id and get any lists that contain that id in them
[19:19] shiemedelbrock has joined the channel
[19:19] johan_bouveng: joemccann: can follow on the birdie aswell.
[19:19] joemccann: johan_bouveng: huh? twitter?
[19:19] johan_bouveng: yah
[19:19] stride: polotek: and where's your problem? :)
[19:20] johan_bouveng: joemccann: whats your twitter? 
[19:20] polotek: I'm thinking about how to store them for maximum convienience
[19:20] polotek: convenience*
[19:20] stride: what data type are the IDs? random numbers, a count, a hash, ..?
[19:21] polotek: stride: just strings
[19:21] polotek: {"head": ["headid", "nextid", "3rdid", ...]}
[19:21] polotek: that's basically it
[19:21] johan_bouveng: stride: the count: http://blogs.ajc.com/jeff-schultz-blog/files/2009/10/the-count.jpg
[19:22] davidascher has joined the channel
[19:22] stride: polotek: easiest is probably storing them in an object (which is a hashtable, should do okay for lookups)
[19:22] niko has joined the channel
[19:22] polotek: actually the key should also be "headid"
[19:22] stride: johan_bouveng: :D
[19:22] jpld has joined the channel
[19:22] polotek: stride: yeah, primary key lookups is not a problem
[19:22] polotek: but how best to also allow searching on the list
[19:22] almaisan-away has joined the channel
[19:23] polotek: I was thinking redis
[19:23] johan_bouveng: joemccann: ping.
[19:23] polotek: it's kickass at sets and hashes
[19:23] stride: polotek: just make your [] a {} as well? if it's just a small data size
[19:23] polotek: but I'm not entirely sure how to organize the data there so I can query it the way I want
[19:23] stride: oh, something external, no idea :)
[19:24] polotek: stride: yeah, these need to be persisted
[19:24] stride: nStore maybe, although I don't know how that performs
[19:24] johan_bouveng: joemccann: following! follow back!
[19:24] joemccann: sorry
[19:24] joemccann: i got @phiggins at my house and we're enjoying our lazy sunday
[19:24] rbranson: polotek: just store another mapping of id -> prikey
[19:25] johan_bouveng: joemccann: jalapenos i can se..
[19:25] joemccann: johan_bouveng: dude, i was just in Sweden!
[19:26] polotek: rbranson: yeah, that's possible
[19:26] polotek: so anytime another item is added to a list
[19:26] johan_bouveng: joemccann: aha where?
[19:26] stephank has joined the channel
[19:26] polotek: also create a new entry for that items id pointing back to the list head
[19:26] joemccann: johan_bouveng: stockholm, i was speaking at Android Only
[19:26] rbranson: yup
[19:26] rbranson: that's what database indexing does under the covers
[19:27] johan_bouveng: joemccann: okay, im in south sweden, malm�, work in copenhagen, denmark,
[19:27] jakehow has joined the channel
[19:27] johan_bouveng: joemccann: you android dev?
[19:27] joemccann: i know where Malmo is.  I used to have a couple hard techno record labels years ago and one of the producers on my label was from Malmo
[19:28] polotek: rbranson: then why am I doing it? ;)
[19:28] joemccann: johan_bouveng: i do it all...android, iphone, ipad, web, embedded, whatever 
[19:28] polotek: was hoping redis sets could do that for me
[19:28] rbranson: polotek: redis isn't going to do it for you, if you want to use redis
[19:28] johan_bouveng: joemccann: cool, freelance?
[19:28] joemccann: johan_bouveng: i work at frog design:  www.frogdesign.com
[19:28] polotek: ah, rbranson what's the latest on node-ffi? anything using it yet?
[19:29] rbranson: if you've got a list of pkey -> [id, id, id...], and you want to search by "id", you'll have to create another table with id -> [pkey, pkey, pkey...] mapping
[19:29] rbranson: polotek: joyent/no.de is the only thing I've heard
[19:29] polotek: rbranson: what are they doing with it?
[19:29] johan_bouveng: joemccann: okay. we are building an android app at the moment at work, or, i mean, its outsourced.
[19:29] rbranson: using it to interface with solaris APIs
[19:30] joemccann: johan_bouveng: nice...i like android dev best, but ipad is fun as hell to develop on
[19:30] rbranson: i haven't heard any complaints since orlandov patched a Solaris bug a month or so ago, so I'm assuming it's perfect ;)
[19:30] polotek: rbranson: it can't handle complex types yet right?
[19:30] joemccann: johan_bouveng: do you have an iphone or and android device or something else?
[19:30] tylerstalder has joined the channel
[19:30] rbranson: it has an undocumented Struct type
[19:30] johan_bouveng: joemccann: im apple boy =)
[19:30] rbranson: but you can do complex types if you want
[19:30] rbranson: it's just not straightforward
[19:30] johan_bouveng: joemccann: but android will be big. i can feel it.
[19:31] adambeynon has joined the channel
[19:31] polotek: sorry to divert from my previous topic
[19:31] rbranson: you'll have to know the size of the data structure, allocate a Pointer object for it of the right size, and read/write to the right offsets
[19:31] polotek: thanks for the input
[19:31] joemccann: johan_bouveng: yeah i agree
[19:31] rbranson: if you don't... segfault :D
[19:31] polotek: anyway, I was really interested in node-ffi for libxmljs
[19:31] johan_bouveng: joemccann: love my iphone tough.
[19:31] johan_bouveng: rbranson: hi man.
[19:32] rbranson: is the struct type issue a problem?
[19:32] rbranson: i probably just need to spend a few hours with it honestly
[19:32] joemccann: johan_bouveng: i love the iphone 4...sick device...but I can do so much more on my Nexus One it's silly
[19:32] polotek: rbranson: I haven't tried anything out yet
[19:32] jmar777 has joined the channel
[19:32] johan_bouveng: joemccann: more like what?
[19:32] polotek: I need to get out a new release on the current roadmap before I start thinking about rearchitecting :)
[19:32] johan_bouveng: joemccann: as an aviator i love the gyro :P
[19:32] boaz has joined the channel
[19:33] polotek: and I"ve been severely procrastinating on that
[19:33] joemccann: johan_bouveng: tethering, carrier unlocked, 720p video recording, etc
[19:34] jmar777: hey - any suggestions on a good benchmark utility for testing high concurrency on node? Apache benchmark always dies over socket errors, and loadUI seems very buggy
[19:34] derren13 has joined the channel
[19:34] polotek: jmar777: seige
[19:34] johan_bouveng: joemccann: iphone can do tethering and video recording?
[19:35] polotek: er. siege http://www.joedog.org/index/siege-home
[19:35] joemccann: johan_bouveng: when i was in berlin i was able to buy a data sim, throw it in my nexus one, create wifi hostpost and then me and 5 of my friends all had data access
[19:35] johan_bouveng: joemccann: neaat.
[19:35] joemccann: johan_bouveng: in the stats, iphone can't do tethering without jailbreaking
[19:35] jmar777: polotek: thanks - will definitely try it out
[19:35] johan_bouveng: joemccann: in the states?
[19:35] joemccann: in the States, yeah
[19:35] johan_bouveng: joemccann: ok, why? that sucks. works fine here in .se .=
[19:35] johan_bouveng: :)
[19:36] danslo has joined the channel
[19:36] mikeal has joined the channel
[19:36] johan_bouveng: joemccann: and what about video, ip4 does full hd rec.
[19:36] joemccann: right, but n1 came out way berfore iphone 4
[19:36] johan_bouveng: yeye
[19:37] johan_bouveng: =)
[19:37] joemccann: so i actually love the iphone 4, but from hackability perspective i like the nexus one better
[19:38] matjas has joined the channel
[19:38] johan_bouveng: joemccann: yeah, okay
[19:38] joemccann: johan_bouveng: and the ipad is awesome...love developing apps for it
[19:38] johan_bouveng: joemccann: as said, there is little dev resources for express,node, etc in web development context. examples, snippets.
[19:39] johan_bouveng: joemccann: have only used ipad to control our parrot.droid at work. :)
[19:39] matjas has joined the channel
[19:41] twoism has joined the channel
[19:41] joemccann: johan_bouveng: there are few docs on express, node, etc, but they are coming...they are all open source projects so it is up to us to create them
[19:42] johan_bouveng: joemccann: i have been struggling as hell.
[19:42] johan_bouveng: joemccann: just got my little hobby app to be able to save data, from a form, and display it again.
[19:42] joemccann: johan_bouveng: that's a start!
[19:43] johan_bouveng: joemccann: http://eberfreitas.virb.com/blog/text/12619617 this revised blog post was a good help.
[19:44] johan_bouveng: and node book http://visionmedia.github.com/masteringnode/
[19:45] mAritz: does anyone else have problems with github right now?
[19:45] johan_bouveng: joemccann: if you have any other good sources, let me know.
[19:45] mAritz: all my repositories/watches seem to be gone.
[19:46] almaisan-away has joined the channel
[19:46] joemccann: johan_bouveng: the source code is a decent start for express...and tj is usually super response...there is a google groups mailing list as well
[19:46] johan_bouveng: yea..
[19:46] stride: mAritz: uh, yeah, mine too
[19:47] mAritz: GOD DAMNIT, i need to push something right now :(
[19:47] johan_bouveng: joemccann: whats the deal with ngnix? i did: iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8000
[19:48] joemccann: johan_bouveng: no idea...im not a backend guy ;)
[19:48] johan_bouveng: joemccann: not me either.
[19:48] joemccann: johan_bouveng: everything i know about nginx is from googling which is quite a bit
[19:49] stride: I guess http://status.github.com/ is just a static html page.. :/
[19:50] SubStack has joined the channel
[19:51] bradleymeck has joined the channel
[19:52] langworthy has joined the channel
[19:53] johan_bouveng: Object LÛÏ ¹F|A has no method 'toHexstring
[19:53] johan_bouveng: nice.
[19:54] robotarmy has joined the channel
[19:56] johan_bouveng: github is broken :/
[19:56] rbranson: yup :/
[19:56] jesusabdullah: ruh oh D:
[19:56] _announcer: Twitter: "How To Node - NodeJS:  http://howtonode.org/" -- mrique. http://twitter.com/mrique/status/3899200198672384
[19:57] johan_bouveng: i think they use sharepoint behind the scenes at github
[19:57] johan_bouveng: and that is way it wont work.
[19:57] rbranson: lulz
[19:58] rbranson: it's back
[19:58] jesusabdullah: Sharepoint?
[19:58] _announcer: Twitter: "Node.JS compiled and running on my EC2 instance. Im a happy hacker now ^_^" -- AutomaticPixel. http://twitter.com/AutomaticPixel/status/3899563576401920
[19:59] Aria has joined the channel
[20:00] johan_bouveng: jesusabdullah: yes, github is build in sharepoint with a nginx server as proxy.
[20:01] SubStack: ok what the FUCK
[20:01] SubStack: my github is gone
[20:02] Prometheus: they are experiencing some technical difficulties it seems =)
[20:03] SubStack: I can load up other people's account pages
[20:03] Pilate: idk github topic says some free accounts purged
[20:04] Prometheus: "There's a problem with the DB right now. We're looking into it. "
[20:04] Prometheus: surely they wouldn't just destroy everyone's data, that's kind of bad for business ;)
[20:04] mihbe_ has joined the channel
[20:04] SubStack: hopefully not!
[20:04] SubStack: I mean, it's git so it doesn't matter so much
[20:04] SubStack: but still
[20:05] tilgovi has joined the channel
[20:07] Aria: (this is why you keep your own repos, folks!)
[20:07] Aria: My repos are ~gone at the moment, too. We'll see.
[20:08] SubStack: Pilate: I'm a paying customer :p
[20:08] mscdex has joined the channel
[20:08] polotek: hehe, I'm a paid customer as of just recently too
[20:08] polotek: awesome
[20:09] mscdex: github?
[20:09] polotek: I do ave my own clones but I don't know what state they're in
[20:09] rbranson: i doubt they lost the repos
[20:09] polotek: rbranson: yeah, unlikely
[20:09] Aikar: some of the clusters are prolly misbehaving and the missing ppl are on the bad cluster
[20:09] mscdex: i hope they didn't store their backup in a git repo
[20:09] mscdex: ;-)
[20:09] rbranson: yeah they keep all their backups on github
[20:09] rbranson: o wait
[20:10] polotek: all the actual repos are on redundant disks. db problem just means they can't find them
[20:10] polotek: sucks to work at github right now
[20:11] mscdex: lol
[20:11] johan_bouveng: anyone good with jade?
[20:11] Aria: Or rocks if paid hourly ;-)
[20:12] polotek: indeed
[20:12] johan_bouveng: im trying to translate %a{href: "/blog/" + article._id.toHexString()}= article.title , which is HAML, to jade.
[20:12] johan_bouveng: at lest teh _id.toHexString() part.
[20:14] margh has joined the channel
[20:14] unomi has joined the channel
[20:14] polotek: I just realized I'm doing too much with this at this early stage
[20:15] tisba_ has joined the channel
[20:16] captain_morgan has joined the channel
[20:16] margh: hey, im new to nodejs and js, and playing arround with a small chat based on socket.io example... i have a strange problem, is it possible that i cant send a hash via socket.send() and just a string?
[20:16] _announcer: Twitter: "RabbitMQ + Node.JS = rabbit.js http://bit.ly/a3a5Ao /cc @rak5hasa" -- Uwe Dauernheim. http://twitter.com/uwe_/status/3904203571331072
[20:17] rtomayko has joined the channel
[20:18] twoism has joined the channel
[20:18] Dreamer3: margh: send json
[20:18] Dreamer3: parse it on the client
[20:18] ph^ has joined the channel
[20:18] Dreamer3: don't know anything specific though
[20:19] margh: i tried var = [foe1, foe2, foe3] but that didnt work correct either
[20:19] Dreamer3: then send a string
[20:19] Dreamer3: that's what json is for
[20:19] margh: ok, ill try, thx a lot
[20:19] jesusabdullah: JSON.stringify([foo, bar, baz])
[20:21] Dreamer3: though you'd think a socket could do that automatically if you \0 separated packets or something
[20:21] Dreamer3: you could abstract the encode/decode
[20:22] tylerstalder has joined the channel
[20:23] matjas has joined the channel
[20:29] robotarmy has joined the channel
[20:33] sixtus42 has joined the channel
[20:33] Ezku\_ has joined the channel
[20:34] johan_bouveng: http://github.com/blog/148-github-shirts-now-available
[20:34] johan_bouveng: you cant buy tshirts!!!!!!!!!!!!!!!!!!!!!!111
[20:35] BrianTheCoder has joined the channel
[20:36] Aikar: http://github.com/cloudant/bigcouch/wiki/troubleshooting    lol nice unicorn
[20:37] mscdex: the unicorn could use a little more cowbell
[20:39] stride: the unicorn urges me to play this stupid flash game
[20:39] saschagehlich has joined the channel
[20:40] robotarmy has joined the channel
[20:40] jesusabdullah: Hold on
[20:40] jesusabdullah: To the night
[20:40] jesusabdullah: there will BEEE no SHAAAME!
[20:41] jesusabdullah: Dammit *I* wanna play Robot Unicorn Attack now
[20:41] b_erb has joined the channel
[20:42] zomgbie has joined the channel
[20:42] TobiasFar has joined the channel
[20:43] b_erb: what's the best way to implement something like an plugin infrastructure where modules should be forced to export some methods? in java i'd expose the API as an interface, but what's the right way in js?
[20:43] AutomaticPixel has joined the channel
[20:44] polotek: b_erb: my first advice is not to try to program js like java :)
[20:44] sixtus42: there is no force in js, but you can validate the module on load
[20:44] polotek: yeah, basically you would pass the module into some validation function
[20:45] b_erb: polotek: that's the reason i came here. i don't want to copy the behaviour of java. 
[20:45] polotek: and if it doesn't implement your interface, throw an error
[20:45] b_erb: so some kind of introspection and dynamic invocation?
[20:45] polotek: b_erb: yep
[20:45] stride: you can define a module that exports some common prototype and check if newmodule instanceof YourPrototypeClass as well
[20:46] joemccann has joined the channel
[20:47] polotek: I've never done a plugin type of thing before
[20:47] polotek: But assuming they need to "register" their module with your plugin system
[20:48] polotek: you could do the validation at registration time
[20:48] rnewson has joined the channel
[20:48] rnewson has joined the channel
[20:48] stride: hm. I have an example for that somewhere I think.. oh right, on github.. :D
[20:49] mscdex: huhu
[20:50] mscdex: github withdrawal
[20:50] dnyy: has anyone built a fairly large app around websockets/socket.io? i could use some pointers on the best way of passing data around and keeping stuff organized. would be awesome if someone knows of a good open source app i could look at.
[20:50] dnyy: only examples i can find are small chat apps and such. :(
[20:55] mr_daniel has joined the channel
[20:55] robotarmy has joined the channel
[20:56] AAA_awright_ has joined the channel
[20:58] bradleymeck: some of the node knockout stuff has that, like speedo
[20:59] polotek: dnyy: you want to talk to micheil
[21:00] dnyy: micheil: ping
[21:04] webr3: dnyy, if you get any pointers can you write up a quick blog post or something?
[21:05] jetienne has joined the channel
[21:06] dnyy: webr3: I don’t have a blog, but if I can remember the name of that small app that lets you write quick notes/posts I will. :p There’s definitely a lack of information out there.
[21:06] polotek: anyone more than a little familiar with the step library?
[21:07] stride: posterous?
[21:07] polotek: dnyy: micheil has an open source app on his github
[21:07] polotek: unfortunately...
[21:07] dnyy: hah, nice ;_;
[21:08] SubStack: dnyy: I wrote dnode for just that purpose: routing messages sanely
[21:08] SubStack: of course, if you can route messages you can route references to callbacks
[21:08] SubStack: with has a certain insanity to it
[21:10] _announcer: Twitter: "The missus has IACGMOOH on, I'd rather watch Garrows Law, but I am really just tinkering with Node.js" -- Marc Gear. http://twitter.com/marcgear/status/3917709947437056
[21:11] naturalethic has joined the channel
[21:12] naturalethic: anyone have a local copy of node-htmlparser they can email to me?
[21:12] mikew3c_ has joined the channel
[21:12] hsuh has joined the channel
[21:13] stride: that one? http://registry.npmjs.org/htmlparser/-/htmlparser-1.6.2.tgz
[21:14] faust45 has joined the channel
[21:14] arlolra has joined the channel
[21:15] _announcer: Twitter: "Currently brainstorming app ideas that require node.js, the cloud and /dev/null.  There's gold in there somewhere." -- Mike Perham. http://twitter.com/mperham/status/3918886269358081
[21:16] _announcer: Twitter: "They didn't put the No in NoSQL and Node.js for nothing." -- Mathias Meyer. http://twitter.com/roidrage/status/3919269834260480
[21:16] naturalethic: stride: yep thanks!
[21:17] gf3 has joined the channel
[21:19] evanmeagher has joined the channel
[21:19] johan_bouveng: SubStack: u good with jade?
[21:20] maushu: Github has an unicorn.
[21:20] Ezku\_ has joined the channel
[21:21] AAA_awright: What about Jade?
[21:22] johan_bouveng: i had a question.
[21:22] johan_bouveng: =))
[21:23] johan_bouveng: i pass in an object of users in my template, that i each over, want to print the id fron mongodb, li #{user._id}
[21:24] johan_bouveng: that is however binary, it seems. i need to convert it to hex.
[21:24] johan_bouveng: and i dont know how to use toHexString() in a jade template.
[21:24] _announcer: Twitter: "One of these days I'm gonna play with Node.js. Though it's even more likely I'm gonna build something with Erlang." -- Mathias Meyer. http://twitter.com/roidrage/status/3921192981372928
[21:24] johan_bouveng: in haml you would have done: %a{href: "/blog/" + article._id.toHexString()}= article.title
[21:24] johan_bouveng: something
[21:26] justinlilly: johan_bouveng: have you looked at using the :javascript filter?
[21:26] mihbe_ has joined the channel
[21:27] micheil: morning folks//
[21:27] justinlilly: :javascript | var href = "/blog/" + article._id.toHexString();
[21:27] b_erb: stride: github seems to be online again, would you mind showing me that plugin example? thanks
[21:27] justinlilly: alternatively, give the article object the ability to construct its own url (or some intermediate object, if you prefer)
[21:27] micheil: dnyy / polotek ?
[21:29] johan_bouveng: justinlilly: ill have a look at that. github is down so i cant each the docs for jade :D
[21:30] polotek: micheil: dnyy was looking for examples of organizing an app around websockets
[21:30] micheil: okay
[21:31] micheil: odd...
[21:31] micheil: my github's missing all my repos..
[21:31] stride: b_erb: I'm still getting a server error. I'll be back in 10 and check my local backups 
[21:31] micheil: and data.
[21:31] dnyy: micheil: yeah, just trying to find some articles or example code. i’m building a decent size app that uses websockets for all the data passing, but anything i can find via google is for small apps.
[21:31] dnyy: micheil: yeah, github is currently borked. :/
[21:32] justinlilly: johan_bouveng: how do you have jade installed?
[21:32] micheil: hmm...
[21:32] johan_bouveng: justinlilly: yes
[21:32] justinlilly: johan_bouveng: *HOW* do you have it installed?
[21:32] muk_mb has joined the channel
[21:32] johan_bouveng: oh, sorry.
[21:32] muk_mb: did github just have a heart attack?
[21:33] polotek: micheil: github has been hosted for the last 30 min or so
[21:33] justinlilly: muk_mb: their db is down. #github for more info
[21:33] polotek: maybe longer
[21:33] johan_bouveng: justinlilly: hmm.. i think it came with express.js
[21:33] micheil: damn.
[21:33] muk_mb: ah, ok
[21:33] micheil: well, yeah, I did have a repo.. 
[21:33] Kami_: justinlilly, it's back
[21:33] dnyy: hah, well if you can tell me the name i’ll give it a look when they get fixed
[21:33] micheil: dnyy: would you like me to tarball it and upload it for you?
[21:33] dnyy: micheil: that’d work as well, yeah
[21:33] dnyy: i’m not in a major time rush or anything
[21:34] polotek: err.  s/hosted/hosed/
[21:34] justinlilly: johan_bouveng: it should be in the checkout. if you used npm, it should be in the root for that.
[21:34] johan_bouveng: justinlilly: http://pastie.org/1297935 that breaks, i dont know how to indent the :javascript part.
[21:34] justinlilly: I found mine in /usr/local/lib/node/.npm/jade/0.5.5/package
[21:34] johan_bouveng: let me lool
[21:34] justinlilly: wait.. pastie doesn't have reply?
[21:35] justinlilly: nm. called paste again.
[21:35] micheil: dnyy: it'll be at http://static.brandedcode.com/unsaving-daiva.zip
[21:35] justinlilly: johan_bouveng: http://pastie.org/1297943
[21:35] justinlilly: maybe try that?
[21:35] micheil: dnyy: should be uploaded now.
[21:36] stride: b_erb: http://pastebin.com/gYA1KfYg although this was only a rough draft. it requires modules that match the filename pattern (format_*.js) and checks if their exports are okay in the validation function. if that's the case they are added to a format plugin list
[21:36] dnyy: micheil: awesome, thanks a ton.
[21:36] johan_bouveng: justinlilly: expected "indent", but got "newline"
[21:36] micheil: dnyy: careful though, that code is about 3 months old.
[21:36] micheil: so apis may have changed.
[21:37] b_erb: stride: thank you
[21:37] dnyy: that’s fine, i’m more looking for concepts than actual code
[21:37] stride: b_erb: would probably be nicer code with regexp for the filename and better validation but it works, maybe it can give you a starting point :)
[21:37] micheil: dnyy: well, yeah, that'll give you a very rough idea
[21:37] micheil: dnyy: depends what sort of app you're building
[21:38] justinlilly: johan_bouveng: http://pastie.org/1297951 ??
[21:38] dnyy: micheil: something like a game, i guess. gonna have to pass player data, chat, tile placement, etc back and forth a lot
[21:38] unomi has joined the channel
[21:38] justinlilly: that's pretty much all I've got for you :-P
[21:39] justinlilly: there should totally be a simple utility for pasting jade templates back and forth (with evaluation, etc)
[21:39] dnyy: in a smaller project i just sent a ’command’ key in the JSON i sent to the server and the server would run the value of that, but that sounds like a terrible idea. :p
[21:39] robotarmy has joined the channel
[21:40] johan_bouveng: justinlilly: uuuh
[21:40] johan_bouveng: justinlilly: it outputs a