[00:00] bugfree has left the channel [00:01] evangenieur has joined the channel [00:02] icrazyhack has joined the channel [00:02] westc: guys can anyone help me understand how daemons work and what the & at the end of a process does [00:02] westc: basically I'm running nodemon and sshd closes the connection and then nodemon keeps running [00:03] mraxilus: daemons are basically applications that run in the background without user input [00:03] westc: and I don't know how to get back to nodemon in the new ssh session therefore I end up having to kill it everytime and start a new instance of nodemon [00:03] superlou has joined the channel [00:03] mraxilus: the & after a command doesn't run a process as a daemon per say, but rather detaches it from the current terminal session [00:04] grom358 has joined the channel [00:04] superlou: I'm creating a one-page web app where the client is done in backbone.js, and I couldn't care less if the server can access the backbone models, but I can't find an example of this kind of structure. Am I doing something dumb? [00:04] whatadewitt_ has joined the channel [00:04] mraxilus: you end up with the same effect, however daemons are programs designed to run as background applications were as you can use & to tell a program to essentially 'go away' as I like to call it. [00:05] westc: so for example if I start a daemon, and then I can press enter and it goes to a new command "line"...how can i go reattach to the daemon process to see it populate my terminal with stdout, console.log or whatever [00:05] westc: like in the case of mongod [00:05] westc: once I start it [00:05] grom358: ah.. noob question. I have written a script that has dependencies on jsdom and async modules. Is there way I can specify them so its easy for someone to install them with npm [00:05] westc: and press enter [00:05] westc: mongod is detached from my terminal [00:05] mraxilus: You might want to take a look at the fg and bg commands [00:05] isaacs has joined the channel [00:06] mraxilus: But personally I would just use screen or byobu [00:06] superlou: grom358, there's packages.js [00:06] superlou: or something like that [00:06] superlou: I tried to get it working and couldn't get the syntax quite right [00:06] hackband has joined the channel [00:06] westc: I like the fact that there are processes running in the background and aren't crowding ssh but I want to be able to somehow "reconnect" to the currently running daemon via the pid or something [00:06] secoif: grom358 type `npm init` then `npm install --save async jsdom` then perhaps `npm publish` [00:06] superlou: grom358, googling for packages.js isn't turning up anything, maybe i've got the wrong file name. But there is something sort of like a dependency specifier [00:07] secoif: superlou grom358 it's called package.json [00:07] mraxilus: byobu is definately the way to go [00:07] superlou: welp. That's the closest I've been to an answer all day [00:07] secoif: superlou grom358 `npm help json` [00:07] ryanrolds_w: Guys, I have to say something. [00:07] devongovett has joined the channel [00:07] ryanrolds_w: I love you guys. [00:07] grom358: yeah my script isn't a module is all [00:08] secoif: grom358 it should be [00:08] grom358: doesn't export anything [00:08] mraxilus: run what ever programs you need in the byobu/screen session and you can simple press F6 to return to the normal ssh without exiting the running processes [00:08] secoif: grom358 if it has an executable use preferGlobal [00:08] mraxilus: I use it mostly for things like minecraft on my server [00:08] westc: excellent! [00:09] westc: thanks mraxilus [00:09] secoif: grom358 eg, nodemon is a module, but it (probably) doesn't export anything [00:09] mraxilus: no problem [00:09] westc: I have no idea how people ssh without stuff like this [00:09] amasad has joined the channel [00:09] grom358: secoif: so I should make it a module still. Even though there nothing to import. Its a screen scraper script that dumps out information to a file [00:09] rtgibbons has joined the channel [00:09] theBrettman: npm vs git go! [00:10] mraxilus: That's irrelevent, npm uses git... [00:10] isaacs: theBrettman: i don't get the qeustion. [00:10] superlou: you fools. SVN was perfect in every way [00:10] superlou: HERETICS [00:10] isaacs: theBrettman: you mean, checking in deps vs not checking in deps? [00:10] charrly: I tried to install nodemon but it says i need to install with -g. when I do, i just get a bunch of errors.. anyone know why? [00:10] theBrettman: ha [00:10] theBrettman: I'm noob and didn't know npm uses git [00:10] isaacs: or are you literally suggesting that you replace "git commit" with "npm publish" [00:11] secoif: grom358 you should make it a module still [00:11] theBrettman: usually, package managers have outdated stuffs [00:11] secoif: grom358 it just allows you to use npm to manage your deps [00:11] isaacs: theBrettman: or do you mean "should i install this module I'm using from npm, or pull it from its git repo?" [00:11] secoif: charrly have you installed other modules successfully with -g [00:12] grom358: secoif: okay the thing is. I will have a server in the future. This script is for creating dataset the server is gonna use. Its a one time use script for setting up dataset [00:12] teadict: aggghrrh, why isn't it updating the output?! [00:12] theBrettman: I guess npm then would be if I just wanna use it and git would be if I wanna develop it? [00:12] grom358: okay.. yeah I'll set up as module so can use npm to manage my deps [00:12] charrly: secoif, no. Everytime in install a module it's: npm install module-name and it works fine [00:12] jacobolus has joined the channel [00:13] secoif: charrly try installing nodeunit, npm install -g nodeunit [00:13] Venom_X has joined the channel [00:13] secoif: charrly see if that works, if not, there's probably a problem with your node/npm config [00:13] Kunda has joined the channel [00:13] teadict: well, it doesn't browserify unless I specifically CLI it [00:13] teadict: bummer [00:14] thriple: anyone know which fork of nvm is the latest? looks like the creationix branch is a behind now [00:14] iRoj has joined the channel [00:14] theBrettman: how long have ppl been making these modules? [00:14] ambroff has joined the channel [00:15] charrly: secoif, errors: permission denied for the node_modules folder [00:15] sechrist has joined the channel [00:15] isaacs: thriple: i'd use nave [00:15] isaacs: thriple: of course, that's because i know the author so well :) [00:15] isaacs: charrly: use sudo with global installs if you get EACCES errors. [00:15] sechrist: so are people using socket.io on heroku? multiple dynos would break that no? [00:16] secoif: isaacs shouldn't he simply adjust config so sudo isn't required [00:16] thriple: Sounds good to me, I'm having some issues getting nvm working [00:16] secoif: isaacs eg chmodding some stuff [00:16] isaacs: secoif: or that. either is fine. sudo is a little bit better if you trust me, but don't trust package install scripts. [00:16] charrly: secoif, what do you mean by global installs? [00:16] isaacs: secoif: npm downgrades perms if you're root [00:16] langworthy has joined the channel [00:17] isaacs: charrly: global installs ==> npm install -g blah or npm install blah --global [00:17] secoif: isaacs I don't trust package install scripts. Mainly because people like me write them. [00:17] thriple: isaacs: if i am installing node v0.4.9 I need to npm specifically for that version right? [00:17] isaacs: secoif: then you shoudl use root [00:17] charrly: ok [00:17] isaacs: secoif: so that the scripts will be run as nobody instead of being run as you [00:17] secoif: ah [00:17] charrly: secoif, thanks. it worked as root :) [00:17] cronopio: & [00:18] keeto has joined the channel [00:18] secoif: isaacs ha, so it's actually more secure to run as root [00:18] isaacs: secoif: yes. [00:18] isaacs: secoif: unless you trust package authors more than you trust me. [00:18] isaacs: secoif: then you should not run anything as anybody. [00:18] isaacs: :) [00:19] isaacs: secoif: sudo su; su -i nobody; npm install blah [00:19] twolfson has joined the channel [00:19] secoif: isaacs where does it install globals to as nobody? [00:19] isaacs: secoif: the same [00:20] isaacs: secoif: so you'd have to configure it to go somewhere nobody can write to [00:20] meso has joined the channel [00:20] isaacs: (but how can it write to it if it's somewhere nobody can write to!?) [00:20] isaacs: ACTION rimshot [00:20] secoif: so allow nobody to write to ~/.npm ? [00:20] secoif: hah [00:21] ChrisPartridge: just chmod -R 777 / ;-) [00:23] secoif: ChrisPartridge accidentally did that once. server never came back. [00:23] madhums has joined the channel [00:23] icrazyhack has joined the channel [00:23] thriple: with nave or nvm how do you deal with using v0.4.9 and v0.6 when npm isn't compatible with both? [00:23] coderarity has joined the channel [00:23] isaacs: thriple: you pick one :) [00:23] isaacs: thriple: you can't use two versions of node in the same node program. sorry. no way. [00:23] MrTopf has joined the channel [00:24] secoif: it'd be good if one of the package mangers coudl swap npm versions as well [00:24] secoif: one of the node installers could* [00:24] thriple: isaacs: bummer, I guess I'm stuck with 0.4 for a while :( [00:25] eignerchris has joined the channel [00:26] thriple: secoif: yeah, thats why I was all excited to use the version manager. I'm stuck on 0.4 without it [00:26] isaacs: you can always sort of fake it [00:27] cesconix has joined the channel [00:27] isaacs: npm install thing-that-needs-04 --node-version=0.4.12 [00:27] teadict: what? orgasms? yeah [00:27] tjholowaychuk: thriple zmq! [00:27] teadict: oh [00:27] mattgifford has joined the channel [00:27] No9 has joined the channel [00:27] secoif: thriple or install it with 0.6 then switch over to 0.4 and hope it works [00:28] grom358: secoif: thanks for the help. So got this package.json almost done now :) [00:28] secoif: grom358 np. [00:29] grom358: secoif: In the future its gonna be a server. Just currently it only has this command line tool for making the dataset. So I don't need preferGlobal right? [00:29] upstream: node-waf doesn't seem to be available on Windows, anyone can confirm this? [00:29] secoif: grom358 make it into two modules [00:29] secoif: grom358 single responsibility principle [00:30] eb4890 has joined the channel [00:30] secoif: grom358 my app went from being a great collosal mindfuck to being a bunch of small, nearly trivial modules. works pretty good. [00:31] grom358: yeah.. I was thinking this script would just live in tools folder [00:31] secoif: grom358 encourages you to have low coupling, decent APIs and not use backdoors [00:31] thriple: secoif I think I just need two computers :p [00:31] grom358: mmm.. I could actually export some of the stuff this script uses into a module so others can use it [00:31] secoif: thriple vmware/virtualbox perhaps [00:32] secoif: so i've got an exception throwin in a process.nextTick handler. my only option is to catch it with global exception handler right? [00:32] h4mz1d has joined the channel [00:33] spolu has joined the channel [00:33] eee_c has joined the channel [00:33] whatadewitt_ has joined the channel [00:34] bruno has joined the channel [00:35] SubStack: teadict: --watch [00:35] [[zz]] has joined the channel [00:36] MrBig has joined the channel [00:37] romain_ has joined the channel [00:40] sotosof has joined the channel [00:41] erichynds has joined the channel [00:41] tilgovi has joined the channel [00:41] teadict: SubStack: yeah.. tried it, also as middleware.. but unless I rerun the cli command before restarting the express server, changes don't apply [00:42] teadict: so I made a server.sh lawl [00:45] secoif: SubStack dnode's server.listen and server.close can both throw exceptions (if already listening, or if not listening) [00:45] secoif: SubStack should I wrap those calls in try/catch and forward them on as error events? [00:46] zemanel has joined the channel [00:46] secoif: SubStack I'm proposing a patch to dnode. [00:46] Shrink has joined the channel [00:46] Shrink has joined the channel [00:46] mraxilus has joined the channel [00:48] tonymilne has joined the channel [00:48] christkv has joined the channel [00:49] ditesh|cassini has joined the channel [00:49] SubStack: secoif: 'error' events sounds good [00:50] neurodrone has joined the channel [00:50] secoif: SubStack cool. testing it out now. [00:50] SubStack: teadict: strange, I use watch mode pretty often and it works fine [00:50] secoif: SubStack you're on linux though? [00:51] SubStack: yep [00:51] secoif: teadict you're on OSX? [00:51] AviMarcus: uh there any easy way to parse a .csv file for csv and save it into an array? the various stuff I googled didn't seem to actually work... e.g. getting TypeError: Object fs_application.csv has no method 'setEncoding' - node version .0.4.9 matter..? [00:52] secoif: SubStack teadict node's ability to watch files is totally f'ed up on OSX. fs.watch simply doesn't work reliably. [00:52] AviMarcus: Oh. ah I ran the wrong command. hold. [00:52] SubStack: AviMarcus: there are lots of modules to parse csv files on npm, check out http://search.npmjs.org/ [00:52] ryanrolds_w: AviMarcus: http://nodejs.org/docs/latest/api/readline.html and explode the string on ','. [00:53] teadict: secoif: no [00:53] secoif: oh [00:53] secoif: teadict windows? [00:53] teadict: linux [00:53] secoif: oh [00:53] secoif: well [00:53] secoif: stumped. [00:54] isaacs: csv is surprisingly hard to parse correctly [00:54] damienbrz has joined the channel [00:54] AviMarcus: thanks both. [00:54] isaacs: you know you can quote and escape stuff? [00:54] isaacs: exploding on , is not enough [00:54] ryanrolds_w: isaacs: Yeah, it's a pain beacuse peple don't know how to make them correctly. [00:54] isaacs: ryanrolds_w: also, you can quote \n [00:54] ryanrolds_w: isaacs: Sigh, good point. [00:54] sdwrage_ has joined the channel [00:54] insin: you can quote your quotes [00:54] secoif: AviMarcus I've used https://github.com/wdavidw/node-csv-parser with good success [00:55] isaacs: 'x,a",b","c\nd""e"\n' [00:55] isaacs: valid csv^ [00:55] isaacs: should parse as ["x", "a,b", "c\nd\"e"], i think [00:55] isaacs: if you're doing windows-style quote escaping [00:55] AviMarcus: :) [00:56] isaacs: you really need a state machine. [00:56] insin: """" [00:56] teadict: secoif: I leave the `browserify main.js -o public/javascripts/main.js -wv` opened in another terminal.. I make a change in main.js, restart express server... nothing happens... verbose mode says the same amount of bytes were written :/ [00:57] teadict: secoif: my changes don't get added to the output main.js with browserify watching [00:57] teadict: AND writing, according to verbose [00:57] No9 has left the channel [00:58] teadict: but always the same amount of bytes :/ [00:58] icrazyhack has joined the channel [01:00] quackquack has joined the channel [01:00] letsgojuno has joined the channel [01:00] EriksLV has joined the channel [01:02] AviMarcus: sweet, I think it works.. [01:05] ItsTodd has joined the channel [01:05] quackquack: SubStack: why would browserify be throwing "Error: Can only load non-root modules in a node_modules directory for file:" [01:05] ItsTodd: Anyone in here ever pair program remotely on an open source project? [01:05] xbayrockx has joined the channel [01:06] jacobolus has joined the channel [01:06] SubStack: quackquack: global modules maybe? [01:06] replore has joined the channel [01:06] replore_ has joined the channel [01:06] a_suenami has joined the channel [01:06] Juan77 has joined the channel [01:06] quackquack: SubStack: as in, global modules are my solution or problem? [01:07] SubStack: global modules can be problematic [01:07] quackquack: SubStack: no, it is a relative path that is throwing the error [01:07] SubStack: also requiring up above the entry point breaks sometimes [01:09] secoif has joined the channel [01:09] quackquack: SubStack: yeah, thats probably the problem.. is it a bug, or intended behavior? [01:09] ItsTodd has left the channel [01:10] westc: anyone know how to set putty to indefinitely keep the ssh connection open? [01:10] westc: or does sshd control that [01:11] teadict: using linux lol [01:11] SubStack: quackquack: it's a bug but to fix it properly requires restructuring [01:11] quackquack: SubStack: hm, k. so the workaround is to put a dummy entry file at the top? [01:11] grey: westc: maybe try checking "Enable TCP keepalives" under Connection [01:12] grey: westc: but I don't have it checked, and have had sessions open for days at a time [01:12] SubStack: quackquack: I don't know what you mean by that [01:12] quackquack: SubStack: just adding an empty entry.js file at the top of my tree [01:12] grey: westc: if you have DSL or even some cable connections, they just periodically disconnect a lot of the time, just make sure to run stuff inside a screen session if it's a problem [01:12] neoesque has joined the channel [01:13] SubStack: quackquack: that won't do anything [01:13] SubStack: there's nothing special about files named entry.js [01:14] westc: how does a screen session work? [01:14] quackquack: SubStack: right, but if i pass that file as the entry point; assuming the JS file (whatever name i give it) is at the top of the tree [01:14] westc: like I can persist my terminal? [01:14] westc: after diconnect [01:14] westc: disconnect* [01:15] tonymilne has left the channel [01:15] astropirate has joined the channel [01:16] astropirate: Hello friends [01:16] amigojapan has joined the channel [01:18] Shrink has joined the channel [01:18] grey: westc: yep [01:18] grey: westc: that's exactly it, it wraps your terminal inside another virtual terminal [01:18] ryog has joined the channel [01:18] __main__ has joined the channel [01:19] dennisjbell has joined the channel [01:19] astropirate: Anyone recommend a user permission scheme? Right now I'm stuck between either using named named user classes like Admin, Member, Guest, Moderator etc and a number based permission system where 0 is guest, 1 is user, 2 is moderator, 3 is minor admin, 4 is super admin. Any articles/papers on this subject? [01:20] MrTrick has joined the channel [01:20] astropirate: in the numbered system the permissino are cascading [01:22] jacobolus has joined the channel [01:23] k1ttty has joined the channel [01:25] icrazyhack has joined the channel [01:25] westc: screen is awesome [01:27] dodo has joined the channel [01:27] zitchdog has joined the channel [01:27] abraxas has joined the channel [01:28] jacobolus has joined the channel [01:28] astropirate: westc: what is screenm? [01:28] astropirate: *screen [01:29] westc: it's a ssh wrapper for linux so that I can switch between virtual terminals even when i disconnect :D [01:30] westc: windows within screen sessions [01:30] westc: I can't believe I've been sshing without this [01:30] westc: so cool [01:31] astropirate: i shall take a look at this [01:31] westc: it's like having windows that I can switch between [01:32] westc: each daemon/process can finally have it's own independent view now :D [01:32] theBrettman: is there a way to paste what's in my os clipboard to vim? [01:33] AvianFlu: :set paste [01:33] AvianFlu: then go to insert mode [01:33] AvianFlu: then shift-insert [01:33] AvianFlu: then :set nopaste again [01:34] AvianFlu: you can bind that stuff for less typing, but I don't find myself pasting big blocks like that enough to bother [01:35] samsonjs_ has joined the channel [01:35] jldbasa has joined the channel [01:38] CrabDude has joined the channel [01:39] nibblebot has joined the channel [01:39] JJMalina has joined the channel [01:39] crescendo has joined the channel [01:39] crescendo has joined the channel [01:39] caolanm has joined the channel [01:41] mraxilus has joined the channel [01:42] zitchdog_ has joined the channel [01:42] k1ttty_ has joined the channel [01:42] franksalim has joined the channel [01:43] icewhite has joined the channel [01:44] piscisaureus_ has joined the channel [01:44] romain___ has joined the channel [01:45] papachan has joined the channel [01:47] Shrink has joined the channel [01:47] Shrink has joined the channel [01:53] jskulski has joined the channel [01:54] s_segawa has joined the channel [01:54] joshsmith has joined the channel [01:56] Mixmasterxp has joined the channel [01:56] hotchkiss has joined the channel [01:56] mraxilus has joined the channel [01:56] broofa has joined the channel [01:58] Mixmasterxp: I am using sockets.io with express, how can I move the sockets code to the route controller? for eg. http://pastebin.com/1twYZmWS [02:00] c4milo has joined the channel [02:00] h4mz1d has joined the channel [02:01] jacobolus has joined the channel [02:02] k1ttty has joined the channel [02:02] AviMarcus has left the channel [02:04] sh1mmer has joined the channel [02:04] mraxilus has joined the channel [02:05] enmand has joined the channel [02:07] r04r has joined the channel [02:08] CrisO has joined the channel [02:08] mraxilus has joined the channel [02:09] k1ttty_ has joined the channel [02:10] mraxilus has joined the channel [02:11] MrTrick has joined the channel [02:12] langworthy has joined the channel [02:12] r04r has joined the channel [02:13] dgathright has joined the channel [02:17] joshfinnie has joined the channel [02:17] r04r has joined the channel [02:17] Shrink has joined the channel [02:17] k1ttty has joined the channel [02:18] Aria has joined the channel [02:21] mraxilus has joined the channel [02:22] r04r has joined the channel [02:22] r04r has joined the channel [02:22] jacobolus has joined the channel [02:23] mraxilus has joined the channel [02:24] CarterL has joined the channel [02:24] mraxilus has joined the channel [02:25] mraxilus has joined the channel [02:26] boltR has joined the channel [02:27] r04r has joined the channel [02:27] daleharvey: has anyone got a pointer to a nicely laid out web app written in node? [02:27] mraxilus has joined the channel [02:28] samsonjs has joined the channel [02:29] astropirate has joined the channel [02:30] hotchkiss: I'm working on something now that's laid out pretty neatly. [02:30] sorensen__ has joined the channel [02:30] westc: joshsmith, you here? [02:31] hotchkiss: you can just ignore bin & test to make it clearer - https://github.com/edwardhotchkiss/mongodb-viewer [02:32] joshsmith: westc: yeah [02:34] CIA-101: node: 03isaacs 07v0.6 * r4afc46d 10/ (27 files in 6 dirs): Upgrade V8 to 3.6.6.19 - http://git.io/Q5qATw [02:34] mikeal has joined the channel [02:35] patcito has joined the channel [02:37] jsurfer has joined the channel [02:38] BillyBreen has joined the channel [02:38] Skaag has joined the channel [02:38] doitian has joined the channel [02:39] sanitypassing has joined the channel [02:39] sanitypassing: node is failing to compile. On the 'make' process, it returns "/usr/bin/ld: cannot find -lz", and it is Error #2. Does this mean I am missing a dependency? [02:40] isaacs: Test, please: http://nodejs.org/dist/v0.6.8-RC/node-v0.6.8-RC1.tar.gz [02:40] Aria: Yes -- you need zlib. [02:40] sanitypassing: Aria: I'm missing zlib? [02:40] yozgrahame has joined the channel [02:40] sanitypassing: I wonder how that happened. [02:40] Caboose_ has joined the channel [02:40] isaacs: yeah, me too. [02:40] isaacs: that's odd... [02:40] Skaag has joined the channel [02:40] sanitypassing: this is a fresh Debian system [02:40] sanitypassing: Odd.. [02:40] isaacs: sanitypassing: what version of node you trying to compile? [02:41] Aria: zlib is part of debian base. But the headers are not installed by default. [02:41] sanitypassing: isaacs: latest from the git repo. [02:41] Aria: so install zlib-dev [02:41] isaacs: sanitypassing: ah, hm. that's a bug. it should be building based on the bundled zlib in deps. [02:41] sanitypassing: Aria: Doesn't have an installation candidate. [02:41] mraxilus has joined the channel [02:41] isaacs: sanitypassing: does http://nodejs.org/dist/v0.6.8-RC/node-v0.6.8-RC1.tar.gz work for you? [02:42] isaacs: (watch as i turn your bug report into a way to get you to do my bidding... mwahaha!) [02:42] sanitypassing: Lemme download and untar it [02:43] sanitypassing: isaacs: it's node source? [02:43] isaacs: sanitypassing: yeah [02:43] sanitypassing: isaacs: Alright. [02:43] sanitypassing: isaacs: Fails on ./configure [02:43] isaacs: sanitypassing: almost done with the 0.6.8 release. [02:43] isaacs: sanitypassing: well, that's messed. [02:43] isaacs: sanitypassing: gist output? [02:43] isaacs: or pastie or whatever you prefer [02:43] sanitypassing: Alright [02:44] sanitypassing: isaacs: https://gist.github.com/1644631 [02:45] isaacs: sanitypassing: yeah, ok, same deal. sudo apt-get install openssl-dev, i think [02:45] isaacs: sorry, no: libssl-dev [02:45] isaacs: and zlib-dev [02:45] sanitypassing: Sure, just a moment. [02:45] isaacs: we ought to really use the bundled versions, though. otherwise that's just silly to bundle them. [02:45] tornad has joined the channel [02:46] sanitypassing: isaacs: well, could my system architecture have caused it to fail? [02:46] sanitypassing: (x86-64) [02:46] isaacs: sanitypassing: nono, because we bundle the source [02:46] isaacs: sanitypassing: we should just build it, like we do v8 [02:46] sanitypassing: Ah, I see. [02:46] alystair has joined the channel [02:46] jacobolus has joined the channel [02:47] sanitypassing: isaacs: zlib-dev does not have a release candidate [02:47] Shrink has joined the channel [02:47] Shrink has joined the channel [02:47] sanitypassing: But ./configure works now. [02:47] isaacs: sanitypassing: that's odd. [02:47] isaacs: sanitypassing: well... make won't :) [02:47] isaacs: (i'm guessing) [02:47] sanitypassing: I'm testing that now. :) [02:48] mraxilus has joined the channel [02:48] mraxilus has joined the channel [02:49] rtgibbons has joined the channel [02:49] sanitypassing: isaacs: it built [02:49] sanitypassing: and runs fine. [02:50] sanitypassing: (the git repo version) [02:50] mraxilus has joined the channel [02:50] isaacs: sweet [02:50] mraxilus has joined the channel [02:50] sanitypassing: indeed. P) [02:50] sanitypassing: :) [02:51] sanitypassing: now if you'll excuse me, I have to get back to configuring this system. :) [02:51] sanitypassing has left the channel [02:51] medice: i predict sad time for internet to come [02:51] mraxilus has joined the channel [02:51] tuhoojabotti: im sick [02:51] medice: same [02:52] mraxilus has joined the channel [02:53] tkaemming has joined the channel [02:54] mraxilus has joined the channel [02:56] sharkbird has joined the channel [02:58] WRAz has joined the channel [02:59] WRAz: heyo, anyone have any experience with mongoskin? [02:59] WRAz: it claims to implement futures, which it does, but not for everything. [02:59] TN has joined the channel [02:59] pradeebv has joined the channel [02:59] sarlalian has joined the channel [03:02] k1ttty has joined the channel [03:02] mraxilus has joined the channel [03:02] luke` has joined the channel [03:06] pyrotechnick has joined the channel [03:06] pyrotechnick1 has joined the channel [03:08] Twelve-60 has joined the channel [03:09] gavin_huang has joined the channel [03:09] fr0stbyte has joined the channel [03:09] johnmdonahue has left the channel [03:10] SteveDekorte has joined the channel [03:10] lwille has joined the channel [03:11] mraxilus has joined the channel [03:13] josephmoniz has left the channel [03:13] mraxilus has joined the channel [03:13] devongovett has joined the channel [03:13] hotchkiss has joined the channel [03:14] meso has joined the channel [03:14] jacobolus has joined the channel [03:17] Shrink has joined the channel [03:17] Shrink has joined the channel [03:17] esundahl has joined the channel [03:18] jkridner__ has joined the channel [03:20] zeade has joined the channel [03:20] mraxilus: for a basic node.js application which is better to use, mongodb, couchdb, or something else entirely? [03:21] Aria: Depends. What is your application doing? [03:21] jsurfer has joined the channel [03:21] mraxilus: chat application [03:21] mraxilus: it just needs to store user details, messages, etc. [03:21] Aria: Long term or short term storage? [03:22] mraxilus: short term mainly, with an option to store logs. [03:22] Aria: So some of each. [03:23] mraxilus: 0.o [03:23] Aria: Mongo has pretty good write performance. With logs, your load is write-heavy. [03:23] esundahl has joined the channel [03:23] Aria: Couch I have no experience with, though I know its magic sauce is partly in the syncing and conflict resolution. [03:23] Aria: Which probably gets you nothing in this case. [03:23] Aria: Redis is another interesting option -- it's good for online data sets, where you're accessing a lot of live data. [03:23] chadskidmore has joined the channel [03:23] Aria: Like the live part of chat. [03:24] mraxilus: I see. [03:25] Aria: (I might use redis + plain files for logging.) [03:25] mraxilus: so proably redis for short term, and mongo for logs? [03:25] grom358 has joined the channel [03:25] Aria: That'd work well. How big are you trying to scale? [03:25] Aria: (It may be that you don't have to care much) [03:25] Aria: (in which case, choose one rather than two.) [03:26] mraxilus: Hmm, i really hate decisions like this. lol [03:27] Aria: Hehe. The real trick is to understand what sort of access patterns you need. [03:27] Aria: It's not node that dictates what to use, it's the access patterns and data that do. [03:28] Libra102 has joined the channel [03:29] pradeebv has joined the channel [03:31] jacobolus has joined the channel [03:31] mattgifford has joined the channel [03:31] warz has joined the channel [03:31] warz has joined the channel [03:32] richardr has joined the channel [03:38] pradeebv has joined the channel [03:39] skm has joined the channel [03:39] JoshuaJ_ has joined the channel [03:40] fairwinds has joined the channel [03:41] mikeal has joined the channel [03:41] tmcw has joined the channel [03:43] maru_cc has joined the channel [03:44] tilgovi has joined the channel [03:47] Shrink has joined the channel [03:49] sharkbird has joined the channel [03:49] user__ has joined the channel [03:50] avalanche123 has joined the channel [03:50] Vennril has joined the channel [03:52] jsurfer has joined the channel [03:55] CIA-101: node: 03isaacs 07v0.6 * rd18ceba 10/ (6 files in 4 dirs): (log message trimmed) [03:55] CIA-101: node: 2012.01.19, Version 0.6.8 (stable) [03:55] CIA-101: node: * Update V8 to 3.6.6.19 [03:55] CIA-101: node: * Numeric key hash collision fix for V8 (Erik Corry, Fedor Indutny) [03:55] CIA-101: node: * Add missing TTY key translations for F1-F5 on Windows (Brandon Benvie) [03:55] CIA-101: node: * path.extname bugfix with . and .. paths (Bert Belder) [03:55] CIA-101: node: * cluster: don't always kill the master on uncaughtException (Ben [03:56] mattgifford has joined the channel [03:59] neoesque has joined the channel [03:59] nibblebot has joined the channel [04:00] DarkGlass has joined the channel [04:00] caludio has joined the channel [04:00] pradeebv has joined the channel [04:01] isaacs: retweet every tweet! https://twitter.com/#!/nodejs/status/160210072805453824 [04:01] tbranyen: cluster: don’t always kill the master on uncaughtException (Ben Noordhuis) [04:01] tbranyen: heh don't "always"? [04:01] tbranyen: only sometimes? [04:01] tbranyen: arbitrarily kill the master [04:02] Commando has joined the channel [04:03] tilgovi_ has joined the channel [04:04] nibblebot has joined the channel [04:04] dr0id has joined the channel [04:05] counterbeing has joined the channel [04:05] isaacs: tbranyen: it keeps the master on its toes. [04:05] nibblebot has joined the channel [04:05] isaacs: tbranyen: it's like in v for vendetta, you know? governments should fear their people. [04:06] tbranyen: ^_^ [04:06] isaacs: tbranyen: actually, now we only kill the master if there wasn't some other uncaughtException handler. [04:06] jacobolus has joined the channel [04:06] tbranyen: ah okay [04:06] isaacs: since we add one, it was preventing the master from crashing, so we'd crash it, but now we check for others. [04:06] tbranyen: i <3 cluster and readline, been using both to restart/refresh my server [04:06] sharkbird has joined the channel [04:06] monteslu has joined the channel [04:07] jakehow has joined the channel [04:08] tlrobinson has joined the channel [04:08] mikeal has joined the channel [04:10] zilch_ has joined the channel [04:10] Gekz has joined the channel [04:10] Gekz has joined the channel [04:11] jtsnow has joined the channel [04:12] maletor has joined the channel [04:13] grom has joined the channel [04:14] PhilK has joined the channel [04:15] clu3 has joined the channel [04:15] torm3nt has joined the channel [04:15] WRAz: hmm, having trouble getting stdout from child node procs [04:16] jstash has joined the channel [04:16] clu3 has joined the channel [04:17] mikeal has joined the channel [04:21] gigafied has joined the channel [04:22] jacobolus has joined the channel [04:24] martin_sunset has joined the channel [04:24] MrTopf has joined the channel [04:25] shadowshell has joined the channel [04:26] HardBit has joined the channel [04:28] ryan_stevens has joined the channel [04:30] zitchdog has joined the channel [04:31] Me1000 has joined the channel [04:31] gwoo has joined the channel [04:32] blueadept has joined the channel [04:35] zemanel has joined the channel [04:35] ovnicraft has joined the channel [04:37] johnmdonahue has joined the channel [04:38] jj0hns0n has joined the channel [04:38] jsurfer has joined the channel [04:41] zilch_ has joined the channel [04:46] jacobolus has joined the channel [04:48] perezd has joined the channel [04:49] willwhite has joined the channel [04:49] tkaemming has joined the channel [04:49] SuMarDi has joined the channel [04:52] Init--WithStyle- has joined the channel [04:52] Init--WithStyle-: NPM is awesome [04:52] Commando: yes [04:52] clutchski has joined the channel [04:53] bartt has joined the channel [04:53] mandric has joined the channel [04:54] bLUEEE has joined the channel [04:55] jacobolus has joined the channel [04:56] SubStack: Init--WithStyle-: correct. [04:56] Init--WithStyle-: I can't imagine how much pain it has saved me from [04:56] secoif has joined the channel [04:57] grom: does the exit event get called when the server is shutdown with ctrl-c? [04:57] avalanche123 has joined the channel [04:58] dshaw_ has joined the channel [04:59] cameronz has joined the channel [05:00] ChrisPartridge: grom: dont thinkso [05:01] kmiyashiro has joined the channel [05:02] Bogh has joined the channel [05:02] disappearedng has joined the channel [05:04] Init--WithStyle-: exit event is usually only emitted on spawned children i think.. [05:04] cameronz: yeah.. i just testing it and it doesn't seem so [05:04] grom358: see I want to hook in when the server gets shutdown to dump stuff to a file [05:05] grom358: then I don't need a database.. can just keep it in RAM [05:05] torm3nt: that's dangerous [05:06] torm3nt: what if it segfaults or you get a hard crash? [05:06] grom358: well I was just gonna periodically dump it too [05:06] torm3nt: you might want to look into something like redis [05:06] torm3nt: which is an in-memory data store, with regular backups to disk [05:06] grom358: ah.. that basically all I need [05:07] grom358: i don't even need query ability or anything [05:07] willwhite has joined the channel [05:07] grom358: just a javascript object [05:08] infynyxx has joined the channel [05:09] jacobolus has joined the channel [05:10] grom358: mmm.. even redis almost feels like overkill [05:10] lwille has joined the channel [05:14] joshfinnie has joined the channel [05:15] CIA-101: node: 03isaacs 07v0.6 * rec1d1ee 10/ src/node_version.h : Now working on 0.6.9 - http://git.io/CyKjvg [05:16] zeade has joined the channel [05:16] pradeebv_ has joined the channel [05:17] postwait has joined the channel [05:18] nodenewb has joined the channel [05:19] tshpaper has joined the channel [05:20] fairwinds has joined the channel [05:21] Aria: Hey, dumping an object works! [05:21] Aria: I'd do that if that's all you need. [05:22] theBrettman: i can haz js.vim? [05:22] ryan_stevens has left the channel [05:23] tbranyen: theBrettman: you mean one that doesn't suck? [05:24] theBrettman: yes plox [05:24] texinwien has joined the channel [05:26] yolin has joined the channel [05:26] niloy__ has joined the channel [05:27] kmiyashiro_ has joined the channel [05:28] blueadept has joined the channel [05:29] theBrettman: one that doesn't indent 8 spc [05:30] theBrettman: or hard tab that is [05:31] mxbtty has joined the channel [05:32] jacobolus has joined the channel [05:32] nibblebot has joined the channel [05:34] Sami_ZzZ has joined the channel [05:34] theBrettman: vimrc? [05:34] devaholic has joined the channel [05:35] descipher_ has joined the channel [05:36] theBrettman: nvm, don't like those colors [05:38] raincole_ has joined the channel [05:42] grom358: so besides redis, sqlite or something like that. Any other solutions. Basically I just want to persist a javascript object between server reboots/crashes [05:43] confoocious has joined the channel [05:44] e6nian has joined the channel [05:47] dnjaramba has joined the channel [05:48] criswell has joined the channel [05:48] Aria: write a json object to a file, mongo, couch [05:48] wdbl has joined the channel [05:49] jacobolus has joined the channel [05:50] grom358: Aria: yeah I was thinking use setTimeout that does fs.writeFile that schedules it again in the callback [05:50] Aria: Not bad if you have the RAM to buffer the object. [05:52] maru_cc has joined the channel [05:54] __doc__ has joined the channel [05:55] gigafied: anybody know of a way to run npm.commands.link() (i.e. programatically) on a directory that is not the cad? [05:55] wankdanker has joined the channel [05:55] gigafied: cwd* [05:57] keeto has joined the channel [05:58] SebastianFlyte has joined the channel [05:59] grom has joined the channel [05:59] grom: yeah.. but is there a way I can hook into when the node instance is shutting down (ala via ctrl-c)? [06:00] domino14 has joined the channel [06:02] dubenstein has joined the channel [06:03] pilgo has joined the channel [06:03] secoif has joined the channel [06:03] pilgo: Hi all. I'm trying to use mongodb and mongoose. I installed mongodb using npm but I'm not sure how to "start" it and what not. [06:05] mraleph1 has joined the channel [06:05] r04r has joined the channel [06:06] margle has joined the channel [06:06] cjm has joined the channel [06:06] hemanth has joined the channel [06:08] mape has joined the channel [06:10] nerdfiles1 has joined the channel [06:10] nerdfiles1 has left the channel [06:11] r04r has joined the channel [06:11] jacobolus has joined the channel [06:13] sergiosanche has joined the channel [06:16] r04r has joined the channel [06:16] Caboose_ has joined the channel [06:17] SebastianFlyte has joined the channel [06:20] JoshuaJ_ has joined the channel [06:24] infynyxx has joined the channel [06:24] literal_username has left the channel [06:25] MrTopf has joined the channel [06:25] _dc has joined the channel [06:26] jxson has joined the channel [06:27] zilch_ has joined the channel [06:28] cache_za has joined the channel [06:28] tytsim has joined the channel [06:28] patcito has joined the channel [06:32] gavin_hu_ has joined the channel [06:33] joshwines has joined the channel [06:33] BillyBreen has joined the channel [06:35] lucidstudios has joined the channel [06:35] lucidstudios has left the channel [06:35] mikeal has joined the channel [06:38] fangel has joined the channel [06:43] yawNO has joined the channel [06:44] domino14 has left the channel [06:49] tornad has joined the channel [06:50] dodo has joined the channel [06:51] xreload has left the channel [06:52] lucidstudios has joined the channel [06:52] wedtm has joined the channel [06:57] SamuraiJack has joined the channel [06:59] josh-k has joined the channel [06:59] HardBit: How create IRC Bot with Node.js (Spanish) http://hard-bit.net/blog/creando-un-irc-bot-usando-conexiones-tcp-con-nodejs [07:00] Draggor has joined the channel [07:01] p1d has joined the channel [07:04] spolu has joined the channel [07:06] gf3: HardBit: :( https://github.com/gf3/IRC-js [07:07] HardBit: gf3: :O [07:07] mehlah has joined the channel [07:08] ryan_stevens has joined the channel [07:08] jsurfer has joined the channel [07:08] HardBit: gf3: it's great. but my post, trying show the use of node.js (tcp connections) ;) [07:09] gf3: of course [07:10] infynyxx has joined the channel [07:12] MrTrick has joined the channel [07:13] runvnc has joined the channel [07:14] Locke23rus has joined the channel [07:15] runvnc: Has anyone else tried calling the Rackspace create server api and randomly received a 404 item not found, then use the same call and it works later on? [07:15] runvnc: I got a new one today 400 bad request. Ran the exact same script tonight 'manually', no problem. [07:17] blueski3s has joined the channel [07:17] blueski3s: hey guys, favorite node hosting service? [07:17] joshfinnie has joined the channel [07:18] mh415 has joined the channel [07:18] runvnc: I think several of the people that hang out on here maintain their own hosting services blueski3s [07:18] npa has joined the channel [07:18] aesptux has joined the channel [07:18] npa has joined the channel [07:19] blueski3s: runvnc: fair enough. what do you use? [07:19] runvnc: Like nodejitsu guys are on here, joyent, etc. [07:19] runvnc: I made my own [07:19] runvnc: to be honest I built it off of nodejitsu's software which they nicely open sourced [07:20] runvnc: I'm not really ready to advertise mine again though. I need to add git deployment. [07:20] kuebk has joined the channel [07:20] gf3: blueski3s: heroku is also simple [07:21] blueski3s: gf3: yes, but heroku requires 0.4.7 according to their docs (which is sooo behind the times haha) [07:21] blueski3s: this is cedar stack, of course [07:21] runvnc: plus randomly rackspace gives me an error when I call their create server api call [07:21] gf3: blueski3s: you can use buildpacks to use newer versions of node [07:21] runvnc: but then tonight does not [07:22] gf3: blueski3s: http://quickleft.com/blog/hacking-heroku-with-custom-build-packs [07:22] runvnc: blueski3s mine is cure.willsave.me.. basically its a VPS that I configured and installed node.js 0.6.2, mongodb, couchdb, redis and coffeescript and a few other things [07:23] runvnc: so I don't have git deployment yet though so its up to you to ssh in or use whatever to transfer the files [07:23] zomg: I run mine on a linode vps, works alright and I can run other things there too (like this irc client) [07:23] runvnc: I would have built this service on linode if they had a 256mb server for 11 bucks a month like rackspace [07:24] zomg: interesting, I thought rackspace was kinda expensive :P [07:24] blueski3s: i feel like i'm back in 2008 with rails [07:24] blueski3s: :D [07:25] blueski3s: using linode again is a dirty, dirty feeling [07:25] runvnc: They have a managed vps service which is pricey [07:25] zomg: Not as dirty as when you work with PHP stuff [07:25] zomg: All the damn random webhosts [07:25] pity has joined the channel [07:25] zomg: With just FTP [07:25] zomg: Uooogh kill me now [07:25] blueski3s: i said 08 not 04. lol [07:25] zomg: hehe [07:26] Lorentz: Ugh, I still deal with webhosts due to my parents [07:26] Lorentz: mysql 4.0 [07:26] unomi: anyone with cloudno.de here? [07:26] Lorentz: php 4 [07:26] runvnc: lorentz disown them? [07:26] runvnc: there was a guy who kept trying to make me put his websites on godaddy [07:26] runvnc: I don't talk to him anymore [07:27] mh415: Node is a first-class citizen in Azure: http://www.windowsazure.com/en-us/develop/nodejs/ Disclosure: I work there. :) [07:27] alystair: mh415 - for azure or ms, if for MS I got a question [07:27] HardBit: i write a app with nodejs in azure =S [07:27] runvnc: So pretty much 1 in 2 people on this channel are part of a team providing node.js hosting or some such [07:27] HardBit: and C# of course [07:27] mh415: I work at Microsoft. [07:28] runvnc: That's the nice thing about freenode [07:28] mh415: What's your question? Happy to try to answer. [07:28] runvnc: Its so tolerant and polite [07:28] runvnc: I bet if this were #node.js on efnet [07:28] HardBit: =/ [07:28] runvnc: the microsoft guy would be banned [07:28] runvnc: j/k [07:28] mh415: wha?!? :P [07:29] russfrank has joined the channel [07:29] mh415: Lots of love for Node at Microsoft. [07:29] kenperkins: mh415: i left MS not too long ago ;) [07:29] mh415: I just got here. Well, 8 months now. I still feel new. [07:29] pity has joined the channel [07:29] kenperkins: lol that's about when I left [07:30] kenperkins: btw, what do people think of exponential reconnection delay [07:30] kenperkins: I'm working on a papertrail transport for winston, and I want to gracefully handle trying to re-establish the connection [07:31] jesusabdullah: runvnc: Way more than that XD [07:32] runvnc: lol [07:33] jesusabdullah: jesus nearly 700 nicks in here [07:33] mikeal has joined the channel [07:33] tornad has joined the channel [07:35] margle has joined the channel [07:35] mh415: kenperkins: were you in Redmond? [07:35] kuebk1 has joined the channel [07:35] kenperkins: well, bellevue, seattle, and before that redmond, yea [07:35] kenperkins: sup jesusabdullah [07:35] mh415: I went to a Node meetup tonight, and they gave out free webOS phones. Nice swag. [07:36] shellox has joined the channel [07:36] petrjanda has joined the channel [07:36] luke` has joined the channel [07:36] xetorthio has joined the channel [07:37] shellox: hi, anyone is running dust.js? I still try to figure out how it works.. [07:37] deoxxa: shellox: i was, but it's no longer developed [07:37] runvnc: So no one else got a random 404 or 400 from rackspace create server api? [07:37] shellox: deoxxa: i try to figure out how it works [07:38] kenperkins: runvnc: ever? or just now [07:38] runvnc: ever [07:38] shellox: if i undestand it right then you need a server which render the templates? [07:38] runvnc: I got my first 400 bad request from a create server api call at 3:42 pm today [07:38] runvnc: then I ran the exact same script 'manually' tonight [07:38] kenperkins: i get garbage from them occaisonally [07:38] runvnc: and it didn't give any error [07:38] runvnc: I was getting 404s [07:39] runvnc: so now my script checks for that and retries [07:39] runvnc: their sys admin said it was a known issue (404) and to just retry [07:39] shellox: deoxxa: what are you using today? [07:39] runvnc: but I didn't know about the 400s [07:39] slaskis has joined the channel [07:39] methodT has joined the channel [07:40] deoxxa: shellox: https://github.com/deoxxa/node-ginger :) [07:41] NothingMan65 has joined the channel [07:41] NothingMan65: Goood morninä [07:41] deoxxa: and a good mornina to you [07:41] jacobolus has joined the channel [07:41] NothingMan65: (== [07:42] christkv has joined the channel [07:42] ph^ has joined the channel [07:42] shellox: deoxxa: how to setup a dust.js server if i want precompiled templates which the client should load then? [07:43] deoxxa: i wrote https://github.com/deoxxa/dusty to do just that [07:43] deoxxa: there's also duster.js [07:44] deoxxa: take a look at: https://github.com/dmix/dusterjs [07:44] deoxxa: they work a little differently [07:44] emattias has joined the channel [07:44] shellox: deoxxa: i mean how to serve the templaes to the client? can i use it together with express? [07:45] wmage has joined the channel [07:45] shellox: a normal template is rendered and served then [07:46] NothingMan65: I am profoundly confused as to how I "should" approach this problem. [07:46] NothingMan65: Right now I have an npm package which I've created in its own git repo... [07:46] FIQ has joined the channel [07:46] deoxxa: shellox: for that i was using https://github.com/davglass/express-dust [07:46] NothingMan65: And I want to add it as a plugin to a custom framework which is also a node module. [07:47] NothingMan65: But I don't want to copy/paste the code and desync the repos... Should I use a git submodule in this case? [07:47] Qbix2 has joined the channel [07:47] Skola has joined the channel [07:47] deoxxa: NothingMan65: i'd use an npm dependency - is there a reason why you don't want to? [07:47] Qbix2: hi [07:47] Qbix2: what is the latest node version [07:48] skm has joined the channel [07:48] NothingMan65: Well, the "custom framework" is not an npm package right now.. Although it could become. [07:48] deoxxa: Qbix2: you really found it easier to join an irc channel than to look on the website? [07:48] Qbix2: just making conversation [07:48] NothingMan65: Maybe Qbix2 just wants to talk to you deoxxa (= [07:49] Qbix2: Would you rather I be known as Qbix1? :) [07:49] deoxxa: nobody just wants to talk to me - i'm a jerk! [07:49] Qbix1: I see. [07:49] Qbix1: Well I don't know that! [07:49] enobrev has joined the channel [07:49] chjj has joined the channel [07:49] NothingMan65: You are in the process of contemplating my problem so by no means do I conceive you to be a jerk. [07:49] Qbix1: What is the question that I am going to ask? [07:49] Qbix1: Can I ask to ask it? [07:49] deoxxa: NothingMan65: you can still use package.json to install your dependencies [07:49] runvnc: On EFNet no one would try to help qbix2. He would be bad-mouthed by three people simultaneously and then banned. [07:50] Qbix1: runvnc: yes, you know EFnet well. [07:50] Qbix1: Does it still work like that? [07:50] anrope has joined the channel [07:50] runvnc: no I'm not bitter about anything that ever happened to me on efnet [07:50] runvnc: LOL [07:50] Qbix1: :) Welcome to every channel on EFnet [07:50] NothingMan65: Okay, so simply. Setup a proxy plugin in the custom framework requiring my already built plugin via package.json? [07:50] kenperkins has joined the channel [07:50] NothingMan65: lol "Okay, so simply" [07:51] NothingMan65: Great sentence. [07:51] deoxxa: is the plugin on npm? [07:51] runvnc: Well realistically its not _that_ different on freenode although people are more polite because a lot of them are geniuses and have better things to waste their energy on than flaming people on irc who annoy them. [07:51] rendar has joined the channel [07:51] NothingMan65: Yeah, the "finished plugin is on npm" [07:51] Qbix1: Hey guys whatever happened to that "node balancer" or whatever they call it, that YAHOO was using and then Express I think put into their code [07:51] deoxxa: ah ok, cool [07:51] Qbix1: basically running several Node processes at once and having a load balancer? [07:51] Qbix1: where they figured out how to share socket file descriptors instead of opening new ones? [07:51] deoxxa: NothingMan65: does the module need to go somewhere special, or will it work in node_modules? [07:51] Qbix1: for IPC? [07:51] anrope: I was trying to track down the exact javascript version that node-v0.6.8 implements, but I couldn't even find out what version of javascript v8 implements. My real question is: node.js doesn't support comprehensions, right? [07:51] Qbix1: does node have it built in now? [07:52] Qbix1: I think it was called fugue before, or something [07:52] runvnc: Does the new cluster functionality share socket file descriptors? [07:52] groom has joined the channel [07:52] Qbix1: Yes, that's what I am basically asking about, the cluster functionality? I guess [07:52] maletor has joined the channel [07:52] robotmay has joined the channel [07:53] Qbix1: where are the docs on it? [07:53] stagas has joined the channel [07:53] mange has joined the channel [07:53] NothingMan65: deoxxa, Well, the "custom framework" has a ./plugins folder, and a .node_modules/ folder. The proxy plugin will be in the ./plugins folder. I can of course add a package.json which requires the dependency in ../../node_modules, right? Or can I specify where the dependency should be installed? [07:53] Qbix1: http://nodejs.org/docs/v0.6.0/api/cluster.html [07:53] deoxxa: ah, no, you can't specify where to install it to [07:53] Qbix1: can this be used for load balancing somehow? [07:53] NothingMan65: Ok [07:54] deoxxa: sounds like you want a git submodule [07:54] NothingMan65: Ok [07:54] deoxxa: however! [07:54] runvnc: anrope comprehensions? you mean like coffeescript has [07:54] deoxxa: we had a similar system at work, but abandoned it in favour of just installing stuff to node_modules [07:54] mikeal has joined the channel [07:54] deoxxa: it made things a lot easier for us [07:54] NothingMan65: Ah. [07:54] deoxxa: but your use-case may be different [07:54] anrope: runvnc, probably. I was thinking python. [07:54] runvnc: I think load balancing generally refers to running multiple servers rather than multiple process qbix1 [07:54] NothingMan65: Most likely a more simple use case. [07:54] anrope: runvnc, I just want to verify that node.js itself doesn't support comprehensions. [07:55] deoxxa: yeah, the only people using it are developers as well, so we didn't have to worry about them complaining if they broke things [07:55] runvnc: http://coffeescript.org/#loops [07:56] Qbix1: okay but in any case, the question is [07:56] Qbix1: how do they share the port [07:56] jacobolus has joined the channel [07:56] Qbix1: what actually happens? [07:56] Qbix1: does a request always hit the same worker, or any workers? [07:56] Qbix1: I mean request from same client [07:56] NothingMan65: Ideally the npm module should have the ability to be used standalone via npm in any node application, OR with the custom framework. But it might be best to require an installation of the npm plugin and reference the node_modules folder from the plugin. Then we avert the submodule scenario. [07:56] _shorinji_ has joined the channel [07:56] Qbix1: do they share file descriptors? [07:56] Qbix1: is it documented somewhere? [07:57] dannyamey has joined the channel [07:58] runvnc: I think it would be in the node.js source code qbix1 [07:58] runvnc: but why is that important [07:58] runvnc: exactly how its implemented [07:58] mh415: Qbix1: this? http://nodejs.org/docs/v0.6.0/api/cluster.html [07:58] runvnc: If you are trying to do load balancing there are a bunch of modules and stuff for that if you search for node.js load balancing [07:58] NothingMan65: So the custom framework plugin in ./plugins will have a package.json which has a dependency on the npm module. Then, I can do require('../../node_modules/mymodule'); [08:00] runvnc: er nevermind me the cluster example is the first thing to try before going to random node modules that were made before that came out [08:00] yawNO has joined the channel [08:02] fangel has joined the channel [08:02] emattias_ has joined the channel [08:05] mattgifford has joined the channel [08:05] insin has joined the channel [08:05] huggies has joined the channel [08:05] sdwrage has joined the channel [08:05] hipsters_ has joined the channel [08:06] incon has joined the channel [08:08] petrjanda has joined the channel [08:08] Morkel has joined the channel [08:08] xbayrockx: What mysql server could I use for a nodejs app [08:08] deoxxa: the only... mysql... server? [08:09] deoxxa: if you really wanted to be different, you could use percona or drizzle or something [08:09] deoxxa: but i'd recommend just going with regular old mysql if you're asking questions like "what mysql server" [08:10] Hanspolo has joined the channel [08:10] amigojapan has joined the channel [08:11] djcoin has joined the channel [08:12] amigojapan has joined the channel [08:12] pors has joined the channel [08:13] dob_ has joined the channel [08:13] jetienne has joined the channel [08:13] kickingvegas has joined the channel [08:17] klaustsen has joined the channel [08:17] keeto has joined the channel [08:18] raphdg has joined the channel [08:19] ppcano has joined the channel [08:20] evadnoob has joined the channel [08:23] emattias has joined the channel [08:23] LeMike has joined the channel [08:23] misza222 has joined the channel [08:24] cjm has left the channel [08:25] maletor has joined the channel [08:25] boltR has joined the channel [08:25] MrTopf has joined the channel [08:25] amasad has joined the channel [08:27] `3rdEden has joined the channel [08:28] lperrin has joined the channel [08:30] neshaug has joined the channel [08:30] jarek has joined the channel [08:30] jarek has joined the channel [08:30] Bogh has joined the channel [08:33] stonebranch has joined the channel [08:33] doitian has joined the channel [08:34] [AD]Turbo has joined the channel [08:34] [AD]Turbo: hi there [08:37] garrensmith has joined the channel [08:37] spolu has joined the channel [08:38] cosmincx has joined the channel [08:38] cesconix has joined the channel [08:39] whitman has joined the channel [08:42] boltR has joined the channel [08:42] NothingMan65 has joined the channel [08:43] NothingMan65: Hey again everyone! Lovely day for a chat! (= [08:43] johnhamelink has joined the channel [08:43] jacobolus has joined the channel [08:43] NothingMan65: Anywho. Is it possible to somehow force "npm install" to search for dependencies recursively? That is, search for package.json in subdirectories and install all dependencies found? [08:45] jonaslund has joined the channel [08:45] prettyrobots has joined the channel [08:46] jacobolus has joined the channel [08:47] deoxxa: NothingMan65: https://gist.github.com/1646184 [08:47] keeto has joined the channel [08:47] deoxxa: NothingMan65: we use that at work to install dependencies - just don't run it twice or you'll end up installing a -lot- of stuff [08:47] deoxxa: aaaand now i'm going to go out. bye! [08:49] mikeal has joined the channel [08:50] yawNO has joined the channel [08:51] icebox has joined the channel [08:51] salva has joined the channel [08:55] sindresorhus has joined the channel [08:56] sdwrage has left the channel [08:56] i42n has joined the channel [08:57] level09 has joined the channel [08:59] Aiden has joined the channel [09:00] margle has joined the channel [09:00] garrensmith: morning [09:01] aliem has joined the channel [09:02] NothingMan65: Goooood morning [09:03] NothingMan65: Is there anyway to run "npm install" and look for all "package.json" files in all subdirectories and install all dependencies mentioned? [09:03] screenm0nkey_ has joined the channel [09:04] hipsters_ has joined the channel [09:05] prettyrobots has joined the channel [09:05] pradeebv has joined the channel [09:06] janeUbuntu has joined the channel [09:08] kickingvegas has left the channel [09:08] davetayls has joined the channel [09:08] tokumine has joined the channel [09:09] slaskis has joined the channel [09:09] Provito has joined the channel [09:09] jesusabdullah: NothingMan65: It installs sub-deps by default for a project as long as it can find the first package.json [09:11] jetienne has joined the channel [09:11] NothingMan65: Right, but if the user doesn't have a package.json in their app root dir, then it won't work. In addition, if the module I am creating is not available via npm but requires a different module which IS available via npm, then the root package.json can't bee used for that. [09:12] tilgovi has joined the channel [09:14] TomY has joined the channel [09:14] icebox: NothingMan65: well... a script with "find" may resolve the issue [09:14] robhawkes has joined the channel [09:15] Wizek has joined the channel [09:15] jesusabdullah: NothingMan65: bundledDependencies, brah [09:16] jesusabdullah: also I think you can use private git repos [09:16] NothingMan65: Hmm, maybe I described it incorrectly. https://github.com/isaacs/npm/issues/1341 [09:16] jesusabdullah: or at least there's a hack to make it work [09:16] lzskiss has joined the channel [09:17] mattgifford has joined the channel [09:17] geoKe has joined the channel [09:17] jesusabdullah: Yup, git+ssh in the package.json [09:18] jesusabdullah: It works best if you have ssh-agent hooked up but once that's there it works pretty well! [09:18] icebox: NothingMan65: I think 1341 is a different case [09:18] Nss has joined the channel [09:20] NothingMan65: Hmm. I'm don't quite understand. I have a custom framework plugin (proxy) not available via npm, which resides in 'nodeApp/plugins/proxy'. [09:20] mattgiff_ has joined the channel [09:21] NothingMan65: proxy requires another plugin which IS available via npm (real). [09:22] NothingMan65: proxy is optional when using the custom framework. Users should only have to copy the folder 'proxy' into their 'nodeApp/plugins/' folder and run 'npm install' from the 'nodeApp/' root for everything to work as planned. [09:23] vguerra has joined the channel [09:23] NothingMan65: I have a 'package.json' in the 'proxy/' folder which has a dependency pointing to 'real'. But npm can't detect this since the plugin 'proxy' is not a dependency in root, and the plugin 'proxy' can't be installed via npm. [09:23] NothingMan65: Does that make sense? [09:24] endow has joined the channel [09:24] Commando has joined the channel [09:24] Commando: hi [09:26] agnat_ has joined the channel [09:26] Vespakoen has joined the channel [09:26] jesusabdullah: NothingMan65: you can directly reference a private git repo instead of a publically-packaged npm repository. That's what I'm trying to say. [09:27] jesusabdullah: You can also put the module in node_modules, add it to bundledDependencies and npm will also install its dependencies when you install the parent module [09:28] NothingMan65: Okay, so dynamically load the 'real' dependency via 'proxy' by using ssh and git. I think I git it now :) Are there any good examples of doing this correctly which you can think of offhand? [09:29] gregmoreno has joined the channel [09:29] sotosof has joined the channel [09:31] hoappppp has joined the channel [09:31] jldbasa has joined the channel [09:31] yawNO has joined the channel [09:32] fangel has joined the channel [09:32] jesusabdullah: npm's documentation [09:33] aaronmcadam has joined the channel [09:34] robotmay has joined the channel [09:35] mAritz has joined the channel [09:35] blup has joined the channel [09:36] markwubben has joined the channel [09:38] ohcibi has joined the channel [09:38] BigTee has joined the channel [09:39] swestcott has joined the channel [09:42] tanguito has joined the channel [09:43] savadi has joined the channel [09:50] mYkon has joined the channel [09:51] mYkon: anyone knows how to register on eventEmitter for all events? [09:51] mYkon: eventEmitter.on('*', function(){}); ? [09:51] mYkon: something similar :) [09:52] vvo has joined the channel [09:53] stagas has joined the channel [09:53] BigTee: oui, c'est la ista eventos nashicn [09:53] mYkon: maybe have to overwrite the eventEmitter.emit method... [09:57] christkv has joined the channel [09:57] staar2 has joined the channel [09:58] Shrink has joined the channel [09:58] ph^ has joined the channel [09:59] herbySk has joined the channel [10:00] jonaslund has joined the channel [10:00] mYkon has left the channel [10:01] MrBenn has joined the channel [10:03] christkv has joined the channel [10:03] Commando: hey how can i put if else command [10:03] kulor-uk has joined the channel [10:03] yawNO has joined the channel [10:04] amasad_ has joined the channel [10:05] fangel has joined the channel [10:05] eldios has joined the channel [10:07] evangenieur has joined the channel [10:07] yawNO has joined the channel [10:08] Druid_ has joined the channel [10:08] robi42 has joined the channel [10:08] tokumine has joined the channel [10:09] bengl has joined the channel [10:11] thalll has joined the channel [10:11] mAritz: AHAHAAAHAAHAHAAHHHHAAHAAHAAHAHAHAAHHA [10:11] mAritz: OMFG [10:11] mAritz: this is pure gold [10:11] mAritz: i so called it [10:11] mAritz: jesus christ [10:11] mAritz: who was it yesterday whom i told it? [10:12] hellp has joined the channel [10:13] mAritz: holy shit [10:13] mAritz: [12:00] maritz: Vespakoen: that'll cause him to copy+paste it and come back to ask how to do if a few seconds later... [10:13] mAritz: Vespakoen: it took more than a few seconds, but it happened! [10:14] cmr: mAritz: Hrm? [10:14] cmr: Commando: with a keyboard [10:14] mAritz: cmr: ^ [10:14] mAritz: [11:52] Commando: hey how can i create loop in jade file [10:14] mAritz: [12:00] Vespakoen: https://github.com/visionmedia/jade ctrl+f / cmd+f "iteration" enter [10:14] mAritz: and then what i pasted above [10:15] mAritz: yesterday [10:15] mAritz: <- god of prediction. [10:15] cmr: Oh, lol [10:16] k1ttty has joined the channel [10:17] Commando: very easy : Maritz [10:17] larsschenk has joined the channel [10:17] larsschenk has left the channel [10:18] LeMike has joined the channel [10:18] mAritz: what? [10:18] chjj: how did i miss this? https://github.com/tobeytailor/gordon [10:18] chjj: amazing [10:19] cmr: No way [10:19] cmr: It can't be [10:19] mAritz: chjj: last time i checked (ok, that was like half a year ago) it didn't work very well [10:19] chjj: mAritz: doesnt look like its been worked on for a while [10:19] chjj: still cool idea though [10:19] cmr: "...select Flash Player 1 or 2" [10:19] cmr: Wut [10:20] methodT_ has joined the channel [10:20] idefine_ has joined the channel [10:20] mAritz: yeah, sure. but given canvas and webgl, i don't think it's actually a useful idea. (of course if it'd run properly it'd be great to be able to play existing swf without flash) [10:20] cmr: Google already has something like that. [10:21] chjj: but it would be great, flash without the flash [10:21] cmr: http://www.google.com/doubleclick/studio/swiffy/ [10:21] HolyGoat has joined the channel [10:21] chjj: more secure than flash because it just uses your browsers js engine [10:21] chjj: if you need to use flash [10:21] lperrin: there was also something called smokescreen [10:22] chjj: i mean, if youre so unforunate to have to use flash for something, i should say [10:22] cmr: lperrin: Yeah, I tried looking at that and looks like the site is down [10:22] cgfuh has joined the channel [10:23] Apage43 has joined the channel [10:23] jbpros has joined the channel [10:25] jigmi has joined the channel [10:25] _shorinji_ has joined the channel [10:26] MrTopf has joined the channel [10:28] beevits has joined the channel [10:28] janekp has joined the channel [10:28] jbpros_ has joined the channel [10:29] Nss_ has joined the channel [10:29] yawNO has joined the channel [10:30] mAritz: lol: if you once hit the ball in the swiffy example you score. http://www.google.com/doubleclick/studio/swiffy/gallery/example4.html [10:30] Morkel has joined the channel [10:30] mAritz: it seems like the computer paddle is moving too slowly [10:32] margle has joined the channel [10:32] tokumine_ has joined the channel [10:34] eee_c has joined the channel [10:36] erichocean_ has joined the channel [10:37] Vespakoen: Commando, https://github.com/visionmedia/jade ctrl+f / cmd+f "Conditionals" enter [10:37] benvie: woo I added got syntax highlighting working in the console https://raw.github.com/Benvie/Node.js-Ultra-REPL/master/docs/ss6.png [10:37] mAritz: Vespakoen: really? xD [10:37] mAritz: haven't you learned anything? [10:38] mAritz: :D [10:38] Vespakoen: Yep, just keep trying until he gets it =P [10:38] mAritz: ^^ [10:38] Vespakoen: he must feel awkward now, hmmz look a lot like what i got yesterday? *slowly connection the dots* [10:38] mAritz: let's hope he gets that far [10:38] hz has joined the channel [10:39] mAritz: benvie: holy shit that looks like nyan cat threw up [10:39] Vespakoen: all it takes, is a Simple twist of faith [10:39] benvie: it's not even half the colors I use in my actual editor [10:39] mAritz: :x [10:40] mAritz: i use 4 [10:41] confoocious has joined the channel [10:41] confoocious has joined the channel [10:41] adrianF has joined the channel [10:42] benvie: I edit my language files to have extreme specifity [10:43] benvie: so that my color schemes can use them [10:43] benvie: http://bbenvie.com/img/jscolors.png [10:43] benvie: can only use 16 colors in the console though on Windows until I can create ffi bindings to use mintty or putty or something [10:44] sergiosanche has joined the channel [10:44] MrTopf has joined the channel [10:45] secoif has joined the channel [10:45] fermion has joined the channel [10:48] aslant has joined the channel [10:49] kuebk1 has left the channel [10:51] andyT has joined the channel [10:51] Dreamer3 has joined the channel [10:56] Deputats has joined the channel [10:56] Deputats: Where I can find good, advanced Node.JS + socket connection example/tutorial? Like best practices and connecton management. [10:57] shinuza has joined the channel [10:57] sirwan has joined the channel [10:59] booo has joined the channel [10:59] ABK has joined the channel [11:00] jimt_ has joined the channel [11:01] romain_ has joined the channel [11:03] Nss has joined the channel [11:04] hz has joined the channel [11:06] jimmysparkle has joined the channel [11:06] EriksLV has joined the channel [11:08] Segaja has joined the channel [11:09] Segaja: hi, i have installed node.js from the git repo and npm from the install.sh script, but whenever i call npm install mysql i get this: http://pastie.org/private/tidimonrql2xtitmuld5dq [11:10] insin: woah, missed 0.6.8 [11:10] insin: nvm install v0.6.8 [11:10] insin: ACTION warms his hands on the fan [11:10] Segaja: are you talking to me? [11:11] erichocean has joined the channel [11:11] Segaja: why is the git checkout some 0.5.x version if 0.6.8 is out? [11:11] dannyamey has joined the channel [11:12] torvalamo: you may wanna checkout from joyent/node [11:12] incon: Segaja: https://github.com/joyent/node/wiki/modules#wiki-db-mssql [11:12] insin: Segaja: it wasn't at you, but I would recommend using one of the Node version managers in any case [11:13] Segaja: node version manager? [11:13] aliem has joined the channel [11:13] torvalamo: yeah, and also the latest git checkout (0.7.0) won't build [11:13] Segaja: i had some strange yr git repo [11:13] torvalamo: you should get one of the tagged revisions [11:14] Segaja: i'm on ubuntu. what is a good node version manager for it? [11:14] torvalamo: any of them [11:14] torvalamo: npm install nvm [11:16] TheCodeBuccaneer has joined the channel [11:16] Segaja: ubuntu has some strange deps [11:16] torvalamo: never mind, don't think nvm is on npm [11:16] Segaja: npm depends on nodejs [11:16] torvalamo: well yeah [11:16] torvalamo: but that's not strange [11:16] torvalamo: it's written i js [11:16] Segaja: it is not [11:16] Segaja: nvm is not in npm [11:16] insin: right, this is extremely pernickety, but which one (documenting an optional first argument): [11:17] insin: groups([params,] callback) or groups([params, ]callback) [11:17] torvalamo: https://github.com/creationix/nvm [11:17] robotmay_ has joined the channel [11:18] torvalamo: insin, if i was writing it, last one, but the first one is more readable [11:18] Glenjamin: I'm a fan of "n" for multi-node version management [11:18] torvalamo: although it messes with you if you have OCD [11:18] Glenjamin: npm install -g n [11:18] insin: heh, I agree [11:18] ppcano_ has joined the channel [11:19] Glenjamin: groups([params, ] callback) ? [11:19] torvalamo: you must die [11:19] insin: hmm, node.js docs style would be groups([params], callback) (and it would probably swap them to avoid the first being optional) [11:19] benvie: first optional is recipe for problems [11:19] torvalamo: yeah but callback should be last [11:19] eeemsi: \o/ thank you for another release [11:19] Glenjamin: callback is always last [11:20] benvie: don't specify, or describe as an option object [11:20] benvie: say groups(callback), groups(params, callback) [11:20] insin: I just want to keep it nice to read as used: groups(function() {}) groups({offset:50, limit: 25}, function() {}) [11:20] benvie: split it up because as is is confusing [11:20] Glenjamin: i like benvie's approach, specify both signatures serparately [11:20] benvie: or [11:20] AviMarcus has joined the channel [11:21] insin: benvie: good idea [11:21] benvie: groups(callback), groups(options), options has { xxxx, xxx, xxx, callback } [11:21] benvie: if they want to be specific then they can handle giving an object [11:21] torvalamo: you don't put the callback inside the options [11:21] benvie: or at max, options object + callback [11:21] torvalamo: that's just wrong [11:21] benvie: yeah [11:21] benvie: that's fine [11:21] benvie: but no more than that [11:22] benvie: fn(callback), fn(options, callback) [11:22] torvalamo: i wrote a small module for this once [11:22] torvalamo: optional first arguments [11:22] torvalamo: it's called argtype.js [11:22] torvalamo: it's messy [11:22] torvalamo: but you may get some ideas [11:22] torvalamo: also it's a year old [11:23] tvw has joined the channel [11:23] mattgifford has joined the channel [11:24] torvalamo: even the argtype decorator itself has optional order of argumeents [11:24] benvie: I wrote a partial application factory using proxies that allows you to wrap a function in a partial factory, set its params as properties of the factory, and then build a sub-factory or sealed final function from it, with included approximal .toSource that works as is. I have an unhealthy obsessions with this [11:24] torvalamo: :P [11:24] insin: hmm, will rename it to options too, the fact that those values end up as query parameters is an implementation detail [11:24] benvie: https://github.com/Benvie/meta-objects/blob/master/examples/partials.js [11:25] Wizek: Hey! Is there a way to use node.js 0.6.x with cygwin? [11:26] insin: awesome [11:26] insin: ♥ open source ♥ [11:26] purr: Let it be known that insin hearts open source ♥. [11:26] insin: hah [11:27] insin: how long has that bot been waiting? [11:27] benvie: I'm actually having issues with open source [11:27] insin: I'm a terrible maintainer ಠ_ಠ [11:27] fangel has joined the channel [11:27] mraxilus: what blasphemy is this? there be no issues with open source :P [11:27] benvie: in that [11:27] benvie: I need money [11:27] benvie: I'm terrible at monetizing the work I do [11:28] verdoc_laptop has joined the channel [11:28] benvie: and open source is an enabler for me to be terrible at that part of it [11:28] torvalamo: Wizek, yeah just install it like you would on linux [11:29] torvalamo: but open source allows you to show off your work to future customers [11:29] benvie: this is true [11:29] benvie: it'll pay off someday [11:29] torvalamo: (i'll never call them employers again) [11:29] torvalamo: they need me, i don't need them [11:29] torvalamo: :P [11:29] benvie: it's awesome for documenting exactly, line by line, what you've done and can do [11:30] benvie: and we're in a world where the stuff we do is in high demand and short supply [11:30] torvalamo: dunno if it's in high demand, because they still tend to go with php and settle for below average programmers [11:31] MrTrick has joined the channel [11:31] torvalamo: i don't know about you but i don't have the time to badmouth php in front of an employer and try to convince them to use node [11:31] benvie: well yeah that's true but it's in such high demand that those terrible options are often the best they can get or can afford [11:31] benvie: node specifically is still working on ubiquity [11:32] benvie: js certainly has reached the top though [11:32] sriley: erm just cos someone uses php doesnt mean they are a below average programmer [11:32] torvalamo: no [11:32] benvie: no of course not [11:32] torvalamo: but if they ONLY use php they are [11:32] torvalamo: almost guaranteed [11:32] Ezku: ...but it does make it more probable. [11:32] benvie: there's a large contingent of people who fit that mould [11:32] benvie: it's similar to "jquery programmers" [11:33] torvalamo: people who use python and ruby are pretty capable of writing awesome php code any day [11:33] torvalamo: not the other way around though [11:33] sriley: php is a language, jquery isnt [11:33] benvie: jquery is an awesome tool [11:33] benvie: yeah I know [11:33] Ezku: torvalamo: neither does someone using python or ruby automatically make them awesome [11:33] torvalamo: no but it's more probably [11:33] torvalamo: probable [11:33] sriley: not really [11:33] benvie: but the result is similar [11:33] benvie: I'm not even arguming the technical merits of the language [11:34] _shorinji_ has joined the channel [11:34] benvie: rather the profile of the bell curve of people you will experience who self-identify [11:34] runvnc: Is it time to dis PHP [11:35] runvnc: again [11:35] benvie: it's not php, it's just [11:35] runvnc: climb on board the hate-train [11:35] thalll has joined the channel [11:35] lotsofcode_ has joined the channel [11:36] torvalamo: anyone who starts out with php will think they are awesome no matter how little they know... because it will run, and it will do SOMETHING... even if it's not what you intended (because it has passive errors).... with python and ruby if you screw up, then you won't get anywhere... so it's like a deterrent for idiots [11:36] benvie: javascript is a really easy language to start in on, to get things done in, and node is extremely accessible to use [11:36] runvnc: Yeah, PHP programmers are idiots. [11:36] benvie: it is no harder and most likely easier than php, so it's not about that [11:36] torvalamo: yeah that's what i said [11:36] torvalamo: totally [11:36] runvnc: lol [11:36] runvnc: Man I have been doing PHP for many years [11:37] runvnc: But I learned C++ before that. [11:37] medice: php programmers are not idiots, they are geniuses [11:37] mAritz: in all seriousnesss: all programmers other than me are idiots. always. [11:37] runvnc: I think the hate and disrespect for PHP and PHP programmers is idiotic and I am tired of it. [11:37] AvianFlu has joined the channel [11:37] torvalamo: i used php before [11:37] benvie: php was the thing to get things done in for web stuff for a long time and I'd be surprised to find many people who don't have some experience with it [11:37] runvnc: Sure, PHP sucks in some ways. [11:37] benvie: it's not the language [11:37] runvnc: But this conversation is so tired. [11:37] _shorinji_: php is easy to learn, hard to master. that is all. [11:37] torvalamo: in fact everyone i have ever met who is a php programmer, has been.. less than adequate [11:38] mAritz: #php [11:38] torvalamo: met in real life that is [11:38] torvalamo: not online [11:38] runvnc: There's the problem right there torvalamo [11:38] torvalamo: online is full of nerds who are good [11:38] sriley: my guess is that youve not met any professional developers then... [11:38] torvalamo: oh i have [11:38] runvnc: I am CoffeeScript/Node.JS/C#/C++/.NET programmer [11:38] runvnc: AND PHP [11:38] benvie: but the point is that if I see someone self-identify as a php programmer, or a "front-end developer who's an expert at jquery" then I classify them in a certain way [11:38] runvnc: and I am sick of people dissing PHP programmers [11:38] mAritz: torvalamo: i can say the same about 90% of java developers i've met professionally... :x [11:38] _shorinji_: what about "web programmers"? :) [11:39] benvie: it's not my judgement of the language, it's my judgement of their choice to identify themselves in a way that classifies them for me [11:39] runvnc: And jquery is a very useful tool.. its dumb to throw out everyone who uses it. [11:39] benvie: I classify someone who self-identifies as a java developer in another way as well [11:39] liar has joined the channel [11:39] torvalamo: one potential employer asked me if I read the PHP source code to learn from it... I'm like... dude, first of all that shit is unreadable.. second, i don't need to learn from the source code that running a n^3 function is slow as fuck [11:40] runvnc: The problem is that this classification based on identification is superficial. [11:40] benvie: the point is the person thinks that defining themselves by the moniker is a positive and that fact alone is enough to classify them [11:40] benvie: this is reflective to their self-identification [11:40] torvalamo: the thing with java developers is that java is the language of choice in many schools and universities [11:40] runvnc: Its the same type of thinking that leads to everyone wearing black-rimmed glasses even though they can see and/or have contacts [11:40] torvalamo: i think that's nuff said [11:40] runvnc: Because everyone wants to self-identify and other-identify as a nerd. [11:41] runvnc: But just because you say you are "not a jquery developer" and rather a "backbone developer" or "Ruby developer" vs. "PHP programmer" REALLY doesn't mean that you are a better programmer or worse one. [11:41] runvnc: The same way wearing glasses doesn't make you smart. [11:41] benvie: well regardless, I think the original point way back was open-source is great and one thing it does is allows you as a contributor to prove your capability not by words or classifications or titles, but by lines of code and specific contribution [11:41] benvie: and not sure how we got here [11:42] insin: I self-identified as a Java programmer just last night at a talk about writing fast, clean code with respect for what CPUs are actually doing, because the question from the speaker was "who here uses Java?" [11:42] shinuza has joined the channel [11:42] Ezku: if you're at the tenth decile of programmers, and adamant in maintaining the standards of your craft, of course you're going to find most developers sub-par [11:42] insin: honestly, who cares once they're over the one-language wall? [11:43] N0va` has joined the channel [11:43] benvie: identifying as someone who can program in java is different from being a self-identified java programmer. I think most of us agree that being experienced in and often using multiple languages is the mark of likely well-rounded developer [11:43] d0k has joined the channel [11:43] torvalamo: Ezku, it's not about the quality of code of them i find repulsive.. some of them have very readable and useful code despite not being necessarily awesome... but it's their attitude of "I know PHP really well so I know a lot about programming".. [11:43] QaDeS has joined the channel [11:43] raincole_ has joined the channel [11:44] PhatBob has joined the channel [11:44] torvalamo: that's where something clicks inside my head and i go silent and stare at them in disgust [11:44] runvnc: Tools and architecture matter, but assuming people are idiots just because they write PHP code or C code or whatever is the equivalent of assuming people who believe in God are stupid. [11:44] benvie: and the point is that someone who actively is the opposite of that and then identifies singly with a language not known for great engineering isn't a likely champion for the cuase [11:44] PhatBob: Hello Noders [11:44] _shorinji_: hello [11:45] torvalamo: runvnc, it's not an assumtion, it's proven :P [11:45] PhatBob: can anyone point me to any help with writing my own stream? [11:45] runvnc: People have crazy beliefs regardless of how smart they are. I have a twin brother who is a hardcore Christian. He's a business intelligence analyst. I am an atheist currently doing CoffeeScript/Node [11:45] NothingMan65_ has joined the channel [11:45] torvalamo: business intelligence analyst.. totally.. that's a job that was made up by someone for no reason [11:45] PhatBob: I want to do some token replacement if a sequence appears in a stream [11:46] benvie: I'm not sure what exactly type of help you would find best, but I personally usually refer to node's source itself [11:46] benvie: https://github.com/joyent/node/blob/master/lib/stream.js [11:46] benvie: which is very approachable [11:46] insin: ACTION prepares to ostracise runvnc in an atheist schism for his CS usage [11:47] PhatBob: @benvie thats brilliant thanks, I effectively want to join two streams via a pipe [11:47] satyr has joined the channel [11:47] benvie: so at basic you'd likely have an object that listens to the given sources and then emits events for both [11:47] benvie: a stream is largely an event emitter https://github.com/joyent/node/blob/master/lib/events.js [11:48] benvie: basicslly just implementing some translating of data on top [11:48] unomi has joined the channel [11:49] PhatBob: when I get a stream fed to me, I want to find a squence of characters e.g. [TOKEN] then inject the contents of my stream at that point, then continue the original stream [11:49] runvnc: Just look at how many geniuses there are working with Microsoft's tools. [11:49] torvalamo: all two of them? [11:50] benvie: so with a stream you'll be listening to some event, likely stream.on('data', callback) [11:50] torvalamo: joel spolsky and whoever that other guy is [11:50] benvie: so your middle man would set up that callback, process the data, then emit it's own data event with the processed data [11:51] torvalamo: but microsoft's tools aren't as bad as php [11:51] torvalamo: so [11:51] tomasztomczyk has joined the channel [11:51] torvalamo: at least they've thought those through.. to some extent [11:52] torvalamo: but enough about php, let's talk cake [11:52] benvie: I was a fan of zend framework though it was...really goddamn big [11:52] benvie: just in sheer mindspace [11:53] torvalamo: oh yeah the framework era [11:54] shellox has left the channel [11:54] benvie: node's standard userland module stuff I find works really well, with each thing generally being conceptually digestable with only a small amount of learning [11:54] benvie: zend framework would probably be something like 1000 node modules all in one [11:54] torvalamo: yeah i'm a fan of making each part as small as possible [11:54] torvalamo: that is, as small a job as possible [11:55] torvalamo: easier to debug, easier to replace, easier to optimize [11:55] benvie: most goals are small so it makes sense that the tools are small, easy to find, and easy to combine [11:57] benvie: frameworks generally arise I think because of the lack of an answer for the "easy to combine" part. So instead they shoot to just have everything included so combining isn't necessary [11:57] PhatBob: @benvie - most likely this is the answer, thanks [11:57] insin: I love Node's and the node community's approach to modules :) [11:57] benvie: which just makes them overwrought, overcomplicated, and difficult to learn [11:57] benvie: no problem Bob, hope it helps you figure out the solution! [11:58] PhatBob: if it works then I will be able to do things like the <%tag %> in asp/jsp [11:58] torvalamo: node's module design is kind of like python's [11:58] insin: But I also love "monolithic" frameworks *if* they've been well thought out and just seem to make sense without too much ceremony [11:59] PhatBob: and inject data into socket replies [11:59] benvie: agree insin and some do, but it's hard to do and rare as a result [11:59] RLa has joined the channel [11:59] benvie: you're looking to do a kind of templating where the replacement happens at the socket/emitter level? [11:59] benvie: or I guess reach out to external interpreter [11:59] benvie: makes sense [12:00] qsobad has joined the channel [12:00] PhatBob: yes - really at any level where a stream can be passed through the "joiner" [12:00] benvie: well more a splitter and joiner [12:01] PhatBob: currently this if for injecting metadata into a file [12:01] PhatBob: but if written correctly it will work for any stream type [12:01] PhatBob: I guess a spliter and joiner is a Splicer [12:01] benvie: determine what needs to be sent to which converted/interpreter, and then bring the result back together [12:02] benvie: wherever those two parts happen [12:02] PhatBob: pretty much [12:02] PhatBob: first I need the simple version to work ;-) [12:02] benvie: I think you're on the right track doing it at the stream level, since it's reaching to external applications [12:03] benvie: you just need a basic parser to break out which chunks go to which external thing [12:03] PhatBob: thats the problem [12:03] PhatBob: the object type of the buffer is unknown to me [12:03] benvie: well for a basic functional version [12:03] PhatBob: it appears to be 412bytes (in this case) of string [12:04] benvie: a buffer can be converted to a string easily enough [12:04] benvie: are you referring to the buffer a stream gives you? [12:04] PhatBob: thanks to that source you sent me I see that pipe copies chunks through [12:04] PhatBob: the object passed to 'ondata' events [12:04] benvie: at most basic you can to buffer.toString('utf8') and that'll return a regular JS string [12:05] benvie: yeah that'll work, or if you specify the data type for the stream's source [12:05] benvie: like [12:05] PhatBob: its better to keep it in the native format [12:05] benvie: httpClient.setEncoding('utf8') [12:05] PhatBob: less processing overhead [12:05] benvie: yeah the less you convert it the better of course [12:06] PhatBob: and it keeps the data type raw so stream to stream processing is simpler [12:06] Mare13h has joined the channel [12:06] benvie: for that your goal would be to have the data source providing control codes at the binary level so you can determine at the raw data level [12:07] dr0id has joined the channel [12:07] benvie: or I guess searching for tags could be done at that level, like '<%' in binary [12:07] DarkGlass has joined the channel [12:07] benvie: or whatever encoding [12:08] PhatBob: well the JS object would need a prototype token so that the coder gets to decide how they're going to handle the encoding [12:08] benvie: this may provide some example as well https://github.com/dscape/clarinet [12:09] PhatBob: that looks good, I'll go and read it, thanks for your help mate, and have a good weekend [12:09] benvie: adios [12:14] mange has joined the channel [12:15] NothingMan65 has joined the channel [12:18] Sembiance: :) [12:23] Typo has joined the channel [12:23] Typo has joined the channel [12:24] kyonsalt has joined the channel [12:25] cjroebuck has joined the channel [12:30] eee_c has joined the channel [12:30] HolyGoat has joined the channel [12:31] enmand has joined the channel [12:32] HolyGoat has joined the channel [12:32] blup has joined the channel [12:32] stefpb has joined the channel [12:33] HolyGoat has joined the channel [12:36] xbayrockx: Hello, what do you think of the beginning of my MMOTCG! http://checkthecable.com.au/hontcg/ [12:36] torvalamo: the what? [12:37] torvalamo: what's TCG [12:38] 45PAANV94 has joined the channel [12:38] yolin has joined the channel [12:38] xbayrockx: trading card game [12:38] runvnc has joined the channel [12:39] simenbrekken has joined the channel [12:39] torvalamo: first of all, it goes down below the viewport on my laptop [12:39] torvalamo: so i'll have to scroll all the time [12:39] xbayrockx: Eh ? [12:40] torvalamo: and second, what's it supposed to do [12:40] torvalamo: all i see is squares of gradient colors [12:40] xbayrockx: you mean your resolution is small ? [12:40] torvalamo: my resolution is at max for the laptop [12:40] xbayrockx: Which is? [12:40] piscisaureus_ has joined the channel [12:40] torvalamo: 1360 or something [12:40] torvalamo: sec [12:41] torvalamo: 1280x800 actually [12:41] xbayrockx: Anyway it's the beginning. You can drag the mouse on the canvas to pan/scroll across the mass of 'trading cards in the field of play' [12:41] torvalamo: yeah that i noticed [12:42] torvalamo: you'll probably be better of scanning for pageWidth (or one of them variables) and setting the canvas size at the start [12:42] torvalamo: instead of having a fixed size [12:43] xbayrockx: I see [12:43] xbayrockx: cool [12:43] torvalamo: also width and height change on an "onresize" event, so you can listen to that if the window is resized [12:43] torvalamo: and resize the canvas [12:43] Edy has joined the channel [12:43] Edy has joined the channel [12:44] lwille has joined the channel [12:44] torvalamo: no, not inresize [12:44] torvalamo: onchange i thing [12:44] torvalamo: think [12:44] DarkGlass: yeah adding my 2 cents, it don't fit on a macbook either - kinda think it needs to ? [12:45] scott_gonzalez has joined the channel [12:45] xbayrockx: Of course [12:45] xbayrockx: I have 1080p so it looked good on mine [12:46] DarkGlass: nice idea to make a trading game - I miss the good old days of ChronX [12:46] amigojapan has joined the channel [12:46] adambeynon has joined the channel [12:48] andrewfff has joined the channel [12:50] booo has joined the channel [12:51] kuhrt has joined the channel [12:53] mape has joined the channel [12:54] patrickgamer has joined the channel [12:54] patrickgamer has left the channel [12:57] ovaillancourt has joined the channel [12:57] satyr has joined the channel [12:59] shinuza has joined the channel [12:59] brianseeders has joined the channel [13:00] fly-away has joined the channel [13:02] plutoniix has joined the channel [13:04] yawNO has joined the channel [13:10] bnoordhuis has joined the channel [13:10] joelmob has joined the channel [13:10] liar has joined the channel [13:15] spolu has joined the channel [13:18] xetorthio has joined the channel [13:20] metaverse has joined the channel [13:20] Juan77 has joined the channel [13:21] XERE has joined the channel [13:24] fairwinds has joined the channel [13:25] Bogh has joined the channel [13:26] uchuff has joined the channel [13:28] elsig` has joined the channel [13:29] erichynds has joined the channel [13:29] savadi has left the channel [13:30] asdf123123 has joined the channel [13:30] asdf123123 has left the channel [13:30] blup has joined the channel [13:32] fumanchu182 has joined the channel [13:33] joelmob has joined the channel [13:34] epa_: On regarding to the https://github.com/felixge/node-memory-leak-tutorial [13:34] savadi has joined the channel [13:34] epa_: I am still trying to get the information from the node --debug leak.js [13:34] epa_: what I did was [13:34] epa_: (sleep 1 ; cat node_debug.cmd_take_snapshot_full) | /usr/bin/nc localhost 5858 [13:34] epa_: and in the take_snapshot_full I have [13:34] epa_: -- [13:34] epa_: Content-Length: 182 [13:34] epa_: {"seq":1,"type":"request","command":"evaluate","arguments":{"expression":"process.profiler.takeSnapshot('test', 'full')","disable_break":true,"global":true,"maxStringLength":100000}} [13:35] epa_: -- [13:35] epa_: (with linefeed being \r\n) [13:35] AviMarcus: how do I have string=string.replace do it for all instances of whatever I'm searching for? e.g. replace all? [13:36] epa_: and I get a reply from the node and can see that a new snapshot has been taken (with netcatting 'node_debug.cmd_snapshot_count' into 5858 port) [13:36] mara has joined the channel [13:36] mAritz: AviMarcus: you have an array of strings and want to do replace on all of them? [13:36] epa_: but when I try to see what the snapshot contains with "process.profiler.findSnapshot(1).stringify()" [13:37] mara has joined the channel [13:37] epa_: I don't see what I am expecting [13:37] AviMarcus: marienz, I have a string, e.g. "this is a sentence" and want to replace all space with _ [13:37] epa_: nowhere in the reply 'json' I see the 'leakingclass' object [13:37] AviMarcus: tmp=tmp.replace(" ","_") seemed to only do the first one [13:37] marienz: eep, js questions [13:38] tornad has joined the channel [13:38] gaYak: Avimarcus: Use regexp [13:38] ePirat has joined the channel [13:38] Segaja: how can i install node-mysql in node.js? [13:39] davetayls has joined the channel [13:39] marienz: AviMarcus: I think js wants you to use .replace(/ /g, "_"), but I'm fairly terrible at js so check with the channel :) [13:39] gaYak: Or what not, wouldn't tmp=tmp.replace(/ /g, "_")) ? [13:39] gaYak: .. [13:39] Segaja: i did npm install mysql but this only creates a node-modules ordner but if i try to use it, it doesn't work [13:39] neurodrone has joined the channel [13:39] gaYak: marienz: I guess it should be about correct if we both suggested it.. ;) [13:39] marienz: gaYak: I even tried it in a js shell, I just don't know if it's the best way of doing it [13:40] jetienne has joined the channel [13:40] gaYak: No idea, I've never done anything that serious with js.. [13:40] marienz: and https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace says to use a regexp object if you need flags, which you do here, so yeah [13:41] boehm has joined the channel [13:42] AviMarcus: thanks that worked marienz gaYak .. what is /g exactly? [13:42] AviMarcus: erm option g for regex [13:43] marienz: AviMarcus: "global" (don't stop after the first match) [13:43] AviMarcus: awesome, ty. [13:43] jtsnow has joined the channel [13:43] AviMarcus: I started learning node.js stuff... then spent 6 hours in lua, and now I can't keep any syntaxes straight :x [13:43] AviMarcus: (newbie in both, so..) [13:44] petrjanda has joined the channel [13:47] DoNaLd` has joined the channel [13:47] CIA-101: node: 03Shigeki Ohtsu 07master * r2156e5e 10/ src/node_file.cc : [13:47] CIA-101: node: fs: don't assert on uv_fs_*() errors [13:47] CIA-101: node: Pass errors to the JS callbacks, don't assert in C++ land. [13:47] CIA-101: node: Fixes among other things the case where Node aborts because uv_fs_futimes() [13:47] CIA-101: node: returns ENOSYS. - http://git.io/syxsbg [13:49] swestcott has joined the channel [13:49] sveisvei has joined the channel [13:49] jj0hns0n has joined the channel [13:53] qsobad has joined the channel [13:54] tisba has joined the channel [13:55] Vennril has joined the channel [13:58] postwait has joined the channel [13:59] diogogmt has joined the channel [13:59] agnat_ has joined the channel [13:59] IrishGringo has joined the channel [13:59] bnoordhuis: AviMarcus: if you like lua, check out luvit - node.js in lua [13:59] Yoms has joined the channel [14:00] AviMarcus: I'll take a look, but doubt it. thx. [14:01] petrjanda has joined the channel [14:03] ovaillancourt has joined the channel [14:04] AaronMT has joined the channel [14:05] lduros has joined the channel [14:06] mikedeboer has joined the channel [14:06] evangenieur has joined the channel [14:06] briancray has joined the channel [14:06] icebox has joined the channel [14:08] Poetro has joined the channel [14:08] voodootikigod has joined the channel [14:09] urlisse has joined the channel [14:09] adedip has joined the channel [14:10] jstonne has joined the channel [14:11] herbySk has joined the channel [14:11] lz has joined the channel [14:13] Venom_X has joined the channel [14:13] shiawuen has joined the channel [14:13] pdodde has joined the channel [14:13] EvRide has joined the channel [14:16] nibblebot has joined the channel [14:17] thomblake has joined the channel [14:19] mAritz: epa_: how did you install v8-profiler? using node 0.4.x? because in 0.6 i get node-waf errors when installing [14:20] xpigeonx has joined the channel [14:20] mikedeboer has joined the channel [14:20] xpigeonx: are arrays in node thread safe at all? [14:22] mAritz: xpigeonx: node.js is single-threaded [14:22] qbit_ has joined the channel [14:23] lazyshot has joined the channel [14:23] mdel has joined the channel [14:24] martndemus has joined the channel [14:24] evangenieur_ has joined the channel [14:24] thomblake has left the channel [14:24] xpigeonx: mAritz: but I can have other node process's in which case thread safety could become an issue [14:25] andyT has left the channel [14:25] qsobad has joined the channel [14:26] mAritz: xpigeonx: no, because you don't have access to the other process besides sockets or - if forked - by .on('message') and .send('message') [14:27] grom358 has joined the channel [14:27] grom358: :( jsdom doesn't work on windows [14:27] herbySk has joined the channel [14:28] mape has joined the channel [14:28] jtrudeau has joined the channel [14:29] der| has joined the channel [14:31] DarkGlass has joined the channel [14:31] icebox: grom358: false [14:31] icebox: grom358: what is the problem? [14:33] trose has joined the channel [14:34] booo has joined the channel [14:35] zitchdog has joined the channel [14:35] davetayls has joined the channel [14:37] Kunda has joined the channel [14:38] simenbrekken has left the channel [14:39] dnjaramba has joined the channel [14:40] enmand has joined the channel [14:42] grom358: oh nvm I found a workaround to get it working :D [14:44] xpigeonx: mArtitz: is there even an api to create your own socket between other processes? [14:45] xpigeonx: mAritz: is there even an api to create your own socket between other processes? [14:46] lwille has joined the channel [14:47] mc_greeny has joined the channel [14:48] sharkbird has joined the channel [14:48] evangenieur_ has joined the channel [14:49] grom358 has joined the channel [14:49] kitt has joined the channel [14:49] kitt has joined the channel [14:50] themiddleman has joined the channel [14:51] Zmanu has joined the channel [14:52] mc_greeny has joined the channel [14:53] Morkel has joined the channel [14:53] swestcott_ has joined the channel [14:53] cgfuh has joined the channel [14:53] enmand_ has joined the channel [14:55] ovnicraft has joined the channel [14:57] benvie: you mean like process.fork? [14:58] jetienne has joined the channel [14:58] benvie: which comes with a built in communication channel? [14:58] lwille has joined the channel [14:58] benvie: child_process.fork I mean [14:59] Zmanu: i have site with jquery can i add node.js to work with mongodb easily ? [14:59] barberdt has joined the channel [15:00] mAritz: xpigeonx: what benvi said is a good way for communication to a child process. but of course you can open tcp sockets?! [15:02] c4milo has joined the channel [15:02] aheckmann has joined the channel [15:02] CIA-101: node: 03Ben Noordhuis 07master * r4e52477 10/ (src/handle_wrap.cc src/node_file.cc): [15:02] CIA-101: node: fs, handle_wrap: use Loop(), not uv_default_loop() [15:02] CIA-101: node: Using the default loop will fail in unexpected and interesting ways when [15:02] CIA-101: node: isolates are used. - http://git.io/CNq80Q [15:02] CIA-101: node: 03Ben Noordhuis 07master * r6b58537 10/ common.gypi : [15:02] CIA-101: node: build: disable NDEBUG in release builds for now [15:02] CIA-101: node: assert() sanity checks are a good thing. - http://git.io/d7lzSQ [15:04] nibblebot has joined the channel [15:05] Zmanu: hello [15:05] joshfinnie has joined the channel [15:05] Zmanu: i have a website with jquery and i want to use node.js to work with mongodb, is there a easy way to do that ? [15:06] DarkGlass has left the channel [15:06] mAritz: Zmanu: that depends on your definition of easy and your requirements [15:06] redir has joined the channel [15:06] Zmanu: mAritz: i'm in holliday, so i have time and i like read :) [15:07] chvid has joined the channel [15:08] Zmanu: mAritz: i have no requirements, i learn [15:08] pig has joined the channel [15:08] iVic has joined the channel [15:08] ap3mantus has joined the channel [15:08] rachet: Zmanu: jQuery is front-end, Node.js is backend... [15:09] mandric has joined the channel [15:09] mAritz: then start easy by doing some express tutorial [15:09] Zmanu: rachet: so i can only install node.js and keep jquery 1.7.1 like this ? [15:09] Zmanu: mAritz: have you an url ? [15:09] rachet: they are two seperate things... [15:09] willwhite has joined the channel [15:09] mAritz: nah, do a quick google search :) [15:09] rachet: its like saying "I have a purple car, can I use a diesel engine with it? [15:10] mAritz: Zmanu: it's very important to understand what node is, though. rachet is right. [15:10] eee_c has joined the channel [15:11] Zmanu: ok, i gonna read to be sure i know what is really node.js [15:11] teadict: magic [15:11] teadict: wait no... orgasmic magic [15:11] teadict: on christmas [15:11] teadict: being high [15:11] rachet: teadict: you left out the riding a unicorn part [15:12] teadict: YES [15:12] rachet: riding a unicorn inside a kick-ass cake [15:12] grom358 has joined the channel [15:12] teadict: wat [15:12] teadict: inside? [15:13] pig has joined the channel [15:13] jxie has joined the channel [15:13] teadict: that's just weird [15:13] mAritz: wouldn't you suffocate inside a cake? [15:14] mAritz: (except if it's one of those hollow stripper cakes, which would just be lame) [15:15] claudioc has joined the channel [15:15] ovaillancourt: (or if the cake has a vent :|) [15:16] hydrozen has joined the channel [15:17] mange has joined the channel [15:18] pig has joined the channel [15:18] swestcott has joined the channel [15:18] jkridner has joined the channel [15:19] hackband has joined the channel [15:19] joestein has joined the channel [15:19] isaacs has joined the channel [15:20] petrjanda has joined the channel [15:20] kuya has joined the channel [15:20] kuya: hello, does anyone know of js source formatter written in node? i want to tidy some js.. with js [15:21] silky has joined the channel [15:21] dnjaramba has joined the channel [15:26] briancra_ has joined the channel [15:30] BillyBreen has joined the channel [15:31] azeroth__ has joined the channel [15:32] xtianw has joined the channel [15:33] ccapndave has joined the channel [15:33] MrTrick has joined the channel [15:34] adomokos has joined the channel [15:35] tmcw has joined the channel [15:35] mAritz: kuya: search.npmjs.org and type beautify [15:36] i42n has joined the channel [15:36] jimmysparkle has joined the channel [15:37] kenperkins has joined the channel [15:37] Wizek has joined the channel [15:38] jimt has joined the channel [15:39] booyaa: hollow stripper cakes without strippers inside them is disappointing [15:40] booyaa: like a gettnig a twinkie and finding no "cream" inside [15:40] kuya: mAritz: "beautify" was the search i was looking for - thanks :) [15:41] Cromulent has joined the channel [15:41] teadict: install jslint into your editor and become a man [15:42] mAritz: teadict: doesn't work with dynamic js in an app :P [15:42] mAritz: (e.g. user generated) [15:42] teadict: how do you mean? [15:43] igl: lol [15:43] ap3mantus has joined the channel [15:43] igl: kudos teadict [15:43] teadict: what's dynamic js? ^.- [15:43] mAritz: except if your app is you opening a socket on a command line and manually saving incoming requests containing user javascript in your editor and serving the stuff you save in your editor xD [15:43] mAritz: teadict: pastebin.com for example [15:44] igl: probably coffeescript :C [15:44] mAritz: nooo [15:44] teadict: who said the js to beautify was user generated? [15:45] mAritz: user has textfield. user enters javascript. user pushes save. browser sends text javascript. server saves text javascript. user calls page with id of saved text javascript. server sends beautified text javascript. user happy. [15:45] teadict: yeah yeah, but who said that was case? [15:45] dr0id has joined the channel [15:45] i42n has joined the channel [15:45] mAritz: no one, but he asked for a module that does it and i provided a way to do it. and you assumed he was a pussy. :D [15:45] teadict: he didn't ask specifically for user input code beautification.. [15:45] i42n has joined the channel [15:46] Wizek-other has joined the channel [15:46] teadict: he said he wanted to beautify some js... isn't it a shorter of a shot to assume it's his js ? [15:46] mAritz: no, i was just providing a possible use case for a module that doesn't work by being a man and using jslint (which btw is a contradiction :P ) [15:47] mAritz: read his question again [15:47] teadict: mk ;P [15:47] rtgibbons has joined the channel [15:47] epa_: mAritz: I used the 3.6.2 branch from the profiler git repo [15:47] i42n has joined the channel [15:47] mAritz: epa_: on node 0.4.x though, right? [15:47] vkareh has joined the channel [15:47] mAritz: which kinda ruins the fun :P [15:47] epa_: 0.6.[678] [15:47] mAritz: oh, ok [15:48] mAritz: i'll try that then :) [15:48] mAritz: thanks [15:48] napperjabber_ has joined the channel [15:48] epa_: on reply dump I get a lot of information like [15:48] epa_: "lowlevels": {}, [15:48] epa_: "entries": {}, [15:48] epa_: "children": { [15:48] epa_: "214150872": { [15:48] epa_: .... [15:48] epa_: "210694400": { [15:48] epa_: "constructorName": "setValue", [15:48] epa_: "count": 1414 [15:48] epa_: }, [15:48] epa_: ... [15:48] epa_: But I have no idea what that means yet. [15:49] teadict: at least replace \n for blankspace before pasting here [15:49] mAritz: epa_: why don't you use node-inspector? [15:49] jonbaer has joined the channel [15:49] epa_: mAritz: it does not print out the stuff [15:49] igl: or pastie, pastebin, nopaste, gist it [15:50] mAritz: epa_: it shows it in a nice way though :D [15:50] epa_: nor does the output from v8-profiler show the clases that I create [15:50] epa_: mAritz: for 0.4.2 = [15:50] mAritz: yeah [15:50] mAritz: well, i tested it on 0.4.12 [15:50] epa_: ok [15:51] mAritz: profiler in node-inspector worked relatively okay. (crashed the app after 4 heap snapshots, but whatever :D ) [15:51] kitt has joined the channel [15:51] warz has joined the channel [15:51] warz has joined the channel [15:51] epa_: mAritz: with or without v8-profiler? [15:51] bnoordhuis: Real Men use node-profiler, well-known fact [15:52] daleharvey: does requests do any automatic handling of cookies / basic auth? [15:52] pulsation has joined the channel [15:53] epa_: bnoordhuis: node-profiler ~= node-inspector + v8-profiler? [15:53] mAritz: epa_: with [15:53] bnoordhuis: epa_: no, it's node bindings to the v8 profiler [15:53] booo has joined the channel [15:53] bnoordhuis: it lets you toggle the profiler on and off [15:54] bnoordhuis: i use it from time to time to hunt down memory leaks in node [15:55] epa_: ah you have a guthub for it. [15:55] epa_: ACTION tries [15:55] chvid has joined the channel [15:55] grom358 has joined the channel [15:56] grampajoe has joined the channel [15:56] joshsmith has joined the channel [15:57] slaskis: bnoordhuis: does node-profiler provide console.profile() and console.profileEnd()? [15:57] slaskis: it would be sweet with a browser compatible api [15:57] bnoordhuis: slaskis: i didn't know browsers had a profiler API :) [15:57] bnoordhuis: would be trivial to add [15:58] slaskis: they do, at least chrome and firebug [15:58] lazyshot_ has joined the channel [15:59] jscheel has joined the channel [15:59] Typo has joined the channel [16:01] lxsameer has joined the channel [16:02] lxsameer: hi, how can i install node package system wide? [16:04] adomokos: @lxsamee: npm install -g [16:04] lxsameer: adomokos: thanks [16:04] adomokos: @lxsameer: to see what you have installed use: npm list -g [16:04] adomokos: np [16:05] Kunda has joined the channel [16:05] Segaja has left the channel [16:07] monteslu has joined the channel [16:07] bnoordhuis: slaskis: https://github.com/bnoordhuis/node-profiler/commit/c2e6576 [16:07] jimt_ has joined the channel [16:08] davidsklar has joined the channel [16:08] mdel has joined the channel [16:09] esmevane has joined the channel [16:09] jonbaer has joined the channel [16:09] slaskis: bnoordhuis: lovely! :) [16:10] jgornick has joined the channel [16:10] sorensen__ has joined the channel [16:10] liar has joined the channel [16:11] rauchg has joined the channel [16:11] DarkGlass has joined the channel [16:12] trose: forgive me if this is a stupid question, I'm fairly new to web development... If I create a restful GET callback that just returns a string of text can I make a desktop application call a url and get that text back? [16:12] keiththomps has joined the channel [16:12] tjholowaychuk has joined the channel [16:13] trose: my boss is pushing me to use SOAP but I think he isn't up to date with current methodologies [16:13] N0va has joined the channel [16:13] xtianw: lolsoap [16:14] zomg: trose: sure you can [16:14] ritch1 has joined the channel [16:14] trose: xtianw, yeah, he's like "make me a soap interface" and everything online suggests that soap is not used anymore [16:14] bnoordhuis: don't laugh at soap [16:14] trose: I'm trying to learn everything as i go [16:14] bnoordhuis: soap made me a lot of money [16:14] tjfontaine: soap and it still has its uses [16:14] lxsameer: adomokos: i use commander package in my app, i installed commander using -g, but nodejs still can't find it [16:15] zomg: trose: anything a browser can access can be accessed by any other application as well [16:15] DarkGlass has left the channel [16:15] rwaldron has joined the channel [16:15] Shrink has joined the channel [16:15] Shrink has joined the channel [16:15] trose: zomg, awesome, that's good to know [16:15] Wizek has joined the channel [16:16] trose: zomg every time i talk to you it sounds like i'm really over enthusiastic about something [16:16] trose: X-D [16:17] zomg: trose: I have heard that one before... =) [16:17] thalll has joined the channel [16:17] adomokos: lxsameer: when you do "npm list -g" do you see it? [16:17] trose: heh [16:18] lxsameer: adomokos: yup [16:18] lxsameer: adomokos: locate at /usr/locate/lib [16:18] adomokos: lxsameer: are you trying to use it in your own app or just calling it? [16:18] ritch1: lxsameer: just install it at the root of your project… nothing wrong with having 2 copies of it [16:19] lxsameer: adomokos: i use that in my app [16:19] adomokos: would you have a gist where we could see how you are requiring it? [16:19] lxsameer: ritch1: let me try [16:19] lxsameer: adomokos: yup [16:20] Nss has joined the channel [16:20] AaronMT_ has joined the channel [16:20] slaskis: bnoordhuis: is there some nice tool to view the v8.log? [16:21] bnoordhuis: slaskis: nprof, it's bundled with node-profiler [16:21] bartt has joined the channel [16:21] lxsameer: adomokos: http://dpaste.com/690944/ [16:21] eddiedu has joined the channel [16:21] slaskis: oh fantastic [16:22] adomokos: lxsameer: lookinb [16:22] adomokos: looking [16:22] jjd has joined the channel [16:22] lxsameer: adomokos: ? [16:22] lxsameer: adomokos: thanks [16:22] adrianmg has joined the channel [16:22] grom358 has joined the channel [16:23] bnoordhuis: slaskis: if you've cloned the GH repo, you can build it with tools/build-nprof [16:23] slaskis: bnoordhuis: i just npm install -g profiler [16:23] slaskis: and it works great [16:24] slaskis: (didn't try console api) [16:24] jimt has joined the channel [16:24] panosru has joined the channel [16:24] EyePulp has joined the channel [16:25] ovnicraft_ has joined the channel [16:25] adrianmg has left the channel [16:26] Shrink has joined the channel [16:26] panosru: hello, I'm using supervisor -w . -p 100 -e "node|js|coffee" app.js command in order to automatically restart node when I modify node/js/coffee files but lot's of times supervisor just take too long to reload node :( do you suggest me to use another tool instead? Thanks! [16:27] blueadept has joined the channel [16:27] blueadept has joined the channel [16:27] lxsameer: i need a utility to daemonize my app [16:28] adomokos: lxsameer: I created a new project, installed commander locally with "npm install commander". It installed it in node_modules within the directory I was working in. Used the first 10 lines of the code you shared. Did a console.log(cli); and I got the object back fine. [16:29] lxsameer: adomokos: yeah i use that locally too [16:29] fangel has joined the channel [16:30] adomokos: can you comment out the code starting at "var socketio =�" and just do a console.log(cli);? [16:30] adomokos: what do you get then? [16:30] AndreasMadsen has joined the channel [16:30] davehamptonusa has joined the channel [16:31] jocafa has joined the channel [16:31] jskulski has joined the channel [16:31] lxsameer: adomokos: that app work find in my default user, but i can't run that under root user [16:31] adomokos: oops [16:32] evangenieur has joined the channel [16:32] adomokos: do you need to run it under root priviledges? [16:32] Hanspolo has joined the channel [16:32] lxsameer: adomokos: yeah i want to create a daemon for it [16:33] davehamptonusa has left the channel [16:34] adomokos: lxsameer: this might be a security issue and not node [16:34] springmeyer_ has joined the channel [16:34] wolftankk has joined the channel [16:34] lxsameer: adomokos: hmmm, i don't think so , i use start-stop-daemon tool (debian tool) to create a daemon, it execute node under a sys user [16:35] pyrotechnick has joined the channel [16:35] adomokos: lxsameer: sorry, I am not sure if I can help you any further... [16:36] lxsameer: adomokos: thanks a lot man [16:37] spolu: [self-promotion] if someone wants to give a try to dynamoDB w/ node: https://github.com/spolu/node-dynamodb [16:38] robotmay has joined the channel [16:38] davehamptonusa has joined the channel [16:38] draginx has joined the channel [16:38] davehamptonusa has left the channel [16:38] draginx: Is coffee worth learning? [16:38] draginx: ity seems like a lot of people cant wrap their heads around it so it makes ur code worthless to them O-o [16:38] TheJH has joined the channel [16:39] draginx: like if i were to colloborate with someone else [16:39] sriley: short or long answer? but basicly... no [16:39] bnoordhuis: draginx: thinking about becoming a barista? [16:39] sriley: (imo) [16:39] mmalecki: lol [16:39] broofa has joined the channel [16:42] draginx: coffee script lol [16:42] saidinesh5: draginx depends...... at work we *had* to switch to coffeescript , cuz the coders we had were from non computer science background... so coffeescript kinda made their code easier and lot more consistent [16:43] igl: right [16:44] panosru: lot's of ruby devs find themselves more comfortable with coffee-script [16:44] saidinesh5: haha panosru.... my boss is a ruby dev actually....... and he is the one who suggested it :P [16:44] jankeromnes has joined the channel [16:44] grom358 has joined the channel [16:44] panosru: and speaking of "worth" it's worth to learn something when you actually can benefit from it [16:44] sriley: imo coffee script is for people that want to learn a new "language", they want to write javascript, but dont want to learn javascript [16:45] saidinesh5: sriley: or the usecase i ve suggested :P [16:45] adomokos: sriley: I am thinking in JS when I write CS code [16:45] sriley: doesnt that fit that scenario ;) [16:45] saidinesh5: hahah [16:45] panosru: if you need to learn coffee-script just to have some fancy neat style of coding and making other say "OMFG what is he typing" well then it's not worth to learn it :D Also if it drops your productivity rhythm then again is not learn to work with it but I believe is worth to test it :D [16:47] panosru: thinking in js while writing cs is normal at the beginning but not after some period of time, you should be more comfortable of thinking in cs way [16:47] saidinesh5: yups..... i m more comfy not using the ()s for a function call :P [16:47] panosru: and is the same with any other similar thing like css -> sass, scss, less, stylus or html -> ejs,jade,haml etc [16:47] ryan_stevens has joined the channel [16:48] panosru: hmm I wanted to ask something and now I forgot it :P [16:48] fr0stbyte has joined the channel [16:48] infynyxx has joined the channel [16:48] bartt1 has joined the channel [16:48] saidinesh5: lol..... i just thought the same thing... although it was a friend on g(s)talk :P [16:49] xtianw: panosru: It's not really the same as those [16:49] panosru: ah yes! I try to find the best way to use jade with backbone, could anyone drop a suggestion on it ? [16:49] colinclark has joined the channel [16:50] yawNO has joined the channel [16:50] panosru: xtianw: yes but you get my point I believe [16:50] xtianw: panosru: Try jade-vu [16:50] LeMike has joined the channel [16:50] swestcott has joined the channel [16:50] alvaro_o has joined the channel [16:51] panosru: xtianw: thanks I'm gonna look on it ! [16:52] panosru: xtianw: nice but I'm not sure if it is what I'm looking for [16:54] kitt has joined the channel [16:54] kitt has joined the channel [16:55] caolanm has joined the channel [16:56] Shrink has joined the channel [16:56] Shrink has joined the channel [16:57] neurodrone has joined the channel [16:57] xtianw: panosru: What are you looking for? [16:57] aoberoi has joined the channel [16:57] aoberoi has left the channel [16:58] nibblebot: mde: can my Jakefile export tasks instead of just having tasks in the global namespace? I need to run some async functions before my tasks can be declared [16:59] emilisto has joined the channel [16:59] GrizzLyCRO has joined the channel [16:59] perezd has joined the channel [16:59] drockna has joined the channel [17:00] drockna: I have a express server. every other request returns a 404. help! [17:00] kenperkins: morning guys [17:02] avalanche123 has joined the channel [17:03] panosru: xtianw: so far I used to use requirejs in order to use text plugin and load my html template files, now because I'm using browserify instead of requirejs and I'm looking a way to load my jade templates and store them into variable in order to use them with backbone.js views [17:03] Me1000 has joined the channel [17:03] mange has joined the channel [17:03] mAritz: drockna: where do you see the 404s? [17:03] woyna has joined the channel [17:04] wingie has joined the channel [17:04] mAritz: FUCK YOU IRCCLOUD [17:04] sriley has joined the channel [17:04] relix has joined the channel [17:04] owenb has joined the channel [17:04] nym has joined the channel [17:04] eignerchris has joined the channel [17:04] qmx: mAritz: that's exactly why I run my own bouncer on an aws instance [17:05] mAritz: you could even run one using node.js ;D [17:05] mAritz: (or are you?) [17:05] iaincarsberg has joined the channel [17:05] grom358 has joined the channel [17:05] drockna: every other page ... 404. anyone ever heard of it before? [17:06] langworthy has joined the channel [17:06] stephank has joined the channel [17:07] mAritz: drockna: are you seeing them in the server logs or are you hitting refresh and getting it there in the browser? [17:08] drockna: mAritz: in the browser. the log isnt showing anything [17:08] drockna: http://analytics.pagodabox.com/apps/4e9f538048afd8774400003d/quick-stats-day [17:08] xpigeonx: would it be evil to steal the big int implementation from /deps/v8/benchmarks/crypto.js [17:08] drockna: that is the link [17:08] jayniz has joined the channel [17:09] mAritz: drockna: haha, that's awesome [17:09] jemparing has joined the channel [17:09] mAritz: drockna: no idea without seeing the server code [17:09] drockna: I can show you server code im not afraid [17:09] fcoury has joined the channel [17:09] mAritz: ok, post a gist [17:09] mAritz: but i have to go, maybe someone else can help you [17:09] mAritz: :/ [17:09] mAritz: sorry [17:10] sveisvei has joined the channel [17:10] ec has joined the channel [17:10] hariom has joined the channel [17:10] hariom: Can Node.js be used for building VOIP or IVR apps? [17:11] emilisto: hariom: I'd resort to flash action for that ;) [17:11] emilisto: *action script [17:11] shadowshell has joined the channel [17:12] _dc has joined the channel [17:12] hello123 has joined the channel [17:12] hello123: hey guys i need some help [17:12] wedtm has joined the channel [17:13] hello123: does anyone know of a lib that uses cookies to get website content? [17:13] bartt1 has joined the channel [17:13] xpigeonx: would it be evil to steal the big int implementation from /deps/v8/benchmarks/crypto.js [17:13] tanepiper has joined the channel [17:13] drockna: mAritz: http://pastebin.com/nWr5FGQc [17:14] antonkovalyov has joined the channel [17:15] hariom: emilisto: Would you kindly guide on it [17:16] bartt has joined the channel [17:16] antonkovalyov: Hi. Does anyone know what I might be missing if I get "unauthorized Name or password is incorrect" error when trying to publish a package even though I added a user and the user is in owners list? [17:16] drockna: O looks like I got it figured out. one of my co workers is dumb. [17:16] gwoo has joined the channel [17:16] gwoo has joined the channel [17:16] enmand has joined the channel [17:17] screenm0nkey_ has joined the channel [17:17] tiglionabbit has joined the channel [17:17] Raynos has joined the channel [17:17] jankeromnes has left the channel [17:18] relix has joined the channel [17:18] cballou has joined the channel [17:18] svnlto has joined the channel [17:18] Apage43 has joined the channel [17:19] panosru: when node.js crashes and when I try to run node or anything else that uses node I get node.js:458 var cwd = process.cwd(); restarting the server fixes the issue but if it crash again I need to restart again, it don't happen often but do you know a way to fix it without restart? Thanks [17:20] wycats has joined the channel [17:20] ritch1: antonkovalyov: do you get a valid response from `npm whoami` [17:20] antonkovalyov has joined the channel [17:20] shadowshell has joined the channel [17:21] owenb has joined the channel [17:21] Fabryz has joined the channel [17:21] svnlto has joined the channel [17:21] Wizek has joined the channel [17:22] panosru: nvm about my issue I just realized that some times people can do xstupid mistakes :D [17:22] isaacs: panosru: please gist the whole error output. [17:22] isaacs: panosru: or you can just realize it yourself :) [17:22] panosru: lol :P [17:22] zeade has joined the channel [17:22] hello123: are there any libs that can do what google does but with login info? [17:23] panosru: isaacs: my pwd was /example/foo/bar but I removed bar from textmate and then I tried to run node form /example/foo/bar but this path did not exist any more as a result process.cwd() throw exception :D so cd .. fixed the problem haha [17:24] gerred has joined the channel [17:24] meso has joined the channel [17:24] isaacs: heh, yep. [17:24] isaacs: panosru: crashing in undefined ways when cwd disappears is a unix tradition. [17:24] dilvie has joined the channel [17:24] meso has joined the channel [17:24] isaacs: panosru: the fact that "cwd" is in the error message at all is unusually helpful. [17:24] grom358 has joined the channel [17:25] isaacs: panosru: many tools just give you a random unhelpful "ENOENT: File does not exist" [17:25] retornam has joined the channel [17:25] panosru: yeah indeed :) [17:25] antonkovalyov__ has joined the channel [17:26] panosru: I have a week that I switched from php to full node.js and so far I love it, there are things that I have questions but it's normal :) [17:26] sotosof has left the channel [17:26] antonkovalyov__: Sorry if I missed anyone's replies, IRCCloud is being an ass. [17:27] antonkovalyov__: So what should I do about the "Name or password is incorrect." aside from creating a ticket (I found a few and it seems like every time isaacs just restarts a server) [17:27] TimTim has joined the channel [17:28] panosru: antonkovalyov__: ritch1 told you "antonkovalyov: do you get a valid response from `npm whoami`" :) [17:28] crodas has joined the channel [17:28] antonkovalyov__: panosru: ritch1: Sorry, missed that. Yeah, I get antonkovalyov [17:29] raenger has joined the channel [17:29] antonkovalyov__: Here: http://cl.ly/261W0w2X0P2o0C42122Z [17:29] tanepiper has joined the channel [17:29] jsurfer has joined the channel [17:30] igl1 has joined the channel [17:30] tomh has joined the channel [17:30] aelien27 has joined the channel [17:30] isaacs: antonkovalyov__: that's not the issue this time. it looks like your password in your .npmrc file actually is incorrect. [17:31] isaacs: antonkovalyov__: delete the _auth line from ~/.npmrc, and then run `npm adduser` again with the same username and password you had. or, if you've forgotten it, reset it at: http://admin.npmjs.org/reset [17:31] LeMike has joined the channel [17:31] zanefactory has joined the channel [17:31] heatxsink has joined the channel [17:32] antonkovalyov__: isaacs: Hm, weird. I did adduser only yesterday. Unless I registered before and forgot? Thanks! [17:32] coderarity has joined the channel [17:32] majek has joined the channel [17:32] RobWC has joined the channel [17:32] isaacs: antonkovalyov__: if you'd already had an account, then adduser should have failed if it got a bad pw [17:33] isaacs: but i just tested with my non-admin account, and it worked fine. [17:33] Qbix1 has joined the channel [17:33] antonkovalyov__: Hmmm, odd. [17:33] pizthewiz has joined the channel [17:33] iaincarsberg has joined the channel [17:35] antonkovalyov has joined the channel [17:35] antonkovalyov__: isaacs: http://cl.ly/1z0C0M21373J2o3B3S1s [17:35] antonkovalyov__: oh i see irccloud is back up [17:36] Cromulent has joined the channel [17:36] Apage43 has joined the channel [17:36] khrome has joined the channel [17:36] ec has joined the channel [17:36] JasonSmith has joined the channel [17:36] slajax has joined the channel [17:37] SkyRocknRoll has joined the channel [17:37] SkyRocknRoll has joined the channel [17:37] kenperkins: say I'm doing a tls.connect to a remote server by dns name, and said name has 3 A records. It seems like node caches the the IP it connects to such that on a connection failure, it doesn't re-resolve. [17:37] kenperkins: is that by design? or are there options to set that [17:37] strmpnk has joined the channel [17:37] jemparing has joined the channel [17:38] wankdanker: isaacs: hi! thanks for looking at the dgram stuff :) [17:38] Shrink has joined the channel [17:38] Shrink has joined the channel [17:38] jeremyselier has joined the channel [17:38] wankdanker: isaacs: do you want me to remove the libuv parts in the existing node pull request (https://github.com/joyent/node/pull/2163) ? [17:39] micheil has joined the channel [17:39] Swizec has joined the channel [17:39] tiglionabbit has joined the channel [17:39] JKarsrud has joined the channel [17:39] woyna has left the channel [17:39] joelmob has joined the channel [17:40] shiawuen has joined the channel [17:40] niftylettuce has joined the channel [17:40] nym has joined the channel [17:40] sriley has joined the channel [17:41] ryanseddon has joined the channel [17:41] risto has joined the channel [17:41] isaacs: wankdanker: hey [17:42] isaacs: wankdanker: ideally, yes. just mention that it depends on joyent/libuv#12345 (where 12345 is the pull req on libuv) [17:42] garann has joined the channel [17:42] salazr_ has joined the channel [17:42] wingie has joined the channel [17:42] mrb_bk has joined the channel [17:42] isaacs: wankdanker: the cla is more important, though. if you get whisked away by aliens today, and haven't signed the cla, we're kind of in a tricky spot. [17:43] dnyy has joined the channel [17:43] isaacs: since now everyone has seen your code, and can't claim we didn't steal it even if someone else writes the same functionality. [17:43] ralph_ has joined the channel [17:43] simb has joined the channel [17:43] staar2: hello [17:44] wankdanker: isaacs: cool. CLA is signed. aliens should no longer be a problem. [17:44] pradeebv has joined the channel [17:44] Raynos has joined the channel [17:44] owenb has joined the channel [17:44] Hosh has joined the channel [17:45] isaacs: sweet. [17:45] EyePulp has joined the channel [17:45] Fabryz has joined the channel [17:45] antonkovalyov: isaacs: Anything else I could do to investigate that? As you can see from the screenshot above I re-added my user successfully and publish still failed. [17:46] staar2: i am rewriting a code from nodetuts from couchdb to mongodb into this pastebin.com/69VLWaTN [17:46] isaacs: antonkovalyov: what version of npm/node are you using? [17:46] staar2: but i keep getting error [17:46] isaacs: antonkovalyov: oh, i see. [17:46] isaacs: it's recent [17:46] retornam has joined the channel [17:47] antonkovalyov: 0.6.5/1.0.106 [17:47] isaacs: antonkovalyov: can you log into https://isaacs.iriscouch.com/_utils/ with it? [17:47] antonkovalyov: I don't see anything obvious in the npm-debug.log [17:47] isaacs: antonkovalyov: with that username and password? [17:47] antonkovalyov: Lemme try [17:47] sdwrage has joined the channel [17:47] isaacs: antonkovalyov: also, any oddball non-url-safe chars in your password? (shouldn't be a problem, but just for debugging purposes) [17:48] trose: so I'm using express.js and i have a get listener that should just run a calculation, and do a res.send(string); res.end(). My web page just sits there with a loading icon though... do i need to set headers or something? [17:48] trotter has joined the channel [17:48] antonkovalyov: isaacs: It has a + and a % [17:48] FrenchRoyalHeir has joined the channel [17:48] mikeal has joined the channel [17:48] FrenchRoyalHeir: Hello, nodesters. [17:48] kmiyashiro has joined the channel [17:48] wycats has joined the channel [17:48] metapandava has joined the channel [17:48] maletor has joined the channel [17:49] antonkovalyov: isaacs: How do I log into _utils? It didn't ask for login/password [17:49] trose: https://gist.github.com/1648662 here's the gist of my problem... [17:49] FrenchRoyalHeir: So I was wondering, within a catch() { }, how do you get the line number of the error? [17:49] trose: the child process returns the proper answer... something is wrong with res [17:49] booo has joined the channel [17:49] antonkovalyov: Oh I see the tiny link there [17:49] relix has joined the channel [17:49] antonkovalyov: isaacs: Yes, I can log into _utils. [17:50] crodas has joined the channel [17:50] svnlto has joined the channel [17:50] dscape has joined the channel [17:50] jayniz has joined the channel [17:50] kenperkins: can someone explain what process.binding('cares_wrap') means [17:51] franciscallo has joined the channel [17:52] kevwil has joined the channel [17:52] dthompso99 has left the channel [17:52] isaacs: antonkovalyov: try resetting your account, and using a password with no + and no % [17:52] cole_gillespie has joined the channel [17:52] isaacs: antonkovalyov: just pick a very long string. [17:53] cmwelsh has joined the channel [17:53] isaacs: antonkovalyov: funny chars increase your password entropy geometrically, but *more* chars increase it exponentially. [17:53] FrenchRoyalHeir: isaacs: Does node.js use the Error object's stack property to provide a "trackback" of where the error occurred? [17:53] isaacs: antonkovalyov: passwords should be sentences. [17:53] isaacs: antonkovalyov: easier to remember, harder to crack. [17:53] martin_sunset has joined the channel [17:54] antonkovalyov: isaacs: I have both. :-) [17:54] isaacs: "i like publishing npm packages because npm is awesome" is way more secure and easier to remember than "zni3@4@~!+%%xz@?" [17:54] isaacs: of course, not that one. [17:54] isaacs: because that's the first thing everyone guesses. [17:54] lmatteis has joined the channel [17:54] antonkovalyov: :-) [17:55] icebox: isaacs: well... npm is the nirvana of sw distribution :) [17:55] bshumate has joined the channel [17:55] bshumate has joined the channel [17:55] alessioalex has joined the channel [17:55] grom358 has joined the channel [17:56] metapandava has joined the channel [17:56] dthompso99 has joined the channel [17:56] jjd has joined the channel [17:56] JasonJS has joined the channel [17:56] jerrysv has joined the channel [17:56] antonkovalyov: isaacs: Worked now. Thank you sir! [17:57] Wes__ has joined the channel [17:57] pixel13 has joined the channel [17:58] pixel13 has left the channel [17:58] patcito has joined the channel [17:58] flagg0204 has joined the channel [17:58] hipsters_ has joined the channel [17:59] yolin has joined the channel [17:59] daleharvey has joined the channel [17:59] niloy__ has joined the channel [18:00] FrenchRoyalHeir: How can I get the line number of an error if eval() has been used to load the file? [18:00] flagg0204 has joined the channel [18:00] FrenchRoyalHeir: Is there another way to load a JS file into node besides eval() and require()? [18:00] Wes__: Hi, I am using the browserify module on Windows 7. Error: Cannot find module "c:\\Program Files (x86)\\Apache Software Foundation\\Apache2.2\\htdocs\\js\\bingo\bingo" from directory "c:\\Program Files (x86)\\Apache Software Foundation\\Apache2.2\\htdocs\\js" which is the first require() in the code [18:00] RexM has joined the channel [18:01] AvianFlu: FrenchRoyalHeir, if you make a `new Error('Error Message!')` there's usually a stack trace attached [18:01] benvie: oh my [18:01] benvie: apache on windows is fun [18:01] hackband has joined the channel [18:01] AvianFlu: it will point to whatever line the new Error() was called on [18:01] isaacs: antonkovalyov: ok, so the issue seems to be some thing with funny chars in the pasword. [18:02] willwhite has joined the channel [18:02] isaacs: antonkovalyov: can you please post an issue on the npm github repo stating that having % and + in teh password make it fail? [18:02] isaacs: antonkovalyov: it's either a bug in npm, request, node, or couchdb. [18:02] trose: using node.js if i just want to return text can i use res.send('hello world'); res.end(); or is there more to it? [18:02] isaacs: possibly many bugs in all of those :) [18:02] isaacs: trose: yep, you can do that, for sure. you do need to res.writeHead(status, headers) first, though [18:02] trose: s/node.js/express.js/ [18:02] trose: isaacs, ooooooooh [18:02] trose: okay [18:03] screenm0nkey_ has joined the channel [18:03] isaacs: trose: oh, i think express does the headers for you, maybe. i don't know [18:03] hackband has joined the channel [18:03] innociv has joined the channel [18:03] isaacs: trose: there's also the res.addHeader(key, value) syntax [18:03] Wes__: using browserify on our mac works fine and it outputs the "browserified" file correctly. does it have something to do with the directory url with the Program Files (x86) path? [18:03] isaacs: trose: and you can just do res.end(message) if you are only going to send one thing. [18:03] orlandovftw has joined the channel [18:04] sveisvei has joined the channel [18:04] xpigeonx has joined the channel [18:05] trose: isaacs, awesome, the writehead method worked. [18:05] FrenchRoyalHeir: AvianFlu: The Error object would have to be constructed within the eval(), right? [18:05] AvianFlu: yeah [18:05] AvianFlu: what are you trying to grab with eval? [18:05] jsurfer has joined the channel [18:06] brianthecoder has joined the channel [18:06] fcoury has joined the channel [18:06] trose: isaacs, thanks! [18:06] aoberoi_ has joined the channel [18:06] isaacs: trose: np [18:06] AvianFlu: if you have some JS with an incomprehensible error, it seems like the code needs work more than your loading of it [18:07] Shrink has joined the channel [18:07] Shrink has joined the channel [18:07] yawNO: hi ppl [18:07] eee_c has joined the channel [18:07] samstefan has joined the channel [18:08] remysharp has joined the channel [18:08] flagg0204 has joined the channel [18:08] dob_ has joined the channel [18:09] gregmoreno has joined the channel [18:10] Vespakoen has joined the channel [18:11] joshfinnie has joined the channel [18:11] devongovett has joined the channel [18:11] isaacs: hi yawNO [18:12] markq has joined the channel [18:12] taf2 has joined the channel [18:12] devongovett has joined the channel [18:13] sebash has joined the channel [18:13] samsonjs has joined the channel [18:14] markq has left the channel [18:14] robotmay has joined the channel [18:14] FrenchRoyalHeir: AvianFlu: My code has no errors. [18:15] FrenchRoyalHeir: AvianFlu: The problem is precisely that it's very hard to track down errors that occur within an eval() [18:15] AvianFlu: FrenchRoyalHeir, well that's what I'm saying [18:15] AvianFlu: what are you trying to eval() [18:16] xpigeonx: is there any timeframe for when node will reach 1.0? [18:16] AvianFlu: the code inside the eval() seems to be the problem [18:16] teadict: xpigeonx: what's the rush? [18:16] Qbix1 has joined the channel [18:16] mmalecki: I hope never! [18:16] AvianFlu: unless you're just asking in general and don't actually have errors [18:16] AvianFlu: ...yet [18:16] teadict: round numbers convince bosses better? that's why? [18:16] yawNO: hi isaacs [18:16] yawNO: what's up? [18:16] AvianFlu: in which case I misunderstood [18:16] mmalecki: isaacs said that API will be freezed then. freezed APIs are bad. [18:16] insin: the stable version numbers are nice and round [18:16] xpigeonx: teadict: round numbers make me feel happy [18:17] markq has joined the channel [18:17] panosru: do you know any tool better than supervisor ? [18:17] xpigeonx: mmalecki: whats wrong with frozen APIs ? [18:17] markq has joined the channel [18:17] mmalecki: xpigeonx: they don't evolve [18:17] markq has left the channel [18:18] sharkbird has joined the channel [18:18] mmalecki: you don't get that cool feeling that you'll have to do some stuff to make your app work on newer version [18:18] cronopio has joined the channel [18:19] EyePulp has joined the channel [18:19] grom358 has joined the channel [18:19] CIA-101: node: 03isaacs 07v0.6 * rf25ec07 10/ ChangeLog : [18:19] CIA-101: node: Add missing ChangeLog item re: fs.stat improvement [18:19] CIA-101: node: This was a very significant improvement that should have been called out [18:19] CIA-101: node: explicitly. [18:19] CIA-101: node: I added 'review all libuv changes' to my build checklist. It won't [18:19] CIA-101: node: happen again. Sorry, @igorzi. - http://git.io/bphGLw [18:20] dilvie: In semantic versioning, major versions indicate backward-breaking changes. 1.0 means that the API is backwards stable (not frozen) until the next major version. Until you reach 1.0, backward breaking changes can be made at any time, so upgrading is not necessarily easy. [18:20] flagg0204 has joined the channel [18:20] uwek has joined the channel [18:20] Wes__: I installed node v0.6.8 on windows using the msi. I installed browserify by "npm install -g browserify" and I set up the example from the browserify git-page (https://github.com/substack/node-browserify) when I run "browserify entry.js -o browserify.js" I get this error: Error: Cannot find module "c:\\1\\foo" from directory "c:\\1" at Function. (C:\Users\Boom\AppData\Roaming\npm\n [18:20] Wes__: ode_modules\browserify\lib\wrap.js:363:19). the directory C:\1\ has the three files (entry.js, foo.js, bar.js) what is causing this error? [18:21] langworthy has joined the channel [18:21] niloy__ has joined the channel [18:21] fermion has joined the channel [18:21] FrenchRoyalHeir: AvianFlu: I just find it very obnoxious that require() forces me to split up my large codebase into files sitting in node_modules -- unless I want to mess with NODE_PATH everytime I run my app. [18:22] descipher has joined the channel [18:22] sarlalian has joined the channel [18:22] markq has joined the channel [18:22] wingie: about vows: in the topic function the this.callback is being passed (err, data) .. when err is an error vowjs throws the error and halts the tests [18:22] romain_ has joined the channel [18:22] xtianw: FrenchRoyalHeir: You can require a file from any directory [18:22] dilvie: FrenchRoyalHeir: why is that obnoxious? [18:23] mmalecki: wingie: code example? [18:23] yolin has joined the channel [18:23] FrenchRoyalHeir: xtianw: Not exactly. It has to be in NODE_PATH [18:23] AndreasMadsen has joined the channel [18:23] xtianw: FrenchRoyalHeir: require('./lib/module.js'); [18:24] xtianw: FrenchRoyalHeir: require('./lib/module'); actually [18:24] kuebk has joined the channel [18:24] FrenchRoyalHeir: xtianw: Oh, I didn't know you could do that. :-) [18:24] FrenchRoyalHeir: Good to know. [18:24] markq has left the channel [18:25] dilvie: FrenchRoyalHeir: It's pretty common to require from ./lib =) [18:25] markq has joined the channel [18:25] FrenchRoyalHeir: Oh, that's not so bad. :-) [18:25] markq has left the channel [18:25] insin: ♥ node modules [18:25] purr: Let it be known that insin hearts node modules. [18:25] wingie: mmalecki: http://pastie.org/3220367 [18:25] markq has joined the channel [18:25] FrenchRoyalHeir: Is anyone using jsdom to generate pages server-side? [18:26] dilvie: FrenchRoyalHeir: It's really slow. [18:26] insin: using a light mockup of the dom with my builder library, but not JSDom itself [18:26] mmalecki: wingie: yes? it's expected [18:26] AvianFlu: FrenchRoyalHeir, for the most part it's just too slow to do for every request [18:26] AvianFlu: (jsdom) [18:26] wingie: mmalecki: i can't get why its expected [18:27] wingie: it's an "User already exists" error .. it's part of the test [18:27] mmalecki: wingie: sec, let me check it once again [18:27] bob has joined the channel [18:27] FrenchRoyalHeir: AvianFlu: It does seem slow to get it up and running with the .env() method. [18:27] dilvie: FrenchRoyalHeir: You could use jsdom to construct (and cache) the static parts of your pages, and then render the client-specific stuff on the client side. =) [18:28] wingie: i wanna assert in a vow that my lib throws "User already exists" instead of halting the tests [18:28] dilvie: by "static" parts, I mean the bits that are the same for every user. [18:28] FrenchRoyalHeir: But if you kept the same jsdom env running for all requests, maybe it would be fast enough? [18:28] wingie: don't get why Vows is throwing the exception for me [18:28] bob: is there any plans to add support to require() so it can use things like db-mysql that i installed globally on the system [18:28] nodee has joined the channel [18:29] nodee: ACTION  [18:29] mxbtty has joined the channel [18:31] mmalecki: wingie: you can walk it around. checking, it now, but it's an expected behavior, I think [18:31] wingie: just dont get why its expected [18:31] wingie: im filing an issue [18:31] JJMalina has joined the channel [18:31] mmalecki: because it's an error :) [18:32] nodee has left the channel [18:32] TimTim has joined the channel [18:32] erichynds has joined the channel [18:32] wingie: a library throws errors [18:32] wingie: but these should be asserted since it's part of the lib's functionality [18:32] wingie: not halting the tests [18:33] dilvie: FrenchRoyalHeir: You might want to investigate whether or not plates will offer what you require from JSDOM.. it might be faster. It's the default template library for flatiron: http://flatironjs.org/ [18:34] Shrink has joined the channel [18:34] prettyrobots has joined the channel [18:34] Shrink has joined the channel [18:34] FrenchRoyalHeir: dilvie: Running jQuery? :D [18:34] wsirc_0278687 has joined the channel [18:34] blueadept has joined the channel [18:34] blueadept has joined the channel [18:35] AndreasMadsen: How do I know if a TCP server is listening. I have a case where I might get a TCP object there is not ready yet, so it want to add a 'listening' handler, but if it is listening the handler won't be executed. [18:36] dilvie: FrenchRoyalHeir: nevermind. =) [18:36] dilvie: plates will not run jQuery. [18:37] hackband has joined the channel [18:37] FrenchRoyalHeir: dilvie: Ah, it's more analogous to Mustache? [18:37] mmalecki: wingie: it's a bug in some cases. [18:38] wingie: mmalecki: its a gotcha [18:38] FrenchRoyalHeir: dilvie: If it can provide NodeLists, it might be good enough [18:39] wingie: mmalecki: you know where i should use assert.throws ? [18:39] dgathright has joined the channel [18:39] wingie: in a topic or vow [18:39] mmalecki: wingie: https://gist.github.com/67a6f977e846929c924a [18:39] nerdfiles has joined the channel [18:39] mmalecki: wingie: doesn't throw now. try removing _ thing, it'll throw [18:39] flagg0204 has joined the channel [18:39] mmalecki: please open an issue, I'll fix it. [18:39] TooTallNate has joined the channel [18:40] nerdfiles has left the channel [18:40] dgathright has joined the channel [18:40] mmalecki: wingie: oh, wait, I see what you did there. [18:40] mmalecki: passing topic down. [18:41] mmalecki: hm... [18:41] descipher_ has joined the channel [18:42] salva has left the channel [18:42] mmalecki: fuck. you. irccloud. [18:42] scientes has joined the channel [18:42] bob has left the channel [18:43] mraleph has joined the channel [18:43] jankeromnes has joined the channel [18:44] heatxsink has joined the channel [18:45] JKarsrud has joined the channel [18:45] ec has joined the channel [18:45] jemparing has joined the channel [18:46] garann has joined the channel [18:46] wingie has joined the channel [18:46] wingie: mmalecki: its weird that it throws the error when the second arg is thrown [18:46] iaincarsberg has joined the channel [18:46] wingie: is missing i mean [18:46] sriley has joined the channel [18:46] antonkovalyov has joined the channel [18:46] scientes: http://packages.debian.org/sid/nodejs [18:46] scientes: why is armel behind? [18:47] aete has joined the channel [18:47] scientes: did v8 drop support for non-VFP? [18:47] wingie: mmalecki: I'll file a bug issue? [18:47] StanlySoManly has joined the channel [18:47] mmalecki: wingie: yeah, please. I'll get to it. [18:47] svnlto has joined the channel [18:48] Wizek has joined the channel [18:48] salazr_ has joined the channel [18:48] alessioalex has joined the channel [18:48] JasonSmith has joined the channel [18:48] Hosh has joined the channel [18:48] lmatteis has joined the channel [18:48] Raynos has joined the channel [18:49] scientes: oh geeze, debian is way behind anyways [18:49] Topcat has joined the channel [18:50] EhevuTov has joined the channel [18:50] `3rdEden has joined the channel [18:51] nmtmason has joined the channel [18:52] akter has joined the channel [18:52] MattRichardson has joined the channel [18:53] ryan_stevens has joined the channel [18:53] jerrysv: dscape: don't mind me, but you happened to be going to the best coffee in the flatiron district already ... [18:54] sveisvei has joined the channel [18:54] mrb_bk has joined the channel [18:54] ryanseddon has joined the channel [18:55] cmwelsh has joined the channel [18:55] ralph_ has joined the channel [18:55] strmpnk has joined the channel [18:55] nym has joined the channel [18:55] tanepiper has joined the channel [18:55] CarterL has joined the channel [18:55] zodiak has joined the channel [18:56] tkaemming has joined the channel [18:56] grom358 has joined the channel [18:57] TimTim has joined the channel [18:58] kenperkins has joined the channel [19:00] LarsSmit has joined the channel [19:01] ap3mantus has joined the channel [19:02] wingie_ has joined the channel [19:02] Shrink has joined the channel [19:02] brianthecoder: so I don't know what is going on here, but the json being returned from the google maps api is causing node to error out when I try and parse it [19:02] youngian has joined the channel [19:03] brianthecoder: but ruby handles it fine [19:03] brianthecoder: any thoughts? [19:03] fcoury has joined the channel [19:03] RLa: what is the error and do you have example json causing it [19:03] remysharp has joined the channel [19:03] tiglionabbit has joined the channel [19:04] metapandava has joined the channel [19:05] pors has joined the channel [19:05] mAritz has joined the channel [19:05] Me1000 has joined the channel [19:05] ritch1 has left the channel [19:06] Destos has joined the channel [19:06] dscape: jerrysv: went to stmptown [19:08] iangreenleaf has joined the channel [19:08] thriple has joined the channel [19:08] jerrysv: dscape: good good :) unfortunately, once you remove food and beverages, my knowledge of manhattan starts to become bare [19:09] mandric has joined the channel [19:09] spuddleziz has joined the channel [19:09] spuddleziz: any freelancers in the Reading, UK area? [19:09] pluc has joined the channel [19:10] deedubs: anyone seeing any irc hooks from Github? [19:10] wingie: mmalecki: is cloudhead still active maintaining vows? [19:11] spuddleziz: just wondering - got a couple of node projects I could use some help on... [19:11] mmalecki: wingie: no, I'm the maintainer now [19:11] wingie: i see [19:11] jeremyselier has joined the channel [19:12] owenb has joined the channel [19:12] wingie: mmalecki: will vowsjs be ported to the browser you think? [19:12] wingie: so it can work on both sides like mocha [19:12] zitchdog has joined the channel [19:12] gigafied has joined the channel [19:12] mmalecki: wingie: I don't think so. if you can put together a codesurgeon script, I'd accept a pull request. [19:13] Minkben has joined the channel [19:13] mmalecki: wingie: like in https://github.com/flatiron/broadway/blob/master/bin/build [19:13] DarkGlass has joined the channel [19:14] pradeebv has joined the channel [19:14] lxsameer has joined the channel [19:14] spuddleziz: any freelancers in the Reading, UK area? [19:15] stonebranch has joined the channel [19:16] Heisenmink has joined the channel [19:17] DarkGlass has left the channel [19:17] megalomix has joined the channel [19:17] megalomix: hello [19:18] megalomix: https://gist.github.com/1649086 [19:18] shinuza has joined the channel [19:18] megalomix: could someone tell me WHY "TypeError: Property '@' of object # is not a function" ?? [19:18] megalomix: i'm using xml2json [19:19] mikeal has joined the channel [19:19] iVic has joined the channel [19:20] megalomix: that makes no sense to me [19:20] reid has joined the channel [19:20] torvalamo has joined the channel [19:20] hipsters_ has joined the channel [19:20] johnhamelink has joined the channel [19:20] teadict: xml is veil [19:20] teadict: I mean evil [19:21] teadict: I mean crap [19:21] yawNO has joined the channel [19:21] teadict: lolol [19:21] megalomix: :D [19:21] tjfontaine: there's not a lot of context there, but it looks like something is expecting "s" to be callable [19:21] megalomix: but it is not [19:21] megalomix: (using xml2js) [19:21] megalomix: the problem is that object has '@' [19:21] teadict: but it's being called as function anyway [19:21] megalomix: so i don'�t undertstant what is this error [19:21] teadict: it's not the @'s fault [19:21] devaholic has joined the channel [19:22] Fabryz has joined the channel [19:22] teadict: what are you using the xml2js output for? [19:22] RexM has joined the channel [19:22] wycats has joined the channel [19:22] majek has joined the channel [19:22] tjfontaine: megalomix: there's not enough context in your gist for sense to be made [19:22] teadict: why the crap is @ valid as property name? [19:22] megalomix: tjfontaine, this is the code...obviously a pieace of code....but i'm using xml2js and i have the object i posted [19:22] teadict: well, actually is okey.. [19:22] benvie: everythibng is a valid property name [19:22] grom358 has joined the channel [19:22] teadict: yeah [19:23] benvie: obj['your mom is super dumb'] = true [19:23] benvie: valid [19:23] megalomix: tjfontaine, the object you see is "stock" variable [19:23] teadict: assert(true); // undefined [19:23] teadict: i win [19:23] benvie: NaN === NaN [19:23] benvie: .. NaN === NaN [19:23] catb0t: false [19:23] tjfontaine: megalomix: the caret positioning indicates that something is be going on [19:23] benvie: .. x = NaN; x === x; [19:24] catb0t: false [19:24] teadict: gotta love it [19:24] benvie: .. 1/0 === 1/-0 [19:24] catb0t: false [19:24] teadict: .. x = !NaN; x !== x; [19:24] catb0t: false [19:24] teadict: hah [19:24] benvie: .. 0 === -0 [19:24] catb0t: true [19:24] megalomix: tjfontaine, yes but it is a "js" problem. ... i mean...the object HAS the @ property...i only need to access to it [19:25] tjfontaine: megalomix: you have not provided enough context to solve the problem, I don't know what more you want me to say [19:25] megalomix: tjfontaine, what context do i have to provide? [19:25] larsschenk1 has joined the channel [19:25] larsschenk1 has left the channel [19:25] tjfontaine: more. [19:25] megalomix: var obj { @: {a: 1} } ; obj['@']; [19:25] brianthecoder has joined the channel [19:25] tjfontaine: megalomix: that works fine, so ... [19:25] benvie: function egal(a, b){ return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b }; egal(NaN, NaN) [19:26] benvie: .. function egal(a, b){ return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b }; egal(NaN, NaN) [19:26] catb0t: true [19:26] megalomix: th stock variable has the object you see [19:26] teadict: so I'm starting to build this big app structure.. [19:26] tjfontaine: .. a = {'@': true}; a['@'] [19:26] catb0t: true [19:26] benvie: .. function egal(a, b){ return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b }; egal(0, -0) [19:26] catb0t: false [19:26] megalomix: tjfontaine, the question is: TypeError: Property '@' of object # is not a function [19:26] megalomix: what "function" ?? [19:26] lxsameer has joined the channel [19:26] lxsameer has joined the channel [19:26] megalomix: i'm not calling a function [19:26] teadict: it has modules/sections, which have tabs/subsections, which contain widgets/tables/forms/etc... [19:26] isaacs: megalomix: someone's trying to call a function [19:27] thalll has joined the channel [19:27] Venom_X has joined the channel [19:27] teadict: so I was thinking I make the sections normal html output.. tabs async and widgets too [19:27] uwek has joined the channel [19:27] benvie: @ may be defined as an accessor with a faulty getter [19:27] brianthecoder: RLa: https://gist.github.com/1649120 [19:27] jxson has joined the channel [19:27] megalomix: isaacs, someone WHO? :d [19:27] brianthecoder: RLa: that's the json, and the error [19:27] megalomix: "Stock" is an object [19:27] megalomix: it is not a function, module, class etc etc [19:28] megalomix: it has one property @ [19:28] megalomix: with three properties inside [19:29] webben has joined the channel [19:29] benvie: that's not a js error, it's an error with something the bot is doing [19:29] benvie: I believe '@' is used as a symbol for tokenizing xml [19:29] benvie: and maybe other stuff [19:29] benvie: in some modules [19:29] pyrotechnick has joined the channel [19:29] megalomix: benvie, one moment...i only get this error when i do stock['@'] [19:29] megalomix: otherwise i don't get nothing [19:30] benvie: it's used as a meta container for an unnamed hash [19:30] megalomix: if i print "Stock" it is a normal object [19:30] Cromulent has joined the channel [19:30] megalomix: so the @ is the problem ? [19:30] skm has joined the channel [19:30] tomyan has joined the channel [19:30] benvie: yeah, it's used by modules based on sax [19:31] Sami_ZzZ has joined the channel [19:31] benvie: as a property name for the container for some xml stuf [19:32] megalomix: https://github.com/Leonidas-from-XIV/node-xml2js [19:32] cjm has joined the channel [19:32] megalomix: it uses "sax" [19:32] RLa: brianthecoder, it looks ok [19:32] benvie: yeah [19:32] RLa: json, that is [19:32] brianthecoder: RLa: :( dammit, maybe I'll try using xml [19:32] CIA-101: libuv: 03Igor Zinkovsky 07ipc_threads * r9811e0f 10/ (11 files in 6 dirs): import/export streams accross loops - http://git.io/6VwEJA [19:32] benvie: just don't use '@' [19:33] mmalecki: isaacs: I love you for `npm install --save` [19:33] RLa: brianthecoder, what json parser it uses? [19:33] RLa: brianthecoder, to be sure, try to parse it directly [19:33] brianthecoder: RLa: I'm just using nodes JSON.parse [19:33] brianthecoder: RLa: and I can parse the response in ruby [19:34] RLa: what is you apply JSON.parse directly to that string [19:34] draginx has left the channel [19:34] FrenchRoyalHeir: How can I test how many requests/sec my Node.js service can handle? [19:34] megalomix: bevie [19:34] RLa: i suspect it might be something else that causes error [19:34] lxsameer has joined the channel [19:34] lxsameer has joined the channel [19:34] benvie: isaacs taught me how to rip off old people [19:34] RLa: FrenchRoyalHeir, there is ab tool [19:34] megalomix: benvie, the @ ? [19:34] isaacs: benvie: really? i thought i kept that trick to myself. [19:34] benvie: yes stop using it [19:34] johnmdonahue has joined the channel [19:34] megalomix: so how can i get the object inside @? [19:34] benvie: nope and foreign people, you let the bag out [19:35] isaacs: damn. [19:35] megalomix: Rla i need to convert XML to JSON [19:35] isaacs: ACTION resolves to stop getting drunk in public. [19:35] skript has joined the channel [19:35] benvie: Object.getOwnPropertyDescriptor(obj, '@') [19:35] benvie: see if that works [19:35] brianthecoder: RLa: here's my code for the client https://gist.github.com/137df04c66ca1a200d15 [19:35] megalomix: ok benvie [19:35] isaacs: megalomix: do you have an example code where it's breaking when you access '@'? [19:35] benvie: yeah a bit of context would be more helpful [19:35] benvie: though that last thing should probably work anyway [19:35] megalomix: one moment i try benvie code [19:35] RLa: brianthecoder, it looks fine [19:36] RLa: megalomix, xslt? :) [19:36] FrenchRoyalHeir: RLa: ab tool? [19:36] FrenchRoyalHeir: RLa: Ah, found it. Thanks! [19:36] megalomix: RLa, xslt ?? [19:36] Locke23rus has joined the channel [19:36] brianthecoder: RLa: dammit, I can't figure out why its breaking [19:37] megalomix: benvie, yes! not it works! OMG, why? [19:37] JasonJS has joined the channel [19:37] benvie: it uses a lower level thing to access the data [19:37] RLa: brianthecoder, copy-paste that code into repl with JSON.parse and see if it errs again [19:37] brianthecoder: k [19:37] benvie: bypassess whatever thing is breaking [19:37] benvie: some getter you're hitting [19:38] megalomix: benvie, ok but what do you think about the error? [19:38] megalomix: i mean....the reason of the error should be? [19:38] RLa: megalomix, http://www.bramstein.com/projects/xsltjson/ and there are some xslt libs in json [19:38] benvie: so [19:38] benvie: TypeError: Property '@' of object # is not a function [19:38] benvie: when you access is like a property [19:39] benvie: means it's defined as a getter, but the getter isn't a functions [19:39] benvie: as in [19:39] antonkovalyov has left the channel [19:39] benvie: Object.defineProperty(obj, '@', { get: INVALIDTHINGRIGHTHERE }) [19:39] benvie: that needs to be a function and isn't [19:39] der| has joined the channel [19:40] benvie: you're hitting that getter and it' [19:40] benvie: it's not a valid function [19:40] megalomix: omg [19:40] megalomix: stock = Object.getOwnPropertyDescriptor(stock, '@') [19:40] megalomix: ^ [19:40] megalomix: TypeError: object is not a function [19:40] megalomix: i get the error, i was wrong [19:40] megalomix: :O [19:40] benvie: so your object is an instance of what we call ITSGODAMNBROKEN [19:41] adambeynon has joined the channel [19:41] benvie: actually stock isn't an object [19:41] benvie: or Object isn't defined [19:41] benvie: .. delete Object [19:41] catb0t: true [19:41] megalomix: ? [19:41] benvie: .. Object.getOwnPropertyDescriptor({}, 'yourmom') [19:41] catb0t: Exception: ReferenceError: Object is not defined [19:41] megalomix: var s = Oject.getOwnPropertyDescriptor(stock, '@') [19:41] megalomix: [19:41] benvie: i guess that's a difference error [19:42] brianthecoder: RLa: worked in the console copy and pasting, wtf? [19:42] megalomix: benvie maybe it is better to change the module [19:42] cody-- has joined the channel [19:42] megalomix: ? [19:42] cgfuh has joined the channel [19:42] benvie: .. while (true) {} [19:42] catb0t: Timeout Error [19:42] RLa: brianthecoder, so something else causes your error [19:42] pyrotechnick has joined the channel [19:42] cody--: anyone have any advice on preventing my heroku app from idleing out? [19:42] benvie: bam done [19:43] brianthecoder: RLa: yeah, but what, there's almost no code there [19:43] BrianE has joined the channel [19:43] megalomix: benvie maybe a different module? [19:43] grom358 has joined the channel [19:43] benvie: it's telling you: something is calling that thing as a function. It ISN'T a function, but it does exist [19:43] soapyillusions has joined the channel [19:43] benvie: and is an object [19:43] megalomix: yes, so? i don't see solutions [19:44] benvie: so find some wayward () [19:44] isaacs: megalomix: what's the line after your access of @? did you miss a semicolon before a (? [19:44] johnmdonahue: cody--: are you paying for a web worker? [19:44] benvie: oh yeah [19:44] megalomix: isaacs, hmmm i see let me check [19:44] benvie: the last time I saw that error [19:44] isaacs: megalomix: please gist the code. [19:44] tjfontaine: like I said, the caret positioning seems to indicate something is going on [19:44] cody--: um, im using the free hosting [19:44] benvie: it was a semicolon issue, now that you remind me [19:44] isaacs: megalomix: describing code in english is the path of pain and futility. [19:45] johnmdonahue: cody--: http://devcenter.heroku.com/articles/dynos [19:45] isaacs: regardless of whether you terminate lines with semis or not, you must prefix any line that starts with ( or [ with a semi. [19:45] benvie: that's one of the few places where the lack of semicolons pops up and that's one of the common errors [19:45] megalomix: isaacs, https://gist.github.com/1649196 [19:45] brianseeders has joined the channel [19:45] benvie: yeah [19:45] isaacs: megalomix: no, the code that throws the error. [19:45] isaacs: megalomix: all of it [19:45] johnmdonahue: cody--: check at the bottom FAQ "What is dyno idling" [19:45] orlandovftw has joined the channel [19:45] isaacs: megalomix: specifically, the line where it's throwing... what's the line AFTER that one. [19:45] benvie: that's enough [19:45] megalomix: yes [19:45] benvie: add a semicolon after `return` [19:46] megalomix: isaacs, stock = Object.getOwnPropertyDescriptor(stock, '@') <--------- [19:46] megalomix: ok i try [19:46] cody--: ah thanks johnmdonahue [19:46] benvie: that's one of the places where semicolon insertion fails [19:46] isaacs: benvie: no, return is un-continuable [19:46] johnmdonahue: cody--: np [19:46] mendel_ has joined the channel [19:46] isaacs: benvie: no, that's the place where semicolon insertion *never* fails. [19:46] bodisiw has joined the channel [19:46] benvie: hmmm [19:46] isaacs: benvie: return is a restricted production. [19:46] isaacs: return\n{obj:"nope! you returned undefined!"} [19:47] benvie: ok yeah give us the rest of the code [19:47] megalomix: hmmm guys [19:47] megalomix: strange.... [19:47] megalomix: if i ADD ; at the end of return [19:47] megalomix: i get the SAME Error [19:47] megalomix: BUT [19:47] benvie: butt [19:47] megalomix: if i also add the ; after var stock [19:47] megalomix: it works �_� [19:47] tjfontaine: more words, less lines [19:47] benvie: ok so [19:47] h4mz1d has joined the channel [19:47] benvie: it's not the return then...it's the var stock [19:47] isaacs: megalomix: i would need to see the rest of the code. [19:48] megalomix: ok isaacs one moment [19:48] tjfontaine: megalomix: notice a trend of people saying they need more context? [19:48] benvie: yeah context, maybe we need capital letters [19:49] isaacs: megalomix: https://gist.github.com/1649218 [19:49] innociv has joined the channel [19:49] isaacs: works for me [19:49] megalomix: isaacs, this is the complete code https://gist.github.com/1649215 [19:49] benvie: this is being executed a module and not pasted into the repl correct? [19:49] benvie: the repl will error with this pattern [19:50] benvie: var self = this [19:50] benvie: , count = stocks.length [19:50] mmalecki: mikeal: hey [19:50] megalomix: ? [19:50] megalomix: wrong? [19:50] mmalecki: mikeal: have you considered doing automatic encoding in request? [19:50] Destos has joined the channel [19:50] isaacs: megalomix: line 11 [19:50] logbot99693 has joined the channel [19:50] isaacs: megalomix: what is the first non-whitespace character on line 11 [19:50] spuddleziz: any freelancers in the Reading, UK area? [19:50] mmalecki: mikeal: I have to do ?key=%22key%22 now, instead of ?key="key" [19:50] mikeal: mmalecki: i have considered it [19:50] isaacs: megalomix: Write this down. With a pen. Tape it to your keyboard: [19:50] corruptmem has joined the channel [19:50] mikeal: ok, you mean for couch queries [19:51] megalomix: isaacs, a function [19:51] isaacs: megalomix: LINES BEGINNING WITH ( MUST HAVE ; PREPENDED [19:51] megalomix: () [19:51] mikeal: that won't go in to request [19:51] isaacs: megalomix: no, what is the first *character* [19:51] isaacs: megalomix: it is *( [19:51] benvie: parenthesis at the beginning are the devil and they will ear your babies and your face and your mom and your food [19:51] benvie: all times [19:51] isaacs: *(* [19:51] megalomix: yes [19:51] der| has left the channel [19:51] isaacs: megalomix: put a ; in front of that [19:51] isaacs: megalomix: always and forever. [19:51] mmalecki: mikeal: where'd it go? core? [19:51] isaacs: this is the rule of minimal semicolon usage: you must use them when they're necessary. [19:51] mmalecki: mikeal: or /dev/null? [19:51] corruptmem: hi all, why does node -e "require('repl').start('node > ', process.stdin)" result in the TypeError: Object # has no method 'getWindowSize' - thanks [19:51] megalomix: isaacs, excuse me to you mean after (); [19:52] megalomix: or before (function check() [19:52] megalomix: ? [19:52] benvie: and the one time they are necessary is to guard against the parser determining you're invoking a function [19:52] benvie: which means parenthesis are always there, grinning [19:52] lxsameer has joined the channel [19:52] lxsameer has joined the channel [19:52] mikeal: hold on, i'm on a call [19:52] benvie: Waiting. [19:52] Qbix1 has joined the channel [19:53] benvie: 1 && function check(){ [19:53] benvie: self.mysql.query("query query query", [exchange.id, stock.Symbol], save) [19:53] benvie: }() [19:53] context: where was self defined [19:53] mmalecki: mikeal: I'm used to saying "hold on, I'm on IRC" :) [19:53] megalomix: ;(function check(){ [19:53] megalomix: �__� [19:53] megalomix: ugly [19:53] benvie: will guard the function frmo being used as a paremeter for the call above it [19:53] megalomix: at the start [19:54] kenperkins: how is cluster.isMaster determined? [19:54] josephmoniz has joined the channel [19:54] megalomix: benvie why? [19:54] EhevuTov has joined the channel [19:54] captain_morgan has joined the channel [19:54] garrensmith has joined the channel [19:54] megalomix: isaacs, excuse me why ;(function check(){ .... }() can i write it differently? [19:55] benvie: because of javascript's rules for parsing [19:55] benvie: you can also use any string at all, especially ones to insult your sworn enemies [19:55] isaacs: megalomix: i wrote this blog post for you: http://blog.izs.me/post/2353458699/an-open-letter-to-javascript-leaders-regarding [19:55] phidah has joined the channel [19:55] benvie: 'your mother was a landlubber' [19:55] benvie: function ... [19:55] mikeal: ok, back [19:55] mikeal: so, mmalecki what do you want exactly? [19:56] mmalecki: mikeal: to be able to write ?key="balancer" instead of ?key=%22balancer%22 [19:56] isaacs: mikeal: hey, do you have any insights on this http memory-leak? https://github.com/joyent/node/issues/2577 it looks related to http2. [19:56] mmalecki: sec, I'll give uou an example [19:56] benvie: the js parser has a set of rules, and you ran into the one blackhole of not using semicolons [19:56] mmalecki: oh, well, maybe not XD [19:57] mikeal: but you want request to auto-escape? [19:57] mmalecki: mikeal: yeah, something like that. " to %22 [19:57] isaacs: megalomix: certain tokens always continue the line above. x\n(y) is a function call to x. [19:57] orlandovftw has joined the channel [19:57] mmalecki: like browsers do. [19:57] mikeal: the problem with auto-escaping all the querystrings is that you run the risk of double escaping [19:57] mikeal: but [19:57] mikeal: there is a feature [19:57] zitchdog has joined the channel [19:57] isaacs: megalomix: it is NOT the same as x;(y) [19:57] mikeal: that isn't really documented well [19:57] mmalecki: mikeal: more like 'have you considered' than 'do want' [19:57] benvie: by wrapping an immediately invoked function call in parenthesis you made it also a valid paremeter for the statement prior to it [19:57] benvie: function call [19:58] k1ttty has joined the channel [19:58] megalomix: isaacs, yes i understand.....only if the ( is the first character of the line [19:58] lxsameer has joined the channel [19:58] lxsameer has joined the channel [19:58] isaacs: megalomix: bingo [19:58] mikeal: actually, nm, that is something else [19:58] mikeal: honeslty [19:58] isaacs: megalomix: i'm saying this to you as an avid semicolon minimalist. [19:58] megalomix: isaacs, fuck i saved that post! very useful [19:58] mikeal: couchdb needs to accept a form POST for all view queries [19:58] isaacs: megalomix: you *need* them there. [19:58] benvie: (function(){}) (function(){}) [19:58] isaacs: megalomix: it's especially important. [19:58] mikeal: instead of only accepting it when keys is present [19:58] benvie: you see the problem? [19:59] benvie: the second function in parens turns into a call [19:59] isaacs: megalomix: that's why i was harping on you to share the rest of the code, not just the part that throws. [19:59] megalomix: ok isaacs ....yes me too i don't like to use ; always :D [19:59] mikeal: isaacs: that memory leak is probably real but has most likely been there for a very long time [19:59] mikeal: before http2 [19:59] isaacs: mikeal: the data seems to indicate otherwise. [19:59] megalomix: isaacs, yes, you are right...excuse me [19:59] mikeal: because the code that interacts with the parser is mostly adapted from code previous [19:59] benvie: the semicolon doesn't need to be there, it just needs to not be parenthesis [19:59] davidwalsh has joined the channel [19:59] isaacs: mikeal: it could be that a leak wasn't exposed because we werent' doing socket pooling properly. [20:00] mikeal: ah, you could be right there [20:00] isaacs: mikeal: so it's quite possible that the code you wrote is correct, but it nevertheless correlates with the appearance of the bug. [20:00] benvie: the parenthesis will be first interpreted as an invokation. There's plenty of other ways to make an immediately invoked function expression that doesn't need to return a valuwe [20:00] benvie: !function(){}() [20:00] isaacs: mikeal: the test takes like 20 minutes to run, though, so bisecting has been difficult. [20:00] megalomix: benvie, ?? we need to put ; in front.....i'm don't getting you [20:00] mikeal: well, the leak would have existed previous if you used keepalive and managed the pool yourself :) [20:00] isaacs: mikeal: sure. [20:01] mikeal: the patch makes sense [20:01] mikeal: and should be merged regardless [20:01] benvie: you need to change (function(){})() into ---> !function(){}() [20:01] mikeal: basically, we need to be really agressive about freeing parsers [20:01] benvie: in your case anyway [20:01] isaacs: mikeal: which patch? (i think we're both multiplexing...) [20:01] mikeal: there is one in that ticket [20:01] mikeal: https://github.com/koichik/node/commit/9cd1e9025ff2f3d1250c1d89b722a685ee9b924e [20:02] megalomix: add ! first? [20:02] megalomix: instead of ; ? [20:02] benvie: either [20:02] benvie: whatever [20:02] megalomix: why? i'm using ; in front and works good.. [20:02] benvie: you just need a guard [20:02] benvie: no it's fine [20:02] benvie: if it works then we're done [20:02] megalomix: :) [20:02] megalomix: thank you benvie and isaacs [20:02] megalomix: thanks for your patience :D [20:02] benvie: i overexplained, my apologies [20:03] benvie: success = win = done [20:03] megalomix: :) [20:03] benvie: and knowing is half the battle [20:04] megalomix: :) [20:04] panosru: if I use Error.call shouldn't app.error get triggered ? [20:04] grom358 has joined the channel [20:04] evangenieur has joined the channel [20:04] isaacs: megalomix: my pleasure. go forth and spread the word! [20:04] benvie: one day we will be free from the tyranny of semicolons [20:05] megalomix: hahaha [20:05] _ding has joined the channel [20:05] mikeal: isaacs: i think this leak is a good example of a systemic problem we have in core [20:05] mikeal: we add crazy optimizations before we're feature complete [20:05] mikeal: like, we could just be creating a new parser when we need it and letting it get garbage collected [20:06] jxson has joined the channel [20:06] mikeal: that's as reliable as v8 [20:06] djMax has joined the channel [20:06] mikeal: instead, we want to save on the creation time to squeeze 5% out of a benchmark someone wrote against node 0.2 and we have this crazy freelist [20:06] mikeal: which means we're now managing the references by hand [20:06] djMax: I'm iterating over a bunch of files, running a multi-match regular expression and then want user input on each. Is there a synchronous readline so I don't have to kill myself? [20:07] isaacs: mikeal: i agree. [20:07] mikeal: basically, i'm saying that going forward we should stop writing optimizations until feature complete [20:07] mikeal: which isn't too far off now anyway [20:07] cronopio has joined the channel [20:07] isaacs: mikeal: yes. [20:07] isaacs: mikeal: but, we are where we are. [20:07] mikeal: yeah, i know [20:07] isaacs: so... i'll ping dap and see if koichik's bug affects his tests. [20:08] mikeal: take koichi's patch [20:08] isaacs: i want to see the effects first. but i'm pretty confident it'll help. [20:08] thriple: mikeal: what is this: !function(){}() [20:08] BrianE has joined the channel [20:08] jldbasa has joined the channel [20:09] mikeal: thriple: where do you see taht? [20:09] benvie: immediately invoke function expression with its value typecast to boolean before execution, indicating to the engine that the reurn won't be used [20:09] benvie: won't be used as a non-primitive [20:09] chvid has joined the channel [20:09] isaacs: thriple: that's a IIFE, cast to boolean, and negated. [20:09] criswell has joined the channel [20:09] jefferai has joined the channel [20:10] isaacs: benvie: it indicates no such thing to the engine, at least, not strictly based on the grammar. [20:10] thriple: isaacs: what do you mean by negated? [20:10] isaacs: benvie: it just prevents it from being interpreted as a function decl [20:10] isaacs: thriple: it's like writing "false" on a line by itself. [20:10] isaacs: it's just a boolean expression statemnt. [20:10] benvie: well the main goal is to do that [20:10] thriple: isaacs: what is the user? [20:10] benvie: to make an IIFE [20:10] calliostro has joined the channel [20:10] thriple: use? [20:11] benvie: javascript only has function scope [20:11] benvie: so if you want private scoping yuo need to wrap your code in a function [20:11] benvie: and you if you're doing it for that purpose then you simply want to execute it immediately and have no use for the return [20:11] isaacs: it'd be really nice if function declarations were also valid function expressions, at least if unnamed. [20:11] isaacs: but whatever. [20:14] igl: that would mean no more anonymous balls [20:14] djMax: Man, I wish I could understand streamline enough to know if it'll let me do a readline without horrendous syntax. Anybody understand it? [20:14] thriple: benvie: I see, so you can't even execute it without the '!' [20:15] benvie: it's turning a function statement into a function expression [20:15] benvie: which can be done in a number of ways [20:15] benvie: wrapping in parenthesis is the most common but runs the hazard of accidententlly being interpreted as the parameters and invokation of an above function [20:16] lxsameer has joined the channel [20:16] lxsameer has joined the channel [20:16] benvie: which is what the gentleman a few minutes ago was experiencing [20:16] thriple: benvie: I see now, thanks for explaining [20:16] benvie: parenthesis are one of the two versions that can be used to capture the return value [20:17] herbySk has joined the channel [20:17] benvie: the other being something like var x = 1 && function(){ return 'val' }() [20:17] benvie: but if you don't need the return val then there's a number fo options. !, +, -, and more all work the same [20:17] isufy has joined the channel [20:18] franciscallo has joined the channel [20:18] xpigeonx has joined the channel [20:18] thriple: interesting [20:19] isaacs has joined the channel [20:19] xpigeonx: is there a way to make binary flags in javascript? instead having to do things like 1<<7 ? [20:19] benvie: basically it's comparison operators and logical operators [20:19] panosru: could anyone help me with this http://pastie.org/private/2r5tfbkhywlsqgmq22dyag ? I can't see where is my fault and why 404 is not working... it should work based on my code.. [20:19] benvie: and math operators [20:20] benvie: logical operators return the last value so they can be used, parenthesis act as logical operators for wrapping values [20:20] FrenchRoyalHeir: What's the most pragmatic way to get the querystring from the request object as a Javascript object of key/values? [20:20] FrenchRoyalHeir: querystring.parse(request.querystring)? [20:21] pyrotechnick: close [20:21] pyrotechnick: sec [20:21] pyrotechnick: http://nodejs.org/docs/latest/api/url.html#url.parse [20:21] pyrotechnick: url.parse(urlStr, [parseQueryString], [slashesDenoteHost]) [20:21] FrenchRoyalHeir: Ah [20:21] lxsameer has joined the channel [20:21] pyrotechnick: ull need to pass true as the 2nd arg [20:22] FrenchRoyalHeir: right [20:22] FrenchRoyalHeir: Is there something like Twisted's request.args that provides the arguments via POST and GET? [20:23] pyrotechnick: connect has middleware [20:23] QaDeS has joined the channel [20:23] isaacs: xpigeonx: 1<<7 works in JavaScript [20:23] pyrotechnick: https://github.com/senchalabs/connect/blob/master/lib/middleware/bodyParser.js [20:23] isaacs: xpigeonx: oh, you mean, how to add them together? js has & and | binary operators [20:24] isaacs: xpigeonx: and ~ [20:24] isaacs: .. 0777 & (~(022)) [20:24] catb0t: 493 [20:24] isaacs: .. (0777 & (~(022))).toString() [20:24] catb0t: "493" [20:24] isaacs: .. (0777 & (~(022))).toString(8) [20:24] catb0t: "755" [20:24] benvie: var bitmask = flag1 << 1 | flag2 << 2 | flag << 3 [20:24] isaacs: there ya go [20:24] pyrotechnick: 0 / 0 [20:24] benvie: er [20:24] xpigeonx: @isaacs: i mean like binary types, like if i wanted to make bitmasks [20:24] pyrotechnick: didn't think so catb0t [20:24] isaacs: xpigeonx: just use numbers. [20:24] catb0t: didn't expect you to give me a stack trace at FUSED with think [20:24] isaacs: .. 0/0 [20:24] catb0t: NaN [20:25] wmage has joined the channel [20:25] xpigeonx: @isaacs: numbers are awkward and aren't obvious at first [20:25] pyrotechnick: is it NaN or Infinity [20:25] benvie: key.bind = mods[key.ctrl | key.meta << 1 | key.shift << 2] + key.name; [20:25] isaacs: xpigeonx: and this differs from bitmasks how...? [20:25] isaacs: xpigeonx: better yet, use config objects. [20:25] benvie: I made that code to handle three booleans [20:25] benvie: that works [20:25] isaacs: Ie, instead of doSomething(f.FOO | f.BAR), use doSomething({foo: true, bar: true}) [20:26] xpigeonx: @isaacs: because if i only need an int to store somethings, why waste more space ? [20:26] benvie: combined that bitmask with this array [20:26] mikeal has joined the channel [20:26] benvie: [ '', 'ctrl+', 'alt+', 'ctrl+alt+', 'shift+', 'ctrl+shift+', 'alt+shift+', 'ctrl+alt+shift+' ] [20:26] isaacs: xpigeonx: you are optimizing something that is not a bottleneck. [20:26] benvie: and it converts three booleans into a keybinding like ctrl+alt+shift+m [20:27] xpigeonx: @isaacs: im not actually optimizing, protocol dictates this in the end [20:27] isaacs: xpigeonx: have you see node-ctypes? [20:27] isaacs: xpigeonx: it's explicitly designed for doing binary protocol stuff. [20:27] panosru: I guess no one tried to have custom 404 page :D [20:27] xpigeonx: @isaacs: no, but that name sounds like i will love it [20:27] isaacs: :D [20:28] benvie: check node-ffi if ctypes sounds up your alley [20:28] isaacs: xpigeonx: what i mean is, if it's a real concern, you should do your space-sensitive coding in C [20:28] yogig has joined the channel [20:28] isaacs: xpigeonx: with node-ctypes, you can interpret a buffer as a bunch of c-type data, and it'll give you the js equivalents. [20:28] jxson_ has joined the channel [20:28] simb has left the channel [20:29] isaacs: xpigeonx: some of it's also in core now. [20:29] isaacs: xpigeonx: (maybe all? not sure.) [20:29] isaacs: i don't know if it does sub-byte stuff, though. [20:29] isaacs: for some protocols that matters. [20:29] isaacs: and the handling of that is extraordinarily fiddly [20:30] xpigeonx: @isaacs: i just have like 4 bits that dictate some stuff in a message over a protocol, and I just wanted to make the api for setting those bits easy. I could use numbers, but I would find later on that if i could just use constants with the actual bit flag that they set it would be more obvious [20:31] BillyBreen has joined the channel [20:31] crescendo has joined the channel [20:31] bodisiw has joined the channel [20:31] fangel has joined the channel [20:32] isaacs: xpigeonx: you can define all your consts as numbers, then | or & them together [20:32] cinch has joined the channel [20:32] grom358 has joined the channel [20:32] isaacs: xpigeonx: then you can do buffer[0] = value, and if it's between 0 and 255, it'll just set the byte that way [20:32] benvie: (numvar1 | var2 << 1 | var3 << 2 | var4 << 3 [20:32] benvie: er var1 | var2 << 1 | var3 << 2 | var4 << 3 [20:32] isaacs: xpigeonx: yeah, like that ^ [20:33] k1ttty has joined the channel [20:33] fr0stbyte has joined the channel [20:33] matorin has joined the channel [20:33] xpigeonx: @isaacs I know, itd just be easy to see that XXXXX sets bit x rather than remembering that 32 is the 5th bit or whatever [20:33] isaacs: or, you can do exports.FOO = 1 ; exports.BAR = 1 << 1; exports.BAZ=1<<2, etc. [20:33] benvie: with each of those vars being a boolean (0 or 1) [20:33] bkaney has joined the channel [20:33] garrensmith has joined the channel [20:34] isaacs: xpigeonx: the answer is, ultimately, "no, there is no bit type in javascript, sorry" [20:34] benvie: var CONSTANT1 = 0x0001; var CONSTANT2 = 0x0002; var CONSTANT3 = 0x0004; var CONSTANT4 = 0x0008; [20:34] isaacs: and there's only Number, no int8 [20:34] isaacs: etc. [20:34] isaacs: but you do have | and & and ~ and <<, so that's enough. [20:34] isaacs: have fun :) [20:34] benvie: speaking of [20:35] corruptmem: does node have support for something like socketpair(2) or pipe(2) that i can use for IPC between processes? [20:35] benvie: 0b010101010 and 0o432811325 forms were approved like 2 days ago [20:35] benvie: for binary and octal [20:35] benvie: so we'll see those popping up sometime [20:36] isaacs: benvie: WHATYOUSAY?? [20:36] isaacs: benvie: octals are back in for es-next!? [20:36] isaacs: ACTION cheers [20:36] benvie: srsly, lemme find the ref [20:36] benvie: eich actually championed it, citing node's use for permission flags [20:36] isaacs: 0o777 is a bit less pretty than 0777, but still better than parseInt("0777", 8) [20:36] benvie: and then the precedent from ruby and python [20:37] benvie: which both have the 0b and 0o notations [20:37] isaacs: right [20:37] matorin: hi there, trying to wrap my head around how to best to do some xml parsing and light processing of posted data. seems libxmljs is synchronous? [20:38] benvie: https://mail.mozilla.org/pipermail/es-discuss/2012-January/019735.html [20:38] benvie: at the bottom [20:38] benvie: "Decided to allow 0o and 0b. Unresolved whether to allow 0O and 0B." [20:39] garrensmith has joined the channel [20:39] AndreasMadsen has joined the channel [20:40] Morkel has joined the channel [20:41] benvie: there was an proposal on the table to allow XXr [20:41] brmouzone has joined the channel [20:41] benvie: for any radix, but was shelved [20:41] ror12 has joined the channel [20:42] ror12: do you guys find you are including underscore.js for a lot of things? [20:42] benvie: underscore is largely a compatability library [20:42] xpigeonx: corruptmem: theres a pipe function in child_process [20:43] benvie: so the need for compatability often dictates whether you'd use something like underscore [20:43] ror12: compatibility? what do you mean? with what? i see it as an extension to node.js, or just javascript in general [20:43] whitman has joined the channel [20:43] freakazoid has joined the channel [20:43] benvie: most of what it does is provided by core JS if you know you're using an up to date engine [20:44] benvie: and if you are, the things it provides that you don't have are often better provided by something else [20:44] fr0stbyte has joined the channel [20:44] isaacs: benvie: yeah, XXr is unnecessary. [20:44] benvie: yeah [20:44] maushu has joined the channel [20:44] isaacs: benvie: programming happens in 4 bases. 2, 8, 10, and 16 [20:44] benvie: binary and octal with hex does all we need [20:44] benvie: binary is a bonus even [20:45] benvie: nice to have octal back for the legit ES6 spec [20:45] pyrotechnick: isaacs: speak for yourself. we program in base 1337 [20:45] fr0stbyte has joined the channel [20:46] ror12: so most, you mean there are still new functions you can use like .clone ? to clone another object? [20:46] yungchun1lin has joined the channel [20:46] ror12: or is there a native js equivalent [20:46] benvie: no it certainly has some functions that js doesn't, but the majority of it is providing cross-platform implementations of stuff that is now part of core js [20:47] tornad has joined the channel [20:48] benvie: function clone(obj){ return Object.keys(obj).reduce(function(r,s){ r[s] = Object(obj[s]) === obj[s] ? clone(obj[s]) : obj[s]; return r; }, {}) } [20:49] Swizec_ has joined the channel [20:49] cjm has joined the channel [20:49] insin: ACTION wondered who decided
shouldn't be indented in the GitHub stylesheet [20:49] insin: s/wondered/wonders/ [20:50] benvie: I believe that does almost exactly what underscore's does and is a very basic version of it [20:50] benvie: but requires an engine implmenting ES5 [20:50] khrome has joined the channel [20:52] zemanel has joined the channel [20:52] Ricki__ has joined the channel [20:52] garrensm_ has joined the channel [20:53] grom358 has joined the channel [20:53] jbpros has joined the channel [20:54] benvie: if I wanted things in the spirit of underscore but say I'm targeting node, I'd be looking here first https://github.com/medikoo/es5-ext [20:54] benvie: not a lib that spends most of its energy making old browsers work [20:54] chvid has joined the channel [20:55] uwek has left the channel [20:55] jmar777 has joined the channel [20:55] uwek has joined the channel [20:57] djMax: anybody used node-csv? Seems like it's just busted [20:57] RobWC has joined the channel [21:00] gigafied has joined the channel [21:00] Diablo-D3 has joined the channel [21:00] Diablo-D3: whats the best node.js for dummies guide out [21:00] Diablo-D3: also, whats a good list of other things I should know about? [21:02] shinuza has joined the channel [21:02] mraxilus has joined the channel [21:04] vkandy has joined the channel [21:05] TimTim has joined the channel [21:05] EhevuTov has joined the channel [21:08] jmalina has joined the channel [21:08] brianthecoder has joined the channel [21:08] pekim_ has joined the channel [21:09] _jzl has joined the channel [21:10] lperrin has joined the channel [21:10] CIA-101: node: 03Andreas Madsen 07master * rf9a47de 10/ (5 files in 3 dirs): [21:10] CIA-101: node: Add cluster.setupMaster [21:10] CIA-101: node: Fixes #2470 - http://git.io/LuiJKA [21:10] arcanis has joined the channel [21:11] thriple: anyone know what an 'unexpected_eos' ajax error is? [21:11] `3rdEden has joined the channel [21:12] Wa has joined the channel [21:12] shapeshed has joined the channel [21:13] shapeshed2 has joined the channel [21:14] couchquid has joined the channel [21:14] grom358 has joined the channel [21:15] zitchdog has joined the channel [21:16] rauchg has joined the channel [21:17] rauchg has joined the channel [21:17] shapeshed has joined the channel [21:18] joestein has joined the channel [21:18] jetienne has joined the channel [21:19] CIA-101: node: 03Nicolas LaCasse 07v0.6 * r40c9348 10/ (lib/zlib.js test/simple/test-zlib-invalid-input.js): [21:19] CIA-101: node: Fix #2365 zlib crashing on invalid input [21:19] CIA-101: node: Fix zlib crashes on error due to improper use of removeListener [21:19] CIA-101: node: in the error handler - http://git.io/a98zYw [21:21] mattkime has joined the channel [21:22] Zmanu has joined the channel [21:22] johnmdonahue: Diablo-D3: checkout http://www.nodebeginner.org/ [21:22] mattkime: hello [21:22] taf2 has joined the channel [21:23] mattkime: i need some install help with ubuntu [21:23] mattkime: first, http://apptob.org/ appears to be down [21:23] mattkime: so i'm using the shell script [21:24] mattkime: here's the result of my install attempt - % Total % Received % Xferd Average Speed Time Time Time Current [21:24] mattkime: Dload Upload Total Spent Left Speed [21:24] mattkime: 100 7881 100 7881 0 0 55326 0 --:--:-- --:--:-- --:--:-- 99k [21:24] mattkime: tar=/bin/tar [21:24] mattkime: version: [21:24] mattkime: tar (GNU tar) 1.25 [21:24] mattkime: Copyright (C) 2010 Free Software Foundation, Inc. [21:24] mattkime: License GPLv3+: GNU GPL version 3 or later . [21:24] mattkime: This is free software: you are free to change and redistribute it. [21:24] mattkime: There is NO WARRANTY, to the extent permitted by law. [21:24] mattkime: Written by John Gilmore and Jay Fenlason. [21:24] mattkime: install npm@1.1 [21:24] mattkime: fetching: http://registry.npmjs.org/npm/-/npm-1.1.0-2.tgz [21:24] mattkime: 0.6.2 [21:24] mattkime: 1.1.0-2 [21:24] mattkime: cleanup prefix=/usr [21:24] mattkime: find: `/usr/lib/node': No such file or directory [21:24] mattkime: find: `/usr/lib/node': No such file or directory [21:24] mattkime: All clean! [21:24] mattkime: npm ERR! Could not create /usr/lib/node_modules/___npm.npm [21:24] mattkime: npm ERR! error installing npm@1.1.0-2 [21:24] mattkime: npm ERR! Error: EACCES, permission denied '/usr/lib/node_modules' [21:24] mattkime: npm ERR! [21:24] mattkime: npm ERR! Please try running this command again as root/Administrator. [21:24] tdubellz has joined the channel [21:24] mattkime: npm ERR! [21:24] mattkime: npm ERR! System Linux 2.6.38-13-generic [21:24] mattkime: npm ERR! command "/usr/bin/node" "/tmp/npm.19742/package/cli.js" "install" "-gf" [21:24] mattkime: npm ERR! cwd /tmp/npm.19742/package [21:24] mattkime: npm ERR! node -v v0.6.2 [21:24] mattkime: npm ERR! npm -v 1.1.0-2 [21:24] Diablo-D3: DUDE [21:24] mattkime: npm ERR! path /usr/lib/node_modules [21:24] mattkime: npm ERR! code EACCES [21:24] gerred: ckrwhat the hell [21:24] mattkime: npm ERR! message EACCES, permission denied '/usr/lib/node_modules' [21:24] mattkime: npm ERR! errno {} [21:24] mattkime: npm ERR! [21:24] mattkime: npm ERR! Additional logging details can be found in: [21:24] gerred: PASTEBIN [21:24] Diablo-D3: HAVE YOU NEVER HEARD OF PASTEBIN [21:24] mattkime: npm ERR! /tmp/npm.19742/package/npm-debug.log [21:24] gerred: PASTEBIN. [21:24] mattkime: npm not ok [21:24] mattkime: It failed [21:24] mattkime: ooph, sorry about that. [21:24] Diablo-D3: GODDAMNIT MAN [21:24] gerred: THIS IS NOT OKAY. [21:24] isaacs: mattkime: please use gist.github.com or pastie or something. [21:24] Diablo-D3: DUDE [21:25] isaacs: mattkime: 5-10 lines is fine, but big dumps make irc users upset. [21:25] gerred: frothing at the mouth [21:25] isaacs: mattkime: also, install as root. [21:25] aheckmann has joined the channel [21:25] isaacs: mattkime: or just install the latest node release, which includes npm 1.1.0-2 with it [21:25] isaacs: mattkime: there haven't been any updates to npm since yesterday. [21:26] Diablo-D3: johnmdonahue: thanks, btw, I think this is what I was looking for [21:26] tjbell has joined the channel [21:26] johnmdonahue: Diablo-D3: glad to help [21:26] justicefries has joined the channel [21:27] slaskis has joined the channel [21:28] dshaw_ has joined the channel [21:29] criswell has joined the channel [21:30] spleeze has joined the channel [21:30] mattkime: iu'm all set, thanks guys, sorry for the flooding [21:31] NothingMan65__ has joined the channel [21:31] ben_alman: how wouldi go about getting the user's home directory (or its equivalent in windows) ? [21:31] spuddleziz: guys im looking for a freelancer to work on projects here in the UK, needs to be local to Reading... anyone out there? [21:32] sh1mmer has joined the channel [21:32] _jzl has joined the channel [21:32] RobWC has joined the channel [21:34] spuddleziz: any help would be greatly appreciated.. [21:34] slaskis has joined the channel [21:35] bitwalker has joined the channel [21:35] spuddleziz: also anyone used comb? is it any good or does anyone have any recommendations? [21:36] marcello3d has joined the channel [21:36] barbagallo has joined the channel [21:38] dubenstein has joined the channel [21:38] mansoor has joined the channel [21:39] mansoor: node needs a fs.exists() function [21:39] jerrysv has joined the channel [21:39] mmalecki: mansoor: path.exists [21:40] eignerchris has joined the channel [21:40] mansoor: :O thaks mmalecki! [21:40] mmalecki: actually, would be good to alias one to another. [21:40] mmalecki: brb, pull requestin' [21:42] tvw has joined the channel [21:42] mmalecki: or maybe not. too lazy. [21:43] ryan_stevens has joined the channel [21:43] mmalecki: or maybe I'll ask for opinions first XD [21:43] evangenieur_ has joined the channel [21:43] mansoor: for fs.exists alias [21:43] mansoor: ? [21:43] mmalecki: yeah [21:44] mansoor: if it was upto me I would just merge path into fs [21:46] jxson has joined the channel [21:46] aslant has joined the channel [21:47] crodas has joined the channel [21:49] spuddleziz: ben_alman: answer below [21:49] spuddleziz: require('child_process').exec("echo " + (process.platform.toLowerCase() == "win32" ? "%USERPROFILE%" : "$HOME"), [21:49] spuddleziz: function (error, stdout, stderr) { [21:49] spuddleziz: if (error != null) [21:49] spuddleziz: return console.log(stderr); [21:49] ben_alman: you don't need to paste code [21:49] spuddleziz: console.log(stdout); [21:49] spuddleziz: }); [21:49] spuddleziz: thats it [21:49] dnyy_ has joined the channel [21:50] ben_alman: can probably just use process.env [21:50] lazyshot has joined the channel [21:51] spuddleziz: yeah that works [21:51] codepilot has joined the channel [21:51] ben_alman: yep [21:51] spuddleziz: ach well i tried! [21:51] ben_alman: thx [21:52] dnyy has joined the channel [21:52] soapyillusions has joined the channel [21:55] fangel_ has joined the channel [21:59] njoh has joined the channel [21:59] tttthet has joined the channel [22:00] HardFu: anyone using cron module? [22:00] HardFu: is the time set on server's local time or UTC [22:00] jiboumans has joined the channel [22:01] HardFu: I'd need a specific command run on UTC time [22:01] jerrysv has joined the channel [22:03] QaDeS has joined the channel [22:03] jiboumans: Hi, I have a service that takes a lot of incoming UDP messages/second (~100k) and sends it out to a backend tcp connection. Node doesn't seem to keep up with the incoming message wrt to the outgoing ones, as it keeps allocating more memory for every incoming message. At some point (rather quickly), it's trying to allocate more memory than the server has and it exits with terminate called after throwing an instance of [22:03] jiboumans: 'std::bad_alloc'. What's the right pattern to be following here? an RTFM pointer would be great too. [22:03] grom358 has joined the channel [22:03] ovaillancourt has joined the channel [22:03] nodokodo has joined the channel [22:03] chapel: jiboumans: are you using streams? [22:04] jiboumans: chapel: i'm using an outgoing stream for tcp, but i don't believe one can use streams for incoming udp [22:04] robotmay has joined the channel [22:05] chapel: looks to be right [22:05] MatthewS has joined the channel [22:05] jiboumans: chapel: so the pseudo code looks something like udp.on( message, function (data) { tcp.write( data ) } ) [22:06] jamund has joined the channel [22:06] jiboumans: if it were two tcp connections, i could do tcp1.pipe( tcp2 ) [22:06] jiboumans: which i'm doing for incoming tcp, and it scales just fine [22:06] chapel: yeah [22:06] chapel: are you doing anything to the packets [22:06] chapel: are storing them somewhere? [22:06] jiboumans: not currently [22:08] tommyvyo has joined the channel [22:09] _dc has joined the channel [22:09] chapel: you could do socket.setNoDelay(true) [22:09] chapel: which would disable the buffering of data before sending [22:10] devongovett has joined the channel [22:10] jiboumans: chapel: that'd be on the outgoing connection, right? [22:10] chapel: yes [22:11] jetienne_ has joined the channel [22:11] jiboumans: worth a shot - i'll try that now. in the general case though, is there a way to more gracefully handle a malloc that's failing? i'd rather say 'sorry, drop connection' than 'violent exit of your daemon' [22:11] chapel: http://nodejs.org/docs/latest/api/net.html#socket.bufferSize [22:11] chapel: that talks about the bufferSize [22:11] chapel: Users who experience large or growing bufferSize should attempt to "throttle" the data flows in their program with pause() and resume(). [22:13] cody-- has joined the channel [22:14] jiboumans: which udp can't do :( [22:14] dodo_ has joined the channel [22:14] jiboumans: chapel: setNoDelay doesn't help either.. it's still allocating buffer for all incoming udp messages faster than it can flush them [22:14] chapel: hmm [22:15] jiboumans: chapel: it's not a single growing buffer (that'd be easier), it's a 1k buffer per message it looks like (thereabouts) [22:15] chapel: yeah [22:15] methodT has joined the channel [22:15] chapel: Im not as knowledgeable about this stuff, wish I could help more [22:16] jiboumans: i appreciate your help already. is there someone in here i should be asking instead? [22:17] tilgovi has joined the channel [22:17] jmar777 has joined the channel [22:21] jetienne has joined the channel [22:21] deedubs: would it be possible for an `npm rebuild` to delete npm... [22:21] isaacs: deedubs: that does not sound likely [22:21] deedubs: interesting [22:21] deedubs: that seems to have just happened [22:21] adambeynon has joined the channel [22:21] isaacs: deedubs: really? [22:22] isaacs: deedubs: were you rebuilding globally, or locally? [22:22] isaacs: ie, npm rebuild -g [22:22] isaacs: or npm rebuild [22:22] agnat has joined the channel [22:22] deedubs: locally [22:23] deedubs: isaacs: https://gist.github.com/b88a1a0032f4aa07f4b6 [22:23] isaacs: deedubs: then how could it delete npm? [22:24] koo4 has joined the channel [22:24] isaacs: deedubs: that's really weird. [22:24] isaacs: deedubs: what's ls -laF /usr/local/lib/node_modules output? [22:25] deedubs: and it didn't just trash my env a new term same thing [22:25] gigafied has joined the channel [22:25] deedubs: isaacs: https://gist.github.com/57ad6b980afa9a8994eb [22:25] TheLifelessOne has joined the channel [22:26] grom358 has joined the channel [22:26] sarlalian has joined the channel [22:26] isaacs: deedubs: ls -laF /usr/local/bin/npm [22:26] isaacs: deedubs: ls -laF /usr/local/lib/node_modules/npm/bin [22:27] deedubs: isaacs: https://gist.github.com/62ee46ab229b82c3a5f1 [22:27] joestein has joined the channel [22:27] isaacs: deedubs: well, that's super weird. don't know why the npm bin link would be removed. [22:27] eventualbuddha has joined the channel [22:28] isaacs: deedubs: sudo /usr/local/lib/node_modules/npm/bin/npm.js rebuild npm -g [22:28] isaacs: deedubs: sudo /usr/local/lib/node_modules/npm/bin/npm-cli.js rebuild npm -g [22:28] isaacs: (second one) [22:29] deedubs: rebuild did nothing [22:29] deedubs: install worked :/ [22:30] deedubs: hmmm I can recreate it [22:30] deedubs: npm rebuild in this project kills npm every time [22:30] gr-eg has joined the channel [22:30] isaacs: deedubs: what version of npm? [22:31] isaacs: deedubs: and, can you reproduce it with fewer than a bajillion deps? [22:31] isaacs: ;) [22:31] deedubs: 1.1.0-2 [22:31] deedubs: yeah I'll see if I can get a reduced testcase [22:31] mandric has joined the channel [22:32] panosru: In requirejs I could do some path mapping (eg: 'iface' : '../interface') can I do something similar with node's require method? (I'm using browserify and expressjs) [22:33] panosru: with path mapping in requirejs I could do something like require ( 'iface/my-template') [22:33] panosru: iface would mapped to ../interface automatically :/ [22:34] mattmcmanus has joined the channel [22:36] jiboumans: chapel: this looks like the issue i'm hitting: http://code.google.com/p/v8/issues/detail?id=847 [22:36] chapel: well, that isn't really the issue [22:36] chapel: I mean, it is a cause for crashing, but you can make it allocate more memory [22:37] gr-eg has left the channel [22:37] gr-eg has joined the channel [22:37] dharmesh has joined the channel [22:37] Swizec_ has joined the channel [22:37] p1d has joined the channel [22:38] jiboumans: chapel: or not.. node --max-old-space-size=2000 [22:38] jiboumans: FATAL ERROR: v8::Context::New() V8 is no longer usable [22:38] jiboumans: chapel: and yes, the issue is that i can't handle the traffic inside node as well on a udp->tcp bridge as i can tcp/unix->tcp/unix [22:38] jiboumans: but this is what causes the uncatchable crash :( [22:39] aroman has joined the channel [22:40] markdaws has joined the channel [22:40] aroman: So I'm doing some HTML parsing with server-side jquery that can be a bit CPU heavy. Obviously I don't want this to block. How should I code for CPU-intensive tasks? [22:40] jergason has joined the channel [22:41] ekryski has joined the channel [22:42] astropirate has joined the channel [22:44] alystair has joined the channel [22:49] secoif has joined the channel [22:50] grom358 has joined the channel [22:50] FIQ has joined the channel [22:50] jmar777 has joined the channel [22:51] jskulski has joined the channel [22:51] chapel: jiboumans: have you raised your ulimit? [22:51] jiboumans: chapel: to what end? [22:51] Diablo-D3: did you wave a rubber chicken yet? [22:51] chapel: well do ulimit -v to see what it is now [22:52] jiboumans: chapel: for memory? all unlimited for this user [22:52] grey has left the channel [22:52] chapel: you have it set to ulimit -v unlimited? [22:53] jiboumans: chapel: yes [22:53] chapel: ok [22:53] Swizec_ has joined the channel [22:53] chapel: well hmm, I couldn't really find anything specific about your problem [22:53] enmand has joined the channel [22:53] jiboumans: node --max-stack-size=3000000 let's me go to ~160% of previous memory before blowing up (sounds like the i386 2gb limit) [22:54] jiboumans: chapel: neither could i :( [22:54] jiboumans: --max-stack-size fights the symptom, not the cause [22:55] chapel: yep [22:55] chapel: thats what I meant [22:55] chapel: in that its not really the issue [22:55] chapel: where is the udp connection from [22:55] chapel: do you have any control over it? [22:55] jiboumans: i do and i don't; it's forwarding log lines from servers [22:56] jiboumans: connections go up, traffic goes up [22:56] chapel: hmm [22:56] jiboumans: eh, otherway around [22:56] chapel: why udp? [22:56] chapel: just because its faster? [22:56] jiboumans: CustomLog |udp [22:56] jiboumans: faster and doesn't block [22:56] jiboumans: and uses less resources in the process [22:56] jiboumans: it's a facter 2-3x in our benchmarks [22:57] paulwe has joined the channel [22:58] TheLifelessOne has joined the channel [22:58] TheLifelessOne has left the channel [22:58] chapel: hmm [22:58] chapel: you seen http://logio.org/? [22:59] grom358 has joined the channel [22:59] Carmivore has joined the channel [22:59] Carmivore has joined the channel [22:59] jiboumans: i have not. the word 'log' in my above description is arbitrary, we're using this for all kinds of message streams [22:59] jiboumans: looking now [23:00] chapel: sure [23:00] chapel: but it might be something to look at for examples [23:00] jiboumans: i'll take a look at the code.. the issue we're seeing is at high traffic.. this is not your conventional website :) [23:01] jiboumans: thanks for the pointer though, i'm going to do some more research [23:01] meso has joined the channel [23:02] EyePulp has joined the channel [23:04] chapel: sounds like your problem is larger than the typical [23:05] asoltys has joined the channel [23:07] samsonjs_ has joined the channel [23:07] iangreenleaf: Hey all, I'm looking for node testing frameworks. I'm most interested in functional testing, and perhaps integration too. Suggestions? [23:08] jamund: Anyone ever have weird issues where a find using the native driver just causes the app to stop without giving ANY ERROR MESSAGES? [23:08] jamund: particularly when searching on objectIds [23:08] samsonjs_ has joined the channel [23:10] salva has joined the channel [23:10] gigafied: isaacs: is there any way to alias a package so that it grabs it locally vs hitting the registry? This is only for dev purposes, I'm essentially making changes to one package that are needed in another package, and having to do npm publish on package a every time is getting a bit cumbersome. [23:10] mara has left the channel [23:10] isaacs: gigafied: cd package-one; npm link ../package-two [23:11] isaacs: gigafied: or just work in a folder named node_modules [23:11] isaacs: gigafied: mkdir node_modules; cd node_modules; git checkout git://module-one; git checkout git://module-two [23:11] isaacs: er, not checkout [23:11] isaacs: i always do that. svn muscle memory. [23:11] isaacs: from years ago [23:11] isaacs: git clone [23:11] gigafied: ha yeah clone [23:12] gigafied: i get it [23:12] gigafied: cool [23:12] isaacs: either of those approaches are a bit nicer. [23:12] salva has left the channel [23:12] shanebo has joined the channel [23:13] gigafied: Yeah, it's a bit odd because both packages require each other [23:13] shanebo: opinion poll, in a mongo-like json world, is "collection" always an array? [23:14] josephmoniz: a collection, yes [23:15] jamund: it's a lot easier to search than a js array [23:15] josephmoniz: a hash would be a document [23:15] josephmoniz: hash == object ofc [23:15] shanebo: josephmoniz, okay so an object with repetitive nested objects in the exact same format would be called a document? [23:16] gigafied: isaacs: It's a bootstrapped, so I copy a template_dir into a new folder, populating a package.json file etc. the bootstrap script calls npm link after it does what it needs to, a bit of a fringe case…. I guess I could temporarily throw a node_modules folder in there and copy my package to it in the bootstrap script [23:16] gigafied: bootstrapper* [23:16] josephmoniz: shanebo: objects have keys, so yes [23:16] josephmoniz: while arrays only have offsets [23:17] josephmoniz: using an object as an array is just using the wrong tool for the job [23:18] redir has joined the channel [23:18] AvianFlu has joined the channel [23:18] jamund: shanebo:the documents in a collection doesn't have to be the same, they don't follow an enforced schema [23:18] grom358 has joined the channel [23:18] shanebo: josephmoniz, well it depends on the need, if you need an index, an object with keys pointing to objects is much better than looping through an array to find an object, however if sort order matters and the collection has no need for searching, an array is much better. [23:19] shanebo: jamund, understood thanks [23:19] josephmoniz: shanebo: yeah, but thats not the question as you asked it [23:19] pluc has joined the channel [23:19] josephmoniz: in which case you need to add a third entity [23:19] josephmoniz: the index [23:19] jankeromnes has joined the channel [23:19] benvie: https://github.com/Benvie/listish [23:19] josephmoniz: so you have collections, indexes and documents [23:20] josephmoniz: collections are basically arrays, just places you lump documents/objects into [23:20] josephmoniz: and indexes are basically hashes/objects typically implemented as B+Trees that hold pointers to documents in collections [23:20] shanebo: josephmoniz, okay so in mongoland there's a metaphor known as index? [23:21] josephmoniz: it's an actual noun not a metaphor but yeah [23:21] josephmoniz: almost all DB's have indexes [23:21] josephmoniz: as thats half the point of having a DB [23:21] isaacs: gigafied: or, you could just put a symlink somewhere from wherever your stuff ends up to a folder called "node_modules" in the parent. [23:21] isaacs: gigafied: the logic of how node looks up modules is pretty simple. [23:22] josephmoniz: shanebo: http://www.mongodb.org/display/DOCS/Indexes [23:22] shanebo: josephmoniz, thanks man [23:22] josephmoniz: no problem [23:23] gigafied: isaacs: yeah, the symlink idea just occurred to me… easiest way thanks! [23:24] klaustsen has joined the channel [23:24] CarterL has joined the channel [23:27] Swizec has joined the channel [23:32] mikeal has joined the channel [23:37] Poetro has joined the channel [23:38] sleeplessinc has joined the channel [23:38] tommyvyo has joined the channel [23:38] sleeplessinc: fOo [23:39] briancra_ has joined the channel [23:39] joestein_ has joined the channel [23:41] tomyan has joined the channel [23:41] StanlySoManly has joined the channel [23:43] CrawfordComeaux has joined the channel [23:43] isufy has joined the channel [23:46] fr0stbyte has joined the channel [23:47] ryanrolds_w has joined the channel [23:48] grom358 has joined the channel [23:49] neilk_ has joined the channel [23:56] fr0stbyte has joined the channel [23:57] jldbasa has joined the channel [23:57] aslant has joined the channel