[00:00] isaacs: whoa, stagas, nsfw! [00:00] stagas: and the more cursors gets added up [00:00] bentomas has joined the channel [00:00] rbranson: jailbait overload [00:00] rbranson: and justin beiber [00:01] derferman has joined the channel [00:01] stagas: it tracks 'sexy' from twitter stream :P [00:03] _announcer: Twitter: "The Last 10%: Lessons From Building Node.js Apps http://post.ly/1BdKs" -- Gerad Suyderhoud. http://twitter.com/gerad/status/2873906138447872 [00:03] jamund has left the channel [00:05] niko has joined the channel [00:05] jpld has joined the channel [00:05] jpld has joined the channel [00:07] rburhum has joined the channel [00:08] _announcer: Twitter: "I thought it sounds fun WebSocket QT @ smarx: Cool, I just got node.js running in Windows # Azure. What should I do with it?" [ja] -- Keiji Kamebuchi. http://twitter.com/kamebuchi/status/2875271510228992 [00:10] mtodd has joined the channel [00:14] charlenopires has joined the channel [00:14] langworthy has joined the channel [00:15] tlrobinson_ has joined the channel [00:17] niko has joined the channel [00:19] _announcer: Twitter: "Video: Node.js Intro by Ryan Dahl http://blip.tv/file/2899135 #node.js" -- Aditya Khurana. http://twitter.com/aditya_khurana_/status/2878116682797056 [00:20] _announcer: Twitter: "Refining exercises for nodejs bootcamp" -- jamescarr. http://twitter.com/jamescarr/status/2878346115424256 [00:21] mikeal has joined the channel [00:24] _mythz has joined the channel [00:26] digitalsatori has joined the channel [00:26] captain_morgan has joined the channel [00:26] kriszyp_ has joined the channel [00:26] rabidsnail has joined the channel [00:26] rabidsnail has joined the channel [00:27] ngw has joined the channel [00:29] niko has joined the channel [00:30] _announcer: Twitter: "When used in the websocket node.js npm install socket.io like I'm fine, I'm right." [ja] -- Yohei Sasaki. http://twitter.com/yssk22/status/2880756565151744 [00:33] Me1000 has joined the channel [00:33] bentomas has left the channel [00:33] sprout has joined the channel [00:34] dgathright has joined the channel [00:34] rabidsnail: I'm trying to read the data from a file that's being written to by another process as it's written, and I'm able to get data that's mostly right, but there's some corruption: https://gist.github.com/673518 [00:35] CIA-93: node: 03Ryan Dahl 07master * r4b4d4af 10/ (doc/cla.html doc/index.html doc/sponsored.png): joyent-ize website - http://bit.ly/ct4w06 [00:35] CIA-93: node: 03Ryan Dahl 07master * rc7b24ef 10/ (3 files in 2 dirs): Move ev_loop out of javascript - http://bit.ly/9qZ4gj [00:35] steadicat has joined the channel [00:35] nbqx has joined the channel [00:37] _announcer: Twitter: "@rhyolight I can imagine so, keep on the good work on #nodejs, we love using it in our startup!" -- Xavier Damman. http://twitter.com/xdamman/status/2882695352811520 [00:40] eee_c has joined the channel [00:40] niko has joined the channel [00:40] dnolen has joined the channel [00:41] _announcer: Twitter: "@sh1mmer also http://bit.ly/biGOkj , also http://bit.ly/br1Bd8 - node.js? you'll be lucky. perl/python/ruby/tcl/scheme" -- Tom Morris. http://twitter.com/tommorris/status/2883591826575360 [00:42] derferman has joined the channel [00:43] mjr_ has joined the channel [00:43] _announcer: Twitter: "@smarx Hummingbird looks pretty cool http://vimeo.com/11613517 Lots more node.js projects here https://github.com/ry/node/wiki" -- PhraseMeme. http://twitter.com/PhraseMeme/status/2884242266660864 [00:49] Blink7 has joined the channel [00:50] _announcer: Twitter: "HP webOS 2.0 to include Node.js http://is.gd/gX70s" -- Art. http://twitter.com/art_s/status/2885827612901376 [00:51] ryah_: lots of tweets. [00:51] devinus has joined the channel [00:51] rbranson: yeah, getting kind of ridiculous [00:52] devinus has joined the channel [00:52] niko has joined the channel [00:54] langworthy has joined the channel [00:55] sudoer has joined the channel [00:55] _announcer: Twitter: "Time to talk Node.js — at The Nerdery / Sierra Bravo http://gowal.la/c/2SDBi" -- Pete McWilliams. http://twitter.com/petemcw/status/2887220595793920 [00:57] ngw has left the channel [00:58] _announcer: Twitter: "Looking forward to watch @blago present at #eveningof Node.JS. (@ Nerdery Interactive Labs) http://4sq.com/4D61gS" -- Brian Shoemaker. http://twitter.com/shoemaker/status/2887848780894208 [00:59] jchris has joined the channel [00:59] zentoooo has joined the channel [00:59] jchris has joined the channel [01:02] Anti-X has joined the channel [01:04] niko has joined the channel [01:05] softdrink has joined the channel [01:06] _announcer: Twitter: "NodeJS" -- Eric Shi. http://twitter.com/longwosion/status/2889984524689408 [01:07] robinduc1ett has joined the channel [01:07] robinduc1ett: evening [01:07] robinduc1ett: anyone awake? [01:07] barce has joined the channel [01:11] ryah_: robinduckett: people are awake [01:11] _announcer: Twitter: "@mranney Loved your node.js talk last night and enjoyed the demo's & spartan style presentation... the content was killer. good job!" -- Iein Valdez. http://twitter.com/iein/status/2891187774038016 [01:11] robinduckett: need help with connect and sessions D: [01:12] twoism has joined the channel [01:14] eee_c has joined the channel [01:15] robinduckett: if anyone knows anything about it? [01:16] BrianTheCoder has joined the channel [01:16] _announcer: Twitter: "StartupNews: Health.js: CPU usage streaming and notification for Node.js http://bit.ly/9CQf0J" -- Web Startup Group. http://twitter.com/WebStartupGroup/status/2892400137601025 [01:16] niko has joined the channel [01:17] cardona507_ has joined the channel [01:19] rbranson: (s.length == 1 && s == "a") is faster than (s == "a") [01:19] rbranson: absurd [01:21] _announcer: Twitter: "Joyent now owns Node.js http://bit.ly/cSSWip :( too bad I thought it will be community owned project" -- Eldar Djafarov. http://twitter.com/edjafarov/status/2893724522643456 [01:21] rbranson: Ryan Dahl owned the project before [01:21] rbranson: IDIOTS [01:24] banjiewen_ has joined the channel [01:27] _announcer: Twitter: "Node.js Jazz template library seems to be the pray for my needs. #codebits" -- josedasilva. http://twitter.com/josedasilva/status/2895274166980608 [01:28] dberlinger|trans has joined the channel [01:28] niko has joined the channel [01:33] rabidsnail: I'm trying to do something really simple (tail a file), and it almost works (I get about the amount of data I expect at the rate I expect) but not quite (there's some corruption) and it's driving me up a wall [01:34] c4milo has joined the channel [01:35] Dreamer3__: does express have a channel? [01:35] jtsnow has joined the channel [01:35] rabidsnail: Could some kind soul look at my simple function and perhaps tell me what I'm doing wrong (I've never used node before today)? https://gist.github.com/673587 [01:36] Anti-X has joined the channel [01:37] rbranson: you're calling reader() from within that fs.read() callback [01:37] rbranson: probably not the best idea [01:37] rabidsnail: How else should I do the next read? [01:38] rbranson: hmm, actually, now that I think about it, it's not so bad [01:39] _announcer: Twitter: "CPU usage streaming and notification for Node.js: https://github.com/last/healthjs #ops" -- Loggly, Inc.. http://twitter.com/loggly/status/2898136720736256 [01:40] rabidsnail: There's definitely room for optimization (I'm allocating a new buffer on every read, for example), but right now I'm just trying to get it working [01:40] niko has joined the channel [01:41] _announcer: Twitter: "@rmurphey no node.js for you?" -- randypeterman. http://twitter.com/randypeterman/status/2898675554590720 [01:42] rabidsnail: As an aside: the docs should really say whether offsets and lengths start at one or zero [01:43] _announcer: Twitter: "Experiment with node.js and sockets: http://is.gd/gXbth #javascript" -- Loggly, Inc.. http://twitter.com/loggly/status/2899280272556032 [01:44] zhesto has joined the channel [01:45] _announcer: Twitter: "Benchmarked embedded Lua's speed in Redisql http://bit.ly/9Kzwqe A Datastore w/ scripting, faster than Nginx and Node.js :)" -- jaksprats. http://twitter.com/jaksprats/status/2899670728708096 [01:46] robotarmy has joined the channel [01:47] Me1000 has joined the channel [01:48] _announcer: Twitter: "Japanese edition of the reference node.js http://bit.ly/aBq6SO" [ja] -- ma2. http://twitter.com/tomige_ma2ok/status/2900504036253696 [01:49] Dreamer3__: any channel for express? [01:49] kuatto has joined the channel [01:50] sprout has joined the channel [01:52] niko has joined the channel [01:52] xla has joined the channel [01:53] heavysixer has joined the channel [01:57] rburhum has joined the channel [02:03] _announcer: Twitter: "Learning about Node.js (@ Nerdery Interactive Labs w/ 3 others) http://4sq.com/4D61gS" -- Derek Anderson. http://twitter.com/derekanderson/status/2904165047083009 [02:03] _announcer: Twitter: "Or scale: mountaineer and Node.js." [ca] -- Pedro Franceschi/pH. http://twitter.com/pedroh96/status/2904179873947649 [02:04] gf3 has joined the channel [02:04] niko has joined the channel [02:06] twoism has joined the channel [02:08] jimt has joined the channel [02:11] Dreamer3__: wtf is announcer [02:12] strixv has joined the channel [02:13] dgathright has joined the channel [02:13] dgathright has joined the channel [02:14] c4milo has left the channel [02:15] JohnDav has joined the channel [02:16] niko has joined the channel [02:18] sefton has joined the channel [02:21] ajpiano has joined the channel [02:22] tilgovi has joined the channel [02:23] rburhum has joined the channel [02:25] _announcer: Twitter: "The magical @blago speaking about #nodejs at @the_nerdery. http://twitpic.com/360q8d" -- Ali Karbassi. http://twitter.com/karbassi/status/2909861314568192 [02:26] tlrobinson_ has joined the channel [02:26] SubStack has joined the channel [02:28] niko has joined the channel [02:28] _announcer: Twitter: "Why Node.js Is Totally Awesome http://ow.ly/19VHEj" -- jrgarou. http://twitter.com/jrgarou/status/2910503118577664 [02:31] _announcer: Twitter: "Made some progress on the Node.js templating lib, time for some sleep now. Going home. See U tomorrow! #codebits" -- josedasilva. http://twitter.com/josedasilva/status/2911356747517952 [02:34] _announcer: Twitter: "@pedroh96 take a look at these benchmarks comparing Lua and Node.js, you might find them interesting. :)" -- Norman Clarke. http://twitter.com/compay/status/2911961465487361 [02:34] dguttman_ has joined the channel [02:40] niko has joined the channel [02:40] Me1000 has joined the channel [02:42] abstractj has joined the channel [02:43] aconbere has joined the channel [02:43] drudge has joined the channel [02:44] dgathright_ has joined the channel [02:46] mAritz has joined the channel [02:47] richcollins has joined the channel [02:47] _announcer: Twitter: "enjoying sibilant, telehash, hazelcast, zeromq, node.js, netty, grit, pallet, sprinkle, neo4j.rb; which basically means my focus is missing" -- grantmichaels. http://twitter.com/grantmichaels/status/2915353654992896 [02:49] dgathright has joined the channel [02:49] twoism has joined the channel [02:51] prettyrobots has joined the channel [02:51] niko has joined the channel [02:53] mikeal has joined the channel [02:53] capndiesel has joined the channel [02:57] Dreamer3__: hmmm [02:57] Dreamer3__: when are people here? [02:57] Dreamer3__: so quiet for 345 [02:57] Dreamer3: there we go [02:57] Dreamer3: better [02:58] dquestio1s has joined the channel [02:59] jasondavies has joined the channel [02:59] jasondavies has joined the channel [03:00] jesusabdullah: Dreamer3: It's dinnertime. [03:02] WRA has joined the channel [03:03] niko has joined the channel [03:07] jchris has joined the channel [03:08] bbttxu_ has joined the channel [03:08] indutny has joined the channel [03:12] necro has joined the channel [03:12] fangel has joined the channel [03:14] Nohryb has joined the channel [03:14] nsyee has joined the channel [03:15] Dreamer3: rofl [03:15] Dreamer3: it's been dinnertime a while [03:15] niko has joined the channel [03:15] jesusabdullah: I'm still waiting for food, actually <_< but I'm also ultra-west-coast [03:15] jesusabdullah: only 6:15 here [03:17] indutny: Russia Omsk [03:17] indutny: 9:17 [03:17] indutny: here [03:17] indutny: :) [03:17] mjr_: That's wester than the west coast that I live on. [03:19] tlrobinson_ has joined the channel [03:22] _announcer: Twitter: "node.js direction. A bit, and I try to learn. http://goo.gl/LMDUO http://goo.gl/oMbsD" [ja] -- M.Uchiyama. http://twitter.com/uchiyama2000/status/2924100758536192 [03:24] _announcer: Twitter: "Thank you to Blago Dachev and oraganizers of #eveningof for tonight's presentation on node.js. Found it very interesting." -- Tom Godar. http://twitter.com/ficusd/status/2924560882073600 [03:24] mikew3c_ has joined the channel [03:24] jesusabdullah: Like I said, I'm 400 west coasts [03:24] jesusabdullah: well [03:25] jesusabdullah: not actually ON the coast, but [03:27] niko has joined the channel [03:28] wereHamster has joined the channel [03:31] WRA: heya, wrote a game server framework in NodeJS, any ideas for a good name? [03:31] WRA: thinking GameNodeJS [03:31] _announcer: Twitter: "@bluebox the best hosting company in the game. period. want a box with #rails, #rvm, #redis, #nodejs? anything you want. great support sonnn" -- Jonathan Soeder. http://twitter.com/soederpop/status/2926370648756225 [03:31] indutny: Palto [03:31] indutny: Tynox [03:31] jesusabdullah: GameBox360 [03:32] indutny: PS3 [03:32] indutny: Xavo [03:32] indutny: Perada [03:32] indutny: rpdy [03:33] _announcer: Twitter: "Trying out node.js. Finally, someone managed to make continuation passing style (semi-)mainstream." -- Brandon Byars. http://twitter.com/BrandonByars/status/2926854096814080 [03:34] mscdex has joined the channel [03:36] sanduz2 has joined the channel [03:36] _announcer: Twitter: "node.js now only an ordinary screwdriver, not a Swiss Army knife, tool sets for a class. But this is definitely not a toy screwdriver screwdriver, is really able to tighten the screws of the real thing. but do not mature. had API said categorically that he will be stable after 0.2, the results after the big change ... 囧 0.3 1.0 anyway, I was not a large area before use." [zh-CN] -- finscn. http://twitter.com/finscn/status/2927694471766 [03:38] niko has joined the channel [03:38] mscdex has joined the channel [03:39] _announcer: Twitter: "The Last 10%: Lessons From Building Node.js Apps - fortnightlabs http://bit.ly/9Uzltg" -- csstone. http://twitter.com/csstone2138/status/2928456945897472 [03:39] _announcer: Twitter: "Of course you can say node.js toys (very immature I agree and I dared not used in foreign projects), but the reasons and not because "it is better to python / ruby magic" cc @ hongqn" [zh-CN] -- finscn. http://twitter.com/finscn/status/2928464504029185 [03:43] jotaru has joined the channel [03:43] jotaru: Hello ~.~; [03:44] jotaru: seeking assistance if anyone is around to provide it... :( [03:45] jakehow has joined the channel [03:47] _announcer: Twitter: "Thanks! RT @ tomige_ma2ok node.js http://bit.ly/aBq6SO # maruh5 Japanese version of the reference" [ja] -- スグル. http://twitter.com/tomige_suguru/status/2930398547939329 [03:47] _announcer: Twitter: "@ Hongqn node.js can support method_missing. Need to build their own path, I hope to achieve Spidermonkey JS v8 in __noSuchMethod__. http://code.google.com/p/v8/issues/detail?id=264" [zh-CN] -- 马士华. http://twitter.com/mashihua/status/2930577938317312 [03:48] ncursestest has joined the channel [03:49] mAritz: jotaru: what's your problem? :) [03:49] AAA_awright: Is there any way to get more descriptive error messages for JSON.parse than "unexpected ," [03:49] AAA_awright: At least a line number? [03:50] niko has joined the channel [03:50] jotaru: I'm connecting to my memcache server and... I have a func that does my connection, and in that function I pass the call back.. [03:50] mAritz: AAA_awright: not that i know of, but if you can print out the json i can easily tell you where the problem is. (netbeans7 has json capabilities and should mark the error) [03:50] mjr_: AAA_awright: I dunno, does eval() give you better errors? [03:51] jotaru: For some reason the callback fires before the connection fires because I keep getting a no such method .write on undefined.. [03:51] sudoer has joined the channel [03:51] AAA_awright: The REPL gives me ... [03:51] AAA_awright: It's not evaluating anything [03:52] jotaru: (I'm quite a noob btw ^^; been playing with node.js for about a week. [03:52] jotaru: The code works on a windows machine far from my curr location atm but not here =\ [03:52] mjr_: jotaru: I've not done anything with memcached, but if you can gist your code, maybe it'll be obvious. [03:52] mikeal has joined the channel [03:53] jotaru: sure, one moment~ [03:54] _announcer: Twitter: "@webbynode more rapp problems: "sudo node server.js" works fine but "start myapp" gives a "502 bad gateway." Shouldn't they be the same?" -- Hunter Loftis. http://twitter.com/HunterLoftis/status/2932247724294145 [03:56] jotaru: https://gist.github.com/673704 [03:56] noahcampbell has joined the channel [03:56] jotaru: ignore line 15 <_<; [03:56] _announcer: Twitter: "What I love about developer events: less staring at twitter, more "here's something I made in node.js to spam spammers"" -- Mitchell Hislop. http://twitter.com/mitchellhislop/status/2932839804837889 [03:57] mAritz: nice one :D [03:57] jotaru: hehe.. [03:57] jotaru: supposed to be this.ms >_<; [03:58] mbrochh has joined the channel [03:58] mbrochh has joined the channel [03:59] mAritz: but i wouldn't have seen it as weird, since you could do mc_server.conn.apply({}, args) and then it would throw ;) [04:00] path[l] has joined the channel [04:00] mAritz: jotaru: the problem is that you call the callback with this.ms, which is '' at the time of execution and thus does not have a function .write. (however it shouldn't say undefined there, don't know why that is) [04:01] mjr_: also, this is just the global object [04:01] murz has left the channel [04:01] mAritz: wait, shouldn't this be mc_server? [04:01] mjr_: er maybe not [04:01] mjr_: yeah, I guess it is [04:01] jotaru: Yeah, it is... should I use mc_server to be safe..? [04:01] mAritz: jotaru: what is ms.write(stmt) really supposed to be? [04:02] mAritz: jotaru: no. [04:02] niko has joined the channel [04:02] jotaru: line 47: it's supposed to be stream.write('get json_foo \r\n'); [04:03] mAritz: oh, i didn't see line 16. DISREGARD ME, I SUCK COCKS [04:03] jotaru: o.o [04:04] mAritz: you'll want to put the callback in your connect listener callback. [04:05] mAritz: but that still doesn't really make sense, since you only want to create a new connection if there is none. so you'll have to change line 15 to this.ms and then also make the callback in an else. [04:05] jotaru: I wasn't sure if putting it in the event listener made sense.. [04:06] jotaru: because I think, if I run the callback in there, none of the other listeners fire. [04:06] jotaru: I think <_ sessions:users [06:00] _announcer: Twitter: "AST node.js for a guy to clojure sexp not be a good chemistry with Shin" [ja] -- nbqx. http://twitter.com/nbqx/status/2963867923652608 [06:00] micheil: or soemthing. [06:00] tempas: they dont seem to have many followers [06:00] mbrochh has joined the channel [06:00] derren13 has joined the channel [06:00] nsolsen has joined the channel [06:00] jashkenas has left the channel [06:01] jotaru: :( I'm using ajax to ping the "node server" from my localhost to get some data but I keep getting "Failed to load resource: cancelled".. Is that a problem with the host n such? [06:02] tempas: micheil: but they have really bad docs .. dont know their intention for it [06:03] tempas: just talking about a lot of design technologies .. but made a bad job on promoting it [06:04] fangel has joined the channel [06:04] tempas: im making a similar framework at the moment , thats why it caught my attention that there is another framework that almost looks like mine =) [06:08] dgathright has joined the channel [06:09] indutny: guys [06:09] indutny: what do you think about my concept [06:09] indutny: http://github.com/donnerjack13589/nodeapp [06:09] indutny: I really need your feedback [06:10] indutny: This is draft [06:10] tempas: well to be honest [06:10] tempas: i dont get it [06:10] tempas: could you tell me more ? [06:10] indutny: one moment [06:11] indutny: this is very similar to couchapp [06:11] indutny: your directory is transformed into javascript object [06:11] indutny: saving directory structure [06:11] indutny: and the all requests will be served by this object [06:11] indutny: everything else you can find in a demoapp [06:11] indutny: please take a look at it [06:12] Aria has left the channel [06:12] tempas: im not familiar with couchapp yet .. so i cannot get the benefits [06:12] tempas: ill look into it when i know more about couchapp [06:16] micheil: indutny: which sort of "couchapp"? [06:18] _announcer: Twitter: "http://fortnightlabs.posterous.com/the-last-10-lessons-from-building-nodejs-apps <= some nice short tips in there" -- Luke™. http://twitter.com/LukeInTH/status/2968380210421761 [06:18] indutny: sorry [06:18] indutny: i was afk [06:18] jimt has joined the channel [06:19] indutny: brb [06:19] indutny: 2 minutes [06:19] kjeldahl has joined the channel [06:20] murz has joined the channel [06:21] _announcer: Twitter: "With today with @ gleicon, interesting chat about NoSQL node.js etc. # netflixcloud http://bit.ly/a5TWLI blog: http://bit.ly/dAi2oM" [nl] -- adrian cockcroft. http://twitter.com/adrianco/status/2969157087793153 [06:21] SubStack: hmmmm ACTUALLY [06:21] SubStack: there's no working openid implementation in node but I already wrote a working dnode-ruby [06:21] SubStack: win [06:22] SubStack: hooray for rpc [06:22] micheil: hmm, why not write on openid module for node then? [06:22] SubStack: micheil: because that's hard work [06:22] SubStack: maybe after I launch this thing :p [06:23] indutny: :) [06:23] indutny: ok [06:23] indutny: i'm here [06:23] micheil: SubStack: lol. [06:24] indutny: micheil: like 'couchapp' in basics [06:24] indutny: so you can run directory as an app [06:24] indutny: and routes will be automatically generated [06:24] micheil: indutny: like the ugly super directory things? [06:24] SubStack: oh goodness yes: https://github.com/viatropos/authlogic-connect [06:24] indutny: micheil: defenitely not :) but you can do this [06:24] micheil: where there's like several thousand directories? [06:24] indutny: micheil: you can place json object here [06:24] SubStack: I can just tie this into my node webapp with a dnode link, rawk \m/ [06:24] micheil: indutny: *shudder* I'd hope not to do that. [06:24] indutny: micheil: that will replace folder structure [06:25] indutny: lol [06:25] micheil: SubStack: don't you need to persist certain stuff when auth is involved? [06:25] micheil: ACTION is needing to link twitter/facebook oauth into a twitter app. [06:25] micheil: erm [06:25] micheil: node app. [06:25] indutny: have you opened demo app? [06:25] indutny: :) [06:26] SubStack: micheil: I have a dnode service for persistence stuff [06:26] micheil: SubStack: okay [06:26] dquestio1s has joined the channel [06:26] SubStack: I will hack this together then blog about it [06:26] micheil: indutny: started looking a little through the source code, but not too deeply yet [06:26] indutny: ok, thank you, anyway [06:27] intacto has joined the channel [06:27] micheil: indutny: may I suggest replacing run.js with a server.js [06:27] micheil: that way you can easily deploy to things like no.de [06:28] _announcer: Twitter: "I'm going to a Meetup with Node.js ++ (Serverside Javascripters) Club SF! http://meetu.ps/4w27" -- Michael Van Riper. http://twitter.com/vanriper/status/2971048194613248 [06:28] _announcer: Twitter: "My experience with node.js - a couple of days ago I was asked to write a little bit of my experience and interest to ... http://ow.ly/19VXyc" [es] -- Loki Zavala. http://twitter.com/Siedrix/status/2971050300153856 [06:29] twoism has joined the channel [06:29] indutny: micheil: you can [06:30] indutny: ok [06:30] micheil: oh, okay. [06:30] indutny: :) [06:30] indutny: just joking [06:30] micheil: I thought it may need some changes on the libraries behalf?> [06:30] indutny: :) [06:30] indutny: yep, it'll have many changes soon [06:30] _announcer: Twitter: "damn you node.js and your ability to keep me up an extra 1.5 hrs dicking around. #tired" -- Justin Lilly. http://twitter.com/justinlilly/status/2971594045530112 [06:31] indutny: but first of all I need a feed back about functionality [06:31] italic: any ideas on the entry level pricing for no.de? [06:35] mape: micheil: node-oauth seems to be working fine for me, only used it for twitter though [06:35] micheil: mape: okay [06:36] micheil: mape: well yeah, in my app I've got a django frontend, but I'm trying to figure out the best way to connect that & twitter auth up to a node powered data collector [06:36] micheil: (like I need node to be pulling tweets and user profile data and stuff [06:36] mape: micheil: That is what I did, had a PHP app that took 12min to fetch 2k users, now it takes 12sec :) [06:36] micheil: yeah [06:37] micheil: ACTION has access to the realtime streams, so I'm looking to really use that [06:37] _announcer: Twitter: "@ Hongqn this is not the same style of messaging, the program not the way the organization can not say js or nodejs toys. js is the language of cattle!" [zh-CN] -- Yue Tian a.k.a. Tin. http://twitter.com/diamondtin/status/2973229849247744 [06:37] mape: That won't help with user profiles though? [06:38] brianc has joined the channel [06:38] micheil: mape: no, it won't. [06:38] micheil: but it's just pulling data [06:39] mape: Ah k [06:39] brianc: question: do you proxy node.js behind nginx? [06:39] micheil: so, I'm thinking if I can somehow use oauth from django and then store the tokens to later access user data, then that'd work [06:39] micheil: brianc: I don't [06:39] micheil: but I'm kinda risky like that. [06:39] mape: brianc: I do [06:39] micheil: brianc: the better question to ask would be: "why would you proxy node.js behind nginx [06:40] brianc: this irc room === chatty, helpful, and friendly. i like. [06:40] mape: micheil: handy vhosts, and if you are running other stuff I find it easier to manage [06:40] micheil: brianc: actually, that'd just be the general node.js community [06:40] micheil: mape: no wai man, perhaps using iptables? [06:40] micheil: :D [06:40] dgathright has joined the channel [06:41] mape: I'm to lazy for that [06:41] brianc: micheil: I heard the node.js parser isn't really rock solid security-wise yet and I believe ry suggested node be placed behind a reverse proxy [06:41] micheil: brianc: yeah [06:41] micheil: so, basically, while node's http parser is pretty solid, it hasn't yet been fully battle tested [06:41] mape: Plus I created a little script that allows me to start up a new project with boilerplates, vhosts and whatnot in secinds so I'm sticking with what works [06:42] brianc: I did think of using iptables to map some other port to 80. it's so annoying to have to sudo to open up port 80 [06:42] micheil: so, while it's likely it probably won't have issues (many issues) there's always the possibility that it might. [06:42] micheil: mape: man. that's totally programmer laziness.. haha [06:43] _announcer: Twitter: "I do not know the concept of method_missing, search a bit like JS's __noSuchMethod__ seemingly a thing http://mzl.la/dsFTQ8 RT: @ hongqn: Yes. So I think node.js just a toy." [zh-CN] -- 宇义. http://twitter.com/goto100cn/status/2974619409580032 [06:43] brianc: micheil: yah. i just proxied it up tonight to see if I could. never proxied w/ nginx before. or installed nginx for that matter :) [06:43] micheil: mape: programmer's definition of laziness: spend time writing something to save time doing mundane tasks later. [06:43] micheil: brianc: both are pretty easy [06:43] brianc: micheil: aye. good documentation. [06:44] mape: micheil: hehe yeah, more fun spending time on a node script that makes it faster in the future then fiddling with iptables [06:44] micheil: mape: simpler: write a node script to parse & generate iptables :D [06:44] brianc: mape: wish someone would whip up a web app to help generate iptable configurations. i find the syntax so esoteric [06:45] springify has joined the channel [06:45] micheil: ACTION has done it only once or twice [06:46] mikeal has joined the channel [06:46] micheil: I actually have my server setup with a deny all style iptables, so if I want to run any new service on a new port I have to explicitly open it up [06:46] micheil: hey mikeal [06:46] brianc: the best part of iptables is when you blow your config and disable ssh into a vps. it's like locking your keys in your car. except your car has no windows, you are the locksmith, and all you have for a tool is a stick of butter. [06:46] mikeal: hiya [06:46] brianc: micheil: that's how mine's set up as well [06:46] micheil: brianc: contact your host in that case. [06:46] micheil: mikeal: you know much about iptables? [06:47] mikeal: haven't had to mess with it in years [06:47] micheil: hmm, [06:47] brianc: micheil: linode has that emergency web shell. I'm just careful now. it's one of those "I've done it once and never again" scenarios [06:47] micheil: I'm trying to quickly work out the stuff with routing a subdomain to another port [06:48] micheil: so like: sub.domain.com:80 -> localhost:8080 [06:50] BrianTheCoder has joined the channel [07:01] dquestio1s has joined the channel [07:02] _announcer: Twitter: "#todo one way to summarise my framework's differntiator: a node.js wrapper for jack.js and jQuery" -- 8 month break soon.. http://twitter.com/jerng/status/2979447816851456 [07:02] _announcer: Twitter: "Excellent Kveri-builder for node.js and spirit # node.js # node # spirit" [ru] -- Shock. http://twitter.com/p_ponomarenko/status/2979636606668800 [07:04] CIA-93: node: 03Ryan Dahl 07master * rd4af8a6 10/ lib/readline.js : [07:04] CIA-93: node: Add writeFilter when in the readline [07:04] CIA-93: node: Switch \n with \r\n for all strings printed out. [07:04] CIA-93: node: Necessary for writev patch. - http://bit.ly/dvf7KB [07:04] CIA-93: node: 03Ryan Dahl 07master * r564a486 10/ (99 files in 13 dirs): Upgrade V8 to 2.5.6 - http://bit.ly/bfzLfg [07:04] CIA-93: node: 03Ryan Dahl 07writev * r49d5b5e 10/ (lib/net.js src/node_io_watcher.cc): Don't send null data segments (+32 more commits...) - http://bit.ly/9BHX8l [07:07] zentoooo has joined the channel [07:07] TomsB has joined the channel [07:08] ryah_: ACTION shakes fist at writev [07:08] SubStack_ has joined the channel [07:09] ryah_: so close yet still not there [07:09] ryah_: but i can feel it. one of these days, it's going to click [07:09] ryah_: and everything will pass [07:09] ryah_: it's mostly working now. [07:13] micheil: ryah_: why? what problems are still left? [07:15] confoocious has joined the channel [07:15] confoocious has joined the channel [07:15] micheil: ryah_: in other words, anything you need a hand with / I could help out with? [07:15] sriley has joined the channel [07:17] tlrobinson_ has joined the channel [07:17] micheil: also, I see you added back in the Appendix 2 to the documentation? [07:24] _announcer: Twitter: "shin node.js great. How can so easily. ." [ja] -- onoue. http://twitter.com/onoue/status/2984938051739648 [07:24] captain_morgan has joined the channel [07:26] jvolkman: is it common practice to define custom Error types in node applications? [07:26] jvolkman: or just throw Error with a message? [07:27] inimino: jvolkman ⋱ The latter is more common (and better JavaScript style in my opinion). [07:27] _announcer: Twitter: "Brokaw is my experimental *pattern matching* pub/sub message broker built on Node.js and Socket.IO. http://bit.ly/bV3uGQ" -- Rick. http://twitter.com/rbranson/status/2985840787587073 [07:27] admc has joined the channel [07:27] jvolkman: okay [07:29] nsolsen has joined the channel [07:32] sechrist has joined the channel [07:35] SamuraiJack has joined the channel [07:35] dgathright has joined the channel [07:36] _announcer: Twitter: "StartupNews: Node-mysql - A pure node.js client implementing the MySQL protocol http://bit.ly/cPP1Ys" -- Web Startup Group. http://twitter.com/WebStartupGroup/status/2988014661799936 [07:39] mytrile has joined the channel [07:40] saikat has joined the channel [07:44] _announcer: Twitter: "fighting the urge to do some more nodejs and jake experimenting cos of this banging headache and cough." -- Dave Taylor. http://twitter.com/davetayls/status/2990097284730880 [07:44] evanmeagher has joined the channel [07:45] mikeal has joined the channel [07:47] evanmeagher has joined the channel [07:53] confoocious has joined the channel [07:53] confoocious has joined the channel [07:53] stephank has joined the channel [07:54] nsolsen has joined the channel [07:56] dgathright has joined the channel [07:57] springify has joined the channel [07:59] _announcer: Twitter: "@mcantelon @tjholowaychuk Looking forward to learning more about node.js. It pops up in hacker news too much to ignore." -- Ryan J Dempsey. http://twitter.com/rjdempsey/status/2993936012419072 [08:00] sanduz2 has joined the channel [08:01] mraleph has joined the channel [08:03] path[l] has joined the channel [08:03] zentoooo has joined the channel [08:08] SubStack: authlogic sucks too much to easily repurpose :( [08:09] micheil: haha [08:09] SubStack: people couple modules too damned tighly to their web frameworks [08:09] SubStack: same with this django thing [08:10] SubStack: openid does not need its own data store, just keep that shit in memory [08:10] SubStack: it's temporary data, not persistent [08:11] SubStack: it's like web programming turns otherwise intelligent developers into blithering idiots [08:11] micheil: ryah_: you about? [08:12] yeevgen has joined the channel [08:12] micheil: SubStack: yeah, although, I'm really needing to communicate the tokens and stuff between node and django, as django's using it for auth, and node is just using it for api access [08:13] javruben has joined the channel [08:13] rbranson: openid is such a bitch [08:13] SubStack: micheil: maybe if this django single sign-on thing is any good I'll finish dnode-python [08:13] rbranson: SubStack: it's probably the default because it works if you've multiple processes or multiple boxes [08:14] micheil: SubStack: dnode, what was that communication protocol again? [08:14] path[l] has joined the channel [08:15] SubStack: micheil: it's just a simple json thing, documented at the bottom of the readme [08:15] hellp|lunch has joined the channel [08:15] nsolsen has joined the channel [08:15] micheil: SubStack: okay [08:15] micheil: SubStack: It'd be good to formulate a proper protocol for things like this [08:15] SubStack: well, not /so/ simple, you need to do a recursive walk to do the bookkeeping for callbacks [08:15] micheil: be it just a simple [message-type][message-length][message*] [08:15] micheil: format [08:15] SubStack: what [08:15] SubStack: that's stupid [08:16] indutny: nonono [08:16] SubStack: JSON.parse [08:16] SubStack: it's easy [08:16] indutny: yep! [08:16] micheil: so there's a somewhat standard network level communication channel [08:16] indutny: and format can be here [08:16] micheil: yeah, but to split out the individual messages [08:16] micheil: so it might be: [08:16] SubStack: so the thing is [08:16] SubStack: all that shit doesn't matter [08:16] SubStack: what does matter is usability [08:16] indutny: yeah [08:16] micheil: 0x010x15{"test":"test"} [08:16] SubStack: why does nobody understand this [08:16] rbranson: eh, you still need framing [08:17] SubStack: COMPUTERS ARE FAST [08:17] micheil: exactly [08:17] indutny: no frames [08:17] micheil: I'm just saying there's a needing for framing at some level [08:17] indutny: ["type", {msg }, data1, data2] [08:17] indutny: everything is the same [08:17] rbranson: there has to be framing in there somewhere [08:17] indutny: why? [08:17] rbranson: you'll end up with partial messages [08:17] indutny: tcp has framing [08:17] micheil: also, if it's just a simple ping/pong style thing, there should be any need to reinterpret json data [08:17] rbranson: and overlapping messages [08:17] rbranson: tcp does not have framing [08:17] rbranson: lol [08:17] indutny: oh [08:17] indutny: sorry :) [08:17] micheil: exactly, tcp doesn't really have framing [08:18] SubStack: so check it [08:18] SubStack: JSON is fast [08:18] SubStack: and network is fast [08:18] micheil: on the wire, it does, but once it reaches kernel level, it doesn't, iirc. [08:18] rbranson: ok? [08:18] SubStack: I use it to send base64-encoded raw framebuffer data [08:18] SubStack: in bulk [08:18] SubStack: it's fast enough, cripes [08:18] rbranson: that doesn't alleviate the need for message framing [08:18] SubStack: oh [08:18] SubStack: newlines [08:18] micheil: SubStack: you still need some way to know exactly how much of "data" to decode [08:18] SubStack: easy [08:18] SubStack: JSON.stringify escapes them with \ [08:18] micheil: as to not get broken packets [08:18] rbranson: lol [08:18] SubStack: easy [08:18] rbranson: newlines aren't message framing [08:19] SubStack: yes they are [08:19] SubStack: don't make it hard [08:19] micheil: not really [08:19] SubStack: yes really [08:19] micheil: they are a bitch to try and parse [08:19] SubStack: you don't have to parse anything! [08:19] SubStack: JSON.parse! [08:19] micheil: same with 0xFF/0x00 framing [08:19] SubStack: JSON.parse does all of this for you! [08:19] micheil: JSON.parse will spew on 0xFF 0x00 outside of a json string [08:19] SubStack: play around with it [08:19] indutny: SubStack: they are right [08:19] rbranson: JSON.parse will break dude [08:19] SubStack: rbranson: negatory [08:20] micheil: v8: JSON.parse("0x00{'test':true}0xFF"); [08:20] v8bot: micheil: SyntaxError: Unexpected token ILLEGAL [08:20] rbranson: it won't return you an array of messages if you drop a 2 messages with an \n between them [08:20] rbranson: JSON.parse("{}\n{}\n") [08:20] rbranson: er [08:20] shockie has joined the channel [08:20] rbranson: v8: JSON.parse("{}\n{}\n") [08:20] v8bot: rbranson: SyntaxError: Unexpected token ILLEGAL [08:20] rbranson: herp derp [08:20] micheil: v8: JSON.parse("{'test':true}\n{'test':true}"); [08:20] v8bot: micheil: SyntaxError: Unexpected token ILLEGAL [08:20] SubStack: you don't get it [08:20] SubStack: stringify() normalizes it [08:20] rbranson: no, I do get it [08:20] micheil: SubStack: explain then. [08:20] SubStack: then you can just parse() it [08:20] rbranson: you don't get it dude [08:20] indutny: nono [08:20] rbranson: if you send a message across the network [08:20] micheil: you need individual messages [08:20] SubStack: v8: JSON.parse(JSON.stringify('\0\1\2')) [08:20] v8bot: SubStack: " [08:21] SubStack: magical [08:21] rbranson: there's no guarantee that you'll get the messages in the same pieces that you sent them in [08:21] SubStack: v8: JSON.parse(JSON.stringify('meow\n')) [08:21] v8bot: SubStack: "meow\n" [08:21] rbranson: it's called a stream [08:21] aabt has joined the channel [08:21] SubStack: rbranson: that objection is stupid [08:21] rbranson: uh? [08:21] rbranson: you are a fucking idiot [08:21] SubStack: tcp handles all of this for you [08:21] micheil: also, there's no reason why data events might not be: "{test:", ":true}{'test':true}" [08:21] rbranson: no it doesn't [08:21] rbranson: you are fucking clueless [08:21] SubStack: we have network modules for this shit [08:21] SubStack: anyways [08:21] micheil: no [08:21] rbranson: really? [08:21] rbranson: point me at one [08:22] rbranson: that will do TCP framing [08:22] janne has joined the channel [08:22] micheil: network modules will not work for that. [08:22] SubStack: I [08:22] micheil: hence the reason for framing in websockets and such [08:22] SubStack: I thought we were talking about RPC [08:22] rbranson: I've written a fuck ton of framing code for it to be automagic [08:22] SubStack: RPC can be super simple, split on newline and JSON.parse [08:22] rbranson: nope [08:22] SubStack: yes [08:22] rbranson: still need framing [08:22] micheil: rbranson: hey, can node-ffi call into objective-c land? [08:22] SubStack: rbranson: newlines [08:22] rbranson: micheil: if it's C [08:22] SubStack: stringify turns \n to \\n [08:22] SubStack: so it's super easy [08:23] rbranson: you're not getting it substack [08:23] micheil: SubStack: new lines are a shit framing thing [08:23] rbranson: seriously [08:23] SubStack: micheil: but why? [08:23] micheil: data will likely have newlines in it [08:23] rbranson: i'm not talking about \n's in the fucking message [08:23] rbranson: I'm saying, on the client if you do [08:23] SubStack: micheil: yes! stringify escapes them for you! [08:23] rbranson: socket.send(JSON.stringify("ass")); [08:23] micheil: even so. [08:23] rbranson: socket.send(JSON.stringify("tits")); [08:23] rbranson: on the server you're going to get [08:23] micheil: you may receive "asstits" [08:23] rbranson: a message that looks like "\"ass\"\"tits\"" [08:23] micheil: instead of two data events, "ass" "tits" [08:24] trochala has joined the channel [08:24] SubStack: that's why you send JSON.stringify('a string') + '\n' [08:24] rbranson: omfg [08:24] SubStack: it's really easy I don't understand your objection [08:24] SubStack: ACTION <-- has built RPC systems [08:24] rbranson: apparently not very robust ones [08:25] fbits has joined the channel [08:25] SubStack: network libs take care of ordering, you don't have to worry about any of it [08:25] micheil: after trying to cater for broken packets with draft-76 websockets I can tell you that stuff that frames with undetermined lengths is a pain in the ass [08:25] rbranson: ordering isn't the problem [08:25] micheil: it's the concatenation of individual packets [08:25] rbranson: it's dividing the stream up into individual messages [08:25] trochala has joined the channel [08:26] rbranson: and determining where the boundaries are, efficiently [08:26] micheil: doing data.split("\n") just isn't good enough [08:26] SubStack: var Lazy = require('lazy'); Lazy(stream).lines.forEach(/* ... */) [08:26] SubStack: is that what you mean? [08:26] SubStack: yes, I've thought of that [08:26] SubStack: it's not very hard [08:26] rbranson: uh? [08:27] SubStack: message boundaries? [08:27] SubStack: you receive 'buf' then 'fer\non' then 'e\n' [08:27] rbranson: ok? [08:28] micheil: SubStack: also, EM implements .once now. [08:29] SubStack: yes pkrumins made a patch [08:29] adambeynon has joined the channel [08:30] micheil: also, requiring the parser to touch every single bit to just get the individual messages out of the framing sucks bad [08:31] SubStack: it's fast enough [08:32] SubStack: and anyways, if you want usable, flexible data structures you'd be doing something like JSON.parse anyways [08:33] rbranson: not arguing against that [08:33] rbranson: JSON is perfectly fie [08:33] rbranson: fine [08:35] micheil: JSON is fine for data, but isn't a framing thing at all. [08:35] indutny: i agree with micheil [08:35] indutny: after all the stuff [08:35] indutny: :) [08:35] indutny: but framing must be as simple [08:35] indutny: as possible [08:35] rbranson: i mean Lazy is essentially doing message framing for dnode [08:35] rbranson: https://github.com/pkrumins/node-lazy/blob/master/lazy.js#L159 [08:35] sriley_ has joined the channel [08:35] nsolsen has joined the channel [08:35] mikew3c has joined the channel [08:36] micheil: that's why I'm saying a framing protocol which includes length, and message byte type, would be really good. [08:36] SubStack: rbranson: yes I wrote that part [08:36] SubStack: message byte type? [08:36] indutny: I don't like message type in framing [08:36] micheil: like 0x01 for data messages, and 0x02 for ping [08:36] indutny: let it be here only size [08:36] _announcer: Twitter: "In a nice feeling like Node.js MongoDB." [ja] -- laughingman. http://twitter.com/laughingman7743/status/3003171349733376 [08:36] faust45 has joined the channel [08:36] micheil: because the message-type is only to communicate stuff when you don't actually need data [08:37] simme has joined the channel [08:37] indutny: may be not type [08:37] indutny: but receiver [08:37] indutny: ? [08:37] rbranson: socket.io uses some short text strings for that I believe, like ~j~ and ~p~ [08:37] rbranson: or whatever [08:37] indutny: i know, i know [08:37] micheil: rbranson: yah [08:38] micheil: indutny: the basis for what I'm saying is coming from the websocket draft-ietf-04 spec [08:38] micheil: it has a bunch of standard message types like ping, pong, data, etc. [08:38] kjeldahl has joined the channel [08:38] indutny: hm [08:38] indutny: ok [08:38] micheil: http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-03#section-4 [08:39] indutny: what about auth? [08:39] micheil: -03, not -04 [08:39] micheil: websockets don't do auth [08:39] micheil: that's application level. [08:39] indutny: should connections between nodes be encrypted [08:39] indutny: i know [08:39] micheil: oh, it depends [08:39] micheil: if it' [08:39] micheil: if it's with in a local network, maybe no need to use ssl/tls, but over open web, definitely an idea [08:39] micheil: which is simple enough [08:39] _announcer: Twitter: "twitter doesn't like your inputing node.js in Bio." -- James Chen. http://twitter.com/ashchan/status/3004041692971008 [08:39] micheil: and it's not something for framing to do. [08:40] indutny: i think that it's must have [08:40] indutny: anyway [08:40] micheil: okay, so, the message-type in websockets is actually called OpCode [08:40] micheil: so, on wire, it'd be like: [08:41] indutny: may be not encrypt whole messageing [08:41] indutny: messaging* [08:41] indutny: but do some auth? [08:41] indutny: just to verify [08:41] indutny: if addressee is from local network [08:41] micheil: yeah, that's not done by framing, it's application level./ [08:41] ThePub has joined the channel [08:41] indutny: micheil: i know it [08:41] indutny: but it's necessary [08:41] micheil: so, there's a few ideas there [08:42] indutny: I recommend you handshake [08:42] micheil: see things like pusherapp and remy sharp's thing [08:42] virtuo has joined the channel [08:42] micheil: förbind [08:42] micheil: both do a form of auth. [08:42] micheil: like the first packet must be a combination of say, api token + current data-time + key [08:43] micheil: and then you sha that together or something [08:43] micheil: and then at server level, the first message is expected to be like that. [08:43] micheil: if not, it closes the connection [08:43] indutny: wait a minute [08:44] indutny: what's the api token? [08:44] indutny: are we talking about server communiction [08:44] indutny: cummunications* [08:44] indutny: in local network [08:44] micheil: api-token is just a key that the server knows as to distinguish applications [08:44] indutny: do you mean it should be centralized? [08:44] indutny: micheil: i've developing coala protocol [08:44] indutny: for awhile [08:44] micheil: I'm talking there about a websocket specific auth protocol [08:44] confoocious has joined the channel [08:44] indutny: I've used following pattern [08:45] micheil: it's not for other things. [08:45] indutny: both clients are sending nonce [08:45] micheil: yeah [08:45] indutny: then they're adding it to the password [08:45] indutny: or secret [08:45] indutny: or doing hash_hmac [08:45] indutny: and sending each other [08:45] indutny: may be adding salt [08:45] micheil: client sends nonce, server sends back an nonce, then you have the client send a password with server nonce + client nonce as a key [08:46] _announcer: Twitter: "http://tinyurl.com/2cs29oh Meryl - Minimalist Web Framework for NodeJS" -- catch_down. http://twitter.com/catch_down/status/3005627643199488 [08:46] micheil: be it via hash, or just an XOR style thing [08:46] sanduz2 has joined the channel [08:46] micheil: it's still something far further a field to a basic standard framing protocol [08:47] Druid_ has joined the channel [08:47] micheil: is there any wiki-style application written for node? [08:48] evanmeagher: isaacs: when using npm programmatically, what can cause it to hang? [08:48] micheil: ACTION is guessing isaacs probably isn't about. [08:48] evanmeagher: i'm calling npm.commands.cache.add and fiddling with the exit config value, but the process hangs regardless [08:48] _announcer: Twitter: "@ Checkela node.js in vogue like that, google it and come out a lot." [ja] -- l.b.(Hideaki). http://twitter.com/l_b__/status/3006266704134144 [08:48] evanmeagher: ah, thanks micheil [08:48] micheil: considering it's almost 1am in SF [08:49] evanmeagher: heh, yeah. i'm in pst too. [08:49] micheil: ACTION will hopefully be soon in PST. [08:49] micheil: or PDT. [08:49] evanmeagher: visiting sf? [08:50] _announcer: Twitter: "@ L_b__ Oh, TL commonly found something like that, I was node.js Are you?. Camphor's!" [ja] -- demuyan. http://twitter.com/checkela/status/3006761313243136 [08:51] micheil: evanmeagher: working there hopefully, given visas. [08:51] micheil: can't wait. it should be awesome. [08:52] evanmeagher: micheil: where are you looking at working? [08:52] micheil: SF [08:52] evanmeagher: right, but what company [08:52] evanmeagher: or will you still be freelancing [08:52] micheil: oh, I'll be with a company. [08:53] micheil: although, that may change after 6 months or a year, depends [08:53] micheil: because I know there is some interest by a few core contributors to start up a node consultancy.. but nothing formal yet. [08:53] SubStack: visas! pesky stuff [08:53] micheil: yeah [08:54] evanmeagher: very cool [08:54] evanmeagher: i'm in a similar situation, as i'll be graduating next spring [08:54] SubStack: pkrumins is here on a 6 month b1/b2 [08:54] SubStack: should be enough to get this startup off the ground [08:55] SubStack: considering once we get this auth crap dealt with we can pretty much launch [08:55] SubStack: that and some scaling scripts [08:55] AAA_awright has joined the channel [08:55] SubStack: startups are hard! but fun [08:56] micheil: evanmeagher: heh, I've just graduated (for high school.) [08:56] micheil: *from [08:56] evanmeagher: congrats [08:56] micheil: cheers [08:58] micheil: indutny: I'm going to document stuff here: https://github.com/miksago/ideabin/wiki/Node-Network-Protocol [08:58] micheil: rbranson: see: https://github.com/miksago/ideabin/wiki/Node-Network-Protocol [09:00] rbranson: I talked to ryah about this a few days ago [09:00] micheil: oh? [09:00] rbranson: i think what we came up with was plain-text length then a comma then JSON [09:00] micheil: okay.. example? [09:01] micheil: say: [09:01] micheil: 15,{"test":true} [09:01] micheil: actually. [09:01] micheil: v8: "{'test':true}" [09:01] v8bot: micheil: "{'test':true}" [09:01] micheil: v8: "{'test':true}".length [09:01] v8bot: micheil: 13 [09:01] micheil: 13 then. [09:01] rbranson: yeah, like that [09:02] micheil: oksy [09:02] rbranson: seemed to roll up ease of use / debugging / flexibility pretty well [09:02] micheil: what about ping/pong packets? [09:02] micheil: ACTION is thinking using binary numbers [09:02] rbranson: send a 0 [09:02] rbranson: 0, [09:02] micheil: hmm.. [09:02] rbranson: server responds with a 0, [09:02] rbranson: er [09:02] rbranson: other end [09:02] micheil: nup, not in favour of that. [09:03] micheil: more so of having say: 0 = data, 1 = ping, 2 = pong, ... [09:03] micheil: so, you'd get: [09:03] micheil: 0,13,{...} [09:03] micheil: opcode,length,data [09:03] rbranson: any data message will be >0 length [09:04] margle has joined the channel [09:04] micheil: yeah, but it may be good to validate ping/pong [09:04] micheil: eg, [09:04] rbranson: can't use the same for ping/pong though [09:04] rbranson: otherwise you'll end up with a loop [09:04] micheil: 1,5,64321 [09:04] micheil: then you'd get back: [09:04] rbranson: unless they're just heartbeats [09:04] micheil: 2,5,64321 [09:04] rbranson: i would just use heartbeats honestly [09:04] micheil: hmm.. [09:05] micheil: are there any pros-cons? [09:05] rbranson: ping/pong is much more expensive, heartbeats can be lazy [09:05] javruben has joined the channel [09:05] micheil: yeah [09:05] micheil: but then you can't have something auto-responding when they actually aren't alive [09:06] rbranson: ? [09:06] rbranson: ping/pong also opens up opportunities for abusive clients [09:07] rbranson: if you really need ping/pong, it's implementable at the app level IMHO [09:08] rbranson: the protocol library itself should be light and simple [09:08] micheil: rbranson: check that page again [09:08] micheil: https://github.com/miksago/ideabin/wiki/Node-Network-Protocol [09:08] micheil: see if that's what you mean. [09:09] rbranson: yeah def [09:09] micheil: if you want, edit it and add in the goals of this protocol [09:09] micheil: bbl, dinner [09:11] brianmario has joined the channel [09:12] rbranson: Buffer is also slower than String right now AFAIK [09:12] rbranson: that's why Ryan recommended just using plaintext strings for the length, in addition to debugging / ease of implementation [09:13] rbranson: the cost difference is infintesimal [09:13] tempas: JimBastard: Jim its time! [09:13] rbranson: just do an indexOf(",") to find the delimiter, and then 2 slices [09:13] rbranson: and you can determine if you need to wait for more data [09:15] rbranson: micheil: https://github.com/rbranson/tmz/blob/master/tmz.js <-- this dirty hack implements something similar in MessageFrameProtocol, but using \r\n delimiter [09:18] _announcer: Twitter: "And...I just spent the last 5 hours writing a rudimentary IM program in Node.js...I should find a life...and quickly." -- Marcus McLaughlin. http://twitter.com/aceclub/status/3013818015813632 [09:22] jetienne has joined the channel [09:23] _announcer: Twitter: "Gotta find some time to learn about ØMQ http://bit.ly/cKOING and where would it fit in a Redis/Node.js/Rails architecture." -- M. G. Noriega. http://twitter.com/mgnoriega/status/3015119965528064 [09:26] Utkarsh has joined the channel [09:28] mbrochh has joined the channel [09:28] _announcer: Twitter: "@ Zr0z It seems to be a little closer Node.js, j'me wrong? : O" [fr] -- Rykian. http://twitter.com/Rykian/status/3016228964667392 [09:28] path[l] has joined the channel [09:31] TomsB has joined the channel [09:31] hellp|lunch has joined the channel [09:32] ThePub has joined the channel [09:32] sixtus42 has joined the channel [09:34] aubergine_ has joined the channel [09:35] _announcer: Twitter: "Watching dav glass being very excited on yui3+nodejs: some cool stuff there http://j.mp/cyJUAL" -- Janos P Toth. http://twitter.com/tjp/status/3018131899424768 [09:40] dquestio1s has joined the channel [09:41] _announcer: Twitter: "Interestingly, in 1996 he wrote # javascript on the server, for many years only in the browser and now back to the server # nodejs" [es] -- Crysfel. http://twitter.com/crysfel/status/3019580129677312 [09:41] aurynn has joined the channel [09:42] _announcer: Twitter: "@ Koichik Thank you. What node.js 良Katsu incompatible or even event-driven. I am sorry not to know much better either." [ja] -- bluerabbit777jp. http://twitter.com/bluerabbit777jp/status/3019722463383552 [09:42] sixtus42 has joined the channel [09:46] zomgbie has joined the channel [09:48] ThePub has joined the channel [09:49] sixtus42 has left the channel [09:49] necro has joined the channel [09:50] aubergine has joined the channel [09:50] _announcer: Twitter: "Impressive presence of back-end developpers, Node JS Effect? #fullfrontalconf #happy" -- Adrien Leygues. http://twitter.com/Voulf/status/3021860098805761 [09:54] embedder has joined the channel [09:55] dgathright has joined the channel [09:55] matjas has joined the channel [09:56] _announcer: Twitter: "Node.js finds new abode http://bit.ly/barJHs" -- Openmaniac Meisopen. http://twitter.com/OpenManiac/status/3023269443665920 [09:59] JimBastard: almost airport time [09:59] mbrochh has joined the channel [09:59] mbrochh has joined the channel [10:00] indutny: JimBastard: morning! [10:00] TomY has joined the channel [10:02] _announcer: Twitter: "@_tomash How far have you got with node.js? Any source I can poke through?" -- Bragi Ragnarson. http://twitter.com/bragiragnarson/status/3024744655888384 [10:02] nik0 has joined the channel [10:04] devkorcvince has joined the channel [10:06] InsDel has joined the channel [10:09] xla has joined the channel [10:12] davidc_ has joined the channel [10:13] saschagehlich has joined the channel [10:15] _announcer: Twitter: "@_tomash I wasn't asking about mod_node, I wonder how far have you got in learning/using node.js..." -- Bragi Ragnarson. http://twitter.com/bragiragnarson/status/3028130868494337 [10:16] _announcer: Twitter: "@diamondtin I still prefer tornado to node.js. Everytime I debug a node code, the curly braces just make me sick. /cc:@hongqn" -- Alex Dong. http://twitter.com/alexdong/status/3028399413006336 [10:21] stride: ACTION silently puts "from __future__ import braces" into tornadoweb [10:22] _announcer: Twitter: "@_tomash node.js is missing something alike Ruby's Bundler. Maybe we could work on npm to include similar feature?" -- Bragi Ragnarson. http://twitter.com/bragiragnarson/status/3029794589515776 [10:22] zemanel has joined the channel [10:23] delapouite has joined the channel [10:27] dquestio2s has joined the channel [10:27] niko has joined the channel [10:28] yatiohi has joined the channel [10:29] mikew3c has joined the channel [10:30] dquestions has joined the channel [10:31] jimt_ has joined the channel [10:31] _announcer: Twitter: "Ircd.js: A Node.js IRC Daemon - http://bit.ly/8Zq4C3" -- Bin-Blog. http://twitter.com/BinBlog/status/3032101276360704 [10:33] altamic has joined the channel [10:34] rnewson has joined the channel [10:37] bnoordhuis has joined the channel [10:40] _announcer: Twitter: "@aidos embrace the js, checkout node.js as well" -- Rodeoclash. http://twitter.com/Rodeoclash/status/3034303361449984 [10:43] shockie has joined the channel [10:43] zemanel_ has joined the channel [10:46] caolanm has joined the channel [10:47] aubergine has joined the channel [10:48] hsuh has joined the channel [10:48] _announcer: Twitter: "Devs: Any way to measure/find out the usage statistics of Node.js?" -- Scott Hanselman. http://twitter.com/shanselman/status/3036457052676096 [10:50] _announcer: Twitter: "@ Anekos made it most sounds like. I just do not know ... node.js at Deta JScript JScript also expected to take some ... Ru ... maybe? [Jigtwi]" [ja] -- みやび. http://twitter.com/myb1126/status/3036997794922496 [10:51] aubergine_ has joined the channel [10:51] aubergine__ has joined the channel [10:52] _announcer: Twitter: "http://kcy.me/sut <- Node-MySQL, MySQL protocol implementation # in # node.js" [es] -- Andrés Nieto. http://twitter.com/aNieto2k/status/3037469603799040 [10:52] _announcer: Twitter: "Just added real time drawing with HTML5 canvas to my node.js/socket.io experiment while waiting for British Gas to fix my boiler." -- James Cryer. http://twitter.com/jamescryer/status/3037480097943552 [10:55] _announcer: Twitter: "@shanselman The mailing list is hot. I would query @ryah for a download count of http://nodejs.org/dist/ plus look into npm's stats aswell" -- Demis Bellot. http://twitter.com/demisbellot/status/3038079078113280 [10:56] _announcer: Twitter: "Interesting MySQL implementation # node.js https: / / github.com / felixge / node-mysql /" [es] -- David P. Luna. http://twitter.com/dpluna/status/3038496071614464 [10:58] _announcer: Twitter: "node.js, opensuse, socket.io and IE. Ack." -- Jim Neath. http://twitter.com/jimneath/status/3038882094387200 [10:59] aubergine has joined the channel [11:01] balcanicus has joined the channel [11:06] mikew3c has joined the channel [11:07] mif86 has joined the channel [11:08] christophsturm has joined the channel [11:09] christophsturm: is there a code style guide for node apps? [11:10] meandi has joined the channel [11:11] _announcer: Twitter: ""To get http://nodejs.org/" [ru] -- Yaroslav Doroschuk. http://twitter.com/yarroha/status/3042188820746240 [11:11] d0k has joined the channel [11:12] stride: nope [11:13] stride: google has some javascript conventions on http://code.google.com/p/google-styleguide/ if you need a starting point. other than that it's mostly CommonJS recommendations for modules mixed with a few "best practices" inside the popular libraries [11:13] _announcer: Twitter: "@ LittleBuddha87 Because I use Windows natively, and the development of Android, node.js in Ubuntu is much more convenient" [de] -- Marc Biebusch. http://twitter.com/mbiebusch/status/3042767475310592 [11:14] stride: oh and howtonode has some node specific articles on implementing async code in readable & maintainable ways [11:15] _announcer: Twitter: "@ Mbiebusch WOW node.js icooooooliiiooooo: D but then installed ubuntu natively! not in a VM" [de] -- Francis Varga. http://twitter.com/LittleBuddha87/status/3043104638640128 [11:15] zorzar has joined the channel [11:17] _announcer: Twitter: "@Rodeoclash i've already had a good play with node.js. really cool. I haven't tried it yet but you can actually run backbone in node too." -- aidos. http://twitter.com/aidos/status/3043788666703872 [11:18] Anti-X has joined the channel [11:19] mbrochh: i'm a node newbie... when iterating through a loop and adding group callbacks inside a Step statement... how does Step know, that no more groups will be added and that after getting all the callbacks its time to go to the next step? [11:20] sriley: there is also codesniffer, it has a squiz standard that is bundled with it [11:21] jetienne: anybody tried the new socket.io? it is working well ? [11:23] codemanki has joined the channel [11:27] Utkarsh has joined the channel [11:27] _announcer: Twitter: "Watch Node.js and WebSockets: A match made in heaven by @andregoncalves at http://codebits.eu/intra/s/session/132" -- SAPO Codebits. http://twitter.com/codebits/status/3046174558785536 [11:30] stride: mbrochh: iirc it doesn't. I think it creates a new step inside your calling context in which your new group is set up. during this step your group is initialized and a counter is increased for each callback that is expected. if this counter reaches zero (after all callbacks have been received) the next step outside of that group is executed [11:31] stride: so when you have a Step(function A(), function B()) where A sets up a group of steps and B does something with the result, A - as well as the group inside it - is executed before B gets triggerd [11:34] davidc_: Anyone knows if there's a way to include .cc modules dynamically in node? [11:34] davidc_: Say I make an extension/module, compile it, and then I'd want to just require('myccmodule') [11:34] mbrochh: stride, i guess Step also waits until it reaches the end of function A befor switching to function B, right? [11:34] ph^ has joined the channel [11:35] slaskis has joined the channel [11:36] abstractj has joined the channel [11:39] _announcer: Twitter: "Secure WebSocket server on #node.js? Visit: http://github.com/samcyp/node.ws.js" -- Samuel. http://twitter.com/samcyp/status/3049262262784000 [11:40] ledil has joined the channel [11:41] ledil: hello, Im using socket.io, how can I get the requested URL from a client ? ioc.on('connection', function(client){ ... when I do client.request <= null [11:41] herbySk has joined the channel [11:43] Jonasbn_ has joined the channel [11:43] MikhX has joined the channel [11:44] _announcer: Twitter: "Node.js and WebSockets: A match made in heaven - SAPO Codebits 2010 http://t.co/guCQSn3" [sq] -- smnbss. http://twitter.com/smnbss/status/3050467126935553 [11:44] MattDiPasquale has joined the channel [11:45] path[l] has joined the channel [11:48] abstractj has joined the channel [11:50] fermio has joined the channel [11:51] path[l] has joined the channel [11:53] zemanel has joined the channel [11:53] bnoordhuis: davidc_: install it to $HOME/.node_libraries as myccmodule.node [11:55] davidc_: bnoordhuis, Interesting. Is there any documentation on that? [11:56] Gurpartap has joined the channel [11:56] davidc_: I'm thinking of embedded modules here, that's why I'm looking at this. [11:56] Gurpartap: is there a juggernaut channel? [11:56] Gurpartap: for https://github.com/maccman/juggernaut [11:56] path has joined the channel [11:57] niko has joined the channel [11:58] springify has joined the channel [11:59] stride: davidc_: how and where node looks for js modules or c++ addons is documented at http://nodejs.org/api.html#module-resolving-325 [12:00] mbrochh has joined the channel [12:00] mbrochh has joined the channel [12:01] davidc_: Oh right, sorry about that, completely missed it. Thanks for the link [12:01] zemanel_ has joined the channel [12:02] stride: not a problem, it's a bit hidden in the current doc version :) [12:02] path[l] has joined the channel [12:02] davidc_: This is exactly what I was looking for. Great stuff. [12:02] davidc_: Finally I don't have to code js ;) [12:03] davidc_: ACTION is just kidding, I love coding JS in node.js as it doesn't require me to support different browsers and DOMs [12:03] davidc_: I was thinking, stride, do you know if there's anyone that made a proper mysql library for node that does not require libmysql or such? I'm thinking along the lines of replicating something like mysqlnd in PHP [12:04] davidc_: Which self-contains everything. [12:04] _announcer: Twitter: "Wrote: On the server side using jQuery http://dl.dropbox.com/u/219436/node.js/handson/build/html/webapp/jsdom.html ... Well, I am practically using I've been in a normal application and I wonder if" [ja] -- Yohei Sasaki. http://twitter.com/yssk22/status/3055562853974017 [12:05] mAritz: davidc_: have you looked at all of the mysql modules in the module listing? (not sure how they work) [12:05] tony_ has joined the channel [12:05] _announcer: Twitter: "Anyone created a P2P application/sth. like it using #nodejs? I'm going to try to make one on my own.. http://bit.ly/cPIxkr" -- Arunjit Singh. http://twitter.com/arunjitsingh/status/3055715841220608 [12:05] davidc_: Most of the ones I looked at require libmysql and whatnot. [12:05] elijah-mbp has joined the channel [12:05] davidc_: mysqlnd for PHP was only built in the latest versions of PHP from the mysql guys to remove that headache of external dependencies. [12:12] eee_c has joined the channel [12:13] ph^ has joined the channel [12:16] sambao21 has joined the channel [12:16] stride: davidc_: the one felixge made is pretty good imho [12:16] stride: it's pure JS communicating with the mysqld over a socket [12:17] ctp has joined the channel [12:17] stride: which reminds me that my prepared statement branch for that needs a few hours of attention.. meh [12:17] davidc_: stride, yeah that's what I'm looking at. [12:18] davidc_: But communicating over hostname:port would be nice. [12:18] stride: that's what it does [12:18] davidc_: The problem is that felixge's module is rought in a master-slave setup iirc. [12:18] davidc_: rough* [12:18] davidc_: As it's a local socket. [12:19] bnoordhuis: davidc_: why is that? [12:19] bnoordhuis: okay [12:19] davidc_: Unless I'm mistaken. [12:19] stride: davidc_: huh? nope [12:19] stride: I'm running it on production, it supports tcp connections to a remote host as well [12:19] davidc_: Ah right [12:20] davidc_: That's good then. [12:20] bahamas has joined the channel [12:21] bnoordhuis: looking at the source, i think it only supports tcp connections actually [12:21] fermion has joined the channel [12:22] malkomalko has joined the channel [12:22] dberlinger has joined the channel [12:22] stride: bnoordhuis: oh, really, thought there was pipe support as well. hmkay [12:23] ph^ has joined the channel [12:24] mraleph has joined the channel [12:25] _announcer: Twitter: "Has anyone tried node.js http://nodejs.org/? How about work? / / Cc: pcuenca @ @ @ xabi @ vicente_sosa madmw" [es] -- Héctor Marcos. http://twitter.com/hhmmss/status/3060703858528257 [12:25] mAritz has joined the channel [12:25] tempas: how do you read configuration from a json file containing only a json? [12:27] tempas: isaacs: hey .. could i ask you how you read the package.json and use it in npm? [12:29] stride: tempas: you read the file with fs.readFile and parse it with JSON.parse [12:30] tempas: oh that simple huh [12:30] tempas: thanks [12:30] tempas: :) [12:30] stride: :) [12:32] micheil: rbranson: yeah, but .indexOf only works if you're receiving say, utf8 or ascii strings, not for possible binary data [12:33] _announcer: Twitter: "Node.js: "The attempt to write scalable network programs" http://bit.ly/b8KYqA" [es] -- Pablo Molero. http://twitter.com/seogea/status/3062710963011584 [12:34] _Utkarsh has joined the channel [12:34] _announcer: Twitter: "@ Ptz0n for example! or pusherapp.com / beaconpush.com node.js is not a must but a cool platform." [sv] -- Martin Källström. http://twitter.com/martinkallstrom/status/3063113893019650 [12:34] jetienne: q. in socket.io, sessionid is supposedly unpredictable ? how can i get a unpredicatable uuid in a webpage ? [12:35] bnoordhuis: micheil: http://github.com/bnoordhuis/node-buffertools <- exports an indexOf() that lets you search for a buffer within a buffer [12:35] micheil: davidc_: probably also check out npm link [12:35] davidc_: What? [12:35] micheil: bnoordhuis: yeah, but that means a dependency. [12:35] davidc_: What have I done? [12:36] micheil: davidc_: for installing a custom c module, rather then just linking into ~/.node_libraries [12:36] davidc_: Oh right :) [12:36] micheil: jetienne: just rip it out of socket.io? [12:36] jetienne: micheil: ? [12:36] sambao21 has joined the channel [12:36] stride: jetienne: there are a few uuid modules in the node wiki as well [12:37] jetienne: stride: any that works ? [12:37] eee_c has joined the channel [12:37] stride: jetienne: no idea [12:37] jetienne: stride: ok :) so Math.random() is will be :) [12:37] stride: I thought you wanted something unpredictable :) [12:38] christophsturm: caolanm: i just noticed that nodeunit uses make. is that what people use for node projects, i had expected something like jake instead [12:38] tempas: isn't node.js capable of doing what beaconpush and pushapp is doing? [12:38] micheil: this.sessionId = Math.random().toString().substr(2); [12:38] jetienne: stride: well i dunno any other source of random and currently i can just pretend security. after all people are happy with jsonp API so Math.random() may be unpredicatable to them [12:38] micheil: christophsturm: we use what ever [12:38] tempas: are there reasons for me to use beaconpush or pusherapp instead of writing it myself with node.js? [12:38] micheil: I've been using rake for node-websocket-server, but switched to make [12:39] micheil: tempas: depends [12:39] davidc_: I wonder how reliable is "Infinity" [12:39] micheil: tempas: describe your use case. [12:39] tempas: micheil: http://pusherapp.com/ [12:39] tempas: watch the little video [12:39] micheil: yeah, I know of pusherapp, some smart people working on it. [12:39] tempas: thats what i want =) [12:39] tempas: but isn't that just websocket? [12:39] micheil: it's a form of websocket communication [12:40] micheil: although, it's also hooked up to a http endpoint [12:40] micheil: so you can do a HTTP POST and receive the data via a websocket client [12:40] tempas: when one user moves, then i send the coordination through websocket back to server .. and the server sends it to the other one [12:40] micheil: I'm not sure on the exact specifics of the client -> server push [12:40] stride: hm. somehow I doubt that the Math.random approach satisfies distribution and randomness requirements people would normally assume in session id generation [12:40] micheil: but I know that server -> client works extremely well [12:41] micheil: v8: Math.random() [12:41] v8bot: micheil: 0.8058624910190701 [12:41] tempas: micheil: websockets should work for client -> server too i guess? [12:41] stride: although all my websec seminars ended with session id analysis and the claim that you just don't implement it on your own.. [12:41] micheil: tempas: websockets are bidirectional, yes [12:41] eee_c has joined the channel [12:42] davidc_: Has anyone tried to make a node.js boost module? :) [12:42] micheil: tempas: I'm just not sure on the specifics as to how pusherapp pushes data back to your server [12:42] christophsturm: micheil: why did you switch from rake to make? I'm trying to decide what to use right now, and was considering make and jake. didnt even think of make [12:42] micheil: davidc_: yes, it's on the modules page (and kinda horrible) [12:42] tempas: micheil: but it should be web socket right? [12:42] davidc_: micheil, what's horrible about it? [12:42] davidc_: Assuming it's not only the code. [12:42] micheil: tempas: yes, pusherapp uses websockets, however, they might be making it only a single directional channel, not a bidirectional channel [12:43] tempas: micheil: why would they do that? [12:43] micheil: davidc_: I'm just not a fan of the boost libraries :P [12:43] davidc_: The idea of using advanced maths concepts in javascript frigthens me but still interests me. [12:43] davidc_: Oh right [12:43] micheil: tempas: because how is your service that's sending data down using HTTP POST going to get the data back? [12:43] JCS0 has joined the channel [12:43] micheil: tempas: let me check something. [12:44] echosystm has joined the channel [12:45] tempas: micheil: but aren't both clients connected to the server through websocket? then they just send and receive messages through that socket right? (I havent used websockets yet, but it looks like it's working like that) [12:45] micheil: tempas: I'm not sure on the specifics [12:45] micheil: just checking something. [12:45] tempas: ok [12:45] zhesto has joined the channel [12:47] echosystm: hay guise! [12:48] agnat has joined the channel [12:48] bnoordhuis: mraleph: quick question: nacl switched to llvm a while back, any chance v8 will do the same? [12:48] tempas: echosystm: lets talk about rest shall we [12:48] tempas: :) [12:48] mraleph: bnoordhuis: nope. [12:48] echosystm: lol [12:49] bnoordhuis: mraleph: looks like it will be less maintenance hassle (to the uninformed eye anyway) [12:50] mraleph: bnoordhuis: llvm is pretty heavy and you can't just spit out llvm bytecode from some dynamic language and hope that llvm will make it blazingly fast [12:50] mraleph: that does not work [12:51] bnoordhuis: no, that's true [12:51] bnoordhuis: but (there's always a but) [12:51] echosystm: i was looking at the new JIT stuff for LUA [12:51] bnoordhuis: v8 synthesizes machine code [12:51] echosystm: and it is insane fast [12:51] tempas: echosystm: you understand the Model Mapper Enactor (MME) pattern? [12:51] echosystm: howcome JIT was never considered for v8? [12:51] tempas: echosystm: http://books.google.com/books?id=2LzrNwT_cgMC&pg=SA7-PA1&lpg=SA7-PA1&dq=model+mapper+enactor+pattern&source=bl&ots=VD5I3dJSp5&sig=5Gj90jV5Bu6zipkDcBRmOsPp38w&hl=en&ei=dJfcTOndKM34sgal_YWiBA&sa=X&oi=book_result&ct=result&resnum=1&ved=0CBIQ6AEwAA#v=onepage&q=model%20mapper%20enactor%20pattern&f=false [12:52] mraleph: echosystm: v8 is jit [12:52] echosystm: tempas: nope [12:52] bnoordhuis: i'd assume that switching from a native backend to llvm is a relatively minor change [12:52] caolanm: christophsturm: sorry, only just seen your message, there doesn't seem to be much consensus on make / jake etc [12:52] tempas: damn .. was looking for someone that could help me describe [12:52] tempas: thought it was you that sent me the link yesterday [12:52] caolanm: nodeunit uses make because its familiar for most people [12:52] bnoordhuis: and you shift part of the responsibility of multi-platform support to llvm [12:52] tempas: echosystm: do you remember who sent it? davidc_ was it you? [12:53] bnoordhuis: but it is pretty heavy though [12:53] echosystm: im confused mraleph [12:53] bnoordhuis: maybe not well suited for use in a browser [12:53] mraleph: bnoordhuis: v8 not only synthesizes native code, it also patches it on the fly [12:53] micheil: tempas: looks like client to server push is not currently supported: https://github.com/newbamboo/pusher-js/blob/master/src/pusher.js#L141 [12:53] mraleph: in some cases [12:53] bnoordhuis: patch? in what way? [12:53] christophsturm: caolanm: thanks. I think I'll just use jake. [12:53] tempas: micheil: but then how do they send it back? [12:53] echosystm: i thought jit did more than just compile the whole app to machien code and actually inlined functions etc. [12:54] micheil: tempas: i'm not entirely sure [12:54] davidc_: tempas, sent what? [12:54] mraleph: well. it's called inline cacheing let me find a link for you [12:54] micheil: tempas: try contacting them and asking [12:54] davidc_: Sorry there's a lot of stuff going on in allchatrooms. [12:55] mraleph: bnoordhuis: http://en.wikipedia.org/wiki/Inline_caching is a good description [12:55] mraleph: I am pretty sure that every V8 related techtalk explains it. [12:55] tempas: davidc_: the link about Model Mapper Enactor pattern [12:56] davidc_: Wasn't me. [12:56] tempas: davidc_: was it you i discussed about REST with yesterday? [12:56] _announcer: Twitter: "A pure #node.js JavaScript Client implementing the #MySql protocol. http://bit.ly/bL9uqy" -- adolfoabegg. http://twitter.com/adolfoabegg/status/3068570388922369 [12:56] tempas: ok [12:56] jetienne: mraleph: in v8 is there a speed advantage in using the myclass.prototype.mymethod() way to define object compared to the return {allpublic members} way ? not sure to be clear [12:56] davidc_: But yeah we discussed REST yesterday :)\ [12:56] davidc_: At length. [12:56] tempas: davidc_: oh [12:56] tempas: wonder who sent it if it wasnt you or echosystm [12:56] gf3 has joined the channel [12:57] tempas: interesting article though [12:57] mraleph: there are a least three techtalks about v8: one by Lars Bak, one by Kevin Millikin and one by Mads Ager. [12:57] _announcer: Twitter: "#nodejs -project being administered by Ryan Dahl, dba NodeJS +project being administered by Joyent, Inc , dba NodeJS" -- Peter C. Host. http://twitter.com/PeterHost/status/3068858327896065 [12:58] mraleph: there is also a Channel9 recording where Lars talks to Erik Meijer [12:58] mraleph: http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Erik-Meijer-and-Lars-Bak-Inside-V8-A-Javascript-Virtual-Machine [12:58] mraleph: bnoordhuis: I recommend watching one of them. [12:59] bnoordhuis: mraleph: i will [12:59] bnoordhuis: though i think i know what inline caching is [12:59] bnoordhuis: if it's the same thing what haskell uses [12:59] _announcer: Twitter: "@smnbss node.js is awesome! Have you used it yet? I built a simple stock ticker." -- Paul Hazells. http://twitter.com/paulhazells/status/3069351234113536 [12:59] eee_c has joined the channel [12:59] bnoordhuis: sorry, s/haskell/scheme/ [13:00] tmedema has joined the channel [13:01] _announcer: Twitter: "Today is for me the day of violent cool technologies: Neato, git node.js + + socket.io, jQuery Mobile" [de] -- Marc Biebusch. http://twitter.com/mbiebusch/status/3069760774348801 [13:01] tempas: what is neato [13:01] tempas: robotics? [13:02] mraleph: jetienne: I would say that call through prototype chain is slightly slower, but I am not sure. [13:02] tempas: echosystm davidc_ : who of you sent http://martinfowler.com/articles/richardsonMaturityModel.html ? [13:02] stagas: nsfw: http://hots.stagas.com [13:03] tempas: are the HTML media controls for humans to interact with? [13:03] jetienne: mraleph: ok thanks. i was wondering because of http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml#Method_definitions . it is advising for .prototype [13:03] mraleph: echosystm: there are different kinds of jits. some do more, some do less. [13:03] BillyBreen has joined the channel [13:03] jetienne: stagas: btw did you nailed the ram blocked at 300mbyte stuff ? [13:04] teemow has joined the channel [13:04] stagas: jetienne: no. dropped it [13:04] _announcer: Twitter: "Very impressed and surprised by http://nodejs.org and http://www.youtube.com/watch?v=hWhMKalEicY - Javascript servers? Who'd a thunk it?" -- Jon Bevan. http://twitter.com/jdbevan/status/3070630647832576 [13:04] echosystm: not me tempas [13:04] mraleph: jetienne: I am not sure that style guide was written with performance in mind. [13:04] jetienne: mraleph: ok [13:04] stagas: jetienne: but I think it's possible using a buffer approach [13:05] mraleph: bnoordhuis: yep. inline caching is a pretty old technique. [13:05] stagas: jetienne: since it's outside the v8 it might work but everything has to be manual, slices etc [13:06] jetienne: stagas: yep, waiting to see how to lift this articial limit seems more sensible [13:06] tanepiper: gahhh.... felixge is no longer maintaining node-couchdb :/ [13:06] jetienne: stagas: rather than rewriting everythin g to workaround it i mean [13:08] _announcer: Twitter: "new blog post http://bit.ly/b0A78T on writing a mobile app using @zeptojs #node.js and @cloud9ide" -- giannis. http://twitter.com/bonejp/status/3071580276006912 [13:08] ctp has joined the channel [13:08] jetienne: stagas: about hots, the ui is unclear. i mean i dont get when to vote and when i can no more vote [13:09] jetienne: stagas: fun idea tho :) [13:09] stagas: jetienne: it has to come from v8. [13:09] stagas: jetienne: about the limitations I mean [13:10] stagas: jetienne: yeah the ui needs work but it was more of an experiment [13:11] jetienne: stagas: it could be big if it become more of a game [13:11] aheckmann has joined the channel [13:11] jetienne: stagas: like i can see "hots" and beat my friends on it [13:12] jetienne: ok going back to actual work :( [13:13] saschagehlich: is there a vector node.js logo? [13:15] micheil: saschagehlich: I'm not sure. Let me check [13:15] spoobie has joined the channel [13:15] fangel has joined the channel [13:16] micheil: saschagehlich: by the looks no. [13:16] micheil: but ryah_ probably has one somewhere [13:16] Sami_ZzZ has joined the channel [13:16] _announcer: Twitter: "@tirsen jazz_money provides browserless builds. Some people use node.js for that too. See http://j.mp/acCvck and the mailing list for more." -- Jasmine JavaScript. http://twitter.com/jasminebdd/status/3073685028085760 [13:17] _announcer: Twitter: "On video: @pedrogteixeira's Node.js: a deep dive http://codebits.eu/intra/s/session/109" -- SAPO Codebits. http://twitter.com/codebits/status/3073859527901184 [13:20] _announcer: Twitter: "Today, I was wondering if there is a web framework NodeJS like a, yeah, too cool. Toss to see the first" [zh-CN] -- Johnny Wong. http://twitter.com/Numbcoder/status/3074571578114048 [13:21] _announcer: Twitter: "Calendar clash between my company Christmas Do and #BCMan4 means another missed opportunity to meet @ciaran_j for a #nodejs natter. D'oh!" -- Tim Hastings. http://twitter.com/timhastings/status/3074949350686720 [13:22] _announcer: Twitter: "@ Timhastings doh! :) # # Nodejs BCMan4" [fil] -- Ciaran Jessup. http://twitter.com/ciaran_j/status/3075098848264194 [13:24] herbySk: hey, guys, I come to the idea while listening yesterday's conversation on rest and on frameworks... as I believe in examples as the great tools to show things, in code especially, what if there will be a comparision of framework by showing how each one of them implements the same application (or two). What would you think would be the good application or two for such thing (not too big, but having every thing which typically exist in web apps)? [13:24] siong1987 has joined the channel [13:25] micheil: rbranson: ping [13:25] _announcer: Twitter: "Video: Using #nodejs and #YUI3: http://is.gd/gY7y0 by @davglass" -- Dallas Node. http://twitter.com/DallasNode/status/3076025504235521 [13:26] jetienne: grumble jquery.ajax doesnt report network error [13:28] tanepiper: anyone know why in this: https://gist.github.com/0842d7745b232d1f9977 my fs stuff works (attachment from a couchdb instance) but trying to send the binary data directly to the response gives me "the image cannot be displayed because it contains errors" [13:28] MattJ has joined the channel [13:29] bnoordhuis: tanepiper: what do the response headers look like? [13:29] bnoordhuis: curl -v url [13:29] saschagehlich: ryah_: ping - do you have a vector node.js logo for me? [13:30] micheil: saschagehlich: try emailing the mailing list, or ryan@joyent.com [13:30] saschagehlich: okay, ry micheil [13:30] tanepiper: bnoordhuis: https://gist.github.com/0842d7745b232d1f9977 updated with response headers [13:30] amerine has joined the channel [13:31] guitt has joined the channel [13:31] tanepiper: hmm, the length seems to be different [13:31] tanepiper: oh wait, yea the file length is 2955 but content-length includes other headers [13:32] micheil: what do people think? https://github.com/miksago/ideabin/wiki/Node-Network-Protocol [13:32] bnoordhuis: tanepiper: no, content-length is response body size only [13:33] tanepiper: bnoordhuis: did a work around anyway, since fs.writeFile works, i just write the file to /tmp/ then use res.sendfile in expressjs [13:33] tanepiper: tbh i need to look at patching node-couchdb to support streaming attachments [13:34] rossij has joined the channel [13:35] _announcer: Twitter: "ndoe.ws.js, a Minimalistic WebSocket implementation for #nodejs: http://is.gd/gY8pM" -- Dallas Node. http://twitter.com/DallasNode/status/3078377053360128 [13:35] tanepiper: micheil: i like it, reminds me a little of serialised PHP though :D [13:35] micheil: tanepiper: it's meant to just be a standard way for different node to node networks to talk [13:36] bnoordhuis: tanepiper: res == http.ServerResponse? [13:36] micheil: like, XEE will use it, and things that are for node-to-node communication could also use it. [13:36] tanepiper: bnoordhuis: + some extra stuff from connect/express I assume [13:36] Utkarsh has joined the channel [13:36] bnoordhuis: tanepiper: res.send() sends the whole buffer [13:36] necrodearia has joined the channel [13:36] micheil: tanepiper: just not sure which is the best way to go. [13:36] bnoordhuis: if your image is smaller than that, it will also send out junk [13:36] tony_ has joined the channel [13:37] tanepiper: bnoordhuis: ahh, sounds about right looking at it - so i'll just go with the way i have just now, seems to fix the issue [13:38] eee_c has joined the channel [13:38] sclaflin has joined the channel [13:39] splashs has joined the channel [13:40] _announcer: Twitter: "@shanselman nodejs is so ridiculously awesome. I've found a couple other languages doing the same.. Check Perl's PSGI or NGINX. Very cool" -- Josh Robinson. http://twitter.com/josher565/status/3079722363785216 [13:41] dmcquay has joined the channel [13:45] sixtus42 has joined the channel [13:47] willwhite has joined the channel [13:47] stagas: my sister entered a logo contests site to give it a try and did 3 tryout logos and fucking ranked 1st on two of them http://logotournament.com/logodesigners/amsdes [13:48] stagas: another one is hidden from public but rocked too [13:48] fangel: well, congrats I guess :) [13:48] tanepiper: LOGO > logos [13:49] tanepiper: FORWARD 100 [13:49] tanepiper: LEFT 90 [13:50] stagas: she's a prof designer for many years but still! [13:50] stagas: :) [13:51] jetienne: v8: require('url') [13:51] v8bot: jetienne: ReferenceError: require is not defined [13:51] jetienne: is there a nodejs bot ? [13:51] bnoordhuis: that would hardly be safe, would it? :) [13:52] jetienne: bnoordhuis: it can be made safe [13:52] bnoordhuis: bnoordhuis: probably yes [13:52] bnoordhuis: but i won't be running it from my pc [13:52] _announcer: Twitter: "Tomorrow Python Hack-a-Thon. 20:00 pm for 9 am, Center for Oracle Aoyama 13F, late strictly prohibited. Join this hands-on which I doubt. I try to ... node.js" [ja] -- Yudai Odagiri. http://twitter.com/ixixi/status/3082798755749888 [13:52] Ari-Ugwu has joined the channel [13:53] jetienne: :) [13:53] tanepiper: var spawn = require('child_process').spawn; var DELETE = spawn('rm', '-rf', '/'); [13:53] Anti-X: wicked cool maaan [13:53] faust45 has joined the channel [13:54] kawaz_air has joined the channel [13:54] Utkarsh has joined the channel [13:56] _announcer: Twitter: "Written by NodeJS see a few sites, I increased interest in Afghanistan." [zh-CN] -- Johnny Wong. http://twitter.com/Numbcoder/status/3083614103281664 [13:56] saschagehlich has joined the channel [13:56] tony_ has joined the channel [13:57] omarkj has joined the channel [13:58] pengwynn has joined the channel [13:59] ooooPsss has joined the channel [14:01] mbrochh has joined the channel [14:01] mbrochh has joined the channel [14:06] _announcer: Twitter: "Will probably go down a bit on node.js #, if desired. # Javascript # 1600 # bchh10" [de] -- COM.lounge. http://twitter.com/comlounge/status/3086200344674305 [14:06] aliem has joined the channel [14:08] _announcer: Twitter: "http://twitter.com/Numbcoder/status/3083614103281664 (from # node.js Wed freenode) - # WTF? (Look up GTranslate, ofcourse)." [no] -- p6. http://twitter.com/p6/status/3086739199496192 [14:08] _announcer: Twitter: "@smarx You could tell us how you did it :-) Azure and node.js ought to be a popular blog topic !" -- Martin Smith. http://twitter.com/mcmarto/status/3086757893509121 [14:08] davidsklar has joined the channel [14:09] svnlto has joined the channel [14:11] _announcer: Twitter: "Working on a Network Protocol for Node-to-Node apps to communicate: http://is.gd/gYbWx Feedback Wanted. #node.js" -- Micheil Smith. http://twitter.com/miksago/status/3087483491323904 [14:11] _announcer: Twitter: "A wiki listing of all things node: tutorials, projects, sites, applications, articles, talks and companies using #nodejs" -- Dallas Node. http://twitter.com/DallasNode/status/3087573610139648 [14:12] _announcer: Twitter: "And in case you don't know about it, a wiki listing of #nodejs modules: http://is.gd/gYc1Y" -- Dallas Node. http://twitter.com/DallasNode/status/3087722751197185 [14:13] sixtus42 has joined the channel [14:13] oal has joined the channel [14:14] SvenDowideit has joined the channel [14:14] miccolis has joined the channel [14:14] SvenDowideit has joined the channel [14:15] stride: micheil: did you guys consider the http://code.google.com/p/protobuf/ format & approach of predefining message formats? [14:15] stride: docs for the binary representation of this data is at http://code.google.com/apis/protocolbuffers/docs/encoding.html [14:16] micheil: stride: well, the thing is, it's not directly for RPC [14:16] marshall_law has joined the channel [14:16] micheil: it's just for communication [14:17] cardona507 has joined the channel [14:17] stride: protobuf isn't limited to RPC use cases [14:18] stephank: micheil: perhaps missing some discussion, but protocol buffers aren't RPC, it's just a binary data format [14:18] micheil: it appears to be focused at that. [14:18] _announcer: Twitter: "A small tweet about #nodejs and this happens to @samcyp :-) https://github.com/samcyp/node.ws.js/network" -- Olle Dahlström. http://twitter.com/olled/status/3089160344707072 [14:18] micheil: well, yeah, that's what I'm meaning. [14:18] micheil: this is meant to be mainly used for communicating JSON data between two node processes [14:19] tprice: how well does node do with very large arrays? [14:20] WRA has joined the channel [14:21] micheil: tprice: fairly well, I think. [14:21] micheil: depends what you're doing with them [14:21] stride: isn't there already some pseudo-standard for binary encoding of json? [14:21] micheil: bson? [14:21] bnoordhuis: stride: base64 [14:21] stride: oh, yeah I had bson in mind I think [14:22] bradleymeck has joined the channel [14:23] sixtus42: stride: msgpack is an option as well [14:23] sixtus42: stride: https://github.com/pgriess/node-msgpack [14:24] batasrki has joined the channel [14:24] micheil: the idea isn't to actually encode JSON, although, we know that over the wire, JSON data will be in binary. [14:24] tprice: micheil: it would be like an array of arrays or maybe object to keep track of opne connections [14:25] micheil: tprice: hmm, if it's for connection managing, I'd recommend looking at say the node-websocket-server connection manager.. [14:25] micheil: https://github.com/miksago/node-websocket-server/blob/development/lib/ws/manager.js [14:26] Throlkim has joined the channel [14:26] Anti-X: micheil is the idea that this should be 'native' to node? [14:26] Anti-X: eventually [14:26] micheil: sort of. [14:27] micheil: Although, it'd probably be something we'd keep as a module [14:27] micheil: but I'm wanting the idea to be universal to the node ecosystem. [14:28] micheil: my strong use case for it is for a project I'm calling XEE, which are like event emitters meet network sockets [14:29] tprice: micheil: yeah i have that as a lib right now [14:29] tprice: its very well done [14:29] micheil: heh, thanks [14:29] micheil: ACTION is the author. [14:29] micheil: feel free to use the manager from it [14:30] micheil: either: require("websocket-server/manager") [14:30] micheil: or require("websocket-server")._Manager; [14:30] tanepiper: micheil: you done much with streams? [14:30] tprice: micheil: oh you made it [14:30] micheil: a fair bit, why? [14:30] tprice: reall cool [14:30] micheil: tprice: yup. [14:30] withanx has joined the channel [14:31] tanepiper: well felixge is dropping development on node-couchdb, and i need to look at adding streaming support myself for getAttachment stuff [14:31] micheil: talk to probably mikeal [14:31] tanepiper: basically, i need to be able to stream a binary attachment from couchdb through to a response object [14:32] tanepiper: well getting it from couchdb is the easy part (i think), it's the bit in-between were i'll probably have to pump it between the incomign stream and outgoing stream [14:32] tprice: micheil: hey you going to be updating the docs for the storage module? [14:32] cyraxx: anyone heard of httpServer.connections going down all the time? on my server it keeps decreasing - i'm pretty sure my node server doesn't have -167 connections open right now ;) [14:32] micheil: tprice: storage module? [14:32] micheil: nws-memstore? [14:33] sixtus42: tanepiper: why don't you expose the couch uri to the target directly? [14:33] sixtus42: tanepiper: instead of sys.pumping it thru? [14:33] tanepiper: sixtus42: because the couchdb will be sitting behind a firewall within a vlan [14:33] tanepiper: it's won't be accessable to the outside world [14:33] micheil: ** util.pump or stream.pump :P [14:34] micheil: tanepiper: in that case you could always use iptables to tunnel through [14:34] cyraxx: now it's down to -182... [14:34] sixtus42: tanepiper: are you exposing node directly? if you have a reverse proxy in front, that's the point to expose the couch uris as well [14:34] micheil: cyraxx: hmm, no, never [14:34] TomsB: I have this simple server for flash socket connections http://pastebin.com/zpPdw19N I can write data to client, but how to write data to another user? Like stream.sendTo(user_id,data) ? [14:34] ph^ has joined the channel [14:35] podman has joined the channel [14:35] tprice: micheil: sorry another project [14:35] TomsB: Any ideas or google keywords to serah and learn? [14:35] TomsB: *search [14:35] micheil: tprice: hmm, I'm not sure which project you're talking about? [14:35] podman has left the channel [14:35] tanepiper: sixtus42: basically it's an ExtJS clientside app, that calls via Ajax to a nodejs app, which calls to couchdb to get docs, nodejs then processs the docs as required and passes back the JSON [14:35] micheil: tprice: are you referring to the storage stuff that was in node-websocket-server? [14:35] podman has joined the channel [14:36] podman has left the channel [14:36] bnoordhuis: TomsB: socket.io? [14:36] TomsB: Can't use that. [14:36] micheil: TomsB: why not? [14:36] tanepiper: because the nature of the data (corporate information and secrets) the couchdb needs to be secure, away from the world [14:37] tprice: micheil: i think so i pulled it from git a long time ago [14:37] tprice: maybe should update [14:37] tprice: haha [14:37] TomsB: It's buggy sometimes - I have a test case where Socket.IO can receive data but not send - client to server. [14:37] micheil: tprice: yeah, latest version has that removed. [14:37] micheil: TomsB: send in a bug report then! [14:37] TomsB: So, I'd like to use pure flash socket implementation w/o websocket simulation. [14:37] micheil: TomsB: because if it's a bug, then it needs to be fixed. [14:38] TomsB: I talked to rauchg_, he knows about that. [14:38] _announcer: Twitter: "Thinking I might stop contract hunting and just learn some more node.js" -- Dan Hilton. http://twitter.com/danhilton/status/3094191655620608 [14:38] TomsB: But I have no time to wait. [14:38] yeevgen has joined the channel [14:38] micheil: ACTION can't work out why people are still using flash.. but anyway. [14:38] bnoordhuis: TomsB: maintain a list of client objects; when data comes in, look up the corresponding client object and proxy it through [14:38] jherdman has joined the channel [14:38] Anti-X: people are using flash because other people keep producing for flash [14:38] bnoordhuis: conceptually it's quite simple [14:39] tanepiper: “Flash Is Great.” — Anonymous Flash Developer [14:39] kriszyp has joined the channel [14:39] TomsB: bnoordhuis, Yes, I know how logic should be. What I don't know - how to tell stream to send data to some user ID or user object. [14:39] Anti-X: and flash is more than just web 'applets'.. so whenever those devs want to do web, the first thing they think about is flash, because that's what they know [14:40] bnoordhuis: TomsB: response.send()? [14:40] bnoordhuis: key the response objects on user ids [14:40] mAritz has joined the channel [14:40] TomsB: I think I need an example.. [14:41] TomsB: ..every connection have it's own response object? [14:41] bnoordhuis: yep [14:41] TomsB: hmm, sec. [14:41] tony_ has joined the channel [14:43] braddunbar has joined the channel [14:44] stride: Anti-X: there are flash guys who do something else than "web applets"? [14:44] Anti-X: sure [14:44] davidc_: micheil, I could not find the boost library on the modules page by the way. [14:44] Anti-X: flex shit [14:45] aliem has joined the channel [14:45] _announcer: Twitter: "Should read the API before implementing something new... #node.js #node-usb #libusb-1.0" -- Schakko. http://twitter.com/schakko/status/3096025354993664 [14:45] stride: Anti-X: oh, right, those people.. I always forget about them :) [14:45] Anti-X: rightly so [14:46] Anti-X: graphical programmers [14:46] micheil: davidc_: oh, okay, maybe' I'm mistaken then [14:46] Anti-X: or 'designers claiming to be programmers' [14:46] kawaz_air has joined the channel [14:48] prettyrobots has joined the channel [14:48] _announcer: Twitter: "Node.js, for example, is massively trending over the past six months http://monk.ly/bBdPuD" -- James Governor. http://twitter.com/monkchips/status/3096859786608640 [14:49] stride: micheil: your proposal would allow exchanging things like buffer data almost directly without going through some JSON implementation, right? [14:49] micheil: stride: should do, yes [14:50] micheil: you'd do something like: [14:50] micheil: 01 2c LENGTH 2c DATA [14:50] micheil: where LENGTH is the binary length of DATA [14:50] micheil: and DATA is your buffer [14:51] micheil: (that's the reason for including a binary frame-type. [14:51] bnoordhuis: sizeof(LENGTH) == ? [14:51] stride: ok, and both proposals under the assumption that the transport used will handle error detection/correction and all that? [14:52] tylerstalder has joined the channel [14:52] micheil: the biggest thing I'm not too sure of just yet is the LENGTH value [14:52] micheil: stride: yes. [14:53] sixtus42 has joined the channel [14:53] micheil: typical case is transport will be network socket, such as net.Stream [14:53] bnoordhuis: micheil: run-length encoding? [14:53] matt_c has joined the channel [14:53] bnoordhuis: utf8-like [14:53] micheil: bnoordhuis: uhh.. [14:54] Ari-Ugwu has joined the channel [14:54] cyraxx: where does node store its libraries (such as http.js) by default? i thought /usr/lib/node, but there's only npm stuff [14:54] micheil: cyraxx: they get compiled in [14:54] stride: cyraxx: in the lib folder of the source [14:54] cyraxx: oh, i see [14:54] cyraxx: gotte recompile then ;) [14:54] bnoordhuis: micheil: first seven bits of a byte are used, if high bit is set, next byte also belongs to the sequence [14:54] _announcer: Twitter: "A Node.JS chat server written in CoffeeScript. Rocks. http://dhotson.tumblr.com/post/634304174/node-js-chat-server-in-coffeescript" -- Darcy Murphy. http://twitter.com/mrDarcyMurphy/status/3098368880418816 [14:55] micheil: bnoordhuis: I guess so, but how could that represent an INT [14:55] bnoordhuis: so length=100 is one byte, length=1337 is two bytes, length=15 million is 3 bytes [14:55] bnoordhuis: etcetera [14:55] micheil: cyraxx: it is unrecommended that you make changes directly to those libs, unless you're contributing up-stream [14:55] micheil: bnoordhuis: example? [14:56] femtoo has joined the channel [14:56] micheil: bnoordhuis: because 100 as an Int is 0x64 [14:57] bnoordhuis: micheil: something like: unsigned long long size = 0; int i = 0; do { size |= (p[i] & 0x7f) << (i * 8); } while (p[i] & 0x80); [14:57] stride: bnoordhuis: wasn't the downside of rle that it extends the size of the data in some cases? [14:57] cyraxx: micheil: yeah, i just want to try something to see what's up with that weird connection counter bug [14:57] _announcer: Twitter: "node.js be helpful when developing this app! http://bit.ly/cj4LwO" [ja] -- 本城 博昭. http://twitter.com/honjo2/status/3099015222661120 [14:57] bnoordhuis: stride: somewhat yes [14:57] bnoordhuis: ex. length=200 is 2 bytes [14:58] captain_morgan has joined the channel [14:58] micheil: bnoordhuis: uhh, how could you do that in raw JS [14:58] bnoordhuis: micheil: like that really [14:58] bnoordhuis: principle is the same [14:58] micheil: v8: 100 & 0x7f [14:58] v8bot: micheil: 100 [14:58] christophsturm has joined the channel [14:58] micheil: :/ [14:59] figital has joined the channel [14:59] bnoordhuis: v8: 200 & 0x7f [14:59] v8bot: bnoordhuis: 72 [14:59] micheil: what's p[]? [14:59] bnoordhuis: tada! [14:59] micheil: bnoordhuis: hmm.. [14:59] bnoordhuis: array of incoming data [14:59] micheil: oh [14:59] stride: bnoordhuis: hm. is there a popular udp/tcp based protocol that uses RLE? I just remembered that I used RLE in a project last year but I can't figure out what it was [14:59] micheil: stride: RLE? [15:00] bnoordhuis: stride: no idea, really [15:00] bnoordhuis: i've used it for some internal projects [15:00] bnoordhuis: micheil: run-length encoding [15:00] stride: micheil: short for run length encoding [15:00] micheil: ah [15:01] kawaz_air has joined the channel [15:02] faust45 has joined the channel [15:03] stride: ah, just remembered. that was the VLQ stuff used MIDI files [15:05] jamund has joined the channel [15:05] rossi_j has joined the channel [15:07] jchris has joined the channel [15:08] Nohryb has joined the channel [15:08] daniellindsley has joined the channel [15:08] tlrobinson_ has joined the channel [15:09] Me1000 has joined the channel [15:10] micheil: bnoordhuis: okay, so, if I go with RLE for the length. [15:11] bnoordhuis: micheil: yes? [15:11] micheil: then in order to parse the incoming data, assuming start of frame state [15:11] micheil: I'd get the first byte store that as frame-type [15:11] micheil: then I'd do a &0x80 with the second byte [15:12] bnoordhuis: no, not quite [15:12] bnoordhuis: you and the first byte with 0x7f (127) [15:12] _announcer: Twitter: "trying out node.js, pretty fun stuff #nodejs" -- craigcoles. http://twitter.com/craigcoles/status/3102809507504130 [15:12] bnoordhuis: that gives you its value [15:12] micheil: okay' [15:12] micheil: then if that byte is > 0x7f, then I do something else? [15:12] bnoordhuis: then check if the high bit is set -> and with 0x80 (128) [15:13] bnoordhuis: if it is, you also need to parse the next byte [15:13] bnoordhuis: etc. [15:13] bnoordhuis: yes [15:13] bnoordhuis: by the way, there are two bugs in my example [15:13] micheil: :/ [15:13] bnoordhuis: the minor one: i forgot to bump i [15:14] bnoordhuis: the major one: it's not endian-safe [15:14] micheil: endian-safe? [15:14] micheil: :S [15:14] stride: it uses the high bit so the bit order is relevant [15:14] johngbrooks has joined the channel [15:14] bnoordhuis: it would produce different results on big-endian machines than little-endian [15:14] bnoordhuis: it's because of the |= [15:15] bnoordhuis: i should have written something like size *= (p[i] & 0x7f) * (i * 256) [15:15] micheil: okay.. explain? [15:16] _announcer: Twitter: "@seacreature hopefully the newsletter will be a model for experts and authors. How about getting someone to start a node.js newsletter? :P" -- Adam J Wolf. http://twitter.com/adamjwolf/status/3103748947709952 [15:16] bnoordhuis: micheil: you know what endianness is? [15:16] micheil: not overly [15:16] bnoordhuis: okay, in short: machines can store integers in two ways [15:16] tylerstalder has left the channel [15:16] bnoordhuis: little endian and big endian [15:17] bnoordhuis: big-endian: let x = 0x1234 then the layout in memory is 12 34 [15:17] zemanel has joined the channel [15:17] bnoordhuis: little-endian: the opposite, 0x1234 is 34 12 [15:18] Anti-X: in short: which byte is stored first.. big: most significant, little: least significant [15:18] kuatto has joined the channel [15:18] _announcer: Twitter: "Want to contribute to node.js but don't know JS? You could write C++ modules: http://bit.ly/dmRmq5" -- David Coallier. http://twitter.com/davidcoallier/status/3104362243039232 [15:18] Anti-X: does intel mac still use little endian? [15:18] bnoordhuis: Anti-X: yes [15:18] davidc_: That bot is fast. [15:18] bnoordhuis: used to be big-endian [15:19] jetienne: davidc_: it is on websocket [15:19] jetienne: davidc_: on stream api i meant [15:19] bnoordhuis: micheil: with a bitwise or, you simply put the bits in their place [15:19] davidc_: Ah right [15:19] bnoordhuis: thus you'll get different results depending on endianness [15:19] jetienne: davidc_: http://streamie.org for a client on stream api + websocket :) [15:20] sclaflin has joined the channel [15:20] davidc_: ;) [15:20] JohnDav has joined the channel [15:20] herbySk: bnoordhuis: are you talking about non-js code? because in js, there are no integers, no need to bother with things like endianness [15:21] softdrink has joined the channel [15:21] bnoordhuis: herbySk: scroll up a little, we're talking about data that is coming off the wire and needs to be converted back into native types [15:21] herbySk: aha, well, yes, then [15:22] _announcer: Twitter: "@ Hhmmss unless you are going to compete seriously with facebook or twitter in production will not have problems with # nodejs" [es] -- Julián Romero. http://twitter.com/madmw/status/3105337682952192 [15:24] _announcer: Twitter: "perl's IO:: socket were node.js with clients to make FLASH the case in which one is appropriate? better understand the treatment of Japanese node.js ('・ ω ・ `)" [ja] -- Tofu8500うんこ. http://twitter.com/LifesABath/status/3105831356735489 [15:24] _announcer: Twitter: "@ Hhmmss nodejs yours with a solution looking for problems or have a real case that fits the architecture of node? # Curious" [es] -- Julián Romero. http://twitter.com/madmw/status/3105853951447040 [15:25] _announcer: Twitter: "is wondering how this engine would perform in RingoJS rather than Node.js, considering the reliance on garbage collection #fullfrontalconf" -- Timbo. http://twitter.com/nefarioustim/status/3106122005225473 [15:25] micheil: herbySk: yeah, wire data, so while lengths may be just numbers in JS, they need to be converted [15:26] _announcer: Twitter: "@HartMichael have you messed with node.js much?" -- Adam Tootle. http://twitter.com/adamtootle/status/3106251462418433 [15:26] _announcer: Twitter: "What’s the best practice for generating identifiable errors in #nodejs? node itself uses the errno prop, but that doesn’t scale." -- Tobie Langel. http://twitter.com/tobie/status/3106328402722816 [15:27] herbySk: micheil: but he was talking about utf-8 like scheme, and there, endianness does not play any role (one of the thing utf-8 is great for; it's elements are bytes) [15:27] sivy has joined the channel [15:27] eee_c has joined the channel [15:27] bnoordhuis: micheil: proper RLE needs a little more love and understanding than my example, i'll whip up something proper [15:28] micheil: bnoordhuis: okay I'm just trying to figure out how to represent this in that wiki page [15:28] bradleymeck has joined the channel [15:29] stride: bnoordhuis: I just did some poking around in my old codes. just so we don't confuse terms here. you mean variable length encoding for integers (opposed to RLE compression), right? [15:30] stride: meh. wikipedia is the suck when it comes to this things.. http://en.wikipedia.org/wiki/Variable-length_quantity is what I mean [15:33] eee_c1 has joined the channel [15:36] ceej has joined the channel [15:39] ben_alman has joined the channel [15:39] _announcer: Twitter: "I require node.js of Structured What does moving in?" [ja] -- syuta.nakamura. http://twitter.com/syuta/status/3109650715119616 [15:39] jashkenas has joined the channel [15:39] zemanel has joined the channel [15:41] jashkenas: quick question ... does anyone know if it's at all possible to fix the DontEnum bug in IE, even in theory? https://developer.mozilla.org/en/ECMAScript_DontEnum_attribute#JScript_DontEnum_Bug [15:41] jashkenas: I was under the impression that there was no way to fix it, other than abandoning JS objects for arbitrary hashes (which are fortunately rare enough) [15:42] _announcer: Twitter: "node-usb now supports complete scanning of USB bus tree (including interface and endpoint configuration). #node-usb #node.js #libusb-1.0" -- Schakko. http://twitter.com/schakko/status/3110482550460416 [15:44] rwaldron has joined the channel [15:44] tj has joined the channel [15:44] micheil: oh hai tj [15:44] tj: hey hey [15:44] micheil: sup? [15:44] drudge: what's crackin [15:45] tj: not to much :D grabbing my coffee haha brb [15:45] bradleymeck: jashkenas to my knowledge, no [15:46] jetienne: 0.3.0 is marked dev/unstable. is that so unstable ? [15:46] tj: drudge: ps linkinus seems to be a bit of a memory hog lately :( might be the ~15 active channels [15:46] tj: not sure [15:46] jashkenas: bradleymeck: thanks. [15:46] drudge: tj: yeah we've seen increased usage, we're working on 2.2 update, big cpu/memory fixes [15:46] tj: drudge: awesome! [15:47] drudge: i'll let you know when we get a public beta out [15:47] tanepiper: man, having to rip out one module and replace it with another sucks D: [15:48] tj: drudge: sounds good man thanks [15:48] dysinger has joined the channel [15:48] drudge: tj: our express+mongoose ad platform is working out great :) thanks for all your hard work [15:49] tj: drudge: np! new mongoose soon :D [15:49] jchris has joined the channel [15:49] jchris has joined the channel [15:49] drudge: yeah i've been following the 1.0 branch, looks like great stuff [15:50] mwilliams_ has joined the channel [15:50] micheil: jetienne: pretty much [15:50] _announcer: Twitter: "Enjoyed @pbakaus 's talk on JS game engines, wondering what he was going to say about node.js - will the slides be online? #fullfrontalconf" -- Nikki. http://twitter.com/nicolahibbert/status/3112395073388545 [15:51] jashkenas has left the channel [15:51] _announcer: Twitter: "JavaSsrirt Server: get acquainted with Node.JS: Outsiders, notorious PHP! Down with Java ... http://goo.gl/fb/Bv6eW" [ru] -- XNTeam. http://twitter.com/XNTeam/status/3112675148038144 [15:52] c4milo has joined the channel [15:54] aliem has joined the channel [15:56] boaz has joined the channel [15:57] micheil: bnoordhuis: so, how should I go about representing that RLE length feild? [15:57] Me1000 has joined the channel [15:57] bnoordhuis: micheil: as a 1 to n field [15:57] bnoordhuis: if you aim for simplicity, you could just go with a fixed-width 64 bit field [15:58] micheil: hmm.. [16:00] mbrochh has joined the channel [16:01] _announcer: Twitter: "@pbakaus mention of sharing js code/logic w/ svr and cli using nodejs at #fullfrontalconf has given me a whole bunch of ideas for use cases" -- Paul Graham. http://twitter.com/grazanaut/status/3115048004227073 [16:02] dmcquay has joined the channel [16:03] ryah_: anyone in london who wants to have free food monday night? [16:03] eee_c has joined the channel [16:03] micheil: ryah_: lolwat. [16:03] micheil: that sounds so random [16:03] ryah_: i have a ticket to http://www.thenetawards.com/ [16:04] micheil: oh, and you're not terribly interested in going to it? [16:04] ryah_: well -it's in london [16:04] micheil: good point [16:05] tristanoneil has joined the channel [16:07] ryah_: anyway - email me if you're in london and free monday. [16:07] ryah_: ACTION away [16:07] tristanoneil: It doesn't seem like my session variables are being stored in between assert.response requests with Expresso. Does anyone know if I have to do anything special so my sessions are saved while testing? I'm using MemoryStore for testing. [16:07] sonnym has joined the channel [16:07] captain_morgan has joined the channel [16:07] eee_c has joined the channel [16:07] robotarm_ has joined the channel [16:08] tj: tristanoneil: you need to handle session cookies within the tests [16:08] tj: its a PITA, just warning you :p [16:08] tj: session support is not integrated within assert.response [16:08] tj: but im sure we could whip something up [16:08] tj: optional of course [16:09] tj: but I use expresso for unit tests only really [16:09] tristanoneil: hmm alright so basically you just have to store the cookies in the headers of each assert.response? [16:10] tj: { Cookie: 'connect.sid=123123' } etc [16:11] tj: we leave acceptance testing to soda. if you abstract your components well enough and dont have bloated routes it shouldnt be hard to test them [16:11] bradleymeck: tj i have a client side cookie jar implementation if you need that [16:12] igorgue has joined the channel [16:12] tj: bradleymeck: ya might be helpful down the road [16:12] tristanoneil: tj: yea I've looked into soda but it's nice that you don't have to run a selenium server with expresso [16:12] tj: tristanoneil: for sure [16:13] bradleymeck: its at https://github.com/bmeck/node-cookiejar , not sure if the connect stuff is up to date, and the connect stuff would default to server side anywho [16:13] tristanoneil: tj: alright I'll try adding the cookies into my headers, thanks for the advice. though it would be VERY nice if cookie handling was built into expresso, you know, if you're looking to add features. [16:15] tj: possibly lol, I dunno test frameworks are pretty boring IMO so I dont really add anything I dont personally need [16:15] ehaas has joined the channel [16:15] tj: testing routes with a framework like this is pretty sloppy [16:15] tj: and somewhat useless [16:16] tj: nice for a sanity check but testing every permutation of request possible, good luck :p [16:16] tristanoneil: tj: agreed I'm just trying to right very simple acceptance tests [16:17] rubenfonseca has joined the channel [16:17] ajpiano has joined the channel [16:17] tj: tests are nothing more than a sanity check, even our like 10 min soda tests dont nearly cover everything [16:17] _announcer: Twitter: "giving @creationix’s step (https://github.com/creationix/step) a whirl — liking it. node.js really does need something like it built-in" -- rentzsch. http://twitter.com/rentzsch/status/3119203292811265 [16:17] tj: its not possible [16:17] rubenfonseca: hi! I'm trying to do var f = eval("function() { … }"); but I always get SyntaxError on (, any hint? [16:17] RevoOf has joined the channel [16:17] bradleymeck: anonymous function is not allowed at top scope [16:18] micheil: ACTION doens't want to know why you're doing eval.. [16:18] bradleymeck: Function(...) > eval(...) [16:18] rubenfonseca: imagine I want a user to supply a function (javascript) to be run latter [16:18] rubenfonseca: (i know it's evil) [16:18] dnolen has joined the channel [16:18] bradleymeck: use Function instead of eval pls [16:18] bradleymeck: safer [16:18] micheil: that sounds super dangerous.. [16:19] rubenfonseca: I know [16:19] micheil: v8: new Function("function(){ return true; }") [16:19] v8bot: micheil: SyntaxError: Unexpected token ( [16:19] bradleymeck: i love Function it gets seriously pissed of if you try to use a variable not in its argument list [16:19] rubenfonseca: ok didn't know about the Function argument [16:19] tristanoneil has left the channel [16:19] withanx has left the channel [16:19] bradleymeck: you still cant have anonymous functions acting like a statement [16:19] Anti-X: v8: var f = new Function("return true"); f() [16:19] v8bot: Anti-X: true [16:19] Anti-X: you just supply the body [16:20] bradleymeck: and dont use new (ie ftw) [16:20] rubenfonseca: ok, wil try [16:20] yeevgen has joined the channel [16:20] bradleymeck: v8: var f = Function("return function (){}")() [16:20] v8bot: bradleymeck: undefined [16:20] bradleymeck: doh, forgot to add f, bleh [16:21] micheil: v8: Function("return function (){return true;}")() [16:21] v8bot: micheil: function (){return true;} [16:21] Anti-X: v8: var f = Function("return function (){}")(); f() [16:21] v8bot: Anti-X: undefined [16:21] jvolkman-work: does that bot protect against loops? [16:21] Anti-X: it timeouts [16:21] micheil: v8: while(true){} [16:21] bradleymeck: and memuse and stackoverflow... [16:21] Anti-X: v8: while(1){} [16:21] v8bot: Anti-X: Error: Timeout [16:21] v8bot: micheil: Error: Timeout [16:21] daniellindsley has joined the channel [16:21] lmorchard: v8bot: 10 print "I am awesome"; 20 goto 10 [16:21] v8bot: lmorchard: Use v8: to evaluate code or "`v commands" for a list of v8bot commands. [16:21] lmorchard: :) [16:21] jvolkman-work: does it launch a new process for each request? [16:22] _announcer: Twitter: "What is the best options to run nodejs scripts in a production server?" -- Javier Loriente. http://twitter.com/JavierLoriente/status/3120366981484544 [16:22] bnoordhuis: v8: function f(a, b) { return f(a + a, b + b); } f('a', 'b'); [16:22] v8bot: bnoordhuis: [16:22] micheil: lolwhat? [16:22] danoyoung has joined the channel [16:23] tj- has joined the channel [16:23] Anti-X: v8bot said 'bah' [16:23] Anti-X: with no words [16:24] Anti-X: identity crisis? [16:24] EyePulp has joined the channel [16:25] tprice: mybe a bit [16:26] ajpiano has joined the channel [16:27] sprout has joined the channel [16:30] _announcer: Twitter: "Node.js: Building a Simple Web Service http://bit.ly/aGWvBT" -- Timothy Whalin. http://twitter.com/TimothyWhalin/status/3122371422593024 [16:34] tony_ has joined the channel [16:34] _announcer: Twitter: "Played with node.js. I forgot how neat Self is." -- Benjamin Stiglitz. http://twitter.com/benstiglitz/status/3123460263903232 [16:35] c4milo has left the channel [16:36] daniellindsley has joined the channel [16:38] blaines has joined the channel [16:40] jetienne: q. is there a good logging layer library ? [16:40] blaines has joined the channel [16:41] micheil: not really [16:41] jetienne: prout [16:41] jetienne: my horse for a node.lib [16:41] Utkarsh has joined the channel [16:41] zemanel_ has joined the channel [16:42] blaines has joined the channel [16:43] blaines has joined the channel [16:44] kjeldahl has joined the channel [16:44] hornbeck has joined the channel [16:45] blaines has joined the channel [16:46] blaines has joined the channel [16:48] blaines has joined the channel [16:49] BillyBreen has joined the channel [16:49] blaines has joined the channel [16:49] erock has joined the channel [16:51] blaines has joined the channel [16:52] blaines has joined the channel [16:53] c4milo has joined the channel [16:56] fgnass has joined the channel [16:57] _announcer: Twitter: "@fridgebuzz Let the node.js people learn about this the hard way. ;-)" -- Edward Ribeiro. http://twitter.com/edward_ribeiro/status/3129362756927488 [16:59] jetienne: socket.io glitch, on server this is on("connection) but on client this is on("connect") :) [17:00] matt_c has joined the channel [17:01] Anti-X: nothing wrong with that [17:01] Anti-X: a connection is one of many [17:02] bradleymeck: i think a universal name between would be nice though [17:02] stephank has joined the channel [17:06] xla has joined the channel [17:06] tapwater has joined the channel [17:07] dgathright has joined the channel [17:08] gf3: gah, what's up with throwing SyntaxErrors in node-repl [17:08] gf3: makes it hard to debug when stuff doesn't work :( [17:08] gf3: [17:09] Ari-Ugwu has joined the channel [17:10] atmos has joined the channel [17:10] bartt has joined the channel [17:10] jetienne: repl is grumble [17:10] _announcer: Twitter: "Shortly thereafter you will be replaced with a small node.js script." -- Carlos Eberhardt. http://twitter.com/carloseberhardt/status/3132586209583105 [17:10] jetienne: jquery.post is using "post" http method on chrome BUT "options" on firefox [17:11] jetienne: computers hate me [17:11] yenz: uh... options? [17:11] bradleymeck: yay! for automagic stuff when you use a query parameter! [17:12] bradleymeck: gf3, i agree and we really need a .error [17:12] jetienne: yenz: yep this is a http method, believe it or not :) http://tools.ietf.org/html/rfc2616#page-52 [17:12] _announcer: Twitter: "Experimenting with CoffeeScript and Node.js. Enjoying it so far." -- Richard Lawrence. http://twitter.com/rslawrence/status/3132990834085888 [17:12] keyvan has joined the channel [17:12] gf3: bradleymeck: indeed :( [17:12] yenz: jetienne: huh, you learn something every day. thanks :) [17:13] atmos: is anyone using the httpclient library for a lot of traffic ? [17:13] bradleymeck: and this is why i tell people dont use libraries for everything [17:13] justinlilly has joined the channel [17:13] fgnass has joined the channel [17:13] bradleymeck: atmos, we had a crawler a while back, but forget who did it [17:13] Anti-X: i think options is one of the http methods that are 'required', yet most servers blatantly ignore it [17:13] atmos: https://gist.github.com/2ece12712008b464ade8 [17:13] marshall_law has joined the channel [17:13] atmos: bradleymeck: did you ever get parse errors in your on data callbacks ? [17:14] mwilliams_ has joined the channel [17:14] atmos: i can't keep a process running more than 5-10 minutes [17:14] figital has joined the channel [17:15] ice799 has joined the channel [17:15] bradleymeck: atmos i never did, i know there is one in ssl, as well as some obscure thing that can happen with improper content-length [17:15] EyePulp has joined the channel [17:16] atmos: bradleymeck: i've wrapped the entry http creation/call/callback in a try/catch and can't seem to suppress that error :\ [17:16] EyePulp has joined the channel [17:17] bradleymeck: its not happening in that frame of execution [17:17] bradleymeck: its happening before the request is full formed unfortunately, mikeal about? [17:18] fictorial has joined the channel [17:19] bengl has joined the channel [17:19] atmos: bradleymeck: yeah that's the way it looks [17:19] atmos: if it's hitting the onData callback I'd imagine it had made the request htough [17:20] bradleymeck: well lets see what that line is, what version of node you on? [17:20] atmos: 2.4 [17:20] c4milo has left the channel [17:21] springmeyer has joined the channel [17:22] vhost- has joined the channel [17:22] Pilate has joined the channel [17:23] c4milo has joined the channel [17:23] Pilate has joined the channel [17:24] bradleymeck: mmm it is throwing from a parser error in HTTPParser actually it seems, sec [17:24] ryah_: switching out the entire underbelly of node with writev is rather annoying :) [17:24] ryah_: man. [17:25] atmos: i'm doing 1-2 req/sec and it happens across all machines within 10 minutes :( [17:25] atmos: my process management shit can restart them but it seems silly [17:25] bradleymeck: are you 100% sure you are getting valid http response/requests? [17:26] bradleymeck: because it is in the parser, so it would take me too long to track down manually [17:26] RevoOf: hi. is it possible that NODE_SET_PROTOTYPE_METHOD(template, "jsname", Callback) cant use callbacks from derived classes or should i look for the problem i have in another place? [17:26] atmos: nope, but i can't seem to capture the exception in any form [17:26] atmos: or get info about the request [17:27] bradleymeck: use a packet sniffer if possible and you want to spend the time, would be good to know wth is causing that [17:27] atmos: ... [17:27] bradleymeck: if it is getting invalid http not much node can do about it [17:28] bradleymeck: but would be nice to change that to a place it can be caught, ill work on that in a bit [17:28] JCS0 has joined the channel [17:28] tristanoneil has joined the channel [17:28] atmos: i'll see if strace can help me out [17:28] atmos: fuck a packet sniffer [17:29] siculars has joined the channel [17:29] tristanoneil: tj: Is it possible to return the res object from a assert.response in Expresso? I need to somehow grab the connect.sid from the headers. [17:29] ryah_: the parse error can't be caught? [17:30] bradleymeck: not by user side stuff [17:30] jameshome: anyone have a sense for how fully baked the 1.0 branch of Mongoose is? [17:30] tj: tristanoneil: yeah that is great fun with this async stuff.. you have to nest your tests so that you can utilize the sid if you are not stubbing it out [17:30] ryah_: bradleymeck: hm - that's not so good. [17:31] atmos: ryah_: yeah i wrapped the entire http client code in a try/catch and the process just exits :( [17:31] TomsB has joined the channel [17:31] bradleymeck: https://github.com/ry/node/blob/v0.2.4/lib/http.js#L848-848 , trying to figure out what to put it into [17:31] tristanoneil: oh crap I didn't think of that, that makes sense. [17:31] intacto has joined the channel [17:31] ryah_: atmos: are you doing client.on('error') ? [17:31] atmos: don't think so [17:31] atmos: lemme check [17:31] ryah_: atmos: do that [17:31] ryah_: client.on('error', somecallback) [17:33] sriley_ has joined the channel [17:33] siong1987 has joined the channel [17:34] atmos: word [17:34] atmos: rolling that out, i'll see how it goes [17:34] atmos: sneaking more node into the githubs :) [17:35] silence has joined the channel [17:37] bartt has joined the channel [17:38] Anti-X has joined the channel [17:39] atmos: ryah_: even with an on error callback the process still exits [17:39] mw_ has joined the channel [17:39] ryah_: is the parse error on a response or request? [17:39] dipser has joined the channel [17:40] atmos: all i get to stderr/stdout is https://gist.github.com/2ece12712008b464ade8 [17:40] atmos: oh i put the error on the response [17:40] atmos: i should prolly put the callback on the request [17:41] ryah_: atmos: which verson? [17:41] bradleymeck: 2.4 [17:41] zhesto has joined the channel [17:42] _announcer: Twitter: "My top 5 tech/dev trends worth the hype: nosql (non/post relational), nodejs, github, redis, oauth" -- alexander sicular. http://twitter.com/siculars/status/3140651675815936 [17:43] bradleymeck: ACTION ponders the implications to the pimping business if there becomes a hoauth [17:43] atmos: it won't be good until hoauth2 anyway [17:44] bartt has joined the channel [17:45] ryah_: atmos:hmm [17:45] atmos: pretty sure i'm still getting it :\ [17:45] atmos: i should know in a few more minutes [17:45] atmos: i have error handlers on the request and response now [17:45] fgnass has left the channel [17:46] aconbere has joined the channel [17:46] ryah_: atmos: it would be really good to know what reponse is making that [17:46] ryah_: atmos: so we can reproduce it [17:46] ryah_: and then fix it [17:48] ryah_: atmos: strace would work if you can make it expand the arguments [17:48] ryah_: i think there is a way to do that [17:49] ryah_: -s65000 or something ? :) [17:49] atmos: i'm keeping my fingers crossed for this on error callback :) [17:49] [[zz]] has joined the channel [17:50] ryah_: i thought that didn't work [17:50] jstemmer has joined the channel [17:50] atmos: i've only gotten 1 explosion since i deployed [17:50] atmos: which could be unrelated [17:50] atmos: sometimes it'd take 10 minutes or so, so i need to keep waiting [17:50] aubergine_ has joined the channel [17:51] jakehow has joined the channel [17:51] MikhX has joined the channel [17:52] vhost- has joined the channel [17:53] atmos: yeah, still happening [17:54] atmos: watching strace for 10 minutes will be SOOOOO much fun [17:54] bruse: there is no better way to spend a friday night [17:55] bruse: or day, depenidng on where you are [17:55] bruse: i guess it might even be saturday morning [17:55] ryah_: atmos: just pipe it to a file [17:55] atmos: -o [17:55] _announcer: Twitter: "what is sequoia capital doing with node.js?" -- Joe Damato. http://twitter.com/joedamato/status/3143961648562176 [17:56] CIA-93: node: 03Ryan Dahl 07writev * rdb55527 10/ (lib/http.js lib/net.js): Reset _eof on socket reuse - http://bit.ly/97KlRe [17:56] tlrobinson_ has joined the channel [17:58] Max-Might has joined the channel [17:59] _announcer: Twitter: "Gona get some node.js action on this weekend. Gotta find a use for that ec2 box" -- Kyle. http://twitter.com/ikylethomas/status/3144941882576896 [18:01] tlrobinson_ has joined the channel [18:02] gsmcwhirter has joined the channel [18:03] Pilate has joined the channel [18:03] _announcer: Twitter: "great talk by @pedrogteixeira on the dirty details of Node.js http://bit.ly/9WCKIG congrats pedro!" -- Heitor Ferreira. http://twitter.com/heitorfr/status/3145969218625536 [18:04] splashs has joined the channel [18:04] Pilate has joined the channel [18:10] daniellindsley has joined the channel [18:11] dysinger has joined the channel [18:11] igorgue has joined the channel [18:13] deepthawtz has joined the channel [18:14] noahcampbell has joined the channel [18:14] seanbo has joined the channel [18:15] seanbo: recommendations on hosting for node.js and mongodb app? [18:15] atmos: heroku does em pretty easily [18:15] atmos: i've used express + mongohq there [18:15] ajpiano has joined the channel [18:16] seanbo: it's out of private beta @ heroku? [18:16] path[l] has joined the channel [18:16] _announcer: Twitter: "Want to know what’s new in JavaScript? http://javascriptweekly.com/ #nodejs #jquery" -- Chris Mytton. http://twitter.com/hecticjeff/status/3149100279140352 [18:16] Me1000 has joined the channel [18:16] atmos: i dunno, it wasn't too hard to get access a while ago [18:16] atmos: the downside is they're usually behind on the current stable release of node [18:16] seanbo: ah [18:16] jdalton has joined the channel [18:17] jdalton has left the channel [18:17] tristanoneil has left the channel [18:17] seanbo: i got it set-up at webbynode now [18:17] seanbo: not too bad but don't like re-installing the db [18:18] cagdas has joined the channel [18:18] devinus has joined the channel [18:19] devinus: i wonder if Duff's device works in JS [18:19] gsmcwhirter has joined the channel [18:21] aurynn: does JS have a switch statement? [18:22] aurynn: (read, I think it should work) [18:22] gkatsev: aurynn: it does. [18:23] isaacs: devinus: it does, but it's silly [18:24] gkatsev: foo && foo(); bar && bar(); baz && baz() ftw [18:24] kkaefer: aurynn: it uses break; but you can't use continue; [18:24] _announcer: Twitter: "hum ... let's try #nodejs this WE ! it's looklike so easy ..." -- Franck Ernewein. http://twitter.com/FranckErnewein/status/3151243341991936 [18:24] frodenius: isaacs: what's silly about it? [18:25] jacobolus has joined the channel [18:25] kkaefer: aurynn: in most languages, switch is a loop statement [18:25] isaacs: frodenius: i'm not sure that it's actually faster. [18:25] kkaefer: but in javascript it doesn't behave that way [18:25] gkatsev: it is just a glorified if/elseif/else [18:25] isaacs: frodenius: since javascript's switch isn't a togo [18:25] isaacs: *goto [18:27] frodenius: wait, in what language is switch a loop>? [18:28] SubStack: hashes > switches [18:28] aurynn: so does the Device work? [18:29] gsmcwhirter has joined the channel [18:30] atmos: ryah_: i think i fixed it [18:30] atmos: occasionally i'm getting input where there's no host in the url [18:30] atmos: good ole strace [18:32] _announcer: Twitter: "Node-mysql - A pure node.js client implementing the MySQL protocol - http://su.pr/1M4XeY" -- eBot. http://twitter.com/kicauan/status/3153175758512128 [18:32] rajeshsr has joined the channel [18:33] batasrki has left the channel [18:33] rajeshsr: hi all [18:33] rajeshsr: i just got node.js and ran my first Hello world server.. [18:33] sh1mmer has joined the channel [18:34] rajeshsr: i just want to explore it more. Is there some good docs or some good codes which i can browse and learn more? [18:34] ryah_: atmos: but that's the request you're makiung [18:35] ryah_: line 10 has the response [18:35] ryah_: it looks like it doesn't have a header [18:35] jameshome_ has joined the channel [18:37] jameshome_ has joined the channel [18:38] dguttman has joined the channel [18:38] isaacs: is there a way to set a timeout that *won't* stop the process from exiting? [18:38] isaacs: like, "do this in 10000 seconds, unless you quit, in which case, screw it. [18:39] fangel: "quit" as in "run out of other things to do" or as in "receives a hangup-signal" (ctrl-c) [18:39] isaacs: fangel: run out of other things to do [18:40] isaacs: fangel: here's the use case: i'm reading files to get data, and then shoving them into a cache, so that i don't have to read the file again unnecessarily. [18:40] fangel: hmm.. good question.. but sorry, can't help you - I have no clue then.. :) [18:40] isaacs: but, i also don't want to keep them in cache forever, so i want to say "in 10 minutes, delete this record" [18:40] sechrist has joined the channel [18:40] isaacs: i could of course just timestamp the object, and when i check it, see if it's too old, and if so, kick it out [18:40] atmos: use something with the concept of an expiry? [18:41] isaacs: right [18:41] isaacs: but the idea is that i want to not just not trust the data after a certain time (if I have it, it's valid), but actually *lose* it. [18:41] fangel: so you want to do active cache-expiration (purge it on timeout) as opposed to just refreshing the next time it's requested after it's timed out.. [18:41] isaacs: yeah [18:41] atmos: isaacs: isn't that how expiry in memcache and redis work ? [18:42] isaacs: my concern isn't stale data, it's memory overuse [18:42] atmos: gotcha [18:42] aubergine has joined the channel [18:42] sechrist has joined the channel [18:42] mjr_: Redis has a pretty clever technique to expire old data if its hit the limit. [18:42] mjr_: Just pick 3 keys at random, and then throw away the oldest one. [18:42] atmos: memcache should do the same thing [18:42] atmos: isaacs: i take it you're implementing a cache yourself? [18:43] isaacs: atmos: yeah, it's just a dumb little javascript thing [18:43] _announcer: Twitter: "@jacobrothstein meantime, question: is there a sample Node.js server in Sibilant? I recall seeing one but can't find it. hope memory is real" -- Giles. http://twitter.com/gilesgoatboy/status/3155900764258304 [18:43] isaacs: i'll just use an lru with a max number of keys [18:43] isaacs: screw it. [18:43] atmos: that's prolly the easiest [18:43] isaacs: actually, i probably don't even need the lru [18:43] AAA_awright: That's brilliant [18:44] isaacs: i did write one, though: http://registry.npmjs.org/lru-cache [18:44] deadlyicon has joined the channel [18:46] eee_c has joined the channel [18:46] _announcer: Twitter: "Buzzword Checklist: nosql (mongo db) check; cloud (EC2) check; node.js check. Sometimes it's fun working on new projects :)" -- Andrew M Riley. http://twitter.com/andrewmriley/status/3156710415933440 [18:47] jimt has joined the channel [18:47] tlrobinson_ has joined the channel [18:50] wankdanker has joined the channel [18:51] sechrist has joined the channel [18:51] _announcer: Twitter: "nodejs negative experience http://ow.ly/38XlG . But still I think #NodeJs is very promising technology - gamechanger" -- Eldar Djafarov. http://twitter.com/edjafarov/status/3157887778037760 [18:51] seanbo has joined the channel [18:52] agnat has joined the channel [18:52] themiddleman has joined the channel [18:52] jimt_ has joined the channel [18:53] Utkarsh has joined the channel [18:53] cagdas: hi guys [18:54] cagdas: what is the best practice for node + npm + port 80 work together [18:54] meandi has joined the channel [18:54] rubenfonseca has left the channel [18:54] cagdas: npm does not like root and port 80 want root privileges [18:55] cagdas: and then when I try "sudo node app.js" it cannot find local folder [18:55] c4milo has left the channel [18:57] heavysixer has joined the channel [18:57] dgathright has joined the channel [19:01] CIA-95 has joined the channel [19:01] mikeal has joined the channel [19:04] guitt has joined the channel [19:04] AAA_awright: cagdas: What's the actual error? [19:04] _announcer: Twitter: "Monday HH.js! Register now to Meetup http://meetu.ps/4yzC # # jQuery nodejs html5 # # hamburg" [de] -- Felix Oertel. http://twitter.com/foertel/status/3161225877786624 [19:04] adambeynon has joined the channel [19:05] cagdas: AAA_awright: I guess when I use sudo, the context changes and node cannot find locals fodler [19:05] AAA_awright: the context/ [19:05] AAA_awright: ? [19:06] AAA_awright: I don't think npm has anything to do with running [19:06] hugh4life has joined the channel [19:06] admc has joined the channel [19:07] jpld has joined the channel [19:08] jmar777 has joined the channel [19:08] _announcer: Twitter: "Looking at node.js - good for many users of ajax/comet sites. O'Reilly to launch a book in spring, sample @ http://yhoo.it/a3iXGr" -- ben clayton. http://twitter.com/benclayton/status/3162254971248640 [19:08] cagdas: context = environment vars in shell [19:09] jmar777: Honestly not sure if this is a linux or a node.js question, but using apache benchmark I can't hit a node http server with more than 128 concurrent conncetions [19:09] jmar777: returns saying "apr_socket_recv: Connection reset by peer (104)". is there a way to increase the limit? [19:10] deadlyicon has joined the channel [19:10] isaacs: cagdas: no, $HOME is the same when you're sudo [19:11] _announcer: Twitter: "Nodejs have a reason to exist, but everyone is talking about it for the wrong reasons ... and I love it:)" [pt] -- Reverendo Milfont. http://twitter.com/cmilfont/status/3162913191755776 [19:11] isaacs: cagdas: AAA_awright is right, npm has nothing to do with running. [19:11] _announcer: Twitter: "hello world in node.js and sibilant lisp by @jacobrothstein: http://bit.ly/9MglbL" -- Giles. http://twitter.com/gilesgoatboy/status/3162961308819456 [19:11] sh1m has joined the channel [19:12] malkomalko has joined the channel [19:12] InsDel has joined the channel [19:12] hellp has joined the channel [19:13] _announcer: Twitter: "@ Soh cmilfont it exists to give popularity to js? eh why the node? : P" [pt] -- Herminio Torres. http://twitter.com/herminiotorres/status/3163581356974080 [19:15] cagdas: yes, I know, while running it's not about npm [19:15] cagdas: I'm asking for a best practice actually, not to solve an error [19:15] isaacs: cagdas: so... what's the issue, then? [19:15] cagdas: so, npm doesn't like to be installed as root [19:16] isaacs: no, it hates that [19:16] isaacs: but only because it's unsafe. [19:16] cagdas: it's a very good warning from npm [19:16] Anti-X has joined the channel [19:16] cagdas: yes [19:16] cagdas: so I create a new user [19:16] isaacs: if you're really super extra careful about not installing stuff you don't trust, then it's ok [19:16] cagdas: and install npm with this user [19:16] cagdas: but by using this user I cannot use port 80 [19:17] cagdas: then I try sudo but this time since ENV vars are changed [19:17] cagdas: (I guess) [19:17] cagdas: it cannot find include paths [19:17] tilgovi has joined the channel [19:17] isaacs: cagdas: what's the actual error that you see on your terminal? can you create a gist or something? [19:17] cagdas: let me see [19:18] Booths has joined the channel [19:19] guitt: hello, I believe I found a bug [19:19] guitt: path.join('/tmp/..','.') returns '' [19:20] guitt: instead of / [19:20] guitt: actually, it seems that everytime the answer should be '/', it is '' [19:21] Anti-X: micheil: what about using BSON instead of reinventing binary json packages [19:21] deadlyicon has joined the channel [19:21] isaacs: guitt: fixed in 0.3.x already [19:21] micheil: well, the binary format there is only plaintext utf8 as binary [19:21] micheil: isaacs: thoughts? https://github.com/miksago/ideabin/wiki/Node-Network-Protocol [19:22] rpflo has joined the channel [19:22] Anti-X: it's not utf8 as binary [19:22] micheil: hmm.. should be [19:23] isaacs: micheil: i'm with ry and rbranson [19:23] micheil: it was created via new Buffer('{"test":true}') [19:23] isaacs: micheil: ##,data [19:23] rbranson: uh oh [19:23] micheil: okay [19:23] isaacs: \n [19:23] Anti-X: oh you meant yours [19:23] rbranson: just use plaintext, it makes debugging so much easier [19:23] isaacs: micheil: i don't think the network protocol should have to know what kind of data it is. [19:23] rbranson: and there's almost no cost difference [19:23] Anti-X: debugging is overrated [19:24] isaacs: just a number, a comma, and then the number of bytes, and then \n [19:24] Anti-X: just do it right the first time and you won't have to debug [19:24] skampler has joined the channel [19:24] rbranson: lol [19:24] micheil: isaacs: well, the only reason is generally there'll be utf8 data / json [19:24] rbranson: Anti-X rights perfect codez yo [19:24] _announcer: Twitter: ""Suck on that, PHP!" http://bit.ly/cZo6uS #nodejs" -- Darrell Brogdon. http://twitter.com/DarrellBrogdon/status/3166242206650368 [19:24] rbranson: writes.. [19:24] Anti-X: i do [19:24] Anti-X: to some extent [19:24] isaacs: right [19:24] rbranson: hehe [19:24] micheil: but, in some cases, it'd be useful to send just a new Buffer, instead of json [19:24] AAA_awright_ has joined the channel [19:24] Anti-X: it all comes down to complexity [19:24] Anti-X: if it's simple enough i can almost guarantee no errors [19:24] isaacs: but even if it isn't, why can't you just do write(buffer.length, ",", buffer) [19:25] micheil: because, how does the endpoint know what format that data is in? [19:25] isaacs: there's no rule that the message needs to be plain text. just that it has to be that many bytes. [19:25] rbranson: Anti-X: I find it's faster just to bang things out and let tests / the interpreter find my bugs ;) [19:25] mraleph has joined the channel [19:25] Anti-X: i do the opposite [19:25] isaacs: micheil: oh, i see what you're saying [19:25] rbranson: it's a good way to make sure your tests are legit, too [19:25] Anti-X: sometimes i write hundreds of lines before even testing it [19:25] isaacs: micheil: well, that shouldn't be in the protocol [19:25] isaacs: micheil: it should know by asking the endpoint :) [19:25] rbranson: Anti-X: I do it, but feel bad when I do that :/ [19:26] isaacs: micheil: that's app-specific [19:26] micheil: hmm.. [19:26] _announcer: Twitter: "Via @ gilesgoatboy # HelloWorld and SibilantJS / Node.Js http://is.gd/gYDDR" [sl] -- Craig Stuntz. http://twitter.com/craigstuntz/status/3166732877299712 [19:26] isaacs: micheil: you could of course set up a system where you do nn,type,data [19:26] isaacs: micheil: where the "nn" includes the number of bytes in the type designator [19:26] micheil: nn? [19:26] isaacs: number number number number [19:27] micheil: I'm not sure what you mean by that [19:27] isaacs: 123,text,"Hey, buddy, this is some json text!" [19:27] ericholscher has joined the channel [19:27] micheil: ah [19:27] isaacs: that'd be a valid message [19:27] isaacs: (well, no, cuz it's not 123 bytes, but you get it) [19:27] micheil: 'text,"Hey, buddy, this is some json text!"'.length [19:27] guitt: isaacs: I may be misusing git but git describe says v0.3.0-84-g564a486 [19:27] isaacs: right [19:27] micheil: v8: 'text,"Hey, buddy, this is some json text!"'.length [19:27] v8bot: micheil: 42 [19:27] guitt: which is the current revision [19:27] micheil: so, 41,text,"Hey, buddy, this is some json text!" [19:27] abstractj has joined the channel [19:28] micheil: although, I think something like 41,1,Hey, buddy, this is some json text! [19:28] micheil: would be better maybe [19:28] micheil: not sure [19:28] rbranson: why do you need a type? [19:28] isaacs: micheil: sure, just define your app to use that [19:28] micheil: there also seems interest in having support for ping/pong [19:28] isaacs: but the type shouldn't be defined by the transport protocol [19:28] micheil: rather then hearbearts [19:28] micheil: s/heartbearts/heartbeats [19:28] isaacs: the transport protocol should have *none* of that stuff unless it's absolutely necessary to keep the tcp connection alive [19:29] rbranson: i mean I think you've got 2 layers going on... you've got the message framing, which should be content agnostic and JUST to message framing [19:29] SubStack: yeah types suck [19:29] isaacs: rbranson++ [19:29] v8bot: isaacs has given a beer to rbranson. rbranson now has 1 beers. [19:29] skampler: i'm writing a dns server for node.js [19:29] isaacs: types are great, but the app should define types [19:29] micheil: hmm.. [19:29] micheil: so, something like: [19:29] rbranson: all you're worried about is re-assembling the message in the right order on the other end, and possibly making sure the connection is still alive [19:29] isaacs: 487,walrus,{"tusks":2,"hah!":"bet you didnt' think you'd need walruses in your protocol!"} [19:30] rbranson: forget walrus [19:30] rbranson: whatever exists after the comma is opaque [19:30] isaacs: exactly [19:30] isaacs: app-specific [19:30] isaacs: if you want types, send that in the message. [19:30] Anti-X: heartbeats and pingpong has two different use cases though.. pingpong is when you have a parent/child setup... but when you have lots of equal nodes how do you know who is supposed to ping and pong [19:30] rbranson: you write another layer on top of that to route the types [19:30] isaacs: [19:30] micheil: 36,{"type":"ping","data":1289590204460}' [19:30] rbranson: there you go [19:30] SubStack: yeah, send the ping in the payload [19:30] isaacs: if you start defining types, then you need to have stupid discussions about every kind of type that *isn't* included [19:31] isaacs: that sucks [19:31] Anti-X: conclusion: just do BSON and get it overwith [19:31] isaacs: Anti-X: this format would be fine for bson [19:31] rbranson: i would wager to say it would be useful to build heartbeat in, but as I suggested, a "0," message could do heartbeating [19:31] isaacs: but bson is silly [19:31] isaacs: rbranson: yeah, i think so [19:31] atmos_ has joined the channel [19:31] micheil: that data is just +(new Date) [19:31] rbranson: in fact, I like my idea so much, I might code it myself, even if you don't micheil :D [19:32] micheil: rbranson: haha, okay [19:32] isaacs: micheil: 0, is about as useful as {"type":"ping","data",:Date.now()} [19:32] ossareh has joined the channel [19:32] cloudhead has joined the channel [19:32] guitt: isaacs: maybe you're are refering to changes made to fs.realpath(), I'm talking about path.join() and path.normalize() [19:32] micheil: rbranson: I'm just saying we should get something we all generally agree on [19:32] rbranson: micheil: I think agreement will be traction [19:32] rbranson: micheil: people will use it if it works for them [19:32] rbranson: it is cathedral vs bazaar [19:33] micheil: k [19:33] Anti-X: make one of each! [19:33] rbranson: eventually there will be some concensus on what's working best [19:33] SubStack: yeah fuck agreement [19:34] rbranson: it's easy enough to code something up and see if it works [19:34] SubStack: democracy doesn't work [19:34] Anti-X: democracy works if you pretend to be a democracy [19:34] Anti-X: hee hee [19:34] SubStack: ok how about: democracy doesn't scale [19:34] Anti-X: how so? [19:34] SubStack: more people == more discord [19:35] rbranson: yeah eventually it ends up in gridlock [19:35] rbranson: consensus is what builds things and brings about progress [19:35] rbranson: bring on the borg ;) [19:35] Anti-X: well there can be clashes even with just two or three people [19:35] micheil: rbranson: let's just build something then. [19:36] rbranson: micheil: I'm down [19:36] Anti-X: so it does scale, in that it doesn't matter how many people there are :P [19:36] SubStack: build first, questions later [19:36] SubStack: if it's easy enough to use I'll drop it into dnode [19:36] isaacs: guitt: no, i'm talking about path.join(). [19:36] Anti-X: your podcast will be obsolete by the time it's out [19:36] Anti-X: micheil [19:36] Anti-X: :P [19:36] micheil: ? [19:36] zemanel has joined the channel [19:36] micheil: we're actually recording a new episode today [19:37] Anti-X: is ep2 out? [19:37] micheil: and I'm skipping the last one we recorded [19:37] guitt: isaacs: path.join('/tmp', '..') returns '' for me [19:37] Anti-X: oh ok [19:37] micheil: so todays recording will be ep2 [19:37] Anti-X: because it's obsolete? [19:37] Anti-X: :p [19:37] micheil: yeah, pretty much [19:38] aubergine has joined the channel [19:39] guitt: isaacs: normalizeArray() returns [''] when at the root, and then normalize() does [''].join('/') which results in '' [19:39] _announcer: Twitter: "Hm. js-opts looks like an awesome Node.js library (http://bit.ly/aI8aE2) but it's on BitBucket and I have no idea what do with that." -- Tom. http://twitter.com/sh1mmer/status/3169920607064064 [19:39] SubStack: js-opts sucks... probably [19:39] SubStack: Yep, it sucks. Verified. [19:39] cadorn has joined the channel [19:40] isaacs: guitt: ah, i fixed it on my local machine. patch not merged into ry/master. [19:40] isaacs: guitt: just rebuilt to verify [19:40] skampler: what's wrong with c-ares in node.js? [19:40] guitt: ok [19:40] isaacs: guitt: i'll poke at ryah_ about it. [19:40] guitt: isaacs: so no need for me to do anything then ? [19:41] isaacs: guitt: if you want, you can dig up the thread on nodejs-dev@googlegroups.com and whine about it ;) [19:41] guitt: isaacs: cause I corrected it but if you fixed it i'll wait for your patch [19:42] isaacs: guitt: we had a pretty thorough round of bikeshedding,and i added a ton of tests. [19:42] Anti-X: SubStack, what sucks about it, exactly? [19:42] Anti-X: i thought it looked nice [19:42] SubStack: I hate writing optstrings and option structures [19:42] SubStack: it's so unncessary [19:43] SubStack: http://github.com/substack/node-optimist [19:43] guitt: isaacs: ok sorry then [19:43] jrockjiggz has joined the channel [19:44] Anti-X: nice [19:44] isaacs: guitt: if you wanna check out the patch, it's at https://github.com/isaacs/node/commit/ea21f20db0d2ebb4d5b0d47832e6d5c3c68b1065 [19:44] gsmcwhirter: is there a good javadoc-like code-to-documentation parser for javascript? [19:45] Anti-X: ewww [19:45] Anti-X: javadoc [19:45] davidc_ has joined the channel [19:45] gsmcwhirter: well, not that exactly, but something that takes comments and generates html =) [19:45] guitt: isaacs: thanks, I don't mean to debate on the bikeshed, it's just that I didn't see your repo [19:45] isaacs: guitt: no problem :) [19:46] Anti-X: gsmcwhirter, write one and tell us about it, and make it better than javadoc ;) [19:46] isaacs: guitt: "hey, there's a problem I'll fix it!" <-- i actually really *want* node people to be thinking this. [19:46] isaacs: code > words [19:46] skampler: isaacs: true [19:46] guitt: isaacs: nice to hear, that's what I'll try to do [19:47] aho has joined the channel [19:47] isaacs: :D [19:48] micheil: gsmcwhirter: code documentation is no substitution for real documentation [19:48] Me1000 has joined the channel [19:48] SubStack: micheil: it's better than nothing [19:49] Anti-X: not always [19:49] micheil: yeah, but why both trying to find something to document code when you have things like doctool are your disposal.. [19:49] micheil: (which still need to be made into an NPM module) [19:49] tj: I prefer source to be documented [19:49] seanbo: Anyone know how to fix: "Error: ENOENT, No such file or directory '//views/games_index.haml'" [19:49] Anti-X: micheil, we'll wait for you to do that, since you're on a roll [19:49] seanbo: using Express [19:50] seanbo: It works locally, but on webbynode puts a // [19:50] tj: seanbo: so you have app.set('views [19:50] tj: app.set('views', __dirname + '/views') ? [19:50] SubStack: micheil: does doctool handle documenting callbacks nicely too? [19:50] seanbo: nope [19:50] seanbo: thanks tj [19:50] SubStack: and callbacks provided to callbacks [19:51] davidc_: Oh sounds like express [19:51] tj: davidc_: what? [19:51] gsmcwhirter: micheil, doctool? (I am unfamiliar) [19:51] davidc_: No sorry just saw __dirname, wrote then looked up a few lines :) [19:51] daniellindsley has left the channel [19:51] micheil: see the node repo [19:51] micheil: tools/doctool [19:51] gsmcwhirter: ok. thanks [19:52] justin___ has joined the channel [19:55] zemanel_ has joined the channel [19:56] randy has joined the channel [19:56] bartt: isaacs: npm publish warns I'm sending authorization over insecure channel. How can I fix that? [19:56] isaacs: bartt: fix node's https client [19:56] saikat has joined the channel [19:56] bartt: LOL [19:56] isaacs: inorite [19:56] Anti-X: laugh out node [19:57] isaacs: bartt: that warning stays, so that the node world can collectively rejoice when the http streams lands. [19:57] Anti-X: i feel dirty, i'm installing safari for windows [19:57] drudge has joined the channel [19:57] SubStack: goodness, does everyone pronounce SQL as 'sequel' now? [19:57] SubStack: ES QUEUE ELL ftw [19:57] Anti-X: sequel is easier [19:57] Anti-X: sql is 3 syllables, sequel is 2 [19:57] rbranson: does it fucking matter? [19:57] _announcer: Twitter: "Good introduction of #nodejs by @gerad. Selected slides: http://goo.gl/PadZh. Full presentation: http://goo.gl/UfEBF." -- Alessandro Vernet. http://twitter.com/avernet/status/3174684371722240 [19:57] rbranson: I say both [19:58] rbranson: just to throw people off [19:58] SubStack: likewise for calling URLs 'earls' instead of U.R.Ls [19:58] rbranson: in the same sentence [19:58] deadlyicon has joined the channel [19:58] Anti-X: was gonna ask that [19:58] SubStack: rbranson: awesome [19:58] Anti-X: "i use sql and sequel a lot" [19:58] rbranson: haha [19:58] rbranson: "So I was thinking we could setup some sequel statements for the SQL database" [19:58] micheil: bbl. [19:58] SubStack: structured query language [19:59] SubStack: uniform resource locator [19:59] Anti-X: yeah say that instead [19:59] SubStack: I could understand saying this stuff if there were some vowels in there [19:59] Anti-X: people will look at you like you're old [19:59] SubStack: I guess URL has a vowel but SQL doesn't [19:59] Anti-X: well it's like saying jason instead of jay-ess-oh-enn [20:00] SubStack: it's not like NASA or LASER though [20:00] jpld: do people even use SQL anymore, let alone worry about pronouncing it? [20:00] Anti-X: i always wondered what the bson equivalent to jason is [20:00] stride: laser! [20:00] Anti-X: bison? [20:00] rbranson: SQL started out as SEQUEL, so that's where it came from [20:00] _announcer: Twitter: "Instaling node.js v.0.3.0 (unstable) to play with some cool, new modules. #livinontheedge #nerdalert" -- Clint Andrew Hall. http://twitter.com/clintandrewhall/status/3175295074967552 [20:00] rbranson: even though SQL != SEQUEL [20:00] SubStack: jpld: sadly yes [20:00] jpld: i kid (0: [20:00] Anti-X: sadly? [20:01] jpld: nothing to see here, i was only kidding. [20:01] Anti-X: sql is math based and nosql is noob based. [20:03] davidc_: haha :) [20:03] SubStack: now that couch is distancing itself from 'NoSQL' I recommend this replacement: 'FuckSQL' [20:04] davidc_: Anti-X, so NoSQL isn't math based? I wonder how that yahoo engineer found the latest digit of Pi [20:04] gkatsev: SubStack: but do you really want to touch sql? especially with the special man bits? [20:04] _announcer: Twitter: "Want to hang with fellow #nodejs travellers? Get thee to Node Camp San Francisco: http://bit.ly/aqwVP2 Space is limited, so act now!" -- Joyent. http://twitter.com/joyent/status/3176423095279616 [20:04] gkatsev: ACTION is 8 years old [20:05] deadlyicon has joined the channel [20:05] Anti-X: want some candy? [20:05] Anti-X: come inside my van [20:05] gkatsev: lol [20:05] gkatsev: you aren't eric schmidt [20:05] Anti-X: no i'm the sql troll [20:05] Anti-X: and i have a surprise for you in my pocket [20:06] gkatsev: some company ran a video in times square hinting that eric schmidt was all creepy and stuff [20:06] ericholscher has left the channel [20:06] Anti-X: strange that a guy named eric just left [20:06] gkatsev: haha [20:06] gkatsev: 'you have to pay the toll to get into the boy's hole' [20:06] gkatsev: 'no, it's boy's soul' [20:07] gkatsev: it's always sunny in philadelphia is great [20:07] Anti-X: ooh, didn't notice this before.. google loads the pages from the search results and displays them on mouseover [20:08] _announcer: Twitter: "@ Cmilfont it is ... I served it at RubyConf. Node.js and solution for any particular purpose and non-p all." [pt] -- Daniel Lopes. http://twitter.com/danielvlopes/status/3177285662277632 [20:08] Anti-X: including an orange box around the paragraph where the search matched [20:08] Anti-X: in chrome anyways [20:09] gkatsev: Anti-X: yeah, they just added that. You need to click on the text of the result or down, then right arrow [20:09] Anti-X: ah you need to select one of the boxes first to activate it [20:09] gkatsev: yeah [20:09] eee_c has joined the channel [20:09] Anti-X: but you only need to click once [20:09] gkatsev: either click the text of a result or click the magnifying glass [20:09] Anti-X: if you mouseover another hit it just loads it [20:09] gkatsev: yep [20:09] bpot_ has joined the channel [20:10] gkatsev: it uses google's cache of the site for the thumbnails [20:10] Anti-X: i like how wikipedia is listed before google's employee pages for eric schmidt [20:10] Anti-X: it's like "we trust this source to give you more detailed data than we do" [20:11] cardona507 has joined the channel [20:11] Anti-X: err.. does this mean that wikipedia itself has more trust in google search than google.com? [20:11] sixtus42 has joined the channel [20:12] gkatsev: more links [20:12] intacto has joined the channel [20:12] Anti-X: yeah but it's not only number of links [20:12] Anti-X: it's the trust of the pages that link [20:13] gkatsev: yeah [20:13] gkatsev: idk [20:13] gkatsev: lol [20:13] _announcer: Twitter: "Come to http://camp.nodejs.org/ on 12/14 to learn about Node with @creationix, @izs, @mranney, @pqurena, and me" -- Ryan Dahl. http://twitter.com/ryah/status/3178581446365184 [20:13] Anti-X: node camp! [20:13] Anti-X: is it like fat camp? [20:13] rbranson: haha [20:14] gkatsev: maybe it's like band camp [20:14] rbranson: better [20:14] ryah_: it's more like band camp :) [20:15] _announcer: Twitter: "And this one time, at node camp.... http://camp.nodejs.org/" -- isaacs. http://twitter.com/izs/status/3179024297762817 [20:15] ryah_: oh shit. i left mikeal out of the tweet. [20:15] tylerstalder has joined the channel [20:15] Anti-X: he left anyways so he'll never know [20:15] rbranson: you just cut him deep [20:15] bartt: @zazengo will attend [20:16] isaacs: ryah_: you also misspelled pquerna [20:16] rbranson: hot [20:16] rbranson: at least your name isn't on node.js anymore [20:16] rbranson: so you don't get blamed for that [20:16] ryah_: meh and guillermo [20:16] ryah_: what's his twitter name? [20:16] gkatsev: why is node camp so far away? :( [20:16] Anti-X: rauchg [20:16] rbranson: because nobody exists outside of SF, haven't you heard? ;) [20:17] rbranson: really though, there are a lot of hackers in SF [20:17] jpld: might anyone know if there are any good guidelines posted for deploying node applications? so far i have used heroku, but will need to move elsewhere with more control - guidelines about watchdog daemons, logging, actual deployment workflows… [20:17] ewdafa has joined the channel [20:17] gkatsev: I exist in boston! [20:17] rbranson: so make a node camp Boston [20:17] ewdafa: I exist in Middleearth [20:17] ryah_: Anti-X: thanks [20:17] yenz: i'm but a figment of all your various solipsisms. [20:17] stride: gkatsev: at least you don't need a boat to get there.. :) [20:17] rbranson: don't complain, I live in Memphis, Tennessee... there's no amount of complaining you can do about the lack of hackers in your area :D [20:17] gkatsev: haha [20:18] gkatsev: yeah, at least there are a few meetup thingies here and stuff [20:18] rbranson: I've got IRC, my 2 co-workers, and a hot cup of STFU [20:18] gkatsev: lol [20:18] jvolkman-work: Does node provide any way to deserialize JSON directly out of a Buffer? Or do I have to copy the buffer to a string first? [20:18] softdrink has joined the channel [20:18] gkatsev: can the node camp global tour stop by bosotn? lol [20:18] rbranson: jvolkman will need a message framing protocol [20:18] rbranson: that's a high ticket item right now [20:19] isaacs: you should all come to node camp [20:19] isaacs: go buy a ticket now!! [20:19] rbranson: node.js will have hit the big time when they can charge >$1k for admission... you'll have dudes in suits coming [20:19] gkatsev: isaacs: i will go if you pay for my flight :3 [20:19] gkatsev: to SF from BOS [20:19] tanepiper: :( $50 + flight to SF from scotland + accomidation in december is a bit too much for me :( [20:19] isaacs: gkatsev: i think you may overestimate the strength of that "should"... [20:20] gkatsev: lol [20:20] rbranson: haha [20:20] rbranson: yeah basically anything in december is going to wipe out any out of towners [20:20] isaacs: rbranson: the price is basically just to rule out the lookeeloos [20:20] isaacs: rbranson: people don't take things seriously when they're free [20:20] rbranson: isaacs: $35 is dirt cheap [20:20] rbranson: and I agree [20:20] isaacs: yeah [20:20] isaacs: it's about as cheap as you can make it and still be "real" [20:21] rbranson: OSCON is like fucking $750/day [20:21] sambao21 has joined the channel [20:21] tristanoneil has joined the channel [20:22] pedrobelo has joined the channel [20:22] tristanoneil: Are there any good openid libraries for node yet? [20:22] danslo has joined the channel [20:23] jpld: tristanoneil: doesn't connect-auth do openid? [20:23] sudoer has joined the channel [20:23] jpld: actually, maybe not, OAuth though [20:24] _announcer: Twitter: "and like that, we're all going to http://camp.nodejs.org/" -- Dylan Clendenin. http://twitter.com/deepthawtz/status/3181315595706369 [20:24] tristanoneil: I'm also looking for something a little lighter connect-auth incorporates a lot of different auth libraries. [20:24] gkatsev: go snip-snip on connect-auth? [20:25] tristanoneil: Yes I could do that, I was just wondering if something has already been done. [20:26] sudoer has joined the channel [20:26] mikeal has joined the channel [20:26] _announcer: Twitter: "@rckenned don't you have to use Node.js now or Rails?" -- Tom. http://twitter.com/sh1mmer/status/3181798137798656 [20:26] sudoer has joined the channel [20:27] _announcer: Twitter: "Ahh man! I would love to go to http://camp.nodejs.org/ and I will be in SF but am looking forward to #Mozilla All-Hands slightly more! #Node" -- David Burns. http://twitter.com/AutomatedTester/status/3182092909289473 [20:27] willwhite has left the channel [20:28] zemanel_ has joined the channel [20:28] gkatsev: https://github.com/ry/node/wiki/modules#security [20:28] bpot has joined the channel [20:28] backinnam has joined the channel [20:29] sudoer has joined the channel [20:29] backinnam: if I need to fire an even whenever an objects attribute is changed, can I do that? is there already an event to hook into? [20:30] SubStack: I dunno, $35 would buy a lot of coffee [20:30] SubStack: plus the bart ticket there and back adds another $4 or so [20:30] ewdafa: what's the recommended version of node to use with socket.io? 0.2.4 or 0.3.0? [20:30] splashs has joined the channel [20:30] seanbo has joined the channel [20:31] sudoer has joined the channel [20:31] eee_c has joined the channel [20:31] nikofyodo420 has joined the channel [20:31] sudoer has joined the channel [20:32] _announcer: Twitter: "To use the OS's environment variables node.js http://ff.im/tDVGa" [ko] -- Outsider. http://twitter.com/Outsider__/status/3183294032121857 [20:32] _announcer: Twitter: "@sh1mmer Scala + JAX-RS and Jetty for the infrastructure team…frontend and platform are using Rails and node.js" -- Ryan Kennedy. http://twitter.com/rckenned/status/3183468582273025 [20:32] SubStack: I (or more likely, pkrumins) need to figure out payment crap so we can afford such frivolity [20:33] jpld: ewdafa: i'm using 0.2.4 and it works pretty well [20:33] ewdafa: ok. i'll try that [20:33] ewdafa: thanks [20:34] rbranson: wow, sys.inspect() is a monster [20:34] micheil: yep [20:35] _announcer: Twitter: "There's a node.js Camp (http://camp.nodejs.org) in San Francisco, 14th December 2010. — Can't wait for the upcoming global tour!" -- Raphael Stolt. http://twitter.com/raphaelstolt/status/3184094103994368 [20:35] SubStack: I just use JSON.stringify() or console.dir() anymore [20:35] rbranson: JSON.stringify won't do circulars, so I avoid it for debugging [20:35] hugh4life has joined the channel [20:36] rbranson: circular object graphs are my bread and butter [20:36] tristanoneil has left the channel [20:36] _announcer: Twitter: "Node.js Camp! Dec 14th. Party Time! Excellent! Woowoowoowoo http://bit.ly/adIvF2" -- badnima. http://twitter.com/badnima/status/3184342503264256 [20:36] micheil: hmm, who said anything about a global tour? O.o [20:36] _announcer: Twitter: "this front-end boy is diving into the server side realm. just bought my tix for Node.js Camp SF -- http://www.eventbrite.com/s/235R" -- mundi morgado. http://twitter.com/mundizzle/status/3184416570474496 [20:37] Anti-X: micheil, the website? [20:37] Anti-X: :p [20:37] micheil: oh, haha [20:37] deadlyicon has joined the channel [20:37] micheil: I totally missed that. [20:37] _announcer: Twitter: "@landlessness and will probably end up being written with node.js heh" -- John E. Vincent. http://twitter.com/lusis/status/3184689653219328 [20:37] micheil: okay, this ep. should be easier to mixdown [20:37] micheil: kept it to 30mins [20:38] kawaz_h has joined the channel [20:38] micheil: ACTION will bbl, food. [20:38] Anti-X: do you do it over skype? [20:38] micheil: yes and no [20:38] micheil: just to be able to hear and see each other, we do it by skype [20:38] micheil: but we both have good mics so we each record our own ends [20:39] micheil: and then I mix that together into a single channel [20:39] Anti-X: nice [20:40] micheil: so, that's what gives us the really good audio quality [20:40] micheil: and, uh, it'll probably be released over twitter again [20:41] sriley: backinnam: in mozilla browsers there is a watch method, but for v8 i guess youd have to maybe resort to polling the attribute [20:41] Anti-X: so then it's no problem having guests then, except you'd still need to record that bit, giving the guest a slightly lower quality [20:41] _announcer: Twitter: "Did my node.js camp tweet break twitter? http://www.badnima.com/2010/11/did-my-nodejs-camp-tweet-break-twitter.html" -- badnima. http://twitter.com/badnima/status/3185659871232000 [20:42] micheil: Anti-X: yeah, I can hijack the audio from skype, just means the mixdown is longer [20:42] micheil: if they are in SF, then they might go to mikeal's office to record [20:42] Anti-X: sounds more likely that any guest would be in that area than in oz [20:43] tanepiper: anyone using mongoose? [20:43] micheil: Anti-X: heh, yeah, no guest is likely to be within about 500km's of me./ [20:44] Anti-X: do you live in the desert? [20:44] micheil: sort of. [20:44] micheil: 500km's west of sydney, 450 km's north of melbourne, roughly [20:44] micheil: anyway, bbl, breakfast. [20:45] Anti-X: hillston? [20:45] micheil: not quite. [20:45] Anti-X: when i said desert i was thinking alice springs [20:45] micheil: like I said, it's a rough location [20:45] Anti-X: but sure [20:45] micheil: bbl. [20:45] wilmoore has joined the channel [20:46] javruben has joined the channel [20:49] mjr_ has joined the channel [20:50] mif86 has joined the channel [20:52] davidascher has joined the channel [20:54] bnoordhuis has joined the channel [20:55] prettyrobots has joined the channel [20:56] RevoOf: hi. is there a gtk binding for js that is compatible with node.js (e.g. seed)? [20:58] indexzero has joined the channel [20:58] indexzero: wattup nodejs [20:58] zemanel_ has joined the channel [20:59] RevoOf: wattup indexzero? [21:00] _announcer: Twitter: "@pedrogteixeira Great talk on the #nodejs deep dive! Really enjoyed it (the video feed is cr*p, but found your slides on Github)." -- Jakub Nesetril. http://twitter.com/jakubnesetril/status/3190393550151682 [21:02] softdrink has joined the channel [21:03] papyroma1cer has joined the channel [21:09] davidascher has joined the channel [21:11] _announcer: Twitter: "Say what? http://camp.nodejs.org/ Anyone want to SanFran for Node.js Camp in December?" -- Kevin Gorski. http://twitter.com/kevingorski/status/3193087765512192 [21:11] _announcer: Twitter: "I'm attending Node.js Camp SF -- http://www.eventbrite.com/s/235R" -- Sunnyvale. http://twitter.com/rhyolight/status/3193272637853696 [21:12] jakehow has joined the channel [21:13] _announcer: Twitter: "wish I can attend node.js camp SF. I'd better wait until they have node.js camp around my area." -- Seung-jin Kim. http://twitter.com/seungjin/status/3193580881453056 [21:15] tanepiper: hmm. mongoose seems quite good, but it's a bit poorly documented :( [21:16] ph^ has joined the channel [21:19] derferman has joined the channel [21:19] Ezku\_ has joined the channel [21:20] jchris has joined the channel [21:24] jimmybaker has joined the channel [21:26] xla has joined the channel [21:28] EyePulp: tanepiper: mongoose inherits a lot from the mongo-native driver, and uses a lot of identical lookup syntax to the standard mongo cli [21:28] davidc_: Events can suck it tonight. [21:28] zemanel_ has joined the channel [21:28] _announcer: Twitter: "just wrote a nodejs api around @iancmeyers Person example from our LNL today. thanks @dylanbathurst for the man help" -- Jimmy Jacobson. http://twitter.com/jimmyjacobson/status/3197568498540544 [21:29] jameshome_: speaking of Mongoose, should I be using Master or the 1.0 branch? [21:29] jameshome_: how fully bakded is it? [21:29] jesusabdullah: The outside is crunchy, but the center is gooey [21:29] jesusabdullah: :( [21:29] jameshome_: heh [21:29] tanepiper: EyePulp: hmm, the main issue i'm having is with updating existing object [21:30] tj: dont use 1.0 yet lol [21:30] jameshome_: okay, great thanks [21:30] tj: play with it, but dont expect it to be 100% yet [21:30] tanepiper: i'm using the one in npm [21:30] jameshome_: do you have a sense for how far from an npm push it is? [21:30] jmar777 has left the channel [21:31] tanepiper: i try do update but i get an exception on it that it doesn't exist on the collection object [21:31] jameshome_: 1 mo? 3 mo? [21:31] tj: < a month for sure id say [21:31] jameshome_: oh kickass. [21:31] jameshome_: thanks [21:31] jameshome_: that's all I wanted to know. [21:31] robotarmy has joined the channel [21:32] tanepiper: i'm trying to do something like this with mongoose: https://gist.github.com/14bb244738c9db9ca199 [21:32] wilmoore has joined the channel [21:33] MattJ has joined the channel [21:33] _announcer: Twitter: "nodejs/node-webworker really is pretty darn fast #nodejs" -- Lennie. http://twitter.com/silentlennie/status/3198622279667714 [21:33] pagameba has joined the channel [21:35] aho has joined the channel [21:35] tanepiper: hmm, i think i'll just stuck with couchdb then and just write custom methods for the stuff not in cradle, since node-couchdb is no longer activly being developed :( [21:36] _announcer: Twitter: "Just bought a ticket to http://camp.nodejs.org/, now I just need to find out how I will get there. #campnodejs" -- Ray Morgan. http://twitter.com/raycmorgan/status/3199466622423040 [21:36] mihbe has joined the channel [21:36] ako has joined the channel [21:37] TomsB: stream.write(buffer) [21:37] TomsB: From node docs: [21:37] TomsB: oops [21:37] TomsB: stream.writeable [21:37] TomsB: A boolean that is true by default, but turns false after an 'error' occurred or end() / destroy() was called. [21:38] TomsB: So.. if stream is not writeable, then I can safely destroy it? [21:38] jchris has joined the channel [21:38] bnoordhuis: TomsB: yes [21:38] bnoordhuis: even if it is writable [21:38] TomsB: no, if writeable - I don;t want to destroy it [21:39] TomsB: If it becomes unwriteable then it will never become writeable again? [21:39] _announcer: Twitter: "Calamity! #Node.js Camp (SF) same day as #WebGL Camp (Menlo Park)! What's a Javascript fan to do? /cc @ryah @dalmaer #nodejs #HashTagAbuse" -- Yoz. http://twitter.com/yoz/status/3200335002738688 [21:40] TomsB: I'm thinking.. If we need to buffer incoming stream data (TCP) to know when a whole message has been received, then do we need to buffer sending? [21:40] pagameba: hey all, looking for a bit of help getting started building an extension wrapping an existing C library (mapserver) - specifically with node-waf and the wscript file, how do I specify a path to mapserver-config? [21:41] TomsB: I was thinking - if stream is not writeable, then I need to buffer data and send when stream becomes writeable again [21:41] dberlinger|afk has joined the channel [21:41] cagdas: isaacs: this is what I get when I run "sudo node app.js": sudo: node: command not found [21:41] cagdas: (sorry for late relpy) [21:41] TomsB: But that's not how it works I suppose. [21:42] TomsB: Then I have another question - do I have to worry about "connection reset by peer" ? [21:42] cardona507 has joined the channel [21:43] jchris has joined the channel [21:43] cardona507 has joined the channel [21:43] tmpvar has joined the channel [21:44] _announcer: Twitter: "#nodejs #nginx and #postgresql sittin' in a tree" -- Brian Carlson. http://twitter.com/briancarlson/status/3201368168865792 [21:44] Anti-X: oh is it postgre now [21:45] _announcer: Twitter: "realnorth Blog | Accessing MySQL http://realnorth.net/blog/mysql-nodejs/ # nodejs node.js" [es] -- realnorth. http://twitter.com/realnorth/status/3201750274150400 [21:47] bnoordhuis: LNNP doesn't have quite the same ring to it as LAMP [21:49] seanbo has joined the channel [21:49] eee_c has joined the channel [21:49] cagdas: isaacs: I guess this article will help to me: http://wiki.joyent.com/node:onsmartos [21:49] tanepiper: N-NLP [21:49] _announcer: Twitter: "That looks great, too bad I'm gonna be in Belgium that date http://camp.nodejs.org" -- Xavier Damman. http://twitter.com/xdamman/status/3202763613802496 [21:49] tanepiper: "node is fantastic, super, great, the best, the best experience you'll ever have" [21:51] _announcer: Twitter: "I'm contemplating a #nodejs extension wrapping mapserver's C library - looks moderately complex, I have to learn the waf build system :(" -- pagameba. http://twitter.com/pagameba/status/3203306432233472 [21:51] dantalizing has joined the channel [21:53] _announcer: Twitter: "I'll be at Node Camp on 12/14 in San Francisco: http://bit.ly/aqwVP2 #nodejs Add it on yo plancast: http://bit.ly/9QFlyZ" -- Eric Nakagawa. http://twitter.com/ericnakagawa/status/3203679284891648 [21:53] _announcer: Twitter: "Been so busy lately that I have 2238 unread messages in my mongodb folder, and 928 in the node.js one. Only 264 in haxe though." -- Elliott Carlson. http://twitter.com/elliottcarlson/status/3203836722282497 [21:53] bradleymeck has joined the channel [21:53] isaacs: cagdas: what does this say? sudo echo $PATH [21:54] isaacs: cagdas: which node ; sudo which node [21:54] cagdas: sudo echo $PATH: /home/node/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/games [21:55] cagdas: which node: /home/node/local/bin/node [21:55] cagdas: sudo which node: [21:55] cagdas: (sudo which node returns empty) [21:55] dberlinger|afk has joined the channel [21:56] prettyrobots has joined the channel [21:56] tanepiper: because it's not in root's path [21:56] tanepiper: it's only in the node users path, so you'll either need to symlink it to /usr/local/bin or add it to the .bashrc of root [21:56] cagdas: by the way my users name is node [21:57] cagdas: I see [21:57] tanepiper: oh is this on no.de ? [21:57] cagdas: no [21:59] mif86 has joined the channel [21:59] isaacs: tanepiper: no, sudo echo $PATH is sudo's path [21:59] isaacs: sudo doesn't change the env vars. [21:59] _announcer: Twitter: "@yoz @ryah @dalmaer - i'll take nodejscamp if you want to take WebGL camp. i mean, i actually have deployed code on nodejs." -- Meadhbh Hamrick. http://twitter.com/OhMeadhbh/status/3205287037112320 [21:59] isaacs: it inherits them from the calling process. [21:59] isaacs: it's a child shell [21:59] isaacs: tanepiper: that is, he's not doing su, he's doing sudo [22:00] cagdas: hm, it didn't work tanepiper [22:00] isaacs: different thing [22:00] isaacs: cagdas: ls -l /home/node/local/bin/node, please [22:00] cagdas: -rwxr-xr-x 1 node node 6534125 Nov 7 06:00 /home/node/local/bin/node [22:01] isaacs: cagdas: sudo /home/node/local/bin/node app.js [22:02] cagdas: it works isaacs [22:02] aconran__ has joined the channel [22:02] cagdas: I see [22:02] isaacs: cagdas: ok, so, to review: /home/node/local/bin is in the $(sudo echo $PATH). the file is there and executable. [22:02] dberlinger|afk has joined the channel [22:02] isaacs: cagdas: you've stumped me. i give up. what's going on? [22:02] c4milo has joined the channel [22:03] isaacs: :) [22:03] cagdas: :) [22:03] cagdas: no idea yet [22:03] aconbere has joined the channel [22:03] c4milo: tj ! [22:03] tj: c4milo: hey man [22:03] c4milo: tj how are you ? [22:03] tj: good :D you? [22:03] c4milo: tj good [22:04] isaacs: cagdas: what about if you cp /home/node/local/bin/node to /usr/local/bin/node, and then [22:04] isaacs: cagdas: and then do node app.js [22:04] isaacs: er, sudo node app.js [22:04] cagdas: I guess I should cp as sudo [22:05] igorgue has joined the channel [22:05] isaacs: cagdas: yeah, probably [22:05] cagdas: Error: Cannot find module 'express' [22:05] isaacs: cagdas: ok. [22:06] isaacs: cagdas: so, now the issue is that the require.paths isn't getting set up properly [22:06] cagdas: yep [22:06] isaacs: cagdas: this is really weird. [22:06] isaacs: cagdas: what os is this? [22:07] cagdas: debian [22:08] cagdas: could root bashrc etc may affect? [22:08] cagdas: I remember that I've first installed node & npm on root [22:08] deadlyicon has joined the channel [22:08] cagdas: then I've removed the local dir in root gome [22:09] cagdas: after that I've created node user and installed node + npm [22:09] cagdas: by the way after I login as root I call "su node" [22:09] done has joined the channel [22:09] cagdas: then I do sudo node app.js [22:09] cagdas: this is the whole story [22:09] bnoordhuis: TomsB: sorry, missed your reply [22:09] altamic has joined the channel [22:09] bnoordhuis: next time, prefix it with my handle :) [22:10] TomsB: ok :)_ [22:10] bnoordhuis: worry about "connection reset by peer? yes, you should [22:10] bnoordhuis: buffer outgoing data? no, the tcp stack will do that for you [22:10] dberlinger|afk has joined the channel [22:10] TomsB: ok, ty [22:10] bnoordhuis: unless of course you want to cork it until you know you have a valid message [22:10] bnoordhuis: depends on the use case, as always [22:10] isaacs: cagdas: ok, is it possible that you have a symlink or something in your $PATH that is called "node" and doesn't point to anything valid? [22:11] cagdas: sudo path or node user's path? [22:11] isaacs: cagdas: the node user's path [22:11] isaacs: cagdas: they're the same thing [22:11] done: apologies for this question: is there a getObjectClass(obj) method for nodejs? [22:11] TomsB: bnoordhuis, reset by peer - ok, I'm worried. But what now? :) [22:11] isaacs: cagdas: sudo doesn't actually log in as root. it doesn't source /root/.bashrc or anything. it doesn't set up the PATH or any other envs. [22:12] isaacs: cagdas: sudo is just "execute this one command as root" [22:12] bnoordhuis: done: obj.prototype [22:12] cagdas: isaacs: this is how it thought me too :) [22:12] isaacs: cagdas: it's like ssh root@$HOSTNAME 'the command' [22:12] isaacs: cagdas: er, it's *not* like that [22:12] bnoordhuis: TomsB: depends, what do you want to do when the peer closes the connection? [22:12] bnoordhuis: you can't always detect that, by the way [22:12] isaacs: cagdas: it's like calling bash or sh directly [22:12] TomsB: I'd like to know why that happened.. [22:12] bnoordhuis: some peers don't send a RST but simply time out after a while [22:13] cagdas: isaacs: I see [22:13] TomsB: In normal situation - just reconnect client. [22:13] bnoordhuis: TomsB: do you control the client-side code? [22:13] _announcer: Twitter: "@ Rolf Koenders hey what do you use for DB nodeJS? mongoDB does look fat: O" [nl] -- Thomas Welter. http://twitter.com/thomasikzelf/status/3208775259398144 [22:13] isaacs: cagdas: what's really odd is that $(sudo which node) doesn't give you anything, when clearly /home/node/local/bin is the first item in the PATH, and that file is executable [22:13] TomsB: yes [22:14] bnoordhuis: TomsB: flash sockets, right? [22:14] TomsB: yes [22:14] bnoordhuis: in that case you can simply reconnect, yes [22:14] TomsB: I have somthing like "onerror" and "ondisconnect" - they just refresh client. [22:14] bnoordhuis: if you're worried about stale connections on the server side [22:14] tmpvar: anyone heard from tautologistics lately? [22:14] bnoordhuis: well, that's more difficult [22:14] bnoordhuis: like i said, not all disconnects are equal [22:14] micheil: bnoordhuis: oh hai. [22:14] cagdas: isaacs: it's interesting that when I'm root and run "which node" I also get /home/node/local/... [22:14] TomsB: Yes, I'd like to destroy tem on server too. [22:14] bnoordhuis: hi micheil [22:15] mape: isaacs: did you poke the mtime? [22:15] TomsB: *them [22:15] bnoordhuis: TomsB: there's the error and the close event [22:15] bnoordhuis: but they won't always fire [22:15] isaacs: mape: yeah... that sorta got reset. [22:15] isaacs: mape: i'm gonna do some stuff to it to make it work again, though, and also still be replicatable [22:15] TomsB: Yes I already saw that they are not bullet-proof. [22:15] mape: isaacs: Awsome, guess that falls into the all PR is good PR bucket ;) [22:16] isaacs: heh [22:16] bnoordhuis: TomsB: what you can do is periodically check if you've received any data on that connection [22:16] isaacs: mape: it'd be good to just remove that column from npm.mape.me, i think [22:16] zemanel_ has joined the channel [22:16] bnoordhuis: if not, close it [22:16] cagdas: isaacs: I'll try again later, thanks for help, I'll bug here again [22:16] mape: isaacs: yeah, true. But then I could kinda just drop it all together. Think that is the single one useful thing with the site [22:16] mape: Other the having gradients [22:16] TomsB: ok, that's one possible way. [22:16] isaacs: mape: hehe [22:17] isaacs: mape: well, the mtime hasn't been valid for over a month now [22:17] TomsB: What you say about this - if stream.writable = false then just destroy stream? [22:17] matt_c has joined the channel [22:17] mape: isaacs: yet people come back hoping it well, that has to count for something ;) [22:17] bnoordhuis: TomsB: yeah. if the stream becomes non-writable, i don't think that will ever change again [22:17] isaacs: mape: hah [22:17] TomsB: cool [22:17] TomsB: Thank you! [22:17] bnoordhuis: you're welcome :) [22:18] isaacs: mape: so, i need to figure out how to PUT a record in a different db from a couchdb updates function. [22:18] isaacs: mape: my idea is that i have a separate couch database that tracks just package update times. [22:18] _announcer: Twitter: "@yoz simple! get the #Node.js people to stream their camp and the #WebGL people to render it :-P" -- SignpostMarv. http://twitter.com/SignpostMarv/status/3210086654676992 [22:19] mape: isaacs: regardless of how you do it, getting something official seems like a good idea [22:19] c4milo has left the channel [22:19] isaacs: mape: yeah, definitely [22:19] mape: and a "what is new" section so people can get the latest and(most broken) greatest [22:20] cagdas has joined the channel [22:21] mape: isaacs: btw do you have issues with keeping a count of downloads? [22:21] mape: practical or whatnot [22:22] isaacs: mape: it's almost impossible to get valid data out of that. [22:22] isaacs: mape: plus, it's i mean... it's just not a valid metric of actual usage. [22:22] mape: the election isn't valid data [22:22] mape: Still useful info [22:22] isaacs: mape: let's talk about the use case. [22:22] alexfner has joined the channel [22:23] isaacs: i mean, i could put a random number on each one, and there ya go, you could look at it and say, "yay, this package has 1000 whipflees!" [22:23] mape: if you have a module is 2 years old and has 100k downloads and one that is 1 year old and has 2 [22:23] isaacs: the minute there's a score, even/especially a meaningless one, people *will* game it. [22:23] isaacs: you cannot measure without affecting something [22:23] sonnym has joined the channel [22:24] isaacs: some dipshit is going to write a script to ping the server all day so that they get the most points and end up on the front page. [22:24] mape: isaacs: how about you implement a verification system like google where people add a meta tag to websites and have them validate against npm... :P [22:24] isaacs: ew. [22:24] isaacs: how about YOU implement a something something! [22:24] isaacs: hahah [22:24] mape: Well I am! [22:24] mape: As soon as I get around to it. emm.. [22:24] isaacs: no, i think what i'm gonna do is try to build stuff that actually encourages good behavior. [22:25] isaacs: like, having good docs, and tests, and stuff. [22:25] mape: isn't that worse? [22:25] isaacs: and then your score will be transferred to the scores of the packages that you depend on. [22:25] mape: then phpjs would be totally worse off :( [22:25] isaacs: so, if you want a high score, then you'll have to have good test coverage, and be portable, and so on. [22:25] isaacs: then people will "game the system" by writing better packages, which is what i want [22:26] mape: isaacs: going the badges route? :D Achivement aquired! 10 bugfixed withing 5 days [22:26] isaacs: sure, something like that [22:26] shimondoodkin has joined the channel [22:26] faust45 has joined the channel [22:26] Nohryb has joined the channel [22:26] isaacs: the first step is for evanmeagher to write a good npm-package-docs site. [22:27] mape: Incorrect indentation, Fix! Crappy var names, Fix! [22:27] isaacs: i'm thinking, if we've got that, then people will *overnight* have awesome consistent markdown docs in their packages. [22:27] mape: Seems like a hard thing to measure [22:27] brianmario has joined the channel [22:27] isaacs: because that'll be what you need to get on the docs site. [22:27] isaacs: stuff like that [22:27] isaacs: "Want this treat? do this, and you'll get it for free." [22:27] mape: isaacs: Isn't updating often more important then good docs? [22:28] isaacs: i mean, look at how "being published on npm" has gotten people to put package.json files in their packages. [22:28] isaacs: mape: i don't think so. my abbrev and lru-cache modules have hardly been updated at all, but it's because they work and there's really not much more to add. [22:28] shimondoodkin: hi i am tring to learn to write good docs, see wwhat ideas ive got till now. https://github.com/shimondoodkin/nodejs-mongodb-app/wiki/how-to-write-a-good-documentation. [22:28] mape: I'd rather have a great module with a simple api that updates every week then a 1 year old one with "great" docs that is cumbersome [22:28] isaacs: nave hardly updates at all [22:28] isaacs: mape: that's cool. and you should be able to be empowered to make that decision however you see fit. [22:29] mape: Yeah.. guess it all ends up forcing people to use facebook and like stuff ;) [22:29] isaacs: hahahh [22:29] isaacs: omg, there will *never* be a "like" button on anything npm-related, if i can help it. [22:30] petercooper has joined the channel [22:30] isaacs: and if i ever put a "like" button on anything, it'll result in you getting nothign but britney spears in your feed [22:30] mape: but it will be totally awsome! with the new facebook mail and whatnot [22:30] _announcer: Twitter: "Unable to get Node.js 0.3 to compile on CentOS. Aargh." -- Charl van Niekerk. http://twitter.com/charlvn/status/3213123267862528 [22:30] tmpvar: lets replace the "like" button with a "donate" button :) [22:31] derren13 has joined the channel [22:31] shimondoodkin: i also would like to have a like button with like count near to modules of nodejs modules page [22:31] isaacs: let's set up a not-not-for-profit software foundation. [22:31] mape: isaacs: owell if you need any help give a shout, but guess you'll have more designers to boss around now that joyent is in the loop :) [22:31] shimondoodkin: saacs: and takeover nodejs [22:31] tmpvar: isaacs, :) [22:31] isaacs: mape: joyent is almost all engineers and biz folks. [22:32] isaacs: mape: we do have one designer, i think [22:32] mape: isaacs: surely you can find some good people that like crayons [22:32] isaacs: hehee [22:32] isaacs: surely! [22:32] isaacs: ok, work time [22:32] mape: gg [22:33] mape: Hmm textmate has an update? [22:33] mape: Does it even have auto update? [22:33] SubStack: What's all this? Rankings on npm? [22:34] SubStack: multivariate estimators pl0x [22:34] shimondoodkin: https://github.com/shimondoodkin/nodejs-mongodb-app/wiki/how-to-write-a-good-documentation , id like to have comments how good my documentation of node inflow [22:34] mape: SubStack: Yeah, like pokemon but with node packages! [22:34] mape: Tots awsomez [22:34] SubStack: github watchers, weighted sum of recency and published versions [22:34] mape: Gotta catch em alls! [22:34] SubStack: agree, teh awesomes [22:34] shimondoodkin: + like [22:35] SubStack: yes it MUST have a like button [22:35] SubStack: it doesn't even need to do anything [22:35] SubStack: it just must have it [22:35] shimondoodkin: iment that i like the idea [22:35] SubStack: to infuriate isaacs if nothing else [22:35] mape: Just create a fork [22:35] mape: nnpm, not node package manager [22:35] mape: does nothing, just gives rankings to random stuff [22:36] mape: viral! [22:36] SubStack: also with nnpm the only command is "like" [22:36] shimondoodkin: ide like to have a web based package manager like pear [22:36] SubStack: to do all other commands you have to preface them with "like" [22:36] SubStack: npm like publish nstuff [22:36] SubStack: npm like list packages I guess whatever [22:36] SubStack: s/^/n/ [22:36] tmpvar: pear is the shittiest thing ive ever used [22:36] mape: nnpm like kinda list like [22:37] _announcer: Twitter: "Today's Python Hackathon, node.js 10:00-12:00,14:00-20:00 I was doing hands-on, I do it properly. # Shibukawa" [ja] -- Yohei Sasaki. http://twitter.com/yssk22/status/3214748837482496 [22:37] mape: tmpvar: but it is so big! [22:37] tj: tmpvar: ditto [22:37] tmpvar: thats what she said, but seriously... no@PEAR [22:37] slaskis has joined the channel [22:38] mape: tj: how is the canvas thingy moving? perf improv yet or just broader coverage? [22:38] mape: (just) [22:38] _announcer: Twitter: "Today's Python Hackathon, node.js hands of 10:00 to 12:00, 14:00 - A consists of two parts. I do it properly, or rather do it properly, so you expose http://bit.ly/9kl3Br. # Shibukawa" [ja] -- Yohei Sasaki. http://twitter.com/yssk22/status/3215102996119552 [22:38] tj: mape: just working on more features [22:38] tj: the performance is just fine for most things [22:38] shimondoodkin: the good thing in rails is the modules, i have heared from the original creator that he calls it you add modules like a kid in the candy shop. [22:38] tj: on par with browser implementations [22:39] mape: Yeah, seemed fine enough [22:39] tj: faster always better :) but once the features are nailed down that can be the focus [22:39] pagameba: argh - how do I get node-waf to search an include path? [22:39] mape: tj: for sure [22:40] shimondoodkin: it would be awsome to have a module manager that is super quick with one click to download modules from network repository. [22:40] tmpvar: shimondoodkin, i hear that [22:40] mape: click? :S [22:40] _announcer: Twitter: "Learning Javascript with Object Graphs - How To Node - NodeJS: http://howtonode.org/object-graphs" -- Himanshu Ranavat. http://twitter.com/atkt_forever/status/3215654421274624 [22:40] stride: shimondoodkin: "one click"? [22:40] tmpvar: like register a protocol handler, etc [22:40] stride: mape: :D [22:40] tmpvar: like a torrent [22:41] shimondoodkin: like amazon [22:41] mape: how about just having npm hooking into node, and when you can't find stuff it just does black magic to solve it? :P [22:41] tmpvar: lol [22:41] shimondoodkin: lol [22:41] CIA-95: node: 03Ryan Dahl 07master * r8e09b1e 10/ lib/repl.js : [22:41] CIA-95: node: Simplify REPL displayPrompt [22:41] CIA-95: node: Now that we insert \r into the stream and aren't switching back and forth [22:41] CIA-95: node: between termios modes, not need to worry about when to display the prompt. - http://bit.ly/9wEW5k [22:41] tmpvar: the reason I like that idea is for when we start getting more client side apps rolling [22:42] tmpvar: er.. define client side.. i mean desktop apps [22:42] CIA-95: node: 03Ryan Dahl 07writev * rfd634fb 10/ (lib/net.js src/node_io_watcher.cc): make sure unix sockets are tagged correctly (+38 more commits...) - http://bit.ly/9wVP3r [22:42] mape: wan't *** db? Well we don't have that so I'll fetch a redis module and install redis... Don't ask don't tell! [22:42] tmpvar: haha [22:42] sriley has left the channel [22:42] stride: mape: actually, that would be great. require('alchemy').makeGold(); and we'll all be rich [22:42] tmpvar: mape, thats a great idea.. patch require() to do a lookup to npm if not found [22:43] shimondoodkin: i like the rails idea about modules organization and managment. [22:43] mape: tmpvar: That could be handly but totally black magic [22:43] tmpvar: mape, no joke [22:43] shimondoodkin: humm: patch require [22:43] mape: ACTION throws them sudo at require [22:44] mape: tmpvar: or we just write a module that evals everything in your app in the cloud, and just fix everything [22:44] mape: Bet you can charge for that [22:44] shimondoodkin: i heared that you can sudo just one command [22:44] _announcer: Twitter: "Thinking of taking rabbit.js http://github.com/squaremo/rabbit.js to nodecamp http://camp.nodejs.org/" -- Michael Bridgen. http://twitter.com/squaremobius/status/3216706142994432 [22:45] SubStack: sweet vid @ couchio [22:45] mape: url [22:46] SubStack: damnit I guess I clicked that from twitter or some such [22:46] mape: browser history still noy good enough [22:46] mape: *t [22:46] SubStack: aha http://blogs.wsj.com/venturecapital/2010/11/12/music-video-for-database-start-up-thats-how-couchone-rolls/?KEYWORDS=couchdb [22:46] mape: ha ha! [22:47] freeformz has joined the channel [22:47] mape: wow, druuuuuunk rap [22:47] SubStack: now I want to shoot my own rap video set in oakland [22:48] SubStack: actually I was thinking about this last week already [22:48] _announcer: Twitter: "Sick python Nde I wanted to play evil Hakkason node.js rest saw or read about coming out to go hands-on care" [ja] -- showyou. http://twitter.com/showyou/status/3217541262479360 [22:48] mape: Kinda chopped and screwed but just, well.. Slow [22:49] agnat has joined the channel [22:49] SubStack: yes well it's the concept that counts [22:49] rpflo has joined the channel [22:50] mape: to a degree [22:50] backinnam: I am finding lots of examples on how to bind event listeners to dom elements, but I want to bind an event to a generic object. How is this done? [22:50] mape: Idea is worth nothing, execution is? [22:51] SubStack: true enough [22:51] mape: backinnam: create an eventemiter [22:51] tmpvar: backinnam, the object would need to emit events [22:51] SubStack: I'm thinking of this from my perspective of course [22:51] SubStack: as in, I now know who to borrow a camera and sound equipment from [22:51] SubStack: :p [22:51] mape: heh [22:51] mape: *e [22:53] _announcer: Twitter: "Node.js camp - if only san Francisco wasn't so far away... http://camp.nodejs.org/" -- Björn Günzel. http://twitter.com/fractality/status/3218939114946560 [22:54] [[zz]] has joined the channel [22:55] deepthawtz has joined the channel [22:56] _announcer: Twitter: "@izs Is Node.js Camp intended for beginners only or...? #canicome" -- Reid Burke. http://twitter.com/reid/status/3219543044399104 [22:56] shimondoodkin: https://github.com/phiggins42/bloody-jquery-plugins/blob/master/pubsub.js [22:56] shimondoodkin: this? [22:58] shimondoodkin: backinnam: it was for you [22:59] backinnam: shimondoodkin: thanks, checking it out now [22:59] _announcer: Twitter: "I wrote an awesome little Sibilant/Node.js trivial scanner for #rubyconf tweets (20 lines of Lisp) but I probably can't post it til tonight" -- Giles. http://twitter.com/gilesgoatboy/status/3220374581944321 [23:00] deadlyicon has joined the channel [23:03] mikeal has joined the channel [23:04] jpld has joined the channel [23:04] jpld has joined the channel [23:04] robinduckett has joined the channel [23:05] _announcer: Twitter: "What is node.js? Is it some kind of sophisticated virus?" -- fatone. http://twitter.com/fatone/status/3221766990200832 [23:05] rbranson: lol [23:06] shimondoodkin: node.js.w32 Detected [23:06] JimRoepcke has joined the channel [23:06] richcollins has joined the channel [23:07] davidascher has joined the channel [23:09] jashkenas has joined the channel [23:10] c4milo has joined the channel [23:12] altamic has joined the channel [23:13] arlolra has joined the channel [23:13] _announcer: Twitter: "I am on #cloud9 with @Cloud9IDE absolutely amazing if you are into #nodejs" -- Torey Maerz. http://twitter.com/toreym/status/3223888695664640 [23:14] kawaz_wo_ has joined the channel [23:14] tmpvar: im not sure if im sold by this ajax.org stuff [23:14] Mikushi has joined the channel [23:15] shimondoodkin: i don't like the ajax framework it is too huge, but i like the instant web ide [23:15] tmpvar: hrm [23:15] tanepiper: yea, cloud9 is nice [23:15] tmpvar: i think being tied to that IDE on the desktop is my pain point [23:15] _announcer: Twitter: "It seems to me only people who'd enjoy continuation passing style of node.js haven't used a concurrency oriented language or even coroutines" -- Sean Lynch. http://twitter.com/DrPrettyBad/status/3224497842819072 [23:16] shimondoodkin: tmpvar: why? [23:16] seanbo: i like textmate. [23:16] tj: yeah same.. [23:16] tj: i dont really want my editor to be in my browser [23:16] _announcer: Twitter: "rabbitmq + node.js = rabbit.js http://bit.ly/9H3Xo0" -- rabbitmq. http://twitter.com/rabbitmq/status/3224673265385473 [23:16] justinlilly: ACTION cringes at the thought of refreshing the page and losing work. [23:16] seanbo: haha [23:16] _announcer: Twitter: "I envy the team are too http://lanyrd.com/2010/nodejs-camp/ Speaker # nodejs_jp" [ja] -- Toshihiro Shimizu. http://twitter.com/meso/status/3224735164932096 [23:17] shimondoodkin: few years ago i really enjoyed editing documents woith a web ide i developed for myself for php [23:19] tmpvar: hrm [23:20] tmpvar: why did they invent their own markup? [23:22] _announcer: Twitter: "I want # nodejs_jp http://camp.nodejs.org/" [ja] -- Toshihiro Shimizu. http://twitter.com/meso/status/3226094106836993 [23:22] deadlyicon has joined the channel [23:23] shimondoodkin: tmpvar: about what? [23:23] shimondoodkin: ajax.org? [23:23] _announcer: Twitter: "ok, ready to test again some pubsub ideas with node.js and redis" -- pippoppo. http://twitter.com/pippoppo/status/3226476174385153 [23:23] tmpvar: shimondoodkin, yeah [23:24] jpld has joined the channel [23:24] jpld has joined the channel [23:25] shimondoodkin: I dont know it is also strange to me. :) probably beause of the description of the word ajax. aslo it might be easier to work with components and define them as html, but i dont like it. [23:25] tmpvar: good god, they've been working on this for more than a year [23:26] tanepiper: yea, that stuff i don't get - but as long as i don't have to touch it [23:26] tmpvar: well, it seems like i keep seeing it everywhere.. finally curious as to why [23:26] shimondoodkin: also i dont like the gpl idea there [23:26] tanepiper: I;m glad Sencha dropped that idea and focused on JS + markup templates [23:27] shimondoodkin: i'd like to know about something like ajax framwork but with mit/bsd license [23:27] tanepiper: shimondoodkin: jQueryUI [23:27] sh1mmer has joined the channel [23:27] shimondoodkin: it is too week [23:28] captain_morgan has joined the channel [23:28] tanepiper: yea, i'm a jquery fan but i bought ExtJS because i really needed a lot of data-driven stuff [23:28] shimondoodkin: maybe dojo but their documentation is little hard [23:29] tylerstalder has joined the channel [23:29] tanepiper: yea, and a lot of their demos wouldn't work for me [23:29] tanepiper: an instant put-off [23:29] tmpvar: eh, dojo is huge [23:29] tmpvar: have you looked at YUI3? [23:29] shimondoodkin: tanepiper: lol same [23:29] shimondoodkin: tanepiper: is the site is slow also for you? [23:30] tanepiper: shimondoodkin: yea [23:30] tanepiper: YUI looked too unprofessional for me [23:30] tanepiper: under the hood it looks good, but the whole YUI2/YUI3 thing put me off as well [23:30] tmpvar: YUI2 was horrible [23:30] tmpvar: imo [23:31] jashkenas: what's "the whole YUI2/YUI3 thing"? [23:31] tanepiper: YUI3 certainy makes a lot of improvements [23:31] isaacs[away]: i dunno about horrible. [23:31] tanepiper: jashkenas: YUI3 components, but some stuff is still YUI2 like calendar [23:31] isaacs[away]: it had some pretty innovative ideas at the itme. [23:31] tanepiper: ^^ [23:31] isaacs[away]: er, some ideas which were pretty innovative at the time [23:31] tmpvar: isaacs[away], agreed, horrible is not the word [23:32] tanepiper: I think JOhn Resig hit the nail on the head last week with his post [23:32] isaacs[away]: what it didn't have was sandboxing, dynamic/async loading from a seed file, and a terse functional api. [23:32] isaacs[away]: it had a big bloated java-y api [23:32] _announcer: Twitter: "Node.js Camp http://bit.ly/dCqO98 - imo, people shouldn't mess with anything they can't pickup on their own. snobby me." -- Don Park. http://twitter.com/donpark/status/3228750875467776 [23:32] isaacs[away]: YAHOO.util.Dom.get("blah") instead of Y.one("#blah") [23:33] tanepiper: i can't wait to see Ext4 [23:33] necrodearia has joined the channel [23:33] tmpvar: has anyone here benchmarked the perf hit when you go across the js->c bridge? [23:34] tanepiper: i've become a big fan of Ext, and if this job doesn't work out then at least out of it I will have ExtJS to do contract work [23:35] shimondoodkin has joined the channel [23:35] shimondoodkin: yui: i've tried it 3 times and could not get it work, i could not match the required ui css and the javascript. and the page css, it all messed up together. [23:38] [[zz]] has joined the channel [23:38] saikat has joined the channel [23:39] _announcer: Twitter: "Nodejitsu private beta- http://j.mp/9fe39R. #nodejs" -- George Ornbo. http://twitter.com/shapeshed/status/3230386482053120 [23:40] SubStack has joined the channel [23:41] jarek has joined the channel [23:41] jarek: hi [23:42] shimondoodkin: jarek: hi [23:43] jarek: what's the node.js counterpart of "ls" or "dir" commands? [23:43] jarek: I tried fs.stat("/tmp") but it gives me undefined [23:43] shimondoodkin: fs.stat is with a callback [23:43] christophsturm has joined the channel [23:44] _announcer: Twitter: "This is COOL (Node.js and websockets) http://jeffkreeftmeijer.com/2010/experimenting-with-node-js/" -- Ben Aston. http://twitter.com/benastontweet/status/3231573604302848 [23:44] shimondoodkin: http://nodejs.org/api.html#fs-readdir-133 [23:45] jarek: shimondoodkin: thanks, now it works! [23:45] shimondoodkin: var fs=require(fs); fs.readdir("/tmp", function(err,files){console.log(files);}); [23:46] jarek: but I'm getting strange results :/ [23:46] jarek: I will have to read more docs [23:46] shimondoodkin: what strange? [23:47] jarek: shimondoodkin: http://pics.kiwi-themes.com/263.png [23:47] jarek: shimondoodkin: well, it does not work exactly like "ls" command [23:47] xicubed has joined the channel [23:48] shimondoodkin: fs.stat shows the properies of a file [23:48] shimondoodkin: fs.readdir lissts files like ls or dir [23:48] jarek: shimondoodkin: awesome, thanks! [23:49] _announcer: Twitter: "MongoDB for NodeJS, Tue 6:30 at EY http://www.meetup.com/San-Francisco-MongoDB-User-Group/calendar/14638779/" -- Assaf Arkin. http://twitter.com/assaf/status/3232821673992192 [23:49] eisd has joined the channel [23:49] Artem_S has joined the channel [23:50] jarek: btw, is it going to be hard to implement SSH and FTP access? [23:50] Artem_S: Hi guys, got this exception problem: [23:50] nolan_d has joined the channel [23:50] Artem_S: https://github.com/ry/node/issues/issue/415 [23:50] jarek: is there something like GVFS for node.js? [23:50] dnolen has joined the channel [23:50] _announcer: Twitter: "♺ @ryah: Come to http://camp.nodejs.org/ on 12/14 to learn about Node with @creationix, @rauchg, @izs, @mranney, @pquerna, @mikeal, and me" -- Tim Caswell. http://twitter.com/creationix/status/3233187392131072 [23:50] Artem_S: basically when reading a file can't catch 'file not found' exceptions [23:50] eisd has left the channel [23:51] shimondoodkin: is there an ssh for node js? [23:51] jchris has joined the channel [23:51] shimondoodkin: ah there is alrady someone do managment from it [23:53] shimondoodkin: jarek: nidce idea for a module [23:53] shimondoodkin: jarek: nice idea for a module [23:53] pquerna: ibssh2 [23:53] pquerna: libssh2 [23:53] pquerna: has an async api [23:53] pquerna: http://www.libssh2.org/ [23:59] _announcer: Twitter: "Raised another issue with node.js http://is.gd/gZ19r" -- Art. http://twitter.com/art_s/status/3235474797756416