[00:00] rikarends: but just the fact that people think that is worrying [00:00] echosystm: yeah [00:00] rikarends: we'll do a license review after the next refactor [00:00] rikarends: we might drop it to MIT, who knows [00:00] echosystm: are you two core devs? [00:00] rikarends: since the spirit of why we want LGPL will probably happen anyway [00:00] rikarends: i tend to be one person at a time yes [00:01] isaacs has left the channel [00:01] isaacs has joined the channel [00:01] rikarends: im CTO of ajax.org/cloud9 [00:01] echosystm: ah, cool [00:02] AAA_awright: http://unlicense.org/ [00:07] rikarends: echosystm: for ajax.org check back in a month or so, we are refactoring everything now to be nicely nodeJS loadable so its not very great to pick up right now. [00:08] MattJ has joined the channel [00:08] echosystm: alrighty, thanks [00:09] echosystm: looks awesome by the way - i just had 4-5 colleagues behind me blown away by the 3d graphs haha [00:09] echosystm: "is that really javascript?!" [00:09] rikarends: yeah thats my fun project :) [00:10] rikarends: i have a new vector engine available just havent had the time to get it out [00:10] rikarends: i think it runs fine in IE7/8 [00:10] rikarends: i programmed it to work fast in IE6 [00:10] rikarends: btw try shift-drag [00:10] pedrobelo has joined the channel [00:11] rikarends: shift-left drag and shift-right drag [00:12] echosystm: haha thats awesome [00:13] TooTallNate: I'm getting a "Segmentation fault" on master/HEAD with fs.ReadStreams [00:13] SubStack: rikarends: does it also do server <-> client streaming connectivity? [00:13] TooTallNate: to repro: "require('fs').createReadStream('somefile')" [00:14] tpryme has joined the channel [00:14] TooTallNate: and on Ubuntu 10.10, i686 [00:14] rikarends: SubStack: well yes its architected to do that, but i dont think i have it ready right now [00:15] twoism has joined the channel [00:15] rikarends: btw for the charts check this [00:15] rikarends: http://www.ajax.org/public/presentation/tae/presentation2.html [00:15] c4milo has left the channel [00:15] davidascher has joined the channel [00:15] rikarends: look at the streaming data slide [00:15] rikarends: and zoom in on the thing [00:16] rikarends: using rightmouse-drag or mousewheel [00:17] SubStack: very impressive [00:17] rikarends: yea its just not off the shelf usable yet, thats what we are refactoring now. [00:19] javruben has joined the channel [00:19] sprout has joined the channel [00:19] jesusabdullah: rikarends: Holy shit, that chart is gorgeous [00:20] rikarends: i actually rewrote this api to be more like raphaelJS [00:20] rikarends: but still just as fast [00:20] jesusabdullah: So, not xml? [00:20] jesusabdullah: xml: bglegh >:P [00:20] rikarends: the underlying api is full JS [00:21] rikarends: the high level chart widget api is XML of JSON [00:21] jesusabdullah: or json? [00:21] coreh has joined the channel [00:21] rikarends: well js object notation [00:21] rikarends: not technically json [00:21] jesusabdullah: ah [00:21] jesusabdullah: Good [00:21] jesusabdullah: I like [00:21] SubStack: very excellent [00:21] jesusabdullah: I've been trying out different chart apis lately [00:21] SubStack: yeah i like the raphael api but it is a bit slow [00:21] jesusabdullah: I still have quite a few to try out [00:21] rikarends: yeah almost all are slow [00:22] rikarends: but im not done yet with my refactor for the charts [00:22] jesusabdullah: but I know I didn't like flot, canvasXpress has a crummy api, and g.raphael, well...it's pretty crap :( [00:22] rikarends: i try to write stuff thats not exponentially slow :) [00:22] SubStack: is it on github? [00:22] jesusabdullah: This 3d stuff is boss, dude [00:22] aubergine has joined the channel [00:22] rikarends: all this is on github now yes, but again i doubt you would make much sense of it [00:23] rikarends: this api is actually a full codegen [00:23] siculars has joined the channel [00:23] rikarends: you write meta-js [00:23] jesusabdullah: rikarends: Please release this before December [00:23] jesusabdullah: rikarends: I need some slick 3d plots for my thesis [00:23] rikarends: ghehe sure add me on twitter and DM complain [00:23] coreh: Hey guys... I'm getting some pretty strange behavior with timers on node.js, has someone ever stepped on this before? am I doing something wrong? [00:23] coreh: https://gist.github.com/659102/bd2bfec7dc5404d4c09d68b8393794f4f03022d8 [00:23] jesusabdullah: oh snap, the modzer0 version of my thesis plot is down [00:23] jesusabdullah: because modzer0 died [00:23] rikarends: whats your thesis about [00:24] jesusabdullah: really short answer: heat transfer [00:24] rauchg_: rikarends: what do you think of flot ? [00:24] rikarends: not much :) [00:24] jesusabdullah: ACTION DID NOT LIKE flot [00:24] rikarends: actually chart apis are fairly hard [00:24] rikarends: i struggled bigtime to make it styleable [00:24] jesusabdullah: Longer answer: measurement of anisotropic thermal conductivity in snow [00:24] jesusabdullah: I believe you. [00:24] rauchg_: yep [00:25] rikarends: jesusabdullah: how long does it take for your piss to freeze in the snow when drunk? [00:25] rauchg_: that's our main issue right now [00:25] rauchg_: not extremely styleable :/ [00:25] jesusabdullah: rikarends: a few minutes maybe? [00:25] rikarends: :) [00:25] JimBastard: isaacs: you around? [00:25] jesusabdullah: http://github.com/jesusabdullah/anisotropy_fea/tree/master/analysis/plotjs/ [00:25] jesusabdullah: That's the plot I'm talking about [00:25] isaacs: JimBastard: yo [00:25] jesusabdullah: Haven't gh-paged it, obviously [00:25] rikarends: jesusabdullah: how can i easily see it [00:25] mAritz has joined the channel [00:25] jesusabdullah: Download all those files, open index.html? :v [00:26] JimBastard: isaacs: i think i accidentallied my npm password? i dunno, i was able to publish on this machine before, i had done npm adduser awhile back [00:26] JimBastard: i cant seem to adduser again or auth [00:26] jesusabdullah: Like I said, my host went down last week [00:26] JimBastard: i dunno [00:26] drudge_ has joined the channel [00:26] isaacs: JimBastard: you know your password? [00:26] rikarends: whoo its 3d too [00:26] JimBastard: isaacs: i thought i did, maybe i forgot [00:26] stagas: coreh: setTimeout runs in a new context where this.hey is undefined [00:26] rikarends: not bad [00:26] isaacs: JimBastard: try this: delete the _authCrypt line from ~/.npmrc [00:26] rikarends: whats wrong with it? [00:26] isaacs: JimBastard: then run npm adduser [00:27] rikarends: except it could be faster i think [00:27] coreh: stagas: doesn't it internally do something like Function.apply? [00:27] isaacs: JimBastard: if that fails, then lmk, and i'll delete your user acct and you can run npm adduser fresh [00:27] Tim_Smart: JimBastard: I thought you have released Nodejitsu? Will the website get updated? [00:27] JimBastard: isaacs: can you just delete? ill readd [00:27] isaacs: sure, just a seco [00:28] JimBastard: Tim_Smart: we are launching today, just flipping switches [00:28] Tim_Smart: Ah cool. [00:28] rikarends: jesusabdullah: i think you can plot this pretty easily with my lib tho, i'll see if i can get it out soon. [00:28] JimBastard: Tim_Smart: you want to play around? we are gonna start sending out infor soonish [00:28] Tim_Smart: Sure. [00:28] JimBastard: ill drop a line in here when its live [00:29] isaacs: JimBastard: ok, username=Marak [00:29] devinus_ has joined the channel [00:29] isaacs: JimBastard: do an adduser, pick a password you won't forget this time ;P [00:30] ajsie has left the channel [00:30] stagas: coreh: http://gist.github.com/659113 [00:30] JimBastard: npm info it worked if it ends with ok npm info using npm@0.2.5-1 npm info adduser Authorized user Marak npm ERR! TypeError: Bad argument npm ERR! at Object.open (fs.js:162:11) npm ERR! at Object.writeFile (fs.js:411:6) npm ERR! at Object.GRACEFUL [as writeFile] (/usr/local/lib/node/.npm/npm/0.2.5-1/package/lib/utils/graceful-fs.js:30:6) [00:30] JimBastard: isaacs: did i do it wrong? [00:30] JimBastard: Just tweeting a tiny part of the error will not be helpful. [00:30] isaacs: JimBastard: please gist the whole error message [00:31] isaacs: JimBastard: i need the bits that come after the bits you pasted [00:31] jesusabdullah: rikarends: That'd be great. The canvasXpress stuff is all metadata-oriented so it's a pain to figure out plotting if you don't have significant metadata. Also, the axes labels are jacked and the author only shares the minified version of his (her?) lib [00:31] JimBastard: isaacs: http://gist.github.com/659114 [00:31] isaacs: win [00:31] rikarends: jesusabdullah: meh lame closed sourceness. [00:31] isaacs: JimBastard: do it without the sudo [00:31] JimBastard: npm ERR! sudon't! [00:31] JimBastard: npm ERR! sudon't! [00:31] JimBastard: npm ERR! sudon't! [00:31] JimBastard: npm ERR! sudon't! [00:31] isaacs: JimBastard: it probably worked, actually, but publishing with sudo is broken in 0.2.4 [00:32] isaacs: er, 0.2.5, whatever it is now [00:32] coreh: stagas: Oh, I saw some "self = this;" stuff on the mongodb-native source, didn't quite know why they used it. Now it makes sense [00:32] JimBastard: npm ERR! Failed saving /Users/maraksquires/.npmrc Error: EACCES, Permission denied '/Users/maraksquires/.npmrc' [00:32] coreh: stagas: Thanks! :-) [00:32] JimBastard: its not setup to run outside of sudo [00:32] jesusabdullah: rikarends: I think it's supposed to be OSS, but it definitely doesn't follow the spirit, yeah [00:32] isaacs: JimBastard: um….. ok [00:32] isaacs: JimBastard: npm adduser --userconfig $HOME/.npmrc [00:32] isaacs: try that ^ [00:33] isaacs: er, sudo that [00:33] evanmeagher has joined the channel [00:33] JimBastard: let me add the user, but now i cant publish again [00:33] JimBastard: same error as before [00:34] micheil: isaacs: I'll see what I can do later this week as to mkstemp [00:34] micheil: or mktemp [00:34] JimBastard: Error: Cannot insert data into the registry without authorization [00:34] Tim_Smart: JimBastard: npm adduser [00:34] micheil: isaacs: it's definitely a eio_custom implementation that would be needed. [00:34] JimBastard: errrr [00:34] JimBastard: hold up [00:34] JimBastard: brb [00:34] isaacs: JimBastard: sudo npm config set userconfig $HOME/.npmrc --global [00:35] banjiewen_ has joined the channel [00:35] isaacs: micheil: kewl. i suspect it might be more at teh level of glob, like something that should just go in a userland module. [00:35] micheil: isaacs: yeah [00:35] isaacs: micheil: especially since there are a few different flavors of mktemp [00:35] micheil: yeah [00:35] jesusabdullah: rikarends: What have you used to manipulate data for the charts? I've used underscore in the past [00:35] jvolkman has joined the channel [00:36] micheil: isaacs: I think you can return something other then 0 from a EIO_CUSTOM blocking method [00:36] micheil: it just needs to be a static int [00:36] JimBastard: isaacs: i ran, sudo npm config set userconfig $HOME/.npmrc --global [00:36] JimBastard: it worked, but publish is still no good [00:37] isaacs: JimBastard: i think you just have to either de-sudo your setup, or use the latest npm on isaacs/master [00:37] JimBastard: everything has been working fine for months [00:37] JimBastard: i havent changed anything [00:37] isaacs: JimBastard: well, that's what happens when you use software that i put bugs in [00:38] isaacs: JimBastard: if you didn't have me put bugs in it, you'd've been fine! [00:38] micheil: bbl. G'night folks [00:38] isaacs: seriously, it should be fixed today or tomorrow. i'm just delaying because i wanna get my new idea for better auto-pruning in, but i think that might just not work. [00:38] andrewa2 has joined the channel [00:39] JimBastard: ill just vendor this, i dont have time to deal with this now [00:39] isaacs: JimBastard: oh, i see why publishing is failing. [00:39] isaacs: you made your username "marak", when it was originally "Marak" [00:39] isaacs: note the capital M [00:39] ezmobius has joined the channel [00:39] isaacs: case sensitivity ftl [00:40] JimBastard: im very certain i typed in captital, the autoprompt keeps showing me lowercase regardless [00:40] rikarends: jesusabdullah: nothing in particular. just js arrays [00:40] jesusabdullah: *nod* [00:40] isaacs: delete the _authCrypt line and try again? [00:40] jesusabdullah: I find a lot of times I have to reorganize my data in order to get it how I want it [00:40] mraleph has joined the channel [00:40] isaacs: it really should not be changing the case. the autoprompt is showing you what's already in there. [00:40] jesusabdullah: like, zipping it, or grabbing the first column, etc [00:40] jesusabdullah: normalizing [00:40] jesusabdullah: etc [00:40] JimBastard: its the same problem [00:41] jesusabdullah: underscore's nice for functional-ish approaches to that [00:41] JimBastard: i created a new user [00:41] isaacs: whoa, couchone failing. [00:41] isaacs: dude, are you doing a demo or something? [00:41] isaacs: this is insane. [00:41] JimBastard: ? [00:41] SubStack: O_o [00:41] isaacs: this kind of juju usually only happens when something important is going on [00:42] JimBastard: im launching nodejitsu and i need to push version 0.3.0 of node mailer [00:42] JimBastard: or else i gotta add a bunch of dir shifting code [00:43] rnewson has joined the channel [00:43] rnewson has joined the channel [00:43] isaacs: JimBastard: ok, i see users in there for Marak and marak [00:43] JimBastard: sure [00:44] isaacs: JimBastard: and, actually, i was wrong, your packages are published as "marak", not Marak [00:44] isaacs: ok, let's solve this, big guns style. [00:44] isaacs: JimBastard: npm config get username [00:45] isaacs: er… you use sudo. sudo npm config get username [00:45] rikarends: jesusabdullah: night time here, follow on twitter i'll let you know when i get back to the charting stuff. [00:46] JimBastard_ has joined the channel [00:46] JimBastard_: battery died sorry isaacs [00:47] isaacs: JimBastard: np [00:47] isaacs: JimBastard: so, sudo npm config get username <-- what's that say? [00:47] isaacs: just the non-log line [00:47] JimBastard_: npm ERR! sudon't! npm ERR! sudon't! Running npm as root is not recommended! npm ERR! sudon't! Seriously, don't do this! npm ERR! sudon't! undefined npm info it worked if it ends with ok npm info using npm@0.2.5-1 npm ok [00:47] JimBastard_: undefined [00:47] JimBastard_: thats not me [00:47] isaacs: nope :) sure ain't [00:47] isaacs: sudo npm config get userconfig [00:47] echosystm: in the context of a typical web service, do you guys think websockets are going to generally replace REST or do you think it will be used along side REST, for alerting of state changes? [00:48] JimBastard_: ./Users/maraksquires/.npmrc [00:48] isaacs: with the . like that? [00:48] isaacs: ./Users? [00:48] JimBastard_: no [00:48] JimBastard_: /Users/maraksquires/.npmrc [00:48] isaacs: oh, ok [00:48] isaacs: great [00:48] isaacs: is there any _authCrypt line in ~/.npmrc? [00:48] isaacs: if so, delete it [00:48] isaacs: but it'd be surprising if there is [00:49] JimBastard_: where? [00:49] JimBastard_: Marak-Squiress-MacBook-Pro:dev maraksquires$ cd /Users/maraksquires/.npmrc -bash: cd: /Users/maraksquires/.npmrc: No such file or directory Marak-Squiress-MacBook-Pro:dev maraksquires$ cd ~/.npmrc -bash: cd: /Users/maraksquires/.npmrc: No such file or directory [00:49] isaacs: .npmrc is a file, not a dir [00:49] isaacs: cat ~/.npmrc | grep authCrypt [00:50] JimBastard_: doesnt exist [00:50] blaines has joined the channel [00:50] isaacs: !!! [00:50] isaacs: oh, ok, actually, that's normal [00:50] JimBastard_: npm-26942 [00:50] isaacs: becasue you deleted the only thing in it [00:50] JimBastard_: i never saw it [00:50] JimBastard_: the file [00:50] isaacs: ok [00:50] isaacs: np [00:51] isaacs: sudo npm adduser [00:51] isaacs: enter "marak" as the username, all lowercase [00:51] JimBastard_: i did [00:51] isaacs: k [00:52] isaacs: now cat ~/.npmrc | grep authCrypt should show something, yes? [00:52] JimBastard_: _authCrypt = a2d5cf889e3a4893c2d3b5b28cd3409f1a0c92010c6dc237cdee783e0bad4748 [00:52] isaacs: saweet [00:52] isaacs: and: sudo npm config get username <-- that should say "marak", yes? [00:53] isaacs: (i see the user created in the db) [00:54] JimBastard_: undefined [00:54] isaacs: !!!?!?!??!!!! [00:54] jpld has joined the channel [00:54] isaacs: sudo npm install npm@pre [00:54] isaacs: eff this noise [00:54] JimBastard_: sure [00:54] isaacs: just get the fix [00:54] isaacs: screwit [00:55] jashkenas has joined the channel [00:55] JimBastard_: now i cant do anything [00:55] isaacs: wait whut? [00:55] JimBastard_: tell me to run a command [00:55] isaacs: did npm@pre install successfully? [00:55] JimBastard_: Marak-Squiress-MacBook-Pro:dev maraksquires$ sudo npm list node.js:50 throw e; // process.nextTick error, or 'error' event on first tick ^ TypeError: Object function log(msg, pref, level, cb) { if (typeof level === "function") cb = level, level = null var show = log.level if (show === LEVEL.silent || show === LEVEL.paused) return cb && cb() if (level == null) level = LEVEL.info if (isNaN(level)) level = LEVEL[ [00:55] JimBastard_: yep [00:56] isaacs: pasting errors into here is not very helpful [00:56] jashkenas: quick question: is 0.3.0 considered stable at this point? [00:56] isaacs: jashkenas: NOOOO!!!! [00:56] jashkenas: then why is it nodejs.org/api ? [00:56] isaacs: jashkenas: 0.3.x is explicitly unstable. [00:57] isaacs: JimBastard_: here's a trick: gem install gist ; pbpaste | gist [00:57] isaacs: probably a task for later, though [00:57] JimBastard_: do you have any idea why this is failing? [00:57] isaacs: JimBastard_: no, gist the error you're getting [00:57] isaacs: JimBastard_: all i got was the first few lines [00:58] JimBastard_: npm is gone now [00:58] JimBastard_: i tried to reinstall it from scratch and it now its in bad state asking me to delete files [00:58] JimBastard_: i give up [00:58] isaacs: delete those files [00:58] isaacs: desudo, get the code, run "make" [01:02] aubergine has joined the channel [01:05] JimBastard_: isaacs: http://gist.github.com/659136\ [01:06] ysynopsis has joined the channel [01:07] isaacs: JimBastard_: that's not using the latest code from my github repo [01:07] JimBastard_: isaacs: im HEAD on master [01:07] JimBastard_: what branch? [01:07] isaacs: JimBastard_: 7413097 [01:08] tpryme has joined the channel [01:08] JimBastard_: i cloned from github [01:08] JimBastard_: im on that sha [01:08] aubergine has joined the channel [01:08] isaacs: oohh… kay. [01:09] isaacs: oh, sudo, not regular make [01:09] drudge_ has joined the channel [01:09] JimBastard_: is there a guide for setting up npm to work without root? i can do that if it makes it easier [01:11] isaacs: look at Permission Errors at http://github.com/isaacs/npm#readme [01:11] isaacs: i can reproduce, though [01:14] mikeal: tmpvar: hey [01:14] mikeal: have you ever gotten jsdom to work in a non-node environment [01:16] twoism has joined the channel [01:16] pengwynn has joined the channel [01:17] isaacs: JimBastard_: fixed on 005e23e70690248441c2c70950cfba8bda76fc2f [01:17] JimBastard_: k [01:18] twoism has joined the channel [01:19] zentoooo has joined the channel [01:19] isaacs: JimBastard_: if you pull that, and do "make dev" it might all Just Work, sudo or not [01:19] JimBastard_: isaacs: it builds now [01:19] JimBastard_: sudo npm config get username, returns undefined [01:19] isaacs: yep :) [01:19] isaacs: ok, not as cool [01:20] isaacs: how about if you do sudo npm adduser? [01:20] isaacs: oh, did you do "make", or "make dev"? [01:20] JimBastard_: "make" [01:20] JimBastard_: ahh oops [01:21] JimBastard_: i think it worked [01:21] CIA-94: node: 03Ryan Dahl 07v0.2 * rf8f675b 10/ test/simple/test-http-buffer-sanity.js : Add broken test passing a buffer through http - http://bit.ly/dveHRE [01:21] CIA-94: node: 03Ryan Dahl 07v0.2 * rc42a5cc 10/ (lib/net.js test/simple/test-http-curl-chunk-problem.js): [01:21] CIA-94: node: Fix test-http-buffer-sanity [01:21] CIA-94: node: Backported from 7e24a05cba2373c0ab1f0629366b664a593f357f [01:21] CIA-94: node: Add test/simple/test-http-curl-chunk-problem.js - http://bit.ly/9uBG5J [01:25] isaacs: JimBastard_: kewl [01:26] matt_c has joined the channel [01:28] jashkenas: isaacs: do you know what's up with having 0.3.0 docs on Nodejs.org/api? [01:28] isaacs: jashkenas: nope. i don't touch those [01:28] isaacs: jashkenas: bug ryah_ [01:28] Aria: Just ryah_ having been in development mode for long enough now that HEAD feels natural ;-) [01:29] kuatto has joined the channel [01:29] ryah_: jashkenas: i suppose i should remove the api.html file [01:29] ryah_: and link to the docs individually [01:29] jashkenas: ryah_: that works too. [01:29] jashkenas: Or have the very top left corner show all "current" branches. [01:29] jashkenas: In this case, 0.2.4, next to 0.3.0 [01:30] ryah_: jashkenas: http://nodejs.org/docs/v0.2.4/api.html [01:30] ryah_: jashkenas: in case you're looking for it [01:31] jashkenas: nah, I got it -- I've just been getting some help requests from newcomers who assume that 0.3.0 is current. [01:31] jashkenas: based on the help page and the tag on github. [01:31] ryah_: ok [01:31] CIA-94: node: 03Ryan Dahl 07master * r07812c4 10/ test/simple/test-http-curl-chunk-problem.js : [01:31] CIA-94: node: Add test for http-buffer problem [01:31] CIA-94: node: Already fixed in 7e24a05cba2373c0ab1f0629366b664a593f357f - http://bit.ly/caJeor [01:31] ryah_: will fix soon [01:31] jashkenas: thanks. [01:40] SINPacifist has joined the channel [01:41] JimBastard_: hrmm, indexzero has passed out [01:41] JimBastard_: i guess he cant go 3 days without sleep [01:41] JimBastard_: lol [01:42] tmpvar: mikeal, I haven't tried [01:49] sprout has joined the channel [01:50] mtodd has joined the channel [01:53] mikeal: i want to get it working in the couchdb view server [01:54] tg has joined the channel [01:55] robmason_ has joined the channel [01:58] mtodd has joined the channel [01:58] bencc has left the channel [01:59] deepthawtz has joined the channel [02:06] Druid_ has joined the channel [02:06] boaz has joined the channel [02:11] jrockjiggz has joined the channel [02:13] bentruyman has joined the channel [02:15] ben_alman has joined the channel [02:16] entp has joined the channel [02:19] xla has joined the channel [02:22] kawaz_air has joined the channel [02:26] dguttman_ has joined the channel [02:28] necrodearia has joined the channel [02:41] meso_ has joined the channel [02:41] unomi has joined the channel [02:42] mbrochh has joined the channel [02:46] evanmeagher has joined the channel [02:46] rauchg__ has joined the channel [02:47] cardona507 has joined the channel [02:55] softdrink has joined the channel [02:55] agnat has joined the channel [02:55] melgray has joined the channel [02:57] mikenel has joined the channel [03:01] saschagehlich has joined the channel [03:03] rpflo has joined the channel [03:03] sh1mmer has joined the channel [03:03] robotarmy has joined the channel [03:06] boaz has joined the channel [03:10] jgautier has joined the channel [03:11] jamescarr_: hmmm [03:11] jamescarr_: I think I'm going to replace jasmine's gem with an npm package [03:11] softdrink: let me know if/when you do [03:11] softdrink: i'm in mid-jasmine-integration on a project [03:12] jgautier: whats the best way to do RPC over socket.IO? [03:16] kriszyp has joined the channel [03:17] ryah_: jgautier: {f: "myFunction", args: ["hello", "world [03:17] ryah_: ]) [03:17] ryah_: ]} [03:19] cardona507 has joined the channel [03:19] tlrobinson has joined the channel [03:22] saschagehlich: hey, is there a way to find out in which line the uncaught exception was made in the uncaughtException event of process? [03:22] wilmoore has joined the channel [03:22] chrischris has joined the channel [03:23] muk_mb has joined the channel [03:31] rauchg_ has joined the channel [03:33] a_meteorite has joined the channel [03:33] sh1mmer has joined the channel [03:33] a_meteorite has joined the channel [03:34] kriszyp: saschagehlich: error.stack [03:35] saschagehlich: ah damn. you're so right :D [03:38] saikat has joined the channel [03:41] mikeal: tmpvar: hey [03:41] mikeal: jquery.remove() doesn't seem to work [03:43] mikeal: no wait [03:43] mikeal: i could be wrong [03:45] davidascher has joined the channel [03:45] rpflo has joined the channel [03:49] mbrochh has joined the channel [03:53] robmason has joined the channel [03:55] alcuadrado has joined the channel [03:56] willwhite has joined the channel [03:56] path[l] has joined the channel [03:58] davidascher has joined the channel [03:59] ryah_: shit chat.nodejs.org crash (after two months!) [03:59] ryah_: ACTION just has it running in screen [04:00] ryah_: or.. shit maybe i closed the screen [04:01] jashkenas: ryah_: my long-term production Node.js app also crashed last week, after running for about 4 months. [04:02] rauchg_ has joined the channel [04:08] Aria: doh! [04:12] dgathright has joined the channel [04:16] mtodd has joined the channel [04:18] hober: I <3 screen [04:18] hober: ('nethack on' being the best thing ever to put in your .screenrc) [04:18] pedrobelo has joined the channel [04:19] Tim_Smart: jashkenas: Did you find out why? [04:23] springmeyer has joined the channel [04:25] jashkenas: Tim_Smart: no idea. [04:25] ossareh has joined the channel [04:25] Tim_Smart: OK. I guess most environments would get reseted before 4 months. [04:26] Tim_Smart: *restarted [04:26] cagdas has joined the channel [04:28] saschagehlich_ has joined the channel [04:32] jacobolus has joined the channel [04:45] rauchg_ has joined the channel [04:50] bpot has joined the channel [04:51] jesusabdullah: Man, quiet right now [04:51] jesusabdullah: here I was hoping to bug people about how to correct my js fail [04:53] beawesomeinstead has joined the channel [04:53] beawesomeinstead has joined the channel [04:56] dquestions has joined the channel [04:56] sonnym: jesusabdullah: what's the question? [04:57] jesusabdullah: Basically, I have a constructor, and I want to expose some stuff that's buried a few callbacks down [04:57] jesusabdullah: http://github.com/jesusabdullah/frotzbot/blob/master/frotz.js [04:57] jesusabdullah: You can kinda see what I'm trying to do here [04:57] jesusabdullah: though this doesn't work [04:58] jesusabdullah: But maybe you see what I'm trying to do [04:58] isaacs has joined the channel [04:58] jesusabdullah: I want to be able to call new Game('game.z5') and have it give me an object exposing stdin, stdout and stderr [05:00] masahiroh has joined the channel [05:01] dohtem has joined the channel [05:01] dohtem has joined the channel [05:04] sonnym: I think I see what you're doing, and it looks like you're actually trying to extend a stream, but I'm not sure the pattern to accomplish that [05:04] jesusabdullah: If I can do it without EEs, that'd be great [05:04] italic has joined the channel [05:05] italic: my node-waf isn't working, no python module name "Scripting" [05:05] jesusabdullah: I basically want the outer function to return values that are generated in a nested callback :( At the least, I want to be able to do this in a roundabout way [05:07] sudoer has joined the channel [05:07] beawesomeinstead has joined the channel [05:13] jvolkman has joined the channel [05:13] dquestions has joined the channel [05:14] amerine has joined the channel [05:14] langworthy has joined the channel [05:14] micheil: jesusabdullah: I need to get back to you on frotz, don't I? [05:15] jesusabdullah: haha, yeah >:P [05:15] micheil: jesusabdullah: are you using 0.3.X? [05:15] jesusabdullah: I don't think so! [05:15] micheil: (all the stream interfaces changed in 0.3.X [05:15] jesusabdullah: 0.2.0 [05:15] jesusabdullah: Oh, did they? Crazy [05:15] kawaz_air has joined the channel [05:16] Tim_Smart: You still have to implement all the stream events etc your self. [05:16] jesusabdullah: What do you mean? [05:17] jesusabdullah: Heh, just noticed a weird errant self.output.on <_< wonder what that was about [05:17] Tim_Smart: 'data', 'end', write(), end() etc [05:18] Tim_Smart: Streams are more of a 'spec' than anything else. [05:18] jesusabdullah: So that would suggest I'm missing an end() in my code [05:18] jesusabdullah: possibly [05:18] evanmeagher: one of these assert initializations is a mistake, yes? http://github.com/ry/node/blob/master/test/simple/test-http-head-request.js#L2 [05:22] jesusabdullah: ACTION pulls and makes a newer node, sees what happens [05:22] jesusabdullah: This is gonna break all my npms again :( [05:22] Aria: npm rebuild! [05:23] jacobolus has joined the channel [05:23] jesusabdullah: Ah :D That could do it [05:23] Aria: evanmeagher: It'd sure look so, since the second is unconditional. [05:23] jesusabdullah: Aria: You're smart--what am I doing dumb in the file I linked a page ago? [05:24] jesusabdullah: http://github.com/jesusabdullah/frotzbot/blob/master/frotz.js [05:24] jesusabdullah: This one [05:24] jesusabdullah: I'm installing newer node to see if maybe mine fell behind the api docs [05:24] jesusabdullah: buuuut I don't remember them being all that different from this >_< if at all [05:24] Aria: Um. Looks okay . . . But I didn't totally follow what you were doing. (why not pass game directly?) [05:25] jesusabdullah: Huh? I'm making sure the game actually exists before I try to run it [05:25] micheil: Tim_Smart: I'm thinking his game.input/output could be a new streams.Stream(); [05:26] micheil: evanmeagher: The tests there are really kind of messy. And do need to be improved. [05:26] Aria: Ah, I see, a bit. You're wanting to do the setup early and return it, then connect up the plumbing later when the callback fires? [05:26] jesusabdullah: I reduced it down to http://gist.github.com/659279 [05:26] micheil: evanmeagher: I'd say ask on the mailing list as to what you can do to help if you want to [05:27] evanmeagher: micheil: will do. thanks. [05:27] jesusabdullah: Aria: Basically, yeah. I mean, effectively I really want to "return" the values in the callback, but, I mean, not really possible [05:27] Aria: Yeah, since you just can't do that without promises/futures. [05:27] jesusabdullah: I guess I could do a synchronous file check [05:27] Aria: You could, or emit an error when something goes awry. [05:27] jesusabdullah: but I feel like I shouldn't have to [05:27] Aria: Still seems strange that you have to create three new emitters. [05:28] jesusabdullah: I probably don't *have* to create 3 new emitters [05:28] Aria: Not sure what you're doing in avail() there [05:29] Aria: Not even using the gamename argument. [05:29] jesusabdullah: You're right! How silly of me. [05:30] jesusabdullah: I originally wanted avail to return t or f, for whether the gamename was in there, but I decided it would be more useful to return a list of existing files and see whether the one I wanted was in there [05:30] Aria: In fact, avail() at that point is an alias of readdir almost. [05:30] Aria: Ah, I see. [05:30] jesusabdullah: Yeah, it is >_< [05:30] Aria: I think what you need to do is make the game initialization async [05:30] jesusabdullah: What do you mean? [05:31] Aria: function startGame(name, cb) { [do all the setup; when the game's ready, call cb(null, GameObject)] } [05:31] Aria: If there's an error, call cb(error) [05:31] jesusabdullah: Oh, return my object in a callback? [05:31] softdrink has joined the channel [05:31] Aria: Yep. [05:31] jesusabdullah: That's a pretty good idea [05:31] Aria: That's your async return pattern ;-) [05:31] jesusabdullah: That'd work [05:31] jesusabdullah: tssch [05:32] jesusabdullah: I'LL SHOW YOU ASYNC [05:37] jesusabdullah: http://gist.github.com/659279 Shouldn't this still work, though? :S [05:37] Aria: Yes, if dfrotz can work without having a terminal. [05:38] jesusabdullah: Hmm [05:38] jesusabdullah: It works if I make it cowsay [05:38] Aria: Bingo. [05:38] jesusabdullah: and dfrotz is supposed to be a dumb terminal program [05:38] Aria: Hm. [05:38] Aria: I wonder how dumb. [05:38] jesusabdullah: I wonder if it's using curses anyway [05:39] jesusabdullah: It's supposed to be dumb enough to script from outside :S [05:39] jesusabdullah: Man that bites [05:39] Aria: Heh. That leaves a lot of room for interpretation. [05:40] jesusabdullah: Yeah :( [05:40] micheil: evanmeagher: that was nodejs-dev@googlegroups.com [05:40] evanmeagher: micheil: ah, thank you [05:40] jesusabdullah: micheil, Aria, thanks :D [05:40] evanmeagher: micheil: i'm subscribed to both, but was just about to mail to nodejs@ :) [05:40] Aria: Sure thing! [05:40] dquestions has joined the channel [05:41] jesusabdullah: May have to find a different z-machine >_< [05:41] Aria: Hrm. No, looks like someone's doing it in ruby. [05:42] Aria: http://effectif.com/ruby/manor/short-order-ruby [05:42] Aria: What sort of 'not working' is it doing? [05:42] jesusabdullah: No output at all [05:42] jesusabdullah: no stdout, no stderr [05:43] Aria: Hm. [05:44] jesusabdullah: Apparently, it may not flush the output buffer? Not sure what that means [05:44] evanmeagher: ugh i'm retarded. accidentally mailed to nodejs@ even after just discussing it.. [05:44] jesusabdullah: Heh [05:45] italic: are any of the postgres libs worth using? [05:46] Blink7_ has joined the channel [05:47] Aria: Hm. I get output when I run it, jesusabdullah [05:47] jesusabdullah: hmm [05:47] jesusabdullah: It works if there's no game [05:48] jesusabdullah: but doesn't say anything if there *is* a game [05:48] jesusabdullah: :( [05:48] Aria: Works with photopia [05:48] Aria: (at least for me, with `frotz` [05:48] Aria: Not sure if that's dfrotz or something more complex.) [05:49] micheil: evanmeagher: not to worry, I can remove that message if you want. [05:49] jesusabdullah: That's more complex [05:49] jesusabdullah: frotz standard uses ncurses [05:49] evanmeagher: micheil: that'd be great. sorry for the hassle lol [05:49] micheil: okay [05:49] evanmeagher: thanks [05:50] Aria: God, that's creepy. Googling for info and finding your gist. [05:50] jesusabdullah: :( [05:50] jesusabdullah: Also really fast [05:50] mbrochh has joined the channel [05:51] chewbran1a has joined the channel [05:51] micheil: Aria: what's creepier is googling your own name and finding you own pretty much 99.9% of the results. [05:52] micheil: (of say, 4000 results) [05:52] jesusabdullah: There's some douchebag businessman out there with my real name [05:52] jesusabdullah: but my online handle is pretty unique [05:52] Aria: (Google 'aredridel' some time ;-)) [05:52] micheil: evanmeagher: removed. [05:52] evanmeagher: tyty :) [05:53] Aria: Hm. No output with dfrotz there, jesusabdullah [05:54] jesusabdullah: You got it to work with regular frotz? [05:54] Aria: Yeah. Though I'm not sure it'd work well to script, but I got output [05:54] jesusabdullah: Interesting. [05:55] tpryme has left the channel [05:55] jesusabdullah: One interesting bit: compiling dfrotz gives an error involving a previous declaration of getline [05:56] Aria: Mmm, just messy C I bet. [05:56] jesusabdullah: Could be my hack to make that go away, well, screwed things up. :) [05:56] Aria: Could be, but I can repeat with my dfrotz [05:56] jesusabdullah: I think I renamed it something like, getline2 [05:56] jesusabdullah: Yeah [05:56] jesusabdullah: true [05:56] jesusabdullah: If only the if scene wasn't so dead [05:56] jesusabdullah: or rather, if only they didn't move on to better tools :) [05:57] Aria: Heh, yeah, and if only v7 were open source, and not a layered hack [05:58] jesusabdullah: v7 of inform? Yeah [05:58] Aria: Yeah. [05:59] jesusabdullah: I was thinking about giving i7 a chance, but idk [05:59] jesusabdullah: I'm pretty skeptical of parts of it [05:59] jesusabdullah: and I don't really like the pseudo-C DSLs [06:00] necrodearia has joined the channel [06:00] Aria: Yeah [06:00] Blink7 has joined the channel [06:01] necrodearia has joined the channel [06:01] jesusabdullah: I wonder how js would fare? [06:01] jesusabdullah: Would probably help to have multiline quotes [06:01] Aria: Dunno. [06:01] Aria: Yeah. [06:01] fangel has joined the channel [06:02] necrodearia has joined the channel [06:02] twoism has joined the channel [06:05] necrodearia has joined the channel [06:11] quirkey has joined the channel [06:14] Aria: Hm. jesusabdullah, the dfrotz program is waiting for input for me. [06:14] Aria: (no output.) [06:15] Aria: So yeah. I expect buffering of some sort. [06:17] langworthy has joined the channel [06:19] evanmeagher has joined the channel [06:21] evanmeagher has joined the channel [06:22] necrodearia has joined the channel [06:23] Aria: And it looks like dfrotz does fstat fd #0, and looks at what kind of thing it is [06:23] dgathright_ has joined the channel [06:28] Aria: And it might be the game doing it [06:28] jesusabdullah: What's fstat fd #0 mean? [06:29] deepthawtz has joined the channel [06:29] Aria: IT gets info about the stdin file descriptor [06:29] jesusabdullah: hmm [06:29] Aria: Which includes whether it's a character device or not [06:29] Aria: (and probably enables buffering based on that) [06:30] jesusabdullah: hmm [06:32] dgathright has joined the channel [06:33] jesusabdullah: If only I was good with computers, I could fix it [06:33] jesusabdullah: Oh well *sigh* [06:35] Aria: Heh. I'm a little stumped at this point too. [06:35] Aria: It's frotz -- tracing the processes, I can see that it's not giving any output. [06:35] Aria: But why, I don't know [06:38] jesusabdullah: It's all good [06:38] jesusabdullah: I'll try a more different z-machine [06:39] dgathright_ has joined the channel [06:39] jesusabdullah: Hmm [06:39] megana has joined the channel [06:39] jesusabdullah: How interesting [06:40] megana: is there anyone here who knows if node.js mongodb driver can do db.eval? [06:40] jesusabdullah: Thanks for trying to help, Aria [06:40] Aria: Sure thing. [06:43] benburkert has joined the channel [06:44] MikhX has joined the channel [06:46] necrodearia has joined the channel [06:49] jfd1 has joined the channel [06:50] jesusabdullah: g'night y'all [06:51] evanmeagher_ has joined the channel [06:52] necrodearia has joined the channel [06:52] Aria: Night! [06:52] Aria: (me too) [06:53] necrodearia has joined the channel [07:09] necrodearia has joined the channel [07:09] brianmario has joined the channel [07:10] pkrumins has joined the channel [07:11] SamuraiJack has joined the channel [07:12] jameshome has joined the channel [07:12] jameshome has left the channel [07:16] pkrumins: isaacs: oh hey, got your mail. gonna fix that right away. it seems i just have to npm publish a clean version of node-gif. [07:17] isaacs: kewl [07:17] isaacs: np [07:17] pkrumins: are you using the module for something yourself, too? [07:19] dgathright_ has joined the channel [07:21] MikhX has joined the channel [07:27] daglees has joined the channel [07:29] rwaldron__ has joined the channel [07:30] qFox has joined the channel [07:34] herbySk has joined the channel [07:36] pkrumins: isaacs: oh snap, i have lost my npm password [07:37] muhqu has joined the channel [07:38] pkrumins: isaacs: is there a way to reset your password on npm? [07:38] isaacs: pkrumins: there's a way for ME to reset your password on npm ;) [07:39] isaacs: pkrumins: first, are you using sudo" [07:39] isaacs: ? [07:39] pkrumins: nope [07:39] isaacs: ok, great. [07:39] isaacs: delete any authCrypt lines in your .npmrc file [07:40] pkrumins: isaacs: this is a new computer actually, so i dont seem to have that file [07:40] isaacs: i see [07:40] isaacs: ok, well, when you get to your old computer, delete that line out of the .npmrc file, and run npm adduser [07:40] pkrumins: got it! [07:40] pkrumins: well wouldnt get to my old computer in 6 months :) as it's in latvia :) [07:41] isaacs: kewl :) [07:41] faust45 has joined the channel [07:42] margle has joined the channel [07:49] stagas has joined the channel [07:49] mbrochh has joined the channel [07:51] isaacs: v8> "http://vimdoc.sourceforge.net/htmldoc/insert.html#:startinsert".match(/^[^:]\/\/(.*)$/) [07:51] v8bot: isaacs: null [07:51] isaacs: v8> "http://vimdoc.sourceforge.net/htmldoc/insert.html#:startinsert".match(/^[^:]+\/\/(.*)$/) [07:51] v8bot: isaacs: null [07:51] isaacs: v8> "http://vimdoc.sourceforge.net/htmldoc/insert.html#:startinsert".match(/^[^:]+:\/\/(.*)$/) [07:51] v8bot: isaacs: ["http://vimdoc.sourceforge.net/htmldoc/insert.html#:startinsert", "vimdoc.sourceforge.net/htmldoc/insert.html#:startinsert"] [07:51] isaacs: v8> "http://vimdoc.sourceforge.net/htmldoc/insert.html#:startinsert".match(/^[^:]+:\/\/(.*)$/)[1] [07:51] v8bot: isaacs: "vimdoc.sourceforge.net/htmldoc/insert.html#:startinsert" [07:52] isaacs: v8> "http://vimdoc.sourceforge.net/htmldoc/insert.html#:startinsert".match(/^[^:]+:\/\/[^\/]+(.*)$/)[1] [07:52] v8bot: isaacs: "/htmldoc/insert.html#:startinsert" [07:52] isaacs: mikeal: ^ [07:52] mikeal: vimsource? [07:52] isaacs: v8> "http://vimdoc.sourceforge.net/htmldoc/insert.html#/some/path?:startinsert".match(/^[^:]+:\/\/[^\/]+(.*)$/)[1] [07:52] v8bot: isaacs: SyntaxError: Unexpected token ILLEGAL [07:53] stagas: http://xkcd.com/208/ [07:53] stagas: :P [07:53] isaacs: mikeal: yeah, it's what i had in chrome atm [07:53] mraleph has joined the channel [07:53] stagas: isaacs ^ [07:53] isaacs: stagas: :D [07:54] pkrumins: isaacs: node-gif installs now ok! [07:54] isaacs: pkrumins: awesome [07:54] isaacs: v8> "http://vimdoc.sourceforge.net/htmldoc/insert.html?stuff#/some/path?:startinsert".match(/^[^:]+:\/\/[^\/]+(.*)$/)[1] [07:54] v8bot: isaacs: "/htmldoc/insert.html?stuff#/some/path?:startinsert" [07:54] isaacs: mikeal: ^ [07:54] isaacs: that the desired behavior? [07:55] isaacs: it's simpler, because the browser doesn't see the user:pass portion [07:57] ph^ has joined the channel [08:00] pkrumins: oh sweet, so today yc results get sent out [08:00] pkrumins: s/get/will get/ [08:01] mikew3c has joined the channel [08:05] jankoprowski has joined the channel [08:07] saschagehlich has joined the channel [08:08] evanmeagher: pkrumins: you applied, i take it? [08:08] pkrumins: sure [08:08] pkrumins: me and SubStack! [08:09] evanmeagher: cool. if you don't mind me asking, what was your idea? [08:09] pkrumins: evanmeagher: sure, it's virtual machines on the web, www.catonmat.net/blog/i-am-doing-a-startup/ [08:10] mjr_ has joined the channel [08:11] evanmeagher: nice! good luck hearing back today. [08:11] jetienne has joined the channel [08:12] bartt has joined the channel [08:17] dgathright_ has joined the channel [08:17] termie has joined the channel [08:18] adambeynon has joined the channel [08:21] hellp has joined the channel [08:23] dgathright_ has joined the channel [08:25] Anti-X has joined the channel [08:25] virtuo has joined the channel [08:30] fbits has joined the channel [08:31] faust45 has joined the channel [08:31] ajsie has joined the channel [08:35] Tim_Smart has joined the channel [08:38] evanmeagher has joined the channel [08:39] Anti-X: yeye [08:41] saikat has joined the channel [08:42] evanmeagher has joined the channel [08:44] Anti-X: so what's the 'flaw' with node's ssl/tls? [08:45] Anti-X: or in other words, why do people recommend not to use it? [08:45] Anti-X: i didn't quite pick up the exact reasons [08:45] mjr_: It sort of drops connections a lot [08:46] mjr_: Seems to work at first, and then stops for no obvious reason [08:46] mjr_: Sounds like pquerna and Tim_Smart are hot on the heels of a refactor that should fix a lot of this. [08:46] Anti-X: drops as in disconnects people, or drops as in won't accept new ones? [08:47] mjr_: But pquerna is too busy right now setting MUNI busses on fire because the Giants won. [08:47] mjr_: I think the issue is that connections seem to be established, and then things randomly drop. [08:48] Anti-X: is that a 'real' problem, though? i mean, i can see it being a problem with streams, but for static pages? [08:48] bartt has joined the channel [08:48] Anti-X: other than that it has to re-handshake over and over [08:48] mjr_: Connections drop randomly. Kind of sucks. [08:49] mjr_: Some people clearly use it though. [08:49] Anti-X: so there's no real security flaw? [08:49] Anti-X: just a nuisance [08:49] mjr_: I know npm used to use it, but the complaint rate got too high, so now it doesn't. [08:49] mjr_: I don't believe it is a security issue, just a usability issue. [08:49] Anti-X: i'm thinking of just using it for an admin section [08:49] mjr_: Hopefully this will all change soon. [08:50] mjr_: I've just been using stunnel for now until it seems like things are better [08:50] Anti-X: does it support tls? [08:50] alxc1 has joined the channel [08:51] Anti-X: i just see ssl mentioned here and there [08:51] Anti-X: ok yes it can [08:51] Anti-X: This means that stunnel can support whatever (and only) that which your SSL library can [08:52] Neil__ has joined the channel [08:53] ajsie: is there an easy way to create a Restful API on node.js? [08:53] ajsie: or do I have to do everything manually with node.js/express ? [08:53] Anti-X: if you're using express, then it's not manually, is it? [08:53] Anti-X: :p [08:54] Druid_ has joined the channel [08:54] Anti-X: http://github.com/ry/node/wiki/modules#web-frameworks-full [08:55] Anti-X: grasshopper [08:55] Anti-X: pintura [08:56] mjr_: ajsie: depending on what you want to do, bare node is not that bad. [08:57] mjr_: Anti-X: I'm not happy with the stunnel solution, but it seems to be what a lot of people use with similar problems. [08:57] stride: ajsie: http://github.com/Marak/webservice.js [08:59] micheil: pquerna: are you about? A question about crypto / AES-128-CTR [08:59] ajsie: yeah but i was hoping to find something that did that automaticaly [09:00] ajsie: cause its a repeating pattern .. or i will have to write my own [09:01] tek has joined the channel [09:01] ajsie: could you say http://github.com/Marak/webservice.js is a competitor of express? [09:01] ajsie: or could/should I use webservice.js inside an express app? [09:02] Anti-X: nobody's competitors [09:02] Anti-X: we're all consenting adults here! [09:02] Anti-X: i think webservice.js is standalone [09:03] Tim_Smart has joined the channel [09:03] Anti-X: but obviously you need to plug your own code into it [09:04] Anti-X: with regards to what it can access and where it can write [09:04] deepthawtz has joined the channel [09:07] viktors has joined the channel [09:08] kawaz_work has joined the channel [09:08] CIA-93 has joined the channel [09:10] quag has joined the channel [09:11] Blink7_ has joined the channel [09:11] stride: Anti-X: oh come on. david-hasselhoff.js is clearly a competitor to vapor.js :) [09:12] Anti-X: :p [09:14] Anti-X: vapor is seriously hilarious though.. especially that they keep adding plugins into other frameworks :p [09:15] Anti-X: and i can't google david-hasselhoff.js, because it thinks i want david hasselhoff things, which i really don't, and people sitting next to me are staring [09:16] echosystm has joined the channel [09:19] ajsie: vapor.js looks kinda cool [09:20] ajsie: less is more [09:21] jackowayed has joined the channel [09:22] steadicat has joined the channel [09:23] Anti-X: very targeted library, goes straight into the hearts of so called "CTO"s... [09:23] Anti-X: just look at the graphs, that's all the proof you need [09:24] omarkj has joined the channel [09:25] JohnDav has joined the channel [09:26] ooooPsss has joined the channel [09:27] Lorentz: Is there absolutely nothing in the file or something? [09:27] Lorentz: I thought so [09:28] aubergine has joined the channel [09:29] saschagehlich has joined the channel [09:30] aubergine_ has joined the channel [09:34] Anti-X: nothing? no. it's a state of mind! [09:34] JohnDav: http://stackoverflow.com/questions/2886191/how-do-i-close-a-socket-after-a-timeout-in-node-js [09:35] JohnDav: is this a bug ? [09:38] siebertm has joined the channel [09:39] siebertm: where do i have to look if i want to check out the "new" ssl stuff? need ssl pretty hard :) [09:40] ajsie: a pity http://github.com/Marak/webservice.js isnt feature rich or it would be used to create a Restful application entirely [09:40] MattJ has joined the channel [09:40] Anti-X: JohnDav, as the answer says you should use httpClient for this [09:41] Anti-X: oh it does [09:41] Anti-X: nvm [09:41] TomY has joined the channel [09:42] Anti-X: but yeah, don't go through the abstraction if you're using the abstraction [09:42] Anti-X: that defeats the purpose [09:42] Anti-X: and you may "break" things [09:44] aabt has joined the channel [09:45] Nohryb has joined the channel [09:48] adambeynon has joined the channel [09:49] aubergine has joined the channel [09:49] echosystm: whats the best way to set up raw websockets and not use socket.io ? [09:49] mbrochh has joined the channel [09:50] echosystm: im only interested in websockets, not jsonp etc. [09:50] sth: echosystm: ws.js [09:50] echosystm: thanks [09:50] sth: http://github.com/ncr/node.ws.js [09:51] sth: Works fine, I use it in a project since I detested socket.io's implementation [09:52] DoNaLd`: my small contribution to the world NodeJS: http://github.com/donaldinos/GitArista [09:53] JohnDav: Anti-X: im using socket.io.. too much assertions [09:54] siebertm: any ideas on socket.io and ssl? [09:54] Anti-X: plug and pray [09:54] siebertm: doesnt work. [09:54] Anti-X: sacrifice a child? [09:55] siebertm: didnt think of that... [09:55] Lorentz: It has to be your own kid, remember that. [09:55] siebertm: but, seriously... [09:55] Anti-X: i think the neighbours have a spare [09:56] siebertm: i heard someone tackled the ssl stuff a few days ago, any idea who? [09:56] res99 has joined the channel [09:57] Anti-X: micheil, pquerna, Tim_Smart, among others [09:57] Tim_Smart: siebertm: pquerna is the SSL guy. [09:58] siebertm: pquerna: are you alive and awake? [09:58] Anti-X: so, ess-ess-ell, or sizzle? [09:59] siebertm: narf. 0.3.0 change querystring.parse... [10:02] Tim_Smart: Heh http://xkcd.com/528/ [10:03] siebertm: :) [10:04] teemow has joined the channel [10:05] echosystm: sth: you wouldnt happen to know the ws.js package name on npm? [10:05] mraleph has joined the channel [10:05] echosystm: (assuming it is available on npm) [10:05] Utkarsh has joined the channel [10:05] echosystm: i cant seem to find it [10:06] sth: I don't think it's on NPM [10:06] sth: echosystm: http://github.com/ncr/node.ws.js [10:06] sth: That's the github repo [10:06] echosystm: ok, thanks [10:06] sth: I did link to it a while ago [10:07] echosystm: yeah i just like to use npm if possible [10:07] echosystm: hence why i asked :P [10:07] sth: I'm the opposite [10:07] Gruni has joined the channel [10:07] sth: I'd rather have a vendor folder in the project [10:08] sth: Which contains all the libs I'm using [10:08] bpadalino has joined the channel [10:08] rikarends: support folder! [10:08] rikarends: vendor sounds so commercial [10:08] sth: heh [10:08] rikarends: connect / express does support too so we moved with all our node libs to support :) [10:08] sth: Sorry for selling out to the man :( [10:08] rikarends: spread the word :) [10:08] rikarends: vendor just doesnt fit [10:09] rikarends: who is vending :) [10:09] sth: Github :) [10:09] sth: Since 90% of all node stuff is on it [10:09] rikarends: anyway i've seen 3 types, vendor, common, support [10:10] rikarends: i prefer support since it most accurately describes what it is [10:11] rikarends: but its of course quite arbitrary [10:11] cefn has joined the channel [10:12] loxs has joined the channel [10:12] loxs: hi Astro, you around? [10:12] cefn has left the channel [10:13] loxs: or maybe anyone else familiar with node-xmpp could help me? [10:15] loxs: is it possible to send xhtml formatted messages using node-xmpp? [10:15] echosystm: sth: FYI, this one seems to be more updated and is on npm: http://github.com/miksago/node-websocket-server [10:15] siebertm: are there any known problems with socket.io dropping the connection repeatedly? [10:15] sth: thanks [10:16] Tim_Smart: Haha http://xkcd.com/705/ [10:17] xla has joined the channel [10:26] Ori_P has joined the channel [10:26] ooooPsss has joined the channel [10:26] siebertm: whats the rationale behind changing querystring.parse THAT much in 0.3? [10:27] Tim_Smart: What is different about it? [10:28] siebertm: it used to parse 'the rails way' before, now it doesnt [10:28] siebertm: ACTION gisting [10:28] Tim_Smart: Yeah I know, it was discussed. [10:28] Tim_Smart: You will have to implement that yourself. [10:29] Anti-X: the railsway [10:29] StanAngeloff has joined the channel [10:29] path[l] has joined the channel [10:29] siebertm: but i'm surely not the only one and dont want to do that myself... [10:30] Anti-X: what does it do instead? [10:30] siebertm: https://gist.github.com/993c6c4f50aaf1d6bd06 [10:31] siebertm: do you know about anyone having implemented that yet> [10:31] saschagehlich: a short non-js-related question: which online video portals do you use most? I need a list for my web project :) [10:31] siebertm: s/>/? [10:31] Anti-X: well it's technically more accurate [10:31] Anti-X: maybe less practical [10:31] siebertm: saschagehlich: none [10:31] saschagehlich: not even youtube? [10:32] siebertm: but it makes my server explode :) [10:32] siebertm: saschagehlich: not event that [10:32] Anti-X: it doesn't make your server explode, now you're exaggerating! [10:32] siebertm: cant type. need lunch [10:32] siebertm: well not exactly :) [10:33] Anti-X: but yeah lunch [10:34] teemow has joined the channel [10:35] JojoBoss has joined the channel [10:35] hassox has joined the channel [10:39] Nohryb_ has joined the channel [10:44] daglees__ has joined the channel [10:44] junkee[] has joined the channel [10:46] path[l] has joined the channel [10:50] siebertm: i think i've got a working socket.io on ssl [10:50] siebertm: w00tw00t [10:51] echosystm has joined the channel [10:51] Anti-X: gist [10:51] herbySk has joined the channel [10:51] siebertm: can't. closed source... [10:51] Anti-X: didn't you just have to hook socket.io onto the https server? [10:51] siebertm: well, yes [10:51] Anti-X: a.k.a. port 443 [10:52] siebertm: but make sure you have 0.6 [10:52] siebertm: didnt notice there was a new version [10:52] siebertm: cost me 2 days of my life... [10:53] Nohryb has joined the channel [10:53] aubergine has joined the channel [10:53] siebertm: dont know if it really works out... gotta deploy it on our staging server [10:54] Anti-X: don't worry about those two days [10:54] Anti-X: you'll get them back by not smoking [10:54] Lorentz: What if you already don't smoke [10:54] siebertm: ^^ [10:54] Anti-X: not even just the time at the end of your life, but the time it takes to smoke [10:54] Anti-X: so we're all still in front [10:55] Anti-X: we have so much time to waste [10:56] JohnDav: any idea why CPU usage spikes up to 100% after the node server using socket.io is on for a few minutes [10:57] jelveh has joined the channel [10:57] siebertm: JohnDav: had that once, if you find out why: siebertm85@gmail.com ! :) [10:57] JohnDav: siebertm: oh.. what versions were you on ? [10:58] siebertm: was 0.5.2 back then [10:58] JohnDav: im on 0.2.4 node... and master of socket.io [10:58] JohnDav: its pretty stable... but after a few minutes (or hours)... it just keeps on spiking to 100% [10:59] siebertm: i'm currently on 0.6 and about to deploy it to our staging env [10:59] JohnDav: are you also getting the problem ? [11:00] siebertm: i had it once [11:01] siebertm: but it was overnight, so i didnt have any chance on debugging it [11:01] JohnDav: oh ok [11:01] JohnDav: im on master.. still having it [11:01] JohnDav: :/ [11:01] siebertm: never had it on my dev machine, though [11:01] JohnDav: yeah same here [11:01] JohnDav: dev machine is fine [11:01] siebertm: and i didnt have any logging back then :) [11:01] JohnDav: i guess it happens when a lot of traffic hits the server [11:01] Anti-X: we need to chain rauchg to a computer until he fixes it [11:01] siebertm: are you using ssl? [11:02] JohnDav: nope [11:02] JohnDav: no ssl [11:02] JohnDav: Anti-X: lol - he did debug a lot of spooky bugs last night [11:02] JohnDav: but these cpu spike one still left [11:03] JohnDav: it could be node too actually [11:03] micheil: sth: I'm actually releasing a new version of node-websocket-server in the next few days [11:03] micheil: v1.4.00 [11:04] sth: Cool [11:06] Anti-X: will that help? [11:07] siebertm: damnit. socket.io loosing the connectio again [11:08] JohnDav: siebertm: im not having the connection problem [11:08] JohnDav: 350 clients connected right now [11:08] siebertm: but i have ssl [11:08] JohnDav: ah [11:08] JohnDav: ssl support in node isnt too good i hear [11:08] siebertm: yeah. [11:09] siebertm: works really good in non-ssl [11:09] JohnDav: except the cpu spikes, yeah [11:09] siebertm: but i need to have ssl [11:10] siebertm: looses connection, reconnects, looses connection, ... [11:11] hellp has joined the channel [11:11] kawaz_air has joined the channel [11:12] aubergine_ has joined the channel [11:13] SubStack has joined the channel [11:14] zorzar has joined the channel [11:18] eee_c has joined the channel [11:22] sideshowcoder has joined the channel [11:23] micheil: mraleph: hey, is it possible to set deletion properties / methods on objects in v8 yet? [11:28] agememnon has joined the channel [11:29] shouvik has joined the channel [11:31] mraleph: micheil: what do you mean by that? [11:32] mr_daniel has joined the channel [11:33] ooooPsss has joined the channel [11:34] shouvik: good source of tutorial for socket.io? [11:34] shouvik: total noob here! [11:37] viirya has joined the channel [11:37] matjas has joined the channel [11:38] JojoBoss has joined the channel [11:40] micheil: mraleph: like, can you set a destructor for a v8 object? [11:41] ashb: anyone have anything (good or bad) to say about Ruby's Fibers? [11:41] micheil: currently I see no where in node that defined when a buffer is to be destroyed or cleared [11:41] micheil: ashb: asking in the wrong place. [11:41] ashb: micheil: i figure people here like async so might have a comment on them [11:42] micheil: people in here probably like the node.js way, hence they are here [11:42] Tim_Smart: micheil: Yeah there is. [11:42] micheil: choose what you like best, what you find easiest, not what others tell you, because anyone you ask from any community will have a slight bias [11:42] micheil: Tim_Smart: where? [11:43] Tim_Smart: micheil: http://github.com/ry/node/blob/master/src/node_buffer.cc#L181-183 [11:43] agnat has joined the channel [11:43] mraleph: micheil: destructors are pretty meaningless for languages with GC, there are weakhandles/weakcallbacks [11:43] Tim_Smart: and http://github.com/ry/node/blob/master/src/node_object_wrap.h#L16 [11:43] micheil: okay [11:43] Tim_Smart: And that ---^ [11:44] micheil: so that's what ::~something does. [11:45] micheil: anyway, night chaps' [11:47] Tobias| has joined the channel [11:47] siebertm: getting closer to understanding why my socket.io connections keep dropping [11:48] mAritz has joined the channel [11:49] JohnDav has joined the channel [11:49] aubergine has joined the channel [11:50] DoNaLd`: ryan[WIN]: alive ? [11:53] micheil: siebertm: have you tried the latest socket.io? [11:54] siebertm: 0.6.0 [11:54] micheil: k [11:54] micheil: talk to Rauchg [11:54] micheil: or email the socket.io mailing list [11:55] siebertm: i'm that close.... [11:56] siebertm: is there a known bug in node with ssl request not coming through to the app? [11:56] JohnDav has joined the channel [11:59] jvolkman_ has joined the channel [12:02] jashkenas has joined the channel [12:03] entp has joined the channel [12:05] robotarmy has joined the channel [12:06] alxc1 has left the channel [12:08] JojoBoss has joined the channel [12:12] JojoBoss has joined the channel [12:19] Sembiance: morning :) [12:19] Tobias|: evening :) [12:21] kawaz_home has joined the channel [12:21] chapel: so I am passing some data between functions, when I try to output the data for debugging it is being returned as [Function] [12:22] chapel: is there a way to see what exactly is being returned? [12:23] faust45 has joined the channel [12:23] Tobias|: console.dir(databeingreturned) [12:23] Tobias|: Perhaps? [12:23] chapel: returns same [12:23] chapel: [Function] [12:23] Tobias|: huh. [12:23] Anti-X: sys.inspect [12:23] Anti-X: util.inspect [12:23] Tobias|: ACTION wonders if you should be using sys [12:23] chapel: tried that [12:23] Tobias|: Ah :> [12:24] chapel: still returns [Function] [12:24] Tobias|: ACTION wouldn't know, is a total newbie, crawls back under his rock [12:24] chapel: holdon [12:24] Tobias|: to what? [12:25] bruse: the fabric of space and time [12:26] Tobias|: ACTION will try, but promises nothing [12:26] Tobias|: ACTION feels like a regular Gatsby :< [12:26] Anti-X: func.toString() [12:26] Anti-X: obviously [12:26] chapel: hmm [12:26] chapel: using sys.inspect still returns [Function] [12:26] Tobias|: ACTION hopes somebody got his cultural reference [12:26] Anti-X: try tostrign [12:27] JojoBoss has joined the channel [12:29] chapel: odd [12:29] chapel: okay, the data was being returned all this time in the error [12:29] chapel: I just didn't know that was what was happening [12:29] chapel: :( [12:29] chapel: I am using isaacs slide module [12:30] chapel: and for some reason its sending a function instead of data... [12:30] Anti-X: http://scienceblogs.com/pharyngula/upload/2010/11/finally_a_use_for_that_bad_plu/OCTOPI.jpeg [12:31] hsuh has joined the channel [12:32] matt_c has joined the channel [12:32] matt_c has joined the channel [12:33] robinduckett: chapel: sure it's not returning a callback function? [12:35] dmcquay has joined the channel [12:36] chapel: hmm [12:38] Evet has joined the channel [12:39] matjas has joined the channel [12:41] bahamas has joined the channel [12:43] javruben2 has joined the channel [12:45] aheckmann has joined the channel [12:45] ker2x has joined the channel [12:45] ker2x: friendly greetings \o/ [12:46] ysynopsis has joined the channel [12:47] javruben has joined the channel [12:48] mbrochh has joined the channel [12:49] aubergine has joined the channel [12:50] derencius has joined the channel [12:52] JojoBoss has joined the channel [12:55] JojoBoss has joined the channel [12:58] aubergine has joined the channel [12:59] podman has joined the channel [13:00] podman has left the channel [13:01] Nohryb has joined the channel [13:02] stagas has joined the channel [13:02] dmcquay_ has joined the channel [13:03] saschagehlich: the opposite of node's JSON.stringify is not explained in the docs? [13:03] figital has joined the channel [13:04] pquerna: siebertm: yo? [13:04] siebertm: :) [13:05] pquerna: micheil: aes-128-ctr? [13:05] svnlto has joined the channel [13:05] siebertm: as i said: i want that ssl :) [13:08] jherdman has joined the channel [13:12] JohnDav: aha [13:12] JohnDav: i found out the cpu spikes occur after process assertions [13:13] masm has joined the channel [13:13] saschagehlich: the implemented JSON stuff is brought by v8, right? [13:14] masm has left the channel [13:14] masm has joined the channel [13:15] junkee[]: jep [13:16] kriszyp has joined the channel [13:17] pquerna: saschagehlich: you mean the opposite, JSON.parse? [13:17] saschagehlich: hmm... can I get the exact location of an unexpected token? [13:17] jelveh has joined the channel [13:17] saschagehlich: pquerna: yea... it's not documented but I found out that it's "parse" [13:17] Anti-X: it's not a node function [13:17] JohnDav: ryah_: i found a way to reproduce the process.assertion (which i believe is causing the cpu spikes) [13:18] Anti-X: it's a js library which happens to be included in most recent engines, including v8 [13:19] saschagehlich: Anti-X: okay... but one strange thing: https://gist.github.com/54369be56c40597bea78 (unescaped is a huge json hash I get from dailymotion.com) [13:20] willwhite has joined the channel [13:20] ben_alman has joined the channel [13:21] Anti-X: what is the error? [13:21] meandi has joined the channel [13:23] saschagehlich: Anti-X: Unexpected token ILLEGAL [13:23] Anti-X: so it's not giving you correct json [13:23] mraleph: saschagehlich: can you show us JSON? [13:23] Anti-X: json is really strict [13:23] Anti-X: just evaling it ignores that strictness [13:24] Anti-X: so obviously dailymotion evals their json [13:24] Anti-X: which is nice to know if you wannt fuck something up [13:24] Anti-X: want to* [13:25] saschagehlich: mraleph: https://gist.github.com/9e0d246c0c1889a43683 [13:26] MattJ has joined the channel [13:28] dnolen has joined the channel [13:29] mraleph: saschagehlich: i don't see anything wrong with this json. let me feed it into V8 to see what happens... [13:29] saschagehlich: ah, jsonlint tells me it's line 17 [13:30] saschagehlich: syntax error, unexpected TINVALID at line 17 [13:31] peutetre has joined the channel [13:35] ker2x: Mmm, i'm still impressed by nodejs. running in background since many weeks. inserted 50Millions documents over time. no problem at all. memory usage still low :) [13:36] ker2x: root 2755 0.5 1.9 631756 20136 pts/13 S+ Oct05 240:10 node --trace_gc main.js [13:38] mraleph: saschagehlich: ah. I see. \' is not valid escape sequence inside string in JSON. [13:38] entp has joined the channel [13:39] saschagehlich: mraleph: so I could fix that with a simple str.replace? [13:40] mraleph: well. you can try :-) [13:40] mraleph: just keep in mind corner cases like "\\'" [13:41] saschagehlich: unescaped.replace /\\'/gi, "'" [13:41] saschagehlich: that actually did it [13:41] saschagehlich: thanks :) [13:42] bentruyman has joined the channel [13:44] mraleph: saschagehlich: keep in mind that it will do incorrect thing on JSON containing something like "\\'" it will turn it into "\'" [13:45] saschagehlich: mraleph: mmmh... what would the regex look like then? [13:47] mraleph: saschagehlich: let me think [13:47] ntelford has joined the channel [13:48] jtsnow has joined the channel [13:50] mbrochh has joined the channel [13:53] ceej has joined the channel [13:56] Anti-X has joined the channel [13:57] mraleph: saschagehlich: "\\\\'".replace(/((\\*)$1)\\'/gi, "$2'") [13:57] mraleph: saschagehlich: something like this [13:57] saschagehlich: v8> "\\\\'".replace(/((\\*)$1)\\'/gi, "$2'") [13:57] v8bot: saschagehlich: "\\'" [13:58] entp has joined the channel [13:58] mraleph: saschagehlich: no this does not look right [13:59] mraleph: saschagehlich: ah. f*ck [13:59] Anti-X: anything containing a regex doesn't look right [13:59] saschagehlich: Anti-X: true.... true.... ;) [13:59] markwubben has joined the channel [13:59] Anti-X: that's why my regexes are bright red [13:59] Anti-X: "this is where you fucked something up!" [14:01] emmanueloga has joined the channel [14:04] unomi has joined the channel [14:06] garrensmith has joined the channel [14:06] garrensmith: morning all [14:08] yhahn has joined the channel [14:09] all: morning garrensmith [14:09] Guest94387: hehe [14:09] siebertm has left the channel [14:10] siebertm has joined the channel [14:10] siebertm has left the channel [14:10] ooooPsss has joined the channel [14:10] Tobias| has joined the channel [14:11] meandi has joined the channel [14:12] siebertm has joined the channel [14:13] mraleph: saschagehlich: ok. this should work: s.replace(/([^\\](\\*)\2)\\'/gi, "$1'") [14:14] saschagehlich: let's try [14:14] saschagehlich: v8> "\\\\'".replace(/([^\\](\\*)\2)\\'/gi, "$1'") [14:14] v8bot: saschagehlich: "\\'" [14:14] saschagehlich: well, same result... another testcase [14:14] mraleph: looks correct to me [14:15] mraleph: even number of slashes should remain even [14:15] mraleph: also don't forget to add something in the begging [14:15] mraleph: because escape sequences can appear only in strings inside JSON, this fact is used in regexp [14:16] muk_mb has joined the channel [14:16] mraleph: v8> "\"\\'".replace(/([^\\](\\*)\2)\\'/gi, "$1'") [14:16] v8bot: mraleph: ""'" [14:17] mraleph: v8> (function (s) { return s + " => " + s.replace(/([^\\](\\*)\2)\\'/gi, "$1'") })("\"\\\\\\\\'") [14:17] v8bot: mraleph: ""\\\\' => "\\\\'" [14:17] mraleph: v8> (function (s) { return s + " => " + s.replace(/([^\\](\\*)\2)\\'/gi, "$1'") })("\"\\\\\\'") [14:17] v8bot: mraleph: ""\\\' => "\\'" [14:18] mraleph: yep. works correctly [14:18] mlangenberg: What do you guys use to keep a node server running. Using 'screen' doesn't cut it anymore for me. [14:18] saschagehlich: okay cool :) thanks mraleph [14:20] SvenDowideit has joined the channel [14:23] tj has joined the channel [14:23] jpld has joined the channel [14:24] matt_c has joined the channel [14:25] softdrink has joined the channel [14:25] entp has joined the channel [14:26] d3x7r0 has joined the channel [14:27] entp_ has joined the channel [14:27] johngbrooks has joined the channel [14:27] d3x7r0: Hi there, I was wondering if anyone here could help me with a question about Step? [14:27] jvolkman_ has joined the channel [14:28] dmcquay has joined the channel [14:28] stephank has joined the channel [14:31] Tobias|: Ask the question, d3x7r0, somebody will answer if they know how to :) [14:32] mikedeboer has joined the channel [14:32] d3x7r0: kk, I was doing something like (check cache -> if yes return if not ask remote service and then return) and since checking the cache is the same as getting the data I was wondering how to "skip" to the final step [14:35] danoyoung has joined the channel [14:36] sivy has joined the channel [14:36] davidascher has joined the channel [14:37] cferris has joined the channel [14:39] jamund has joined the channel [14:41] matt_c_ has joined the channel [14:41] daniellindsley has joined the channel [14:46] matt_c has joined the channel [14:47] boaz has joined the channel [14:47] siebertm: mlangenberg: upstart [14:47] boaz has joined the channel [14:47] pengwynn has joined the channel [14:48] EyePulp has joined the channel [14:53] TomY has joined the channel [14:53] d3x7r0 has joined the channel [14:56] mlangenberg: siebertm: doesn't that replace a core of my system? [14:57] siebertm: you dont have upstart? [14:57] mlangenberg: ... using debian [14:57] siebertm: which version? [14:58] mlangenberg: stable [14:58] devinus_ has joined the channel [14:58] siebertm: do you have /etc/init/ or /etc/event.d/? [14:58] siebertm: (or was it /etc/event?) [14:59] davidsklar has joined the channel [14:59] mlangenberg: /etc/init.d [15:00] siebertm: not init.d [15:00] Utkarsh has joined the channel [15:00] siebertm: init.d is sys v init [15:00] mlangenberg: right [15:01] siebertm: i think it is optional [15:01] ooooPsss has joined the channel [15:01] siebertm: but it plays well with init [15:01] jakehow has joined the channel [15:02] siebertm: you could use start-stop-daemon, too, but dont ask me how that works :) [15:02] siebertm: or fork yourself [15:02] rikarends: fork you too [15:02] Tobias|: How rude [15:02] siebertm: :) [15:02] mlangenberg: :P [15:02] siebertm: i should have said "or fork() yourself" [15:03] Tobias|: :P [15:03] siebertm: that would have been more politically correct... [15:03] mlangenberg: I don't want every script to daemonize themselve. [15:03] siebertm: then dont fork [15:04] mlangenberg: Any experiences with 'runit'? I read heard that somewhere in the hallways ... [15:04] softdrink: spooning leads to forking. don't spoon, kids. [15:04] softdrink: ¬¬ [15:04] bengl has joined the channel [15:04] siebertm: there is no spoon. [15:04] siebertm: we should stop that. now. [15:04] sonnym has joined the channel [15:04] springmeyer has joined the channel [15:05] softdrink: spoon kid = aang [15:05] Tobias|: spoon kid != aang [15:05] LuigiMontanez has joined the channel [15:05] halfhalo: spoon=null [15:05] Tobias|: Although, ironically, one is a persons avatar in the matrix [15:05] softdrink: hehe [15:05] Tobias|: They're both avatars, of sorts [15:06] softdrink: (i had my doubts about that cartoon, but i enjoyed the hell out of it.) [15:07] Ari-Ugwu has joined the channel [15:07] Tobias|: ACTION did, too [15:08] Tobias|: I haven't seen the live-action movie [15:08] Tobias|: Not sure I want to [15:08] halfhalo: ACTION wants someone to take this frontend and make it better for irc [15:08] Tobias|: Frontend? IRC? Wha? O_o [15:08] halfhalo: http://dev.silentbluesystems.com:4567/ [15:08] sh1mmer has joined the channel [15:08] halfhalo: Its currently using a rails backend and is polling every 1.5 seconds for new stuff [15:08] halfhalo: which makes it lame [15:09] Tobias|: ACTION falls asleep as it hangs on 'Please Wait, retrieving IRC session history...' [15:09] Tobias|: Wouldn't it be better to .. use node.js? [15:09] Tobias|: :< [15:09] halfhalo: yeah [15:09] halfhalo: but its not mine [15:09] Tobias|: ACTION is still waiting as it hangs on that [15:09] Tobias|: ACTION has finally asphyxiated due to all of the hanging [15:09] halfhalo: well, this instance is, but the actual code is on github [15:09] Tobias|:
Please Wait, retrieving IRC session history...
[15:09] oal has joined the channel [15:09] Tobias|: ^ that code is evil [15:09] halfhalo: ACTION will be pissed if it only lets one person use it at a time [15:09] softdrink: oh em gee. [15:10] Tobias|: Still waitin', halfhalo :( [15:10] softdrink: Tobias|, punch whoever wrote that. [15:10] stride: hangs here as well [15:10] Tobias|: ACTION punches halfhalo [15:10] softdrink: AGAIN WITH FEELING [15:10] halfhalo: ACTION didn't write it [15:10] Tobias|: >.> [15:10] Tobias|: ACTION hides [15:10] Tobias|: ACTION gives up, too much hanging :( [15:10] halfhalo: ACTION goes to kill sinatra  [15:10] Tobias|: o_o [15:10] mlangenberg: What about Monit or God? [15:11] Tobias|: Frank Sinatra? [15:11] halfhalo: No, sinatra as in the ruby sinatra framworkthingie [15:11] Tobias|: Oh :< [15:12] halfhalo: Yup... its only accessibly by one person at a time.... WTF [15:12] mlangenberg: hmm... maybe I could use supervisor [15:12] halfhalo: but ze interface is fancy shmancy [15:12] halfhalo: like, really nice [15:12] rikarends: all face no brains [15:13] halfhalo: bingo [15:13] Tobias|: Would be nice if IRC networks started providing XMPP interfaces :< [15:13] MattJ: +1 [15:13] halfhalo: ACTION just wants a nice web interface :( [15:13] rikarends: irc is simple enough i dont see why you would need xmpp on that [15:13] TomsB has joined the channel [15:13] rikarends: writing an irc client in nodejs is easier than implementing xmpp [15:13] chapel: lol [15:14] halfhalo: yupyup [15:14] Tobias|: I can't stand the IRC protocol [15:14] rikarends: why encode stuff in bytes when XML does fine? [15:14] rikarends: \ [15:14] rikarends: :) [15:14] MattJ: The IRC protocol is different depending on who you ask :) [15:15] LuigiMontanez has left the channel [15:15] LuigiMontanez has joined the channel [15:15] d3x7r0 has joined the channel [15:15] Tobias|: ACTION makes reference to colour codes [15:16] stride: rikarends: why blow up simple data when a : and a line break work fine? [15:16] aconbere has joined the channel [15:16] micheil: Tobias|: style up? [15:16] micheil: still [15:16] ehaas has joined the channel [15:16] rikarends: stride: exaclty. [15:17] stride: I see.. too tired for irony.. meh :) [15:19] danslo has joined the channel [15:19] MattJ: :) [15:20] mlangenberg: So what is common to use to watch over your node processes? [15:20] siculars has joined the channel [15:20] mlangenberg: You guys are not running everything in screen, right? [15:20] cefn has joined the channel [15:20] cefn has left the channel [15:20] stride: watch "ps aux | grep node" [15:20] stride: *scnr* [15:21] hober: screen for dev, daemontools for prod [15:21] micheil: mlangenberg: in deployment, I would use something like monit, god, upstart, etc. [15:21] mlangenberg: I see [15:22] mlangenberg: I don't want to make it too complicated. [15:23] softdrink: i've been meaning to write a sexy console-based monitor… no time :( [15:23] micheil: they are all pretty much industry standard tools at the moment, as far as I'm aware. [15:23] viktors: halfhalo, that url was uber-cool, is there any permanent place for it? (sorry didn't read entire conversation) [15:23] mlangenberg: softdrink: it is not about something sexy, but something that is thrustworthy [15:24] halfhalo: viktors: No, since it only lets one person in at a time [15:24] softdrink: pfffffff… reliability is overrated. ¬¬ [15:24] halfhalo: crashing makes life fun! [15:24] mlangenberg: :P [15:24] softdrink: fo sho [15:24] mlangenberg: lol [15:25] viktors: halfhalo, do you know any other great-looking realtime web apps? just need to show some cool example to my boss [15:25] Tobias|: Real-time web apps? [15:25] Tobias|: Mibbit? [15:25] garrensmith: I'm reading through the fs code and trying to improve my understanding of the code: How come the stream is destroyed after the callback - should it not be destroyed before the callback so that if an exception is thrown in the callback the stream would still have been destroyed. http://github.com/ry/node/blob/master/lib/fs.js#L58 [15:25] softdrink: like, collaborative or what? [15:26] Tobias|: Maybe Google Wave? [15:26] Tobias|: Although that kind of flopped.. perhaps not the best example [15:26] softdrink: my illustration app that is not yet even 0.1% finished? heh [15:26] viktors: Tobias|, Mibbit doesn't look as great as that one; and google wave doesn't look that great either [15:26] mlangenberg: viktors: I wrote a chat backend ... but still proprietary. [15:27] micheil: garrensmith: well, if the callback throws an error, and assuming you are not using uncaughtException, then your node process will exit. [15:27] Tobias|: :< [15:27] rikarends: www.worknets.com is fully nodejs backed realtime. its very beta though [15:27] mlangenberg: viktors: since I am asking about process monitoring tools, you can probalby guess at what stage of development I am. [15:27] garrensmith: micheil: and if you catch the exception higher up the stream will still be in memory though? [15:27] softdrink: rikarends: what's worknets? [15:28] micheil: hmm, yeah, in which case, I really think there are some bigger problems at hand. [15:28] softdrink: derp. nevermind. reading the help section. [15:28] rikarends: its a collab startup we built on ajax.org tech and nodejs [15:28] viktors: mlangenberg, btw, re tools, i use runit which is almost like daemontools but comes with ubuntu [15:28] jimmybaker has joined the channel [15:29] rikarends: its very beta though, UI is not properly packaged and lots of things being fixed now [15:29] Tobias|: ACTION thought linux could natively mount ISOs from the CLI [15:29] Tobias|: huh [15:29] garrensmith: micheil: why you say that? [15:29] mlangenberg: viktors: I am on a debian stable server ... can I use runit without completely switching my init scheme? [15:29] viktors: mlangenberg, yes, it works in the same way as daemontools [15:30] micheil: garrensmith: I'm not sure, at any rate, try swapping #58 with #59 [15:30] micheil: garrensmith: compile with debug, make test-all [15:30] mlangenberg: viktors: so I can install it just standalone, without messing with the rest of my system? [15:30] micheil: if it still functions the same and reduces chance for a stream being in memory, then submit a patch / discuss on nodejs-dev@googlegroups.com [15:31] garrensmith: micheil: ok will do thanks [15:31] viktors: mlangenberg, yep [15:31] micheil: garrensmith: I'm not entirely familar with the readStream usage in that case, so, yeah. [15:32] softdrink: rikarends: we should collaborate on an AtTask plugin to hammer our new API :D [15:32] wilmoore has joined the channel [15:32] softdrink: (note: i work for AtTask) [15:32] ryah_: JohnDav: are the cpu spikes still there? [15:32] ryah_: JohnDav: can you email me about it? gtg [15:32] garrensmith: micheil: yeah same, I'll post a question on google group see what eveyone says [15:33] garrensmith: what does this mean? FATAL:can't create output file: build/release/src/node_main.o [15:33] garrensmith: make: *** [build/release/src/node_main.o] Error 1 [15:33] rikarends: softdrink: we are still stabilizing so i think in 3-5 months soonest we'll start working with other companies and apps [15:34] softdrink: fair enough [15:34] softdrink: just seems like it might be a fun project [15:34] garrensmith: ACTION is idiot forgot how to make [15:34] quirkey has joined the channel [15:34] rikarends: yeah sounds great, just that our todostack is totally packed with just getting the infra up [15:34] softdrink: i know the feeling [15:35] SubStack: launching! [15:35] softdrink: it'd just be really cool to do things like: when a worknets user updates a document, add a little blip in AtTask's stream saying so, and link back over to the worknets doc [15:36] danslo: @mlangenberg: top -p $(ps aux | grep node | awk '{ print $2 }' | tr '\n' ',' | sed 's/,$//') [15:36] rikarends: yeah definitely. [15:36] danslo: have fun :P [15:36] femtoo has joined the channel [15:36] jchris1 has joined the channel [15:41] sprout has joined the channel [15:42] Akufen has joined the channel [15:42] Akufen has joined the channel [15:45] bradleymeck has joined the channel [15:50] mbrochh has joined the channel [15:50] mbrochh has joined the channel [15:52] jacobolus has joined the channel [15:53] fangel has joined the channel [15:53] elijah-mbp1 has joined the channel [15:54] frank06 has joined the channel [15:56] brianc has joined the channel [15:57] brianc: node v0.3.0: Buffer("\0") => [15:57] brianc: node v0.2.4: Buffer("\0") => [15:59] frank06: hi all- i'm doing child_process.exec("cat file") and i get: [15:59] frank06: an error (killed: true, signal: SIGTERM) and a truncated output [15:59] frank06: file size is ~620k [16:00] frank06: any pointers what could be going wrong here? [16:00] ysynopsis has joined the channel [16:01] StanAngeloff has joined the channel [16:02] amerine has joined the channel [16:03] Kami_: frank06, do you get this error right after doing exec? [16:03] boaz has joined the channel [16:03] dquestions has joined the channel [16:04] marienz has joined the channel [16:04] Kami_: frank06, it might be that your process is killed because of the timeout or maximum buffer size limit [16:04] hsuh has joined the channel [16:05] frank06: Kami_: yes, that was my next question... is the buffer limited? [16:05] frank06: so if i did this with spawn, the process shouldn't get killed? [16:06] frank06: that's weird, i'm pretty sure i've opened bigger files than 620k in the past [16:06] frank06: ah, there's a maxBuffer property :) [16:07] frank06: my bad, i totally overlooked that in the docs. will try again. thanks [16:10] bradleymeck has joined the channel [16:12] softdrink: with node, is there a way to read from stdin per keypress instead of 'per line'? [16:12] Jonasbn_ has joined the channel [16:13] ker2x: "Top 10 lesson learned from deploying hadoop and hbase" : Commodity hardware is not an old desktop. [16:13] ker2x: ACTION like [16:13] bradleymeck: softdrink, yes in raw mode, forget how to throw stdin into raw [16:14] softdrink: i've got an old snippet in c somewhere [16:14] bradleymeck: yea, but node has a builtin way that is preferred [16:15] softdrink: ACTION digs around [16:17] softdrink: also, i love that the opposite of raw is 'cooked' [16:17] tmpvar has joined the channel [16:19] benburkert has joined the channel [16:20] softdrink: stdio.setRawMode(true|false)? [16:20] tmpvar: mikeal, couch view server is spider monkey, right? [16:20] softdrink: ooh lots of goodies in readline.js [16:22] wavded has joined the channel [16:23] twoism has joined the channel [16:23] wavded has left the channel [16:24] aconbere has joined the channel [16:25] davidascher has joined the channel [16:25] softdrink: what exactly does process.binding() do? [16:26] aubergine_ has joined the channel [16:27] bpot has joined the channel [16:28] ooooPsss has joined the channel [16:31] sh1mmer has joined the channel [16:32] softdrink: pkrumins: i like the structure of the node-png project with 'discovery' and 'experiments'. the nomenclature just works really well. i'll have to adopt it. [16:32] MikhX has joined the channel [16:33] willwhite has joined the channel [16:35] banjiewen has joined the channel [16:36] ajsie has joined the channel [16:36] hoodow has joined the channel [16:37] matjas has joined the channel [16:37] junkee[] has left the channel [16:37] jspiros has joined the channel [16:37] ehaas has joined the channel [16:39] ker2x: http://blog.heroku.com/archives/2010/9/20/an_update_on_heroku_node_js_support/ [16:39] ker2x: ACTION whine [16:39] ker2x: when when wheeeeeeeen ? [16:39] ker2x: ACTION sob [16:41] sprout has joined the channel [16:41] zum has joined the channel [16:41] Astro has joined the channel [16:43] shaver: is there an update for node-amqp hiding somewhere that can handle node 0.3.? [16:43] shaver: 0.3.0 [16:43] ryah_: shaver: oh - is it broken? [16:43] ryah_: i'll look at it today [16:44] bartt has joined the channel [16:44] shaver: yeah [16:44] shaver: /usr/local/lib/node/.npm/amqp/0.0.2/package/amqp.js:265 [16:44] shaver: var s = buffer.utf8Slice(buffer.read, buffer.read+length); [16:44] shaver: ^ [16:44] shaver: TypeError: Object [16:44] meandi2 has joined the channel [16:46] ryah_: hm [16:47] ryah_: shaver: you can change that to buffer.toString(buffer.read, buffer.read+length);) [16:47] ryah_: in fact, let me commit some methods to make that backwards compat [16:47] pkrumins: softdrink: sure does [16:48] micheil: ryah_: hey, you know tools like god & monit, do you think it'd be wise to implement similar in node.js? [16:48] Nohryb has joined the channel [16:48] pkrumins: softdrink: just kept those around in case i need to do more experiments [16:48] blaines has joined the channel [16:48] micheil: ryah_: because there's really not a heap to them that node currently can't do (apart from a few things about checking process information) [16:48] tj: micheil: I wrote a node monit clone a while back [16:48] tj: like a year back [16:48] tj: haha [16:48] micheil: tj: oh? [16:48] tj: it was just conceptual, nothing worth using really [16:48] softdrink: pkrumins: and puts them in source control… unlike my experimental stuff: scattered everywhere and not checked in ;) [16:49] tj: monit isnt THAT bad, but duplicating shit all over the config is annoying [16:49] mtodd has joined the channel [16:49] marienz has joined the channel [16:50] micheil: tj: I dunno, I think it'd be able to be more elegant for node users if it were in javascript [16:50] mtodd has joined the channel [16:50] blaines has joined the channel [16:50] ryah_: micheil: i'd rather have a html5 irc client [16:50] ryah_: :) [16:50] tj: micheil: yup for sure, i think i deleted mine [16:50] tj: it wasnt to great [16:50] micheil: tj: yeah, you did. [16:50] tj: worked though [16:51] tj: to many repos haha [16:51] micheil: ryah_: ha, I could probably implement it. Maybe we should do like a core contributor hack weekend or something? [16:51] aubergine has joined the channel [16:52] micheil: ryah_: come to think of it, if you make an evented IRC client, then you could easily bind it with node-websocket-server [16:52] ryah_: or better an irc server with html5 frontend [16:52] bruse: what's wrong with an ncurses frontend? :) [16:53] bruse: it will take a lot to get me to abandon irssi, i think [16:53] twoism has joined the channel [16:54] stagas: what html5 features does an irc client need anyway? [16:54] tj: micheil: we need a better irc client too, the few i have tried were kinda sketchy [16:54] micheil: stagas: hmm, websockets, etc. [16:54] micheil: tj: agreed, colloquy annoys me. [16:54] tj: micheil: i just mean node :D [16:54] gkatsev: isn't collollolqoqlqoqyqyquy the best IRC client for OSX? [16:55] micheil: tj: ? [16:55] ryah_: stagas: by html5 i mean html :) [16:55] stagas: micheil: ok it's not like long polling is bad for an irc stream [16:55] tj: we could use that headless FF thing [16:55] tj: if that was FF [16:55] hober: ERC ftw (discaimer: I'm one of its developers) [16:55] stagas: ryah_: it also needs webscale :P [16:55] micheil: stagas: well, websockets would just add that extra live awesomeness. [16:55] stagas: buzzwords [16:55] LuigiMontanez: i'm using Adium 1.4 right now… not a bad irc client [16:55] rikarends: adium has a scaling problem when the backlog gets too long tho [16:56] micheil: you mean a SSB? [16:56] tmpvar: irssi pwns, xchat is fun [16:56] captain_morgan has joined the channel [16:56] micheil: .. and these was colloquy crashing again. [16:56] micheil: tj: you mean an SSB? [16:57] tj: micheil: what is that [16:57] micheil: site specific browser, or single site browser [16:57] tj: ah [16:57] tj: yeah [16:57] stagas: a cool html5 feature would be dropping a file over to a room, and drop a link for others to get it or view it [16:57] theBigZ has joined the channel [16:57] micheil: (like, doesn't have any of the typical browser controls) [16:57] micheil: stagas: very easily possible. [16:57] gkatsev: drop a file into a msg to initiate a dcc [16:57] tj: micheil: I forget which browser it was, but they were promoting a no chrome thing [16:57] stagas: maybe dcc yeah [16:57] captain_morgan has left the channel [16:57] tj: or that you build your own chrome [16:57] stagas: or oembed it [16:58] stagas: if it's a youtube link or a gist [16:58] micheil: tj: yeah, umm, there's a mozilla based one and a webkit based one [16:58] micheil: fluid and prism [16:58] stagas: etc [16:58] tj: micheil: there was something very recent as well, just cant remember what it was [16:58] gkatsev: fluid being the webkit one [16:58] micheil: stagas: it's just html, so you can always extend it. [16:58] benburkert has joined the channel [16:58] micheil: gkatsev: yus, [16:58] captain_morgan: tj: chromeless? [16:59] quirkey has joined the channel [16:59] gkatsev: micheil: you had the two mixed (mozilla, webkit)(fluid, prism) [16:59] captain_morgan: I did see the first part of this conversation, so not 100% sure if that what you are talking about [16:59] stagas: chat.stackoverflow.com is doing an effort but still it loses the feeling of irc [16:59] tj: ah yeah maybe that is what it was [16:59] micheil: gkatsev: yeah, my bad, I was going to correct, but, eh' [16:59] captain_morgan: that was a xulrunner based html/css/js customizable browser [16:59] micheil: captain_morgan: a html(5) irc client [16:59] captain_morgan: oops, sorry [17:00] gkatsev: micheil: hence why I added the statement about fluid being the webkit one :3 [17:00] micheil: gkatsev: yeah [17:00] bradleymeck: we have an unfinished one from knockout here [17:00] gkatsev: blah, xulrunner [17:00] wilmoore has joined the channel [17:00] jbenesch has joined the channel [17:00] dgathright has joined the channel [17:00] micheil: xulrunner was pretty awesome when I used it. I wrote a custom irc style client in it several years back. [17:00] micheil: but a bit slow now that I think about it. [17:01] micheil: hmm.. I might head back to bed for a bit.. need to make sure I have a clear head tomorrow morning. [17:01] micheil: bye folks. and some interesting ideas.. [17:02] tj: later man [17:02] TomY has joined the channel [17:02] captain_morgan: A coulpe days ago I thought I read about an episode or two of a nodejs themed podcast but cannot find anyhing now [17:02] tj: just waking up here :D [17:02] gkatsev: haven't heard anything good about XULRunner and I heard that conkerer got worse after they decided to go with XULRunner [17:02] captain_morgan: anyone have a url? [17:02] micheil: captain_morgan: uhh, that would have been me and mikeal [17:03] micheil: there's only one episode out now, I've been crazy busy the last week and will be so this week, so I don't have time to do the mixdown. [17:03] captain_morgan: nice, where is it hosted? Need some train listening material [17:03] captain_morgan: ahh [17:03] micheil: captain_morgan: there's a link on http://twitter.com/thenoded [17:03] TomY has joined the channel [17:04] captain_morgan: bah, that was the name... kept thikning nodecast [17:04] captain_morgan: thanks [17:04] d0k has joined the channel [17:05] modular has joined the channel [17:05] skohorn has joined the channel [17:05] micheil: well, thenoded != nodecasts [17:05] micheil: http://nodecasts.org/ [17:05] captain_morgan: right [17:05] micheil: nodecasts are video tutorials [17:05] micheil: thenoded is like core news and stuff like that. [17:05] mjr_ has joined the channel [17:06] micheil: mikeal: you about? [17:06] captain_morgan: yeah, I'd figured out that was wrong, jsut didn't know what was right [17:06] quirkey_ has joined the channel [17:06] micheil: anyway, I'm off. [17:07] halfhalo has joined the channel [17:07] nodejs-log has joined the channel [17:07] micheil: captain_morgan: enjoy the episode, tell us what you think by sending us a tweet or email me: micheil@brandedcode.com [17:07] captain_morgan: yeah will do, thanks [17:07] eddanger has joined the channel [17:10] noahcampbell has joined the channel [17:10] CIA-93: node: 03Ryan Dahl 07master * r515f006 10/ lib/buffer.js : Add legacy methods to Buffer - http://bit.ly/90oDab [17:10] shaver: ACTION tries to set up npm to point to the locally-cloned version of amqp [17:12] chapel has joined the channel [17:12] softdrink: ok so what's the deal with Tokyo Cabinet vs. Kyoto Cabinet? [17:14] MikhX has joined the channel [17:15] shaver: hrm [17:17] kgf: softdrink: kyoto seems to emphasize multithreading: http://fallabs.com/kyotocabinet/spex.html#features [17:17] Jonasbn_ has joined the channel [17:17] shaver: ryah_: Buffer.toString doesn't like the encoding now, debugging [17:18] softdrink: ah, i see [17:18] evanmeagher has joined the channel [17:18] quirkey has joined the channel [17:19] xla has joined the channel [17:19] robotarmy has joined the channel [17:20] ezmobius has joined the channel [17:21] MikhX_ has joined the channel [17:23] Lorentz: Anyone have any idea what it means when I get "var cmd = process.cwd(); \n Error: No such file or directory \n at node.js:740:19" ? [17:23] Lorentz: Am I missing an exec somewhere [17:23] shaver: ryah_: is having 'encoding' be optional as the first parameter to Buffer.prototype.toString really useful? [17:23] vnguyen has joined the channel [17:24] Lorentz: 0.2.4, pretty much unmodified example server.js [17:24] shaver: ryah_: as the last parameter I could see it, but otherwise it seems like forcing to String and providing a fallback for people who pass falsey values just gives worse error messages when it's forgotten :-) [17:24] MikhX_ has left the channel [17:24] Lorentz: (from socket.io that is anyway) [17:24] aubergine has joined the channel [17:25] MikhX has joined the channel [17:25] deepthawtz has joined the channel [17:25] micheil: shaver: I now don't have an eta on the next nws release, the code is done, it's just getting a chance to commit & release it. [17:26] micheil: Lorentz: past the full log from your console, just a single error message doesn't help much [17:26] shaver: and test! :-) [17:27] Max-Might has joined the channel [17:28] Lorentz: micheil: Actually, mystically, I did cd .. && cd node-server back to the same directory... and it works now. [17:28] quirkey has joined the channel [17:28] Lorentz: I can only guess at what happened. [17:28] micheil: shaver: after the release. [17:29] micheil: shaver: the changes are significant enough that I want to get them out there. anything after 1.4.00 will be tested. [17:29] micheil: anyway, back to bed. I just had a crazy idea to record down. [17:29] shaver: ryah_: and on Buffer.prototype.write it looks like encoding is the trailing parameter, which I would expect [17:34] trotter has joined the channel [17:36] ryah_: shaver: is something broken? [17:37] stepheneb has joined the channel [17:37] shaver: ryah_: well, .toString wants encoding as well, not just the offsets [17:37] ossareh has joined the channel [17:37] miccolis has joined the channel [17:37] ooooPsss has joined the channel [17:38] shaver: ryah_: and because it's the first parameter and not the last, the optionality doesn't really help anyone! [17:38] marienz has joined the channel [17:38] PyroPeter has joined the channel [17:38] stephank has joined the channel [17:39] shaver: b.utf8Write needs a similar updating, but there the encoding is the last parameter rather than the first, so it'll default appropriately [17:39] bnoordhuis has joined the channel [17:40] ryah_: shaver: i want the encoding as the first parameter to toString [17:40] shaver: OK, then remove the optional-parameter handling for it, IMO [17:40] ryah_: why? you'd also want to slice out a string too [17:40] ryah_: buffer.toString('ascii') //=> turn the whole thing to a string [17:41] quirkey has joined the channel [17:41] shaver: I mean the optional handling of missing encoding [17:41] pharkmillups has joined the channel [17:41] ryah_: buffer.toSTring('ascii', 14) //=> starting at positon 14, tunr the rest to a string [17:41] shaver: SlowBuffer.prototype.toString = function (encoding, start, end) { encoding = String(encoding || 'utf8').toLowerCase(); [17:42] overra has joined the channel [17:42] JohnDav: ryah_: have you seen http://stackoverflow.com/questions/2886191/how-do-i-close-a-socket-after-a-timeout-in-node-js [17:42] cardona507 has joined the channel [17:42] jacobolus has joined the channel [17:42] bradleymeck: micheil nice podcast [17:42] shaver: but, also, I'm not sure how to update [17:42] shaver: b.utf8Write(string, b.used); // error here [17:43] shaver: in amqp.js:serializeShortString [17:43] tj: bradleymeck: where is that? [17:43] JohnDav: that's the exact assertion I get, after which the CPU starts spiking up [17:43] bradleymeck: http://thenoded.com/episode-1.mp3 [17:44] tj: ah :) sweet [17:44] ryah_: shaver: im not really sure what you're asking :) [17:44] ryah_: shaver: SlowBuffer is a private api [17:44] shaver: ryah_: ah, ok [17:44] shaver: ryah_: I should be looking at Buffer here, quite quite [17:44] svnlto has joined the channel [17:44] bradleymeck: what do people think about fibres in node? just want to get a feel since it has been on ajaxian for so long [17:45] ryah_: bradleymeck: not going to happen [17:45] johngbrooks has joined the channel [17:45] bradleymeck: i figured, but wanted opinions [17:46] bradleymeck: i personally think they are more confusing than helpful [17:46] shaver: ryah_: what's the newspeak for b.utf8Write? [17:46] shaver: b.write(str, off, enc)? [17:46] ryah_: shaver: b.write(string, offset, 'utf8') [17:46] bnoordhuis: bradleymeck: are fibers something like green threads or web workers? [17:47] ryah_: bnoordhuis: fibers = coroutines [17:47] shaver: more like green threads [17:47] ryah_: but as a library rather than language construct [17:47] shaver: of those two [17:48] TheEnd2012 has joined the channel [17:48] JohnDav: 0x08231363 in v8::internal::CallIC_Miss(v8::internal::Arguments) () [17:48] JohnDav: what would this mean [17:48] bnoordhuis: looking it up on ajaxian.org [17:48] bnoordhuis: is this js-only or does it need runtime support? [17:48] johngbrooks has joined the channel [17:48] shaver: JohnDav: it means that the IC for that call instruction didn't have something matching the current call (callee or argc, IIRC), so it's calling out to a stub [17:49] JohnDav: shaver: my CPU spike is on 100% right now [17:49] JohnDav: and this is what im getting in gdb [17:49] mjr_ has joined the channel [17:49] bradleymeck: bnoordhuis runtime support for v8 [17:49] shaver: JohnDav: do you have a very dynamic call pattern? [17:49] bnoordhuis: bradleymeck: thanks [17:49] ryah_: JohnDav: what's the rest of the stack? [17:49] JohnDav: shaver: not sure, i have a very simple socketio app [17:49] johngbrooks has joined the channel [17:50] JohnDav: ryah_: http://gist.github.com/660000 [17:51] _matt has left the channel [17:51] inarru has joined the channel [17:51] ryah_: JohnDav: hm [17:51] JohnDav: CPU is consistently on 100% [17:51] ryah_: :/ [17:51] micheil: bradleymeck: thanks [17:51] ryah_: JohnDav: are you on linux? [17:51] JohnDav: 0x0822e530 in v8::internal::IC::StateFrom(v8::internal::Code*, v8::internal::Object*, v8::internal::Object*) () [17:51] JohnDav: just got this too [17:51] JohnDav: ryah_: yes, ubuntu [17:52] JohnDav: Ubuntu 10.04.1 LTS [17:52] rikarends has left the channel [17:52] quirkey has joined the channel [17:52] ryah_: JohnDav: can you strace - sudo strace -p `pgrep node` [17:53] JohnDav: it says [17:53] JohnDav: Process 19144 attached - interrupt to quit [17:53] ryah_: (i assume 19144 is the one hitting 100% cpu ?) [17:53] inarru has joined the channel [17:53] JohnDav: yes [17:53] JohnDav: thats the one [17:53] ryah_: is it outputing syscalls? [17:54] JohnDav: nope, nothing after that line [17:54] ryah_: hm [17:54] ryah_: is your app responsive? [17:54] JohnDav: the server is completely unresponsive at this moment [17:54] JohnDav: not answering http calls either [17:55] ryah_: it sounds like it's in an infinite loop in js [17:55] JohnDav: oh [17:55] ryah_: JohnDav: which version of node? [17:55] JohnDav: 0.2.4 [17:55] JohnDav: ryah_: [17:56] Anti-X: noders of the world, async! [17:56] shaver: ryah_: I think I have the amqp buffer stuff fix in my http://github.com/shaver/node-amqp if you want it [17:58] ryah_: shaver: thx [17:58] ryah_: JohnDav: still no syscalls? [17:58] saschagehlich: any xml module you could recommend? [17:58] JohnDav: ryah_: nop [17:58] langworthy has joined the channel [17:59] ryah_: JohnDav: same behavior in 0.2.3? [17:59] JohnDav: ryah_: didn't try 0.2.3 [17:59] JohnDav: i tried 0.2.4 and 0.3.0 [17:59] ryah_: you're using socket io? [17:59] JohnDav: yup [17:59] JohnDav: tried 0.5.4 too, now on master [18:00] pkrumins has joined the channel [18:00] pkrumins has joined the channel [18:01] jfd1 has joined the channel [18:02] benburkert has joined the channel [18:03] dgathright has joined the channel [18:03] faust45 has joined the channel [18:03] micheil: ryah_: what was that thing about "/tmp" being defined in one of the unix headers? [18:04] femtooo has joined the channel [18:04] teemow has joined the channel [18:04] micheil: like, *P_tmpdir [18:05] ryah_: JohnDav: can you lsof -p `pgrep node` [18:05] ryah_: JohnDav: how many open files doe sit have? [18:05] jchris has joined the channel [18:05] JohnDav: ryah_: i've restarted the process... will run the command once it spikes again [18:06] jchris1 has joined the channel [18:08] ryah_: JohnDav: or rather "ls /proc/`pgrep node`/fdinfo | wc -l" [18:08] JohnDav: ok sure [18:08] JohnDav: ill show you all outputs, just waiting for the spike [18:08] jchris has joined the channel [18:12] wilmoore has joined the channel [18:17] jakehow has joined the channel [18:18] ph^ has joined the channel [18:18] admc has joined the channel [18:19] jchris1 has joined the channel [18:19] aubergine has joined the channel [18:20] mraleph has joined the channel [18:21] marienz has joined the channel [18:21] johngbrooks has joined the channel [18:24] saschagehlich: hmm I wonder what is faster - an xml parser or just regex matching? [18:25] EyePulp: that's a bit of a broad question. [18:25] SubStack has joined the channel [18:26] micheil: saschagehlich: well, regex can't generally be 100% accurate on XML [18:26] EyePulp: and they don't overlap comfortably in roles - they're meant for two different things. [18:26] micheil: XML parsing gives you a structure to data [18:26] micheil: regex matching does not [18:27] saschagehlich: well, I just need two or three lines of an xml file with about 100 lines [18:27] EyePulp: XML requires structure *before* parsing, regex doesn't care. [18:27] micheil: EyePulp: true, and by extension in means that the data you get back is structured and likely to be what you won't (just like JSON parsing) [18:28] EyePulp: why not use JSON and split the difference... XML is noisy anyway. =) [18:28] micheil: saschagehlich: you could try using regexp, although, you may run into issues. [18:28] EyePulp: micheil: true enough [18:28] micheil: anyway, back to bed again, to try and sleep.. this life is too exciting. [18:28] saschagehlich: EyePulp: because I get the xml file from a webservice which won't give me any json :( [18:28] dguttman has joined the channel [18:29] EyePulp: saschagehlich: ah [18:29] EyePulp: if it's coming to you as XML, it's probably best to use an XML parser - as micheil mentioned, regex might be a poor way to solve the problem. [18:30] devinus_: hrm [18:30] JohnDav: ryah_: it returns 668 [18:30] micheil: saschagehlich: try using yql. [18:30] JohnDav: 672 now [18:30] JohnDav: ryah_: the strace is full of gettimeofday({1288722622, 397144}, NULL) = 0 among other msgs [18:31] LuigiMontanez has left the channel [18:31] JohnDav: rest are mostly write() [18:32] saschagehlich: micheil: well but that will only work if the webservice supports yql, right? [18:32] stepheneb has joined the channel [18:32] brianc has left the channel [18:33] micheil: saschagehlich: I don't think so. [18:33] EyePulp: I asked about this awhile ago, but got pulled off implementing for a few days, so now I have to ask again because I have a memory similar to swiss cheese: How do I convert this client side library to a server side version under node? http://code.google.com/p/datejs/ -- my first inclination is to simply add exports.Date to the bottom, but since it's overriding/extending Date, I wasn't sure if that's kosher. [18:33] micheil: saschagehlich: see about half way down: http://developer.yahoo.com/yql/ [18:34] bentruyman has joined the channel [18:34] micheil: EyePulp: well, you'd have to do a fair bit of porting, as you'd need to make every method take a date object as first argument. [18:35] saschagehlich: well that's actually too much overhead for my case. but thanks anyway, micheil [18:35] micheil: EyePulp: unless you have something like new Datejs(date object).datejsfunctions [18:35] micheil: saschagehlich: okay. [18:35] EyePulp: micheil: hrm... [18:35] micheil: saschagehlich: you might be interested in the xml parser that javruben has mentioned. [18:36] micheil: saschagehlich: pretty much check the module pages. [18:36] EyePulp: micheil: last time I brought it up I didn't get the impression there'd be that much involved. Nuts. [18:36] saschagehlich: okay, thanks [18:36] micheil: EyePulp: well, it's an interesting problem, purely because it extends the date object. [18:37] micheil: EyePulp: if it didn't, it'd be much easier. [18:37] pkrumins has joined the channel [18:37] pkrumins has joined the channel [18:37] EyePulp: micheil: maybe this... http://comments.gmane.org/gmane.comp.lang.javascript.nodejs/14500 [18:38] EyePulp: ACTION should google before talking [18:38] micheil: EyePulp: that should probably work [18:38] micheil: although, there may be issues there, I'm not 100% sure [18:38] micheil: EyePulp: although, use: [18:39] Ari-Ugwu_ has joined the channel [18:39] micheil: var DateJS = exports.date = function DateJS(){}; DateJS._proto_ = Date [18:39] micheil: it's either _proto_ or __proto__, I can never remember which [18:39] hdon has joined the channel [18:40] EyePulp: whoa... [18:40] eddanger has joined the channel [18:40] EyePulp: you're blowing my mind [18:40] EyePulp: =) [18:40] micheil: EyePulp: I do that to a lot of people, for some reason. [18:41] ben_alman_ has joined the channel [18:41] EyePulp: how does your way differ from the way on the web page? [18:41] skampler has joined the channel [18:43] micheil: yeah, obj.__proto__ = this; [18:43] cagdas has joined the channel [18:43] micheil: I've heard __proto__ is better then .prototype but I don't know the details, ask creationix or tj [18:43] micheil: as seen in both their code. http://github.com/creationix/pattern/blob/master/lib/pattern.js [18:44] tj: __proto__ is used in Object.create() [18:44] tj: obj.__proto__ === obj.constructor.prototype [18:45] micheil: there you go then. [18:45] tj: but I dont suggest trying to hack js into being rubyish like tim is doing there lol [18:45] devinus has joined the channel [18:45] danielrmz has joined the channel [18:46] qetbn has joined the channel [18:46] micheil: ACTION just knew it was used, not the finer details there. [18:47] garrensmith has joined the channel [18:47] garrensmith: doesn't __proto__ become obj.prototype on construction? [18:47] garrensmith: isn't it better practice to use getPrototypeOf instead of __proto__? [18:47] tj: yup [18:47] tj: for getting [18:48] garrensmith: so for setting still better to use __proto__? [18:48] tj: well its best practice not to use it at all really, but if you are not concerned with it working on the client-side then meh [18:51] gwoo has joined the channel [18:53] ryah_: JohnDav: what's /proc/pid/limits look like [18:53] davida has joined the channel [18:54] JohnDav: ryah_: how do i check that [18:54] jagwio has joined the channel [18:54] JohnDav: the spike is consistent again.. i can check anything u want to [18:54] danoyoung has joined the channel [18:54] ryah_: JohnDav: are you hitting the fd limit? [18:55] JohnDav: it returns 663 [18:55] stepheneb has joined the channel [18:56] ryah_: JohnDav: grep "open files" /proc/`pgrep node`/limits [18:56] JohnDav: Max open files 1024 1024 files [18:56] JohnDav: this is the output [18:57] ryah_: ok [18:57] ryah_: so - it's not that [18:57] JohnDav: cpu is 100%... the app has not gone unresponsive yet.. but connections are losing [18:57] dysinger has joined the channel [18:58] ryah_: what's memory at? [18:58] xla has joined the channel [18:59] ryah_: and can you next time start node with --trace_gc [18:59] JohnDav: sure [18:59] JohnDav: memory is pretty normal [18:59] JohnDav: 257/1700MB [19:01] JohnDav: strace is responsive for now.. returning syscalls [19:01] hassox has joined the channel [19:01] cloudhead has joined the channel [19:02] ryah_: can you paste me some? [19:02] micheil: ryah_: do you know about a pgrep for os x? [19:02] vandenoever has joined the channel [19:03] agnat has joined the channel [19:03] JohnDav: sure [19:03] ryah_: micheil: no [19:04] micheil: okay [19:07] jetienne has joined the channel [19:07] JohnDav: ryah_: http://gist.github.com/660116 [19:08] ben_alman has joined the channel [19:08] figital has joined the channel [19:09] boaz has joined the channel [19:09] ryah_: lots of writes, which is sad [19:09] ryah_: but nothing out of the ordinary, it seems [19:09] micheil: ryah_: fwiw, ~h~ is a socket.io heartbeat, ~m~[data] is a message [19:10] micheil: I think the main thing with socket.io is how it's handling data. [19:10] pedrobelo has joined the channel [19:10] JohnDav: the funny thing is... even with loads of traffic and messages going on.. it remains VERY stable with cpu usage less tahn 15%.. load around 0.03... [19:10] JohnDav: something happens all of a sudden [19:10] JohnDav: and the spike starts [19:10] micheil: JohnDav: could you get access to things like your current user count, and how quickly people are joining, parting, and sending? [19:10] elijah-mbp has joined the channel [19:10] JohnDav: its not the traffic or messages [19:11] ryah_: JohnDav: it's certainly a bug of some sort - i kind of imagine it to be a socket-io bug [19:11] norviller has joined the channel [19:11] JohnDav: micheil: current user count is 470 [19:11] micheil: why are there so many of.. gettimeofday({1288724658, 225989}, NULL) = 0 [19:11] JohnDav: people are joining parting and sending insanely quick [19:11] JohnDav: micheil: i guess socket.io asks for that? [19:11] micheil: JohnDav: okay, I think I know part of the issue, I saw this while developing the node-websocket-server connection manager [19:12] ryah_: JohnDav: i thought rauchg said he fixed the spike? [19:12] JohnDav: micheil: really? [19:12] JohnDav: ryah_: that was one recursive loop that was fixed. i caught it in the console [19:12] JohnDav: ryah_: but now im getting nothing in the console, except the usual process.assertions [19:12] micheil: basically operating on just a array or object of all the connections, you hit weird race conditions [19:12] JohnDav: which im ignoring with uncaughtException [19:12] ryah_: JohnDav: the timer thing? [19:12] JohnDav: micheil: ah! its definitely a race condition [19:13] JohnDav: ryah_: yep, getting that alot! [19:13] JohnDav: ryah_: http://stackoverflow.com/questions/2886191/how-do-i-close-a-socket-after-a-timeout-in-node-js --> this one [19:13] JohnDav: but the line numbers are different [19:13] micheil: like, I got some really really weird things with the locking of arrays to slice or the constant garbage collection of the delete'd properties [19:14] JohnDav: ah, it's quite likely to be something like that i suppose [19:14] JohnDav: very hard to debug or trace though :/ [19:14] micheil: although, I don't really have any strong data to support it, as it's really hard to test locally. [19:14] micheil: (I currently only have one machine to test on) [19:14] JohnDav: yeah thats the whole problem.. its almost impossible to test locally [19:15] hassox has joined the channel [19:16] micheil: JohnDav: I am thinking it'd be good to see if I can rewrite socket.io to use the nws connection manager, although, I haven't had time to yet [19:16] JohnDav: micheil: yeah that'd be great [19:16] micheil: a large portion of 1.4.00 is to open up my websocket server to allow socket.io to be easily able to use all it's components [19:16] JohnDav: but what about other transports in socket.io [19:16] JohnDav: the non-socket ones [19:17] micheil: JohnDav: well, it's all very decoupled code. [19:17] JohnDav: oh ok [19:18] micheil: this is the connection manager: http://gist.github.com/660136 [19:18] micheil: I should probably move lines 73 - 75 to the connection instance. [19:18] JohnDav: oh interesting! [19:18] JohnDav: i think socket.io can easily use this [19:19] micheil: it's pretty much a singularly linked list. [19:19] ryah_: a websocket benchmark program would be good [19:19] micheil: ryah_: peter has one. [19:19] micheil: but it's just very hard to test accurately [19:19] micheil: JohnDav: well, yeah, I have been talking with Rauchg, and he seems interested in using node-websocket-server for the next major release of socket.io [19:20] micheil: as to whether he does or doesn't is up to him really. [19:20] ryah_: JohnDav: that stackover flow thing works for me.. [19:20] JohnDav: ryah_: works for me too.. maybe the user reported it at an earlier time [19:20] JohnDav: but im still getting it [19:20] JohnDav: ryah_: with these line numbers [19:20] JohnDav: at node.js:30:17 at Timer.callback (net:149:29) at node.js:772:9 [19:21] ryah_: JohnDav: it's the same with v0.3.0 ? [19:21] heavysixer has joined the channel [19:21] JohnDav: ryah_: yep [19:21] JohnDav: tried both 0.2.4 and 0.3.0 [19:22] micheil: JohnDav: can you log http requests and check if you are getting ECONNRESET or errno 32 [19:22] ryah_: maybe it's something with the timeouts.. [19:22] micheil: ACTION forgets what errno 32 was [19:22] Me1000 has joined the channel [19:22] path[l] has joined the channel [19:22] JohnDav: micheil: im not using node as an http server [19:22] micheil: okay [19:22] JohnDav: application is being served on rails [19:23] micheil: well, socket.io uses http [19:23] stepheneb has joined the channel [19:23] JohnDav: oh socket.io requests [19:23] rcy has joined the channel [19:23] JohnDav: sure ill check that [19:23] micheil: basically you need to access the internal http or network server to get at the errors [19:23] JohnDav: micheil: should i give node-websocket-server a direct try meanwhile? [19:24] micheil: if you want [19:24] micheil: although, it doesn't do the fallbacks [19:24] JohnDav: does it have flash fallback ? [19:25] SvenDowideit has joined the channel [19:26] cloudhead has joined the channel [19:26] ryah_: JohnDav: that strace was during the 100% cpu spike? [19:26] JohnDav: ryah_: yes [19:26] JohnDav: ryah_: but it didnt go unresponsive yet, like the last spike [19:28] fizx has joined the channel [19:29] vandenoever: is it possible to run eval() in the context of an object? [19:29] stepheneb has joined the channel [19:30] jimmybaker has joined the channel [19:32] aho has joined the channel [19:33] MikhX has joined the channel [19:34] agnat: vandenoever: AFAIK, no ... spidermonkey had obj.eval() and eval(expr, obj) ... but both are non-standard and deprecated ... IIRC [19:35] mraleph: with (o) eval(s) [19:35] stride: vandenoever: take a look at Script.* in the node API docs [19:36] AAA_awright has joined the channel [19:36] vandenoever: hmm, now that i think about it, not sure it will help me [19:36] mraleph: vandenoever: with (o) eval(s) --- but I recommend avoiding both with and eval ;-) [19:36] vandenoever: closure compiler is screwing with my unit tests [19:37] vandenoever: mraleph: i'm only using eval in library loading and unit testsing [19:37] rnewson has joined the channel [19:37] siculars has joined the channel [19:37] jodaro has joined the channel [19:37] mraleph: eval kinda sucks performance out of scope where it was used. [19:39] programble has joined the channel [19:39] programble has joined the channel [19:39] jodaro: hiya noders [19:41] garrensmith: jodaro: hey [19:41] isaacs has joined the channel [19:45] Anti-X: vandenoever http://static.brandedcode.com/node-doc/script.html [19:45] micheil: hmm.. [19:46] vandenoever: i guess this is node-specific, or does this work a e.g. a browser too? [19:46] Anti-X: just node [19:46] JohnDav: ryah_: another spike after restart... this time i used --track_gc [19:46] JohnDav: getting these [19:46] JohnDav: Scavenge 113.5 -> 113.2 MB, 1 ms. Mark-sweep 113.2 -> 112.9 MB, 907 ms. [19:46] prettyrobots has joined the channel [19:46] JohnDav: Scavenge 117.1 -> 116.8 MB, 1 ms. [19:47] JohnDav: Scavenge 118.5 -> 118.1 MB, 11 ms. [19:47] JohnDav: going up and up [19:48] prettyrobots has left the channel [19:48] JohnDav: 125 mb [19:48] blaines has joined the channel [19:49] xicubed has joined the channel [19:50] micheil: ryah_: line 754, of http://gist.github.com/660116 is that looking odd to you? [19:50] prettyrobots has joined the channel [19:50] JohnDav: 131mb [19:50] micheil: JohnDav: can you gist a sample? [19:50] JohnDav: just as the spike started.. its showing me scavenge on EVERY incoming and outgoing connection [19:51] micheil: ryah_: also, line 1007, ENOENT, that could be an issue too. [19:51] JohnDav: micheil: http://gist.github.com/660182 [19:52] micheil: then after that there's about six more of the same as line 754 [19:52] TooTallNate has joined the channel [19:53] pedrobelo has joined the channel [19:55] micheil: JohnDav: what's your ulimit -a output? [19:56] JohnDav: micheil: i restarted the process... should i show you the output without the spike ? [19:56] fizx has joined the channel [19:56] rikarends has joined the channel [19:56] micheil: ulimit -a is just the statistics as to how many files you can have open and stuff like that [19:56] micheil: just run it in a new shell [19:57] JohnDav: k [19:57] bruse: it puts the packet in the socket [19:57] JohnDav: micheil: http://gist.github.com/660193 [19:57] bruse: or else it gets the close() again [19:57] pedrobelo has joined the channel [19:57] micheil: bruse: ? [19:58] tj: bruse: ahahaa [19:58] tj: nicceee [19:58] bruse: micheil: never mind me :) [19:58] micheil: okay [19:58] micheil: JohnDav: hmm.. you say there's only < 500 connections, right? [19:59] JohnDav: yep 450 [19:59] micheil: hmm.. [19:59] micheil: so you're not hitting EMFILE [19:59] micheil: but I do notice a lot mmap2 calls and ENOENT [19:59] JohnDav: yeah [19:59] JohnDav: in the strace [20:00] mjr_ has joined the channel [20:00] JohnDav: mmap2 and ENOENT are only there when cpu is on spike [20:01] micheil: hmm.. [20:02] entp has joined the channel [20:04] miccolis: Hi folks - I'm using connect & express and wondering if anyone has session+authentication project they could recommend - for the usual cookie based stuff. [20:04] svnlto has joined the channel [20:06] cloudhead has joined the channel [20:06] tj: miccolis: connect-auth is one [20:06] tj: havent personally used it [20:06] tj: but has a lot of authentication strategies [20:07] miccolis: tj: yea I was looking at that one. [20:07] miccolis: tj: I seemed the strongest [20:07] miccolis: but I wanted to make sure my google searches aren't missing anything :) [20:08] xla has joined the channel [20:10] javruben has joined the channel [20:12] V1 has joined the channel [20:13] admc has joined the channel [20:14] mraleph: JohnDav: Mark-sweep 133.0 -> 132.8 MB, 1057 ms. <--- holy cow... *facepalm* we should definitely fix this... [20:14] JohnDav: mraleph: it didnt stop there, up n up [20:14] JohnDav: till i restarted [20:14] JohnDav: lol [20:14] mraleph: JohnDav: can u run with --trace-gc --trace-gc-nvp do get a bit more detailed stat? or it is production? [20:14] JohnDav: sure [20:15] mraleph: JohnDav: how much physical memory does your server have? [20:15] JohnDav: mraleph: ok started... let's wait for the spike now [20:15] JohnDav: right now it showed this [20:15] JohnDav: pause=0 mutator=0 gc=s external=0 mark=0 sweep=0 sweepns=0 compact=0 flushcode=0 total_size_before=1010532 total_size_after=1043516 holes_size_before=11472 holes_size_after=16588 allocated=1010532 promoted=377384 [20:16] mraleph: JohnDav: it's just the same trace but in human unreadable format with more details about subphases. [20:16] JohnDav: mraleph: it's an EC2 small instance http://aws.amazon.com/ec2/instance-types/ [20:16] JohnDav: 160gb [20:16] JohnDav: oh ok [20:18] JohnDav: here we go [20:18] JohnDav: 100% spike [20:18] JohnDav: unresponsive server [20:18] JohnDav: pause=0 mutator=265 gc=s external=0 mark=0 sweep=0 sweepns=0 compact=0 flushcode=0 total_size_before=22381344 total_size_after=13992852 holes_size_before=73372 holes_size_after=73372 allocated=8388492 promoted=0 [20:19] JohnDav: mraleph [20:19] davidascher has joined the channel [20:19] mraleph: JohnDav: hmm... I no next to nothing about all this cloud staff... I just think there might be increased memory latency compared to what you get when you run just on pure hardware... V8 uses to map and unmap unused parts of new space --- something might go nuts. [20:19] mraleph: JohnDav: well this is 0ms pause [20:19] fizx has joined the channel [20:19] mraleph: anything else in the log? [20:20] JohnDav: im just getting these lines now [20:20] JohnDav: no other console output [20:20] mraleph: can u post gist it? [20:20] JohnDav: nothing is changing except the 2nd attributes mutator [20:21] mraleph: so... pause is 0? [20:21] JohnDav: yep [20:21] JohnDav: 0 [20:21] mraleph: o_O [20:21] mraleph: in previous logs I saw long mark-sweep pauses [20:21] mraleph: wtf is going on [20:22] JohnDav: it was working fine.. and this line was appearing at regular intervals... [20:22] JohnDav: but then every other output stopped [20:22] JohnDav: and this line was flooding the console [20:22] JohnDav: 1 every 10 ms [20:22] jfd1 has joined the channel [20:22] JohnDav: lol [20:22] JohnDav: pause was 0 [20:22] mraleph: you have somewhere huge allocation site [20:22] mraleph: as you can see it allocates 8mb [20:23] JohnDav: could this be a recursive for loop in socket.io ? [20:23] dgathright_ has joined the channel [20:23] mraleph: 8mb of garbage --- because it looks like nothing survives or gets promoted [20:24] mraleph: I dunno. [20:24] mraleph: hmm. [20:24] JohnDav: hmm [20:24] JohnDav: oh interesting [20:25] tilgovi has joined the channel [20:26] ossareh has joined the channel [20:26] JohnDav: mraleph: http://gist.github.com/660236 [20:26] vandenoever: if i have "var v = function v() {};" then v.name === "v" [20:26] vandenoever: but if i do "var v = function () {};" then v.name === undefined [20:27] vandenoever: is there a way to change the name later? v.name = "v" does not work [20:28] mraleph: JohnDav: yep... there is a huge garbage factory hidden somewhere in code... probably you should try to through in something like node-profiler it can track construction of JS objects... but it won't help you with non-object garbage [20:29] JohnDav: oh [20:29] TooTallNate: vandenoever: Perhaps try an `Object.defineProperty(v, 'name', .....)` with a getter function [20:29] JohnDav: mraleph: is there something specific i should look for in the code? will give it a thorough check [20:30] vandenoever: TooTallNate: i cannot use defineProperty, not all my runtimes support it [20:31] TooTallNate: vandenoever: well setting the 'name' property of a function is a hacky thing to do, and probably won't be "supported" by all JS engines [20:32] vandenoever: ok, i'm just asking because jsdoc does not look inside a class when it has the name twice [20:32] mraleph: JohnDav: i can't think about anything specific, just try to find place where you allocate a lot of temporary objects... it might be somewhere inside node itself [20:32] vandenoever: e.g. "core.MyClass = function MyClass() {}" [20:32] vandenoever: if i leave out the second MyClass it does work [20:32] JohnDav: oh ok.. my code is too simple for that.. it has to be socket.io or node [20:33] ryah_: JohnDav: im thinking there is a loop somewhere.. [20:33] vandenoever: i'm using the function name as a sanity check in loading of code though [20:33] ryah_: JohnDav: did you run the profiler? [20:33] JohnDav: ryah_: it must be socket.io then [20:33] JohnDav: ryah_: --track_gc ? [20:35] boaz has joined the channel [20:35] stepheneb has joined the channel [20:35] ryah_: JohnDav: try this: http://github.com/bnoordhuis/node-profiler [20:35] ryah_: or rather [20:35] ryah_: just do [20:35] ryah_: node --prof myscript.js [20:35] ryah_: wait for it to hit 100% [20:35] ryah_: wait for a while [20:35] ryah_: and ^C it [20:36] mjr_: It's also worth running oprofile if you have that on your instance. [20:37] ryah_: JohnDav: that's going to create a file v8.log [20:37] digitalspaghetti: straw poll: apart from keynote + powerpoint, what's good for making slides for a talk? [20:37] ryah_: then you need to do $(nodedir)/deps/v8/tools/linux-tick-processor v8.log [20:38] JohnDav: ryah_: got you [20:38] JohnDav: doing it now [20:38] ryah_: digitalspaghetti: i've always used beamer [20:38] digitalspaghetti: ryah_: is that the one that takes latex? i think i used it before years ago [20:38] ryah_: i'd like to get this profiling stuff working better [20:38] aliem has joined the channel [20:38] heavysixer has joined the channel [20:39] ryah_: we should have a node-profile tool distributed with it [20:39] ryah_: which we can switch on and off with signals [20:39] tj: +1 [20:39] ryah_: er it would issue a signal to the node process [20:39] ryah_: to turn on the profiler [20:39] JohnDav: ryah_: yes, profile tool will be a great help [20:39] ryah_: then turn it off [20:39] ryah_: then generate the output [20:40] SubStack has joined the channel [20:40] elijah-mbp has joined the channel [20:40] ryah_: it'd be nice to grab stats about which events are firing too... [20:40] JohnDav: yeah [20:40] stride: +1, that'd be great [20:41] mraleph: it would be great to have allocation site profiling for V8... [20:42] mraleph: but we still have not done this *sigh* [20:42] Moominpapa: Stupid question: anyone else getting problems with sending hashes in IE on Socket.IO-node? [20:42] bnoordhuis: mraleph: what's stopping you? [20:43] wink_: mraleph: node exposes the heap profiler as well [20:43] Moominpapa: Well, the node server received { "$error": "Invalid message" } [20:43] wink_: i got a module taking heap snapshots, but i have no idea how to walk them [20:43] JohnDav: Moominpapa: which version of socket.io are you on ? [20:43] Moominpapa: This happened on saturday, when I ran off trunk, and happens today as well. [20:43] Moominpapa: Trunk. [20:43] JohnDav: it works fine for me [20:43] mraleph: bnoordhuis: I don't have enough clones of myself. [20:44] Moominpapa: Weirdly, it's using xhr-polling now, filepath on saturday. [20:44] Moominpapa: It's not the end of the world: can develop on Chrome and patch around the problem if necessary later. Just weird. [20:44] Moominpapa: Works perfectly for firefox and chrome. [20:44] jameshome has joined the channel [20:45] mraleph: bnoordhuis: I actually once hacked a rough prototype of allocation site profiler but never committed it. [20:45] bnoordhuis: no time like the present, right? [20:46] bnoordhuis: btw, i know a genetic biologist [20:46] bnoordhuis: want me to hook you up? [20:47] ryah_: JohnDav: any luck with v8.log? [20:47] JohnDav: ryah_: yep, it's generating the log file.. waiting for the spike now [20:48] mraleph: bnoordhuis: heh [20:48] ryah_: mraleph: just having the ability to walk the call stack would be nice [20:48] ryah_: mraleph: in gdb or whatnot [20:48] ryah_: mraleph: could tell JohnDav to just ^c it :) [20:49] javajunky has joined the channel [20:49] javajunky: mape: does npm.mape.me still update dude ? [20:49] mape: javajunky: yeah but isaac removed modified date so that doesn't work [20:49] javajunky: ah..which is what I was looking at … [20:50] evmar has joined the channel [20:50] mape: yeah it was pretty handy [20:50] faust45 has joined the channel [20:50] javajunky: isaacs: I imagine there was a good reason for removing it ;) I used to use it when looking at two libraries that offered the same functionality as a measure of 'most likely to be 'up to date' … is there an alternative field I could use ? [20:50] mraleph: ryah_: well. you can walk... manually decoding stackframes =) that's what I do when debugging... but yep that would be handy. [20:51] isaacs: javajunky, mape: the reason for removing it is that it was causing a bunch of merge conflicts. [20:51] ryah_: mraleph: has anyone looked into writing a gdb module for that? [20:51] javajunky: isaacs: on the registries ? [20:51] jgautier has joined the channel [20:52] V1: JohnDav: You having memory issues / leaks with Socket.io? [20:52] isaacs: javajunky, mape: couch peer replication relies on the premise that you can write the same data into both peers, and get the same deterministic hash [20:52] isaacs: javajunky: yeah [20:52] JohnDav: V1: no [20:52] mraleph: ryah_: I think not, otherwise we would publish it right away. [20:52] isaacs: javajunky, mape: if you're sticking the ISO datestamp on both writes, though, you will *never* get matching data. [20:52] JohnDav: memory remains pretty stable [20:52] javajunky: isaacs: ah, bugger, perhaps store the date inside the package when its made ? [20:52] bnoordhuis: ryah_: aren't most of the stackframes from generated code? [20:52] JohnDav: having CPU issues [20:52] javajunky: (i.e. local to the publisher) [20:52] javajunky: javajunky: meh, I'm sure you've got it covered, I'll go back to my hole :) [20:52] V1: JohnDav: I thought you resolved that with your flood control patch :p [20:52] mraleph: ryah_: or at least would use it internally. [20:53] JohnDav: V1: well, the joy was temporary :p [20:53] JohnDav: V1: there was a recursive loop in socket.io, that rauchg_ fixed yesterday... but the cpu spikes still continue [20:54] isaacs: javajunky: yeah, there's really no way to do that in such a way that the data is available in the document in couchdb without breaking peer replication [20:54] isaacs: i'll pose it to the couch folks, though [20:54] rasztasd has joined the channel [20:54] admc has joined the channel [20:54] V1: JohnDav: I still remember hitting similar limits with Socket.io.. When I was using peter's wsbench to test the socket.io websocket connections. After about 500~ hits on the server, the server went from 20 to 50MB memory and 100% cpu [20:55] JohnDav: V1: how did you fix it? [20:55] V1: JohnDav: It's still there [20:55] JohnDav: ah [20:55] JohnDav: we gotta get this fixed [20:55] JohnDav: everything else is pretty stable [20:55] V1: JohnDav: I did add some benchmark code to my Socket.io fork: http://github.com/3rd-Eden/Socket.IO-node/tree/master/benchmarks/ so that will give you a heads up [20:55] JohnDav: im not getting any memory leaks either [20:55] rasztasd: JohnDav: hi i have just joined the channel, that 100% is related to node.js or something else? [20:56] javajunky: isaacs: yeah, it must be a 'solved' problem its not unusual to timestamp soemthing that is shared across multiple peers ;) [20:56] JohnDav: rasztasd: it appers to be socket.io or node... still testing [20:56] isaacs: javajunky: well, if you do peer replication it is ;) [20:56] JohnDav: V1: let me check [20:56] hellp has joined the channel [20:57] javajunky: isaacs: I'm speaking without knowledge of couch so, I'm not fully understanding the issue … classic slashdot [20:57] V1: JohnDav: By running the bench.sh a couple of times locally on socket.io will reveal a memory leak. You will see the memory go up.. And drop a bit, but it will never reach the same low amount again as you initially started with. [20:57] JohnDav: ah [20:57] JohnDav: V1: and what about CPU ? [20:57] bnoordhuis: mraleph: correct me if i'm wrong, v8 translates js to IR to machine code, right? [20:58] mraleph: ryah_: yep. IR = AST in v8's case. [20:58] mraleph: sorry [20:58] V1: JohnDav: I can only get the CPU to go all wonky after hitting it allot of times with the wsbench like a concurrency of -c 3000 [20:58] mraleph: that was to bnoordhuis [20:59] JohnDav: interesting, ill give it a try [20:59] bnoordhuis: mraleph: thanks [21:00] ryah_: V1: on v0.2.4 ? [21:00] bnoordhuis: mraleph: btw, is there a way to generate something of a function/call map from that? [21:00] mraleph: ryah_: it seems that gdb 7 has nice jit debugging api, so it might be possible to hack something together quite easily. [21:00] V1: ryah_: I think it was 0.2.2 but I'm pulling out the latest version of github atm to see if i was not hitting the EFILE thingy [21:01] mraleph: mraleph: hmm. what do you mean by function/call map? [21:01] mraleph: fuuuu [21:01] dquestions has joined the channel [21:01] ryah_: V1: yeah, that would be good to know [21:01] ryah_: mraleph: :P~~ [21:02] bnoordhuis: mraleph: can't think of the right phrase but let me explain by analogy [21:02] ryah_: mraleph: having that would be SO USEFUL [21:02] mraleph: bnoordhuis: call graph? [21:02] bnoordhuis: yeah [21:02] bnoordhuis: i think that's it [21:02] bnoordhuis: i once wrote a hack for the quake3 vm that annotated the bytecode with metadata [21:02] mraleph: ryah_: yeah. I [21:03] mraleph: agree [21:03] bnoordhuis: so that you could trace functions from gdb [21:03] mraleph: ahhh [21:03] mraleph: that's simplier [21:03] mraleph: if you have pc [21:03] mraleph: pointing somewhere inside generated code [21:03] bnoordhuis: eh? pc=x86? [21:04] bnoordhuis: or program counter? [21:04] mraleph: pc = program counter [21:04] bnoordhuis: right :) [21:04] mraleph: you can just say [21:04] mraleph: print Heap::FindCodeObject(pc) [21:04] a_meteorite has joined the channel [21:05] mraleph: and it will give you back Code containing this pc [21:05] mraleph: Heap = v8::internal::Heap [21:05] mraleph: so that allows to understand stacks pretty quickly [21:05] pandark_ has joined the channel [21:06] StanAngeloff has joined the channel [21:06] bnoordhuis: big class, that one [21:06] mraleph: unless you need to look at locals and parameters --- then you are a bit screwed ;-) [21:07] mraleph: well mr. Heap is the boss =) [21:07] mraleph: without him nothing will work [21:07] bnoordhuis: :) [21:07] bnoordhuis: locals and params are munged from the generated code? [21:07] JohnDav: ryah_: ok here comes the spike [21:07] JohnDav: ryah_: thats one big v8.log file [21:08] kkaefer: tj: are the jade benchmarks current? [21:08] kkaefer: because they suggest that jade is a lot slower than haml or ejs on my machine [21:08] tj: haml / ejs are faster [21:08] tj: compilation is irrelevant [21:08] mraleph: well they are on stackframe, but decoding stack frame and understading which slot corresponds to which var in mind is just not fun [21:08] kkaefer: I'm talking about execution [21:09] tj: and it has extra execution overhead due to the error reporting + extra closures involved [21:09] kkaefer: ah, ok [21:09] bnoordhuis: mraleph: okay, that makes sense - thanks [21:10] bnoordhuis: is there a way to instrument the AST? [21:11] mraleph: nothing simple and builtin [21:11] mraleph: you can transform your JS code as much as you wish though before it gets into v8 [21:11] mraleph: :-) [21:11] bnoordhuis: heh [21:13] tj: kkaefer: it should eventually be reasonably close to haml.js [21:13] tj: performance-wise [21:13] mraleph: JohnDav: how is v8.log doing? [21:13] tj: kkaefer: which is odd, lol because I wrote ejs as well as haml.js, and haml.js is faster [21:13] kkaefer: that's what confused me ;) [21:13] tj: :D [21:13] JohnDav: mraleph: still waiting for the consistent spike... getting alot of temporary 100% spikes every 2 - 3 seconds for now [21:13] V1: ryah_: It seems the CPU spike that I saw was indeed the EMFILE bug. I'm hitting it now with 9000 and no issues so far. [21:14] tj: kkaefer: some day when I have time or when it becomes a real issue I will sit down and optimize jade [21:14] JohnDav: V1: that's great [21:14] eee_c has joined the channel [21:14] V1: But the memory leak is probably still there :) [21:15] AAA_awright: Are there any browser-based IRC clients, with Node.js? [21:15] jgautier: AAA_awright you should make one [21:15] jgautier: i use the freenode thing and it kinda sucks [21:15] AAA_awright: I' [21:15] AAA_awright: I'm probably going to [21:16] jgautier: ive seen a few IRC node.js libraries on github [21:16] V1: JohnDav: However.. Doing a ab -c 100 -n 9000 http://127.0.0.1:8080/socket.io/websocket a couple of times will make socket.io freeze up [21:17] JohnDav: V1: :/ [21:17] AAA_awright: jgautier: Can you think of any good names [21:17] JohnDav: i wish node and socket.io get stable quickly.. the world of erlang is a nightmare [21:17] JohnDav: llol [21:17] gkatsev: http://github.com/fwg/nodejs.irc/ [21:17] jgautier: good names to call your project? [21:18] AAA_awright: There's better libraries then that I think [21:18] AAA_awright: jgautier: Yeah [21:18] jgautier: not off the top of my head...im not the best at comin up with names [21:18] sveisvei has joined the channel [21:18] rikarends: JIRC (pronounced Jerk) [21:19] rikarends: Anna.js [21:19] rikarends: (after the Boten anna song) [21:19] rikarends: http://www.youtube.com/watch?v=RYQUsp-jxDQ [21:19] jgautier: hey rikarends you see my message in cloud9? [21:19] garrensmith has joined the channel [21:20] javajunky: tj: can you remember who's got that github project that bootstraps up express with all the trimmings ? [21:20] AAA_awright: hah [21:20] AAA_awright: hah [21:20] V1: JohnDav: But than again.. Why would you do a ab test on a websocket protocol :D [21:20] rikarends: anna.js is actually kinda cool [21:20] JohnDav: o_O [21:20] JohnDav: V1: yeah lol [21:21] tj: javajunky: ummmmm i think it was the medium guy, rob somethin [21:21] tj: javajunky: http://github.com/robrighter/node-boilerplate [21:22] tj: javajunky: I also added --css and --template flags to express(1) [21:22] mape: JohnDav: what are you going to use it for? [21:22] mape: * javajunky [21:22] JohnDav: mape: what ? [21:22] javajunky: tj: yeah? ..what do they do ..template wise. [21:22] javajunky: mape: ? [21:22] sheerun has joined the channel [21:22] isaacs: mape, javajunky: ok, got a plan for doing mtimes in a way that can replicate with ease [21:22] mape: JohnDav: Sorry, tab the wrong person [21:22] JohnDav: oh k [21:22] EyePulp: I forget - what's the method for listing all object functions or methods? similar to dir(foo) in python? [21:22] gkatsev: tj: oooh, node-boilerplate looks cool. thanks for linking :) [21:22] tj: javajunky: by default you get plain css / jade, but you can do --css less --templat ejs for example and it will generate those for you [21:22] isaacs: mape, javajunky: but it's not gonna be overnight. [21:22] javajunky: tj: ah I see :) [21:22] tj: gkatsev: :D I havent used it, could be good [21:23] javajunky: isaacs: oh its no stress for me, matey, just I was used to using it s'all, don't stress on my account ! [21:23] gkatsev: well, looks cool at first glance anyway [21:23] isaacs: javajunky: no stress :) [21:23] mape: javajunky: I was wondering what you were gonna do with it, I have a pretty neat copy paste setup of express with auto client side reload on css/js/template change, auto create pages for easy adding of dummy pages/templates. Socket.io preset and whatnot. But haven't had the time to release it yet [21:24] mape: isaacs: Sweet :) Seems the sort by date is mostly what people use the site for so would be neat [21:24] isaacs: mape: yeah [21:24] isaacs: maybe that's something that should be in ls, too. maybe make ls more like a sql select [21:24] isaacs: ls --order mtime [21:25] hassox has joined the channel [21:25] javajunky: mape: yeah there's one I'd seen previously, robrighter's (tj pointed at) looks good to (uses that funky html5boilerplate) , but there was one Id' seen elsewhere that had some extras, was just chasing it down to recommend to someone else ;) [21:25] javajunky: tj: did you see that express-dialect module ? [21:26] V1: Yay! I we have managed to beat node.js in raw performance ^_^! [21:26] tj: javajunky: I have express-contrib? [21:26] tj: but it only has one helper right now haha [21:26] mape: V1: Imagination? :P [21:26] mape: tj: Nice with the short nick btw [21:26] tj: javajunky: but nope i didnt [21:26] tj: mape: haha thanks [21:26] mape: Now never disconnect :P [21:26] tj: my first name is awesome, last name, way to much to type [21:26] Gruni has joined the channel [21:27] SubStack: mape: like my ui? http://substack.net/images/screenshots/browserling-2.png [21:27] V1: mape: nope, we did just handled 20.000 requests is 0.759 according to apache bench :) [21:27] SubStack: launching soon \o/ [21:27] javajunky: tj: github.com/masylum/express-dialect [21:27] mape: SubStack: Could use a couple more gradients ;) [21:27] javajunky: um, skipped the protocol there (stupid chrome hiding it) [21:27] boaz has joined the channel [21:28] mraleph: JohnDav: it's pretty strange that you did not get a spike yet. [21:28] mape: SubStack: Ah, nice service! [21:28] SubStack: yeah been playing with gradients some in inkscape [21:28] mape: People are gonna love that [21:28] JohnDav: mraleph: i did.. [21:28] JohnDav: just saved the log file [21:28] SubStack: also made a neat logo earlier at http://browserling.com/ [21:28] SubStack: mape: I hope so! [21:28] JohnDav: this time it took long to get the spike lol [21:28] olivvv_ has joined the channel [21:28] SubStack: it's javascript all the way down too [21:29] mraleph: JohnDav: hmm. it might be somehow be related to profiler running... [21:29] mape: SubStack: Will you have enough VMs to deal with the bombardment of traffic? [21:29] SubStack: mape: ec2 ^_^ [21:29] V1: mape: It's basically a custom server written in pure c ;) so ofc, it will beat node :) [21:30] JohnDav: mraleph: running the ticker now [21:30] mape: SubStack: Will you have enough money to pay for the ec2s that will deal with the traffic? ;) And how does that work with licenses of win? [21:30] SubStack: also we have a queueing system so people wait in line for their time to use it [21:30] mape: V1: Ah k [21:30] bentruyman has joined the channel [21:30] olivvv_: hi. is there somebody able to help on this : http://gyazo.com/c4c6958b239de030c7cb3a132062a93b.png (cygwin on vista) [21:30] meandi has joined the channel [21:30] mraleph: JohnDav: you mean linux-tick-processor? [21:30] JohnDav: yeah [21:31] javajunky has joined the channel [21:31] JohnDav: [: 17: v8.log: unexpected operator [21:32] mraleph: hah [21:32] mraleph: this error looks wierd [21:32] JohnDav: $(nodedir)/deps/v8/tools/linux-tick-processor v8.log [21:32] mraleph: what command line did you use? [21:32] JohnDav: this is how you process it right? [21:33] rikarends: olivv: do the rebaseall thing on the howto page [21:33] mraleph: i think you can omit v8.log [21:33] mraleph: just $(nodedir)/deps/v8/tools/linux-tick-processor [21:33] JohnDav: ubuntu@ip-10-122-54-147:~/socket.io$ sudo /home/ubuntu/node/deps/v8/tools/linux-tick-processor v8.log [21:33] JohnDav: this is what i used [21:34] jchris has joined the channel [21:35] wilmoore has joined the channel [21:35] rikarends has left the channel [21:36] mraleph: JohnDav: why sudo? [21:36] robmason has joined the channel [21:36] JohnDav: mraleph: same error without sudo [21:36] rikarends has joined the channel [21:37] mraleph: try /bin/bash instead of sudo. [21:37] JohnDav: oh i think ill have to install scons [21:37] mraleph: yep that to [21:37] JohnDav: home/ubuntu/node/deps/v8/tools/linux-tick-processor: 17: scons: not found [21:37] pharkmillups has joined the channel [21:38] mraleph: ok [21:38] mraleph: it needs to build d8 [21:38] mape: SubStack: have you thought about making the version picker of the browser the "go" button? [21:38] JohnDav: ok its processing it [21:38] stepheneb has joined the channel [21:38] cloudhead has joined the channel [21:39] SubStack: mape: it functionally is actually [21:39] mape: Ah k [21:39] SubStack: also this: http://substack.net/images/screenshots/browserling-1.png [21:40] SubStack: with the old placeholder logo, but that shows how the functionality works [21:40] mape: Yeah was taking a look at that one [21:40] ben_alman has joined the channel [21:40] JohnDav: mraleph: will this generate another file ? [21:40] mraleph: JohnDav: no. it should spill to output [21:41] JohnDav: k [21:41] rpflo has joined the channel [21:41] mape: SubStack: I assume -1 is the landing page? [21:41] SubStack: yep [21:44] shaver: ryah_: I don't suppose you know of an amqp library for node that speaks 0.9.1? [21:46] robmason_ has joined the channel [21:46] JohnDav: ok done [21:46] JohnDav: should i gist the output ? [21:46] JohnDav: mraleph [21:47] mraleph: yep [21:47] mraleph: let's see [21:47] mraleph: i guess ryah_ is also interested [21:49] JohnDav: ryah_: mraleph: http://gist.github.com/660352 [21:49] rwaldron has joined the channel [21:49] ezmobius has joined the channel [21:49] mraleph: looking [21:51] JimBastard has joined the channel [21:53] mraleph: hmm I can't see anything that would help us to understand who allocates toooons of memory. [21:53] mraleph: probably you should have allowed it to run longer during CPU spike [21:54] JohnDav: spikes are in abundance... another one going on [21:54] JohnDav: i can do that now :p [21:55] jameshome has joined the channel [21:56] unomi has joined the channel [21:57] killfill: hi [21:57] a_meteorite has joined the channel [21:57] killfill: anyone uses socket.io?.. how should one implement reconnection' [21:57] killfill: i hve a timer that checks it, but im not sure if the cleanest way [21:57] killfill: has to be something better.. :) [22:00] ysynopsis has joined the channel [22:01] programble has joined the channel [22:02] V1: killfill: add a listeners for "on disconnect" than.. do a new io.connect()? [22:03] MikhX has joined the channel [22:03] amerine has joined the channel [22:03] EyePulp: killfill: what V1 says - listen for the disconnection and re-run the connect [22:04] EyePulp: it's mostly working for me. Can't say it feels very clean though [22:05] killfill: ok.. but when connect fails again (probably will) ill have no disconnect event.. :( [22:05] V1: killfill: http://gist.github.com/660385 <-- a trimmed down version of my implemention [22:05] killfill: i mean it will probably will, in the case for example on mobile, where you may have 5 seconds inet disconnection? [22:05] MikhX_ has joined the channel [22:05] V1: It will also fire a "reconnect" event after the connection has been re-establed. and the on disconnect will always be fire. [22:06] V1: if you disconnected it just attempt to reconnect again every 15 seconds. [22:06] V1: ( in my code ) [22:07] killfill: oh yah [22:07] killfill: im doing the same, except im firing it up not on disconnect.. :P [22:08] killfill: ah wait.. if io.connect() cannot connect, it will fire up ondisconnect event also? [22:08] TomsB has joined the channel [22:08] V1 has joined the channel [22:09] V1: Oh turning off wifi is probably not so smart -_-" but I got a disconnected message killfill [22:09] killfill: hehe [22:09] killfill: greate. thanks for the tip! [22:10] langworthy has joined the channel [22:17] killfill: V1, i have to download socket.io in my proyects dir, and require it from ./ do you have to do the same?.. if i use the one thats on npm, when starting node will not see the red notice. and things will not work. :S [22:17] killfill: is this 'normal'? [22:18] bradleymeck has joined the channel [22:18] V1: killfill: I don't use the npm version, I also download socket.io from trunk and place it in my own projects folder [22:19] killfill: ok :) [22:22] shaver: oh [22:22] shaver: node-amqp seems to not report auth errors [22:25] digitalspaghetti: nice: http://badassjs.com/post/1461943420/face-detection-in-javascript-via-html5-canvas [22:26] pharkmillups has joined the channel [22:28] ossareh has joined the channel [22:30] melgray has joined the channel [22:30] fizx has joined the channel [22:30] ben_alman_ has joined the channel [22:30] EyePulp: v1 - any reason you don't use setInterval versus setTimeout? [22:31] EyePulp: (for your reconnect script) [22:31] V1: EyePulp: Not that I can remember.. [22:33] Aria has joined the channel [22:37] jimt_ has joined the channel [22:37] sonnym has joined the channel [22:37] hsuh has joined the channel [22:38] tmpvar has joined the channel [22:49] V1: Wow, connect is being a bitch [22:51] V1: It gives me 500 Error: ENOENT, No such file or directory for my app.get("/").. But if i remove the staticProvider middle ware it works fine.. except, i don't have any resources left -___- [22:52] tmpvar: dont cache them [22:52] tj: V1: 0.3.x ? [22:52] V1: Yes [22:53] tj: its not really tested with 0.3.x yet [22:53] V1: I switched from 0.2.2 to 0.3.trunkbuild [22:53] tj: to much of a moving target ATM, for myself at least, since I have to support a production lib [22:53] tmpvar: if you remove cache: true it should work (or atleast it did for me) [22:54] V1: what cache tmpvar ? [22:54] pedrobelo has joined the channel [22:54] tmpvar: in the staticProvider.. you may be having a different issue though [22:54] technoweenie has joined the channel [22:54] jashkenas has joined the channel [22:56] cloudhead has joined the channel [22:56] mraleph has joined the channel [22:56] devinus_ has joined the channel [22:56] V1: I'm just going to cross my fingers and push this live :p [22:57] yhahn has joined the channel [22:58] Anti-X: so you're one of those [22:58] V1: Yup [22:58] devinus_ has joined the channel [22:59] miccolis has joined the channel [22:59] V1: Ok, I got fucked. tj It's not a 0.3.0 issue :p no.de can't handle it either [22:59] tj: V1: weird [23:00] tj: I will eventually get some CI going for everything [23:00] Anti-X: see? the church is for believing in fairies.. leave programming to facts! :p [23:00] tj: with different node --version s [23:01] V1: Anti-X: :$ [23:01] Anti-X: totes brah [23:01] V1: Thanks god, no-de has a automagical roll back function ;) [23:01] Anti-X: magic! [23:01] JohnDav: V1: how did you get no.de coupon code? [23:01] tj: haha does it? [23:01] bencc has joined the channel [23:01] blaines has joined the channel [23:02] tj: i havent used it much [23:02] ben_alman has joined the channel [23:02] tj: probably a good place for the CI stuff now that I think about it [23:02] Anti-X: and why was no.de even available? [23:02] tj: but not if they wipe it later [23:02] Anti-X: :p [23:02] Anti-X: how come nobody in the history of .de ever register no.de [23:03] Anti-X: did they buy it maybe? [23:03] V1: JohnDav: I have multiple :D! 1) though the node knockout contest 2) through the API [23:03] aconbere has joined the channel [23:03] V1: Anti-X: They probably have nein.de :) [23:03] Anti-X: :p [23:04] JohnDav: V1: is it good ? [23:04] V1: JohnDav: Loving it. [23:04] fizx has joined the channel [23:04] JohnDav: V1: do they have a 30second request time out like heroku ? [23:04] V1: JohnDav: Nope :) and they had build in websocket support [23:05] JohnDav: great! [23:06] JimBastard: hey ryah_ can i get like 100 no.de instances? rackspace is making me slightly upset [23:06] ryah_: soon :) [23:06] JimBastard: :p [23:07] JimBastard: our deployment engine is somewhat utility provider agnostic [23:07] JimBastard: as long as it has node and npm it will work [23:07] tj: ryah_: the beta ones will be remove right? I was thinking of setting up CI servers for some projects on mine [23:07] ryah_: tj: i dont think so [23:07] ryah_: at least not that i know of [23:07] tj: ah, nice :) [23:07] tj: not sure where I heard that [23:08] ryah_: i think the terms of service says that we can remove them at will [23:08] tj: gotcha [23:09] ryah_: but i think that's just legal fodder [23:09] Aria: That's one of the easiest ways to not get in trouble for following the DMCA [23:10] mikeal has joined the channel [23:10] JohnDav: did you check the output ryah_ [23:11] ryah_: JohnDav: yeah - nthing popped out [23:12] JohnDav: ah :/ [23:12] ryah_: JohnDav: how long did you let it run at 100% ? [23:12] ryah_: while profiling? [23:12] JohnDav: 5 - 10 mins [23:12] ryah_: vs the rest of the time? [23:12] JohnDav: rest of the time was too long [23:12] JohnDav: because the spike occured too late [23:16] V1: Oh, no.de got updated. Awsome.. That would probably explain why my server didn't go down for more than 5 days now lol [23:17] tj: updated? [23:17] tj: to what [23:17] V1: from 0.2.2 to 0.2.4 [23:17] tj: ah, k fewf [23:18] sudoer has joined the channel [23:18] mape: Wrong room to ask but.. When will the votes be counted for the current US election along with all the props? [23:19] mtodd_ has joined the channel [23:19] bradleymeck: by tomorrow polls end 10pm eastern [23:19] trotter has joined the channel [23:19] mape: And the counting usually takes? Hours? A day? [23:21] ThePub has joined the channel [23:22] JimBastard: mape: they sorted that out a few months ago [23:22] JimBastard: the election are just a formality [23:22] [[zz]] has joined the channel [23:22] mape: The results? :P [23:22] JimBastard: aye [23:23] JimBastard: naah im kidding democracy is great [23:24] mape: As long as those who are incorrect won't vote [23:24] ryah_: mape: counting is probably starting now [23:24] ryah_: or soon.. [23:24] mape: Ah k so it is ongoing [23:24] JimBastard: ohh i think cali is voting on something today [23:25] JimBastard: that was important [23:25] ryah_: probably the first polls on the east coast close in 30 minutes [23:25] JimBastard: you guys need to go vote [23:25] V1: Oh, tj I needed to update and now it's fixed [23:25] mape: Isn't it possible that skewes the votes if people see stuff leaning one way or the other? [23:25] tj: V1: update connect? good good :) [23:25] V1: npm update, that is [23:25] JimBastard: http://en.wikipedia.org/wiki/California_Proposition_19_(2010) [23:25] ryah_: mape: nytimes.com [23:26] mape: Ah neat, thanks [23:27] mape: Oh I thought the Tea party was meant as something derogatory.. Learn something every day [23:28] technoweenie: JimBastard: you cant vote for that unfortunately [23:28] JimBastard: technoweenie: because im a robot? [23:28] technoweenie: you live in nyc dont you [23:28] JimBastard: no, convicted felon [23:28] technoweenie: oh, allrighty [23:28] mape: them sex tapes bite you in the ass [23:28] technoweenie: i voted [23:28] JimBastard: nice [23:29] JimBastard: unless you voted against things in which i believe in, then i hate you [23:29] JimBastard: :-) [23:29] technoweenie: well, i drew some arrows and stuck it in some shredder thing with a sequoia logo [23:29] JimBastard: nice [23:29] yhahn has left the channel [23:29] bnoordhuis: ryah_: are there any reasons why node::Buffer can't be pure virtual? [23:30] bnoordhuis: i want to implement something looks and walks like a buffer but isn't really one [23:30] bnoordhuis: looks and walks... hear me [23:30] ryah_: bnoordhuis: it could. [23:30] shaver: proxies :-) [23:30] bnoordhuis: i'd like that [23:30] mape: So what happens if I would go to a store, order 28.5 grams of cannabis and the store ends up giving me 32 grams, me not being aware of it. And then I'm arrested. It's my fault then (everyone is gonna start carrying digital scales with them)? [23:30] bnoordhuis: if i submitted a patch, would you consider it? [23:31] tj: drinking + techno + code makes me dizzy [23:31] ryah_: bnoordhuis: sure [23:31] jchris has joined the channel [23:31] bnoordhuis: cool [23:32] bnoordhuis: not tonight, but maybe this week [23:32] V1 has left the channel [23:32] technoweenie: is there an image proxy for ssl? [23:33] technoweenie: people drop http images in issues/comments, so we need to serve those over https to keep the browsers happy [23:33] bpot has joined the channel [23:33] bnoordhuis: technoweenie: you mean something like nginx? [23:33] bnoordhuis: in reverse proxy mode, that is [23:34] sprout has joined the channel [23:34] robmason_ has joined the channel [23:34] mape: would the browser whine if you iframed them (ugly workaround)? [23:34] technoweenie: bnoordhuis: these are externally hosted images [23:34] technoweenie: i dont want to setup an open ssl proxy [23:35] bnoordhuis: technoweenie: right [23:35] bnoordhuis: you might be SOL then [23:35] technoweenie: not when i have the power of node.js [23:35] bnoordhuis: fetch and serve them yourself? [23:35] technoweenie: i wrote one, i'll release it if it works out [23:35] technoweenie: just curious if someone had ane xisting solution [23:36] mape: won't that be rather bw intensive proxying all images? [23:36] charlenopires has joined the channel [23:36] robmason__ has joined the channel [23:37] technoweenie: mape: yup, possibly. but people drop skitch images in commit comments for example [23:37] technoweenie: its not much different then adding an 'attach image' feature to issues/comments [23:38] mape: True, how does https pages handle http iframes? [23:38] ThePub has joined the channel [23:38] jherdman has joined the channel [23:38] technoweenie: i dont know, that might throw up a mixed content warning [23:38] robmason has joined the channel [23:38] ryah_: <3 [23:38] mape: Hmm yeah [23:38] ryah_: % ./node [23:38] ryah_: > process.binding('net').socketpair() [23:38] ryah_: [ 6, 7 ] [23:38] ryah_: > process.binding('net').socketpair() [23:38] ryah_: [ 8, 9 ] [23:38] ryah_: > % [23:38] technoweenie: and i'm not thrilled about wrapping every image in an iframe. that sounds like way more work [23:38] ryah_: :) [23:38] ryah_: i love that i added that [23:38] mape: technoweenie: for sure, ugly way to solve it [23:39] jashkenas: technoweenie: gravatar supports SSL already. [23:39] technoweenie: yea we're using ssl gravatar urls [23:39] jashkenas: oh, sorry -- assumed that was the external service you were talking about. [23:39] tj: im pretty sure one of them wrote gravatar [23:39] mape: Wasen't that the wordpress dude? [23:40] tj: dunno maybe [23:40] tj: i thought one of the github dudes did [23:40] jashkenas: tom wrote it, not matt. [23:40] technoweenie: wordpress bought it from mojombo [23:40] tj: nice! [23:40] technoweenie: but the point is, people drop images from anywhere into issues and shit [23:40] mape: have to inline it? [23:40] jashkenas: technoweenie: that's a nice problem. The real answer has always been: get the browser to stop bitching about HTTP assets -- it's pretty ridiculous. [23:41] technoweenie: it is [23:41] technoweenie: chrome/safari also dont cache any ssl crap on disk [23:41] technoweenie: chrome randomly clears caches to conserve memory too [23:41] mape: at all? [23:41] shaver: even if you give it the headers explicitly? [23:41] technoweenie: so any click might force you to reload all of the css/js on a site [23:41] mape: that is... less then optimal [23:41] jashkenas: are you guys all hands on deck fighting firesheep these days? [23:42] technoweenie: jashkenas: we've been experimenting for over a week [23:42] technoweenie: but we cant deal w/ all these inconsistent bugs [23:42] jashkenas: I look forward to the writeup when you solve the side-wide-SSL problem... [23:43] technoweenie: inconsistent bugs in browsers, that is [23:43] c4milo has joined the channel [23:43] jashkenas: are y'all pursuing any cryptographically-secure-your-cookies-over regular HTTP avenues? (apart from that initial fix) [23:44] jashkenas: or does it have to be SSL... One would hope that someone could come up with a sufficiently clever cookie trick. [23:44] technoweenie: yea once its all ssl, we'll remove the secure cookie and make the session cookie secure [23:44] technoweenie: ssl's the best solution [23:48] ben_alman has joined the channel [23:50] tmpvar: did we go back to waf in the master branch? [23:50] melgray has joined the channel [23:50] JimBastard has joined the channel [23:51] rasztasd has left the channel [23:51] tj: tmpvar: yup [23:51] tmpvar: i suppose thats a good thing, heh [23:51] tmpvar: do you know why? [23:52] tj: autotools is a PITA [23:52] tj: its all a PITA haha [23:52] tmpvar: word, i hear that [23:52] tj: i only dislike waf because its python [23:52] Aria: Heh, me too. Also, kinda opaque. [23:52] tj: and because I dont know python well, and the docs seemed crappy [23:53] Aria: (I actually like autotools, but autoconf less than automake) [23:53] tmpvar: right, it either just works or is pretty painful [23:53] tmpvar: ^ python/waf [23:53] tj: scons seemed better from what I tried [23:54] Aria: Yeh, but harder to internalize as a dependency. [23:54] tj: ah [23:54] tj: doesnt v8 use scons? [23:54] Aria: Yeah, it does. [23:54] Aria: It's just a biggish dep, compared to waf. [23:55] Aria: (and still requires python) [23:55] tj: yeah [23:55] ThePub has joined the channel [23:55] wilmoore has joined the channel [23:57] mtodd has joined the channel