[00:00] grahampage has joined the channel [00:02] _announcer: Twitter: "Still waiting to get invited to @Heroku's node beta or http://no.de/, BTW. I've heard a fair bit about node.js/websockets on @changelogshow." -- Ben Aτkin. http://twitter.com/benatkin/status/27881616116 [00:04] aheckmann has joined the channel [00:04] bentruyman has joined the channel [00:09] trotter has joined the channel [00:10] chapel: v8: var in=[1,2,3,4];in.indexOf(2); [00:10] v8bot: chapel: SyntaxError: Unexpected token in [00:10] chapel: v8: var ind=[1,2,3,4];ind.indexOf(2); [00:10] v8bot: chapel: 1 [00:11] micheil: v8: var ind=[1,2,3,4];ind.indexOf(1); [00:11] v8bot: micheil: 0 [00:11] micheil: hmm, that's right. [00:11] chapel: v8: var in=[1,2,3,4];in.indexOf(5); [00:11] v8bot: chapel: SyntaxError: Unexpected token in [00:11] chapel: v8: var ind=[1,2,3,4];ind.indexOf(5); [00:11] v8bot: chapel: -1 [00:11] chapel: if its not there its -1 [00:14] konobi: ryah_: ping [00:15] MikhX has joined the channel [00:15] ryah_: konobi: he [00:15] ryah_: y [00:15] _announcer: Twitter: "Listening to CRE 167 node.js and programming ØMQ. A nerd's night out." -- sin π. http://twitter.com/sin3141592/status/27882746224 [00:16] noahcampbell_ has joined the channel [00:25] banjiewen_ has joined the channel [00:26] _announcer: Twitter: "♫♪I found what I was looking for. YAJET http://www.yajet.net/ a JS template engine for my node.js playground. Is node.js the next sinatra?" -- Florin T.Pătraşcu. http://twitter.com/florin/status/27883577342 [00:33] c4milo has joined the channel [00:34] _announcer: Twitter: "New post: Socket.IO Test (powered by CSS3/HTML5/jQuery/Node.js) http://bit.ly/djBuFG #powered #Socket.IO #Test" -- unsere-agentur.de. http://twitter.com/unsereagentur/status/27884220719 [00:35] softdrink has joined the channel [00:40] springmeyer has joined the channel [00:42] _announcer: Twitter: "good day. got a job, got onto github trends for wilson (my pet node.js framework), ate polenta." -- Chris Dickinson. http://twitter.com/isntitvacant/status/27884940023 [00:43] _announcer: Twitter: "Drinkin' beer. Workin' on some node.js fun." -- Wesley Hodgson. http://twitter.com/somnambulant/status/27885014007 [00:44] heavysixer has joined the channel [00:44] _announcer: Twitter: "Drinkin' beer. Workin' on some node.js fun. Listenin' to the new Squarepusher." -- Wesley Hodgson. http://twitter.com/somnambulant/status/27885071030 [00:46] heavysixer: I am looking to build a real-time spelling engine would node.js be a good technology for this? [00:47] nerdEd has joined the channel [00:47] ajpiano has joined the channel [00:47] threeve has joined the channel [00:47] ajpiano has joined the channel [00:48] webben has joined the channel [00:50] TheEmpath: i'd say yes [00:50] TheEmpath: heavy io is what node is good at [00:50] ph^_ has joined the channel [00:52] micheil: TheEmpath: provided there's an event driver spelling library. [00:52] TheEmpath: thats on heavy to make :D [00:52] pquerna: so, i made my little echo server work, but broke that 1mb client upload test. [00:52] pquerna: *rage* [00:56] TheEmpath: D: [00:57] mbrochh has joined the channel [01:00] chapel: v8: var ind={0:{"tag":"blah"},1:{"tag":"hello"}};ind.indexOf("hello"); [01:00] v8bot: chapel: TypeError: Object # has no method 'indexOf' [01:01] chapel: hmm [01:02] chapel: v8: var ind={0:{"tag":"blah"},1:{"tag":"hello"}};ind.some("hello"); [01:02] v8bot: chapel: TypeError: Object # has no method 'some' [01:02] tekky has joined the channel [01:03] kgf: those sound like Array methods... [01:07] deepthawtz has joined the channel [01:07] tekky: kgf: omg... you.... exploring IRC? :P [01:08] chapel: hmm [01:08] chapel: v8: var ind={0:"hmm",1:"hello"};ind.some("hello"); [01:08] v8bot: chapel: TypeError: Object # has no method 'some' [01:09] chapel: v8: var ind={0:"hmm",1:"hello"};ind.indexOf("hello"); [01:09] v8bot: chapel: TypeError: Object # has no method 'indexOf' [01:10] chapel: v8: var ind={0:[1,2,3],1:[1,2,3]};ind.indexOf("hello"); [01:10] v8bot: chapel: TypeError: Object # has no method 'indexOf' [01:13] zk has joined the channel [01:16] chapel: v8: var ind={0:[1,2,3],1:[1,2,3]};ind.indexOf(1); [01:16] v8bot: chapel: TypeError: Object # has no method 'indexOf' [01:16] mikeal1 has joined the channel [01:16] chapel: v8: var ind={0:[1,2,3],1:[1,2,3]};ind.some(1); [01:16] v8bot: chapel: TypeError: Object # has no method 'some' [01:16] chapel: bah [01:17] banjiewen has joined the channel [01:17] kgf: tekky: I've been here a while, just mostly inactive. [01:17] kgf: chapel: you're still trying to execute Array methods on something that's not an Array [01:17] kgf: not really sure what you're going for [01:18] chapel: well [01:18] rwaldron has joined the channel [01:18] chapel: have an array Ill be pushing associative arrays into [01:18] chapel: which works [01:19] gerred has joined the channel [01:19] _announcer: Twitter: "Aim WebSocket the "real Web"! - @ IT: node.js story in November 2009, the impact of last year's dates. Brighton in southern England town called "Full Frontal 2009" that JavaScri ... http://nav.cx/i6hi0q" [ja] -- 高橋敦彦. http://twitter.com/attrip/status/27887944256 [01:20] bartt has joined the channel [01:20] chapel: but I want to see if it has something in there, not a big deal [01:20] kgf: but in all these things you've been executing, your top level isn't an array [01:21] kgf: I assume that if it were, and if all its items were objects, the some method might be relevant to your interests [01:23] evanmeagher has joined the channel [01:23] tekky: chapel: associative arrays in JS is a misnomer [01:24] tekky: kgf: sweet so I can make fun of you here too... [01:24] chapel: i know [01:24] hsuh has joined the channel [01:26] rnewson has joined the channel [01:27] chapel: var ind={"players":[{"gamertag":"jack"},{"gamertag":"bob"}]};ind.players.some(function(player) {console.log(player);}); [01:27] chapel: v8: var ind={"players":[{"gamertag":"jack"},{"gamertag":"bob"}]};ind.players.some(function(player) {console.log(player);}); [01:27] v8bot: chapel: CONSOLE: [{"gamertag": "jack"}, {"gamertag": "bob"}], OUTPUT: false [01:28] _announcer: Twitter: "New blog post: Node.js: A Beginner's Perspective http://matthewturland.com/2010/10/19/node-js-a-beginners-perspective/ #nodejs" -- Matthew Turland. http://twitter.com/elazar/status/27888597099 [11:28] frigg: VERSION [11:28] nodelog has joined the channel [11:28] SubStack: readmes and wiki pages on github are good for synopses but not so good for api documentation [11:28] jetienne_: dox as in doxigen ? [11:29] SubStack: http://github.com/visionmedia/dox [11:30] jetienne_: July 30, 2010 date of last commit [11:30] emmanueloga has joined the channel [11:30] _announcer: Twitter: "npm module I made. By require, node.js API Document provided to display the Utility. Search API Document from the REPL, you can display. http://bit.ly/99Tp9r # riajyu" [ja] -- ゆろよろ(オザキ トモヒト). http://twitter.com/yuroyoro/status/27922081249 [11:31] holydevil: Got my answer - http://stackoverflow.com/questions/3629784/how-is-node-js-inherently-faster-when-it-still-relies-on-threads-internally [11:31] jetienne_: i think what i look for is like a "seal of approval". aka trustable persons giving a stamp/label "ok this lib is good, nicely documented, works on those node versions" [11:31] jetienne_: howtonode people could manage such effort [11:32] mikew3c_ has joined the channel [11:32] _announcer: Twitter: "@ Caravaco node.js It looks interesting, I'll keep myself to go there at all w" [ja] -- Tetsuya Hori. http://twitter.com/holiholi/status/27922162253 [11:32] stride_: only problem I'm currently facing is that I find it hard to determine for which version of node library versions are made [11:33] jetienne_: thus people writing good lib, will be rewarded for their work compared to the ones just doing weekend toys [11:33] jetienne_: stride_: how do you know if the lib is buggy ? or maintained ? [11:34] unomi: hopefully you should be able to see that via the commit logs / isses page [11:34] stride_: for maintainers I check the github network tab, buggy.. I find that out when I use it [11:34] unomi: this ofcourse depends on the community filling bugs :p [11:34] stride_: not the best, sure [11:34] stride_: I'd like to see some community process and more meta data like this added to the npm & it's repository somehow [11:34] unomi: but it is probably more 'doeable' than putting the onus on the howtonode volunteers [11:35] unomi: sounds like an opportunity :p [11:35] jetienne_: unomi: go ahead :) [11:35] unomi: after you ;) [11:36] webben has joined the channel [11:36] jetienne_: sounds i will keep suggesting this idea every month or so [11:36] JimBastard_ has joined the channel [11:36] JimBastard_: ohhh man, my ninja suits are almost here [11:37] unomi: good to know that the funding is being put to good use [11:37] JimBastard_: :-D [11:37] jetienne_: JimBastard_: going to a scifi conf ? [11:37] JimBastard_: unomi: thats out of pocket [11:37] unomi: right [11:37] JimBastard_: got enough for everyone [11:37] stride_: ACTION sends JimBastard_ some female uniform from the original star trek series [11:37] JimBastard_: o.O [11:38] JimBastard_: all we need know are nodejitsu patches [11:38] JimBastard_: now* [11:38] JimBastard_: ohh yeah, maybe we should launch too [11:38] xla has joined the channel [11:39] JimBastard_: okay fuck it, im adding the rage comic guy to the how it works section [11:41] digitalspaghetti: FFFFFFFFUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU [11:41] digitalspaghetti: Also if you are doing that, you need trollface in there somewhere [11:42] ben_alman has joined the channel [11:43] JimBastard_: digitalspaghetti: i have an incomplete version [11:43] JimBastard_: im missing like 30 faces [11:43] JimBastard_: ive got like 40 [11:43] JimBastard_: high res [11:44] JimBastard_: im missing disappoint dad and all the me gustos [11:44] Akiraa has joined the channel [11:44] _announcer: Twitter: "It is the array. WebSocket node.js of the array to run from the REPL. http://bit.ly/d63m2v # riajyu" [ja] -- ゆろよろ(オザキ トモヒト). http://twitter.com/yuroyoro/status/27922960951 [11:45] Akiraa: Do you know of an example of a CRUD web-app built around node.js? [11:45] path[l] has joined the channel [11:46] Anti-X: v8> /^[a-z]+$/.test(undefined) [11:46] v8bot: Anti-X: true [11:46] Anti-X: ... [11:46] Anti-X: THATS NOT ACCEPTABLE! [11:48] Anti-X: mdc says the teststring is optional, but it doesn't say what it does if it's not supplied... [11:48] bruse: so what is a good way of entering binary data into buffers in node, in source? [11:48] bruse: i'm getting a lot of extra bytes that i didnt enter [11:48] bruse: i guess from some kind of character encoding? [11:49] bruse: when i'm trying to do stuff like new Buffer("\x1b\x8d\x88\x29\x3e") etc [11:50] stride_: bruse: that would decode it as utf8 text I guess [11:50] stride_: bruse: have you tried the Buffer(array) constructor? [11:51] bruse: i have not [11:51] Anti-X: utf8 is only single byte as long as the character value is <127 [11:51] stride_: that or initializing it with the size you want and setting yourBuffer[i] to the values [11:51] stride_: should give you the desired result [11:52] stride_: Anti-X: doesn't it pad those single-byte values with a 0 byte? [11:52] bruse: Anti-X: this data is not always < 127 [11:52] bruse: stride_: no [11:52] Anti-X: yes, the single byte utf8 chars, start with 0 [11:52] Anti-X: to indicate that it is the last byte in a char (and only) [11:52] bruse: utf8 is backwards compatible with ascii7 [11:54] Anti-X: utf8 is compatible with ascii, but it is not compatible with latin1 and those [11:55] Anti-X: because the second byte of a utf8 char (if applicable) will have a totally different value [11:55] stride_: var buf = new Buffer([0x1b, 0x8d, 0x88, 0x29, 0x3e]); buf; [11:55] stride_: if that what you want? [11:55] stride_: s/if/is/ [11:55] Anti-X: that would be better i think [11:58] path[l]2 has joined the channel [12:00] ben_alman has joined the channel [12:01] siebertm has joined the channel [12:02] siebertm: any ideas on how to deploy nodejs applications when i use npm for my dependencies? [12:02] siebertm: what's the 'standard way' for doing this? [12:02] _announcer: Twitter: "Oh, I see. client.broadcast (message) that I did inform the client. It is a good node.js. # Riajyu" [ja] -- 小見 拓. http://twitter.com/taku_o/status/27924232245 [12:04] jetienne_: siebertm: http://howtonode.org/deploying-node-with-spark this is one way [12:04] jetienne_: dunno about standard [12:04] mtodd has joined the channel [12:04] jetienne_: there is the sencha way too... http://github.com/visionmedia/ndistro [12:05] mikew3c has joined the channel [12:06] boaz has joined the channel [12:06] _announcer: Twitter: "node.js of client.broadcast () I'm gonna be concerned about performance. # Riajyu" [ja] -- 小見 拓. http://twitter.com/taku_o/status/27924503613 [12:07] ben_alman has joined the channel [12:08] sveimac has joined the channel [12:11] siebertm: jetienne: dont like any sencha ways :) [12:11] _announcer: Twitter: "node.js why I was going to write program code node.js reading it ... but I do not know what to say to (ry" [ja] -- やのつとむ. http://twitter.com/t_yano/status/27924895211 [12:12] siebertm: but the spark tutorial doesnt mention any dependencies... [12:14] badaxx has joined the channel [12:14] siebertm: whoa. npm has a bundle command. thats what i was looking for! [12:16] badaxx has joined the channel [12:19] rasputnik has joined the channel [12:21] zomgbie has joined the channel [12:24] ossareh has joined the channel [12:24] mikecsh_ has joined the channel [12:25] _announcer: Twitter: "Node.js and MongoDB - How To Node - NodeJS: http://bit.ly/aZcOtc" -- junichi_y. http://twitter.com/junysb3/status/27925882160 [12:25] virtuo has joined the channel [12:26] rubydiamond has left the channel [12:27] huntz0r has joined the channel [12:30] jetienne_: cool [12:30] _announcer: Twitter: "Finally, Sakura VPS to turn into # riajyu node.js" [ja] -- やましろ. http://twitter.com/yamashiro/status/27926231043 [12:31] fod has joined the channel [12:31] agnat has joined the channel [12:33] fod has joined the channel [12:34] fod has joined the channel [12:36] fod has joined the channel [12:38] unomi has joined the channel [12:39] fod has joined the channel [12:40] fod has joined the channel [12:43] matjas has joined the channel [12:43] fod has joined the channel [12:44] _announcer: Twitter: "What is the hottest programming language node.js all about?: Here are articles for premium users only. It’s not op... http://bit.ly/aWBMPA" -- Open Alexandria. http://twitter.com/openalexandria/status/27927286681 [12:46] fod has joined the channel [12:47] aheckmann has joined the channel [12:49] _announcer: Twitter: "If you want to upload the node.js https: / / no.de / or heroku is good. # Riajyu" [ja] -- KITAZAKI Shigeru. http://twitter.com/kshigeru/status/27927692602 [12:49] fod has joined the channel [12:49] _announcer: Twitter: "Na just fun watching Rika Waka node.js application can not know at all or what help is # riajyu" [ja] -- TAKANO Mitsuhiro. http://twitter.com/takano32/status/27927711242 [12:52] xla has joined the channel [12:53] fod has joined the channel [12:55] fod has joined the channel [12:55] bruse: v8: "test"[0].valueOf(); [12:55] v8bot: bruse: "t" [12:55] bruse: v8: "test"[0].charCodeAt(); [12:55] v8bot: bruse: 116 [12:56] femtoo has joined the channel [12:56] bruse: v8: "1"[0].charCodeAt() > "0" [12:56] v8bot: bruse: true [12:56] bruse: v8: "1"[0].charCodeAt() < "2" [12:56] v8bot: bruse: false [12:56] bruse: v8: "1"[0].charCodeAt() < "2".charCodeAt() [12:56] v8bot: bruse: true [12:57] teemow has joined the channel [12:57] fod has joined the channel [12:58] _announcer: Twitter: "Ubuntu Lucid Node.js に を 入れる 方法 http://d.hatena.ne.jp/bongole/20100909/p1" [gl] -- nazo / takuya sato. http://twitter.com/nazo/status/27928406091 [12:58] jansc_ has joined the channel [12:59] Anti-X has joined the channel [12:59] fod has joined the channel [13:03] fod has joined the channel [13:04] svnlto has joined the channel [13:04] Ari-Ugwu has joined the channel [13:05] ajpiano has joined the channel [13:06] _announcer: Twitter: "[uniknotions.com] NodeJS Screencasts - By Emerson Macedo: In this episode, I'll show you the basic about NodeJS. W... http://bit.ly/aPPG0S" -- amrit swor. http://twitter.com/weirddesigninc/status/27929020305 [13:08] _announcer: Twitter: "/ Giving me a look very carefully at NodeJS ... very interesting ..." [pt] -- Pedro Faria. http://twitter.com/pedrofaria/status/27929175013 [13:10] _announcer: Twitter: "Tooru Hiraku was successfully ssh. Node.js rest or just put a" [ja] -- altnight. http://twitter.com/altnight/status/27929336321 [13:10] _announcer: Twitter: "... Want to put a WebSocket, PHP became sockets or not! When I said this earlier Ne node.js Darn it is impossible to put in but Roripo. I moved servers again?" [ja] -- みもねる. http://twitter.com/mimonelu/status/27929408592 [13:12] ysynopsis has joined the channel [13:13] jarfhy has joined the channel [13:13] trotter has joined the channel [13:13] jherdman has joined the channel [13:14] beawesomeinstead has joined the channel [13:14] beawesomeinstead has joined the channel [13:16] matclayton has joined the channel [13:18] aheckmann has joined the channel [13:20] ntelford has joined the channel [13:21] dnolen has joined the channel [13:30] stride_: meh. when did people decide that JSP is a good idea.. [13:33] mlangenberg: Really wish there was an NginX proxy module that supports WebSocket proxying. [13:35] charlenopires has joined the channel [13:36] marshall_law_ has joined the channel [13:38] _announcer: Twitter: "who is also going to the Knowledge sharing meetup tonight about Node.js & Nutch? http://on.fb.me/bwCXWO" -- Amir Harel. http://twitter.com/amir_harel/status/27931647972 [13:38] jchris has joined the channel [13:43] _announcer: Twitter: "What is 流行Rurashii node.js." [ja] -- n.hamada. http://twitter.com/nbhama/status/27932074549 [13:44] _announcer: Twitter: "Node.js here want to try hands-on materials from listed http://d.hatena.ne.jp/t_43z/" [ja] -- matsuzaki keiji. http://twitter.com/xga/status/27932200113 [13:46] charlenopires has joined the channel [13:47] guybrush: mikeal: are there slides online of your nodejs+couchdb talk at jsconf.eu? [13:48] jetienne: mlangenberg: about websocket do you know if android 2.2 support it ? [13:49] svnlto has joined the channel [13:51] jakehow has joined the channel [13:51] nerdEd has joined the channel [13:52] SvenDowideit has joined the channel [13:55] heavysixer: I am trying to make a realtime spell-checker is node.js a good technology choice for this? [13:56] guybrush: heavysixer: i would do that on the client-side [13:56] heavysixer: guybrush: normally i'd agree but in this case I don't want the client to know the spelling [13:56] guybrush: bandwidth is expensive :p [13:56] heavysixer: and I have 70k words [13:56] heavysixer: it's for a game. [13:56] guybrush: right [13:57] heavysixer: i thought about hashing the words but still 70k on the client side sounds like a nightmare [13:57] guybrush: well i guess nodejs is fine and cool way to solve that problem [13:57] jtsnow has joined the channel [13:58] heavysixer: guybrush: ok well i have a implementation follow up question if you don't mind [13:58] sbellity has joined the channel [13:59] guybrush: i don't mind at all [13:59] heavysixer: i am still researching node, but it seems that the advantage is that it is non-blocking, if I were to just check the user's input from a mysql query that then becomes a blocking event right and we lose the speed boosts of node right? [14:00] heavysixer: i am just wondering what hte best way to store the words in a data structure for node is. [14:00] jchris has joined the channel [14:01] davidwalsh has joined the channel [14:01] mif86 has joined the channel [14:01] tekky has joined the channel [14:05] heavysixer: guybrush: does that question make sense? [14:05] guybrush: mh I dontt quite get it tbh, but yes the idea is to make everything async [14:05] teemow has joined the channel [14:06] _announcer: Twitter: "Rewrote the #javascript function argument checker to get rid of the ugly "with"! #nodejs #commonjs http://github.com/torvalamo/argtype.js" -- Tor Valåmo. http://twitter.com/torvalamo/status/27934046457 [14:08] _announcer: Twitter: "@aloncarmel soon my friend, soon. anyway, coming to the meetup today about Node.js. i know its not related to poop but we can talk about php" -- Amir Harel. http://twitter.com/amir_harel/status/27934166110 [14:08] heavysixer: guybrush: ok [14:08] heavysixer: thx [14:08] guybrush: so if you want to check if user-input matches any data in your backend (json, mysql, couchdb, ..), you can do this async [14:09] daniellindsley has joined the channel [14:09] guybrush: which means, the users request to de server will be "queued" on the server, when its done an event will be triggered [14:09] guybrush: s/de/the/ [14:11] walkah has joined the channel [14:13] guybrush: you might want to google for "longpoll" or "websockets" to get an idea about how you can implement a realtime-communication between server and client [14:14] figital has joined the channel [14:15] sivy has joined the channel [14:16] dylang has joined the channel [14:16] bentruyman has joined the channel [14:18] guybrush: http://socket.io/ makes using websockets (among others) very easy (and browser independent) [14:19] springmeyer has joined the channel [14:20] sth: guybrush: It's not a true websocket connection as far as I can tell [14:21] sth: For instance, I couldn't connect to it using the native WebSocket object [14:21] guybrush: sth: i don't know for sure, sorry for misinformation - thought that it uses websockets if possible [14:22] ivanfi has left the channel [14:22] _announcer: Twitter: "Building a node.js extension, node-waf crashes with: „ImportError: No module named Scripting“? Can’t find a solution on Google. Any help?" -- Christian Beer. http://twitter.com/christian_beer/status/27935406117 [14:22] sth: I ended up using http://github.com/ncr/node.ws.js for websockets [14:23] stride_: heavysixer: on your earlier question: if you use a mysql module that performs it's queries in the background your server can handle other requests and get back to the request that started the query when the results are available [14:23] guybrush: hm [14:23] stride_: guybrush: it should prefer using real websockets when that transport is available [14:23] _announcer: Twitter: "cool thing with #nodejs - no need for periodic cron jobs if you know when something is going to happen, just use setTimeout instead (Y)" -- Andris Reinman. http://twitter.com/andris9/status/27935515036 [14:23] tg has joined the channel [14:24] jetienne: sth: it is actual websocket, i think you saw the compatibility layer above. it is used to get the same API for all transport mechanism [14:25] heavysixer: guybrush: stride_ i run irc minimized I didn't see you were still responding let me read the scrollback [14:25] sth: jetienne: I folled the example (a http server and then using io.listen(server)), but the native WebSocket object in Safari at least didn't connect [14:25] bentruyman: so is monit the defacto method for start/stopping applications on Node? [14:26] _announcer: Twitter: "Our first project using node.js + express and MongoDB is now live: http://www.pakistansurvey.org" -- Jeff Miccolis. http://twitter.com/miccolis/status/27935707795 [14:26] matt_c has joined the channel [14:26] jetienne: sth: it is working here and now. so maybe you hit temp bugs or something [14:26] sth: maybe [14:27] sth: I'll go back and do some more testing [14:27] softdrink has joined the channel [14:31] dmcquay has joined the channel [14:32] meatmanek has joined the channel [14:33] steadicat has joined the channel [14:35] yhahn has joined the channel [14:35] _announcer: Twitter: "At the end node.js npm Irere I hope to do together" [ja] -- altnight. http://twitter.com/altnight/status/27936519671 [14:36] cferris has joined the channel [14:38] genbit has joined the channel [14:39] _announcer: Twitter: "Time to implement i18n on my nodejs application. What tools are you using? #nodejs #i18n" -- Pau. http://twitter.com/masylum/status/27936853202 [14:40] _announcer: Twitter: "Maybe I should use nave / node.js npm and installation - about their susceptibility / http://d.hatena.ne.jp/t_43z/20101013/1286957802" [ja] -- altnight. http://twitter.com/altnight/status/27936919277 [14:40] creationix has joined the channel [14:40] creationix: mornin' [14:42] c4milo: morning [14:43] jacobolus has joined the channel [14:44] sr_ has joined the channel [14:44] sr_ has joined the channel [14:44] _announcer: Twitter: "POWERED Gukaita node.js the "meta-programming Ruby" on Wednesday redflag try to write - love and courage and beer http://d.hatena.ne.jp/zentoo/20101020/1287585589" [ja] -- ぜんとくん. http://twitter.com/zentooo/status/27937270680 [14:44] gorakhargosh has joined the channel [14:47] isufy has joined the channel [14:47] tekky_ has joined the channel [14:48] tekky_: doh [14:48] tek: the oen day may internet connection at the apartment works longer than 45mins after I leave the house [14:48] bobbob has joined the channel [14:49] fbits has left the channel [14:50] bobbob: any connect/express users here run into a problem with uploading files when switching from the memoryStore to another store like redisStore or mongoStore? [14:52] _announcer: Twitter: "Stoked to see Palm contributing mobile/embedded stuff to Node.js." -- Daniel Shaw. http://twitter.com/dshaw/status/27937974923 [14:52] isufy has joined the channel [14:52] matt_c has joined the channel [14:53] _announcer: Twitter: "The JavaScript V8 engine running on or IO-driven framework. The move by itself? "V8 is included in the Node distribution" That means the Koma Kumi Teru Kano V8 engine. I do not know. http://nodejs.org/" [ja] -- shinjin kimura. http://twitter.com/kimunny/status/27938009588 [14:53] _announcer: Twitter: "I think it's funny that people are now having to qualify JavaScript libraries as "client side". Thanks Node.js, :-)" -- jerememonteau. http://twitter.com/jerememonteau/status/27938037573 [14:53] hukl has joined the channel [14:54] meatmanek has joined the channel [14:54] hukl has joined the channel [14:55] creationix: my edge connection is painfully slow [14:55] creationix: I think dialup was better [14:55] Anti-X: edge is poop [14:55] creationix: at least irc is low bandwidth [14:55] creationix: my browser is about worthless though [14:56] _announcer: Twitter: "Learning Javascript with Object Graphs (Part II) - How To Node - NodeJS http://bit.ly/949bsq #devlinks" -- DevBytes. http://twitter.com/DevBytes/status/27938317530 [14:56] bradleymeck has joined the channel [14:56] creationix: :D [14:57] creationix: hopefully I can finish part III soon and move on to a new topic [14:57] bradleymeck: hehe [14:57] _announcer: Twitter: "I learned a lot node.js 辿Ri touched up. If you provide the venue and around the company told me thank GREE. LT was the best. I'll continue to return. # Riajyu" [ja] -- 龍一. http://twitter.com/caravaco/status/27938378964 [14:57] bradleymeck: webworkers & you? [14:57] aurynn has joined the channel [14:57] creationix: bradleymeck: maybe, I want something simple and node specific [14:58] creationix: hopefully I get to learn more about C extensions in node soon [14:58] bradleymeck: i wish there was some way to get a truly secure script running client side [14:58] creationix: bradleymeck: define "secure" [14:58] bradleymeck: if you want we can have a pow wow about em [14:58] bradleymeck: i know the code wasnt fudged when it was sent down by the console [14:59] creationix: bradleymeck: https? [14:59] bradleymeck: well, i want to prevent console work from faking stuff on my script (mainly just want a trusted stream of xhr) [14:59] bradleymeck: cause even in https you can fudge stuff, but thats a pipe dream [14:59] _announcer: Twitter: "I thought an node.js non blocking write in another language. js the pleasure to use too loose smash" [ja] -- ごむ. http://twitter.com/gom/status/27938602829 [15:00] creationix: lol, the JA->EN translations are great [15:00] bradleymeck: they always sound like a poem of some kind [15:01] bradleymeck: but if you cover node addons, you have to cover eio_custom [15:01] guybrush: chinese chars look awesome [15:01] creationix: bradleymeck: yeah, for thread pools [15:01] yhahn: lol [15:02] bradleymeck: yea, if you really want chaos, merge 2 event loops [15:02] hzin has joined the channel [15:02] Yuffster has joined the channel [15:03] _announcer: Twitter: "@jpobst Heard about some project your working that's "node.js for .Net" on Herding Code. Interested. Where can I learn more?" -- Jim Argeropoulos. http://twitter.com/ExploreMqt/status/27938882147 [15:03] creationix: bradleymeck: already did that once [15:03] creationix: bradleymeck: pygtk + gstreamer [15:03] creationix: it was very painful [15:04] bradleymeck: nice, didnt see that [15:04] bradleymeck: and yes, yes it is [15:04] creationix: I think my python code was getting run in different threads and stepping all over itself [15:04] creationix: very strange errors, GUI corruption, segfaults [15:04] creationix: etc.. [15:04] _announcer: Twitter: "That no / now brewed a node.js - AtAsAtAmAtArA / http://d.hatena.ne.jp/atasatamatara/20101020/1287587041" [ja] -- altnight. http://twitter.com/altnight/status/27939027717 [15:05] _announcer: Twitter: "For those of you wondering why I ask about evented perl, instead of going staight to Node.js.. It's because I would like to base my .. [1/2]" -- Arnout Kazemier. http://twitter.com/3rdEden/status/27939029750 [15:05] bradleymeck: idk, threads are too hard to debug for me [15:05] Me1000 has joined the channel [15:05] _announcer: Twitter: "@gerritvanaaken With HP in their back, I hope they will. WebOS is pretty cool and uses node.js :D Would be a shame if they scrapped that." -- kkaefer. http://twitter.com/kkaefer/status/27939067894 [15:05] bradleymeck: i7s are apparently blowing up at too many threads sometimes too [15:05] creationix: node can use threads, just not in the main loop [15:05] creationix: and I like it that way [15:05] kkaefer: lol [15:05] creationix: keeps your core logic sane [15:05] bradleymeck: i like message passing instead of traditional thread design [15:05] kkaefer: from post to announcement < 1 sec [15:05] bobbob: any idea why a file upload using formidable inside an express/connect app would work with a memoryStore but not any other stores? (nStore/mongo/redis) file upload just hangs now [15:06] creationix: kkaefer: yeah, it's super fast, sometimes I feel it appears here before I even hit enter [15:06] bradleymeck: bobbob probably cause of reusing the same store object. but cant know without reading code [15:06] jedschmidt has joined the channel [15:06] ph^ has joined the channel [15:07] kkaefer: is the announcer a third party service or something custom written? [15:07] zemanel has joined the channel [15:07] creationix: bobbob: kkaefer someone in here write it in node [15:07] kkaefer: I imagine consuming the firehose is pretty hardcore [15:07] bradleymeck: custom bot [15:07] bradleymeck: maushu [15:07] kkaefer: or does it use a different twitter api? [15:07] creationix: kkaefer: I think you can request custom filtered firehoses [15:07] creationix: not sure [15:07] bobbob: hmm ok bradleymeck [15:07] creationix: it's streaming whatever it is [15:07] kkaefer: ah, would make sense [15:08] creationix: kkaefer: anyway I have plans to get more involved with webos and make sure node goes far there [15:08] maushu: Someone summoned me? [15:08] bradleymeck: i wish github.projecturl.xxx would always go to the github repo [15:08] halfhalo: creationix: then you will like my current project [15:08] bradleymeck: i mentioned announcer is yours [15:09] _announcer: Twitter: "@jsjohnst Actually I am seriously considering a Palm Pre 2 as WebOS2.0 has nodejs for services, I'm not stuck on Android" -- Tane Piper. http://twitter.com/tanepiper/status/27939394648 [15:09] jedschmidt: hey, is the HEAD of node failing make test for anyone else? [15:09] creationix: halfhalo: what's that? [15:09] _announcer: Twitter: "Little bit update my blog. "Node.js What is the" part1. http://d.hatena.ne.jp/badatmath/" [ja] -- juske the badatmath. http://twitter.com/bad_at_math/status/27939403492 [15:09] mape: hmm nodemon seems to work nicely [15:09] tek: really the translations are more annoying than useful... and they have became less entertainingly funny too :( [15:10] bradleymeck: can we get node on android? i enjoy them, for italian/portugese/spanish they are pretty darn spot on [15:11] Anti-X: no. [15:11] Anti-X: you just can't. [15:12] kkaefer: creationix: somehow the idea of node running on my mobile phone makes me all fuzzy ;) [15:12] benburkert has joined the channel [15:12] creationix: kkaefer: and it's much more efficient than the java stuff it's replacing [15:13] creationix: who would have thought [15:13] bradleymeck: i think the amount of interfaces it has to jump through for java is a big issue [15:13] sonnym has joined the channel [15:13] bradleymeck: also node on webos is in kernelspace [15:13] bradleymeck: ACTION drools [15:15] ceej has joined the channel [15:16] daniellindsley has joined the channel [15:16] bobbob: looks like I tracked down the formidable/session store problem to a parsing error inside formidable itself.. now to guess why it'd work with the memory store vs another option [15:19] creationix: bobbob: interesting [15:21] Ori_P has joined the channel [15:21] tg has joined the channel [15:26] _announcer: Twitter: "NodeJS STL meetup is on October 27th - http://nodejs-stl.posterous.com/october-27th-meetup-node-amqp #stl" -- Advantage Consulting. http://twitter.com/stladvantage/status/27940896288 [15:26] sebastiandeutsch has joined the channel [15:26] bobbob: does anyone know of any other options for file uploading besides formidable? [15:27] isufy_ has joined the channel [15:27] _announcer: Twitter: "@lucisferre is this for their node.js smartmachines? Did you try ssh'ing in and doing a node-restart-service?" -- Ho Yan Leung. http://twitter.com/hyleung/status/27940967633 [15:27] creationix: bobbob: you can always do it by hand, but it's a lot of work [15:27] creationix: bobbob: what time-zone are you in [15:27] sebastiandeutsch: Hi, I just installed latest node (0.2.3) and express (1.0.0.rc4) with npm (0.2.4-1) when I try to start app.js I'll get an error 'TypeError: Object # has no method 'createServer'' [15:27] creationix: felix is in germany [15:28] bobbob: est [15:28] sth: sebastiandeutsch: a require is missing [15:28] bobbob: that's what I figured [15:28] isufy has joined the channel [15:28] sth: Can you copy the referenced line? [15:29] Anti-X has joined the channel [15:29] sebastiandeutsch: how to I find out where npm stores it's libraries? [15:29] isufy has joined the channel [15:30] tj has joined the channel [15:30] bradleymeck: ~/.npmrc [15:30] bradleymeck: generally they are in ~/.node_libraries/.npm/~ [15:31] _announcer: Twitter: "Maruchipureyaonraingemu Node.js developed by "Orona" - MOONGIFT - http://bit.ly/974X14" [ja] -- arnote_news. http://twitter.com/arnoteNews/status/27941301770 [15:31] sebastiandeutsch: these directories do not exist in my fresh install (via homebrew) [15:31] creationix: sebastiandeutsch: it's probably in var/lib/node/.npm relative to your homebrew install [15:32] meatmanek has joined the channel [15:33] marshall_law has joined the channel [15:33] _announcer: Twitter: "Erlang vs node.js example article, but a lot of people come in search keywords, the number is far node.js>>> Erlang it. Erlang is understandable, but still I'm I do not understand JS." [ja] -- 亭主関白君 (the boss boy). http://twitter.com/kuenishi/status/27941526288 [15:34] hellp has joined the channel [15:35] EyePulp has joined the channel [15:36] derencius has joined the channel [15:36] EyePulp: yo ho ho [15:37] EyePulp: for some reason under socket.io, a client seems to eventually get a 200 Aborted response, and then be no longer connected. It's using xhr-multipart for the transport, if that matters. Anyone have experience with such matters? [15:38] creationix: EyePulp: I used to get that a lot with mobile safari [15:38] EyePulp: trying to determine the cause or correlate other events to that. [15:38] _announcer: Twitter: "ZMQ, node.js, v8 while studying at the same time in C + +, I was pretty strong. , The fun do not know. http://j.mp/aMBaUC # twittaw" [ja] -- YungSang. http://twitter.com/yungsang/status/27941903735 [15:38] creationix: but I think rauchg since fixed it [15:38] EyePulp: hr, [15:38] EyePulp: hrm... [15:38] bruse: so i guess node.js is pretty popular in japan [15:39] bradleymeck: mmm, im really liking the stack trace api for inline debugging [15:39] EyePulp: creationix: I think I'm on a pretty current socket.io [15:40] EyePulp: both client & -node [15:40] creationix: EyePulp: yeah, my problem was a few months ago [15:40] EyePulp: creationix: maybe I need to try a different transport [15:40] creationix: EyePulp: the others are generally better, but for mobile safari, that's the only options [15:41] EyePulp: hrm [15:41] creationix: bradleymeck: new Error('foo")? [15:41] creationix: or something else? [15:41] Anti-X has joined the channel [15:41] davidwalsh has joined the channel [15:42] leeeb has joined the channel [15:42] derencius has joined the channel [15:42] dnolen has joined the channel [15:43] bradleymeck: yea, but with some funny business, http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi => http://gist.github.com/636657 [15:45] bradleymeck: trying to make an in depth logger for debugging multiple processes at once, its not going too hot [15:45] creationix: oh, in the C++ APi [15:45] bradleymeck: no, thats pure js in v8 :) [15:45] o_o has joined the channel [15:46] _announcer: Twitter: "Abutoronikku AKBINGO do charge too much while watching the rear node.js sample execution" [ja] -- Shinichi Kodama. http://twitter.com/kodamashi/status/27942596532 [15:46] creationix: I see [15:46] tjholowaychuk: v8 does all that stuff in js [15:46] Sembiance: :) [15:46] tjholowaychuk: which is fucking me over right now actually haha [15:46] tjholowaychuk: i need it in c++ [15:47] bradleymeck: you *can* do it in c++ its just ugly [15:47] _announcer: Twitter: "Actually adding proper client and server side to my #nodejs and #extjs application :D Now I should know why something is breaking :D" -- Tane Piper. http://twitter.com/tanepiper/status/27942692244 [15:47] creationix: hmm, Japan is only 12 in the list of countries to visit howtonode.org [15:47] bradleymeck: they really need an easier way to call in and out of js [15:48] tjholowaychuk: yeah [15:49] Druid_ has joined the channel [15:50] two-bit-fool has joined the channel [15:50] bobbob: creationix: do you happen to know if memoryStore / other stores interact with buffers differently? It seems like formidable is bombing here: if (bytesParsed !== buffer.length) { [15:51] creationix: bobbob: no clue, sorry [15:51] creationix: that's all tj's code [15:51] bobbob: okely dokely :D [15:51] creationix: they can be implemented very differently though [15:52] tjholowaychuk: bobbob: what does formidable have to do with sessions? [15:52] two-bit-fool has left the channel [15:52] two-bit-fool has joined the channel [15:52] cardona507 has joined the channel [15:53] ajpiano has joined the channel [15:53] bobbob: good question tjholowaychuk [15:53] tjholowaychuk: bobbob: :p but yeah i have had formidable do that a few times [15:53] bobbob: I've been using memoryStore for a while in development [15:53] bobbob: I wanted to try other store options [redis, mongo, nstore] because memory store would blow up in production after a while [15:54] bobbob: if I use any of those, file uploads don't work, formidable throws an error [15:54] tjholowaychuk: id go with redis, it is perfect for sessions [15:54] tjholowaychuk: weird :s [15:54] _announcer: Twitter: "On my way to MetaCafe HQ, today's tech talk is about Node.Js" -- Udi Mosayev. http://twitter.com/udiudi/status/27943294799 [15:54] tjholowaychuk: ohh [15:54] tjholowaychuk: i know why [15:54] tjholowaychuk: this is a bug we have been talking about lately lol we need to buffer the events in session [15:55] Anti-X: hey tjholowaychuk, i rewrote argtype to remove the stupid with! [15:55] tjholowaychuk: Anti-X: ah nice :) [15:55] Anti-X: does that cater to your highness' demands? [15:55] Anti-X: :P [15:55] gwoo has joined the channel [15:55] _announcer: Twitter: "Node.js But the desire to look seriously think I desire (not smartphone:))" [ja] -- こまっしゅ. http://twitter.com/komasshu/status/27943379140 [15:55] bobbob: have you had any ideas on how to fix it? [15:55] bobbob: I'm surprised other people aren't running up against this [15:55] tjholowaychuk: bobbob: we need to patch connect [15:55] bobbob: hope they're not all using memoryStore :D [15:55] tjholowaychuk: yeah it is one of those dumb obvious things lol that some how no one noticed [15:56] Anti-X: http://github.com/torvalamo/argtype.js - even better than before, now 25% more easy! [15:56] martin-g has joined the channel [15:56] two-bit-fool has left the channel [15:57] bobbob: well, at least I know what the problem is now [15:57] bobbob: been hanging my head against a wall for a while heh [15:57] bobbob: banging [15:57] bobbob: hanging your head against a wall would be a little odd [15:57] tjholowaychuk: bobbob: its because we have to basically twist the request into being sync so that the data events are not lost while the session lookup is performed [15:57] tjholowaychuk: so if you use something other than mem it fucks up [15:58] rauchg_ has joined the channel [15:58] bobbob: ah, you know what, that makes sense [15:58] tjholowaychuk: bobbob: I will patch, then let me know if it works [15:59] bobbob: alright, let me know, I guess I'll just watch connect for an update [15:59] bobbob: it's b/w mongo/redis store for me [15:59] creationix: tjholowaychuk: oh, yeah, that would do it [15:59] bobbob: I'm already using mongo as my main db [15:59] bobbob: but I think redis is quicker for session stuff [15:59] bobbob: so apples to apples [15:59] tjholowaychuk: creationix: yup lol it was weird, we had it in staticProvider, where we really didnt need it [15:59] tjholowaychuk: but definitely do for session [16:00] creationix: static provider needs it too [16:00] creationix: the stat call is non-blocking [16:00] _announcer: Twitter: "(Fab) in demo.js watching. You want 噓. This route to node.js Hello, world to return a html javascript What'll ... http://bit.ly/bGl31O" [ja] -- やましろ. http://twitter.com/yamashiro/status/27943790633 [16:00] creationix: but maybe you've since removed the stat [16:00] tjholowaychuk: creationix: staticProvider is only GET/HEAD [16:00] creationix: I'm starting to think that watchfile is the correct pattern for a lot of things [16:00] _announcer: Twitter: "nodejs rely on what must be under the What linux" [zh-CN] -- 光る - 王光. http://twitter.com/wangguang_no/status/27943836376 [16:00] tjholowaychuk: so we dont need it there [16:01] creationix: tjholowaychuk: it used stat to see if the file existed or not [16:01] creationix: and if not, called next [16:01] creationix: hence the buffering bug [16:01] martin-g has left the channel [16:01] _announcer: Twitter: "Node.js, Java, Erlang, Titanium, Channel API then they get a lot of fun but ended up including a wide range of content. And (fab) + +. Sponsored by Friends @ meso @ tsuyoshikawa ー page thanks to the Green's # riajyu" [ja] -- 西山 雄也/Nishiyama Yuya. http://twitter.com/nsyee/status/27943884753 [16:01] aguynamedben has joined the channel [16:01] tjholowaychuk: creationix: there is nothing to buffer on GET [16:01] siculars has joined the channel [16:01] creationix: tjholowaychuk: there can be ;) [16:01] creationix: but yeah, I've never seen it in practice [16:02] creationix: I can't believe the spec allows it [16:02] creationix: I guess just calling next right away if it's not a GET or HEAD fixes the problem there [16:02] tjholowaychuk: yeah it allows it, ive never seen it though [16:02] tjholowaychuk: but ya we probably should revisit what may or may not need it [16:02] bobbob: well, glad I brought up something seemingly important heh [16:03] creationix: still, I think a watchfile powered static generator is better [16:03] creationix: combined with the compiler [16:03] creationix: so it can do stuff like compile less -> css and pre-gzip text files [16:03] tjholowaychuk: i have that already [16:03] creationix: and then the request can simple sendfile the right file out to the browser [16:03] omarkj has joined the channel [16:03] tjholowaychuk: but its buggy with multiple cores [16:03] creationix: thought so [16:04] creationix: how do cores affect it? [16:04] _announcer: Twitter: "Well Erlang is clearly someone ^ _ ^, but on this node.js @ stevebest. So we write - others in php" [ru] -- Elmo. http://twitter.com/_yps/status/27944109949 [16:04] Anti-X: that made sense, elmo [16:04] amerine has joined the channel [16:04] Anti-X: erlang is awesome, node is better, so we write everything else in php [16:04] omarkj has joined the channel [16:05] Anti-X: tj: in jade is there a way to put literal content, say IE conditionals? like [16:06] Anti-X: just reading through the readme wondering if i'm gonna use it [16:06] tjholowaychuk: i think you can [16:06] tjholowaychuk: people have [16:06] bobbob: I just do something like this [16:06] bobbob: != partial('shared/ie7.ejs') [16:06] tjholowaychuk: Anti-X: pretty sure our templates do just what you mention, I just dont have any tests for it [16:06] tjholowaychuk: but anything that the lexer doesnt match becomes text [16:06] tjholowaychuk: so it works [16:07] Anti-X: ahuh [16:07] Anti-X: ok then [16:07] bobbob: the conditionals broke a little while ago in jade [16:07] bobbob: that's why I put it in an .ejs partial [16:07] bobbob: but it might work now [16:08] sivy: tjholowaychuk: good am! is it possible to support both /foo and /:param as routes in express? [16:08] tjholowaychuk: conditionals should be fine, tests pass 100% [16:08] Anti-X: you should make a conditional syntax [16:08] Anti-X: :P [16:08] sivy: tjholowaychuk: or does the /:param route need to be a proper regex? [16:08] tjholowaychuk: sivy: yup, if you have /foo above /:param foo will when for GET /foo but GET /bar will be the next one [16:08] sivy: tjholowaychuk: oh ok, cool [16:09] tjholowaychuk: Anti-X: you can actually, in ./examples/conditionals (i think) [16:09] tjholowaychuk: you can re-write the AST [16:09] tjholowaychuk: with a filter [16:09] tjholowaychuk: which is how we transparently support asset compression in our templates [16:09] tjholowaychuk: even tho our tags are just regular link(rel='stylesheet') etc [16:09] _announcer: Twitter: "This is worrisome! ! Maybe even make an real-time simulation? ? Again from moongift | Node.js Maruchipureyaonraingemu developed by "Orona" http://bit.ly/bUp81D" [ja] -- 西新宿のプログラマ. http://twitter.com/shinjuku_pg/status/27944587983 [16:10] aurynn: huh. my dispatch will bind /foo with higher precedence than /:param [16:10] aurynn: if only it worked. [16:10] Anti-X: the conditionals you linked to don't make sense in an html comment context... [16:10] Anti-X: tjholowaychuk [16:11] tjholowaychuk: Anti-X: oh I thought that was what you meant :p [16:11] Anti-X: no, internet explorer conditionals [16:11] Anti-X: html comments that only Ie can understand [16:11] gorakhar` has joined the channel [16:12] tjholowaychuk: id rather not put IE specific stuff in [16:12] tjholowaychuk: MS already fucks over the world that way [16:12] Anti-X: well ie9 fixes it [16:12] aurynn: Sadly, IE conditionals make a lot of sense to support. [16:12] Anti-X: i agree [16:12] Anti-X: more people need to know about them even [16:13] tjholowaychuk: you can still use the literal version [16:13] tjholowaychuk: ill add a test for it to make sure [16:13] Anti-X: with them, you can develop for other browsers, and then AS AN AFTERTHOUGHT throw in support for IE [16:13] Anti-X: :p [16:13] aurynn: yiu can write real browser support, THEN fix things for IE. [16:13] aurynn: :) [16:14] bjarkih has joined the channel [16:14] Anti-X: it's even supported all the way back to ie 5.5 i think [16:15] _announcer: Twitter: "Have you read the links suggested by Eve at @ af83? # # git http://goo.gl/gTjZ af83 javascript # # # mvc nodejs" [fr] -- malenki. http://twitter.com/malenki/status/27945041252 [16:15] tjholowaychuk: Anti-X: yeah the literal html works fine for that [16:15] Anti-X: great [16:15] gerred has joined the channel [16:16] creationix: you know it's bad when download speeds are measured in bytes per second [16:16] jstemmer has joined the channel [16:16] bradleymeck: 56k ? [16:17] creationix: I wish [16:17] halfhalo: hah [16:17] creationix: tethered edge [16:17] halfhalo: ACTION managed to pull 6MB/s down with 4G the other day [16:17] creationix: I almost bought clear [16:17] halfhalo: 6Mb/s* [16:17] creationix: but then I moved to the bay area [16:17] tek: halfhalo: yah but you are stuck with Sprint for 4G you can have it :P [16:18] isufy has left the channel [16:18] sth: Does anyone in here use expresso? [16:18] halfhalo: Well, Sprint is the cheapiest for me, and I can live with it even with no service at my house [16:18] aurynn: tethered edge? ouch. [16:18] sth: I'm having issues compiling jscoverage [16:18] creationix: I really should go to someone's colo [16:19] oal has joined the channel [16:19] daniellindsley has joined the channel [16:19] quag has joined the channel [16:19] tek: creationix: and take the kids! the colo would love that :P [16:19] halfhalo: get vaw, free mhs, boom, done [16:19] tek: halfhalo: I cant deal with a company that allows "CS managers" to hang up on their customers after they employees lied to the customer [16:20] tek: s/they/their [16:20] tg has joined the channel [16:20] tek: and 4G coverage isnt wide enough + its WiMax [16:21] tek: much rather see a more open high speed data format for cellular [16:21] noahcampbell has joined the channel [16:21] derencius has joined the channel [16:22] renatoelias: grrr, 1 hour in debug for why I forgot to isolate the context [16:24] renatoelias: in brazil the commodity is 256kb-1m but have somepoints with 20mb-100mb [16:25] mikeal: does anyone remember that evil package [16:25] halfhalo: windows? [16:25] mikeal: it's some browser javascript that embeds a cookie you can't get rid of [16:26] bradleymeck: evercookie [16:26] mikeal: it persists itself like 8 ways and each way re-injects itself [16:26] mikeal: there we go [16:26] mikeal: evil shit [16:26] oal has joined the channel [16:26] banjiewen has joined the channel [16:26] bradleymeck: depends upon what js got a hold of [16:26] _announcer: Twitter: "@ontwiik i like the content on fresh, new topics. I liked weaving design/development video & #nodejs videos especially." -- Brian Carlson. http://twitter.com/briancarlson/status/27945985187 [16:26] ph^ has joined the channel [16:28] siculars has joined the channel [16:28] _announcer: Twitter: "@ Crexista the more casual "node.js want Ne Seminar" or "html5 want Ne Seminar" or "java-ja Ne wanted Seminar" and the like want to do" [ja] -- やましろ. http://twitter.com/yamashiro/status/27946111313 [16:29] Ori_P has joined the channel [16:30] mtodd has joined the channel [16:30] mattvermaak has joined the channel [16:31] creationix has joined the channel [16:31] evanmeagher has joined the channel [16:31] herbySk: v8: var x; x>0 [16:31] v8bot: herbySk: false [16:31] sugardave has joined the channel [16:31] davida has joined the channel [16:32] tek: herbySk: undefined is still undefined :P [16:33] stephank has joined the channel [16:34] jakehow has joined the channel [16:36] bpot has joined the channel [16:36] _announcer: Twitter: "node.js what - I am Bad at Math http://htn.to/ke8das" [ja] -- 石田. http://twitter.com/syttru/status/27946294005 [16:37] EyePulp: okay, so I'm dumb, but the socket.io client js code looks is successfully loading the flash websocket swf, but it's still ending up using the xhr-multipart transport [16:39] bradleymeck: probably because the 3s non-policy startup? [16:39] _announcer: Twitter: "Node.js: A Beginner’s Perspective: I’d been curious about node.js for a while. Finding Twitter all atwitter ... http://tinyurl.com/28ndhbf" -- Rayner. http://twitter.com/abbhadlaw/status/27946465329 [16:39] bradleymeck: v8: var x; [x<0,x==0,x>0,x==null,+x] [16:39] v8bot: bradleymeck: [false, false, false, true, NaN] [16:40] jchris has joined the channel [16:41] dohtem has joined the channel [16:41] muk_mb has joined the channel [16:44] xicubed has joined the channel [16:44] Gruni has joined the channel [16:44] dohtem` has joined the channel [16:46] aguynamedben has joined the channel [16:47] deepthawtz has joined the channel [16:48] _announcer: Twitter: "Nice-looking site by @developmentseed built in Node.js: http://tinyurl.com/288jzjf" -- Justin Miller. http://twitter.com/incanus77/status/27947179658 [16:48] springmeyer has joined the channel [16:48] tapwater has joined the channel [16:49] tjgillies has joined the channel [16:51] _announcer: Twitter: "@ Draco blue Chaos Radio on node.js: http://chaosradio.ccc.de/cre167.html" [de] -- Lars Laade. http://twitter.com/lar_zzz/status/27947355616 [16:51] TheEmpath has joined the channel [16:52] tjholowaychuk: creationix: really wish our connect changelog was not piling up for 1.0 lol [16:52] tjholowaychuk: we are kinda screwed until then [16:52] tjholowaychuk: oh well [16:52] creationix: tjholowaychuk: why not do more minor releases? [16:53] tjholowaychuk: i could trash what we have there for 1.0 but we dont have any history there [16:53] tjholowaychuk: guess its not really a huge deal [16:53] hukl has joined the channel [16:54] creationix: sencha said they would eventually bring on more people to help maintain it [16:54] creationix: but it might be a while [16:54] tjholowaychuk: ah cool [16:55] Anti-X: gotta love it when you write 76 assertions and just run them for the first time and they all pass :D [16:55] Ori_P has joined the channel [16:55] bradleymeck: nice [16:55] Anti-X: (ok i fixed 1, but still!) [16:56] bobbob: lol, you waited till you got to 76 assertions before you ran it? :P [16:56] Anti-X: i'm the kind of guy who has everything in his head [16:56] Anti-X: in my head i run the code as i read it [16:56] tek: Anti-X: assert(true, function() { return true; }) doesnt count :P [16:57] Anti-X: i suspect my bug ratio is remarkably low [16:57] EyePulp: heh [16:57] Anti-X: compared to others [16:57] EyePulp: with a very high modesty ratio. =) [16:57] Anti-X: of course [16:57] Anti-X: i might be awesome, but i'm not an arsehole about it! [16:57] EyePulp: ACTION likes to test the limits of jslint [16:58] Fullmoon has joined the channel [16:58] ph^ has joined the channel [16:58] EyePulp: I like to see how high it can count [16:58] Anti-X: probably a million billion! [16:59] mikew3c has joined the channel [16:59] Fullmoon has joined the channel [17:00] ben_alman has joined the channel [17:00] Fullmoon has joined the channel [17:01] dohtem has joined the channel [17:01] Fullmoon has joined the channel [17:01] seen- has joined the channel [17:02] _announcer: Twitter: "What they are thinking of node.js 作Ri直Sou in" [ja] -- ぽりごん. http://twitter.com/polygon_planet/status/27948193999 [17:02] Anti-X: if you get 100 years old you'll only have lived for a little over 3 billion seconds [17:03] jakehow has joined the channel [17:03] dohtem` has joined the channel [17:04] statim has joined the channel [17:04] jtg88 has joined the channel [17:04] Anti-X: probably 1-1.2 billion seconds or more sleeping [17:04] jesusabdullah: That's a lot of seconds! [17:04] jesusabdullah: Good thing I like sleeping :) [17:05] sveimac: Anti-X: how many seconds infront of the pc? [17:05] Anti-X: for me? about 2 billion at this rate [17:05] Anti-X: and yet i can't get anything done [17:06] langworthy has joined the channel [17:07] _announcer: Twitter: "In Java Non-Blocking I / O Wait, are hidden inside the container, and I'm not aware of the use. Well if you like node.js all "non-blocking" I'm just not me, not part of the request processing." [ja] -- やのつとむ. http://twitter.com/t_yano/status/27948570564 [17:07] sveimac: speak to the choir [17:07] sveimac: speaking* [17:08] benburkert has joined the channel [17:09] fermion has joined the channel [17:10] c4milo has joined the channel [17:11] c4milo has left the channel [17:11] bartt has joined the channel [17:15] rubydiamond has joined the channel [17:16] jameshome has joined the channel [17:17] madl10n has joined the channel [17:17] mikew3c has joined the channel [17:20] _announcer: Twitter: "Node.js: A Beginner’s Perspective http://dzone.com/gV2N" -- Kudakwashe Murungu. http://twitter.com/k_mvet/status/27949609586 [17:21] davidsklar has joined the channel [17:24] _announcer: Twitter: "getting a nodejs application setup on the production server" -- Michael Orr. http://twitter.com/imbiat/status/27949856396 [17:24] _announcer: Twitter: "and node.js socket.io in the things to try Hakkason WebSocket http://d.hatena.ne.jp/norry_gogo/20101020/1287595355 # riajyu" [ja] -- 井出典洋. http://twitter.com/norry_gogo/status/27949904230 [17:25] tjgillies has joined the channel [17:26] _announcer: Twitter: "node.js what - I am Bad at Math: 00:07 | Updated became unexpectedly after a long time for. In that sort of thing no longer feel like writing a blog rather than just as busy. Meanwhile, work from an unexpected direction ... http://bit.ly/cSbsRu Well" [ja] -- ksd6700kp. http://twitter.com/ksd6700kp/status/27950054838 [17:27] _announcer: Twitter: "To illustrate the perl node.js for use EV; use IO:: AIO, and aligned with the utility of a street, the only official allowed as it is based API." [ja] -- 廣木 大地 [17:27] _announcer: . http://twitter.com/hiroki_daichi/status/27950127199 [17:30] fbits has joined the channel [17:31] grahamalot has joined the channel [17:33] dohtem has joined the channel [17:33] dmcquay has joined the channel [17:34] _announcer: Twitter: "Javascript: node.js what - I am Bad at Math: http://d.hatena.ne.jp/badatmath/20101020/1287587240" [ja] -- bsiyo. http://twitter.com/bsiyo/status/27950578171 [17:35] creationix has joined the channel [17:38] lakin has joined the channel [17:38] jansc has joined the channel [17:39] _announcer: Twitter: "@robrighter Hey there! Where in Chatt do u work (if u can say). You might be interested in following @A_Robson (Ruby & node-js enthusiast)" -- Jim Cowart. http://twitter.com/ifandelse/status/27950950010 [17:40] _announcer: Twitter: "node.js, requireAsync was relieved there is" [ja] -- 廣木 大地 [17:40] _announcer: . http://twitter.com/hiroki_daichi/status/27951021442 [17:40] JCS0 has joined the channel [17:41] jansc has joined the channel [17:45] evanmeagher has joined the channel [17:45] d0k has joined the channel [17:47] _announcer: Twitter: "[Js Popular Information] node.js what - I am Bad at Math http://bit.ly/aMeisK # javascript" [ja] -- jsMagazine. http://twitter.com/jsMagazine/status/27951541338 [17:48] cloudhead has joined the channel [17:49] sschuermann has joined the channel [17:51] benburkert has joined the channel [17:52] vnguyen has joined the channel [17:53] halfhalo has left the channel [17:54] ezmobius has joined the channel [17:55] creationix: anyone here still remember ruby semantics? [17:55] tjholowaychuk: creationix: for what [17:56] creationix: tjholowaychuk: I'm trying to figure the difference between super and class on objects [17:56] Anti-X: ruby semantics: overly? [17:56] tjholowaychuk: creationix: super calls the "parent"'s method [17:56] tjholowaychuk: not sure what you mean :s [17:57] Anti-X: if it's anything like python, then class points to the static instance of the class [17:57] creationix: tjholowaychuk: I'm trying to map ruby's semantics to javascript's [17:57] creationix: and I'l looking at a diagram in the pixkaxe book [17:58] creationix: Figure 24.4. Class with So-Called Class Methods specifically if you have the book [17:58] Anti-X: 24 chapter and they're only at class methods? [17:58] Anti-X: 24th* [17:58] tjholowaychuk: creationix: its just instead of putting props directly on an object, you put them on a singleton class [17:58] tjholowaychuk: for that object [17:59] tjholowaychuk: it just looks like you are placing them on the obj [17:59] creationix: tjholowaychuk: yeah, I understand singletons and the restriction that only classes can hold methods [18:00] creationix: I'm just trying to figure out how method resolution works [18:00] creationix: but I think I figured it out, it's like .__proto__ and .prototype on constructor functions [18:00] mikew3c has joined the channel [18:01] ossareh_ has joined the channel [18:01] matt_c_ has joined the channel [18:03] dohtem has joined the channel [18:03] strmpnk has joined the channel [18:03] Twelve-60 has joined the channel [18:04] _announcer: Twitter: "just blogged re the data browser behind the Pakistan tribal region survey: http://is.gd/ga0Fd #opendata #nodejs #express #mongodb" -- eric gundersen. http://twitter.com/ericg/status/27952734564 [18:04] _announcer: Twitter: "[Node.js] [socket.js] [websocket] node.js socket.io and things to try in a Hakkason WebSocket http://goo.gl/fb/3awpY" [ja] -- チュートリアルイズム. http://twitter.com/tutorialism/status/27952745392 [18:06] matt_c has joined the channel [18:07] path[l] has joined the channel [18:08] sschuermann: re [18:09] kjeldahl has joined the channel [18:11] dexterous has joined the channel [18:11] frio80 has joined the channel [18:11] _announcer: Twitter: "U node.js you're using Python and I'm the guy in the waf supposed to type 2" [ja] -- matsuzaki keiji. http://twitter.com/xga/status/27953294304 [18:11] creationix has joined the channel [18:11] path[l]: hi [18:11] jesusabdullah: Yo dawg [18:12] frio80: hey all. Dexterous, you may want to ask your question in here again (if you ahven't already) [18:12] dexterous: ok, will do [18:12] jakehow has joined the channel [18:12] dexterous: as a bit of a node noob, i have a fundamental question about evented IO and was wondering if anyone on this channel could help me [18:13] dexterous: when we talk of evented IO, is the objective to maximize CPU usage or just to scale infinitely? [18:13] creationix_ has joined the channel [18:13] dexterous: the way i see it, eventing operations with potential latency frees the CPU to do other stuff [18:13] grahampage has joined the channel [18:14] frio80: Correct, but you can't scale infinitely. You will hit a threshold sooner or later [18:14] dexterous: agreed, when i said infinitely i meant- without having to manage individual process/thread concerns [18:15] agnat has joined the channel [18:15] dexterous: sorry i wasn't really clear [18:15] frio80: From my reading (and I am not that well versed in this), it is extremely beneficial to use this kind of mechanism for long-running requests. [18:15] phiggins has joined the channel [18:15] mikew3c has joined the channel [18:16] path[l]: my understanding was, if my other option was to start a separate js process or thread (if it had threads) per request, I would use up too much memory [18:16] dohtem` has joined the channel [18:16] frio80: dexterous: Yes, correct. No locking, mutexes, semaphores to worry about. [18:16] path[l]: ah yes, and no locking code on shared state [18:17] frio80: path[l]: Yeah, there's a limit of requests that apache can handle. If you look at nginx (which uses an event loop instead of threads) charts vs apache, you will see the benefits [18:17] dexterous: agreed, event = no locks [18:17] path[l]: so its partly about no shared state, and partly about using less memory [18:18] dexterous: path[l]: still don't get the low mem bit [18:18] TheEmpath: hail #node.js [18:18] kevwil has joined the channel [18:18] dexterous: agreed that new os processes will *usually* be expensive [18:18] ajpi has joined the channel [18:18] vnguyen: TheEmpath: ohai [18:18] TheEmpath: omg go back to #mongodb [18:19] _announcer: Twitter: "Mastering Node - Open Source Nodejs ebook - http://bit.ly/bIS4tm nodejs # # js" [de] -- Lou Gonzalez. http://twitter.com/kuroi_kenshi/status/27953761934 [18:19] TheEmpath: what is this crossover crap [18:19] TheEmpath: i remember when these channels had integrity [18:19] path[l]: haha [18:19] path[l]: dexterous well suppose my javascript runtime supported threading. wouldnt one thread per job take more ram? [18:19] dexterous: TheEmpath: i'm sorry, is my subconscious offending you in any way? [18:20] Anti-X has joined the channel [18:20] ngw has joined the channel [18:20] genbit has joined the channel [18:20] vnguyen has joined the channel [18:20] dexterous: not if we don't have much thread local state [18:20] genbit has left the channel [18:20] frio80: How far along is node? 1.0 yet? I remember reading Ryan said it's not ready to handle web server stuff but is good to run behind one. [18:20] TheEmpath: dexterous: im struggling to get context of your quip... help! [18:21] dexterous: TheEmpath: it was in response to your rant about all the crossover crap and these channels having integrity [18:21] path[l]: dexterous so the state has to be maintained anyway even WITH evented IO, but I assume each thread has its own cost [18:22] dexterous: TheEmpath: i figured my wandering subconscious must have cause that :P [18:22] TheEmpath: ah [18:22] TheEmpath: ther eit is [18:22] TheEmpath: now i got it [18:22] springmeyer has joined the channel [18:22] TheEmpath: awww, i lost it [18:23] CIA-31: node: 03Nikhil Marathe 07master * r179a7f6 10/ doc/api.markdown : Added documentation of EventEmitter.once - http://bit.ly/aroaQr [18:23] CIA-31: node: 03Ryan Dahl 07master * r3407dab 10/ doc/api.markdown : Remove old references to old 'stream' event - http://bit.ly/9rzUn2 [18:23] CIA-31: node: 03Ryan Dahl 07makefile * rfb4304e 10/ (Makefile configure.ac configure): configure... (+10 more commits...) - http://bit.ly/coh34P [18:23] dexterous: question- do you believe the cost of thread local state is that high? [18:24] path[l]: well I assume we're talking about ridiculously high numbers [18:24] path[l]: so to go back to my webcomic example [18:24] ryah_: frio80: depends on your pain threshold [18:24] ryah_: frio80: for simple, small, fail-acceptable apps it's probably fine to run on port 80 [18:24] path[l]: one thread per comic vs just the url and whatever variables are in scope if I used node/EM [18:25] xraid has joined the channel [18:25] creationix: frio80: I run all my sites on latest "stable" node directly on port 80 [18:26] path[l]: aha here is creationix, purveyour of great works in node, maybe he can answer the question [18:26] frio80: ryan_: OK, good to know. Thanks. [18:26] dexterous: but even with js threads (if there were such a thing) the mem footprint should be pretty much the same [18:27] creationix: path[l]: what's the question (though ryah knows more about scalability than me) [18:27] path[l]: truth is, I dont know [18:27] frio80: creationix: thanks. I'm just building a small web service. It can run on 80 or run behind nginx. I will try both. [18:27] path[l]: oh well I think we would welcome answers from anyone :) [18:28] creationix: frio80: here is my setup http://howtonode.org/deploying-node-with-spark [18:28] path[l]: we're trying to figure out how evented io helps you scale over say threads [18:28] creationix: frio80: except I now use nvm and npm instead of ivy [18:28] dexterous: the only real difference would be how coarse/fine grained the concurrency controls would be [18:28] creationix: path[l]: 10,000 users with push/comet/latest-buzz-word [18:28] creationix: path[l]: threads really do cost, trust me [18:29] path[l]: no as in, the mechanic [18:29] path[l]: so I was saying if I had an app to download the internet in parallel. One thread per url would take up more memory on my system than with evented IO [18:29] path[l]: yeah the question is, is the cost memory? [18:29] creationix: mutex locks are expensive [18:29] creationix: and threading needs them [18:29] creationix: node's fs stuff uses threads for example [18:29] path[l]: would I need mutex locks if I dont use shared state? [18:29] creationix: and when writing nStore (a node database), I have to be careful how many fs commands I call in parallel [18:29] frio80: creationix: awesome! thanks. def will look into this [18:30] ryah_: path[l]: os threads require some allocated space (2mb by default on linux?) for the call stack [18:30] creationix: or my profile will show 60% of the time in pthread-lock [18:30] creationix: or some such nonesense [18:30] ryah_: path[l]: with an event loop server you can typically push that footprint down to 2kb [18:30] creationix: yeah, that too [18:30] ryah_: (or so) [18:30] creationix: basically evented systems mean you're handling the scheduling manually [18:31] creationix: instead of letting the os pre-empt you and handle it automagically [18:31] creationix: there is a cost to that magic [18:31] path[l]: ryah_ ok, so the memory footprint does matter. [18:31] creationix: path[l]: yeah, for a lot of use cases, threads are too expensive in both memory and cpu usage [18:31] path[l]: if I have a multithreaded app with no shared state, the real difference is memory [18:32] ryah_: and generally when dealing with many thousands of connections, the weight on the scheduler is quite heavy. in the epoll case you end up doing work for many connections before being unscheduled [18:32] path[l]: what about compared with say erlang processes [18:32] creationix: those are mainly green-threads [18:32] creationix: so much more effecient [18:32] path[l]: ryah_ isnt the work for the many thousands of connections happening anyway, at some lower level [18:32] creationix: but erlang can get away with it because the language is functional [18:32] creationix: not much shared state there [18:32] dexterous: creationix: erlang processes == green threads ? [18:32] ryah_: path[l]: all this talk is just about os threads [18:32] ph^ has joined the channel [18:33] creationix: dexterous: and real threads/processes [18:33] creationix: I'm no erlang expert [18:33] path[l]: if I open a million connections to many different websites, insnt the node runtime managing those connections? [18:33] _announcer: Twitter: "@psnively Ex-fing-actly. I like my Python winter. And along with Ruby, we can't forget node.js on V8 being the bestest fastestest EV4R!!!" -- Evan Cofsky. http://twitter.com/tunixman/status/27954779865 [18:33] creationix: just the idea, that not every "process" is a discrete thread [18:33] path[l]: the weight on the scheduler must remain then [18:33] creationix: path[l]: define managing? [18:33] ryah_: path[l]: node cannot handle a million connections [18:33] _announcer: Twitter: "- Livedoor - [node.js] [socket.js] [websocket] node.js socket.io and in the things to try WebSocket http://ow.ly/19y3qX Hakkason" [ja] -- チュートリアルイズム. http://twitter.com/tutorialism/status/27954814509 [18:33] creationix: there is virtually no overhead other than 2kb of ram when waiting [18:34] creationix: yeah, a million is an awful lot [18:34] seen-: path[l]: I think that's a kernel concern, managing those sockets, that is [18:34] seen-: just having a socket open isn't all that expensive [18:34] dexterous: question- when node events a foreach, are the callbacks serialized or parallelized? [18:35] creationix: dexterous: Array.prototype.forEach is sync [18:35] creationix: if that's what you're talking about [18:35] path[l]: ryah_ ok I was exagerrating, but say 30,000 [18:35] mattly has joined the channel [18:35] creationix: path[l]: 30,000 idle connections isn't that terrible on node [18:35] creationix: it will probably tax the os more than node itself [18:35] dexterous: creationix: not exactly [18:35] ryah_: path[l]: yes, it's managing those connections [18:35] path[l]: well I mean, if I make a request, someone is going to have to wait till my request is back and check that it has returned [18:36] ryah_: 30k is pushing it :) [18:36] creationix: path[l]: yes, node will have a callback somewhere waiting on the event from the os [18:36] path[l]: no I mean earlier we were talking about a threaded system and the cost of epoll. Im saying someone must be paying that cost [18:36] seen-: path[l]: what cost? [18:37] creationix: the lower down the stack you push the events, the more efficient a mostly idle system gets. [18:37] creationix: epoll is pretty low [18:37] dexterous: creationix: basically, if i have an object that can let me apply a function over its (fairly complex) internal state that requires multiple invocations of the callback will they be serialized? [18:37] creationix: it's in the kernel I seem to remember [18:37] seen-: creationix: it is [18:37] creationix: dexterous: serialized as in one at a time? [18:37] ryah_: path[l]: the point is - for a thread-per-connection system the kernel needs to schedule each thread - it does work. Then the next. When you use epoll, the thread gets woken up once - notified about many events and it handles them all at once [18:37] creationix: node is single threaded [18:37] mif86 has joined the channel [18:37] gorakhargosh has joined the channel [18:38] creationix: (the js at least is single threaded) [18:38] dexterous: creationix: as in the invocation for second element is not called before the one for first returns [18:38] ryah_: path[l]: it's not clear that this system beats the scheduler, but it appears so [18:38] aurynn: how easy is it to scale across multiple processes now? [18:38] creationix: dexterous: correct, no two pieces of javascript ever happen at once [18:38] creationix: dexterous: even with async callbacks [18:39] creationix: dexterous: the other callbacks will wait till the current one is done [18:39] path[l]: ryah_ ah I see. But in what form am I paying this cost. CPU time? or memory? [18:39] creationix: aurynn: it's still multiple processes [18:39] creationix: aurynn: but there are tools to make the communication of port sharing easy [18:39] _announcer: Twitter: "nice presentation on the advantages of node.js and requireJS: http://kzyp.dojotoolkit.org/presly/end-to-end.html" -- Oren Rubin. http://twitter.com/shexman/status/27955233225 [18:39] creationix: *communication OR port sharing [18:39] path[l]: ryah_ the question Im asking is, if my app is mostly doing I/O, the cpu time must be negligible no? [18:39] creationix: path[l]: in an evented system, yes [18:40] aurynn: creationix, that's what I'm looking for - is it easy to set up tasks on other processes? [18:40] ryah_: path[l]: yes - the memory concerns are more important [18:40] gerred has joined the channel [18:40] creationix: ryah_: would not a ton of threads without epoll be killer on the cpu as well? [18:40] dexterous: ryah_: so, basically, we're just trying to find more interesting stuff to keep the CPU busy... ? [18:41] creationix: aurynn: what's your use case? [18:41] ryah_: i dont know- i imagine it runs hotter [18:41] sveimac has joined the channel [18:41] aurynn: creationix, I'd like to do distributed inserts into my DB. Each unit of work is discrete [18:41] creationix: aurynn: http://github.com/pgriess/node-webworker is good for general purpose computing [18:41] aurynn: ah [18:41] aurynn: :) [18:42] creationix: aurynn: what work do you want to farm out [18:42] creationix: serializing data can't be sent to another process [18:42] aurynn: creationix, connection setup and insert requests. [18:42] creationix: you have to first serialize it to send it over [18:42] creationix: aurynn: isn't that mostly I/O waits? [18:43] aurynn: depends on what you're doing. Multiple workers definitely provides an improvement [18:43] creationix: true [18:44] aurynn: so you *have* to serialize data to send it to another process [18:44] aurynn: but the logic to talk to another process is pretty simple? [18:44] creationix: aurynn: yeah, and the library might serialize it for you [18:45] creationix: in fact, I think pgriess' one uses msgpack internally [18:45] tilgovi has joined the channel [18:47] aurynn: Okay. Neat :) [18:48] mjr_ has joined the channel [18:48] aurynn: what was the key/value store you put together? [18:48] path[l]: ryah_ one more question about memory footprint. The actual footprint will depend on the actual variables currently in context correct? [18:48] aurynn: I forgot the name [18:48] sveimac_ has joined the channel [18:49] _announcer: Twitter: "I just flattred: 'CRE167 node.js' http://flattr.com/t/74461" -- Henning Brinkmann. http://twitter.com/hebrinkmann/status/27955883753 [18:49] blowery has joined the channel [18:49] ryah_: path[l]: in node? yes [18:50] thejefflarson has joined the channel [18:50] pedrobelo has joined the channel [18:50] mjr_ has joined the channel [18:50] bradleymeck: im working on getting a simple cluster manager working without webworkers, but yes scaling between processes (pretty much only safe way to scale cores) requires distinct communication rather than shared memory (pls god dont force shared memory) [18:50] path[l]: so doesnt the fact that my entire program is in my callback mean that pretty much everything is in context and not gced until the request is complete [18:50] softdrink: Does anyone know of any good font design software, preferably open source? [18:51] _announcer: Twitter: "Cool Video: Use your iPhone 4 to move a 3D object in a browser window with HTML5, WebWorkers and Node.js. http://goo.gl/B2Np (~24 min.)" -- Stefan Richter. http://twitter.com/smartrevolution/status/27956034036 [18:51] mjr_: creationix: did you get a new job? [18:51] creationix: mjr_: possibly [18:51] bradleymeck: fontforge works but there are probably better [18:52] ryah_: path[l]: no [18:52] jchris has joined the channel [18:52] bradleymeck: path[I] not necessarily, that is a hard question to answer, gc will occur on any variable not holding a reference anymore (so nested variables may be collected) [18:52] _announcer: Twitter: "Trying to get node.js running in cygwin. Cant' configure the gcc compiler. That's why i recommend using a linux vm on windows for node." -- Alexandra Sepe. http://twitter.com/AlexandraSepe/status/27956137604 [18:52] bradleymeck: up the chain however all closure variables will be kept [18:52] dexterous: ryah_: and wouldn't the fact that js functions close on context affect what path[l] is talking about? [18:53] devinus has left the channel [18:53] creationix: softdrink: I always liked Inkscape for vector editing, but there isn't any infrastructure for font packages [18:53] aurynn: nstore. right. [18:53] bradleymeck: v8 will skip closures however that contain all name masked variables and nothing else. (they will not skip arguments being masked or with/catch variables) [18:53] creationix: aurynn: yes, sorry I missed your question [18:54] aurynn: no problem :) [18:54] creationix: nstore is not at a stable release yet [18:54] path[l]: so let me explain. If do function foo(callback) { a = ; process a; callback() }. Doesnt a remain in context when the callback isexecuted [18:54] softdrink: yeah i use inkscape a lot, but i specifically want to make a font ;) [18:54] creationix: softdrink: well, draw the letters, and then import the vectors to fontforge [18:54] bradleymeck: path[I] oddly phrased but it is available for collections [18:54] softdrink: downloading fontforge right now [18:54] creationix: path[l]: no [18:54] softdrink: it's the conditional type features that i want, specifically. [18:55] bradleymeck: fontforge can repair fonts which is what i use it for mostly /waves fist at free fonts [18:55] ryah_: path[l]: yes [18:56] aurynn: creationix, I'm wanting something really simple/dumb for persisting (for example) session data across multiple disconnected worker processes [18:56] aurynn: in a web app [18:56] creationix: redis [18:56] path[l]: how does a get collected until callback ends. does the runtime see that a has not been passed to the callback? I dont see that happening [18:56] creationix: aurynn: if you don't mind another process, redis is really good at that kind of stuff [18:56] bradleymeck: ryah, callback isnt declared inside of foo and it does not get foo as a param? [18:56] creationix: aurynn: there is also node-dirty and nstore for a pure node solution [18:56] richcollins has joined the channel [18:57] aurynn: creationix, well, I'm already backing on PG, so I'm not sure if it makes the most sense to just use that, or what [18:57] path[l]: bradleymeck yeah but foo hasnt completed execution [18:57] MikhX has joined the channel [18:57] bradleymeck: path[I] should not affect collection [18:57] bradleymeck: wait ignore that [18:57] bradleymeck: if callback blocks it will [18:57] rcy has joined the channel [18:57] creationix: path[l]: I see what you're saying, it would be a form of tail recursion to collect it before the callback returns [18:57] Yuffster has joined the channel [18:58] creationix: path[l]: you can call the callback after a nextTick if you want [18:58] aurynn: creationix, I'd prefer something pure Node to hold the session data [18:58] bradleymeck: json files! [18:58] aurynn: heh [18:58] path[l]: whats a nextTick? [18:58] bradleymeck: next iteration available on the eventloop before events [18:58] creationix: path[l]: process.nextTick(fn) is like setTimeout(fn, 0), but slightly more effecient [18:58] creationix: it returns right away [18:59] creationix: and the function inside it gets executed on a new stack [18:59] aurynn: so use nextTick when you need shit to happen Immediately [18:59] aurynn: ? [18:59] creationix: when you need to to happen asap, but not now [18:59] bradleymeck: doing so lets you clear the execution stack [18:59] V1 has joined the channel [19:00] path[l]: ah [19:00] TheEmpath_ has joined the channel [19:00] path[l]: so Id be doing function foo { a = ; nextTick(bar())} ? [19:01] bradleymeck: function foo(bar) {...;process.nextTick(bar)} [19:01] creationix: nextTick(function () {callback()}) or nextTick(callback) [19:01] TheEmpath: philosophy question about code structure [19:02] mjr_: aurynn: I think Redis is your friend for that kind of thing, and it also works really well as a message queue, pub/sub mechanism. [19:02] aurynn: I mean, I can use pg9's k/v stuff [19:03] TheEmpath: user lands on the site, and calls up socket.io, my client, and jquery. jquery document.ready() triggers, firing off javascript code. however, the initital connection to the socket.io server hasn't resolved a session for the connection yet. [19:03] softdrink: man, i really wish i could alias "function" as "fn", or even "ƒ" in js. i type it too damned much [19:03] TheEmpath: so therefore i have a period where document.ready() is true but the socket server has not established a connection with me as a user. [19:03] path[l]: so with nextTick, a goes out of scope and can be collected? [19:03] path[l]: got it [19:03] TheEmpath: and i need to compensate for it and i am unsure which approach to take [19:03] softdrink: (you can do ƒ in jscocoa) [19:04] path[l]: http://www.neilmix.com/narrativejs/doc/code.html <--- anyone thought about using this with node.js ? [19:04] path[l]: I built something like narrative.js for ruby that works with eventmachine [19:04] path[l]: but doing it for js seems like a daunting prospect [19:06] bradleymeck: path[I] seems to be against node's general ideal of not blocking [19:06] path[l]: bradleymeck no it doesnt block. treat that like a nextticx [19:06] bradleymeck: coroutine like control is not available [19:07] path[l]: its about improved readability [19:07] ryah_: we should build up some literature references.. [19:07] bradleymeck: path[I] that would be a completely different action that what that code in the example is doing [19:07] kjeldahl has joined the channel [19:07] path[l]: its like instead of doing function foo(callback) { callback() }, I could do foo() -> bar [19:07] path[l]: hmm [19:08] path[l]: ok see this to see what I mean http://github.com/pathsny/step_rewrite (it's in ruby though) [19:08] path[l]: but it should still be clear [19:08] bradleymeck: while i do agree that linear *looking* code is appealing, i think it is ill suited to represent flow of control in a program that is changing things async [19:09] TheEmpath: aye [19:09] path[l]: I have an example on that page (which was based on the I/O in node.js example from stack overflow) [19:09] bradleymeck: path[I] i would look into some of the coroutine stuff for v8 if you really want that [19:09] TheEmpath: i have a feeling node.js will attract the php guys who will try to pigeonhole async into procedural. [19:09] jesusabdullah: Heh [19:09] TheEmpath: and shoot themselves in the foot in the longrun [19:09] jesusabdullah: node.js is attracting all sorts [19:09] holydevil has joined the channel [19:09] aurynn: TheEmpath, sounds about right :) [19:10] TheEmpath: i did php for 10 years [19:10] TheEmpath: i miss async [19:10] TheEmpath: i miss pointers [19:10] path[l]: bradleymeck I dont see why its an issue though. In node callbacks are pretty much used to sequence code [19:10] bradleymeck: not at all [19:10] bradleymeck: in simple situations yes [19:10] TheEmpath: callbacks are used to register scopes of activity, which gives the illusion of sequencing. [19:11] wilmoore has joined the channel [19:11] programble has joined the channel [19:11] path[l]: agreed , but im saying most of the time the intent is to sequence [19:11] aurynn: until you have to do sequencing to negotiate a wire. Then it gets complex. [19:11] aurynn: path[l], I disagree; I use it to write blocks of code that can run whenever. [19:11] dexterous: path[l]: disagree [19:12] path[l]: can you give me an example? Most of the node apis run their callback as the last statement [19:12] bradleymeck: path[I]: the problem with procedural style coding is 2 fold for async. 1. control flow is not linear nor treelike, therefore following non-tree like iteration is non-trivial with coroutine esque systems. 2. you must capture the entire state of a program which may or may not be important, and reconstruct that every time you go back into a control sequence [19:12] dexterous: path[l]: my sentiments are closer to aurynn's [19:12] aurynn: It adds idempotence at the scoped level [19:13] galaxywatcher has joined the channel [19:13] path[l]: aurynn Im not suggesting never using callbacks. Im suggesting using it only when the intent in not explicitly to sequence [19:13] aurynn: what? [19:13] dexterous: aurynn: mmm... idempotence is a property of the statement being executed; it being a callback wouldn't guarantee it [19:13] path[l]: and it feels to me that most of the node apis take callbacks to sequence [19:14] dexterous: aurynn: just that we'd tend to make it idempotent [19:14] aurynn: path[l], they take callbacks to execute whenever something happens. [19:14] MikhX has joined the channel [19:14] aurynn: dexterous, it doesn't guarantee idempotence, but it does tend towards it as a result of the program structure [19:14] path[l]: well take for example file.open, it's not going to execute the callback until the file is open [19:14] path[l]: and it will execute it only once [19:14] dexterous: aurynn: i'd say 'as a result of accepted norm' [19:14] path[l]: its not the same as array.forEach [19:15] path[l]: bradleymeck oh that wasnt what I was suggesting. I was suggesting rewriting the code [19:15] dexterous: path[l]: dude! array.forEach is hardly io [19:15] CIA-31: node: 03isaacs 07master * r226eff5 10/ (lib/repl.js src/node.js test/simple/test-require-resolve.js): [19:15] CIA-31: node: Add require.resolve. [19:15] CIA-31: node: Also, hack the repl so that it works as expected there, too. - http://bit.ly/cOsfkN [19:15] aurynn: I read callbacks as "yield until" [19:15] path[l]: dexterous yeah, thats my point [19:16] path[l]: I dont know many node IO apis that execute callbacks "in the middle" or "more than once" [19:16] bradleymeck: path[I], events are problematic for coroutines. I honestly do want a better way to control flow. however for quite a few things i fire up multiple callbacks at once, so i cant wait for one to be done to start the next and be near as efficient [19:16] jesusabdullah: path[l]: I've used callbacks more than once [19:16] dexterous: path[l]: hmm... you bring up an interesting point [19:17] path[l]: jesusabdullah can you give me an example of a core node api that would do that? [19:17] jesusabdullah: My irc bot starts functions that basically act as separate modules that use irc.say() as their calbacks [19:17] bradleymeck: its not the api, its the use of the api [19:17] dexterous: path[l]: what about socket code? wouldn't you get chunks from a stream as individual sequential callback invocations? [19:17] jesusabdullah: path[l]: child_process.spawn's events [19:17] path[l]: bradleymeck: that's a different problem, and even that may be doable [19:18] softdrink: you'd think that someone would have made a nice gregg shorthand font. the google is failing me. [19:18] jesusabdullah: proccor.stdout.on('data', function(data) {console.log(data);}) [19:18] bradleymeck: it is not really as i understand those examples given [19:18] jesusabdullah: It will actually call that multiple times [19:18] path[l]: jesusabdullah Im not sure what that is, could you give me a bit more context please? [19:18] mif86 has joined the channel [19:18] TheEmpath: ACTION shutters at child_process. [19:18] TheEmpath: I just hit that problem the other day [19:18] bradleymeck: take for example having a proxy full duplex on both ends, could you provide code that can handle that with the yielding style? [19:18] jesusabdullah: http://github.com/jesusabdullah/gitonup/blob/master/git.js Just did this today [19:18] ngw has joined the channel [19:19] dexterous: path[l]: what jesusabdullah said about stdout.on('data', ... [19:19] jesusabdullah: path[l]: ^^ This uses a child process to get a git log, and callbacks it [19:19] path[l]: bradleymeck yeah that's why I pointed to the other example. I copied that from step.js, so it should be easy to add an "in_parallel" [19:19] TheEmpath: path[i] have you toyed with event listeners and emit yet? [19:19] path[l]: oh let me look at that [19:19] svnlto has joined the channel [19:19] jesusabdullah: path[l]: I had to actually push all the log entries to an array so I could return all the data to something else [19:19] Akufen has joined the channel [19:19] Akufen has joined the channel [19:19] aurynn: I use emit extensively in my code [19:19] jesusabdullah: http://github.com/jesusabdullah/gitonup/blob/master/gitonup.js This, in particular [19:20] TheEmpath: event emits can be very stochastic, and the only thing that can handle that is async structuring [19:20] jesusabdullah: Before I collected the results of *all* the callback executions, I only got the *first* callback [19:20] TheEmpath: going procedural to resolve emit jitter will break your code in half [19:20] jesusabdullah: and therefore, only the latest log entry [19:20] path[l]: whats emit? [19:20] aurynn: emit places an event callback on the event queue [19:20] bradleymeck: path[I] im not sure about that, but i wouldnt use step as proxy for duplex on 2 streams [19:20] TheEmpath: event listeners are little blocks of code that you tell the main application loop to constantly check for something [19:21] path[l]: ah ok [19:21] TheEmpath: and anywhere in your code, you can emit() an action. that action will trigger the listener block to fire off [19:21] bradleymeck: that and im afraid of fragmenting things even more than callbacks and event handlers [19:21] TheEmpath: the emit can happen at any given time, therefore, procedural goes out the window [19:21] path[l]: yeah I see that there are examples where its doing more than just sequencing. Fair enough in those cases [19:22] path[l]: this thing was mostly spawned from a stack overflow post about IO in each language [19:22] path[l]: and I wanted to improve the node.js example [19:22] TheEmpath: for event listeners to work, you need callbacks, so callback scopes happen independant of a global sequence [19:22] bradleymeck: if someone unites callback + evented + continuations without stack, ill give them my firstborn [19:22] path[l]: where 4 callbacks existed just to sequence [19:23] jesusabdullah: Sometimes that happens, unfortunately. [19:23] BryanWB has joined the channel [19:23] jesusabdullah: The better apis, imo, use method chaining for this. [19:23] TheEmpath: in the case of trying to use native-mongo, you'll see a tree of callbacks that will make you vomit [19:23] bradleymeck: but logically the control flow is nested so makes sense [19:23] TheEmpath: ACTION hails Mongoose. [19:24] jesusabdullah: bradleymeck: without stack? [19:24] TheEmpath: mongoose is a great example of turning callback spasms into continuous actions [19:24] TheEmpath: represented in consolidated lines of code [19:25] bradleymeck: stack unrolling to prevent the huge hit of making a tlb + call structure when you do continue [19:25] TheEmpath: there are cases when folding patterns you see in callbacks into procedural actions work great. but i wouldn't use it as a foundation of how to approach node.js [19:25] jesusabdullah: @_0 [19:25] path[l]: yeah but if I could write something like data = readfile("file", ...); writefile("file2", data, ...) and a seperate parser rewrote that into readfile("file1", function(file) { writfile("file2", data, function (){ .. etc [19:26] path[l]: and that code is read by node [19:26] TheEmpath: aye you could easily do that [19:26] TheEmpath: but how will you handle errorS? [19:26] TheEmpath: now your outside of scope with procedural and you have to do silly things like try/ctach control/flow manipulation [19:26] TheEmpath: control-flow* [19:27] path[l]: 2 options, the easy one would be errors, data = readfile etc, so errors remains a return value [19:27] benburkert has joined the channel [19:27] jesusabdullah: I have to admit, I don't like the function(err, ans) pattern [19:27] dexterous: path[l]: actually the second snippet makes more sense to me [19:27] path[l]: the other option is try catch and a more complex rewrite [19:27] path[l]: but Im suggesting rewriting the code itself [19:27] path[l]: dexterous yeah but the intent is 1 [19:27] path[l]: but I gtg, catch up later [19:28] TheEmpath: pz sir [19:28] path[l]: thanks guys [19:28] dexterous: path[l]: bye dude [19:28] _announcer: Twitter: "@joeracer sweet! I could use a nap now. Instead I'm listening to a lame preso by a NodeJs fan-boy. I can't heckle, because I'm his boss." -- Jeff Watkins. http://twitter.com/jeffwatkins/status/27958596162 [19:28] dexterous has left the channel [19:28] bradleymeck: im all about showing what is executing when in the code, not to into the serialization of async code, so im totally biased [19:28] cyraxx: when npm says "not ok" but doesn't display any further error message, what can i do? [19:29] cyraxx: all it says is: [19:29] cyraxx: npm info it worked if it ends with ok [19:29] cyraxx: npm info using npm@0.2.4-1 [19:29] cyraxx: npm not ok [19:29] TheEmpath: its sick and needs some chicken soup :( [19:29] bradleymeck: probably your npm does not work with the current node version you have [19:29] cyraxx: i'm trying to install node-inspector, other installs worked fine [19:29] cyraxx: i have node 0.2.3 [19:29] dexterous has joined the channel [19:29] TheEmpath: so speaking of control flow and compensating for paralell actions... [19:30] halfhalo has joined the channel [19:30] halfhalo has joined the channel [19:30] cyraxx: from what i've seen, npm doesn't have a --verbose option or anything like that [19:30] jesusabdullah: It does, somewhere [19:30] nodejs-log has joined the channel [19:30] TheEmpath: user -> HTTP server gives files -> load the client.js to establish a connection to socket.io -> load jquery -> document.ready() is fired -> the response to the initial socket.io request has not come back :( [19:31] norviller has joined the channel [19:31] TheEmpath: so document.ready() is only part of the equation. I need connection.ready() as well [19:31] pedrobelo has joined the channel [19:32] pedrobelo has joined the channel [19:33] TheEmpath: or should i just queue all my client requests? [19:33] bradleymeck: theempath, huh? socketlistener.on("connection") isnt enough? [19:33] TheEmpath: its a good way to define additional listners for the socket server [19:33] TheEmpath: but am i supposed to wrap *all* of my jquery addons through it as well? [19:34] bradleymeck: ACTION is totally lost at what is going on [19:34] TheEmpath: the client has three javascript files [19:34] TheEmpath: the client that handles connection to the server [19:34] TheEmpath: jquery [19:34] TheEmpath: and custom jquery packages used on the page itself [19:34] TheEmpath: the custom jquery packages have to send data to the socket server [19:35] TheEmpath: but, alas, using document.ready() only means that the client is ready to start processing javascript [19:35] TheEmpath: it doesn't mean the server has established a question [19:35] TheEmpath: connection* [19:35] bencc has joined the channel [19:35] bradleymeck: yep [19:35] TheEmpath: and you are sugesting I put my document.ready() block into the socket.on("connection") callback? [19:36] stagas has joined the channel [19:36] bradleymeck: if you need it to be ready yes, i would test them both to be completed [19:36] TheEmpath: hrmmm [19:36] TheEmpath: an additional challenge [19:36] TheEmpath: im trying to maintain code separation between the client.js and whatever custom jquery work the developer makes [19:37] TheEmpath: so the client.js has all of the info it needs to establish a connection, communicate with the server, and have the server communicate back with any user on a page [19:37] TheEmpath: which means my socket.on("connection") is definied in the client.js [19:38] TheEmpath: in an ideal world, that remains untouched and transparent and a developer can just add his jquery work to any page he needs [19:38] bradleymeck: bind an event onto the document? [19:38] bradleymeck: custom event* [19:38] stagas: can someone explain to me why this leaks memory? http://gist.github.com/637138 [19:38] TheEmpath: interesting bradley [19:39] chapel: question, does node.js have a library for making images? [19:39] chapel: or would I have to interface with something else? [19:39] digitalspaghetti: chapel: yes [19:39] chapel: also what would be the easiest way to do graphs with node.js and jquery lets say [19:39] TheEmpath: what do you think about a queue for all outgoing socket requests from the clent? a user lands on a page and a whole bunch of socket activity appends to the queue and when the connection is established, it fires them all off [19:39] TheEmpath: i'd need that anyways to copmensate for servers being down and junk [19:39] digitalspaghetti: chapel: http://github.com/pkrumins/node-image [19:40] bradleymeck: stagas: self[o] is never deleted [19:40] digitalspaghetti: chapel: for graphs, you could do them client side with something like flot [19:40] digitalspaghetti: http://code.google.com/p/flot/ [19:40] stagas: bradleymeck: yeah but it only has a max 256 keys which are objects that their keys are deleted [19:43] stagas: bradleymeck: my guess is v8 never frees a pointer to the key, even though the keys are deleted [19:43] bradleymeck: im looking it over more than a glance, give sec [19:44] stagas: or .pop() doesn't delete properly [19:44] _announcer: Twitter: "news: Node.js Maruchipureyaonraingemu developed by "Orona": Orona is capable Node.js multiplayer game developed by tanks. Orona was JavaScri ... http://bit.ly/9KvPWz http://j.mp/ttmblr" [ja] -- tommy. http://twitter.com/2tommy/status/27959640132 [19:44] Sami_ZzZ has joined the channel [19:44] MikhX has joined the channel [19:45] bradleymeck: dels is leaking [19:45] stagas: bradleymeck: doesn't pop delete? [19:45] kylejginavan has joined the channel [19:46] mjr_: chapel: I second doing everything clieint-side with flot. [19:46] bradleymeck: stagas yes, but im trying to figure out when you are actually popping [19:46] stagas: every 10 secs [19:47] cyraxx: okay, i found out that npm does have a loglevel setting in the config which you can set to "verbose" or "silly" [19:47] cyraxx: and i think i've narrowed down the problem [19:47] cyraxx: $ curl http://registry.npmjs.org/ [19:47] cyraxx: curl: (52) Empty reply from server [19:47] cyraxx: this shouldn't happen, right? [19:47] chapel: yeah flot looks nice [19:47] chapel: just pass it some data sets [19:47] chapel: and let it plot [19:47] bartt: bradleymeck: that's a problem. [19:47] bartt: npm ls also fails. [19:47] bartt: as a result. [19:48] cyraxx: it does [19:48] CIA-31: node: 03Aaron Heckmann 07master * rbd8e4f6 10/ (lib/child_process.js test/simple/test-exec.js): Prevents child_process.exec timeouts from throwing when the child was previously killed. - http://bit.ly/9BhjeW [19:50] mjr_: cyraxx: something about the repository is flaky. isaacs is working on adding failover to npm so it can use a list of repositories. [19:50] mjr_: RIght now there is only one [19:50] tjholowaychu has joined the channel [19:50] dexterous has left the channel [19:51] bradleymeck: stagas i have it running long time right now, no leaks actually that im seeing after several pop loops, i was incorrect [19:51] cyraxx: mjr_: okay, so there's nothing i can do right now except installing stuff from sources? [19:51] mjr_: sadly, no [19:51] mjr_: It'll probably come back soon. [19:52] cyraxx: soon as in a few minutes or more like tomorrow? [19:52] _announcer: Twitter: "What are all the kids using for memcached with Node.js these days? Every client seems to have some fault with it; wtf?" -- Ryan McGrath. http://twitter.com/ryanmcgrath/status/27960141002 [19:52] mjr_: You could send email to the npm ilst and make sure that Isaac knows about it. [19:52] mjr_: cyraxx: I'd guess it'll stay broken until Isaac looks at it, if he hasn't. [19:53] bradleymeck: ACTION summons isaacs [19:53] stagas: bradleymeck: I did a dels = [] after the while delete loop, and it got a little better, but stiil I'm at 16 million counts and I'm on 170-230mb usage [19:53] stagas: bradleymeck: it started at 60-90mb [19:53] _announcer: Twitter: "am just trying to get them all... rails3, mongodb, node.js, sammy.js, .... blablabla.. and now: EventMachine! any tips or tuts?" -- Amr Numan Tamimi. http://twitter.com/amrnt/status/27960232783 [19:53] cyraxx: i see [19:53] stagas: bradleymeck: out of memory on 18 million [19:54] bradleymeck: i am popping from 60mb to 120mb and down again [19:54] stagas: shit. [19:54] mjr_: cyraxx: a completely empty response like that, not even talking HTTP, makes me think this is a couchone problem. [19:54] stagas: bradleymeck: it doesn't leak at all? how many keys are you now? [19:54] gbot2 has joined the channel [19:54] richcollins has joined the channel [19:54] cyraxx: mjr_: it doesn speak http, it just gives an empty response [19:55] cyraxx: s/doesn/does/ [19:55] bradleymeck: i took out that statement was measuring other stuff, its been going at around .5M/10s for 10min~? [19:55] mjr_: Right, so I'm guessing it is the couchone load balancer giving up [19:55] hdon has left the channel [19:56] stagas: what statement? [19:56] Craig` has joined the channel [19:56] _announcer: Twitter: "Well understood. / Node.js what - I am Bad at Math http://htn.to/4Jj8Nm" [ja] -- 阿川 耕司 (AGAWA Koji). http://twitter.com/atty303/status/27960454489 [19:56] Craig`: hey guys, when i type node in terminal i get interpreter, is there a way to leave [19:57] Craig`: i tried functions like exit() etc [19:57] tek: .exit or ^D [19:57] tek: Craig`: ^ [19:57] Craig`: thanks. [19:57] tek: Craig`: .help might also be worth checking out ;) [19:57] Craig`: thanks :) [19:57] Craig`: just installed node, and new to it :) [19:57] ryah_: should path.join normalize? [19:57] ryah_: i feel utterly indifferent to the question [19:58] stagas: bradleymeck: you changed it? can you gist it? [19:58] ryah_: but i'm sure there is a flame war waiting to happen [19:58] mjr_: ryah_: what does "normalize" mean in this context? [19:58] gbot2 has joined the channel [19:59] stride: mjr_: resolve relative paths I guess [19:59] gbot2 has joined the channel [19:59] mjr_: oh man, that IS a flame war waiting to happen [19:59] ryah_: join('foo','..','bar') == 'foo/../bar' or 'bar' ? [19:59] cyraxx: mjr_: call me blind, but where IS the npm list? [19:59] gbot2 has joined the channel [19:59] themiddleman has joined the channel [20:00] tek: cyraxx: you mean like the command? 'npm list' <-- output? [20:00] mjr_: ryah_: I'd certainly expect path.join(), part of the path module, to figure that stuff out. [20:00] mjr_: If you want array.join, you can also call that [20:00] cyraxx: tek: no, i mean < mjr_> You could send email to the npm ilst and make sure that Isaac knows about it. [20:00] mjr_: But I agree, contentious. [20:00] ryah_: mjr_: good point. normalize it shall. [20:00] mjr_: cyraxx: http://groups.google.com/group/npm-?pli=1 [20:01] aguynamedben has joined the channel [20:01] cyraxx: thanks [20:01] ryah_: ah that 'npm-' group [20:01] ryah_: well named. [20:01] stride: oh, on paths: does node figure store the system specific delimiter for files somewhere? [20:01] stride: uh, s/files/paths [20:02] ryah_: delimiter? [20:02] ryah_: you mean \ vs / ? [20:02] stride: yep [20:02] ryah_: node doesn't run on windows [20:02] _announcer: Twitter: "yeah! CRE167 to see all that goes since grad from even good. 167 So now node.js - very nice! http://chaosradio.ccc.de/cre167.html" [de] -- Manuel. http://twitter.com/wumble/status/27960818842 [20:02] ryah_: cygwin has normal paths [20:02] stride: oh, okay then :) [20:02] mjr_: I know, npm minus. [20:02] ryah_: one would imagine that if we ever get it running on windows that we'd expose that somehow. [20:04] creationix has joined the channel [20:04] stride: or.. we could simply hit everybody who would want that with something heavy [20:04] CIA-31: node: 03Ryan Dahl 07master * r8c0e87f 10/ test/simple/test-path.js : Add some failing tests for path.join - http://bit.ly/aEYaB6 [20:04] bradleymeck has joined the channel [20:04] bradleymeck: fin internet [20:04] bradleymeck: stagas : the log on count of total, im showing number of entries in del/ memusage / keys on self (but not subkeys) [20:06] illver has joined the channel [20:07] twoism has joined the channel [20:07] jansc has joined the channel [20:08] _announcer: Twitter: "IRC would be the members of node.js I like a sore." [ja] -- 佐久良ゆきかぜ. http://twitter.com/s_yukikaze/status/27961229415 [20:09] mjr_: Oh man, translations. [20:09] bradleymeck: damnit i need to learn japanese just to read these [20:09] bentruyman has joined the channel [20:09] twoism has joined the channel [20:10] _announcer: Twitter: "# Jscamp completed, it talks node.js, canvas, couchdb, Web Sockets, git ... refreshing" [fr] -- rmat0n. http://twitter.com/rmat0n/status/27961354370 [20:10] stagas: bradleymeck: I don't understand what you did. can you gist it? it still leaks [20:11] ysynopsis has joined the channel [20:11] bradleymeck: http://gist.github.com/637215 [20:13] _announcer: Twitter: ""Almost" real-time web application monitoring with my fresh app... http://skrci.me/gPU79 #rails #mongodb #faye #nodejs #bayeux #ruby #fuz" -- Oto Brglez. http://twitter.com/otobrglez/status/27961564047 [20:13] cyraxx: ah, nice [20:14] cyraxx: seven minutes after i sent an email to the npm list, registry is back up [20:14] _announcer: Twitter: "just returned from the Knowledge sharing meetup - Node.js & Nutch - was really interesting (was the only c# dev there..)" -- Avi Pinto. http://twitter.com/uberPinto/status/27961658754 [20:16] jasondavies has joined the channel [20:17] c4milo has joined the channel [20:17] matjas has joined the channel [20:18] stagas: bradleymeck: thanks, but it still leaks here :/ out of mem again after a few mins [20:18] stagas: wtf [20:18] bradleymeck: going strong at 30min here [20:19] bradleymeck: im on node head, though that shouldnt change anything [20:19] stagas: I'm on cygwin [20:19] stagas: so maybe there's a leak there [20:21] stagas: v0.2.3 [20:21] hsuh has joined the channel [20:22] bradleymeck: on mac os here [20:23] c4milo: ACTION on a ESL class :s [20:23] _announcer: Twitter: "node.js birth story. Event loop and threading. [Node.js what - I am Bad at Math http://d.hatena.ne.jp/badatmath/20101020/1287587240]" [ja] -- azu. http://twitter.com/azu_re/status/27962238861 [20:24] _announcer: Twitter: "just wrote my first bit of node.js code. I wonder how many fanboys will reply to this tweet :)" -- Paul Dix. http://twitter.com/pauldix/status/27962335930 [20:25] mikecsh_ has joined the channel [20:26] stagas: master doesn't compile on cygwin :( [20:26] bradleymeck: !tweet @pauldix, all of us, we are stalking you [20:27] tosuk has joined the channel [20:28] admc_ has joined the channel [20:28] admc has joined the channel [20:28] sebastiandeutsch has left the channel [20:29] _announcer: Twitter: "Huh. Node.js runtime is on the #HP #WebOS 2.0?" -- Xavier Ho. http://twitter.com/Xavier_Ho/status/27962638739 [20:29] _announcer: Twitter: "Check out www.PakistanSurvey.org - running MapBox maps, #OpenLayers and TileLive on #Nodejs. Blog post w/ details at http://is.gd/g9I0e" -- MapBox. http://twitter.com/MapBox/status/27962685485 [20:29] stagas: can anyone else try http://gist.github.com/637215 to see if it leaks? [20:30] saikat has joined the channel [20:31] saikat_ has joined the channel [20:31] tyfighter has joined the channel [20:31] _announcer: Twitter: "@pauldix node.js can generate fanboy tweets faster than any other system." -- Mike Perham. http://twitter.com/mperham/status/27962825185 [20:32] springmeyer_ has joined the channel [20:33] mikeal has joined the channel [20:33] sschuermann: http://github.com/jchris ... is this guy here? [20:34] alex_b has joined the channel [20:34] TheEmpath: a request queue is the best answer for my issue [20:35] stride: stagas: which of the values do I have to watch? [20:35] stagas: stride: memory [20:36] stagas: stride: it should be 60-120mb if you don't leak, if it leaks it would grow slowly and then throw a process out of mem at some point [20:37] _announcer: Twitter: "We launched www.PakistanSurvey.org today! It's written entirely in server-side JavaScript, and built using node.js and Express." -- Will White. http://twitter.com/willwhitedc/status/27963218913 [20:37] bencc has left the channel [20:37] xla has joined the channel [20:38] stride: stagas: all the values are going down every now and then (node 0.2.2 on a VM running CentOS 5.5) [20:39] _announcer: Twitter: "we're going be posting daily(ish) insights from RedMonk Analytics to @analyticsmonk, so give it a follow. today's? on #node.js, what else?" -- steve o'grady. http://twitter.com/sogrady/status/27963383702 [20:40] stagas: stride: yes, but if you leave it running it would eventually grow, or not [20:41] stride: oh, longer? I'll leave it on a bit [20:41] ryah_: poll: path.join('', '/x') == ? [20:41] ryah_: what would you expect [20:42] bradleymeck: ./x [20:42] bradleymeck: '' would be . [20:42] isaacs has joined the channel [20:42] zomgbie has joined the channel [20:42] ircretary has joined the channel [20:43] bradleymeck: wow thats o ne heck of a flood [20:44] jesusabdullah: w8 wat [20:44] ryah_: anyone else/ [20:44] ryah_: ? [20:45] jesusabdullah: Flood? [20:45] stride: ryah_: the python way would be /x [20:45] herbySk: ryah:_ exception or /x [20:45] mape: Error? since that doesn't match anything? [20:45] herbySk: (probably /x, but exception if the first string wasn't empty) [20:45] jesusabdullah: ACTION tries it, finds out [20:46] mape: oh, nnm [20:46] muk_mb has joined the channel [20:46] jesusabdullah: "join takes exactly one argument (2 given) [20:46] bradleymeck: what does python give for ''? [20:46] jesusabdullah: for snakes, anyways [20:47] stride: bradleymeck: '' [20:47] herbySk: herbySk: ryah_: ^^^ (typo on name, sorry) [20:47] bradleymeck: so join on a single empty string is an invalid url? [20:47] stagas: working dir = '' = '.' for path.join since it would be used in configs mostly [20:47] Fullmoon has joined the channel [20:48] bradleymeck: but working dir is not '' :( at least not in traditional [20:48] aubergine has joined the channel [20:49] Anti-X: lol @ bradleymeck stalking [20:49] _announcer: Twitter: "@aaronheckmann hey during node knockout what was the system you set up to auto-reset the server on change? I need that monitor... #nodejs" -- Hunter Loftis. http://twitter.com/HunterLoftis/status/27963875173 [20:49] stride: heh, there's a blog post discussion path.join :D [20:49] stride: http://trentmick.blogspot.com/2010/08/who-knew-path-joining-differed-so.html [20:50] probably_ has joined the channel [20:51] springmeyer has joined the channel [20:52] stagas: 'cd for each given path in sequence to get the resultant directory' sounds nice [20:52] _announcer: Twitter: "sooo, #webos devs (#webosdev) - you have not replied with thoughts on how you might use node.js services in webOS 2.0. #inquiringminds" -- RyanGahl. http://twitter.com/RyanGahl/status/27963997792 [20:53] bradleymeck: interesting [20:53] creationix has joined the channel [20:53] _announcer: Twitter: "Real World Node.js - Redis and streaming - Boldr: http://tinyurl.com/3yzjr6f" -- Yuri Nevsky. http://twitter.com/outself/status/27964045049 [20:53] Anti-X: python is different in so many ways [20:53] Anti-X: you can never directly port something to or from it [20:53] stride: hm, tested a few combinations in the python CLI, I like it. if I just wanted something that puts together the parameters I could use an array function [20:54] bradleymeck: i hightly dislike python making implications that seem to be odd (cd from a dir makes sense, but you arent talking dirs, just paths) [20:54] jbrantly has joined the channel [20:54] Anti-X: no that was his implication [20:54] Anti-X: not python's [20:55] Anti-X: that's how he was thinking of it [20:55] bradleymeck: i know [20:55] jbrantly has left the channel [20:55] Anti-X: but yeah, python is against 'hidden' behaviour.. and 'join' seems like it should actually join [20:55] bradleymeck: but there is a lot of odd things, for example, a naive impl of join would be completely be incorrect compared to the standard [20:56] bradleymeck: python is against hidden behavior but has a lot hidden ironically when i use it [20:56] bradleymeck: anywho i gtg, cheers [20:56] Anti-X: there's a difference between shorthand and hidden [20:56] Anti-X: the join thing is hidden [20:57] Anti-X: ie. unexpected behaviour, or non-obvious behaviour [20:58] bradleymeck: indeed, but things like functions splitting up behavior on unicode v ascii does exist (oh god built in file helpers) [20:58] Anti-X: generators are shorthand for... well... making a function with yield [20:58] bradleymeck: im not talking private data, im talking branching behaviors oddly [20:58] bradleymeck: baaah could go on for hours [20:58] Anti-X: yeah [20:59] voodootikigod: guillermo you here? [21:00] kevwil has joined the channel [21:01] ben_alman has joined the channel [21:02] chapel: hmm [21:02] chapel: anyone using cloudant for their couchdb hosting? when I am testing it, it disconnects me, I guess it doesn't like me making so many connections? [21:03] stagas: stride: how's it going? did it leak? [21:03] stride: nope, still running like this pink duracell rabbit [21:03] stagas: stride: node version? [21:03] stride: 0.2.2 [21:04] matt_c has joined the channel [21:05] chapel: stagas << it gets up past 300 then drops down [21:06] stagas: chapel: mb? [21:06] chapel: yeah [21:07] stagas: chapel: but does it increase through time? [21:07] stride: stopped it, the minimum values stay constant as well [21:07] chapel: umm, the most it gets up to is 300, most ive seen is 344 [21:07] gerred has joined the channel [21:07] chapel: oh 352 [21:07] chapel: but it drops down [21:07] chapel: sometimes to 150 or so [21:07] chapel: but most of the time in the 200s [21:08] chapel: fluxuating up and down [21:08] stagas: chapel: you're probably leaking can you leave it on a bit? [21:08] chapel: uhh sure I guess [21:08] chapel: I need to go get some food, so I could leave it on [21:08] stagas: chapel: what system are you on? [21:08] chapel: System Info: Model:  Hack Pro Intel Quad Core · CPU:  4 @ 2.7 GHz · RAM:  4 GB · OS X:  Version 10.6.3 (Build 10D573) · Client:  Linkinus 2.2 Beta/21847 · Style:  Simplified [21:09] Gruni has joined the channel [21:10] chapel: well Ill bbiab [21:10] chapel: will leave it running [21:10] ossareh has joined the channel [21:10] stagas: ok [21:10] chapel: hopefully it doesn't kill my system :P [21:11] davidascher has joined the channel [21:12] _announcer: Twitter: "@hunterloftis check out nodemon from @rem - it does that #nodejs" -- Tane Piper. http://twitter.com/tanepiper/status/27964839029 [21:12] TheEmpath: woohoooo! async, sync, and long polling implemented! [21:13] Anti-X: wow you're so web2.5 [21:14] _announcer: Twitter: "node.js とは何か ... http://icio.us/js4vdg" -- youichi kato. http://twitter.com/katoy/status/27964935351 [21:15] mytrile has joined the channel [21:16] TheEmpath: web2.75 sir [21:16] Prometheus has joined the channel [21:20] cognominal has joined the channel [21:21] hassox has joined the channel [21:22] _announcer: Twitter: "Clojure-based Node.js rip-off == Chode.js?" -- Michael Cerna. http://twitter.com/axehomeyg/status/27965372020 [21:22] ehaas has joined the channel [21:24] Ori_P has joined the channel [21:25] _announcer: Twitter: "@jamescarr Are thinking about a St Louis Node JS Meetup?" -- Mark Borcherding. http://twitter.com/MarkBorcherding/status/27965600196 [21:28] _announcer: Twitter: "@MarkBorcherding Already have one going, albiet small attendance http://nodejs-stl.posterous.com/october-27th-meetup-node-amqp" -- jamescarr. http://twitter.com/jamescarr/status/27965834634 [21:30] MikhX has joined the channel [21:32] _announcer: Twitter: "@jamescarr NodeJS was very impressive at Strange Loop. I might be coming to these as well." -- Mark Borcherding. http://twitter.com/MarkBorcherding/status/27966124151 [21:32] chapel: hmm [21:32] chapel: stagas [21:33] chapel: so its been running almost 30 minutes [21:33] chapel: and it does the same thing, inches up to 350ish [21:33] chapel: then drops down to <200 [21:33] chapel: doesn't always hit up at 300+ [21:33] chapel: but drops frequently [21:34] cataska has joined the channel [21:34] Duncan_ has joined the channel [21:36] _announcer: Twitter: "@MarkBorcherding Also, I'll be doing an intro to node.js talk right here in Columbia on the 28th. :) http://is.gd/gaep8" -- jamescarr. http://twitter.com/jamescarr/status/27966365333 [21:36] easternbloc_ has joined the channel [21:37] Nohryb has joined the channel [21:38] gbot2 has joined the channel [21:38] _announcer: Twitter: "@aaronheckmann is forEach to iterate over a js array in node a commonJS standard? .each is sexier imo" -- Jordan Shaw. http://twitter.com/jshaw86/status/27966560954 [21:40] gbot2 has joined the channel [21:41] path[l] has joined the channel [21:46] gbot2 has joined the channel [21:47] marshall_law has joined the channel [21:47] MikhX_ has joined the channel [21:48] deepthawtz has joined the channel [21:49] gerred has joined the channel [21:52] twoism has joined the channel [21:52] stagas: chapel: ok thanks! :) it's just me then [21:53] chapel: :) [21:54] chapel: good luck [21:54] chapel: you should run linux or osx :P [21:54] chapel: much better experience [21:54] stagas: I should [21:54] Blackguard has joined the channel [21:58] _announcer: Twitter: "For that I got node.js and couchdb on mac installiert.Größte self discipline prevents me from playing with it and continue to Titanium" [de] -- Bastian Sackermann. http://twitter.com/Samisdat/status/27967910140 [21:58] brianmario has joined the channel [22:00] xla has joined the channel [22:03] marshall_law has joined the channel [22:05] Blackguard has joined the channel [22:06] gbot2 has joined the channel [22:06] SvenDowideit has joined the channel [22:11] Validatorian has joined the channel [22:12] TheEmpath: how can i see how many users are connected to a socket server with socket.io? [22:15] jbrantly has joined the channel [22:16] matt_c has joined the channel [22:16] creationix has joined the channel [22:16] jamescarr: off the top of my head I would guess you should just track how many clients connected [22:17] jamescarr: Hmmm... just noticed there's no zeroMQ module for node [22:17] jamescarr: maybe I'll make one [22:18] synthomat has joined the channel [22:21] synthomat: hey guys. there is something i do not understand with node... if i have to query a database within a http-request, how do i wait until the query is processed and then let the request put something out to the browser? [22:21] Nohryb has joined the channel [22:22] _announcer: Twitter: "NodeJS Basic Steps: In this episode, I’ll show you the basic about NodeJS. We’ll start with download, installation... http://bit.ly/9QuAHF" -- ontwik. http://twitter.com/ontwiik/status/27969688473 [22:23] _announcer: Twitter: "#NodeJS Basic Steps http://goo.gl/fb/R5QeQ @ontwiik #javascript" -- ontwik. http://twitter.com/ontwiik/status/27969758826 [22:23] breccan has joined the channel [22:23] _announcer: Twitter: "Ah crap, not looked at the clock. Node.js phonegap + incoming = awesomeness. Hopefully this weekend I can share my idea." [nl] -- Richard Tuin. http://twitter.com/Richard_Tuin/status/27969785884 [22:24] TheEmpath: synthomat - callback chains [22:25] twoism has joined the channel [22:26] synthomat: h [22:26] synthomat: m [22:28] Ori_P_ has joined the channel [22:35] synthomat: okay this ist poorly documented [22:35] Validatorian: synthomat: which module for which db are you using? [22:38] trochala has joined the channel [22:40] synthomat: i gave up with geddy + mongodb :( [22:40] _announcer: Twitter: "node.js like. WSH seems that if I look a lot like Chinese that I was in,,," [ja] -- わどう. http://twitter.com/11wado/status/27971016735 [22:40] synthomat: both are asynchronous but geddy was already finished the output before mongodb had returned a result [22:44] Validatorian: synthomat: http://gist.github.com/637504 -- maybe that will help [22:44] Validatorian: oops, forgot to comment out the dummy code [22:45] aubergine: jamescarr: nodejs module for zeroMQ would be totally awesome >:-D [22:46] synthomat: will try that out instantly ;-) [22:47] markwubben has joined the channel [22:48] [[zz]] has joined the channel [22:48] CIA-31: node: 03isaacs 07master * rb0aadbe 10/ doc/api.markdown : Docs for require.resolve - http://bit.ly/av8P4c [22:48] CIA-31: node: 03isaacs 07master * r492fc0d 10/ src/node.js : (log message trimmed) [22:48] CIA-31: node: Split out modulePaths and defaultPaths [22:48] CIA-31: node: This way, the "default" paths of ~/.node_libraries and {prefix}/lib/node are only checked *after* anything that the user has placed into the NODE_PATHS environ, or pushed onto require.paths. [22:48] CIA-31: node: This makes require.paths a much more effective write-target, albeit slightly [22:48] CIA-31: node: less useful as a read-target. However, given the existence of [22:48] CIA-31: node: require.resolve(), this is less of an issue -- if you want to know what a module [22:48] CIA-31: node: ID will map to, just ask that question and get an authoritative answer from the [22:48] CIA-31: node: 03isaacs 07master * rbfc6b51 10/ lib/repl.js : The cwdRequire hack is no longer necessary with the require.resolve refactor. - http://bit.ly/bFgq4f [22:48] CIA-31: node: 03isaacs 07master * rb0adaff 10/ (doc/api.markdown src/node.js): [22:48] CIA-31: node: require looks in node_modules folders [22:48] CIA-31: node: for modules starting with the __dirname and moving up. [22:48] CIA-31: node: This makes it much easier to localize dependencies to a particular program. - http://bit.ly/c5Dp5W [22:48] CIA-31: node: 03isaacs 07master * r5e14c8b 10/ (doc/api.markdown src/node.js): Add ~/.node_modules as well as ~/.node_libraries - http://bit.ly/dmJyUO [22:48] isaacs: wooooo!!! [22:48] isaacs: my name in lights! [22:49] Anti-X: that's just narcisissim! [22:50] Validatorian: synthomat: http://gist.github.com/637515 <-- fixed a few things [22:52] synthomat: hum, lost the mongodb-lib :( [22:52] synthomat: ah got it :D [22:52] Anti-X: it's behind the couch [22:52] Anti-X: BEHIND THE COUCH [22:52] Anti-X: GET IT [22:52] Validatorian: zing [22:53] Aria has joined the channel [22:54] MikhX has joined the channel [22:54] galaxywatcher has joined the channel [22:56] mr_daniel has joined the channel [22:56] mattly has joined the channel [22:58] ajpiano has joined the channel [23:00] _announcer: Twitter: "ReadWriteHack: Why Developers Should Pay Attention to Node.js http://rww.to/aanXpG" -- ReadWriteWeb. http://twitter.com/RWW/status/27972552210 [23:00] CIA-31: node: 03Tom Hughes 07master * r78da9cb 10/ src/node.cc : [23:00] CIA-31: node: Add --max-stack-size flag. [23:00] CIA-31: node: v8 doesn't expose a command-line flag to set the stack size, so this [23:00] CIA-31: node: adds a new flag that node understands how to handle and uses v8's [23:00] CIA-31: node: ResourceConstraints API. - http://bit.ly/dd3Nsm [23:01] _announcer: Twitter: "Why Developers Should Pay Attention to Node.js http://nblo.gs/9pDoF" -- Flaming Enchirito. http://twitter.com/FlamingChirito/status/27972641303 [23:01] rnewson has joined the channel [23:01] _announcer: Twitter: "Why Developers Should Pay Attention to Node.js: There's a substantial amount of buzz and enthusiasm right now about... http://dlvr.it/7JT21" -- pchelp4free. http://twitter.com/technews4free/status/27972673399 [23:01] saikat has joined the channel [23:01] _announcer: Twitter: "#Tech #TechNews Why Developers Should Pay Attention to Node.js http://rww.to/cDpmex #DhilipSiva" -- DhilipSiva -CyberMan. http://twitter.com/DhilipSiva_Tech/status/27972678080 [23:03] Athox has joined the channel [23:05] _announcer: Twitter: "ReadWriteWeb: Why Developers Should Pay Attention to Node.js http://bit.ly/ccPSpB Check it out" -- Miles Price. http://twitter.com/CloudTap/status/27972962908 [23:05] _announcer: Twitter: "ReadWriteWeb - Why Developers Should Pay Attention to Node.js: There's a substantial amount of buzz and enthusiasm... http://rww.to/as5rFG" -- bViral. http://twitter.com/bViral/status/27972964018 [23:05] _announcer: Twitter: "news Why Developers Should Pay Attention to Node.js: There's a substantial amount of buzz and enthusiasm righ... http://bit.ly/bMRx5W media" -- ozman. http://twitter.com/ozmanzia/status/27972970653 [23:05] _announcer: Twitter: "Why Developers Should Pay Attention to Node.js: There's a substantial amount of buzz and enthusia... http://bit.ly/bOwnSI #frankguillen #fb" -- frank guillen. http://twitter.com/frankguillen/status/27972971185 [23:08] _announcer: Twitter: "Want to learn more about node.js or guillermo, 2 in 1 http://rww.to/922UBQ" -- Thianh. http://twitter.com/thianhlu/status/27973258400 [23:10] madl10n has joined the channel [23:10] _announcer: Twitter: "Why Developers Should Pay Attention to Node.js - [ReadWriteWeb] http://rww.to/bzkf1g" -- KickPost. http://twitter.com/KickPost/status/27973403865 [23:10] _announcer: Twitter: "Why Developers Should Pay Attention to Node.js: There's a substantial amount of buzz and… http://goo.gl/fb/UeX9X" -- Feedjunkie. http://twitter.com/Feedjunkie/status/27973408976 [23:11] synthomat: Validatorian: http://gist.github.com/637550 [23:11] twoism has joined the channel [23:11] synthomat: can't figure out how to plug these frazzles into each other [23:12] Validatorian: synthomat: 1s [23:13] synthomat: eh, added an extra line [23:13] ddollar has joined the channel [23:13] _announcer: Twitter: "#onlinemarketing Why Developers Should Pay Attention to Node.js http://bit.ly/cg8es5 #socialmedia" -- soshableweb. http://twitter.com/soshableweb/status/27973658894 [23:15] Validatorian: I've never used mongo.. really, I've only used redis with node. What if you put the mongo.addListener inside the .get('/... ? [23:15] synthomat: Validatorian: wanted to hack a tiny blog-engine :-) [23:15] synthomat: does not work [23:15] Validatorian: have you looked at wheat? [23:15] synthomat: the response blocks then [23:15] _announcer: Twitter: "If you're like me and converting those nasty shell scripts over to Node.js scripts, here's a nice little arg parser: http://bit.ly/9p01eQ" -- Benjamin Truyman. http://twitter.com/bentruyman/status/27973800635 [23:15] synthomat: do you have an example for redis? [23:16] Validatorian: synthomat: http://github.com/creationix/wheat <-- node.js blog [23:16] synthomat: nah wanted to do it on my own, just to practice ;-) [23:16] bentruyman: synthomat: I'm doing the same thing :-) [23:17] bentruyman: Express + Markdown + Git + Mongo [23:17] synthomat: yeha :) [23:17] jakehow has joined the channel [23:17] Validatorian: synthomat: http://github.com/fictorial/redis-node-client <-- fictorial has good examples there, and awesome examples in the test file [23:17] synthomat: bentruyman: oh okay, do you maybe have an example how to handle db-responses? [23:17] Validatorian: but they don't include using express [23:18] davidascher has joined the channel [23:18] synthomat: eeerr [23:18] bentruyman: synthomat: I don't, sorry :-(, only stuff I've been hacking around with [23:18] synthomat: does wheat use git to store posts?? [23:19] Validatorian: for my app, using redis with express, I have redis = redisclient.createClient() with all the other declarations, then in the .get('/... I just use redis as normal.. redis.zrevrange(key, 0, -1, 'WITHSCORES', function(err, members) { [23:19] bentruyman: I'm trying to develop something that persists articles stored in a git repo over to a mongo instance [23:19] Validatorian: synthomat: yes [23:19] bentruyman: wheat doesn't do anything like that AFIK [23:19] sonnym has joined the channel [23:20] Validatorian: "Wheat is a blogging engine that reads a git repo full of markdown articles and presents them as a website." [23:20] synthomat: in the case, that i shoud figure it out, my first post will be a howto on this topic :D [23:22] Tim_Smart has joined the channel [23:22] gerred has joined the channel [23:22] synthomat: Validatorian: actually, i did not try whether my mongo-code works at all :D [23:22] Validatorian: synthomat: lol [23:22] ben_alman has joined the channel [23:23] synthomat: but it should not block the request anyway [23:23] hsuh has joined the channel [23:23] Validatorian: synthomat: maybe it should. Try adding the connection in the get as well [23:24] Validatorian: no idea as to best practice (I'm certainly no node expert.. I'm still a novice myself) [23:25] _announcer: Twitter: "#sm #tips Why Developers Should Pay Attention to Node.js - There's a substantial amount of buzz and enthusiasm right… http://goo.gl/fb/oxPIt" -- Zlata. http://twitter.com/speedy_link/status/27974536199 [23:25] Validatorian: hey, if anyone was interested, there's a new blog post somewhere about why developers should pay attention to node.js -- but I can't find the link ANYWHERE [23:26] synthomat: eeh okay [23:27] synthomat: Validatorian: adding connect() to get does work [23:27] synthomat: but i don't think this is the right way :-/ [23:28] synthomat: Validatorian: http://gist.github.com/637550 [23:28] synthomat: eehe, wait [23:28] synthomat: logic :D [23:28] synthomat: maybe i should not put the connection-listener into get [23:29] synthomat: because it is just called once the httpd has started :D [23:29] synthomat: stupid... even try [23:29] Validatorian: I don't think that's wrong -- consider coding this in something else like PHP - when you connect to the site, it initiates a new connection to the DB and makes the calls -- that's what you're doing there [23:30] digitalspaghetti: do Joynet only let you have one provisioned machine? [23:30] digitalspaghetti: on no.de [23:30] synthomat: yeah, but the connection could be established once, when you start the express-server ;-) [23:30] synthomat: will try this, sec [23:30] cardona507 has joined the channel [23:31] synthomat: does not work [23:31] bentruyman: synthomat: yeah, the way I've been thinking of setting it up is waiting for node to obtain a connection with the mongo server, then start listening for requests [23:31] bentruyman: so there's a persistent connection [23:31] bentruyman: not sure if that's best practice or not [23:32] jashkenas has joined the channel [23:32] synthomat: exactly [23:32] bentruyman: or to, like Validatorian is saying, create a new connection for each request [23:33] synthomat: okay, but the express-server runs the whole time, why not establish a persistent connection to the db? [23:33] bentruyman: it seems like the former would perform better, but I have no numbers to back that up [23:33] synthomat: the fact is, that it does not work [23:33] bentruyman: really? [23:33] TheEmpath: is there a full-stack framework for node.js floating around? [23:33] TheEmpath: MVC etc? [23:34] synthomat: TheEmpath: google for "nodejs libs" [23:34] Validatorian: pretty easy to do those numbers, then -- my way is infinitely faster ;) [23:34] synthomat: there is a list on github [23:34] rauchg_: Validatorian: not if you use mysql_pconnect [23:34] synthomat: TheEmpath: http://github.com/ry/node/wiki/modules [23:34] Validatorian: I have seen modules for redis persistence [23:34] bentruyman: synthomat: have you played with http://github.com/christkv/node-mongodb-native [23:34] aho has joined the channel [23:35] synthomat: nope, bentruyman [23:35] bentruyman: that's the one I've been using [23:35] synthomat: i use "mongodb" because it uses a c-lib [23:35] bentruyman: yea [23:35] Validatorian: rauchg_: Never have -- but nice to know it exists, thanks :) [23:36] ysynopsis has joined the channel [23:36] bentruyman: synthomat: that's the one I started out using [23:37] synthomat: i think this should't be a question of the lib... [23:39] bentruyman: synthomat: I don't have any specifics but I remember the c-lib one crashing node quite a bit [23:39] bentruyman: maybe it's been updated and tuned since I last tried [23:41] bentruyman: did you try putting your `app.listen()` and your routes inside of the mongo.addListener("connection") ? [23:42] softdrink has joined the channel [23:42] rauchg_: synthomat: check out mongoose [23:42] rauchg_: it buffers everything [23:42] rauchg_: so that you don't have to worry about connection time [23:42] synthomat: mongoose is basing on mongodb-native [23:42] rauchg_: yep [23:43] rauchg_: the native mongo drivers are not there yet [23:43] rauchg_: and they're not significantly faste [23:43] rauchg_: r [23:44] synthomat: http://gist.github.com/637550 [23:49] prettyrobots has joined the channel [23:51] synthomat: what is the flow-lib? [23:53] jherdman has joined the channel [23:55] synthomat: :( [23:57] siculars_ has joined the channel [23:58] twoism has joined the channel