[00:00] cloudhead has joined the channel [00:00] dylang has joined the channel [00:01] shaver: isaacs: no, no { } [00:01] dguttman_ has joined the channel [00:01] isaacs: shaver: right, well, that's the "expression function" thing [00:01] shaver: oh [00:01] isaacs: shaver: but what if you wanna do this: function a (x) { alert(x) ; x } [00:01] shaver: sorry, yeah, didn't read back [00:02] isaacs: basically, just make the return optional [00:02] shaver: alert (x) ; x isn't an expression [00:02] isaacs: right [00:02] shaver: implied return is not what you want [00:02] isaacs: so you need the {} [00:02] shaver: ok [00:02] shaver: I should go back to working, alas [00:03] isaacs: plus i'd like to be able to do x(if (y) { z } else { a }) [00:03] dguttman_ has joined the channel [00:03] isaacs: (yeah, you could do that with ?:, but sometimes it gets harier) [00:04] isaacs: mape: hey, you around? [00:05] _announcer: Twitter: "Playing with nodejs and faye .. oups... sleep time already ?" -- Laurent Chardin. http://twitter.com/LaurentChardin/status/27389789981 [00:07] DTrejo_: it annoys me that twilio makes post requests to xml files to get content, and the things like node-static or connect refuse to serve the file. o welllzz [00:08] _announcer: Twitter: "Trying out node.js... awesome! Learning Server-Side JavaScript with Node.js | Nettuts+ http://bit.ly/abxlpO #developers #javascript" -- Mind Point Design. http://twitter.com/mindpointdesign/status/27390032984 [00:09] _announcer: Twitter: "@boundvariable on server side JS using NodeJS #wdx" -- wlonline. http://twitter.com/wlonline/status/27390078448 [00:09] _announcer: Twitter: "#wdx #dev Vows on the other hand is rad for Node.js testing." -- Tom. http://twitter.com/sh1mmer/status/27390097549 [00:09] Tim_Smart: DTrejo_: Interesting. Biggie-router's static module doesn't have that behaviour. It just adjusts for HEAD requests at this stage. [00:09] bentruyman: is there any sort of program to manage node the starting/stopping of apps? [00:10] jacobolus has joined the channel [00:10] Tim_Smart: bentruyman: Multi-node and spark, from memory. [00:10] _announcer: Twitter: "@grmsn personally I use Node.js all the time and I'd much rather use Node.js now than PHP." -- Tom. http://twitter.com/sh1mmer/status/27390150027 [00:10] _announcer: Twitter: "@ericpallen It's faster than #nodejs. 'Nuf said." -- Jason Huggins. http://twitter.com/hugs/status/27390170725 [00:10] dnolen has joined the channel [00:10] bentruyman: Tim_Smart: thanks, will look into [00:10] bentruyman: I just don't wanna have to do the `node app.js &` stuff :-/ [00:11] Tim_Smart: bentruyman: I usually use monit and nginx. [00:11] MikhX has joined the channel [00:11] _announcer: Twitter: "node.js and coffeescript made it to #wdx thank you Patrick Lee!" -- Michael Koukoullis. http://twitter.com/kouky/status/27390244419 [00:11] nerdEd has joined the channel [00:11] aheckmann has joined the channel [00:11] bentruyman: Tim_Smart: I probably need to look into monit again, had troubles getting it standing up on Ubuntu [00:12] Tim_Smart: bentruyman: There is one setting you have to change to make it auto-start on boot. [00:12] brianmario has joined the channel [00:12] Tim_Smart: I then rely on it to start all my other processes. [00:13] bentruyman: Tim_Smart: gotcha, thanks for the help [00:13] _announcer: Twitter: "@mattevansnz sigh, I'm so behind. Everyone is in love with node.js but I haven't touched it yet :(" -- Sam Dalton. http://twitter.com/spdalton/status/27390442552 [00:15] _announcer: Twitter: "Yum! Node.js MongoDB + on my server! We redid the backend, we redid the front end!" [fr] -- Mister Zombie. http://twitter.com/mister_zombie/status/27390528576 [00:18] marshall_law has joined the channel [00:20] hsuh has joined the channel [00:21] _announcer: Twitter: "# nodejs tinkering ... it's sooo nice:) (http://nodejs.org/ # about)" [ga] -- Nenad Mancevic. http://twitter.com/manca1/status/27391062886 [00:22] _announcer: Twitter: "I hadn't realised @heroku were trialling node.js hosting. Sweet! #wdx" -- Josh Price. http://twitter.com/joshprice/status/27391175162 [00:27] MikhX has joined the channel [00:28] mikeal has joined the channel [00:31] jakehow has joined the channel [00:34] SubStack: the haskellinjavascript source has terrible formatting [00:34] tobeytailor has joined the channel [00:36] _announcer: Twitter: "Having said that, no charging stations is a bummer, and the node.js talk by @boundvariable had no examples :/ #wdx" -- Fox Woods. http://twitter.com/foxmwoods/status/27392244374 [00:36] boaz has joined the channel [00:39] banjiewen_ has joined the channel [00:41] rubydiamond has joined the channel [00:42] _announcer: Twitter: "NodeJS discussion at Utah Web Conference #nodejs #utahwebconf" -- rileyflorence. http://twitter.com/rileyflorence/status/27392771636 [00:43] JimBastard has joined the channel [00:43] dannycoates has joined the channel [00:45] TheEmpath_ has joined the channel [00:46] _announcer: Twitter: "Rating node.js Committee for 作Ro a web application chestnut millet. I said it first." [ja] -- くわばら ひろし. http://twitter.com/kuwabarahiroshi/status/27393113524 [00:46] softdrink has joined the channel [00:47] shaver: that last one might be the best node.js tweet ever [00:47] unomi has joined the channel [00:48] _announcer: Twitter: "Our Board makes cleared before the first half of this. It is indeed. RT: @ kuwabarahiroshi: node.js Rating Board for millet click on web application 作Ro. I said it first." [ja] -- 坂上 真大. http://twitter.com/madai0517/status/27393278905 [00:49] andrewfff has joined the channel [00:51] severla has joined the channel [00:52] Tim_Smart: Web application chestnut millet? Google translate needs some more work... [00:58] dohtem has joined the channel [00:58] dohtem has joined the channel [00:58] Yuffster has joined the channel [00:59] gf3 has joined the channel [01:01] ThePub has joined the channel [01:02] aubergine has joined the channel [01:03] galaxywatcher has joined the channel [01:03] _announcer: Twitter: "What is this presentation. Cool Introduction to node.js by Toshihiro Shimizu on Prezi - http://goo.gl/ycTx" [ja] -- S Aizawa. http://twitter.com/m0201/status/27394518386 [01:04] _announcer: Twitter: "Anyone out there in #nodejs land had and good/bad experiences with Restler? http://github.com/danwrong/restler" -- Daniel Erickson. http://twitter.com/TechWraith/status/27394610953 [01:05] rex_fernando has joined the channel [01:08] matt_c has joined the channel [01:11] _announcer: Twitter: "@joshprice They had the node.js trial open for a while but are not taking any more applicants :-( /cc @heroku #wdx" -- drew robinson. http://twitter.com/ocean/status/27395182790 [01:16] hzin has joined the channel [01:17] sudoer has joined the channel [01:20] _announcer: Twitter: "Let's all welcome @dshaw in the Storify Team! http://storify.com/team #nodejs - he is also behind @storifydev" -- Storify. http://twitter.com/Storify/status/27395964128 [01:21] rcy has joined the channel [01:23] SubStack: storify eh? [01:23] ossareh has joined the channel [01:23] _announcer: Twitter: "Me, I'm done playing with this matter node.js" [ja] -- Hirohide Sano. http://twitter.com/sanojimaru/status/27396271905 [01:24] Yuffster has joined the channel [01:25] alexb_ has joined the channel [01:26] alexb_: Anyone else run into a problem with dns in node http client, namely it doesn't cache dns info at all? [01:26] bentruyman has joined the channel [01:26] lakin has joined the channel [01:27] _announcer: Twitter: "Oh the crust! Oh oh look forward RT @ sanojimaru: me, I'm done playing with this matter node.js" [ja] -- 高橋敦彦. http://twitter.com/attrip/status/27396546633 [01:28] admc_ has joined the channel [01:30] mbrochh has joined the channel [01:31] marshall_law has joined the channel [01:31] _announcer: Twitter: "Got node.js running on Cygwin on Windows in short order; pretty painless." -- Chris Bellini. http://twitter.com/bullines/status/27396877658 [01:31] _mythz has left the channel [01:32] mikeal has joined the channel [01:36] mbrochh has joined the channel [01:36] mbrochh has joined the channel [01:36] MikhX has joined the channel [01:37] hdon: hi guys :) what is the correct way to detect node? first i tried to detect require() because not all of my interpreters have require defined. i detected by hasOwnProperty('require'). this returns true in the node shell, but not from in my script which i load with node on the commandline! [01:38] hdon: donny@donny-desktop:~/src/hg/sandbox.js$ cat test-node-hasownproperty-require.js [01:38] hdon: require('sys').print(hasOwnProperty('require')+'\n'); [01:38] hdon: donny@donny-desktop:~/src/hg/sandbox.js$ node test-node-hasownproperty-require.js [01:38] hdon: false [01:39] hdon: node> hasOwnProperty('require') [01:39] hdon: true [01:39] hdon: this seems like the wrong way to go. i suspect my module scope does not have the require property, but the global scope does. [01:39] derferman has joined the channel [01:41] hdon: i can just use try{} i suppose and catch what should be a ReferenceError [01:43] c4milo has joined the channel [01:46] rex_fernando has joined the channel [01:49] banjiewen has joined the channel [01:53] _announcer: Twitter: "Reading the source of socket.io nodejs:) excited ...." [pt] -- Matheus Mendes. http://twitter.com/bigodines/status/27398727457 [01:53] alexb_: How do i close a httpclient connection ? [01:53] bpadalino: unplug your ethernet cable [01:54] alexb_: It's on ec2 [01:54] Tim_Smart: Then buy lots of monkeys to automate it. [01:55] Tim_Smart: alexb_: Otherwise, just response.end(); [01:55] danielzilla has joined the channel [01:55] derferman has joined the channel [01:56] bpadalino: oh, that may work too [02:02] alexb_: Httpclient response says it has no method end :/ [02:03] _announcer: Twitter: "databases should be written in c. git should be written in node.js" -- technowürst. http://twitter.com/technoweenie/status/27399585062 [02:05] _announcer: Twitter: "node.js wonder if I should feel like to touch" [ja] -- vinylism. http://twitter.com/vinylism/status/27399721413 [02:07] derferman has joined the channel [02:09] Yuffster_work has joined the channel [02:12] dylang: Is there a fast way to concat a bunch of arrays only keeping the uniques? [02:13] jesusabdullah: With node.js, it's ALWAYS fast! [02:13] rbranson_: i'd use the values as object keys [02:13] rbranson_: that way you get free de-dup [02:13] prettyrobots: Trying to remote debug using node. [02:13] bentruyman has joined the channel [02:13] dylang: rbranson_: i was thinking about that but i need the end result as an array (for express views) [02:14] prettyrobots: Node seems to bind to localhost, but not to the network I'm trying to debug from. [02:14] prettyrobots: Suggestions? [02:14] jesusabdullah: I don't know if there's an obvious way to write it down, though. I mean, concatenation is easy enough, but idk about de-duplication [02:14] _announcer: Twitter: "It is said that the famous nodejs framework: express connect mongoose socket.io have been joined by several of learnboost company. The company has the potential ah" [zh-CN] -- finscn. http://twitter.com/finscn/status/27400491134 [02:14] dylang: prettyrobots: you can't hit the node server from machine other than localhost? [02:14] shaver: dylang: do you need to preserve any particular order? [02:15] dylang: shaver: nope [02:15] prettyrobots: That is, I can telnet to node debugger from the machine itself to 127.0.0.1, but I can't get there from the network and no filewalls. [02:15] prettyrobots: (This "network" is Ubuntu running in VirtualBox.) [02:15] shaver: yeah, put in an object, then grab .keys of the object [02:15] Tim_Smart: prettyrobots: Bind to 0.0.0.0 [02:15] dylang: shaver: i have N arrays of names with lots of repeats. i need just one array of names. [02:15] prettyrobots: dylang: Network is fine otehrwise. [02:15] Tim_Smart: prettyrobots: Or don't set a host. [02:15] prettyrobots: What is the switch to specify bind. [02:15] dylang: prettyrobots: also try silly things like localhost. (include the dot) [02:16] prettyrobots: Tim_Smart: node --debug-brk [02:16] prettyrobots: How do I specify Bind 0.0.0.0 to the debugger? [02:16] shaver: function set(e) { o[e] = true; }; v8: var o = {}; ["a", "b"].map(set); ["a", "c"].map(set); o.keys() [02:16] shaver: v8: function set(e) { o[e] = true; }; v8: var o = {}; ["a", "b"].map(set); ["a", "c"].map(set); o.keys() [02:16] v8bot: shaver: TypeError: Object # has no method 'keys' [02:16] Tim_Smart: prettyrobots: Oh, for the debugger. [02:16] shaver: whaa? [02:16] prettyrobots: Tim_Smart: Riiigght. [02:16] dylang: shaver: Object.keys(varname) [02:17] shaver: v8: function set(e) { o[e] = true; }; v8: var o = {}; ["a", "b"].map(set); ["a", "c"].map(set); Object.keys(o) [02:17] v8bot: shaver: ["a", "b", "c"] [02:17] Tim_Smart: prettyrobots: Set up a proxy :p [02:17] prettyrobots: Tim_Smart: If you have some simple suggestion to fake it. [02:17] prettyrobots: Yeah. [02:17] prettyrobots: Proxy. [02:17] dylang: shaver: awesome, i'm using it! [02:17] prettyrobots: Tim_Smart: What is the easiest proxy? What do you reach to first? [02:17] Tim_Smart: prettyrobots: nginx is pretty easy to use. [02:18] Tim_Smart: Not sure if it support TCP protocols though. [02:18] Tim_Smart: Otherwise, just make a simple node TCP proxy. [02:18] prettyrobots: Okay. I'll try SSH. [02:18] prettyrobots: Or, yes, I've already got one of those. [02:18] Tim_Smart: prettyrobots: But yeah, SSH is cool. [02:18] Tim_Smart: With tunneling. [02:19] _announcer: Twitter: "It's amazing I change Yara node.js sore methods. If you try public samples, you should check documentation of node.js and rewrite your favorite codes:)" [ja] -- こまっしゅ. http://twitter.com/komasshu/status/27400860853 [02:20] xla has joined the channel [02:29] alexb_: Ok there is no response.end method on http client but you can emit your own end event [02:29] rex_fernando has joined the channel [02:29] Me1000 has joined the channel [02:32] bartt has joined the channel [02:32] meso has joined the channel [02:34] _announcer: Twitter: "My presentation on end-to-end JavaScript and NodeJS at the Utah web meetup: http://bit.ly/c3HvIU" -- kriszyp. http://twitter.com/kriszyp/status/27402107921 [02:35] MikhX has joined the channel [02:36] mbrochh has joined the channel [02:38] jakehow has joined the channel [02:40] _announcer: Twitter: "node.js って言語なの? http://www.moongift.jp/2010/10/about_nodejs/" -- mattn. http://twitter.com/mattn_jp/status/27402567917 [02:41] mjr_ has joined the channel [02:43] derferman has joined the channel [02:44] jherdman has joined the channel [02:44] creationix has joined the channel [02:45] _announcer: Twitter: "moongift, node.js quite understand the meaning has been redirected to me at a premium why not go to see anything without warning page" [ja] -- Yoshiteru Negishi. http://twitter.com/negipo/status/27402958735 [02:49] dgathright has joined the channel [02:50] Blink7 has joined the channel [02:51] kjy112|home has joined the channel [02:51] Eber has joined the channel [02:52] Eber: Guys... Is there a place, a service (not Google) where you create an account and you can use it with OpenID anywhere else? I'm not saying a basic provider like Wordpress... I mean, a one login spot for everyone... Does anyone knows such thing? [02:53] Tim_Smart: Eber: http://openid.net/get-an-openid/ [02:53] Tim_Smart: Take your pick. [02:54] Tim_Smart: Maybe https://www.myopenid.com/ [02:54] SubStack: ACTION likes being able to type "substack.net" into those openid boxes [02:55] SubStack: openid.delegate++ [02:55] Eber: Tim_Smart: it's cool but far from ideal I guess... it seems it hasn't i18n support... and a not so attractive and user friendly interface... [02:55] Tim_Smart: Eber: Well, there are several on that list I gave you. So make a choice :) [02:55] _announcer: Twitter: "On the upside I got node.js running in cygwin" -- javierfigueroa. http://twitter.com/javierfigueroa/status/27403809675 [02:56] rex_fernando has joined the channel [02:56] Eber: Tim_Smart: None of them looks that bright... [02:56] derferman has joined the channel [02:56] Tim_Smart: Eber: Then implement your own provider. [02:57] Eber: I wih we had a place to serve as an OpenID provider, where we could keep track of every service we are using with it... A nice user interface, lots of languages support... [02:57] Eber: wih* [02:57] derferman has joined the channel [02:59] Eber: Tim_Smart: maybe I will... but I need to know if that doesn't already exists... [02:59] Eber: So I don't fight for nothing :P [03:02] _announcer: Twitter: "Node.js to wait and see but I was to read an article you subscribe to premium Nau @ moongift" [ja] -- chi. http://twitter.com/einekatze/status/27404369602 [03:03] shaver: yep, naming my next node.js hack "moongift" [03:03] _announcer: Twitter: "node.js and command of, quite happily ever written code, replace all been wanting ww" [ja] -- こまっしゅ. http://twitter.com/komasshu/status/27404389447 [03:04] Eber: Tim_Smart: chi.mp looks like a good alternative... [03:05] noahcampbell has joined the channel [03:05] Eber: not perfect, but it's well doen! thanks for pointing that link out Tim_Smart ! [03:09] charlenopires has joined the channel [03:10] jacobolus has joined the channel [03:12] jchris has joined the channel [03:15] _announcer: Twitter: "What is now the industry node.js curious people who have too much fun." [ja] -- Atsushi Kawata / 川田篤. http://twitter.com/AKwta/status/27405372598 [03:17] jgautier has joined the channel [03:17] jgautier: has anyone used sencha touch here? [03:20] EyePulp has joined the channel [03:21] robotarmy has joined the channel [03:27] nerdEd has joined the channel [03:29] gerred has joined the channel [03:31] ekidd has joined the channel [03:33] unomi has joined the channel [03:34] _announcer: Twitter: "Turns out problems accessing @joyent #nodejs host were a combo of unusual provisioning and my inability to read. Fixed." -- Benjamin P Lee. http://twitter.com/leebenjp/status/27406869542 [03:34] rex_fernando has joined the channel [03:38] siculars has joined the channel [03:41] micheil_away: hassox: ping. [03:43] prettyrobots: Anyone here with the segfault on Node.js debugging? [03:44] prettyrobots: I've tried rebuilding with GCC_VERSION=44. [03:44] Tim_Smart: prettyrobots: node -v? [03:44] prettyrobots: v0.2.2 [03:44] Tim_Smart: OK. Get the same problem on 0.3? [03:45] Tim_Smart: Works fine here on master. [03:45] prettyrobots: Okay. [03:45] prettyrobots: I'll try that. [03:45] _announcer: Twitter: "The first time that this timing node.js scala people start to point can be brainwashed" [ja] -- laiso. http://twitter.com/laiso/status/27407720093 [03:46] prettyrobots: Hmm... 3 is not out yet. [03:46] Tim_Smart: Damn you _announcer, I though I had /ignored you. [03:46] iwasbiggs has joined the channel [03:46] Tim_Smart: prettyrobots: 0.3.x pre is the the master branch. [03:47] prettyrobots: I want a stable branch. [03:47] prettyrobots: I'm hoping it is this: [03:47] prettyrobots: http://blog.quilitz.de/2010/08/debug-nodejs-applications-with-eclipse-fix-segmentation-fault/ [03:55] _announcer: Twitter: "「node.js vs Erlang (ネタ)」 http://d.hatena.ne.jp/kuenishi/20101013/1286973687" -- Faith and Brave. http://twitter.com/cpp_akira/status/27408412178 [03:55] davidwalsh has joined the channel [03:57] dysinger has joined the channel [03:58] path[l] has joined the channel [03:59] hassox: micheil: pong [03:59] hassox: sup brew [03:59] micheil: hey [03:59] hassox: hey [04:01] ysynopsis has joined the channel [04:04] rex_fernando has joined the channel [04:04] MikhX has joined the channel [04:05] murphy has joined the channel [04:06] derferman has joined the channel [04:09] Yuffster_work has joined the channel [04:11] murphy has joined the channel [04:11] MikhX has joined the channel [04:11] bentruyman has joined the channel [04:15] murphy has joined the channel [04:19] galaxywatcher has joined the channel [04:21] jameshome has joined the channel [04:24] ekidd has joined the channel [04:25] TheEmpath has joined the channel [04:25] markwubben has joined the channel [04:27] bpot has joined the channel [04:31] beawesomeinstead has joined the channel [04:31] beawesomeinstead has joined the channel [04:37] mbrochh has joined the channel [04:40] rauchg_ has joined the channel [04:41] _announcer: Twitter: "BDF fonts to write him Souiya canvas, fillRect node.js whence it did not rely only on written test" [ja] -- SATOH, Hiroh. http://twitter.com/cho45/status/27411453997 [04:43] TheEmpath: how does one generate guids in node.js? [04:44] micheil: hmm. [04:44] micheil: TheEmpath: to spec or just a random key? [04:44] TheEmpath: to spec [04:44] TheEmpath: sadly :( [04:44] micheil: umm.. [04:44] micheil: there was an easy way in javascript. [04:44] micheil: I forgot what it was [04:44] micheil: one sec [04:44] _announcer: Twitter: "A much needed piece in the node.js puzzle: npm (node package manager) http://bit.ly/ddyfjt (via badassjs.com)" -- Francisco Brito. http://twitter.com/darkgoyle/status/27411651587 [04:45] melgray has joined the channel [04:50] TheEmpath: its an ugly request, i know [04:50] micheil: TheEmpath: try" http://www.broofa.com/Tools/Math.uuid.js [04:50] TheEmpath: chances of collision? [04:50] micheil: TheEmpath: I was sorta otp. [04:50] micheil: not sure [04:51] TheEmpath: 4 calls to math random [04:51] shaver: Math.random should really be called Math.kindaRandomNoCryptoWithThisPlease [04:51] micheil: http://en.wikipedia.org/wiki/Universally_Unique_Identifier [04:51] TheEmpath: can i get hte mac address of a user through socket.io or node.js? [04:52] micheil: TheEmpath: the other way is to bind to C's guid [04:52] TheEmpath: how can i do that? [04:52] micheil: TheEmpath: you can get the remote address. [04:52] micheil: TheEmpath: by writing an extension [04:52] TheEmpath: ah [04:52] TheEmpath: nifty [04:52] TheEmpath: may consider [04:52] micheil: as for remote address.. you can get the port number [04:52] micheil: not sure about connecting ip [04:53] TheEmpath: i can do hashing with a private salt on the server and unique user info [04:53] TheEmpath: plus random [04:53] micheil: try: http://nodejs.org/api.html#stream-remoteaddress-224 [04:53] TheEmpath: but all im doing is reducing collision, not guarenteeing uniquieness [04:53] mikew3c has joined the channel [04:53] micheil: in node-websocket-server, I just use the remoteport [04:53] micheil: but may need something better if I'm to scale horizontally [04:54] TheEmpath: socket.io you can get it with i think socket.request.client.remoteAddress [04:54] micheil: yeah [04:54] HAITI has joined the channel [04:55] TheEmpath: i could always stringify the socket itself [04:55] TheEmpath: use that as a private salt [04:55] TheEmpath: or per connection saly [04:55] TheEmpath: salt* [04:55] TheEmpath: just on the initial connection [04:56] micheil: why not use the remote port and address? [04:56] TheEmpath: i like overkill :D [04:56] _announcer: Twitter: "A lymph node in my lower jaw is swollen. Feels pretty weird to swallow....js" -- kelsey bennett. http://twitter.com/kelseybennett/status/27412356835 [04:57] shaver: (sport, saddr, dport, daddr) are by definition unique [04:57] shaver: oh, proto too [04:57] shaver: so that's 128 bits [04:57] shaver: plus proto if you want it [04:58] micheil: shaver: does node expose those? [04:58] shaver: socket should have it, yeah [04:58] chrisdickinson: dumb question, maybe: is there a way to determine the path of a require'd module? (require('module').__fileName, or something like a process._cachedModules)? [04:59] micheil: shaver: I've not seen them [04:59] shaver: huh [05:00] micheil: chrisdickinson: hmm, not a dumb question, a hard question [05:00] micheil: chrisdickinson: from within that module, you can get the filename [05:00] JimBastard: LOLWUT _announcer [05:01] chrisdickinson: micheil: that's what i'm doing at the moment (just exposing the path through the module itself) but i'm hoping to make it so my modules won't have to do that [05:01] micheil: hm.. [05:01] chrisdickinson: so modules x and y register with z, and z can determine their path [05:02] micheil: chrisdickinson: is there a reason you need this? [05:02] chrisdickinson: micheil: it's kind of a template loader situation [05:03] TheEmpath: micheil: and multiple people can come from the same ip [05:03] micheil: try module.filename [05:03] chrisdickinson: micheil: awesome -- thanks [05:03] micheil: actually.. not that. [05:04] micheil: chrisdickinson: it could easily be added in if allowed by ryah [05:07] _announcer: Twitter: "How do I get started with #NodeJS ?!?!?" -- Charles Johnson, II. http://twitter.com/ImJusInCredible/status/27412938234 [05:07] chrisdickinson: micheil: it might be nice to have require'd modules come in as instances of (a hypothetical type) Module [05:07] chrisdickinson: with __path as a prototype-level getter, maybe [05:09] danielzilla has joined the channel [05:13] Tim_Smart: chrisdickinson: module.filename [05:13] EyePulp has joined the channel [05:13] chrisdickinson: Tim_Smart: wouldn't that only work from within the module in question? [05:13] Tim_Smart: You will have to export it or something. [05:14] chrisdickinson: yeah -- I've been handling things that way. just wanted to check to see if there wasn't a way i could remove that burden of knowledge from external modules [05:14] Tim_Smart: You can easily over-ride the '.js' extension to auto-add it to the exports. [05:14] Tim_Smart: But it seems a little hacky. [05:15] matt_c has joined the channel [05:17] jpld has joined the channel [05:19] prettyrobots: Tim_Smart: ssh tunnel FTW. [05:19] prettyrobots: Updating my *.deb of Node.js with the GCC_VERSION=44 fix too. [05:19] _announcer: Twitter: "going to tryout some nodejs tonight as suggested by @boundvariable" -- Ayaz Ahmed. http://twitter.com/ayaza/status/27413618359 [05:20] Tim_Smart: prettyrobots: Yeah they are cool. I remember when I sucked at *nix, so I just installed the gnome environment on the server and SSH tunneled VNC. [05:20] _announcer: Twitter: "@thomasfuchs vapor.js supports jQuery, Node.js and Unicons. There's nothing it can't do!" -- Addy Osmani. http://twitter.com/legacye/status/27413681659 [05:21] prettyrobots: Tim_Smart: Impressive way to suck at something, actually. [05:21] Tim_Smart: Makes me lol now though. [05:21] amerine has joined the channel [05:21] prettyrobots: What's with Unicorns. Suddenly, very popular. [05:21] creationix has joined the channel [05:22] prettyrobots: Tim_Smart: I've decided that Ubuntu is my environment, and nothing else. [05:22] prettyrobots: And now I'm finally feeling at home at UNIX. [05:22] prettyrobots: Because it clears away all the cross-platform doubt. [05:23] rcy has joined the channel [05:23] Tim_Smart: Ubuntu has been my home for a while now. [05:26] Arro has joined the channel [05:27] Tim_Smart: prettyrobots: Do you use vim or emacs? [05:27] prettyrobots: Its nice, but its really a matter of throwing off the useless goal of platform independence, cross-platform, blah, blah. That's a corporate concern, not useful for a solo/small team programmer. [05:27] prettyrobots: ViM. [05:28] Tim_Smart: Oh nice. Yeah vim is great. [05:28] prettyrobots: I learned on vi back in the day and it stuck. [05:28] ryan[WIN]: oh man [05:28] ryan[WIN]: the use of LOL has been discouraged in #python [05:28] prettyrobots: Modality. [05:28] prettyrobots: ACTION Laughs out loud. [05:29] prettyrobots: Can they still give each other ASCII roses? [05:29] Tim_Smart: ryan[WIN]: What do they do to trolls? [05:29] ryan[WIN]: i have no idea [05:29] Tim_Smart: /join #python, lol, /part lol [05:29] ryan[WIN]: but a man has to be able to lol [05:29] ryan[WIN]: i already said lol at least thrice [05:30] TheEmpath: any way to make node.js generate a 1024bit key? :D [05:30] TheEmpath: ACTION will destroy your node. [05:30] ryan[WIN]: aren't 1024bit keys insecure [05:30] Tim_Smart: ryan[WIN]: There we go. Trolled. [05:30] TheEmpath: against the normal hacker or the NSA? [05:30] ryan[WIN]: lol Tim_Smart [05:30] _announcer: Twitter: "Recent topics node.js unexpectedly and I might be good, php and js tampering thought to form a complex intertwining. Come and go without a good mental language significantly." [ja] -- エスケイ. http://twitter.com/esuk/status/27414216239 [05:31] ryan[WIN]: what the fuck is that twitter [05:31] ryan[WIN]: automatic translation to english ftw [05:31] prettyrobots: Sweet! [05:31] prettyrobots: Good work _announcer ! [05:31] shaver: it's no moongift [05:31] shaver: or chestnut millet [05:32] TheEmpath: that's no moon [05:32] ryan[WIN]: yeah it's automatically translated good job _announcer [05:32] jherdman has joined the channel [05:32] ryan[WIN]: prettyrobots, i made a virtual machine that CJK encodes its binaries but i couldn't get them small enoguh to fit on a twitter post [05:32] prettyrobots: Python probably has too many people now. [05:32] ryan[WIN]: but i could make a tweet right now and see what happens [05:32] prettyrobots: And they're trying to make rules to make it tolerable. [05:32] zum: I could personally live without automatically translated japanese tweets :) [05:33] ryan[WIN]: i just tweet with @node.js right [05:33] shaver: zum: I think they are pretty great [05:33] ryan[WIN]: or just put node.js in the tweet [05:33] prettyrobots: ACTION Likes _announcer. [05:33] prettyrobots: ACTION And Japanese people. [05:33] shaver: or node.randomwoowoowoo.js [05:33] zum: for humor value, sure [05:33] shaver: per the lymph node thing earlier [05:33] devkorcvince has joined the channel [05:34] ryan[WIN]: i just got a fail whale [05:34] shaver: zum: no, also that you can sort of get the sense of enthusiasm without the words actually fitting together [05:34] JimBastard: the whole internet is fucking [05:34] JimBastard: chartbeat is down [05:34] JimBastard: my couchone is down [05:34] JimBastard: wtf [05:34] ryan[WIN]: i applied for a jerb at chartbeat once [05:34] Tim_Smart: ryan[WIN]: Does #python have logs? [05:34] TheEmpath: my salt generates randomly every time i boot up my app :X [05:34] TheEmpath: i dont even know it [05:34] ryan[WIN]: Tim_Smart, why [05:34] prettyrobots: JimBastard: I can get to couchone.com. [05:35] Tim_Smart: ryan[WIN]: Curious. [05:35] prettyrobots: And Twitter. [05:35] JimBastard: prettyrobots: my couch is down [05:35] Tim_Smart: ryan[WIN]: Just want to find some lol-reactions. [05:35] _announcer: Twitter: "node.js Chouchoujinchou Kuifenggebo Luneocangzi only Puchouzhuanding Changsanfengdai Lingfuxianxian Tuojinpuchou Liangdingchaosan Shisangege Chougeyichou Qichougemu Gaijingshishang Bobochoubo Miriam ugly Renchoubomu beggar Shensi animatedcollapse Chou animatedcollapse Ba ugly Torr D Ba animatedcollapse Chou animatedcollapse Zhang beggar lack Ding Zhang animatedcollapse Ding Bo Xian Chou Sin Ba Chou Yin Ding Ba Sin Chou Xian Zhang beggar G [05:35] _announcer: nimatedcollapse him to make 丆 Aberdeen 丆 cents animatedcollapse position with Cha Sai Lun Tsai made on behalf of the World beefy Bo Xian Xian Zhe Shi Shi is still paid from the" [zh-CN] -- Ryan Broomfield. http://twitter.com/shippyman/status/27414459468 [05:35] ryan[WIN]: hahaha [05:35] prettyrobots: (Where jresig is a top tweet on the landing page, next to Deepak Chopra.) [05:35] ryan[WIN]: that is amazing [05:36] ryan[WIN]: oh i'm hurting [05:37] ryan[WIN]: CJK-encoded data does not translate well [05:37] ryan[WIN]: poor _announcer [05:37] Tim_Smart: Hmm I have _announcer on /ignore [05:37] shaver: you're really missing out [05:37] TheEmpath: i like announcer :D he good buggies [05:37] ryan[WIN]: hold on [05:37] _announcer: Twitter: "node.js Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou [05:37] _announcer: hou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou Chou" [zh-CN] -- Ryan Broomfield. http://twitter.com/shippyman/status/27414584176 [05:38] ryan[WIN]: sorry guys had to do it [05:38] ryan[WIN]: ITS A TRAIN COMIN' [05:38] shaver: the little _announcer who could [05:38] TheEmpath: rofl [05:39] ryan[WIN]: that reminds me [05:39] ryan[WIN]: i should finish that cjk-encoded vm [05:39] ryan[WIN]: well it works but i need to polish it and let people play with it [05:40] sveimac has joined the channel [05:40] prettyrobots: ryan[WIN]: So, you just enabled the Cantonese keyboard and started mashing on the keys? [05:40] prettyrobots: ACTION Still laughing. [05:41] prettyrobots: Tim_Smart: Did you find the Python logs? [05:41] prettyrobots: I mean #python logs. [05:41] Tim_Smart: prettyrobots: Nope. :( [05:42] prettyrobots: No logs of #python they say. [05:43] Tim_Smart: You should ask if you can rofl. [05:46] _announcer: Twitter: "After today, I need to play with a sane API or my head will asplode. Why, hello, node.js." -- Steve Streza. http://twitter.com/SteveStreza/status/27415013031 [05:47] simme has joined the channel [05:48] _announcer: Twitter: "Here lies @SteveStreza, whose head asploded after attempting to use node.js." -- Geoff Pado. http://twitter.com/Arclite/status/27415115177 [05:49] shaver: is lmao permitted? [05:49] prettyrobots: Tim_Smart: I'm sure that's fine. Just as long as its not out loud. [05:49] prettyrobots: Its the noise, you see. [05:49] mjr_: shaver: I think lmao is only in harmony. [05:49] mjr_: sorry [05:50] chrisdickinson: micheil: Tim_Smart: thanks for your help on the module path issue -- here's the workaround using module.moduleCache https://gist.github.com/cec97565f87c95d47401 [05:50] micheil: heh [05:50] micheil: no worries [05:50] Tim_Smart: The cache has been removed from recent versions of node, chrisdickinson [05:51] Tim_Smart: That is why I didn't suggest it :p [05:51] chrisdickinson: ACTION 's battleship has just been sunk. [05:51] HAITI has joined the channel [05:55] simme has joined the channel [06:00] _announcer: Twitter: "@ Marcus north as just a speech by the creator of node.js that it actually gave 20% better performance than Nginx." [no] -- Vilhelm K. Vardøy. http://twitter.com/vilhelmk/status/27415735962 [06:01] beawesomeinstead has joined the channel [06:01] beawesomeinstead has joined the channel [06:01] micheil: chrisdickinson: email the development mailing list, asking if it resolvePath can be exposed [06:02] MaSch_ has joined the channel [06:02] micheil: uh, findModulePaths [06:02] chrisdickinson: micheil: will do -- thanks! [06:02] micheil: see what ryah thinks. [06:04] SINPacifist has joined the channel [06:08] davidascher has joined the channel [06:09] mikeal has joined the channel [06:12] TheEmpath: lol @ my attempt @ GUID in node.js [06:12] _announcer: Twitter: "@ Vilhelmk Yepp :-) But seriously, node.js can not do the things I need, so if it is faster is irrelevant." [no] -- Marcus Ramberg. http://twitter.com/nordmarcus/status/27416335047 [06:13] Tim_Smart: chrisdickinson: You are in luck http://github.com/ry/node/commit/54e844cf08cdb55b4236eb3d1d2c1d13bbd4b921 [06:13] TheEmpath: psuedo-guid using socket.io http://gist.github.com/627715 [06:14] TheEmpath: grab all the unique identifiers from the socket, put them in an array, randomize the order, stringify it, add that to a hmac, then digest it to base64 [06:14] _announcer: Twitter: "node.js screencasts http://nodecasts.org/" -- Antonio Pardo. http://twitter.com/apardo/status/27416436139 [06:15] TheEmpath: do this for each user that connects to give them their own unique signature [06:15] TheEmpath: to prevent XSRF attacks :D [06:16] saikat has joined the channel [06:18] _announcer: Twitter: "What a framework of how node.js? http://tinyurl.com/2fzum7g" [ja] -- makotch. http://twitter.com/mmakotch/status/27416624690 [06:19] chrisdickinson: Tim_Smart: cool -- so I can detect if require.cache is available and use that if module is not available [06:19] chrisdickinson: thanks very much! [06:24] peritus- has joined the channel [06:25] _announcer: Twitter: "Me @ sir_pepe Node.js interested in any case, so get going!)" [de] -- Marcel Koch. http://twitter.com/makochnet/status/27416932254 [06:27] MikhX has joined the channel [06:28] _announcer: Twitter: "@ Marcus north by the way, is extremely flexible node.js (but buggy), very curious what you think it can not solve - for their own learning:)" [no] -- Vilhelm K. Vardøy. http://twitter.com/vilhelmk/status/27417087689 [06:28] sudoer has joined the channel [06:29] mbrochh has joined the channel [06:29] mbrochh has joined the channel [06:31] jetienne has joined the channel [06:32] micheil: TheEmpath: looks like the details for remote* on sockets need to be documented too. [06:32] micheil: :/ [06:33] micheil: really gotta get this doc patch together. [06:33] micheil: TheEmpath: what's _idleStart contain? [06:33] TheEmpath: just a timestamp [06:33] micheil: okay [06:34] micheil: I think it may be todo with some libev stuff [06:34] TheEmpath: the key variables are sec-websocket-key1 and key2 [06:34] TheEmpath: and upgradeHead [06:35] V1 has joined the channel [06:35] kjeldahl has joined the channel [06:36] micheil: oh, yeah. [06:36] micheil: being their only available on websocket connections. >_> [06:36] TheEmpath: yeah :( [06:36] _announcer: Twitter: "@ Vilhelmk Well, node.js is Basically an event loop in JavaScript, so it can solve everything, in the sense that there is a Turing machine." [no] -- Marcus Ramberg. http://twitter.com/nordmarcus/status/27417482865 [06:37] beawesomeinstead has joined the channel [06:39] mikeal: ok [06:39] mikeal: this is fucked [06:39] mikeal: what happens when an http client request times out? [06:39] mikeal: cause I don't see an error event [06:40] mikeal: and node just exits [06:40] Anti-Zzz: are you still up? [06:40] Anti-Zzz: (say no :P) [06:41] Anti-Zzz: off to work [06:41] alexb_: Httpclient needs work [06:43] derferman has joined the channel [06:44] Nohryb has joined the channel [06:46] micheil: mikeal: that's odd. [06:46] micheil: mikeal: I've heard of similar issues, I might take a look myself. [06:47] micheil: mikeal: also, node-utils/pool, why not use freelist? [06:47] mikeal: pool leaks [06:47] micheil: brb [06:47] mytrile has joined the channel [06:47] mikeal: because you can't depend on a client being free based on an event right now [06:48] _announcer: Twitter: "watching @felixge talk about node-dirty, perhaps my favorite #nodejs library: http://jsconf.eu/2010/speaker/dirty_nosql.html" -- Jed Schmidt. http://twitter.com/jedschmidt/status/27418014938 [06:48] mikeal: and you can't depend on readyState [06:48] benreesman_ has joined the channel [06:48] mikeal: basically it's all broken :) [06:49] _announcer: Twitter: "ruby-doc.org is soooo lame, they should have used PHP or node.js" -- Sleeptillseven. http://twitter.com/sleeptillseven/status/27418061345 [06:50] themiddleman has joined the channel [06:51] langworthy has joined the channel [06:51] micheil: mikeal: k [06:51] micheil: I just happened to look at it [06:52] micheil: mikeal: were you behind nodecof? [06:52] micheil: *nodeconf [06:52] mikeal: yeah [06:52] mikeal: it's happenin [06:52] micheil: k./ [06:52] mikeal: i can't really talk about it tho :) [06:53] TheEmpath: michiel: updated http://gist.github.com/627715 [06:53] micheil: yeah, if I'm there (I'm going to try and get there) [06:53] micheil: then I can provide tools to get high quality audio recording of it [06:53] micheil: (I've just gotten my zoom h4n) [06:54] mikeal: don't worry about it [06:54] micheil: TheEmpath: the uniqueness should be enough with new date(), remoteAddress remotePort [06:54] Tim_Smart: If I'm there, I would be surprised, because I live in New Zealand. [06:54] mikeal: we have that part covered [06:54] micheil: mikeal: okay [06:54] TheEmpath: im paranoid :D [06:54] micheil: ACTION will be bringing his mic at any rate. [06:55] micheil: Tim_Smart: hey, I'm in australia, so, yeah. [06:55] Tim_Smart: micheil: Heh. Pick me up on the way. [06:55] micheil: can't, sorry bro. [06:55] Tim_Smart: :( [06:57] JimBastard: function randomString(bits){var chars,rand,i,ret chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' ret='' // in v8, Math.random() yields 32 pseudo-random bits (in spidermonkey it gives 53) while(bits > 0){ rand=Math.floor(Math.random()*0x100000000) // 32-bit integer // base 64 means 6 bits per character, so we use the top 30 bits from rand to give 30/6=5 characters. for(i=26; i>0 && bit [06:58] Tim_Smart: Flights are $1600-ish return to SF [06:59] Anti-X has joined the channel [06:59] _announcer: Twitter: "@ Marcus north not to defend node.js or something: just do not understand the need scaling." [no] -- Vilhelm K. Vardøy. http://twitter.com/vilhelmk/status/27418523985 [06:59] _announcer: Twitter: "@ Vilhelmk http://gist.github.com/627738 - it's Nginx config for nordaaker.com and nordaaker.no - How would you set it up in node.js?" [no] -- Marcus Ramberg. http://twitter.com/nordmarcus/status/27418532318 [06:59] matjas has joined the channel [07:01] TheEmpath: [09/15/2010 09:01:02.355am] Preventing potential XSRF attack! Go Captian America! [07:01] TheEmpath: yesssss [07:02] virtuo has joined the channel [07:06] _announcer: Twitter: "Mooooolaaa the event loop! Au revoir to the threads! http://nodejs.org/strange-loops.pdf" [es] -- Daniel Soriano Gil. http://twitter.com/sirdsoriano/status/27418862573 [07:06] tobeytailor has joined the channel [07:07] mif86 has joined the channel [07:08] mAritz1 has joined the channel [07:08] ivanfi has joined the channel [07:09] jansc has joined the channel [07:18] onar has joined the channel [07:19] drudge has joined the channel [07:19] aubergine_ has joined the channel [07:19] JimBastard has joined the channel [07:20] svnlto has joined the channel [07:20] simme has joined the channel [07:21] qFox has joined the channel [07:21] breccan has joined the channel [07:24] TomsB has joined the channel [07:25] JimBastard: disregard sleep, acquire node modules. [07:27] fbits has joined the channel [07:27] _announcer: Twitter: "@kriszyp, awesome presentation on end-to-end JavaScript and NodeJS http://kzyp.dojotoolkit.org/presly/end-to-end.html" -- Jose. http://twitter.com/joseanpg/status/27419821168 [07:29] cloudhead has joined the channel [07:30] mattcodes has joined the channel [07:30] mattcodes: is there a more up-to-date httpclient than restler or node-httpclient both send no changes committed for a few months which is strange given how infant the projects are? [07:31] _announcer: Twitter: "Internet Explore distractions. Currently node.js chrome 5 / safari 5 / firefox 4 beta2 only .... Note Note φ (. _. http://atsuya.posterous.com/27514820" [ja] -- yoshitaka fujisawa. http://twitter.com/yoshifuji_tokyo/status/27419987505 [07:33] digitalspaghetti: var caffine = require('coffee').caffine [07:36] jesusabdullah: coffee.make.pour(new Cup()).drink(function(energy) {energy.work()}).end() [07:36] jsilver_ has joined the channel [07:39] JimBastard: mattcodes: yes [07:40] JimBastard: mattcodes: the request module [07:40] JimBastard: mattcodes: http://github.com/mikeal/node-utils/tree/master/request/ boom [07:40] JimBastard: npm install request [07:40] mattcodes: neato.. thanks for very much [07:41] JimBastard: mattcodes: we use it all over the place for building api wrappers [07:41] ezmobius has joined the channel [07:42] mattcodes: coming from a .net background where we used git and a much best practices as possible, does it make sense to put all dependencies under local/project level ./lib, using npm seems like Global Assembly Cache or user assembly cache depending on how you use it, seems destined for "It works on my machine". Is there a reason node/npm break away from the philiosophy that once you get from source control it should be able to run [07:42] JimBastard: mattcodes: say again? [07:42] mattcodes: say you build a blog and use request module [07:42] JimBastard: it depends how you want to structure your work flow [07:43] mattcodes: i download your blog from github [07:43] mattcodes: fails.. [07:43] JimBastard: rtfm! [07:43] mattcodes: since i need to go and collect the dependenices [07:43] JimBastard: git submodule update --init --recursive [07:43] JimBastard: or npm install foo [07:43] JimBastard: or use a bash script [07:43] JimBastard: depends how its setup [07:43] admc_ has joined the channel [07:43] admc has joined the channel [07:43] mattcodes: yes I see there a multiple options [07:43] JimBastard: no standard is enforced [07:44] meso has joined the channel [07:44] JimBastard: package.json format is somewhat enforced [07:44] _announcer: Twitter: "Technologies used for my #RubyConf demo: PS3controller, C, Obj-C, MacRuby, WebKit, HTML, CSS, JS, SVG. Thinking about adding node.js :p" -- Matt Aimonetti. http://twitter.com/merbist/status/27420580422 [07:44] maqr has joined the channel [07:44] mattcodes: and Im not critizing. i just wonder if follow my previous .net practices convert to node. I'll keep my dependenices at project level and just stick my local lib as first destiination on the require.paths. is this problematic or any shortfall in this approach? [07:45] _announcer: Twitter: "Hey @ kuwabarahiroshi indeed. And I'm touched Erlang node.js touches as well. Hey really expected. http://bit.ly/cYLJHI" [ja] -- 坂上 真大. http://twitter.com/madai0517/status/27420620093 [07:45] JimBastard: well, if your deps are git repos, you want to preserve the upgrade path [07:45] JimBastard: since node is somewhat fast moving, your deps might update a bunch [07:45] JimBastard: the "fake" submodule approach isnt bad [07:45] JimBastard: http://debuggable.com/posts/git-fake-submodules:4b563ee4-f3cc-4061-967e-0e48cbdd56cb [07:46] JimBastard: for our production stuff, we vendor everything and lock the version down for the most part [07:46] JimBastard: some pieces are still in npm [07:46] _announcer: Twitter: "Why would I want to use #node.js? (where's the beef?) http://nodejs.org/strange-loops.pdf" -- Vesa. http://twitter.com/vvilhonen/status/27420697853 [07:47] delapouite has joined the channel [07:47] zomgbie has joined the channel [07:53] _announcer: Twitter: "@penberg "Java NIO API is too tricky for its own good." There are refreshingly less bloated ways to do the same thing in #node.js" -- Vesa. http://twitter.com/vvilhonen/status/27421015085 [07:55] HAITI has joined the channel [07:55] HAITI has joined the channel [07:57] HAITI has joined the channel [07:57] HAITI has joined the channel [07:58] mattcodes: JimBastard, what are you using for serializing an object for POST body. e.g. a=1&b=2 [07:59] JimBastard: mattcodes: prob the query string module [07:59] HAITI has joined the channel [07:59] JimBastard: mattcodes: line 31 ish [07:59] JimBastard: http://gist.github.com/618971 [08:00] JimBastard: var posted = querystring.parse(request.body); [08:02] Druid_ has joined the channel [08:02] mattcodes: perfect and built in too. [08:02] mattcodes: thanks [08:02] ooooPsss has joined the channel [08:02] hoodoos has joined the channel [08:04] hoodoos: guys! i'm tired of NETBEANS(it just ate 1GB of ram)! what IDE do you use? I would love to get somehting like nodepad but with code highlighting, code competion(optional, it never worked in netbeans) and super lightweight, but not console(i know here's vim) :) [08:04] Tim_Smart: hoodoos: vim :p [08:04] hoodoos: and tabs! tabs! and would be great to have file tree on the left [08:04] _announcer: Twitter: "space tweet – God tweet vs Bad tweet: space-tweet is a freeware by Node.js/JavaScript(source code is open to the p... http://bit.ly/92IQH8" -- Open Alexandria. http://twitter.com/openalexandria/status/27421485500 [08:04] Tim_Smart: vim has all those hehe. [08:04] hoodoos: Tim_Smart, and file tree? [08:04] Tim_Smart: Sure. I think there is a good plugin for that. [08:05] hoodoos: Tim_Smart, I guess it must be propertly tuned to work well, right? [08:05] Tim_Smart: hoodoos: More like you have to be properly tuned. [08:05] mattcodes: vimtutor [08:05] mattcodes: forget peepcode etc.. [08:05] mattcodes: already installed you'll find [08:06] hoodoos: you all guys are on vim? [08:06] mattcodes: started 4 days ago [08:06] hoodoos: like it? [08:06] Tim_Smart: The learning curve is somewhat known to be steep. [08:06] Tim_Smart: I takes a few months to be comfortable with it. [08:06] Tim_Smart: And even then, you are always learning new stuff about it. [08:06] hoodoos: Tim_Smart, incredible :) [08:06] mattcodes: Visual studio before that. The learning curve is very steep, and Im not as productive as VS/Resharper yet, but each day Im getting better, I say a few weeks to overtake your prime editor, a week to get to level you can write code comfortably [08:07] Tim_Smart: Otherwise emacs and js2 mode are known to be quite good. [08:07] hoodoos: maybe there's something like conf for comfortable node.js development? [08:08] benburkert has joined the channel [08:08] mattcodes: node is just javascript. there is cloud9 which you can google but its more .. clunky [08:08] mattcodes: ...just a javascript framework .. [08:08] hoodoos: mattcodes, yeah, it's quite alpha :) [08:08] hoodoos: emacs is console too i belive? [08:09] mattcodes: i believe so [08:10] DoNaLd`: hi .. is it possible replace this out of date artcile http://howtonode.org/express-mongodb .. with this actual article http://eberfreitas.virb.com/blog/text/12619617 ? [08:10] sideshowcoder has joined the channel [08:10] DoNaLd`: on howtonode.org site [08:11] JimBastard: textmate is cool [08:11] mattcodes: if you got a mac [08:11] JimBastard: disregard ides, write vows [08:11] hoodoos: JimBastard, no mac [08:11] JimBastard: dreamweaver is good [08:11] micheil: DoNaLd`: if you have written an article, format it for howtonode.org and send us a pull request [08:11] hoodoos: JimBastard, i'm on ununtu :) [08:11] Tim_Smart: JimBastard: Dreamweaver is a mess. [08:12] JimBastard: the new one precompiles javascript objects for you, so you get "intellisense" [08:12] JimBastard: Tim_Smart: stfu noob [08:12] micheil: ACTION never could get vows to work [08:12] JimBastard: ;-) [08:12] Tim_Smart: :p [08:12] hoodoos: bastards.. [08:12] micheil: JimBastard: wanna fork nws and write the tests for me? [08:12] JimBastard: nws? [08:12] micheil: node-websocket-server [08:12] JimBastard: fuck, i wish man [08:12] JimBastard: im under a lot of pressure to get this shit launched i dont really have the bandwidth [08:13] micheil: no worries, I was half joking. :P [08:13] mattcodes: vows? [08:13] AAA_awright: micheil: You have to carefully read the documentation but Vows is amazing [08:13] JimBastard: www.vowsjs.org [08:13] micheil: it's a testing framework [08:13] mattcodes: ah the descrupive unit test framework [08:13] AAA_awright: *http://www.vowsjs.org [08:13] mattcodes: descriptive [08:13] jpld: if i am doing some ejs templating in an express app and i have a object in my app, is there any way to push it into the rendered page's script context? [08:13] micheil: ACTION just had heaps of errors with it [08:13] JimBastard: also, http://github.com/nodejitsu/kyuri [08:13] jpld: or must one use AJAX instead for stuff like this [08:13] mattcodes: if coming from junit/nunit try nodeunit [08:13] micheil: I wish someone like mozilla would request for .js to be a valid tld [08:13] mattcodes: locals [08:14] mattcodes: jpld .redener('page1.jps', locals: { greeting: 'hi matt ' }); [08:14] mattcodes: redener --> res.render [08:14] micheil: hmm.. can't wait until tomorrow morning. [08:14] mattcodes: jsp --> ejs [08:14] JimBastard: ACTION cries [08:14] jpld: mattcodes: right, but how does an object work in a script block? [08:14] mattcodes: coffee in keyboard [08:15] jpld: its not like you can var obj = <%= local_name %> [08:15] mattcodes: its not a script block, its an object literal [08:15] hoodoos: there's emacs for X [08:15] mattcodes: yes with that you can <%= greeting %> [08:15] jpld: mattcodes: hmm, say it is a hash and i want to then do a bunch of further js process on it browser side? [08:16] qFox has joined the channel [08:16] jpld: i have loc {lat:123, lon:456} in my express app, i just don't get how to pass it to my rendered page so that a script block from within the rendered page can do a bunch of work on it [08:16] mattcodes: then output it as var objToDoStuffClientSide = JSON.stringify(myObject} [08:16] jpld: if i wanted to dump lat or lon into an element that would be fine [08:16] V1: Tim_Smart: Are you even using CS5 or do you remember Dreamweaver from the stone age? :p [08:17] jpld: yea i tried that too… [08:17] mattcodes: but better to output it in some semantic html [08:17] mattcodes: and pick it up client side [08:17] Tim_Smart: V1: I have tried CS3/4 breifly, not cs5 [08:17] mattcodes: e.g. var loc = { lat: $('#ycords').val(), lon: $('#xcords').val() } [08:17] jpld: mattcodes: still, in your script block what would that be [08:17] V1: Tim_Smart: Because it got updated with amazing JavaScript support [08:18] jpld: mattcodes: that is an option, but dumping it in the DOM to just query for processing in JS seems silly [08:18] _announcer: Twitter: "#nodejs: when i require a file resolving to a "local" and an npm match, npm seems to win #dependencyhell" -- Michael Siebert. http://twitter.com/siebertm/status/27422137465 [08:19] mattcodes: parse --> stringify. depend on your view engine you might need some escaping [08:19] aubergine has joined the channel [08:19] jpld: yeah i got a bunch of "e; stuck in there [08:19] jpld: lemme see if i can fix that and if it works [08:19] jpld: maybe this is more a use case for xmlhttprequest anyways, i dunno [08:20] mattcodes: that just some ideas, there are probably better ways to approach it [08:20] jpld: it is sticky enough that i suspect it probably isn't a good idea to try [08:21] drostie has joined the channel [08:21] _frankie has joined the channel [08:21] JimBastard: !tweet @siebertm try the "npm link" command, that might help. [08:21] jpld: yeah this is kinda funny, looking at the source: var l = [object Object]; [08:22] JimBastard: sweet, _frankie is back [08:22] JimBastard: http://twitter.com/nodejsbot [08:22] ooooPsss has joined the channel [08:22] JimBastard: i forgot he was down [08:23] JimBastard: !tweet Disregard sleep, acquire #node.js modules. [08:24] jpld: mattcodes: after reading the ejs doc, i found an answer: Unescaped buffering with <%- code %> [08:24] jpld: thanks for your patience (0: [08:24] mattcodes: cool [08:27] hassox has joined the channel [08:28] _announcer: Twitter: "Got some great feedback on http://speedo.no.de after my #node.js presentation at #hotels.nl" -- Arnout Kazemier. http://twitter.com/3rdEden/status/27422555015 [08:29] _announcer: Twitter: "We are definitely going to dig deeper doing more benchmarks to see how #node.js will fit in our current stack." -- Arnout Kazemier. http://twitter.com/3rdEden/status/27422597955 [08:30] _announcer: Twitter: "http://blog.nodejitsu.com/create-nodejs-web-services-in-one-line" -- nanhapark. http://twitter.com/nanhapark/status/27422648769 [08:30] ph^ has joined the channel [08:32] ntelford has joined the channel [08:32] SubStack: heh similarly [08:33] SubStack: require('dnode')(fs).listen(8080) [08:33] SubStack: :p [08:35] JimBastard: woah, you can use jquery with nodejs? [08:35] SubStack: yep [08:35] JimBastard: thats crazy talk [08:36] JimBastard: tmpvar needs to get that fault tolerant xml parser in there [08:36] SubStack: pfft, just do this: [08:36] SubStack: (in the browser) [08:36] mbrochh has joined the channel [08:36] mbrochh has joined the channel [08:36] SubStack: DNode($).connect() [08:37] SubStack: oh actually [08:37] SubStack: DNode({ $ : $ }).connect() [08:37] JimBastard: not having neighbors is awesome, im bumping regulators at full blast [08:37] JimBastard: SubStack: but then you'd need a browser session right? [08:37] _announcer: Twitter: "finally having a play with node js for server side javascript. some simple integration with couchdb, all pretty easy so far" -- Gareth Jones. http://twitter.com/garethj/status/27422989601 [08:37] SubStack: yeah but you can call the client's jquery shit from the server-side [08:37] SubStack: it's the awesome [08:38] SubStack: if high-latency [08:38] JimBastard: yeah but you still need a real browser [08:38] aubergine_ has joined the channel [08:38] JimBastard: defeats most of the purpose [08:38] JimBastard: but would be awesome for other things [08:38] JimBastard: like UIs and templating [08:38] JimBastard: write a thin templating wrapper like nodestream [08:39] lsmith has joined the channel [08:39] lsmith: aloha [08:40] lsmith: just wondering how many socket connections can i reasonably expect to be able to run on a single server (a few cores, lets say 16gb ram etc) [08:40] SubStack: thousands [08:40] lsmith: also are there any address space limitations that i need to be aware of that are relevant here .. [08:41] lsmith: ok .. but not 10 thousands? [08:41] vilhonen: probably 54k [08:41] vilhonen: 64k [08:41] lsmith: vilhonen: did anyone ever reach those 64k socket connections? [08:41] SubStack: try it and see [08:41] vilhonen: no, just pulling this stuff out of my hat as I like node.js so much [08:41] SubStack: trying in the repl [08:42] Tim_Smart: Plurk.com uses node.js for comet. [08:42] lsmith: vilhonen: just asking .. thousands is still far away from 64k .. [08:42] lgl has joined the channel [08:43] lsmith: so if i want to be able to have 100k connections .. i need a couple of servers [08:43] vilhonen: lsmith: sorry but I was serious, although I would be very interested to hear the truth [08:43] lgl: Hi, I'm building an app with Connect and I wonder if there's a common way of doing i18n in Connect or Node in general? [08:43] Nohryb has joined the channel [08:43] caolanm has joined the channel [08:43] lsmith: vilhonen: there is some limitation in the TCP protocol for a single server .. right? and i think its 64k [08:43] vilhonen: that's right [08:44] Tim_Smart: lsmith: Plurk.com servers 100k concurrent clients with one box, 12GB RAM and 8 cores with 8 node processes. [08:44] Tim_Smart: Or something like that. [08:44] vilhonen: you can only have 64k tcp sockets open at a time [08:45] rnewson has joined the channel [08:45] lsmith: maybe they have some magic they do .. ? [08:45] vilhonen: with udp the limit is the same but you can server multiple clients from one socket [08:45] lsmith: ah .. maybe thats what they do [08:45] JimBastard: lgl: http://github.com/marak/translate.js/ is a start, but not really [08:45] SubStack: ok [08:46] SubStack: Error: EMFILE, Too many open files [08:46] lgl: JimBastard: Thanks, I'll take a look [08:46] SubStack: at 15724 [08:46] SubStack: connections [08:46] lsmith: i guess in many scenarios where you bother with socket connections .. udp is just fine .. [08:46] lsmith: if it doesnt make it .. not worth it to send it again [08:46] V1: SubStack: ulmit? [08:46] SubStack: var c = 0; net.createServer(function (stream) { stream.on('connect', function () { c ++; console.log(c) }); stream.on('end', function () { c --; console.log(c) }) }).listen(4040) [08:46] SubStack: V1: could be [08:46] lgl: This gist is also a beginning but not really: http://gist.github.com/578342 [08:46] Anti-X: speaking of udp.. there's no way that IP packets over localhost would ever disappear, is there? [08:47] lsmith: thx .. this gives me some pointers [08:47] vilhonen: Anti-X: you can drop the with firewall as any other packets [08:47] svnlto has joined the channel [08:47] vilhonen: *the packets* [08:47] Anti-X: what does that mean in an english sentence? [08:47] Tim_Smart: vilhonen: You can bump up the limit pretty simply. [08:47] Anti-X: yeah [08:47] Anti-X: you accidentally something [08:47] lsmith: Tim_Smart: how? [08:47] SubStack: lsmith: also that 15724 is for the same system connecting and listening [08:47] lsmith: does this require kernel patching? [08:47] SubStack: your mileage may vary [08:48] Tim_Smart: lsmith: By setting file-max [08:48] Tim_Smart: Most systems: /proc/sys/fs/file-max [08:48] vilhonen: if tcp protocol gives you field of certain size to address the port how you can define the port in the packet then? [08:49] vilhonen: my point is that you can't go over 64k by configuring kernel [08:49] SubStack: vilhonen: not servers, connections [08:49] _announcer: Twitter: "Brief summary (but note Prezi drunk.) "Introduction to node.js" http://bit.ly/9qoWsx" [ja] -- Takuma SHIRAISHI. http://twitter.com/ts7i/status/27423535963 [08:49] vilhonen: SubStack: you mean that more than 64k concurrent tcp connections could be open? [08:50] SubStack: vilhonen: one server can have multiple connections is what i mean [08:50] ooooPsss: Tim_Smart: where do you have that 100k concurrent user machine hosted? [08:50] SubStack: has nothing to do with ports [08:50] Tim_Smart: ooooPsss: I didn't say my machine, plurk.com [08:50] ooooPsss: yes, where are they hosted? EC2? [08:51] SubStack: http://amix.dk/blog/post/19490 about plurk's comet thing [08:51] V1: I doubt pluk uses EC2.. They probably have there own server farm [08:51] vilhonen: SubStack: you're correct, I have to read more about tcp [08:52] SubStack: vilhonen: no you don't [08:52] SubStack: when you .listen() you can have multiple concurrent connections is all [08:53] vilhonen: ah but when you accept it allocated a socket? [08:53] vilhonen: allocates [08:54] SubStack: oh I see what you mean [08:54] SubStack: on the *client* side sure [08:54] SubStack: but those are remote usually [08:55] mattcodes: req.query capture post values on expressjs too? or is that req.params? [08:55] vilhonen: hmm how does the server side work then? [08:56] V1: Oh btw this the amix post about the 64k concurrent users; http://amix.dk/blog/post/19456 -- see comments [08:57] skohorn_ has joined the channel [08:58] _announcer: Twitter: "Hakkason next Wednesday for the VAIO X still has the task of node.js environment." [ja] -- Takuma SHIRAISHI. http://twitter.com/ts7i/status/27423915748 [08:59] vilhonen: okay, so you can serve arbitrary number of clients from one machine with one tcp server socket if you set the file-max high enough [08:59] vilhonen: but you need one machine for every 65k connections you want to try to connect to this server [09:00] vilhonen: does this seem correct? [09:00] AAA_awright_ has joined the channel [09:01] mattcodes: sweet, first steps on the way with janrain engage, posting back in okay. I know its already done in a module, but rather try myself and compare. loving it so far. :) [09:01] vilhonen: SubStack: what do you think? [09:02] SubStack: sure [09:03] skohorn_ has joined the channel [09:03] lsmith: SubStack: so in other words on the server you dont really have to worry about address space issues [09:03] derferman has joined the channel [09:03] lsmith: all you need to worry about is having the hardware keep up with the demand for resources [09:03] SubStack: seemingly [09:03] lsmith: goody [09:04] Tim_Smart: lsmith: Also read the "Tuning the Linux Kernel..." bit here http://www.metabrew.com/article/a-million-user-comet-application-with-mochiweb-part-1/ [09:04] aubergine has joined the channel [09:04] vilhonen: btw, how does the server know which connection it's handling when a packet comes in to the "shared port" [09:05] vilhonen: by the sender ip/port combination? [09:05] Tim_Smart: Each connection opens a net TCP socket. [09:05] Tim_Smart: *new [09:05] hassox has joined the channel [09:06] Tim_Smart: Which corresponds to a new fd. [09:06] vilhonen: how does the system know which is the correct socket when a new packet comes in from the same connection? [09:06] Tim_Smart: You don't share connections, you share a port. [09:07] _announcer: Twitter: "Now that 熱Irashii node.js, but another may not like JS is it?" [ja] -- shizu. http://twitter.com/sntulix/status/27424350961 [09:07] rwaldron_ has joined the channel [09:07] vilhonen: Tim_Smart: yeah but, when a tcp packet is received on the shared port how does it know in which connection it belongs [09:08] ooooPsss: how does node.js compares to erlang in terms of speed and concurrent users? [09:08] Tim_Smart: Probably something in the TCP headers, but I'm not entirely certain. [09:09] overra has joined the channel [09:09] vilhonen: Tim_Smart: so you think there would be connection identifier in addition to the port? [09:09] Tim_Smart: vilhonen: Yes. See: http://freesoft.org/CIE/Course/Section4/8.htm [09:09] vilhonen: I don't see any field that could be used for that [09:10] TomY_ has joined the channel [09:10] vilhonen: I guess it just knows by looking at which ip and port the packet is coming from [09:10] Tim_Smart: vilhonen: That can't be the case, as you can't make concurrent connections to the same destination address. [09:10] Tim_Smart: *can make [09:11] rwaldron__ has joined the channel [09:11] vilhonen: Tim_Smart: why not? [09:13] Tim_Smart: vilhonen: Ah ok. The client sets the SYN flag to id multiple connections. [09:14] Anti-X: ooooPsss, erlang is way faster, as long as you don't start manipulating data [09:14] JimBastard: hey bob [09:15] vilhonen: I don't think there are any other identifiers as the ips and ports [09:15] vilhonen: http://stackoverflow.com/questions/2332741/what-is-the-theoretical-maximum-number-of-open-tcp-connections-that-a-modern-linu this clarifies a lot for me [09:15] Anti-X: ooooPsss, but concurrency.. that depends on what your app should do... [09:16] vilhonen: so the server side doesn't actually allocate a socket in sense that it reservers one port number but rather allocates a file descriptor on which there are no theoretical limits on the amount [09:17] maushu has joined the channel [09:17] Tim_Smart: vilhonen: It allocations a file descriptor per connection, so the server is limited by a) the fd limit and b) system resources. [09:17] Tim_Smart: *allocates [09:18] vilhonen: yeah that's right [09:18] vilhonen: previously I thought it allocates a socket which involves allocating a port also [09:18] ooooPsss: ok Anti-X ty [09:18] Tim_Smart: But it seems, that a client can only create 65k connections to the same destination. [09:18] Tim_Smart: vilhonen: That would mean only one person could be connected to port 80 at one time ;) [09:19] vilhonen: many docs of socket apis talk about creating a tcp socket when using accept() and as I have understood it involves allocating a port also [09:19] Anti-X: ooooPsss, remember that even preparing a JSON string qualifies as 'manipulating data' [09:19] aliem has joined the channel [09:20] vilhonen: Tim_Smart: there really can be only person connecting to a socket at a time but there's a queue for connectors [09:22] _announcer: Twitter: "wonder whats with all the #node.js forgery by @simplegeo :)" -- Christian Kirkegaard. http://twitter.com/ranza/status/27425052178 [09:23] cefn has joined the channel [09:23] cefn has left the channel [09:25] Anti-X: i didn't know it was people who connected to sockets [09:25] andrewfff has joined the channel [09:25] JimBastard: cloudhead: you alive? [09:25] caolanm: in some circumstances I want to proxy a request directly to couchdb and return its response, is there a nice lightweight way of doing that? ideally it would be done in node, but I suppose I could use nginx or something instead [09:26] JimBastard: can you do OR queries in resourcer? [09:26] JimBastard: caolanm: http-proxy? [09:26] caolanm: just wondering if there are any good proxy modules people know of [09:26] caolanm: JimBastard: sounds like what I want [09:26] caolanm: ta [09:26] JimBastard: http://github.com/nodejitsu/node-http-proxy [09:26] caolanm: sorry, englishism.... 'thanks' [09:26] caolanm: ;) [09:26] _announcer: Twitter: "@garethj been meaning to tinker with node.js myself... would be interested to see what you've done when you've got something working" -- Dale Lane. http://twitter.com/dalelane/status/27425255186 [09:28] caolanm: JimBastard: that's exactly what I'm looking for [09:28] mattcodes has joined the channel [09:28] caolanm: :D [09:28] _announcer: Twitter: "Node.js Knockout http://knockout.no.de/ Source codes of some entries: http://github.com/nko/" -- Kelvin. http://twitter.com/kelvw/status/27425346722 [09:29] JimBastard: caolanm: woot, let me know if you have any issues [09:29] JimBastard: i know the guys who own nodejitsu [09:29] caolanm: JimBastard: I thought you were behind it tbh [09:30] _announcer: Twitter: "Yes! I've compiled Javascript/node.js bundle on Cygwin, works." -- theOnlyBoy. http://twitter.com/theOnlyBoy/status/27425416868 [09:30] JimBastard: caolanm: lol i am [09:30] JimBastard: :-D [09:31] JimBastard: you can also manually proxy requests with the request module, but you prob want the full proxy [09:33] benburkert has joined the channel [09:35] cloudhead: JimBastard: yo [09:35] cloudhead: popping totally randomly [09:37] _announcer: Twitter: "SPORE for node.js http://github.com/francois2metz/node-spore \o/" -- franck cuny. http://twitter.com/franckcuny/status/27425778868 [09:40] markwubben has joined the channel [09:41] JimBastard: var self = this; fuuuuuu [09:42] JimBastard: breakfest time [09:45] ooooPsss has joined the channel [09:46] kjeldahl has joined the channel [09:47] mattcodes has joined the channel [09:48] _announcer: Twitter: "@mconventi It will be one of the three tech cores of #lelylan, together with #ruby and #nodejs. In november I'll start playing :)" -- andreareginato. http://twitter.com/andreareginato/status/27426310544 [09:48] andrewfff has joined the channel [09:51] digitalspaghetti: where's the PDF from ry's talk where he says what's wrong with nodejs? [09:51] digitalspaghetti: i.e. what needs fixed [09:54] JimBastard: cloudhead: im just hard coding around it [09:54] JimBastard: resourcer is missing way too many features, im forced to write bad code [09:54] JimBastard: or i dont know the api well enough, prob both [09:54] JimBastard: im working around it [09:55] path[l] has joined the channel [09:56] abienz has joined the channel [09:58] abienz: hi, I'm trying to install npm, which requires node 0.2.0, but the latest from the node git repo is v0.1.98-31 Where can I get 0.2.0 from? [09:58] JimBastard: lol [09:58] digitalspaghetti: git clone http://github.com/ry/node.git [09:58] digitalspaghetti: git checkout 'v0.2.3' [09:59] abienz: ah I see, thanks digitalspaghetti [10:01] antono has joined the channel [10:02] aubergine has joined the channel [10:07] _announcer: Twitter: "nude.js node.js had thought all the way! I was relieved but I also like." [ja] -- Shirudate-San. http://twitter.com/saltimbanco/status/27427246964 [10:08] chapel: so I am trying to work with an api that has a limit, in this case its 300 requests a second, what would be the best way to make sure when requesting against it, I never went over that limit? [10:09] ooooPsss has joined the channel [10:09] _announcer: Twitter: "@felixge: a late comment to your great rug-b node.js presentation: I think a node.js intro should introduce the EventEmitter module, too." -- radiospiel. http://twitter.com/radiospiel/status/27427327123 [10:13] Ori_P has joined the channel [10:16] abienz: digitalspaghetti: I've checkout v0.2.3 and tried reinstalling, but node -v still shows v0.1.98 [10:16] hoodoos: ACTION needs a vim yoda.. [10:16] abienz: how can I update the version? [10:17] digitalspaghetti: well 0.2.3 is the current 'stable' version, if you want the latest [10:17] digitalspaghetti: git checkout master [10:17] abienz: yes master is what I had originally from github [10:17] abienz: same version v0.1.98 [10:17] abienz: although the ChangeLog file shows 0.2.0 as the latest change [10:21] abienz: I literally installed nodejs again today [10:21] abienz: I have the latest from master [10:21] abienz: node -v shows v0.1.98 [10:21] abienz: I need v0.2.0 [10:21] abienz: please help [10:21] _announcer: Twitter: "SPORE on node released early. Fine example of RDD http://bit.ly/c8KtYl francois2metz needs to sleep more. #nodejs. I Love working @af83" -- Ori A Pekelman. http://twitter.com/OriPekelman/status/27427962337 [10:22] hellp has joined the channel [10:22] _announcer: Twitter: "Node.js rapid development: Nodemon http://bit.ly/cpT7Cx #JavaScript #Node.js" -- Lamp Tag. http://twitter.com/lamptag/status/27428007068 [10:22] MikhX has joined the channel [10:22] ctp has joined the channel [10:24] ajsie: JimBastard: i have a question regarding nodejitsu. will you offer online console? [10:24] ajsie: JimBastard: right now im evaluating a lot of VPS providers [10:25] JimBastard: ajsie: there will be a web interface [10:25] JimBastard: with nice ux [10:25] ajsie: okay .. not java i hope? [10:25] JimBastard: huh [10:26] JimBastard: all javascript, the whole stack [10:26] ajsie: there are OS webshells out there .. some are using java, some html+css+javascript [10:26] JimBastard: for most things you wont need console access anyway [10:26] JimBastard: there is a web ui for most stuff [10:26] JimBastard: console isnt very friendly [10:27] ajsie: shellinabox is the greatest of them all [10:27] ajsie: okay [10:27] JimBastard: stackvm [10:27] ajsie: because you will always install some packages manually [10:27] ajsie: apt-get packages [10:27] ajsie: or do you provide installation from the web UI? [10:27] abienz: how do I uninstall nodejs? [10:27] SamuraiJack has joined the channel [10:28] vilhonen: abienz: make uninstall [10:28] vilhonen: you need to have same privileges as you had while installing [10:28] abienz: vilhonen: What if I have already removed the directory? [10:29] JimBastard: ajsie: what do you need to install on the OS? [10:29] JimBastard: why do you have to apt-get? [10:29] vilhonen: abienz: you can download it again and run ./configure with similar settings and then you can run make uninstall again [10:29] ajsie: JimBastard: i really don't want to [10:29] JimBastard: ajsie: what do you need to? [10:29] abienz: vilhonen: thanks [10:29] ajsie: let me thing about that [10:29] ajsie: think [10:30] unomi: Hi, is Marjin here? [10:30] ajsie: maybe i just need mysql and you dont provided that out of the box [10:30] _announcer: Twitter: "@danhilton nodejs is pretty interesting, other than that become a canvas god perhaps?" -- Andy Davies. http://twitter.com/andydavies/status/27428400775 [10:30] JimBastard: ajsie: database layer goes on a different cloud [10:30] ajsie: or someone releases a cool driver for that i have to install [10:30] JimBastard: ajsie: you'd point your node app to our mysql cluster [10:30] ajsie: i c [10:30] ajsie: neat [10:30] JimBastard: you wouldnt be installing mysql [10:31] ajsie: that is hell of a difference from linode, slicehost etc [10:31] JimBastard: we've been thinking about this for a while [10:31] ajsie: more like webbynode you may say? [10:31] chapel: hmm [10:31] JimBastard: more like heroku [10:31] JimBastard: but for node [10:31] chapel: anyone have any experience with YQL? [10:31] ajsie: okay [10:31] ajsie: cool [10:31] JimBastard: and with other things which will blow your fucking mind [10:31] ajsie: can't wait [10:31] JimBastard: top secret [10:31] maushu: Consoles? [10:31] maushu: In my web application? [10:31] JimBastard: ive been polishing the UX like crazy for the past month [10:31] maushu: NEVER. [10:31] ajsie: isn't there beta accounts? for testing? [10:31] ajsie: i could give you feedback! [10:32] JimBastard: ajsie: yeah, we've been running a bunch of sites [10:32] JimBastard: we are going to open up the beta nov 1 [10:32] JimBastard: and let anyone sign up [10:32] ajsie: okay [10:32] JimBastard: there are some security issues with the current broodmother [10:32] JimBastard: which are resolved in the new version [10:32] ajsie: okay [10:32] antono has joined the channel [10:32] JimBastard: we'll have to cap the amount of free accounts, but there should be enough for anyone who is awesome [10:33] JimBastard: *being in this room is a qualifier [10:33] JimBastard: so we'll give away the hosting for a few months, then once we are ready we'll start to work with the beta testers for pricing [10:33] maushu: JimBastard: I decided to not offer freemium at first. [10:33] JimBastard: maushu: good luck with that [10:33] JimBastard: im not comfortable asking people to pay me for beta testing [10:33] _announcer: Twitter: "@andydavies node.js is interesting but haven't seen any contracts for it recently :D Canvas could be a good shout though" -- Dan Hilton. http://twitter.com/danhilton/status/27428578948 [10:33] maushu: Beta is excluded. [10:34] ajsie: JimBastard: im looking for VPS for development...is Nodejitsu used for development or only when i have to deploy? cause i need to drop down to a shell, use git, express, vim etc [10:34] gerred has joined the channel [10:34] JimBastard: ajsie: on a scale of 1 - 10, how would you rate yourself as a sysadmin [10:34] ajsie: JimBastard: 2 - 3 [10:35] ajsie: could be better but i don't want to [10:35] JimBastard: if you enjoy configuring servers, figuring out scaling, reading blog posts, and maintaing all that, you should get a VPS [10:35] cloudhead: ajsie: why develop remotely when you can develop locally? [10:35] JimBastard: ajsie: i would recommend going with us then, lol [10:35] _announcer: Twitter: "@Encosia Sweet... You should get an intro to node js screen cast going on @tekpub" -- andrew_herrick. http://twitter.com/andrew_herrick/status/27428658819 [10:35] JimBastard: ajsie: its for production deployment [10:35] unomi: cloudhead: what is Marijns nick? [10:35] maushu: ajsie: www.graphnode.com [10:35] caolanm: JimBastard: the nodejitsu hosting stuff sounds interesting [10:35] caolanm: when can we expect a proper announcement? [10:35] JimBastard: caolanm: thanks! [10:35] cloudhead: unomi: what? [10:35] JimBastard: caolanm: nov 1 [10:36] JimBastard: free accounts for all #node.js peeps [10:36] caolanm: sweet [10:36] unomi: cloudhead: the guy who did uglify.js [10:36] cloudhead: how should I know? [10:36] maushu: JimBastard: Can I host graphnode in one of your free accounts? That could cut my costs. xD [10:36] cloudhead: never heard of uglify [10:36] vilhonen: JimBastard: you're from nodejitsu? [10:36] unomi: cloudhead: I thought you might is all [10:36] JimBastard: vilhonen: aye! [10:37] vilhonen: I would be interested to try out [10:37] JimBastard: maushu: we can accomodate you for sure. i could get you a few extra "drones" if you need too [10:37] maushu: I'm just kidding. [10:37] maushu: That would be very meta though. [10:37] JimBastard: ohh, well fuuuuuuuuuuuuuuuuuuuuu [10:37] ajsie: cloudhead: im kinda the guy that want to outsource a lot .. i know how to use virtualbox, vagrant, chef etc .. i just don't want to...i dont want to download the latest ubuntu .. install it in virtual box, configure it, make copy in local disc, then how do i share it to others? how to i enter it from another computer? .. the same with local storage. . i prefer online storage .. i think its heading in that "heroku" direction [10:37] maushu: A hosting platform on another hosting platform. [10:37] JimBastard: vilhonen: did you sign up? [10:37] mbrochh has joined the channel [10:37] vilhonen: JimBastard: not yet [10:38] JimBastard: maushu: i dunno, it seems we both have a solve a lot of common problems, but some of your problems are specific to you [10:38] JimBastard: we have a deployment API [10:38] cloudhead: ajsie: yet you want full shell access? I don't get it [10:38] maushu: I have a interface API. [10:38] JimBastard: vilhonen: you should be able to signup @ www.nodejitsu.com [10:38] JimBastard: current site sucks, working on it! [10:39] ajsie: cloudhead: eg if I have a new developer in a team, i dont have to tell him , install this this this in your computer and fetch this VPS machine from my machine etc .. i just give him an account in my VPS provider. [10:39] JimBastard: ajsie: i was thinking about what you were saying, its a good idea [10:39] JimBastard: pretty much binaries for node [10:39] JimBastard: it will happen soon [10:39] ajsie: cloudhead: well I haven't seen any solution yet with let me do everything without a shell access [10:39] ajsie: when it comes to development [10:40] ajsie: heroku is for production [10:40] cloudhead: ajsie: I think your problem is not a hosting problem [10:41] maushu: I think your problem is my solution, no shell here. Ever. [10:41] virtuo_ has joined the channel [10:42] cloudhead: you just need a better way to quickly get new developers up and running [10:42] unomi: JimBastard: just a heads up, in Chrome, the email autocomplete function messes with your email validation code [10:42] JimBastard: unomi: yeah, that shit is all fucked up [10:42] JimBastard: unomi: did it not work? [10:42] JimBastard: i didnt write that code, ughh [10:42] unomi: the OK button never showed up [10:42] JimBastard: did enter work? [10:43] unomi: nope [10:43] JimBastard: dammit [10:43] JimBastard: fucking paolo [10:43] unomi: well, I didn't get any feedback to the effect that it did [10:43] unomi: nope, In FF I get Done. blah blah fuuuu [10:43] unomi: in chrome nada [10:44] JimBastard: unomi: yeah thats lame, the signup is not good right now [10:44] JimBastard: dont use the autocomplete [10:44] JimBastard: or hit tab [10:44] JimBastard: either way should show the ok button [10:44] JimBastard: what horrible ux [10:44] ajsie: cloudhead: so the question is how do i get developers up and running and start coding the app instead of setting the dev environment up...1. i could do everything myself with vagrant/virtualbox/chef/online storage (for storing the Virtualbox machines) etc .. but I am searching for out-sourced solution .. havent found anything like it yet .. so im eager to see if nodejitsu is for development too .. or only for production [10:44] derferman has joined the channel [10:45] kuya has joined the channel [10:45] mAritz has joined the channel [10:45] kuya: hullo, does anyone know of a javascript tidyer written in js? [10:45] unomi: ajsie: if you use nodules in your development, provisioning is pretty easy [10:45] ajsie: cloudhead: basically i dont want anything to be dependent on the local computer .. i want them to have some accounts . .then everything is ready .. no matter where they are , what computers they have they can start coding ... on the bus, on the airplane =) [10:46] unomi: basically you just have to tell them to install node.js, clone your repo, and go - it will install everything needed for the app [10:46] ajsie: unomi: i dont want to tell them to install node.js [10:46] ajsie: =) [10:47] ajsie: i dont want to install node.js, sproutcore, phonegap etc everytime i buy a new computer [10:47] JimBastard: ajsie: you can build an installer, and target platforms [10:47] JimBastard: this is something id look into building, but it makes no sense for me until i have deployment platform operational [10:47] ajsie: JimBastard: yepp .. tahts why im looking for a good VPS provider to set up my dev env [10:48] JimBastard: yeah, we arent VPS, as much as NAAS [10:48] ajsie: and then i thought to use heroku/joyent/nodejitsu for production [10:48] JimBastard: (node as a service) [10:48] JimBastard: :p [10:49] ajsie: JimBastard: yeah please take a look into how to build nodejitsu for both development + production [10:50] ajsie: its the future [10:50] _announcer: Twitter: "Node.js rapid development: Nodemon | http://goo.gl/1UJl" -- Helio S. Junior. http://twitter.com/H3li0/status/27429478298 [10:50] ajsie: i mean i freaking is glad to pay for it [10:50] ajsie: like im paying for GitHub [10:50] Tim_Smart: hoodoos: http://vimcasts.org/ is pretty good. [10:50] JimBastard: ajsie: im on it! thanks [10:51] ajsie: first time i saw http://www.graphnode.com/ today [10:52] ajsie: JimBastard: looks like you got a competitor [10:52] ajsie: who is the creator of it? [10:52] JimBastard: ajsie: maushu [10:52] JimBastard: lol... [10:52] unomi: There are a fair few now, and probably loads coming [10:53] unomi: this is, after all, what Node was built for. [10:53] unomi: no.de gives you shell and all that ajsie [10:53] Tim_Smart: This is what makes vim ninja http://vimcasts.org/episodes/converting-markdown-to-structured-html-with-a-macro/ [10:53] Tim_Smart: Well, one the things. [10:54] ajsie: unomi: yeah .. i'll look into it when i have an account [10:56] herbySk has joined the channel [10:56] xla has joined the channel [11:01] stagas has joined the channel [11:01] _announcer: Twitter: "I got to tell you now but ru nodejs try tampering with the. Json file and the standard features of a language that the operation is small." [ja] -- tamtam180. http://twitter.com/tamtam180/status/27430130334 [11:04] MikhX has joined the channel [11:10] ThePub has joined the channel [11:13] zorzar has joined the channel [11:19] kjy112|home has joined the channel [11:22] MikhX has joined the channel [11:22] agnat has joined the channel [11:22] matt__ has joined the channel [11:27] dylang has joined the channel [11:28] antono has joined the channel [11:32] matt__: what the recommend way for externalising app settings? [11:32] matt__: in an expressjs app [11:32] matt__: as in app.config etc.. [11:34] teemow has joined the channel [11:34] _announcer: Twitter: "Learning node.JS while listening to my marketing teach speaking about the iPhone 4, Nespresso, etc." -- Jerry. http://twitter.com/jvzr/status/27432160823 [11:36] _announcer: Twitter: "Node.js, here is a link to videos http://nodecasts.org/ that just started, I hope to make a similar effort railscasts" [es] -- Boris Barroso. http://twitter.com/borisb/status/27432290823 [11:36] MattJ has joined the channel [11:38] path[l] has joined the channel [11:39] V1: matt__: I just create a new js file with exports.conf = { date:"here" }; conf = require("./conf") [11:39] matt__: simple enough [11:39] matt__: makes sense [11:39] matt__: not used to all this practically coming from .net [11:39] V1: :p [11:40] _announcer: Twitter: "Macbook (10.6) able to successfully install homebrew, node.js package management and installation could easily be nvm" [ja] -- hiroshi oyamada. http://twitter.com/h5y1m141/status/27432511879 [11:43] digitalspaghetti: V1: yea, that's how i do settings as well :D [11:43] digitalspaghetti: very easy [11:44] bpot has joined the channel [11:46] matt__: so you could extend that with conf = require("./conf/" + env("NODE_ENV)) [11:46] matt__: not sure what is needed to access env of top of my head but the idea [11:51] saimon_ has joined the channel [11:54] ajsie: JimBastard: what OS are you using for nodejitsu? curios [11:54] JimBastard: ubuntu [11:54] JimBastard: for now [11:54] matt__: plans to change? [11:54] JimBastard: but that will be somewhat transparent to the user [11:54] ajsie: JimBastard: okay [11:55] ajsie: love ubuntu [11:55] JimBastard: can't sleep, much launch product [11:55] JimBastard: /s/much/must [11:57] ajsie: JimBastard: for us .. don't sleep, code! [11:57] saimon_ has left the channel [11:57] JimBastard: its very close [11:57] JimBastard: im also half waiting for this round of funding to close so i can turn on the firehose for free accounts [11:57] JimBastard: we are about to get a bit of cash [11:58] ajsie: JimBastard: glad to hear that you have the support needed [11:58] ajsie: seems like necessary for today's competition =) [11:59] JimBastard: been using http://github.com/marak/machine.js a bit for the front-end [11:59] JimBastard: having fun with that [11:59] JimBastard: single page app [12:00] JimBastard: with multiple nested view states [12:00] JimBastard: so our html + javascript web app connects directly to broodmother [12:00] JimBastard: which is the deployment platform and api [12:01] ajsie: JimBastard: cool [12:01] ajsie: but why don't use js to store states? [12:01] ajsie: json ... why css? [12:01] JimBastard: lol [12:02] JimBastard: id say rtfm, but its kinda hard to grok atm [12:02] JimBastard: it uses jQuery.data() for some of the binding [12:02] JimBastard: it doesnt store anything in css, that doesnt make sense [12:03] ajsie: okay [12:04] ajsie: are you using any online storage? [12:04] JimBastard: for what? [12:04] ajsie: in general [12:05] JimBastard: http://github.com/nodejitsu/node-cloudfiles [12:05] ajsie: for some hosting features etc [12:05] JimBastard: we maintain the api wrappers for rackspace [12:05] ajsie: okay [12:05] ajsie: looking at Google storage and its impressive [12:05] JimBastard: but thats just the first provider [12:05] JimBastard: yeah, we'll add more [12:05] JimBastard: it should all be somewhat transparent to the user [12:06] ajsie: yeah true .. but just in case its always good to know the under layer [12:06] ajsie: im using Sproutcore but its good to know html , css , javascript for customizations if needed [12:06] ajsie: http://www.youtube.com/watch?v=GLbRvcbkAwE&feature=player_embedded#! [12:07] ajsie: some use cases .. if its interesting for u [12:07] c4milo has joined the channel [12:07] Tim_Smart: JimBastard: Need employees? >.< [12:07] Tim_Smart: I'm up for relocation. [12:07] JimBastard: Tim_Smart: :-( [12:08] JimBastard: how would you get over here? [12:08] Tim_Smart: In a plane. Maybe a boat. [12:08] JimBastard: visa yo [12:08] Tim_Smart: Yeah and that. [12:08] JimBastard: i had this same talk with micheil [12:08] JimBastard: that shit isnt easy [12:08] JimBastard: and you boys dont have college degrees [12:09] JimBastard: do you have any family in the us? [12:09] Tim_Smart: Good question. [12:09] Tim_Smart: Not anymore I don't think. [12:09] JimBastard: if you have any immediate family who live in the us, you have a way better shot [12:09] JimBastard: you can always do a 3 month travel visa and try to marry american girl [12:09] JimBastard: lol [12:09] Tim_Smart: Haha. [12:10] Tim_Smart: Can you do a work visa? [12:10] JimBastard: or guy? im not sure how that works [12:10] Anti-X has joined the channel [12:10] _announcer: Twitter: "If you need ansi escape codes under node.js, you call 'em like that "\u001B[31mRed Alert!\u001B[0m"" -- Nikolay Nemshilov. http://twitter.com/nemshilov/status/27434554363 [12:10] JimBastard: as far as i know [12:10] JimBastard: http://en.wikipedia.org/wiki/H-1B_visa [12:10] JimBastard: !tweet @nemshilov http://github.com/marak/colors.js [12:11] JimBastard: The current law limits to 65,000 the number of aliens who may be issued a visa or otherwise provided H-1B status each fiscal year (FY). [12:11] Tim_Smart: JimBastard: http://newzealand.usembassy.gov/swt_faq.html [12:11] Tim_Smart: I am post-secondary sorta. [12:11] JimBastard: This MOU, allows American and New Zealand citizens who are bona fide post-secondary students or recent graduates from postsecondary accredited schools [12:11] JimBastard: ya, you tell me [12:11] JimBastard: lol [12:12] V1: Google storage for developers isn't that good tbh, I think amazon S3 + cloudfront would probably be better. [12:12] Tim_Smart: Secondary school was 3 years ago.. so... [12:12] JimBastard: you and micheil should file for that shit [12:13] JimBastard: it looks like you dont need a company to sponsor it [12:13] _announcer: Twitter: "A web server in Javascript ? Yes, with Node JS running on Google's V8 engine. Weird but working idea. Screencasts here http://nodecasts.org" -- Clément Joubert. http://twitter.com/czj/status/27434765838 [12:15] skohorn has joined the channel [12:16] antono has joined the channel [12:19] figital has joined the channel [12:19] rwaldron has joined the channel [12:20] boaz has joined the channel [12:21] unomi has joined the channel [12:24] JimBastard: wtf why are tests failing, these were working last i checked [12:24] JimBastard: but who change code [12:24] JimBastard: aight i gotta focus [12:26] agnat has joined the channel [12:28] malkomalko has joined the channel [12:30] dnolen has joined the channel [12:31] malkomalko: does Step or another library like it for node exist that lets you clean up nested callbacks when you need to iterate through things somewhere in the callback chain? [12:33] _announcer: Twitter: "Yesterday papētīju node.js (nodejs.org). Do not understand what the people there to see. Java + xSocket, I think, more convenient and faster." [lv] -- Elviss Strazdiņš. http://twitter.com/elvman/status/27436127803 [12:33] chapel: umm, well there are a few queue modules [12:36] _announcer: Twitter: "The server spat nodejs Live # ParisWeb" [fr] -- Benoît Dissert. http://twitter.com/bdissert/status/27436352289 [12:39] _announcer: Twitter: "@tjholowaychuk it seems jade and haml heavily slow down nodejs" -- Sleeptillseven. http://twitter.com/sleeptillseven/status/27436604755 [12:41] caolanm: malkomalko: can you make a gist showing the problem? [12:41] skohorn_ has joined the channel [12:41] Ari-Ugwu has joined the channel [12:43] malkomalko: yup [12:43] malkomalko: going to hack up something generic.. one sec [12:44] _announcer: Twitter: "I do not know if it is not nodejs dry, or if the use of Paul Rouget is a bit limited # ParisWeb" [fr] -- Benoît Dissert. http://twitter.com/bdissert/status/27436966671 [12:44] mw has joined the channel [12:46] malkomalko: as an example: http://gist.github.com/628122 [12:48] caolanm: malkomalko: how are you getting a result from that? [12:48] caolanm: I'm not sure its working in the way you expect [12:48] herbySk has joined the channel [12:48] caolanm: because the iteration functions call an async function [12:49] caolanm: how do you know when all these operations have completed? [12:49] chapel: so I have a site I want to iterate through some pages, it returns json, I need to check each json object for a date, and only iterate through each page/item on each page when the date is after a certain time, what would be the best asynch way to handle that? [12:49] malkomalko: well, that's part of my question really [12:49] caolanm: ah ok [12:49] malkomalko: we'd use some kind of bullshit counter [12:49] paulr has joined the channel [12:49] caolanm: malkomalko: you're using underscore.js? [12:49] malkomalko: yah, I generally do, I love it [12:49] caolanm: me too! [12:50] caolanm: :) [12:50] caolanm: in that case, may I recommend my async lib: http://github.com/caolan/async [12:50] caolanm: it provides many of the same functions as underscore.js [12:50] caolanm: but async-friendly [12:50] malkomalko: so it's like, I need to hit an api.. give me all of the top level objects.. then for each of those objects, make more api requests and fetch more objects.. going down a chain of like 4 times to build up all the objects we need [12:50] malkomalko: let me take a look [12:50] malkomalko: I was using Step [12:51] malkomalko: but Step broke down when trying to iterate [12:51] caolanm: I think async.js will make more sense if you're used to underscore [12:51] aheckmann has joined the channel [12:51] Tim_Smart: malkomalko: I have made a thing called Parallel for doing parallel async calls. [12:51] caolanm: async pile on! [12:51] caolanm: go go go [12:51] caolanm: :) [12:51] malkomalko: *MORNING OVERLOAD* [12:51] stride: hm, what about using EventEmitter and a single handler for each of the steps? [12:51] Tim_Smart: malkomalko: http://github.com/Tim-Smart/node-parallel [12:52] Tim_Smart: stride: --^ uses a event emitter underneath. [12:52] malkomalko: lol, I was already watching your async lib on github caolanm [12:52] caolanm: \o/ [12:52] caolanm: fame [12:52] caolanm: ;) [12:52] malkomalko: not sure why I never pulled it [12:52] stride: Tim_Smart: ah :) [12:52] malkomalko: let me take a look at your approach too Tim_Smart [12:52] malkomalko: working this out would be a big win for me [12:53] malkomalko: I was getting a little stumped [12:53] unomi: boaz: Mihai Bazon? [12:53] Fullmoon has joined the channel [12:54] chapel: I have a similar issue malkomalko [12:54] _announcer: Twitter: "@danhilton #nodejs will get you knowledge of http up to scratch and teach you approaches that.can be used elsewhere..." -- Andy Davies. http://twitter.com/andydavies/status/27437783990 [12:54] chapel: lots of nested api calls [12:58] ysynopsis has joined the channel [12:59] caolanm: malkomalko: what I'll often do in your situation is just break it up into seperate functions for readability [12:59] chapel: thats what I am trying to do [12:59] caolanm: for each callback I mean [12:59] caolanm: makes it easier to read and debug [12:59] chapel: but I am having trouble with callbacks (I am new to js and async) [13:01] caolanm: chapel: do you have an example problem too? [13:01] ThePub has joined the channel [13:01] chapel: well sure, if you want to see my sloppy code I guess [13:02] aubergine_ has joined the channel [13:02] maushu: Okay, upstart doesn't work. [13:03] _announcer: Twitter: "fuck .net, one openrasta / ms-sql / topshelf /newton.json service to write and the rest is nodejs, at least thats the plan" -- Matt Freeeman. http://twitter.com/mattcodes/status/27438526325 [13:04] chapel: http://gist.github.com/628145 [13:04] chapel: thats what I am working on now [13:07] chapel: for the most part it works, but the order that the games are processed is never the same [13:07] chapel: not sure why [13:09] caolanm: malkomalko: http://gist.github.com/628122 [13:09] caolanm: I added a comment [13:09] caolanm: hopefully that makes sense [13:10] caolanm: chapel: yikes! [13:10] caolanm: ;) [13:10] malkomalko: YAY! [13:10] malkomalko: brb [13:10] malkomalko: hanging out at a conference today [13:11] caolanm: lucky you [13:11] chapel: yeah, Im new, so my coding is less than stellar [13:11] chapel: I chip away until I get it to work [13:11] chapel: then clean it up with stuff I learn [13:11] caolanm: chapel: nah, its fine, just that's a lot of indentation [13:11] caolanm: heh [13:11] chapel: haha [13:11] chapel: anyways [13:11] chapel: those for loops can be .each right? [13:12] chapel: the comment you made for malkomalko can be adapted to mine it looks like [13:13] caolanm: chapel: right [13:13] chapel: my main concern atm, I need to iterate through some pages, to get all the game ids to then iterate through the games, but I need to check their dates, which I was working on, not sure which is the best way to handle that [13:13] caolanm: chapel: again, I don't think this code is doing what you think [13:13] caolanm: remember this is all async [13:13] chapel: well it 'is' [13:13] mtodd has joined the channel [13:13] chapel: but I don't know what its doing exactly [13:14] chapel: :P [13:14] caolanm: ah ok :) [13:14] chapel: I mean, I get the results I want, for the most part [13:14] chapel: I just am new, so really don't know how to make it do exactly what I want [13:14] caolanm: ok, because you're writing them to the console [13:14] chapel: yeah [13:14] chapel: console.log [13:14] chapel: :) [13:14] chapel: debug [13:14] _announcer: Twitter: "@3rdEden You seem to have lots of crash/memory problems with projects running on node.js. Is this an issue with node or just user error? :-)" -- Verve Studios Co. http://twitter.com/vervestudiosco/status/27439455853 [13:15] caolanm: chapel: the problem is when you want to use this function elsewhere [13:15] caolanm: how do you know when it has finished processing? [13:15] caolanm: and how do you get the results? [13:15] caolanm: if you're doing something async inside a function, that function should accept a callback [13:16] caolanm: getGames = function(callback) { ... [13:16] caolanm: ^ *with* a callback [13:17] caolanm: I'd recommend breaking this down into smaller steps too [13:17] caolanm: much like my comment on malkomalko's gist [13:17] jherdman has joined the channel [13:17] bradleymeck has joined the channel [13:18] chapel: okay, well basically the data I am trying to get and process, is just going to be written to a db [13:18] chapel: another part of my app will then access that db info to render a page [13:18] chapel: so really, it is one way [13:19] chapel: but you are right I should break it down like you recommend [13:20] papandreou has joined the channel [13:21] galaxywatcher has joined the channel [13:23] chapel: so what about my other issue [13:23] chapel: the url at 43 [13:23] chapel: I need to go through pages, the 0 at the end is the page number [13:23] chapel: I need to check through each game date on each page, and stop when I get one older than a certain date [13:24] papandreou: I'm losing track of all the *magick wrappers on the node modules page. Does anyone know a good image lib that'll let me read an image from a Buffer and perform some very basic operations? (get dimensions, resize, output to buffer) [13:26] Tim_Smart: papandreou: http://github.com/taggon/node-gd ? [13:26] mbrochh has joined the channel [13:26] davidwalsh has joined the channel [13:26] Tim_Smart: C++ bindings, so you don't have to pipe to a child process. [13:26] killfill has joined the channel [13:27] caolanm: chapel: I'd normally solve something like that using recursion, just be aware that you might blow the stack if you're handling lots of pages [13:28] caolanm: so when you've processed the page, check the date and either call the callback or pass the callback to the function again with the next page number [13:28] ceej has joined the channel [13:29] caolanm: if you're worried about the stack then you can add a higher-level function and do someting like continuation passing [13:29] papandreou: Tim_Smart: Thanks, I had my eyes on that one, but I was put off by the lack of docs and an npm module. I'll give it another chance :) [13:30] chapel: hmm [13:30] chapel: okay, that is what I was thinking, roughly [13:31] sschuermann: re [13:33] prettyrobots_ has joined the channel [13:34] prettyrobots_ has joined the channel [13:35] chapel: another question, the api I am interfacing with has a limit of 300 calls per minute [13:36] aubergine has joined the channel [13:36] chapel: is there a concrete way to make sure I don't go over that limit? [13:36] caolanm: chapel: you need a queue [13:36] jetienne has joined the channel [13:36] chapel: okay, are there any modules that have a way to keep track? [13:36] herbySk has joined the channel [13:36] caolanm: add the calls to a queue, and have another function pull items off the queue and make the request [13:37] GriffenJBS has joined the channel [13:37] caolanm: chapel: depends what you need [13:37] chapel: hmm [13:37] chapel: well needs to be simple [13:37] caolanm: if its just in memory (eg, you're only running one instance of this script) then just write your own [13:37] caolanm: an array you add things to [13:37] caolanm: and a function that consumes items from the array [13:38] caolanm: I suppose you'll want to wrap it up in an object to handle rate limiting [13:38] caolanm: hmm, anyone know of a simple in-memory queue library? [13:38] chapel: but the idea, someone goes to my site, enters a name, my app goes to the api, gathers and caches data in db, does some calculations, then displays them, with a queue, I figure I could show a progress bar or something [13:39] caolanm: chapel: sure, I've done something very similar in the past [13:39] sideshowcoder has joined the channel [13:39] caolanm: progress bar and all [13:39] jakehow has joined the channel [13:39] ThePub has joined the channel [13:39] Gruni has joined the channel [13:40] chapel: http://techno-weenie.net/2010/7/13/in-process-node-queues/ [13:40] chapel: what would be a good way to handle lots of users at the same time [13:40] caolanm: share a queue for all users [13:40] chapel: I don't expect huge usage, but maybe some here and there when some communities find it [13:40] caolanm: that way you can limit it across all users [13:40] chapel: well that is the plan [13:41] chapel: but how do I let the user know in a userfriendly way [13:43] caolanm: you mean ui?... [13:43] caolanm: :\ [13:43] chapel: well, in general [13:43] chapel: doesn't have to be a specific solution [13:44] chapel: progress bar? have it update using ajax, or a in process wheel or whatever [13:44] caolanm: sure [13:44] caolanm: I wouldn't worry about that yet, just get it working first ;) [13:44] bradleymeck: that and tell them a wait time for the queue [13:44] killfill has joined the channel [13:45] chapel: ah, how hard would it be to build in a timer with the queue? [13:46] jacobolus has joined the channel [13:46] davidsklar has joined the channel [13:46] marshall_law has joined the channel [13:47] stride: chapel: a timer? [13:47] chapel: or a way to give an accurate time to the user, like bradleymeck said [13:48] bradleymeck: sec [13:48] boaz: unomi: huh? [13:49] bpot has joined the channel [13:49] unomi: boaz: sorry, was just trying to find Mihai Bazon, I thought he might be in here, and your nick looked like it could be a chance hit [13:50] boaz: ah [13:50] boaz: yeah, no. [13:50] unomi: Sorry for the ping then :) How are you anyway? [13:50] boaz: unomi: boaz is actually my real name  [13:50] boaz: unomi: s'ok [13:51] unomi: fair enough, unomi is not my real name, yet! [13:51] bpot has joined the channel [13:52] caolanm: anyone know how to do links within a page using githubs markdown? [13:52] caolanm: is it even possible? [13:52] bradleymeck: chapel, untested but its pretty simeple http://gist.github.com/628208 [13:53] herbySk has joined the channel [13:53] caolanm: I don't mean links to external URLs... I mean links to #my_anchor on the same page [13:53] bradleymeck: caolanm [a markdown link](#1) [13:54] caolanm: how do I add an anchor for #1 though? [13:54] bradleymeck: that is a good question [13:54] caolanm: because I have a long readme I'd like to make a bit easier to navigate [13:55] kgf: if all else fails, use actual html. markdown allows it [13:55] caolanm: kgf: just tried that, no luck [13:55] kgf: (well, assuming github's version is groovy with that) [13:55] kgf: oh. [13:55] caolanm: it strips the id attribute from the anchor tag [13:55] caolanm: renders the link fine though [13:55] chapel: thanks bradleymeck, I will check it out, but going home in a few minutes [13:55] caolanm: damn you github! [13:56] nerdEd has joined the channel [13:56] bradleymeck: caolanm, use name not id [13:56] bradleymeck: i just checked [13:56] kgf: it seems to work for me... [13:56] kgf: uh, yeah, should be using name [13:56] caolanm: ok, I'm an idiot [13:57] caolanm: shhhh, lets all pretend that didn't just happen [13:57] kgf: well, id normally /would/ work (except in MSO's crappy html renderer) [13:57] evanpro has joined the channel [13:57] gJ|Alex has joined the channel [13:58] ivanfi has joined the channel [13:59] kgf: caolanm: IIUC, id is /the/ way to do it in XHTML, so you don't look too bad for it anyway :) [14:01] herbySk has joined the channel [14:02] caolanm: kgf: \o/ [14:02] femtoo has joined the channel [14:03] prettyrobots has joined the channel [14:04] boaz_ has joined the channel [14:04] prettyrobots: Has anyone gotten WebSockets working through a proxy? I'm trying to get it to work through HAProxy. [14:05] caolanm: prettyrobots: it should work with HAProxy [14:05] prettyrobots: Good. [14:05] prettyrobots: caolanm: What about with STunnel? [14:05] caolanm: don't know [14:06] caolanm: its not behind nginx or apache or anything? [14:06] caolanm: because they'll break it [14:06] prettyrobots: Nope. [14:06] charlenopires has joined the channel [14:06] prettyrobots: Was going to put HAProxy in front of Node.js itself. [14:06] caolanm: yeah [14:07] prettyrobots: Thank you. [14:07] prettyrobots: It always helps to know, before you set out to do something, if it is actually possible. [14:08] caolanm: :) [14:09] ivanfi has left the channel [14:09] mtodd has joined the channel [14:10] mtodd has joined the channel [14:12] tobeytailor has joined the channel [14:13] gregerolsson has joined the channel [14:16] prettyrobots: Node.js 2.2.3 RPM built with debugging segfault hack: CGGVERSION=44. [14:16] prettyrobots: https://launchpad.net/~bigeasy/+archive/node-stack/+packages [14:18] devkorcvince has joined the channel [14:19] Gruni has joined the channel [14:20] aubergine has joined the channel [14:23] jstemmer has joined the channel [14:24] GriffenJBS: ... yeah 192.168.163.128, I can ping that from the host, but what IP would I use to ping the host from the guest? the dhcp/dns wasn't used so it's no connected to the right net [14:24] GriffenJBS: opps, sorry [14:26] Gruni has joined the channel [14:31] V1 has left the channel [14:33] hzin has joined the channel [14:37] mbrochh has joined the channel [14:47] GriffenJBS has joined the channel [14:47] paulr has joined the channel [14:47] ysynopsis has joined the channel [14:47] dylang has joined the channel [14:50] c4milo has joined the channel [14:54] matjas has joined the channel [15:02] Me1000 has joined the channel [15:02] dnolen has joined the channel [15:06] brianmario has joined the channel [15:06] ossareh has joined the channel [15:06] jtsnow has joined the channel [15:07] crohr has joined the channel [15:07] dohtem has joined the channel [15:07] dohtem has joined the channel [15:07] aliem has joined the channel [15:08] caolanm: how do people feel about reserved words as property / method names? [15:08] caolanm: eg, obj.throw or obj.while [15:09] EyePulp has joined the channel [15:09] caolanm: I generally avoid them, just interested... [15:09] bradleymeck: v8: x{"throw":1};x.throw [15:09] v8bot: bradleymeck: SyntaxError: Unexpected token { [15:10] bradleymeck: v8: x={"throw":1};x.throw [15:10] v8bot: bradleymeck: 1 [15:10] bradleymeck: mm interesting, sometimes it will actually throw in browsers [15:11] caolanm: oh? [15:11] caolanm: that's interesting [15:11] caolanm: know which browsers? [15:11] bradleymeck: not off top of my head [15:12] Anti-X: is there a v8 version released (since node 0.2.0) that supports property attributes? [15:12] caolanm: ok, so I have a method that really makes sense to be called 'while' [15:12] sonnym has joined the channel [15:12] caolanm: because it behaves like a while loop [15:12] skohorn has joined the channel [15:13] caolanm: only accepting an iterator function [15:13] Anti-X: well if it's for server side, then it would be fine [15:14] Anti-X: because you can (sort of) control the environment [15:14] caolanm: its for the browser too :\ [15:14] caolanm: I could call it 'until' and invert the test [15:14] caolanm: but then its not obvious whether the test or the iterator function is called first [15:14] Anti-X: oh no, don't go all ruby now [15:14] cyraxx: doWhile() :) [15:15] caolanm: doWhile changes what you expect to happen though [15:15] caolanm: then you expect the iterator to be called first, then the test [15:15] caolanm: I want to call the test first [15:15] Anti-X: yeah imperative names [15:15] caolanm: Anti-X: I didn't even know that was a ruby thing... that's how un-ruby I am! [15:15] cyraxx: whileTrue()... that's just ugly though [15:15] Anti-X: other languages have until though [15:16] Anti-X: not just ruby [15:16] Anti-X: i think it's semantics for semantic's sake [15:16] caolanm: I guess until is like do {} while() {} ? [15:16] manveru: no [15:16] caolanm: (inverted test) [15:16] manveru: until something; do_stuff; end [15:16] fcoury has joined the channel [15:17] manveru: just inverted while [15:17] caolanm: hmmm ok [15:17] caolanm: that's an option [15:17] caolanm: although I'd rather not invert the test [15:17] manveru: rubyists don't like prefixing !, that's why they have if/unless and until/while [15:17] caolanm: but I do want the test to happen first [15:17] caolanm: ah, because of the ! suffix? [15:17] caolanm: for in-place operations [15:17] manveru: no [15:18] manveru: it's just easier to read [15:18] caolanm: meh [15:18] manveru: if !cond vs unless cond [15:18] Anti-X: so the test argument is actually just a true/false once you get into the function? or is it another level of evaluation [15:18] caolanm: the test argument is a function that returns true or false [15:19] caolanm: the 'loop' is an iterator function, executed between each test [15:19] manveru: call it 'during' :) [15:19] caolanm: hmm, not bad [15:20] Anti-X: so you have something like array.unknownname(func test, func action) ? [15:20] caolanm: right [15:21] Anti-X: can't you just use array.filter(test).forEach(action) ? [15:21] caolanm: ah, sorry... I don't know the list of actions in advance [15:22] caolanm: so its just unknownname(func test, func action) [15:22] caolanm: I know what one action is and how to tell when to stop [15:22] kevwil has joined the channel [15:22] tj has joined the channel [15:22] caolanm: ...if that makes sense [15:22] jakehow has joined the channel [15:23] Anti-X: maybe if you explained what it's for [15:23] Anti-X: :P [15:23] Anti-X: a use case [15:23] Anti-X: if you will [15:23] caolanm: hmm [15:23] caolanm: in fact, we can use chapel's problem from earlier... [15:24] caolanm: getting a page from an api [15:24] caolanm: after you get the page you want to check the date of the last item [15:24] caolanm: if its past a certain time, stop, otherwise get the next page [15:24] rauchg_ has joined the channel [15:26] caolanm: 'until', 'during', 'whileTrue'... or 'while' and to hell with the consequences... I mean, it might not actually break in the browser [15:26] Anti-X: asLongAs [15:26] Anti-X: :P [15:26] caolanm: hehe [15:26] Anti-X: will definitely not be standardized ever [15:27] ajpiano has joined the channel [15:28] caolanm: iThinkItNeedMoarCamalCase [15:28] Anti-X: asLongAs(true, function(){process.stderr.write('HALP! I R STUK!')}) [15:28] stride: maybeChuckNorrisWillComeAndEndThis [15:28] Anti-X: ifYouCanComeUpWithABetterNameJustTellMe [15:29] caolanm: this channel's starting to read like java [15:29] Anti-X: isIt? [15:30] caolanm: what have I done... [15:30] caolanm: screw it, I'll go with until and invert the test [15:31] Anti-X: whileFirstArgumentIsTruePerformSecondArgument [15:31] caolanm: I'll alias that [15:31] caolanm: just in case [15:31] bradleymeck: whilst(cb) [15:31] caolanm: whilst... nice [15:31] bradleymeck: when(cb) [15:32] caolanm: oooh [15:32] caolanm: bradleymeck is on a roll [15:32] bradleymeck: has me a thesaurus [15:33] caolanm: quite like 'whilst', something olde english about it [15:33] Anti-X: but it's part of an object, isn't it? [15:33] caolanm: yeah [15:33] Anti-X: so there should be a way to name what it does, related to that object [15:34] caolanm: ah, no... its just part of a module [15:34] caolanm: util function [15:34] caolanm: thought you were distinguishing between obj.while and while affecting js [15:36] Max_Might has joined the channel [15:36] Anti-X: repeat()? [15:36] Anti-X: nvm [15:37] Anti-X: that would work better for one argument that returned true/false [15:37] caolanm: yeah [15:38] cyraxx: i vote for whilst() [15:38] caolanm: yeah [15:38] caolanm: whilst and until are both good [15:38] Anti-X: in that case i vote whilst too [15:38] Anti-X: until is so backwards [15:39] technoweenie has joined the channel [15:39] caolanm: cool, its decided :) [15:39] caolanm: bradleymeck: you win... uhm, something [15:39] Anti-X: a virtual manhug [15:40] caolanm: and a free copy of the function [15:40] caolanm: just send a stamped-addressed envelope [15:40] Anti-X: wow! [15:40] Anti-X: dude you are so lucky [15:41] bradleymeck: i just want amazon to document wtf their amazon: url scheme does [15:41] Anti-X: you'd think a company that sells books would know the importance of documentation [15:42] bradleymeck: amazon doesnt know that developers use it [15:42] Anti-X: unfortunately most of the things they do document are overelaborate and tedious.. it's like reading an end user agreement for every page [15:42] jpld has joined the channel [15:42] bradleymeck: even then, most interesting or common features are not documented except s3 [15:42] caolanm: yeah, I find their docs pretty painful [15:42] xla has joined the channel [15:43] Anti-X: they probably have dedicated document writers [15:43] Anti-X: which obviously sucks [15:43] Anti-X: so don't do that [15:44] marshall_law has joined the channel [15:46] tjholowaychuk: bradleymeck: i want them not to respond 200 when their assets are not ready and they are serving me 403s lol [15:46] tjholowaychuk: its so lame, we have to poll cloudfront [15:47] davidascher has joined the channel [15:47] bradleymeck: or perhaps the ability to set up a generic permissions instead of locking down every new file like its a state secret? [15:48] herbySk has joined the channel [15:49] mjr_ has joined the channel [15:49] seanouimet has joined the channel [15:49] tjholowaychuk: thats what is strange, our stuff is public and flagged as so, but they dont propegate to cloudfront for a few minutes or so [15:49] rwaldron_ has joined the channel [15:49] tjholowaychuk: so we have to wait around and poll to make sure we can actually access them [15:49] tjholowaychuk: its so stupid [15:49] tjholowaychuk: and if we are doing it way wrong, they didnt make it very clear [15:50] bradleymeck: you are not [15:51] bradleymeck: write propagation is not guaranteed at time of response [15:51] rwaldron_ has joined the channel [15:52] muk_mb has joined the channel [15:52] rwaldron_ has joined the channel [15:53] devkorcvince has joined the channel [15:53] mjr_: I'm told that Amazon is going to have a notification API for S3/CloudFront soon [15:53] mjr_: So you can actually know when your data is ready [15:53] tjholowaychuk: ahhaha [15:53] tjholowaychuk: yeah [15:53] tjholowaychuk: wouldnt that be nice.. [15:53] mjr_: Because the current system is kind of insane. [15:53] mjr_: When will my data be ready? Hard to say. Eventually. [15:54] herbySk74 has joined the channel [15:54] stephank has joined the channel [15:55] bradleymeck: good times, we once had a bug fix in js take 2 hrs to roll out [15:56] malkomalko has joined the channel [15:56] muk_mb1 has joined the channel [15:56] mjr_: I think CloudFront now at least has a way to request a refresh [15:56] muk_mb has joined the channel [15:57] mjr_: I hope Joyent or somebody can provide some serious competition to Amazon. [15:57] micheil: morning chaps' & ladies. [15:57] bradleymeck: mornin lover boy [15:57] EyePulp: mjr_: they do have a forced expiration method now [16:01] dmcquay has joined the channel [16:03] d0k has joined the channel [16:05] softdrink has joined the channel [16:05] Anti-X: what kind of morning do you call this? [16:07] tmpvar: its friday, a great morning :) [16:07] Anti-X: it's 6 pm here [16:07] Anti-X: if i had booze it would be out [16:07] caolanm: 5pm here [16:07] caolanm: so close... I can feel weekend [16:08] herbySk has joined the channel [16:09] stride: 6pm here \o/ time to drink^Wcode [16:09] Me1000 has joined the channel [16:09] caolanm: you drink code? [16:09] stride: occasionally [16:10] caolanm: neat? [16:11] softdrink: ACTION runs away from stride [16:11] danielzilla has joined the channel [16:12] stride: while(true) { softdrink } //can't escape it ;) [16:12] heavysixer has joined the channel [16:12] xla has joined the channel [16:13] softdrink: noooooooooooooooooooooooo [16:14] caolanm: softdrink: Ctrl+C! Ctrl+C! [16:14] caolanm: *sigh* ...I should be in a pub [16:15] zomgbie has joined the channel [16:18] xla has joined the channel [16:19] gerred has joined the channel [16:27] technoweenie has joined the channel [16:31] mattvermaak has joined the channel [16:32] sudoer has joined the channel [16:33] ezmobius has joined the channel [16:33] dahankzter has joined the channel [16:34] muk_mb has joined the channel [16:34] stagas has joined the channel [16:37] skohorn has joined the channel [16:37] TheEmpath has joined the channel [16:38] mape: Anyone here remember the url/code to creationix streaming of a video file? [16:39] herbySk has joined the channel [16:40] noahcampbell has joined the channel [16:41] benburkert has joined the channel [16:43] mape: seems it was mostly http://github.com/biggie/biggie-router/blob/master/lib/biggie-router/middleware/sendfile.js [16:43] technoweenie: http://twitter.com/creationix/status/26528585021 [16:43] technoweenie: but the link in his tweet is bad [16:43] jansc has joined the channel [16:43] gerad has joined the channel [16:44] norviller has joined the channel [16:44] tjholowaychuk: mape: yeah thats the one [16:44] jbenesch has joined the channel [16:45] c4milo has joined the channel [16:46] JCS^ has joined the channel [16:48] slashxr has joined the channel [16:49] lsmith has joined the channel [16:52] paulwe has joined the channel [16:53] isaacs has joined the channel [16:53] davglass has joined the channel [16:59] tekky has joined the channel [16:59] chapel: does anyone have any code using async, the library/module? [17:02] micheil: hm? [17:02] path[l] has joined the channel [17:03] digitalspaghetti: oooh, http://github.com/rbranson/node-ffi [17:03] prettyrobots has joined the channel [17:07] matjas has joined the channel [17:09] steadicat has joined the channel [17:09] rwaldron has joined the channel [17:10] benburkert has joined the channel [17:11] wadey has joined the channel [17:11] m64253 has joined the channel [17:11] ossareh has joined the channel [17:12] micheil: digitalspaghetti: do you know if the developer of that is in the house? [17:12] micheil: because there's a few things that could be done to make it a bit better, imo. [17:13] jesusabdullah: micheil: --> rbranson_ [17:13] micheil: rbranson_: ping./ [17:14] digitalspaghetti: no idea, i just saw it on twitter [17:15] wadey: This is still a work in progress, but may be of interest to some people here: http://github.com/wadey/node-thrift [17:16] jesusabdullah: Oh sweet I LOVE ValVil! [17:16] brianmario has joined the channel [17:18] tobeytailor has joined the channel [17:18] vnguyen has joined the channel [17:19] dguttman has joined the channel [17:19] bjarkih has joined the channel [17:23] kjeldahl has joined the channel [17:24] path[l] has joined the channel [17:34] tjholowaychuk: felixge: ping [17:34] jansc has joined the channel [17:35] MikhX has joined the channel [17:36] benreesman has joined the channel [17:39] zemanel has left the channel [17:39] renatoelias has joined the channel [17:41] gerred: hm I'm doing the rails rumble...I kind of want to sneak node.js in [17:42] dgathright has joined the channel [17:44] Aria has joined the channel [17:46] dmcquay: gerred - wah? [17:46] dmcquay: sneak it in where? [17:46] tjholowaychuk: ah god damnit [17:46] tjholowaychuk: npm [17:46] tjholowaychuk: keeps fucking shit up [17:46] isaacs: tjholowaychuk: oh? [17:47] tjholowaychuk: haha just stupid require path stuff [17:47] isaacs: ah [17:47] tjholowaychuk: for example if i have jade installed , but i run the tests for HEAD, some will fail [17:47] technoweenie: gerred: you'll probably be shamed and thrown out of the competition [17:47] tjholowaychuk: and i was thinking wtf.. i never leave a commit with failing tests [17:47] technoweenie: but the people will be on your side [17:47] tjholowaychuk: but it was just because i had it installed [17:47] tjholowaychuk: that has messed with me a few times [17:48] technoweenie: and years later there will be an awesome movie based on YOU [17:49] isaacs: tjholowaychuk: hm. i think that's something that should not be so easily confusing. [17:49] tobeytailor has joined the channel [17:49] aheckmann has joined the channel [17:49] isaacs: tjholowaychuk: if anything, you should be able to make it *easier* with npm. [17:50] tjholowaychuk: how so [17:50] isaacs: tjholowaychuk: like, "npm link" in the jade directory, and then "npm test jade" to run your tests. [17:50] tjholowaychuk: i dont run tests with npm, i just mean while im developing [17:50] tobeytailor has joined the channel [17:50] isaacs: yeah, i mean, npm just runs the "test" script from your package.json [17:50] isaacs: it's not a test harness or anything fancy [17:50] tjholowaychuk: expresso does $ express -I lib [17:50] tjholowaychuk: for example [17:51] tjholowaychuk: so require('jade') in the tests will load the npm one [17:51] isaacs: right [17:51] tjholowaychuk: but i need -I lib so I can switch it out for the instrumented version when using --cov [17:51] micheil: gerred: if you're wanting to do stuff with websockets, I'd recommend pusherapp. [17:51] isaacs: another option would be to just do "npm link" instead of "npm install" to install jade [17:51] isaacs: then the "npm one" is the same as your development folder. [17:51] isaacs: symlink [17:52] davidascher has joined the channel [17:53] prettyrobots has joined the channel [17:53] c4milo has joined the channel [17:53] gerred: probably would be shamed. ;) nah, not doing anything with websockets, though I like pusherapp. [17:53] gerred: i was going to start something similar to pusherapp...then I discovered...pusherapp. [17:54] micheil: gerred: heh heh [17:54] micheil: the pusherapp team are awesome, really smart people [17:54] gerred: yeah [17:54] micheil: (even if one doesn't like being called Jazzman) [17:54] bartt has joined the channel [17:54] prettyrobots has joined the channel [17:55] prettyrobots has joined the channel [17:56] creationix has joined the channel [17:56] ollie has joined the channel [17:59] eisd has joined the channel [18:00] stephenjudkins has joined the channel [18:01] dgathright has joined the channel [18:02] c4milo: who is AJ Oneal, I will kick this guy [18:03] malkomalko has joined the channel [18:03] c4milo: ahh I thought he was here :( [18:03] c4milo: :) [18:04] admc has joined the channel [18:04] admc_ has joined the channel [18:05] c4milo: I think all the people is lunching, leeping or programming like demons of the hell [18:06] langworthy has joined the channel [18:07] micheil: c4milo: no, I'm busy organising for a podcast & talking community.js [18:07] modular has joined the channel [18:07] vnguyen: does connecting to mongodb from php driver support replicaSet mode *with* mongos? [18:08] c4milo: micheil: where are you based ? [18:08] micheil: vnguyen: uhh.. you know this is #node.js, right? [18:08] vnguyen: DOH [18:08] micheil: c4milo: australia [18:08] vnguyen: wrong win, thanks [18:08] micheil: lmao! :P [18:09] MattJ has joined the channel [18:09] c4milo: php ? ask in #yahoo.inc [18:09] c4milo: xD [18:10] derferman has joined the channel [18:10] CIA-36: node: 03Ryan Dahl 07master * r3cf4827 10/ (Makefile benchmark/idle_clients.js benchmark/idle_server.js): Add idle connection test - http://bit.ly/bmqSUM [18:11] gerred: wow I somehow managed to get nodedojo.com [18:11] gerred: tsk [18:13] sivy has joined the channel [18:14] stride: gerred: looks ugly. :> [18:15] davidwalsh_ has joined the channel [18:15] mikeal has joined the channel [18:17] lsmith_ has joined the channel [18:17] creationix: nah, I want nojodojo.com [18:17] creationix: way cooler [18:17] creationix: not sure what I would do with it, I've never used dojo [18:17] creationix: gerad: ^ [18:18] mape: creationix: That video streaming thingy you have, do you have that code available? [18:18] jchris has joined the channel [18:18] creationix: mape: sure [18:18] mape: A coworker wants to look at node and that is something he wanted to do. [18:18] mape: Figured giving him working code might be easier [18:18] creationix: mape: it's just a simple wrapper around your sendfile module [18:19] mape: Tims? [18:19] gerad: creationix: ?? [18:19] gerad: stride: ? [18:19] creationix: gerad, sorry that was for gerred [18:20] creationix: mape: this one https://gist.github.com/233a9f5f3903db92a1a5 [18:20] gerad: oh ok [18:20] creationix: mape: let me see if it's the right code though [18:20] visnup has joined the channel [18:20] mape: creationix: Greatly appriciated :) [18:20] agnat has joined the channel [18:21] BBB- has joined the channel [18:21] creationix: mape: ok, pushing the latest changes to it [18:21] mape: :) [18:21] creationix: now it should be the exact code running creationix.com [18:21] mape: and sendfile is straight up the one from biggie? [18:21] creationix: hmm, didn't take [18:21] creationix: mape: I wonder where it pushed to [18:22] mape: http://github.com/biggie/biggie-router/blob/master/lib/biggie-router/middleware/sendfile.js [18:22] mape: ? [18:22] creationix: mape: almost exact [18:22] creationix: I think I changed it a tiny bit [18:22] evanpro has joined the channel [18:22] gerred: well stride I just registered it. ;) [18:23] gerred: i don't even know what ot do with it [18:23] gerred: "huh this is a cool domain let's get it" [18:23] creationix: mape: ok, now https://gist.github.com/233a9f5f3903db92a1a5 [18:23] HAITI has joined the channel [18:23] creationix: gerred: which one did you get? [18:23] gerred: nodedojo...though I should get nojodojo [18:23] gerred: haha [18:23] gerred: aw taken [18:23] derferman has joined the channel [18:23] davidwalsh_ has joined the channel [18:23] creationix: you should make a node framework called nojo and base it on dojo style [18:23] gerred: that'd be kind of cool. [18:24] Anti-X: nodejo? [18:24] Anti-X: nodjo [18:24] Akufen has joined the channel [18:24] Akufen has joined the channel [18:24] jesusabdullah: nachos? [18:24] gerred: nodejo just sounds bad. [18:24] jesusabdullah: MMMM :9 [18:24] gerred: like a bad craigslist posting [18:24] gerred: no homo [18:24] jesusabdullah: hah [18:24] Anti-X: nodejo is pronounced "nojo" [18:25] Anti-X: you don't take time to pronounce the silent e [18:26] blowery: nojo [18:26] Anti-X: no, jo [18:26] blowery: nono [18:27] Anti-X: just [18:27] Anti-X: n [18:27] creationix: oh crap, my idea is taking off, I should of made everyone sign an NDA ;) [18:27] Anti-X: you can't do that on the lazyweb [18:27] Anti-X: it ruins the point [18:27] blowery: sign my lazynda [18:27] jesusabdullah: :D [18:27] jesusabdullah: I've never used dojo [18:27] jesusabdullah: so [18:27] creationix: lazynda [18:27] jesusabdullah: i don't really have a vested interest either way [18:27] creationix: now we're talking [18:28] blowery: creationix: i already have a lazynda covering the lazynda. please don't go blabbing. [18:28] creationix: blowery: but it's lazy [18:28] isaacs: hoodoos: hey, i was trolling the logs and saw your question about editors. you realize that you basically described textmate? [18:28] creationix: blabbing is part of it [18:28] blowery: yes [18:28] blowery: i'll only enforce it once you start blabbing [18:28] jesusabdullah: hah [18:28] jesusabdullah: What editor question was this? <_< [18:28] jesusabdullah: ooc [18:30] deepthawtz has joined the channel [18:34] sudoer has joined the channel [18:36] hoodoos: isaacs, i'm not macofil :) [18:36] gerred: creationix: what's your idea? [18:36] gerred: here's my nda [18:36] isaacs: hoodoos: oh, i see. [18:36] hoodoos: isaacs, i'm currently on gedit [18:37] creationix: gerred: :P [18:37] isaacs: hoodoos: i see. [18:37] hoodoos: isaacs, couldn't switch to vim in one day :)) [18:37] gerred: :p [18:37] isaacs: hoodoos: i occasionally flirt with vim [18:37] creationix: hoodoos: I switched to textmate from gedit [18:37] isaacs: hoodoos: when textmate crashes and is stupid [18:37] creationix: but only because gedit on osx is wonky [18:38] hoodoos: creationix, i just miss normal tree view for files in gedit atm [18:38] isaacs: when textmate2 comes out, though, it'll be way more powerful than vim, and also easier to use than cotton balls. [18:38] hoodoos: creationix, that build in file explorer is crap :) [18:38] isaacs: it'll be more powerful than TANKS [18:38] creationix: isaacs: the end of the world will come first [18:39] isaacs: no, creationix, tm2 will *signal* the end of the world. [18:39] creationix: hoodoos: file explorer? [18:39] isaacs: textmate2 will judge us all. [18:39] isaacs: it will be seated at the right hand of the father. [18:39] creationix: ACTION scoots away from isaacs [18:39] isaacs: hahahah [18:39] hoodoos: creationix, yeah, the one for left panel, i love to have one there to navigate through project tree [18:40] bobsag has joined the channel [18:40] creationix: hoodoos: are you talking about gedit on osx or textmate? [18:40] creationix: hoodoos: I got lost somewhere [18:40] hoodoos: creationix, i'm talking about gedit on ubuntu :) [18:41] creationix: hoodoos: oh, the treeview in gedit is the best I've seen anywhere [18:41] creationix: and on linux it works seamlessly with remote filesystems too [18:41] Sembiance: ACTION smiles. [18:41] hoodoos: creationix, the one that included? [18:41] hoodoos: creationix, it's not tree.. :) [18:41] creationix: yeah, it's included now [18:42] creationix: hoodoos: how is it not a tree? [18:42] creationix: it's the directory structure [18:42] hoodoos: creationix, http://gyazo.com/faa2a167f72e9810f9b502718026359d.png [18:44] hoodoos: creationix, is it a tree? :) [18:44] creationix: hoodoos: yes http://creationix.com/tree.png [18:44] creationix: just because you have a single folder with no subfolders doesn't make it not a tree [18:44] creationix: just a very shallow tree [18:45] hoodoos: creationix, !!!! [18:45] hoodoos: creationix, omg, it's perfect! [18:45] hoodoos: creationix, but mine's sux, is it gedit? [18:45] femtoo has joined the channel [18:45] creationix: hoodoos: and that's even gedit on osx [18:45] oal has joined the channel [18:45] creationix: yeah, it's the same [18:46] hoodoos: creationix, my file observer isn't the one you use.. [18:46] creationix: looks like you're using the same thing [18:46] creationix: I can't read your localization, but it looks like the same thing [18:46] creationix: same button structure [18:46] hoodoos: creationix, yep, but not a tree! :) [18:46] delapouite has joined the channel [18:47] creationix: hoodoos: the tree is your filesystem [18:47] creationix: hit the up arrow [18:47] creationix: hoodoos: it will go up a level in the tree [18:47] hoodoos: creationix, yes, for sure, but yours shows branches [18:47] strmpnk has joined the channel [18:47] creationix: that's because I have subfolders in my project [18:47] hoodoos: creationix, i have a lot of subfolders [18:48] hoodoos: creationix, LOL [18:48] creationix: hoodoos: are you at the root on your project? [18:48] voodootikigod has joined the channel [18:48] hoodoos: creationix, i didn't noticed + buttons [18:48] hoodoos: crea [18:48] hoodoos: i'm sorry :) [18:48] creationix: :P [18:48] creationix: no problem [18:48] hoodoos: creationix, you're right it's great tree view! :) [18:49] creationix: and it lazy loads the subtrees [18:49] creationix: so it works great even over ssh [18:49] creationix: sftp as it's called in gnome [18:49] hoodoos: creationix, nice to do hot fixes :) [18:49] creationix: double-click a folder to make it the new root [18:49] creationix: yep [18:51] mytrile has joined the channel [18:52] jchris has joined the channel [18:53] chapel: I am trying to use the async.js library [18:54] chapel: but I am having some logic issues I guess [18:54] chapel: I need to sequence through some pages [18:54] chapel: of a website/api [18:55] chapel: and gather IDs from objects in the json on those pages [18:56] chapel: I need to stop sequencing through the pages when one of the objects has a date I specify [18:58] programble has joined the channel [18:59] chapel: would a while loop be adequate? [18:59] creationix: chapel: while loop are sync [18:59] chapel: okay [18:59] creationix: if you're doing I/O that won't work [18:59] chapel: yeah [18:59] creationix: a recursive loop with a condition would work [18:59] creationix: essentially an async while [19:00] chapel: hmm [19:00] matt_c has joined the channel [19:00] creationix: and as long as some async callback powered the recursion, you'll never blow the stack [19:00] creationix: async events always start on a new stack [19:00] chapel: yeah [19:00] chapel: I am using the async.js library/module [19:00] chapel: or whatever [19:01] chapel: Im not that great with js as it is, sorry [19:01] creationix: sure, but it has to be real async using I/O, timers, or nextTick somewhere under the hood [19:02] chapel: I believe it uses nextTick or something [19:02] creationix: probably, lost of those kinds of libraries do [19:02] onar has joined the channel [19:02] path[l] has joined the channel [19:03] chapel: so how would I go about making a recursive loop with a condition? [19:03] chapel: oh [19:03] chapel: recursion meaning, calling the function inside itself [19:03] hellp has joined the channel [19:03] chapel: lingo is not up to par [19:04] stagas: chapel: var next = function(page) { scrape(page, function(data) { next(next_page) } } [19:04] stagas: something like that [19:04] admc_ has joined the channel [19:04] admc has joined the channel [19:04] chapel: hmm [19:04] mechanate has joined the channel [19:05] chapel: well to go through each page, I have to also check 20+ json objects for their dates [19:05] danielzilla has joined the channel [19:05] chapel: what would be the best way to loop through those, each? [19:05] mechanate: is anyone using backbone.js? If so how do you like it? [19:05] malkomalko has joined the channel [19:05] mechanate: mentcloud.github.com/backbone/ [19:06] mechanate: oops documentcloud.github.com/backbone/ [19:06] stagas: chapel: maybe promises [19:06] chapel: aren't promises not in node anymore? [19:07] isaacs: chapel: whoa.... [19:07] stagas: so when all are finished you call next() [19:07] isaacs: chapel: you're like, from the dark ages, eh? [19:07] chapel: or I am mistaken [19:07] chapel: sorry isaacs [19:07] isaacs: chapel: :D [19:07] isaacs: chapel: there are some userland modules that implement various forms of promises. [19:07] chapel: really, Im new to js, my brain is php/c++ sadly and its really hard for me to make the jump [19:08] mytrile has joined the channel [19:08] creationix: chapel: do you want to scrape in parallel or serial? [19:08] creationix: or a little of both, maybe 5 at a time in parallel [19:08] MikhX has joined the channel [19:09] isaacs: failover is HARD./ [19:09] isaacs: "Oh, just support multiple registries. when one goes down, you ping the second one" [19:09] chapel: well for the IDs I am gathering, it has to be serial, since I don't know how many pages there are, I guess I could do parallel, but I have no way of knowing how many pages there are [19:09] isaacs: yeah. omg. SO much easier to say than to do. [19:09] creationix: isaacs: lol [19:10] agnat: :-P [19:10] isaacs: like a gillion edge cases. [19:10] creationix: chapel: well, you can do them in parallel once you know what pages there are to scrape, but is that what you want [19:10] dysinger has joined the channel [19:10] chapel: each page has a value of "HasMorePages":true [19:10] isaacs: suddenly "npm ls" starts having to worry about the CAP theorem. [19:11] creationix: chapel: so what's the condition to stop gathering? just a certain number of IDs? [19:11] isaacs: and it matters where "install" goes, etc. [19:11] chapel: true or false [19:11] chapel: well [19:11] chapel: not a certain amount [19:11] isaacs: ugh [19:11] chapel: each id also has a date associated with it [19:11] creationix: chapel: I see [19:11] creationix: chapel: yeah, serial is fine [19:11] emmanueloga has joined the channel [19:11] creationix: parallel is better when you can because it's faster, but that would be hard for your case [19:11] chapel: so I figured it was easiest to just go one at a time through them, checking for hasmorepages and the dates [19:12] chapel: once I get the IDs [19:12] creationix: you'd have to predict how many pages and possible waste some bandwidth [19:12] creationix: chapel: sure, that's easy enough [19:12] chapel: I then have to make api calls for each one of those [19:12] karboh has joined the channel [19:12] creationix: chapel: write a function that grabs the next page [19:12] chapel: and those can be done in parallel [19:12] creationix: chapel: then in it's on data callback, have it call itself if there are more pages [19:13] creationix: for parallel, I'd use some sort of counter [19:13] creationix: or there is probably something in async.js for that too [19:13] chapel: so you think I should gather each page first, then parse the IDs and dates? [19:13] creationix: I know my Step does [19:13] creationix: well, you have to parse as you gather right? [19:13] creationix: so know what to do next? [19:14] chapel: well otherwise Id have to store the data [19:14] chapel: yeah [19:14] chapel: exactly [19:14] malkomalko has joined the channel [19:14] svnlto has joined the channel [19:14] stagas: chapel: if it's not a production enviroment and you're just scraping you can parse them in sync [19:14] creationix: stagas: naughty [19:14] stagas: :P [19:14] chapel: stagas, sure, but its for a site, and the api has a call limit anyways [19:14] creationix: besides, you can't to network code sync [19:15] chapel: I can't cache the initial pages either, because the data changes [19:15] creationix: only fs stuff has that optoin [19:15] stagas: I meant just the JSON parsing not the i/o [19:15] chapel: well yeah, the json stuff can be parallel [19:15] creationix: well, sure, JSON parsing it always sync [19:15] chapel: but I am not sure how to go about it, my first thought is loop, but thats a no go [19:15] creationix: with the built-in one at least [19:15] creationix: chapel: want a gist? [19:15] stagas: for 20 pages it would take too long to parse them in serial [19:16] nsm has joined the channel [19:16] chapel: want me to gist, or you give me some dummy code? [19:16] chapel: stagas, I doubt there would be 20 pages, even still, they are light json api calls [19:16] chapel: and its only for the initial ones [19:17] spetrea: what's a module for node.js that acts a lot like curl ? to set headers and stuff for a request ? [19:17] chapel: the IDs I am gathering, those can and will be in parallel, and I will be caching the data from those api calls into a db, since they wont change (the data gathered from the api calls) [19:17] agnat: chapel: na, do it yourself! there are some fundamental async patterns in this task and it is an excellent exercise. [19:18] MikhX has joined the channel [19:18] chapel: well, the problem agnat, I really am lost as to what is the best approach, recursion looks like the key [19:18] agnat: chapel: exactly ... [19:18] chapel: but I am not sure how to apply that to the date comparison on each ID object [19:18] avocado has joined the channel [19:18] paulr_ has joined the channel [19:18] chapel: hmm [19:18] avocado: has anyone built this on openbsd? [19:19] malkomalko_ has joined the channel [19:21] creationix: chapel: http://gist.github.com/628762 [19:22] creationix: chapel: for the serial part, something like that [19:22] agnat: avocado: Broken because of missing config.h? [19:24] avocado: in the git check out yes [19:24] creationix: chapel: also, tips http://howtonode.org/control-flow, http://howtonode.org/control-flow-part-ii, http://howtonode.org/control-flow-part-iii, http://howtonode.org/do-it-fast, http://howtonode.org/step-of-conductor, and http://howtonode.org/flow-control-in-npm [19:24] avocado: in teh tar off the website, it fails at some point in the v8 build [19:25] creationix: chapel: and for javascript in general: http://howtonode.org/what-is-this, http://howtonode.org/why-use-closure, http://howtonode.org/object-graphs, and http://howtonode.org/object-graphs-2 [19:26] creationix: I should really add tagging to my site so I can just link people to a named tag [19:26] agnat: avocado: I could help with generating the config.h for your platform. But it still might fail in v8. I just don't know. don't have a openbsd vm handy [19:26] chapel: thanks creationix [19:26] avocado: agnat: also, i had to make up a pkgconfig file for openssl for that to be recognized [19:27] avocado: the configure script fails when testing for libssl [19:28] lsmith has joined the channel [19:28] chapel: I have an idea where I need to go, I started dummy coding up my thoughts, and I came to some similar stuff you linked in your gist, [19:29] chapel: for 'http.get' I would return http.get [19:29] chapel: right? [19:29] chapel: hmm [19:29] eloyface has joined the channel [19:29] chapel: bleh, I should really get some sleep, have work in 10 hours [19:29] chapel: thanks everyone, appreciate it [19:29] chapel: will read what you linked [19:30] cloudhead has joined the channel [19:30] tilgovi has joined the channel [19:31] mytrile has joined the channel [19:32] agnat: avocado: ic. the build system is in the middle of a rewrite and openbsd is not on the list of 'high priority' platforms. But I'm pretty sure patches would be welcome ... [19:34] hsuh has joined the channel [19:35] agnat: avocado: to generate the config.h for libev, libeio and c-ares just run the original configure scripts. then copy config.h to a openbsd subdirectory [19:36] malkomalko has joined the channel [19:40] voodootikigod_ has joined the channel [19:41] voodootikigod_ has left the channel [19:42] dahankzter has joined the channel [19:44] herbySk has joined the channel [19:54] Anti-X: announcer clean the tubes [19:54] _announcer: Cleaning the tubes for great justice! [19:55] _announcer: Twitter: "Published http://github.com/torvalamo/argtype.js (JS function argument type checker) on npm as 'argtype' #javascript #nodejs" -- Tor Valåmo. http://twitter.com/torvalamo/status/27473248117 [19:56] tjholowaychuk: with? [19:56] micheil: lolwat. [19:56] tjholowaychuk: :s [19:56] Anti-X: yeah [19:56] tjholowaychuk: probably dont want to do that [19:56] Anti-X: look in the readme [19:57] Anti-X: why it does that [19:57] V1 has joined the channel [19:57] malkomalko has joined the channel [19:58] Anti-X: it was originally written for browsers, and in order to make it integrate easily into existing code (just insert with :p) i had to do that [19:58] Anti-X: because not all browsers support tampering with the arguments object [19:59] Anti-X: it's not for your everyday function anyways, I use it only for functions with a lot of optional arguments [20:00] Anti-X: and if you have a better way to do it, feel free to FIX IT! [20:02] micheil: Anti-X: can I slap you for using with(){} [20:03] micheil: it's like, really evil, I'm sure. [20:03] Anti-X: haha [20:03] Anti-X: it was actually discussed in #javascript in its time [20:03] tjholowaychuk: it slows things down more than i would have ever thought [20:04] Anti-X: and i think we reached the conclusion that with was not as slow as you would make it out to be, nor is it evil, because if you look closely, all it's doing is emulate the arguments [20:04] Anti-X: the slowing down is mainly because of the (checking) function itself i think [20:04] Anti-X: though maybe with is really slow on v8 [20:04] Anti-X: iono [20:05] tjholowaychuk: http://jsperf.com/with-vs-function-variables [20:05] tjholowaychuk: i just remember way back [20:05] tjholowaychuk: when i wanted a include() type thing for node [20:05] micheil: totally not running a jsperf will mixing audio.. [20:06] Anti-X: opera is actually faster with with according to that [20:06] micheil: tjholowaychuk: good damn. it's like 5x the difference [20:06] micheil: Anti-X: hate to mention it, but we're not running on opera. [20:06] Anti-X: i am :D [20:06] micheil: or the kracken engine [20:06] tjholowaychuk: id imagine with() could/should be reasonably fast but yeah i dunno apparently not [20:07] tjholowaychuk: maybe in the grand scheme of things it really does not matter much [20:07] tjholowaychuk: only for stupid benchmarks like this perhaps lol [20:07] Anti-X: and if i have to mention it again, written ages ago, for browsers, not for node, and fix it if you know a better way ;) [20:08] banjiewen has joined the channel [20:08] sveisvei has joined the channel [20:09] _announcer: Twitter: "Looking for ideas to start learning nodejs." -- Tite Trésor NGOY-THA. http://twitter.com/titengoytha/status/27474202257 [20:09] _announcer: Twitter: "By tampering with sleep node.js I'm stopped in the middle of a heavy guy Ijirou Google API Japanese input." [ja] -- Kotaro Kokubo. http://twitter.com/kotarok/status/27474209423 [20:09] Anti-X: so.. 1 million withs per second, how is that a problem? ever? :p [20:09] nerdEd has joined the channel [20:09] tjholowaychuk: that is what i mean lol it is not really practical [20:09] tjholowaychuk: just like most of the template engine ones are not so practical [20:09] isaacs: tjholowaychuk: it also made the http benchmark like 12% slower or something [20:09] herbySk has joined the channel [20:09] tjholowaychuk: because your app does things, other than render a template [20:09] isaacs: tjholowaychuk: i'd tested your include thing by running *other* benchmarks in both cases. [20:09] tjholowaychuk: isaacs: ya i cant remember at all [20:10] c4milo: isaacs: any progress in node-fuse [20:10] isaacs: tjholowaychuk: just wrapping otherwise fast code in a with block makes it slow, if it does a lot of read and write. [20:10] c4milo: ? [20:10] isaacs: c4milo: not much [20:10] isaacs: c4milo: joyent stuff, and also trying to track down and fix a few nasty npm bugs. [20:10] tekky: i do believe 'with' is slow when using it to set values... if you only access I believe it is quite nimble [20:10] c4milo: isaacs: ouch, I can work part time on that but I stopped because you were working on it also [20:10] isaacs: tekky: it makes non-local values much slower. [20:11] tjholowaychuk: isaacs: that was probably it then, i couldnt remember what was even benchmarked i just remembered it being about a %13-ish hit [20:11] isaacs: c4milo: the npm stuff should be done today. pushing out a release come hell or high water. [20:11] Anti-X: you can't set values with with i believe [20:11] Anti-X: but i could be wrong [20:11] isaacs: Anti-X: you can, but it sucks [20:11] Anti-X: so don't [20:11] isaacs: with(){} really doesn't belong in the language any more. [20:11] Anti-X: then arguments should be allowed to be tampered with [20:11] isaacs: you have to optimize completely differently to make it usable (qv applescript) [20:11] Anti-X: :p [20:11] sveimac has joined the channel [20:12] tekky: Anti-X: with(document.body) { className = 'imwrong'; } :P [20:12] isaacs: fab's use of with as a prefix to a single expression that is a chained template generator: that's a pretty tame use case. [20:12] isaacs: anything more complicated than that, anything that does "var" or has curly braces, with becomes Very Very Bad. [20:12] Anti-X: yeah, but also take into account i'm not using with on shit like document [20:12] tekky: Anti-X: objects are objects are objects are... [20:13] isaacs: Anti-X: it's not hte size of the with-block object, it's the complexity of the code within the block [20:13] isaacs: Anti-X: if that code is doing a lot of reads to non-local (read: "outside the with block") vars, or writing to anything anywhere, it's a problem [20:14] Anti-X: so again, fix it :p [20:14] pedrobelo has joined the channel [20:14] tekky: i really hate sitting at work w/nothing to work on [20:14] Anti-X: i know something you can work on [20:15] Anti-X: it's called argtype [20:15] c4milo: I want a job :( [20:15] Anti-X: it uses this horrible with block [20:15] Anti-X: that you can fix [20:15] creationix: c4milo: move to california [20:15] MikhX has joined the channel [20:15] c4milo: creationix: you are going to hire me ? [20:15] c4milo: :) [20:15] creationix: I won't, but there are plenty of jobs out here for people that know JavaScript [20:16] isaacs: c4milo: so, if you really wanna help with node-fuse,here's where i'm blocked atm: [20:16] Anti-X: no he just wants you to move there, that's where all the unemployed actors live, you can join them and pretend you're not getting acting jobs [20:16] c4milo: creationix: that's the problem, I like do many things in different languages :$ [20:16] isaacs: c4milo: i need to be able to set up the fuse_lowlevel stuff to use ev's loop instead of its own. [20:16] creationix: c4milo: not sure that's a problem [20:16] isaacs: c4milo: in such a way that it can be hooked into node, and doesn't block it [20:17] c4milo: creationix: here in NY there are a lot of opportunities but I don't like the interviews. I'm a timid person [20:17] isaacs: c4milo: so, my next goal is a "node-fuse-hello" binding that exposes 2 functions. hello.mount("mountpoint") and hello.unmount(). that's it [20:17] c4milo: hehehe [20:17] Anti-X: maybe argtype could be hacked into a c++ binding [20:17] tekky: Anti-X: hehe no idea what argtype is :P i was just chiming in my knowledge of with from dojo expierence :P [20:17] c4milo: isaacs: yes, I was looking at libeio a eio_custom [20:17] Anti-X: see the start of this convo block and you'll know [20:17] Anti-X: :p [20:17] c4milo: I think is a good idea to use that thread pool [20:18] c4milo: I was talking with micheil about it [20:18] isaacs: c4milo: so, yeah, one option is to just use the normal fuse_lowlevel event loop, and do fuse_loop() or whatever, and do that on the thread pool. [20:18] micheil: what? [20:18] isaacs: c4milo: the snag there is that you want to be able to have access to js functions when you get a call from the fuse loop [20:18] c4milo: micheil: about libeio [20:18] micheil: I will have a tutorial on libeio and eio_custom written soon. [20:19] c4milo: micheil: nice [20:19] micheil: I need to do the mixdown on a new podcast first though [20:19] isaacs: c4milo: and iirc, your eio_custom cb function can't see v8 [20:19] micheil: yea [20:19] micheil: it can [20:19] isaacs: c4milo: orly? i thought it ran in a separate thread? won't that break the world? [20:19] isaacs: er, micheil ^ [20:19] micheil: isaacs: I'll cover it in the tutorial [20:19] isaacs: ok. [20:19] micheil: but it is kinda odd [20:19] micheil: like, the blocking function works in the thread [20:19] isaacs: well, it needs to see the specific JS objects passed in. [20:20] micheil: then it goes back to the eio_loop and calls the callback [20:20] isaacs: oh, but the cb's themselves can be look into jsland? [20:20] micheil: yeah, we can do that. [20:20] micheil: I'm pretty sure of it. [20:20] isaacs: ok, that might be not too hard, then [20:20] HAITI has joined the channel [20:20] c4milo: isaacs: yes me too [20:20] c4milo: pretty sure [20:20] isaacs: but i am not yet 100% convinced that that's possible. [20:20] isaacs: you're making me more confident, though :) [20:20] micheil: that's why I want to get the ASYNC_CUSTOM_CALL patch it [20:20] micheil: *in [20:21] isaacs: oh, ok, yeah, i guess i did that with eio_custom for node-glob [20:21] c4milo: isaacs: right know I'm not seeing a real use for this callback at then of the functions [20:21] isaacs: the js cb gets called from the c cb passed to eio_custom [20:22] isaacs: but the eio worker (that blocks and actually calls glob) doesn't see JS stuff, so you have to give it C versions of all the data up front [20:22] c4milo: isaacs: to avoid complexity I would recommend to get rid of them until there a real argument to have them [20:23] isaacs: c4milo: not sure what you'er talking about getting rid of? [20:24] isaacs: oh, wait, no... i don't think the standard eio_custom approach will work... [20:24] isaacs: because it never ends, right? [20:24] c4milo: isaacs: the additional callback at the end of each filesystem function [20:24] micheil: isaacs: yeah, that's almost right. [20:24] c4milo: fuse function [20:24] isaacs: once you drop into fuse_loop, you sit there blocking. [20:24] isaacs: c4milo: no, that's absolutely 100% necessary. you're taling about the stuff in the hello-fuse.js example sketch thing? [20:25] isaacs: c4milo: your JS file system might have to make http calls to get its data. [20:25] micheil: isaacs: perhaps talk to ryah about it? [20:25] micheil: he might have a way to push it off node's event loop [20:25] isaacs: micheil: well, i mean, ev's there. i can just use that. [20:25] isaacs: it's just that i don't know how, and my hello-ll-ev.c compiles, but doesnt' actually run. [20:25] c4milo: isaacs: hum, ok let's see what happen [20:25] micheil: I know ryan suggested not to use the ev's and libeio event loops if you're doing heaps of stuff [20:26] micheil: bbl. breakfast. [20:26] isaacs: c4milo: yeah, implementing it just like the python binding would be trivial, but also dumb. [20:26] isaacs: micheil: i think maybe fuse counts. [20:26] TheEmpath: Build a man a fire, and he'll be warm for a day. [20:26] isaacs: but i'll try doing eio_custom for this. it might work fine. [20:26] TheEmpath: Set a man on fire, and he'll be warm for the rest of his life. [20:26] isaacs: heh [20:27] TheEmpath: oh Terry Prachett. an entire generation will pass and never know you :( [20:27] TheEmpath: all we are left with are Paris Hilton and The Situation :( [20:29] c4milo: isaacs: the next step for me is being able to write hardware drivers in userspace and using nodejs :P [20:30] mattly has joined the channel [20:31] _announcer: Twitter: "well it seems that #nodejs is renaming "sys" to "util" in v0.3, hope that at least by v1 constant renaming would not be an issue anymore :S" -- Andris Reinman. http://twitter.com/andris9/status/27475693710 [20:34] Anti-X: !tweet andris9 that's the point of v0.x versions, it's a development version. things change. [20:34] Anti-X: !tweet @andris9 that's the point of v0.x versions, it's a development version. things change. [20:35] Anti-X: 4got di @ lolz [20:35] stagas has joined the channel [20:36] _announcer: Twitter: "Recently I heard node.js, I'm a server-side JavaScript essence. It <script language="JScript" runat="SERVER"> in JavaScript ry man .. what are sure that the duty by reference to BL, but I thought I was unfit to wonder Not really" [ja] -- 放牧民. http://twitter.com/bohemianway/status/27476090328 [20:37] _announcer: Twitter: "@markkolich i would like to know as well... more about node.js" -- Chris C. http://twitter.com/chriskd/status/27476106035 [20:37] ph^ has joined the channel [20:37] deanlandolt: anyone have any thoughts on a clean way to override the Buffer constructor? i'd like to get node to stash the encoding used (if constructed as a string) on the thisObj [20:38] shimondoodkin has joined the channel [20:39] deanlandolt: there are a few good uses for this but if nothing else, it's crazy that the static Buffer.byteLength only takes a string and not another Buffer...though i guess you can use length on any buffer created w/ a string...but again, how to know? [20:40] stephenjudkins has joined the channel [20:42] shimondoodkin: hello, ivegot a c question: (im learning to do modules for nodejs) i'm trying to build this http://github.com/shimondoodkin/node-readdir but when i run it i get "No module symbol found in module" any idea why? [20:44] _announcer: Twitter: "Started to add a visual example into the #node.js fuzzylogic module so that everyone can understand it" -- Sebastian Schürmann. http://twitter.com/sschuermann/status/27476590646 [20:44] teemow has joined the channel [20:47] yviktorov has joined the channel [20:48] bradleymeck: _frankie is back! [20:51] xla has joined the channel [20:51] blaines has joined the channel [20:53] Anti-X: is that a good thing? [20:53] _announcer: Twitter: "You do not have to use node.js to write asynchronous javascript." -- Ryan R. Smith. http://twitter.com/ryandotsmith/status/27477244243 [20:54] ctp has joined the channel [20:55] bradleymeck: anti-x thats where !tweet comes from [20:55] Anti-X: oh right [20:55] Anti-X: then he's been around for days now [20:55] bradleymeck: !tweet @ryandotsmith, indeed, but it is a new area being a simply scripted event driven programming env [20:56] bradleymeck: he was offline for a few [20:56] Anti-X: isn't rhino also something like node? [20:56] Anti-X: or is it something else [20:56] herbySk74 has joined the channel [20:56] jesusabdullah: rhino is something like v8 [20:56] jesusabdullah: but it's java-based, iirc [20:56] jesusabdullah: also a mozilla project [20:56] Anti-X: ah, that explains the ugly java lines in the console examples [20:57] jesusabdullah: ringo is kinda like node, but uses rhino and aims to stick to commonjs stylings [20:57] bradleymeck: rhino has a large stake in ssjs but it also loves threads in most uses [20:57] deanlandolt: Anti-X: it's kinda nice to be able to use the HUGE number of (admittedly ugly) jars out there [20:57] jesusabdullah: Ooh [20:57] jesusabdullah: minecraft :D [20:57] Anti-X: >_< [20:57] bradleymeck: deanlandolt, you got a surprise coming in a couple weeks [20:57] deanlandolt: bradleymeck: eh, you can use webworkers and ignore the fact that they're actually threads under the hood [20:57] deanlandolt: bradleymeck: ? [20:58] bradleymeck: webworkers are done w/ processes in node generally [20:58] Anti-X: proc me up, before you go go [20:58] bradleymeck: completely different in many ways for scaling / memory sharing [20:58] deanlandolt: yeah, and taht's probably better (if not a /tiny/ bit more expensive) [20:58] deanlandolt: yeah, but if you're not actually /sharing/ memory it doesn't matter if you're backed by threads [20:58] bradleymeck: well depends on number of cores, processes can be cheaper :) [20:59] deanlandolt: bradleymeck: really? threads scale across cores just as processes do [20:59] malkomalko has joined the channel [20:59] deanlandolt: i'm not privy to the details of actual context switching costs of the two but i imagine threads would be cheaper there too [20:59] bradleymeck: some do, OS threads do, across core memory for threads must be locked etc, which can be done by hw, but no locking is needed on processes [21:00] bradleymeck: user threads etc do not go cross cores without some serious hacks [21:00] deanlandolt: bradleymeck: ah, good point [21:00] Anti-X: programming in threads vs programming processes are two very different experiences though [21:01] deanlandolt: it's clearly going to be more expensive to kick off a process (~4ms) than a thread, but after that i guess the cost isn't much different [21:01] deanlandolt: Anti-X: no, not at all... [21:01] bradleymeck: then comes the problem context switches are generally scheduled on a somewhat fair interval rather than being able to set process to idle easily [21:01] deanlandolt: if you aren't trying to share memory and are using a message passing worker model [21:01] deanlandolt: bradleymeck: hmm, another good point...i've got some reading to do on systems programming :) [21:01] bradleymeck: yea, programming will appear pretty similar to end dev [21:02] deanlandolt: should appear identical [21:02] bradleymeck: should, but i dont want to put money on that [21:02] Anti-X: sure if it's all separate from each other [21:02] deanlandolt: well it /can/ be identical...it's up to the lib...some threaded worker lib may want to expose hacks [21:02] Anti-X: i was thinking thread programming in general [21:02] deanlandolt: like passing objects w/ deepCopy back and forth w/o serialization [21:03] bradleymeck: i wish we could pass functions between instances [21:03] Anti-X: well you can eval sys.inspect [21:03] Anti-X: or something [21:03] deanlandolt: Anti-X: yeah, but it's only as dangerous as you make it out to be...if you've got access to threads (like in rhino) admittedly it may be tempting to use them...but the solution is easy...don't...use a worker lib and you're safe [21:03] Anti-X: bradleymeck, just don't do that :p [21:04] deanlandolt: bradleymeck: fn.toString()/eval? [21:04] bradleymeck: i lose closures that way /cry [21:04] deanlandolt: Anti-X: ain't nothing wrong w/ doing (unless you've got additional properties that act as a covert channel) [21:04] deanlandolt: oh, well yeah...that'd be a covert channel too :) [21:05] deanlandolt: last i heard ms is working on that apparently...serializing closer context for message passing [21:05] deanlandolt: badass stuff [21:05] shimondoodkin: http://github.com/shimondoodkin/node-inflow << with that you can do async without clousures [21:05] bradleymeck: deanlandolt, it landed in chakra, do want [21:06] deanlandolt: oh really? awesome [21:06] deanlandolt: bradleymeck: do you know if chakra is .net-based? [21:06] bradleymeck: it is not [21:06] deanlandolt: damn [21:06] bradleymeck: might have ties to the bytecode though [21:06] bradleymeck: knowing ms [21:07] deanlandolt: chakra + async .net io hooks + node apis === awesome [21:07] Anti-X: nobody knows ms. you think you do, but you don't. [21:07] bradleymeck: i know ppl at ms, does that count? [21:07] Anti-X: one minute they're producing brilliant stuff, and the next they've turned into arseholes trying to sell you crap. [21:07] Anti-X: and claiming it's your fault that it's crap [21:08] deanlandolt: heh...seems like they're slowly coming around though [21:08] Anti-X: yeah they've realised that the internet is here to stay [21:08] bradleymeck: deanlandolt there was an attempt to port the node api's to .net's JScript [21:08] deanlandolt: i mean, after getting their asses handed to them over and over and having whole communities of geeks turn against youi guess eventually get the message :) [21:09] shimondoodkin: what is chakra [21:09] deanlandolt: bradleymeck: yeah, i saw that...not so useful w/o chakra though [21:09] bradleymeck: yea... [21:09] bradleymeck: chakra is ie9's javascript engine [21:09] Anti-X: node.net [21:10] Anti-X: so anyone know how fast chakra is/will be? [21:10] Anti-X: relative to v8 [21:10] deanlandolt: Anti-X: a little slower according to ms themselves [21:11] deanlandolt: http://ie.microsoft.com/testdrive/benchmarks/SunSpider/Default.html [21:11] bradleymeck: slower, but i would be interested in the math benchmark [21:11] strz has joined the channel [21:12] Anti-X: lol @ ie8 [21:12] Anti-X: that's spectacular [21:12] deanlandolt: at that speed slow is /very/ relative :) [21:12] Anti-X: i'd like to see safari 4 on that [21:12] Anti-X: it's relevant [21:12] bradleymeck: yea, now if we could just stop the reflow on pages for html from rping my cpu [21:14] bradleymeck: lazy reflow will be the way to go in next gen browsers [21:14] Anti-X: i like lazy [21:14] Anti-X: it's so ME [21:14] deanlandolt: progressive reflow would be easy (if html weren't such a hideous, tangled mess :)) [21:15] atmos has joined the channel [21:15] jansc has joined the channel [21:16] Anti-X: dunno about you, but my html is awesome [21:16] Anti-X: :p [21:16] JimBastard has joined the channel [21:16] shimondoodkin: Anti-X:do you have an example [21:16] Anti-X: not really [21:16] JimBastard: lol, there is a picture of me on techcrunch [21:16] JimBastard: http://techcrunch.com/2010/10/10/hacknys-student-hackathon/ [21:16] bradleymeck: idk progressive would be ideal, but if you are going to be fing with the layout from js, i would say dont actually reflow unless you are done w/ js [21:16] JimBastard: can i sue them? lol [21:17] shimondoodkin: i think no [21:17] Anti-X: you can sue them [21:17] Anti-X: but you probably won't win [21:18] creationix has joined the channel [21:18] techwraith has joined the channel [21:18] amerine has joined the channel [21:19] shimondoodkin: is New York is a good place to live? what is the best neighborhood there? [21:19] shimondoodkin: with most less crime i think [21:19] Anti-X: most less = least [21:19] JimBastard: shimondoodkin: brownsville, brooklyn is nice [21:19] JimBastard: so is east new york [21:20] techwraith: So, this is probably a really simple question, but what's the best way to send POST data with an http request in node? I must be missing something in the docs... [21:20] deanlandolt: i hear that new jersey is nice... [21:20] deanlandolt: http://www.southparkstudios.com/full-episodes/s14e09-its-a-jersey-thing [21:20] shimondoodkin: node utils works good [21:20] shimondoodkin: Anti-X: tanks [21:21] techwraith: shimondoodkin: Node utils? I'll look into it [21:21] Anti-X: i'm awesome at pointing out other people's mistakes [21:21] micheil: techwraith: I think there's an easier [21:21] micheil: way, mikeal's request or something [21:22] nerdEd has joined the channel [21:22] micheil: http://github.com/mikeal/node-utils/tree/master/request [21:22] micheil: techwraith: ^^ [21:22] techwraith: http://github.com/mikeal/node-utils/tree/master/request/ [21:22] techwraith: lol [21:22] techwraith: Thanks micheil :) [21:23] jesusabdullah: heh--your names are similar [21:23] jesusabdullah: I may have you two confused in my mind [21:23] jesusabdullah: <_> [21:23] jesusabdullah: I'll have to pay attention now! [21:25] strmpnk: JimBastard: NYC is a horrible place to live. I'd never live there. It's overrun with so many great things that it makes me sick.... wait. [21:26] shimondoodkin: JimBastard: in what neighborhood in new york do you live, is it a tech center? where all programemrs concentare? [21:26] bjarkih has joined the channel [21:26] JimBastard: shimondoodkin: i live in a small house in the middle of manhattan [21:26] JimBastard: programmers concentrate here [21:26] svnlto has joined the channel [21:27] JimBastard: our 16k square foot office is opening end of month, its around the block [21:27] strmpnk: shimondoodkin: Just don't live in midtown and you'll be fine. midtown manhattan is a place where you'll be in danger of tourist induced suffocation or boredom. [21:27] JimBastard: strmpnk: ID LIKE TO BUY A VOWEL [21:27] SubStack: Programmers from concentrate. Just add coffee. [21:28] strmpnk: JimBastard: We're out. You a cop? :P [21:28] WALoeIII has joined the channel [21:28] svnlto: JimBastard: they were out [21:28] shimondoodkin: ive wondered today to move to ny [21:28] strmpnk: ACTION lives in downtown manhattan now but brooklyn has lots or awesome spots. long island city is also okay if you end up in queens. [21:29] kgf: shimondoodkin: have fun with the taxes [21:29] shimondoodkin: queens looked good [21:29] kgf: ACTION lives in nassau county [21:29] JimBastard: lol, lol [21:29] kgf: have fun with /parking/ then [21:29] JimBastard: at both of you [21:29] JimBastard: manhattan or bedford [21:29] c4milo: ahaha [21:29] c4milo: hoboken is a nice place [21:30] kgf: couple of my co-workers live a couple blocks from dumbo which is supposedly a rather good area [21:30] c4milo: Hoboken, NJ [21:30] JimBastard: JEEEEEEEEEEERRRRRRRRRSSSSSSSSSSSSSEY [21:30] shimondoodkin: are there homes in NY, it looked like NY stcked with 2 levels+ apartment buildings [21:30] kgf: lol. [21:30] c4milo: dumbo :S [21:30] Anti-X: hoboken, isn't that like manhattan for poor people? [21:30] JimBastard: fun fact, new jersey is where people from new york go to the bathroom [21:30] kgf: shimondoodkin: on long island there are plenty [21:30] kgf: but they're not cheap [21:30] svnlto: JimBastard: lol [21:30] kgf: shimondoodkin: I should say, at least once you get out of the boroughs [21:30] c4milo: JimBastard: nop is where they come to get drunk [21:30] strmpnk: JimBastard: Screw bedford... actually the whole burg. South BK any day. [21:31] JimBastard: i still think shimondoodkin should move to brownsville or east new york [21:31] andrewfff has joined the channel [21:31] Anti-X: yay #node.js turf war [21:31] JimBastard: they are pretty republican over there though, you might want to wear a Bush t-shirt [21:31] shimondoodkin: lol [21:31] strmpnk: JimBastard: If he want's to get into the dealing business, it's the spot. [21:31] strmpnk: lol [21:32] shimondoodkin: strmpnk: drug dealing? [21:32] Anti-X: can you get away with a "I <3 bush" shirt? [21:32] strmpnk: shimondoodkin: drugs, guns, hoes, etc... [21:32] Anti-X: where the heart is slightly hairy [21:32] JimBastard: shimondoodkin: theres a bunch of hasidic neighborhoods too [21:32] figital has joined the channel [21:32] JimBastard: if you are into funny hats [21:32] shimondoodkin: dugs etc are not for me... funny hats lol [21:32] svnlto: i <3 juice then [21:33] atmos_ has joined the channel [21:33] steadicat has joined the channel [21:33] strmpnk: shimondoodkin: Then why are you moving to NYC? (joking, though really, I could possibly give some pointers) [21:33] Anti-X: babyjuice? [21:34] shimondoodkin: to be in the hottest spot for contacts for business [21:34] nerdEd has joined the channel [21:34] shimondoodkin: and to meet good programmers [21:34] svnlto: Anti-X: Juice http://cl.ly/2qhT [21:35] c4milo: JimBastard: did you go to the last nyc.js ? [21:35] strmpnk: I'd say manhattan is good to be close to then. You don't need to live in the city but don't go all the way out to far out queens or the bronx. [21:35] skohorn has joined the channel [21:35] JimBastard: c4milo: no i bailed, was too sleepy [21:35] sudoer has joined the channel [21:35] eisd has joined the channel [21:35] JimBastard: did you? [21:35] strmpnk: c4milo: I think JimBastard is trying to say that the rain scares him. [21:35] c4milo: JimBastard: I went I was wishing see you there to kick your ass [21:36] JimBastard: lol, if i was there, you wouldnt have had to ask if i was there [21:36] JimBastard: trust me [21:36] c4milo: JimBastard: :S [21:36] strmpnk: ACTION can vouch for that. [21:36] mikeal: Firefox doesn't support border-radius for images [21:36] strmpnk: c4milo: Who were you in the group? [21:37] mikeal: oh well, Firefox gets square images then [21:37] JimBastard: strmpnk is the organizer btw c4milo [21:37] strmpnk: c4milo: I was the boring MC who starts the meetings. :-) [21:37] Druid_ has joined the channel [21:37] russell_h has joined the channel [21:37] c4milo: strmpnk: the quiet guy hahahaah [21:38] strmpnk: Heh. There were a few... well, I'll have to plan some drink-ups. Maybe next week we'll do one. [21:38] jesusabdullah: You're nerds. You're ALL the quiet guy! >:P [21:39] strmpnk: Or I can just give you JimBastard's address and you can go crash his place right now. [21:39] c4milo: jesusabdullah: no, there were a lot of people who speak a lot [21:39] jesusabdullah: orly? [21:39] c4milo: strmpnk: that sounds good to me [21:39] strmpnk: jesusabdullah: Not when we're talking tech... this time riak and backbone.js. [21:39] jesusabdullah: I was just kidding, of course :) but it's good to hear that people were excited and talkative [21:39] c4milo: strmpnk: I can place bombs from Colombia my country in the Marak's house [21:39] jesusabdullah: I'm actually unfamiliar with backbone.js [21:39] jesusabdullah: hmm [21:39] strmpnk: c4milo: I think there are already a few at JimBastard's place. [21:39] jesusabdullah: Interesting [21:39] Anti-X: i don't talk much, but i type like i'm gonna die tomorrow and need to say everything. fast. [21:40] c4milo: strmpnk: ahaha [21:40] strmpnk: JimBastard's just too lazy to clean his apartment so I'm sure there's something explosive sitting somewhere. ;-) [21:40] JimBastard: my apartment is clean, you havent been here in months [21:40] JimBastard: we even bought new couches [21:40] jesusabdullah: I haven't had the *time* to clean my place ;_; [21:41] jesusabdullah: It's disgusting [21:41] c4milo: JimBastard: we ? [21:41] strmpnk: JimBastard: Serious? Nice. I've been traveling lots. I'll crash soon in this case. [21:41] omarkj has joined the channel [21:41] strmpnk: But I'm escaping to London next week so we'll have to plan soon. [21:41] jesusabdullah: My girlfriend won't make coffee anymore because there are too many dirty dishes in the sink [21:41] jesusabdullah: :( [21:42] JimBastard: and as for undetonated military ordiance, we only have that one M1 Abrams tank shell [21:42] JimBastard: i hardly think THATS dangerous [21:42] JimBastard: maybe should not be saying that online, oops [21:43] strmpnk: JimBastard: Nobody knows what a tank shell is. This is IRC! [21:43] JimBastard: i do want to drop that thing from the roof and see if it explodes [21:43] JimBastard: im WAY too scared to it with a hammer [21:43] c4milo: strmpnk: I was the guy in the tv room , actually I was the first christian to reach the place [21:43] c4milo: strmpnk: with his wife [21:43] JimBastard: to hit it* [21:44] strmpnk: c4milo: Ah. Cool. I recall. you two were quiet indeed! [21:44] lftl_ has joined the channel [21:44] strmpnk: It was a smaller crowd that night. I think the new location + rain made people change their minds. [21:45] tekky: hmm is there a FS call that would monitor a file and stream updates to it? (plain text file) [21:45] sudoer has joined the channel [21:45] c4milo: strmpnk: yes, it was the first nyc.js meeting for us. We felt that it was a little geeky compared to other meetups [21:46] strmpnk: NYC.js is definitely much more into the actual tech and less about business. But I keep it that way on purpose. [21:47] bradleymeck: tekky, you can watch a file, but you cant get a diff from that [21:47] bradleymeck: well, you could manually get one... [21:48] lftl_: I'm getting unexpected token errors when doing a require on really simple config file... on node 0.2.3, any specific place to look at what's going wrong? [21:48] c4milo: strmpnk: yes, that was we perceive [21:48] micheil: tekky: you can do fs.watchFile [21:49] micheil: but I don't think it'll stream the diffs / changes to you [21:49] bradleymeck: lftl_ stack trace and paste [21:50] lftl_: bradleymeck: http://pastebin.com/RM2cLYZu [21:50] shimondoodkin: you can track how much did you read [21:51] deanlandolt: anyone know why Buffer.prototype.write doesn't take a buffer as well as a string? [21:51] shimondoodkin: and stream fromt there [21:51] lftl_: really simple config file... anything after one key throws the error [21:51] bradleymeck: syntax error [21:51] lftl_: if I paste the contents of the config into repl it loads fine [21:51] bradleymeck: are you using JSON.parse? [21:52] lftl_: just require() [21:52] bradleymeck: then, there is a syntax error in there, somewhere [21:52] lftl_: With this as development.js it throws an error: { host: 'localhost', port: 80 } [21:52] lftl_: that's it [21:53] jesusabdullah: You have to assign it to something [21:53] shimondoodkin: you cant parse json with ' [21:53] shimondoodkin: just with " [21:53] bradleymeck: he is not using json [21:53] jesusabdullah: exports.config = { host: 'localhost', port: 80} [21:53] jesusabdullah: something more like that right? [21:54] lftl_: That takes care of it jesusabdullah.. hrmm I'll have to look at Spark some more... their config examples dont' assign to anything [21:55] jesusabdullah: spark might have some magic happening or something [21:55] jesusabdullah: I'm not familiar with it [21:56] lftl_: Yeah.. thanks for pointing me in the right direction.. I'll dig deeper in spark [21:56] stephenjudkins has joined the channel [21:56] jesusabdullah: spark is by creationix, right? He's in here pretty often [21:57] kjy112 has joined the channel [21:58] lftl_: Yeah, I'm actually using a fork of spark... first order of business is to see if it's in the main spark branch :) [21:59] foca has joined the channel [22:00] nerdEd has joined the channel [22:01] aconran_ has joined the channel [22:02] lftl_: Yep... all the fork's fault... thanks again jesusabdullah [22:03] ooooPsss has joined the channel [22:03] mw has joined the channel [22:03] Anti-X: it's funny how the verbs of knife, fork and spoon are three so very different things [22:04] kjy112 has joined the channel [22:05] tekky: micheil: thanks that actually the API call I remembed but I overlooked when I skimmed the API page [22:05] Gruni has joined the channel [22:05] micheil: tekky: there's also some stuff being done around inotify I have heard [22:06] kjy112 has left the channel [22:06] stephenjudkins has joined the channel [22:07] tekky: micheil: hmmm watchFile would work just.... require some creative problem solving to make it useful [22:11] jchris has joined the channel [22:13] aho has joined the channel [22:14] [[zzz]] has joined the channel [22:15] ysynopsis has joined the channel [22:19] Tim_Smart has joined the channel [22:20] vnguyen has joined the channel [22:22] kersny has joined the channel [22:24] johndahlstrom has joined the channel [22:24] gerad has joined the channel [22:26] ThePub has joined the channel [22:29] GriffenJBS has joined the channel [22:29] sudoer has joined the channel [22:30] c4milo: tekky: github.com/c4milo/node-inotify [22:32] zemanel has joined the channel [22:33] MikhX has joined the channel [22:33] deanlandolt: ryah: any reason Buffer.prototype.get/set are undocumented? [22:35] antono has joined the channel [22:36] tekky: c4milo: thanks, looks like a glorified watchFile though at this point, no more granular info on what was written (just glanced at the examples) [22:38] tekky: bbiaw, leaving work finally [22:40] MikhX has joined the channel [22:41] creationix has joined the channel [22:42] ajpiano has joined the channel [22:44] mw has joined the channel [22:44] Tim_Smart: deanlandolt: I think they were removed in 0.3 pre [22:45] deanlandolt: what?! [22:45] deanlandolt: oh come /on/ ...they're so useful :-/ [22:45] panpainter has joined the channel [22:45] Tim_Smart: deanlandolt: It is exactly the same as [n] [22:45] deanlandolt: yeah, but you can't do [n] w/o proxy objects [22:46] deanlandolt: so sure, node supports it, but i'm trying to join all the other apis [22:46] deanlandolt: and make one common (ahem) binary interface description (including w/ browser) [22:46] Tim_Smart: deanlandolt: Oh nvm, it is still there. [22:46] deanlandolt: oh? sweet [22:46] lsmith has joined the channel [22:47] Tim_Smart: It is just a wrapper around [n] though. [22:47] deanlandolt: yeah, they're pretty handy...if you're node-only you can do index access but it's not /that/ inconvenient to do get/set [22:47] deanlandolt: yeah, i noticed, but that's fine...it's the interface that matters [22:48] deanlandolt: thanks Tim_Smart [22:48] MikhX has joined the channel [22:49] MikhX has joined the channel [22:50] mikeal has joined the channel [22:53] davidascher has joined the channel [22:54] mikeal: can we get a mimetype module in to core? [22:55] Anti-X has joined the channel [22:55] mr_daniel has joined the channel [22:56] gf3 has joined the channel [22:56] deanlandolt: mikeal: just the map? [22:56] mikeal: i don't care what the API is [22:57] mikeal: let's just consolidate this giant list that I maintain in 3 modules [22:57] tjholowaychuk: yeah i have a few too [22:58] mikeal: i'll add a module to node-utis [22:58] mikeal: er utils [22:58] tjholowaychuk: i think npm has a "mime" mod [22:58] tjholowaychuk: but its always to small for a dep or submod so i just inline them [22:58] mikeal: my list is getting larger [22:58] mikeal: i'm adding fonts to it today [22:59] isaacs: we need a irc bot to search npm for stuff [22:59] paulr has joined the channel [22:59] isaacs: !npm mime <-- that should do "npm ls mime" and output the results. [23:01] derferman has joined the channel [23:03] JimBastard: if a mime dies in the woods, does it make a sound? [23:04] isaacs: Anti-X: are you torvalamo? [23:04] Anti-X: who wants to know? ;p [23:04] Anti-X: yes [23:04] mikeal: isaacs: is that an active module? [23:04] Evet has joined the channel [23:05] isaacs: Anti-X: got a website url you'd like me to put next to your name in teh contributor list? [23:05] isaacs: http://www.magnimedia.no/ seems to be parked. [23:05] isaacs: mikeal: is what a what now? [23:05] Anti-X: hehe yeah it'll come up in a few days [23:05] isaacs: ok, kewl [23:05] Anti-X: i hope [23:05] Anti-X: if i cba making it! [23:06] isaacs: that patch looks good. just merged it in [23:06] Anti-X: coolioe [23:07] davidascher has joined the channel [23:09] benreesman has joined the channel [23:12] c4milo has joined the channel [23:12] galaxywatcher_ has joined the channel [23:14] dnolen has joined the channel [23:18] mikeal: wow [23:18] mikeal: node is leaking memory like crazy [23:19] jchris has joined the channel [23:20] aussiegeek has joined the channel [23:20] Tim_Smart: mikeal: What are you using it for? [23:20] mikeal: oh i found it [23:20] aussiegeek has left the channel [23:20] mikeal: it's the damn JSON.stringify [23:24] avocado has left the channel [23:26] TooTallNate has joined the channel [23:28] Anti-X: jsonify [23:28] Anti-X: is it leaking? [23:28] Anti-X: or was it just consuming [23:29] dguttman_ has joined the channel [23:31] Validatorian has joined the channel [23:31] benburkert has joined the channel [23:34] mikeal: it's leaking [23:34] mikeal: the JSON object is 8 megs [23:34] mikeal: and it consumed 1GB of memory before node started using 100% CPU to compact the stack [23:36] Anti-X: hot [23:36] aho: nom nom [23:40] c4milo has left the channel [23:43] c4milo has joined the channel [23:43] mikeal: isaacs: i fixed the font for the break title so you can stop complaining :) [23:43] mikeal: http://oakjs.com/ [23:44] isaacs: hahah [23:44] isaacs: thanks :) [23:44] isaacs: oh, now it curls the other way ;P [23:44] isaacs: CentSchBookMono, man! [23:44] mikeal: it's inconsolata [23:44] mikeal: i like inconsolata [23:44] mikeal: i use it in TextMate and iTerm [23:44] isaacs: i think some dude put a better font up on his blog here: http://foohack.com/tpl/fonts/CentSchBook-Mono/ [23:45] isaacs: it is The Best Mono Evar. [23:45] isaacs: ACTION has decided semicolon discussions are not trivial enough. [23:45] Aria: Dunno. Meslo is pretty good too. [23:45] mikeal: haha [23:46] Anti-X: ugly [23:46] Tim_Smart: I just use the one Ubuntu comes with, but with font hinting adjusted. [23:46] mikeal: oh man, i hate this font [23:46] mikeal: :) [23:46] mikeal: this is way too much sugar for code [23:47] Tim_Smart: OMG Google Picasa for linux is just a wrapper around wine >.< [23:48] Anti-X: serif fonts are paintful enough in normal text, if you're not going to force it in code as well [23:48] aurynn has joined the channel [23:48] Anti-X: i like consolas [23:49] aho: courier new [23:49] aho: there [23:49] aho: i said it [23:49] aho: :> [23:49] Tim_Smart: My little dev environment http://dl.dropbox.com/u/396394/screenshots/font.png [23:50] Anti-X: ACTION nails aho to the cross [23:51] sudoer has joined the channel [23:52] Anti-X: bizarre color theme [23:52] Anti-X: peaches? :p [23:52] mtodd has joined the channel [23:53] Anti-X: not gonna say mine is better though, since i tend to either go 100 different colors... or 2. [23:53] aho: it's sorta odd... i do know that courier new is pretty ugly, but i'm so used to it that it bypasses any conscious visual processing :> [23:53] Anti-X: i used to use courier new but then i turned 14. [23:54] Anti-X: this was.. 1999 [23:54] Anti-X: :P [23:55] techwraith: I use Droid Sans Mono :) [23:55] Anti-X: is that one of those fonts by that dutch dude? [23:55] aho: that's imo the best of google's fonts [23:56] aho: http://code.google.com/webfonts [23:56] techwraith: http://code.google.com/webfonts/family?family=Droid%20Sans [23:56] softdrink has joined the channel [23:57] Anti-X: no bold? [23:57] Anti-X: :/ [23:57] mAritz has joined the channel [23:57] Anti-X: but.. but.. i like my bold things [23:58] techwraith: It has bold (just not as a webfont) [23:58] bpot has joined the channel [23:58] Anti-X: oh [23:59] richcollins has joined the channel [23:59] atmos has joined the channel