[00:00] isao1 has joined the channel [00:00] cconstantine_: I agree, but looking like english can help make code clear ;) [00:00] cconstantine_: *can* not *will* [00:01] cconstantine_: iangreen_, yeah, mostly function is a long keyword and inheritance is awkward [00:01] isao2 has joined the channel [00:02] carlyle has joined the channel [00:02] cjm has joined the channel [00:02] iangreen_: I don't love everything about CoffeeScript, but I really really love the ()-> function syntax. [00:03] cconstantine_: I'm really over compiled languages... [00:03] cha0s has joined the channel [00:04] ningu: what about over-compiled languages? [00:04] CoverSlide: Like C? Java? [00:04] cconstantine_: coffeescript is compiled :P [00:04] cconstantine_: also, see panel 2 http://xkcd.com/568/ [00:04] mikeal has joined the channel [00:06] cconstantine_: ningu, were you asking what is wrong with compiled langauges? the compile step. [00:06] ningu: CoverSlide: yeah, I guess I'm imagining code compilated at -O6 to within an inch of its life, or something :) [00:06] ningu: cconstantine_: I was making an (irrelevant) contrast... [00:06] cconstantine_: ah [00:06] coderarity has joined the channel [00:06] ningu: compiled, even. not compilated. but whatever, haha [00:06] fairwinds has joined the channel [00:06] CoverSlide: compilated? I'm gonna use compilate / compilator instead of compile / compiler from now on [00:06] daniel has left the channel [00:06] cconstantine_: I like it [00:07] ningu: CoverSlide: it's 1am here, my fingers must have taken over [00:07] RyanD has joined the channel [00:07] ningu: coffeescript just makes me want to come up with even more ridiculous language names, like toffeescript [00:08] ningu: it just sounds like of lame to me. :) [00:08] iangreen_: ningu: I'm pretty sure that's how every great idea starts ;) [00:08] ningu: iangreen_: what about my game show? [00:08] CIA-102: node: 03Nathan Rajlich 07master * re60b18b 10/ Makefile : Make a fat binary for the OS X `make pkg`. - http://git.io/qP6KBQ [00:08] CIA-102: node: 03Colton Baker 07master * rac9fa2b 10/ lib/_debugger.js : Removed `rl.on('close', ...)` callback - http://git.io/KV30hQ [00:08] CIA-102: node: 03Colton Baker 07master * rfd61bfc 10/ (doc/api/readline.markdown lib/readline.js lib/repl.js): (log message trimmed) [00:08] CIA-102: node: readline: ^Z (SIGSTP) handling [00:08] CIA-102: node: Bugfix and update. [00:08] CIA-102: node: - Fixed bug where Node's REPL wouldn't continue when returning from ^Z [00:08] CIA-102: node: (SIGTSTP) [00:08] CIA-102: node: - Removed old readline callback [00:08] CIA-102: node: Readline API update with docs. [00:08] ningu: who wants to be a key-value store, with redis philbin [00:08] fmeyer has joined the channel [00:09] iangreenleaf: ningu: Ok, too many puns. Go to bed D:< [00:09] Rob_ has joined the channel [00:09] etrece has joined the channel [00:09] iangreenleaf: cconstantine_: And yes, the CS object syntax is nice, though it's simply not capable of insulating you from all the horror of JS object scoping. [00:09] fomatin has joined the channel [00:09] CoverSlide: of course not, because it doesn't change the language [00:10] briancray has joined the channel [00:10] iangreenleaf: cconstantine_: So what I'm saying is, I use CS almost exclusively. But it's basically a matter of taste. [00:10] ivaano1 has joined the channel [00:10] ningu: I actually find js to be quite elegant that way [00:10] ningu: not horrible. [00:10] ivaano1: join ##php [00:10] ivaano1 has left the channel [00:10] CoverSlide: ACTION points and laughs at ivan`  [00:10] gr4yscale has joined the channel [00:10] CoverSlide: dammit [00:10] cconstantine_: hehe [00:10] iangreenleaf: CoverSlide: Yeah, and I respect the choice not to stray too far from JS. [00:10] ningu: iangreenleaf: what about coding async stuff a la node? [00:11] ningu: does that come out any different in CS? [00:11] cconstantine_: iangreenleaf, fair enough. I haven't had the scoping issues everyone seems to complain about [00:11] iangreenleaf: ningu: it comes out lovely [00:11] cconstantine_: I guess it just makes sense to me that 'this' would change [00:11] ivaano has joined the channel [00:11] ningu: iangreenleaf: any examples at hand? [00:11] CIA-102: libuv: 03Ben Noordhuis 07master * r8f716a9 10/ .gitignore : .gitignore gyp build artifacts - http://git.io/6HaO6Q [00:12] iangreenleaf: ningu: Here's one of mine: https://github.com/iangreenleaf/githubot [00:12] ningu: cconstantine_: yes, same here, although I find it somewhat irritating that documentating is frequently lacking when it passes the thing of interest in the callback's this [00:12] ningu: documentation* [00:12] ningu: that is, for a random module where they could do it as an argument or as this [00:12] cconstantine_: yup [00:13] iangreenleaf: ningu: and here's a nice express wrapper + template language: http://zappajs.org/ [00:13] cconstantine_: as an argument, second argument, or this ;) [00:13] ningu: iangreenleaf: cool, I'll take a look [00:13] slloyd has joined the channel [00:14] ningu: how seamless is it btw... I assume you can't just do node app.js, you have to to compile && node app.js [00:14] iangreenleaf: ningu: the thing I really like about ()-> is that it makes readable DSL-style APIs very possible. Much like Ruby blocks. [00:14] iangreenleaf: ningu: coffee app.coffee [00:14] ningu: aha, ok [00:14] cconstantine_: yup, I keep seeing ruby-isms in coffeescript [00:14] ningu: I guess it knows to run node [00:14] cconstantine_: how does it know to run node? [00:14] iangreenleaf: ningu: Yeah, it's very nearly a first-class citizen. [00:15] CoverSlide: i think it just compiles to tmp and require's the code [00:15] ningu: yes, that's the impression I get, which is the only reason I'd consider using it [00:15] ningu: but I still need some more convincing [00:15] CoverSlide: or uses child_process [00:15] davehamptonusa has joined the channel [00:15] iangreenleaf: The one major drawback right now is that your errors get reported from the compiled JS, so line numbers don't match up to your CS source. [00:15] enmand has joined the channel [00:15] CoverSlide: that's a dealbreaker for me [00:15] iangreenleaf: AFAIK Josh knows that's a problem and is working on it. [00:15] CoverSlide: otherwise there is some elegance to coffee [00:16] cconstantine_: ouch, line numbers are required... [00:16] ningu: to be fair, plenty of my errors in node don't report the line# that's the real source of the error [00:16] cconstantine_: I wonder if he'll solve it the same way C does :) [00:16] tmike: that's a dealbreaker for me too [00:16] ningu: although I think that's often my fault for not properly checking if something is undefined before it gets somewhere far away [00:16] orospakr has joined the channel [00:16] cconstantine_: ningu, so the few line numbers you do get need to be right [00:16] ningu: yes, true enough [00:16] Rob_: are therea ny pure javascript message queues out there? [00:16] ningu: I mean, quite often the reported error is exactly the place [00:16] iangreenleaf: Yeah, having lived with it for a while now, it's annoying but not the end of the world. [00:17] ningu: but for promises and such it gets complicated [00:17] cconstantine_: Rob_, yes [00:17] Rob_: ACTION listens intently [00:17] iangreenleaf: Often the snippet of JS that you get in the error message is enough to know where it's happening. If not, you can throw in some logging, or you can compile the file manually, find the line, and then move back to your CS source. [00:17] ningu: so far the answer to "is there pure JS foo" seems to usually be yes [00:18] ningu: yeah, I use a fair amount of logging to debug [00:18] ningu: only when I'm really baffled do I use the debugger [00:18] cconstantine_: Rob_, I forget and I don't have that code in front of me [00:19] Rob_: any hints on where to scrounge? [00:19] cconstantine_: google? [00:19] nightfury has joined the channel [00:19] cconstantine_: I know, not helpful [00:19] Enoria has joined the channel [00:19] Rob_: np, if you think of anything let me know [00:20] wookiehangover has joined the channel [00:20] gr4yscale has joined the channel [00:20] timoxley: isaacs: suggestion for topic for next nodeup: architecture. I'd really like to know more about how are people structuring their node solutions. one big app vs lots of small apps, and how people are getting node processes to communicate e.g. fork() vs socketio/faye/dnode/hookio vs http/REST vs *MQ vs ??? [00:21] SubStack: hey I'm writing a blog app for that right now! [00:21] cconstantine_: Rob_, chain gang! [00:21] SubStack: I am definitely in the lots of small procs that talk to each other over the network camp [00:21] Rob_: thx, will read up [00:21] SubStack: s/blog app/blog post/ [00:22] stepheneb has joined the channel [00:22] ningu: SubStack: an intelligent blog app that will write the post for you? [00:22] dbrain1 has joined the channel [00:23] timoxley: SubStack ahh awesome. Yeah it seems like a good fit for node, though I find the idea of a monolithic app is hard to shake for some devs [00:23] mikeal has joined the channel [00:23] ivan` has joined the channel [00:23] volkan has joined the channel [00:24] SebastianFlyte has joined the channel [00:24] cconstantine_: SubStack, any chance you'll cover deployment systems? [00:24] SubStack: not in this post [00:24] SubStack: I'm building one of those [00:24] Broolucks has joined the channel [00:24] papachan has joined the channel [00:24] cconstantine_: cool [00:24] SubStack: it's not done yet, very hard problem to get right [00:24] cconstantine_: yup [00:24] SubStack: but I have most of the pieces done [00:24] timoxley: SubStack also there's a little bit of overhead and additional error handling to consider (eg, what happens if the service is down) [00:24] isao has joined the channel [00:25] cconstantine_: the one node service I've had to deploy I ended up using a railsless capistrano [00:25] timoxley: yeah we're using capistrano to deploy [00:25] SubStack: timoxley: that's what upnode is for [00:25] SubStack: oh yeah but you already know about that [00:25] webben has joined the channel [00:26] ningu: I feel like some sort of military commander every time I type "jitsu deploy" [00:26] boogyman has joined the channel [00:26] wingie: is it recommended to put the github repo url in the package.json for the dependencies instead of npm packages since then you will get the latest fix? [00:26] boogyman has joined the channel [00:27] timoxley: SubStack yeah upnode is a real life saver. [00:27] iangreenleaf: wingie: I do that when I need a specific fix that hasn't been tagged and released yet. Most node maintainers release new versions very often, though, so if you don't *need* to I'd say use the version numbers and let versions come when they're ready. [00:27] isaacs: wingie: i put the version in there. you can always install from the git repo when you want to [00:27] papachan has joined the channel [00:28] orospakr has joined the channel [00:28] strmpnk has joined the channel [00:28] willwh_ has joined the channel [00:28] sorensen__ has joined the channel [00:28] traph has joined the channel [00:28] Swizec has joined the channel [00:28] kriszyp has joined the channel [00:28] eignerchris has joined the channel [00:28] dgathright has joined the channel [00:28] retornam has joined the channel [00:28] philips has joined the channel [00:28] trotter has joined the channel [00:28] chjj has joined the channel [00:28] ryantm1 has joined the channel [00:28] sugyan has joined the channel [00:28] o0xSG1z has joined the channel [00:28] petersed has joined the channel [00:28] wao has joined the channel [00:28] lukegb_ has joined the channel [00:28] jperkin has joined the channel [00:28] robm has joined the channel [00:28] saghul has joined the channel [00:28] gerard0 has joined the channel [00:28] jacobolus has joined the channel [00:28] jbpros has joined the channel [00:28] justicefries has joined the channel [00:28] codelahoma has joined the channel [00:28] elijah-mbp has joined the channel [00:28] pkrumins has joined the channel [00:28] pocopina has joined the channel [00:28] olegp has joined the channel [00:28] fwg has joined the channel [00:28] jefferai has joined the channel [00:28] im0b has joined the channel [00:28] dlmalloc has joined the channel [00:28] ziyadb has joined the channel [00:28] OMGOMG has joined the channel [00:28] mattijs has joined the channel [00:28] senorpedro has joined the channel [00:28] tomaw has joined the channel [00:28] yorick has joined the channel [00:28] tmm1 has joined the channel [00:28] rgmarcha has joined the channel [00:28] ec has joined the channel [00:28] kkaefer_ has joined the channel [00:28] Astro- has joined the channel [00:28] nickp_ has joined the channel [00:28] kimico has joined the channel [00:28] mrb_bk has joined the channel [00:28] Fabryz has joined the channel [00:28] raww has joined the channel [00:28] optixx has joined the channel [00:28] jspiros has joined the channel [00:28] hcchien has joined the channel [00:28] janne has joined the channel [00:28] tg has joined the channel [00:28] swajr has joined the channel [00:28] SuMarDi has joined the channel [00:28] topaxi has joined the channel [00:28] pvilchez has joined the channel [00:28] marienz has joined the channel [00:28] mehlah_ has joined the channel [00:30] looopy has joined the channel [00:31] asdfawer has joined the channel [00:32] papachan has joined the channel [00:32] cconstantine_: ok, I just got the joke; substack made upnode [00:32] ovnicraft has joined the channel [00:32] asdfawer has left the channel [00:33] SubStack: joke? [00:33] cconstantine_: someone told you about upnode [00:33] cconstantine_: and then said something like 'but I guess you know that already' [00:33] SubStack: I mentioned upnode to timoxley [00:34] tjholowaychuk has joined the channel [00:34] SubStack: he already knows about it because he wrote a wrapper lib that combines dnode and upnode [00:34] cconstantine_: hehe [00:34] cconstantine_: it's like everyone here has done something [00:35] daviddripps has joined the channel [00:35] SubStack: npm and github make it crazy easy to do things [00:35] pendlepants has joined the channel [00:36] SvenDowideit has joined the channel [00:37] benvie: now you have to ride dinosaurs and shoot rockets out of your ass if you want to be cool [00:38] bizniz98 has joined the channel [00:39] betaloop has joined the channel [00:42] replore has joined the channel [00:42] replore_ has joined the channel [00:43] ryanfitz_ has joined the channel [00:43] piscisaureus_ has joined the channel [00:45] bradleymeck has joined the channel [00:45] stagas has joined the channel [00:46] zackattack has joined the channel [00:47] Octayn: benvie: you don't? [00:47] gr4yscale has joined the channel [00:47] Octayn: ACTION stops associating with benvie [00:48] cconstantine_: I made a syslog server with a web interface ... is that cool? [00:49] cconstantine_: that's kinda like a dinosaur [00:52] brianseeders has joined the channel [00:53] joshontheweb has joined the channel [00:53] michaelmartinez_: but def not rockets out of your ass [00:53] jyc has joined the channel [00:54] gavin_huang has joined the channel [00:54] CarterL has joined the channel [00:55] jaw187 has left the channel [00:58] mikeal has joined the channel [00:58] cconstantine_: ok good. [01:01] jj0hns0n has joined the channel [01:03] abraxas has joined the channel [01:03] cconstantine_: does jitsu require a nodejitsu account, or can I use it to deploy to my own server? [01:04] sanitypassing has joined the channel [01:04] sanitypassing: are there any node libraries for playing audio files? [01:04] sanitypassing: libraries / modules [01:04] diva has joined the channel [01:05] michaelmartinez_: cconstantine your home server or cloud instance? [01:05] cconstantine_: ec2 [01:06] jiboumans_ has joined the channel [01:07] ashishg has joined the channel [01:08] CIA-102: node: 03Ben Noordhuis 07master * rdefa637 10/ (3 files in 3 dirs): dgram: fix out-of-bound memory read - http://git.io/3m0Beg [01:08] CIA-102: node: 03Ben Noordhuis 07master * r3502e45 10/ lib/dgram.js : dgram: defer send error to next tick - http://git.io/sF1rrg [01:08] sanitypassing has left the channel [01:09] pendlepants has joined the channel [01:10] xuser has left the channel [01:12] DrHeiter23 has joined the channel [01:14] DrHeiter23: If I am using Socket.io to sync Backbone.js models from client/server, is it bad (does it even work?) if I store a user's socket in a model that gets synced to client? [01:15] ohtogo has joined the channel [01:15] CoverSlide: I imagine the socket is not serializable [01:15] tlab has joined the channel [01:15] CoverSlide: store the socket.id instead [01:16] aristidesfl has joined the channel [01:16] DrHeiter23: yeah i wouldn't think it is serializable.. i don't even really want to send it to client..just feel like it belongs in the model [01:17] isaacs has joined the channel [01:17] DrHeiter23: yeah - id could work too [01:17] michaelmartinez_ has left the channel [01:17] sirdancealot has joined the channel [01:18] fr0stbyte has joined the channel [01:23] themiddleman_itv has joined the channel [01:24] davehamptonusa has left the channel [01:24] c4milo has joined the channel [01:25] overthemike has joined the channel [01:25] c4milo has joined the channel [01:26] chrisvtx has joined the channel [01:27] timoxley: DrHeiter23 I wouldn't put it on the model. That's implementation details. Model should be just domain information. [01:27] chrisvtx has left the channel [01:28] looopy has joined the channel [01:28] timoxley: DrHeiter23 as in, as soon as you want to use that model in something that isn't socketio related, you've got a useless property adding clutter [01:28] zanefactory has joined the channel [01:29] rwaldron has joined the channel [01:29] timoxley: DrHeiter23 I would create a Connection object that composes your model data + connection data. [01:29] caolanm has joined the channel [01:29] dtrejo has joined the channel [01:31] joshontheweb has joined the channel [01:31] Druid_ has joined the channel [01:32] postwait has joined the channel [01:32] satyr has joined the channel [01:32] DrHeiter23: Ok it makes sense to not have it in there [01:33] ekryski has joined the channel [01:33] DrHeiter23: but imagine an app similar to irc where a client can be in multiple rooms or private chats, if a message comes into a client I need to know which client socket to forward that message to. So I was storing the socket in the Client Model [01:34] krnl has joined the channel [01:34] BillyBreen has joined the channel [01:34] chrisvtx1 has joined the channel [01:34] chrisvtx1 has left the channel [01:34] davidbanham: I've got a node process that's using heaps of memory. What can I do to profile it and figure out what's going on? [01:34] Rob__ has joined the channel [01:35] BillyBreen has joined the channel [01:36] whaley has joined the channel [01:36] bradleymeck: davidbanham, have you tried --prof and npm install profiler? [01:37] Joeysomo has joined the channel [01:38] kirbysayshi has joined the channel [01:39] devaholic has joined the channel [01:39] mikeal has joined the channel [01:40] kfox has joined the channel [01:40] kfox has left the channel [01:41] davidbanham: bradleymeck: I tried --prof but it doesn't seem to do anything different and I can't find any docs on it. [01:42] bradleymeck: davidbanham it should output a v8.log that nprof from profiler can give a summary from [01:42] dekub has joined the channel [01:42] jj0hns0n has joined the channel [01:42] davidbanham: bradleymeck: Ah! Awesome, thanks for that. I'll poke around with it a bit. [01:47] blaenk has joined the channel [01:47] blaenk has joined the channel [01:47] heavysixer has joined the channel [01:48] warz has joined the channel [01:48] warz has joined the channel [01:48] dephex has joined the channel [01:49] mikeal has joined the channel [01:52] merlin83 has joined the channel [01:52] DrHeiter23 has joined the channel [01:53] aristidesfl has joined the channel [01:54] subbyyy has joined the channel [01:54] Emmanuel` has joined the channel [01:55] zackattack_ has joined the channel [01:55] ta8let has joined the channel [01:56] jergason has joined the channel [01:56] andrehjr_ has joined the channel [01:56] ta8let has left the channel [02:04] icewhite has joined the channel [02:04] dtrejo: isaacs: when you have a moment, if you scan over https://github.com/isaacs/npm/issues/715, that would be great. if it's not something you've seen before, ill just use the debugger. ty :) [02:04] Joeysomo has joined the channel [02:04] dtrejo: ACTION thinks about how he should be quicker to use the debugger... [02:05] tommyvyo has joined the channel [02:05] kcf has joined the channel [02:06] nibblebot has joined the channel [02:06] pouledodue has joined the channel [02:07] ceej has joined the channel [02:07] a_suenami has joined the channel [02:08] thinkjson: Is there a way to tell a server to "unlisten" on a port? [02:09] thinkjson: ah - I see a .close method. Let me try that. [02:12] isaacs: dtrejo: you know, to set a conf for just one command, you can do `npm install gss --npat` [02:12] dtrejo: haha good to know [02:12] isaacs: or `npm install gss --npat true`, but booleans default to 'true' if not given a value. [02:13] kevwil has joined the channel [02:17] kevwil has joined the channel [02:18] mikeal has joined the channel [02:20] dbrain has joined the channel [02:20] jetienne_ has joined the channel [02:23] fermion has joined the channel [02:24] wiwillia: Already at 23 out of 30 reserved for the new Node.js shirts - www.teespring.com/oaklandjs [02:24] k1ttty has joined the channel [02:25] nakkor has joined the channel [02:25] nibblebot has joined the channel [02:26] jetienne_: mouamoua [02:26] jetienne_: i love the 'designed by substack' :) [02:26] misza222 has joined the channel [02:27] wingie: isaacs: for me that wanna use the latest bug fixes/features, would you recommend using npm packages from github like this: "async": "git://github.com/caolan/async.git#master", instead of npm package versions? [02:27] nakkor: when connected via mongoose, I can connect with connect(), but not createConnection(), even though they are using the *same* mongo url [02:27] enmand_ has joined the channel [02:27] wingie: is there any complication by using github repo directly instead? [02:27] isaacs: wingie: i put the version in there. you can always install from the git repo when you want to [02:28] joshontheweb has joined the channel [02:28] jetienne_: wiwillia: interesting teespring [02:29] kevwil has joined the channel [02:29] wingie: isaacs: what do you mean by your last sentence? [02:29] jeremyb_ has joined the channel [02:29] wingie: i mean i always want to use the github repos when doing "npm install" so i get the latest [02:29] isaacs: wingie: i put the version number in package.json [02:30] wingie: but then you would get the npm packages [02:30] isaacs: wingie: then do whatever suits you. [02:30] isaacs: wingie: unless you explicitly installed the github repo, yes. [02:30] isaacs: wingie: but quite frequently, master branches are for development [02:30] jdeibele has joined the channel [02:30] isaacs: wingie: and what you really want is the released version. [02:31] isaacs: ie, it's usually not "latest bugfixes" as much as it is "latest bugs" [02:31] wingie: isaacs: sometimes the authors are bad at pushing out the new fixes [02:31] wingie: isaacs: i guess i would wanna use the npm versions instead for public packages [02:31] ovaillancourt has joined the channel [02:32] wingie: isaacs: one thing i still need to use github instead is for my private projects [02:32] merlin83 has joined the channel [02:32] wingie: i have this line: "yobi": "git+ssh://git@github.com:johnnywengluu/yobi.git#master" .. any idea why npm failed to install it? it says "Permission denied: publickey" [02:32] nibblebot has joined the channel [02:33] wingie: npm ERR! git clone git@github.com:johnnywengluu/yobi.git Permission denied (publickey). [02:33] mraleph has joined the channel [02:33] wingie: but when doing "git clone git@github.com:johnnywengluu/yobi.git" it works (since i have specified the public key in the global git config) [02:35] isaacs: wingie: you have to put git:// in there [02:35] isaacs: oh, you did [02:35] isaacs: wingie: what's `npm -v` [02:35] isaacs: wingie: i think this is fixed on 1.1.1 [02:35] wingie: isaacs: 1.1.0-2 [02:35] isaacs: k, update please [02:35] wingie: okay ill try it with that v [02:35] isaacs: npm install npm -g [02:36] wingie: right i forgot the -g [02:37] Gigawattz has joined the channel [02:37] dtrejo: isaacs: is there an easy way to enable the debugger via the cli? or should I just node debug /path/to/cli.js install gss or something of that sort? [02:38] shanebo has joined the channel [02:38] Gigawattz: Hye Guys, Anyone have any tips on improving SSL + Socket.IO performance, We have recently added SSL support and CPU keeps spiking with about 3K connections [02:38] wingie: isaacs: still the same error [02:38] isaacs: dtrejo: no super easy way. but you can do `node debug $(which npm) install gss` [02:39] dtrejo: ooh [02:39] dtrejo: that's pretty easy [02:39] isaacs: wingie: i don't know why it's not accepting your key. [02:39] sharkbird_ has joined the channel [02:40] dtrejo: thanks :) [02:40] thinkt4nk has joined the channel [02:41] jerrysv has joined the channel [02:43] wingie: isaacs: is it using ~/.ssh/id_rsa.pub ? [02:43] wingie: i only have that one [02:43] SubStack: isaacs: over half way done with the dnode article [02:43] wingie: and it's uploaded to github [02:43] isaacs: wingie: it's just calling it in a child process. [02:43] isaacs: wingie: that's really it [02:43] wingie: hm [02:43] SubStack: it talks a lot about the philosophy of splitting up your code into lots of tiny services [02:43] isaacs: in the error output, it's telling you which command it's running [02:44] isaacs: SubStack: awesome. [02:44] wingie: weird that git clone git@github.com:johnnywengluu/yobi.git works but not through npm [02:44] ovaillancourt has joined the channel [02:45] SubStack: but I saved the bulk of the reasoning for another article I stubbed out, this one contains just a brief summary [02:45] SubStack: have to focus on dnode [02:45] Skyjoker has joined the channel [02:45] neoesque has joined the channel [02:45] Gigawattz: anyone use secure websockets in node ? [02:45] jaw187 has joined the channel [02:46] jaw187: if you wanted to check if a udp port is open on a remote host.......how would you do it? [02:48] luketheduke has joined the channel [02:48] wingie: isaacs: i get it .. i have the pub key in my user folder .. has to be in root [02:48] wingie: since im using "sudo npm install" [02:48] wingie: since it's cloning them to /tmp/... i have to be root [02:49] nickdc has joined the channel [02:49] wingie: solution 1: i have to create pub key for root [02:49] iangreenleaf has joined the channel [02:49] exBeliever has joined the channel [02:49] ericmuyser|air has joined the channel [02:49] wingie: 2. npm uses ~/tmp/ instead of /tmp so i can run "npm install" without sudo [02:49] joshontheweb has joined the channel [02:49] wingie: isaacs: isn't the second one better? [02:49] nickdc: can I connect to another socket.io server in my first socket.io server? [02:49] Gigawattz: yes [02:50] Gigawattz: require('socket.io-client') [02:50] Gigawattz: io.connect('0.0.0.10') [02:50] nickdc: ahh ok [02:50] exBeliever has left the channel [02:50] Gigawattz: there's a bug though [02:50] Gigawattz: one sec ill send you the patch for websocket.js [02:50] ashishg has joined the channel [02:50] nickdc: ok perfect [02:51] Gigawattz: https://github.com/LearnBoost/socket.io-client/issues/372 [02:51] Gigawattz: Notice my last comment (Robert Pitt) [02:51] luketheduke: so, assuming this is a node.js help channel, what do I need apart from "sudo apt-get install nodejs" to get node.js to work on debian based GNU/Linux (ubuntu to be specific)? [02:52] Gigawattz: npm install express [02:52] nickdc: ok thanks that really helps! for the help I'll be back if I have anymore questions [02:52] Gigawattz: np nickdc [02:52] Gigawattz: isaacs, are you aware of issues regarding ssl/tls and cpu performance in latest stable [02:53] plutoniix has joined the channel [02:54] jaw187: luketheduke: check out this site http://apptob.org/ [02:54] timoxley: luketheduke probably better to install via source, then get a node version manager to keep you up to date. the version in canonical is likely to be out of date [02:54] markq has joined the channel [02:55] luketheduke: ah, interesting [02:55] jacobolus has joined the channel [02:55] timoxley: jaw187 whoa, that site is awesome. [02:55] luketheduke: thanks [02:55] jaw187: luke: that script pulls 0.6.8 but the latest stable release is 0.6.11 [02:55] timoxley: and also out of date [02:55] luketheduke: allright [02:56] kcf: jaw187: since UDP is connectionless, it can be really difficult to tell if a remote UDP port is open or not... you may just need to send and hope for the best. what are you trying to do? [02:56] m_ has joined the channel [02:57] jhurliman has joined the channel [02:57] m_: =o= [02:58] jaw187: kcf: I'm just looking to test if a port is open. I've read that you can send an empty message and the server should respond with an error message [02:58] Gigawattz: use nmap [02:58] kcf: yeah, nmap -sU [02:58] Gigawattz: nmap -sU domain [02:58] Gigawattz: yea, what kcf said [02:59] luketheduke has left the channel [02:59] kcf: but if there's a firewall involved, it may silently discard your probe [02:59] jaw187: so how does nmap do it [02:59] joshontheweb has joined the channel [02:59] Gigawattz: read this jaw187 [02:59] Gigawattz: http://nmap.org/book/man-port-scanning-techniques.html [02:59] kcf: or you may get an ICMP port unreachable msg as a response [02:59] Gigawattz: > UDP scan works by sending a UDP packet to every targeted port. For some common ports such as 53 and 161, a protocol-specific payload is sent, but for most ports the packet is empty. The --data-length option can be used to send a fixed-length random payload to every port. If an ICMP port unreachable error (type 3, code 3) is returned, the port is closed. Other ICMP unreachable errors (type 3, codes 1, 2, 9, 10, or 13 [02:59] Gigawattz: ) mark the port as filtered. Occasionally, a service will respond with a UDP packet, proving that it is open. If no response is received after retransmissions, the port is classified as open|filtered. This means that the port could be open, or perhaps packet filters are blocking the communication. Version detection (-sV) can be used to help differentiate the truly open ports from the filtered ones. [03:00] esmevane has joined the channel [03:01] Gigawattz: yea we block a wide range of UDP ports [03:01] orlandovftw has joined the channel [03:01] jaw187: so, i'm using the dgram module. I create a socket and set a callback on message...then send to a udp port i know is open [03:02] davidbanham has joined the channel [03:02] jaw187: then if I send to a port which I know isn't open [03:02] jaw187: i don't get message back on either [03:02] jaw187: but maybe it is a firewall.....let me try on a local port [03:02] Gigawattz: I suspect a firewall at the DC level [03:03] isaacs: Gigawattz: what issues is that? [03:03] isaacs: Gigawattz: is it posted on the repo? [03:03] stelcheck has joined the channel [03:03] Gigawattz: isaacs, we have just added SSL support to one of our relays and with 1K clients we get 100% CPU spikes [03:03] Gigawattz: not sure [03:04] isaacs: Gigawattz: i'd like much much more information, especially if this changed between an earlier 0.6 version and now. [03:04] kcf: jaw187: are you sure the receiving port/service should respond with something? not all UDP-based services send responses back [03:04] isaacs: Gigawattz: in itself, 100% cpu spiking doesn't tell me much. [03:04] isaacs: Gigawattz: i'm not even sure how you'er measuring it, for instance. [03:04] davidban_ has joined the channel [03:04] Gigawattz: we jsut added our key, cert stuff to the options in socket.io connect, and noticed a spike every second or so [03:05] isaacs: Gigawattz: again, a lot more information is required, preferrably a standalone test demonstrating bad behavior. [03:05] isaacs: Gigawattz: i'm interested, though, definitely :) [03:06] jaw187: kcf: Using the similar strategy as nmap, I would consider the port is open if it fails tests which check if it's closed [03:06] isaacs: Gigawattz: you have me hooked. i've seen the poster, want to buy a ticket to the show :) [03:06] subbyyy has joined the channel [03:06] dreamdust has left the channel [03:06] Gigawattz: hehe, we are yet to do more testing we only pushed it on the network today, so bare with me, if it is persistent we can arrange for you to come and benchmark a live node [03:08] Gigawattz: I think the problem is down to an issue in socket.io, where there is some bad code causing 10~ "Client not hand-shaken, should reconnect", and this is causing the SSL/TLS stuff to repeat [03:09] Gigawattz: as i said, it requires more digging isaacs [03:09] Gigawattz: 10~ per second [03:09] isaacs: Gigawattz: yeah, that sounds weird, for sure. [03:09] isaacs: keep in touch as you learn more :) [03:10] isaacs: if there's anything we can do to help, lemme know [03:11] Gigawattz: I just rebooted this relay, it has 900 clients on right now, CPU sits around 3% and spikes to around 50% every 2 seconds, give it time and it will be spiking at 100% of a single core [03:11] philippk_ has joined the channel [03:11] tylerstalder has joined the channel [03:12] Gigawattz: also, do you know who does the v8-profiler isaacs, if so tell him to get his backside in gear please and fix it, I am lost without profiling [03:12] cyphase has joined the channel [03:13] Gigawattz: https://lh4.googleusercontent.com/-GcnP9GuChFc/T0WuwwrfkTI/AAAAAAAAfC0/Aa0zsdns9jo/w366/408957_385660234796769_205344452828349_1412723_2041249981_n.jpg [03:15] jerrysv has joined the channel [03:15] teadict: does using Browserify make AMD almost unnecessary? ^.- [03:16] SubStack: s/almost/completely/ [03:16] LeftWing has joined the channel [03:16] SubStack: I mean, AMD was already unnecessary before browserify came along [03:16] SubStack: but yes [03:16] teadict: the owner can't talk! [03:16] teadict: hehe [03:16] SubStack: and AMD is ridiculously horrible to program in [03:16] teadict: I second that alright... [03:17] SubStack: ##javascript seems to talk about browserify a lot too [03:17] SubStack: you could aks them [03:17] dbrain has joined the channel [03:17] teadict: lazy loading becomes mute if you already figured out how to load the whoel freaking app in one request or something like that [03:17] teadict: nah, I was joking [03:17] teadict: you can talk [03:17] thinkt4nk has joined the channel [03:17] teadict: but you should dance on the table while you do it.. [03:17] SubStack: teadict: also http://github.com/substack/wreq [03:17] teadict: naked [03:18] teadict: wat [03:18] SubStack: if you want node-style require()s without the built step [03:18] SubStack: it's mostly a proof of concept though [03:18] SubStack: it just moves the static analysis to the browser [03:19] SubStack: and does an async xhr for each require()d file [03:19] Gigawattz: looks interesting, ive been looking for a decent modular system for my projects [03:19] teadict: if you assure me that "building" my /browserify exports into one file won't bring silly consequences, I'll keep on using it, it's very comfy to code the client a la node [03:19] teadict: that wreq looks nice though [03:20] teadict: s/though/btw/ [03:20] coderarity: if someone sends a request for a resource that does not exist (and may or may not have been deleted), should I return a 410 status code? [03:20] SubStack: I see AMD as a failure of immagination [03:20] mjijackson has joined the channel [03:20] SubStack: "ok, better have require() take a callback, no other way to do it" [03:21] SubStack: "synchronous require() necessarily entails synchronous xhr which is obviously bad" [03:21] maxogden: coderarity: the way couchdb does it is return a 404 but in the body JSON with {"deleted: "true"} [03:21] teadict: SubStack: do I keep on browserify or not?! [03:21] teadict: YES [03:21] Gigawattz: what i would like is to pass an array.object and callback when they all completed [03:21] rurufufuss has joined the channel [03:22] teadict: SubStack: what if it app gets too big? [03:22] teadict: what if I have 150 files? [03:22] slloyd has joined the channel [03:22] Gigawattz: such as this: [{file:'./abc.js', onload:function(){}}] [03:22] coderarity: maxogden: even if it has not been created before? [03:22] teadict: does it build and load fast? [03:22] maxogden: coderarity: no it would be 404 without a body in that case [03:22] maxogden: coderarity: oh wait the body is {"error": "not_found"} [03:23] coderarity: maxogden: but the problem is I don't know whether or not it has been created before [03:23] maxogden: coderarity: so just return 404s if it doesnt exist [03:23] coderarity: maxogden: ok [03:24] adamkittelson has joined the channel [03:24] coderarity: oh, right, because 410's actually can get cached it seems [03:25] ericmuyser|air has joined the channel [03:25] teadict: return a 202 with a photo of their sisters naked [03:25] teadict: 200 [03:25] satyr has joined the channel [03:27] jesusabdullah: hah [03:28] coyo has joined the channel [03:29] diva has joined the channel [03:29] coyo: ACTION waves [03:29] nickdc has left the channel [03:29] coyo: hey all. [03:30] coderarity: i just got like, a C error in my Node.js program https://gist.github.com/ca67a774f9f568737462 [03:30] coderarity: it's happening when I'm posting data to a union/director server [03:30] coderarity: using curl, that is [03:32] dbrain has joined the channel [03:32] brianleroux has joined the channel [03:32] overthemike has joined the channel [03:32] xaq has joined the channel [03:32] vicapow has joined the channel [03:33] teslan has joined the channel [03:33] coyo: hey guys, how easy is node.js to learn, compared to python? i'm a bit of a durp, so i've had trouble picking up a language. i'm sure once i get the hang of it, i'll begin learning quickly, but.. idk, maybe i should get dome ritalin or something.. [03:33] coderarity: i think it's from node-uuid [03:33] isaacs: coyo: it's easy. just javascript. [03:34] SubStack: coyo: do you know javascript? [03:34] isaacs: coyo: you've got that on a browser everywhere, so it's worth learning regardless. [03:34] coyo: issacs, substack: i know a little js [03:34] SubStack: lots of designers have figured out how to program javascript so it can't be very hard [03:34] coderarity: coyo: it's too easy [03:34] coyo: substack: that's reassuring. most of my friends are coders, so i feel really really stupid not knowing how to code around them. [03:34] krnl has joined the channel [03:35] Raynos: Is the error object passed to uncaughtException really a string? [03:35] Raynos: I can't seem to get it to log anythign sensible [03:35] isaacs: node *does* give you a bit more async callbacky stuff than most web browser situations. [03:35] isaacs: but i mean, it's not really that far off conceptually from the dom, or jquery [03:35] coyo: ACTION nods. [03:35] huggies has joined the channel [03:35] Gigawattz: Raynos, nothing is "really" a string [03:35] isaacs: Raynos: typically it's an Error object. [03:35] coyo: okay, that's very reassuring, thank you, issacs, coderarity, substack [03:35] jesusabdullah: usually there should be, like, error.message and error.stack n' stuff [03:36] coyo: ACTION sticks around. [03:36] jesusabdullah: but not error.substack [03:36] jesusabdullah: that never happens. [03:36] Raynos: That's what I was thinking [03:36] coderarity: coyo: if you need javascript help you can also try ##javascript [03:36] Raynos: But it keeps logging " [TypeError: Cannot read property 'en' of null]" [03:36] krnl: i have a terminal application that i want to control from a webpage. the ideal is that i create image snapshots from the terminal show it on web and trigger all keystrokes on it that arrives from webpage. do you have any ideal how to get started? [03:36] coyo: true. [03:36] Raynos: which looks like the string to me ¬_¬ [03:36] jesusabdullah: if (error.substack) { sendgrid.send({ to: 'substack@browserling.com', text: 'dude you broke my module bro' }); } [03:36] jesusabdullah: ;) [03:37] Gigawattz: Raynos, have you tried util.inspect [03:37] SvenDowideit has joined the channel [03:37] Raynos: I have [03:37] SubStack: beep boop [03:37] Raynos: https://gist.github.com/2a4950afefcb689278ac [03:37] jesusabdullah: why not just console.log(typeof err) ? [03:37] jesusabdullah: That's what *I* do [03:37] jesusabdullah: Then I know that shit for sure [03:37] piscisaureus_ has joined the channel [03:38] Raynos: jesus: that works [03:38] jesusabdullah: so, what is it? [03:38] jesusabdullah: a fhqwhstring or an object? [03:38] jesusabdullah: if (typeof(err) == 'fhqwhstring') { console.error('cmon fhqwhgads.'); } [03:39] maxogden: Raynos: you can pass multiple arguments to console commands [03:39] maxogden: Raynos: console.log('hi','mom') [03:39] maxogden: ACTION  [03:40] Raynos: maxogden: I know, I was just getting annoyed and adding more logging line by line [03:40] blueadept has joined the channel [03:40] blueadept has joined the channel [03:40] Raynos: jesus: I need to wait for the redeploy on the cloud ._. cloud debugging -> ragequit [03:40] Raynos: Oh great it's an object [03:41] Raynos: Just console.dir and util.inspect didnt work ¬_¬ [03:46] pradeebv has joined the channel [03:47] jerrysv has joined the channel [03:49] racar has joined the channel [03:57] shiawuen has joined the channel [03:58] cjm has joined the channel [03:58] jerrysv has joined the channel [03:59] zarex has joined the channel [04:00] Joeysomo_ has joined the channel [04:02] kmiyashiro has joined the channel [04:02] broofa has joined the channel [04:04] jesusabdullah: Raynos: I know your pain. [04:07] jacobolus has joined the channel [04:08] orlandovftw has joined the channel [04:09] jerrysv has joined the channel [04:09] joshthecoder has joined the channel [04:10] crutex has joined the channel [04:10] al3xnull has joined the channel [04:11] bradleymeck has joined the channel [04:15] westg has joined the channel [04:15] maletor has joined the channel [04:16] ryanfitz has joined the channel [04:19] willwhite has joined the channel [04:20] joshkehn has joined the channel [04:20] joshkehn has left the channel [04:21] s33k has joined the channel [04:22] ditesh|cassini has joined the channel [04:23] timoxley: isaacs the readme in the package.json means `npm info` is terribly annoying. can it get special treatment and perhaps expand \n or perhaps parse the markdown or just not display the readme? [04:24] overthemike has joined the channel [04:24] robo has joined the channel [04:24] infynyxx has joined the channel [04:27] subhaze has joined the channel [04:30] timoxley: johnhamelink how'd you go with that 'stuff' [04:31] davidbanham has joined the channel [04:32] jdeibele1 has joined the channel [04:32] jergason has joined the channel [04:36] hexTech has joined the channel [04:37] ashishg has joined the channel [04:39] jtsnow has joined the channel [04:40] jerrysv has joined the channel [04:43] jaw187 has left the channel [04:45] isaacs: timoxley: yeah, that wasn't supposed to be shown unless you explicitly request i. [04:45] isaacs: *it [04:45] isaacs: timoxley: patch welcome [04:45] isaacs: timoxley: the intent was to support `npm view foobar readme` though [04:45] isaacs: which IS pretty baller as it stands right now [04:47] s33k has joined the channel [04:48] timoxley: isaacs it needs some of this action http://code.google.com/p/markdownsharp/ [04:48] isaacs: timoxley: you're hilarious. [04:49] isaacs: marked is quite nice, actually [04:50] ashishg has joined the channel [04:51] markq has joined the channel [04:52] OmidRaha has joined the channel [04:52] OmidRaha has joined the channel [04:55] kirbysayshi has joined the channel [04:55] timoxley: isaacs I see every other command except info in npm/lib [04:55] timoxley: ahh [04:56] timoxley: view [04:56] jtsnow has joined the channel [04:56] jamescarr_ has joined the channel [04:56] shanebo has joined the channel [04:58] dtrejo has joined the channel [04:58] CIA-102: node: 03isaacs 07master * r92cb684 10/ (test/fixtures/a1.js test/fixtures/a1.js): [04:58] CIA-102: node: Change test fixture from symlink to regular file [04:58] CIA-102: node: The only test using this is test/simple/test-fs-chmod.js, and it was [04:58] CIA-102: node: treating a.js and a1.js as two separate files, resulting in a race [04:58] CIA-102: node: condition. (Interestingly enough, it was *not* using the symlink file to [04:58] CIA-102: node: test lchmod, which uses a different temp file.) - http://git.io/4YfQww [04:58] CIA-102: node: 03isaacs 07master * r9a6f936 10/ test/simple/test-fs-watch.js : test-fs-watch: Add faster failure, and link to #2813 - http://git.io/9kqUSQ [04:58] mikeal has joined the channel [04:59] dtrejo: is fs watching on windows working? I tried to do it at one time and it didn't work [04:59] dtrejo: at least not with mtime detection like on unix [05:01] justicefries has left the channel [05:01] jerrysv has joined the channel [05:04] looopy_ has joined the channel [05:07] jamescarr_: Segment Fault!? [05:07] jamescarr_: AAAAH!!! [05:07] jamescarr_: :) [05:08] ivaano has joined the channel [05:10] isaacs: dtrejo: fs watching works on windows, yes, but on every platform, you get different stuff in the data objects. [05:10] dtrejo: mmk, so I just need to play around with it more [05:11] dtrejo: good to know [05:11] isaacs: dtrejo: not wildly different, but... different. [05:11] subbyyy has joined the channel [05:11] isaacs: dtrejo: we do try to make them as similar as possible. [05:11] munichlinux has joined the channel [05:11] isaacs: dtrejo: but if a platform jsut doesn't have some piece of info, we don't remove it from those that do. [05:11] trotter has joined the channel [05:11] dtrejo: are both watchFile and watch going to stay around for the foreseeable future? [05:12] jamescarr_: I hope so! [05:12] isaacs: i think fs.watch() is the preferred mechanism [05:13] ashishg has joined the channel [05:14] jtsnow has joined the channel [05:17] ashishg_ has joined the channel [05:21] dreamdust has joined the channel [05:21] mandric has joined the channel [05:21] sreeix has joined the channel [05:24] volkan has joined the channel [05:25] westg has joined the channel [05:28] mikeal has joined the channel [05:29] tristanz has joined the channel [05:31] caffine has joined the channel [05:32] _th_n has joined the channel [05:34] orlandovftw has joined the channel [05:35] spion1 has joined the channel [05:36] Tim__ has joined the channel [05:37] pradeebv has joined the channel [05:38] charlenopires has joined the channel [05:39] Internet13 has joined the channel [05:43] charlenopires has joined the channel [05:46] c0smikdebris has joined the channel [05:47] nibblebot has joined the channel [05:49] parshap has joined the channel [05:49] wingie: is there a way to generate a random sha1 id using crypto.createHash('sha1').digest('hex'); [05:50] wingie: that one is giving me the same id each time [05:50] sreeix has joined the channel [05:50] tristanz has left the channel [05:54] FuzzYspo0N has joined the channel [05:55] cha0s has joined the channel [05:55] cha0s has joined the channel [05:56] harthur has joined the channel [05:56] wingie: nm [05:56] mansoor has joined the channel [05:59] dtrejo has joined the channel [06:00] pvankouteren has joined the channel [06:05] joshkehn has joined the channel [06:06] niloy has joined the channel [06:07] ashishg has joined the channel [06:07] elnn has joined the channel [06:10] margle has joined the channel [06:11] mikeal has joined the channel [06:17] FuzzYspo0N has joined the channel [06:24] apoc_ has left the channel [06:25] joshontheweb has joined the channel [06:26] jamescarr_: anyone know how well along the browser testing stuff (like zombie) is now in node? [06:29] gr4yscale has joined the channel [06:30] ovaillancourt has joined the channel [06:30] elnn has joined the channel [06:34] EvilPacket has joined the channel [06:34] hij1nx has joined the channel [06:35] tonist has joined the channel [06:35] gr4yscale has joined the channel [06:36] blacktea has joined the channel [06:37] porco has joined the channel [06:39] _baton__ has joined the channel [06:40] odinswand has joined the channel [06:43] jacobolus has joined the channel [06:44] jgornick has joined the channel [06:44] shanebo has joined the channel [06:44] xbmc has joined the channel [06:45] edjafarov has joined the channel [06:45] simenbrekken has joined the channel [06:45] copongcopong has joined the channel [06:46] mansoor: What static file server are people using? All of the ones listed on the module page haven't been updated in like 6 months [06:47] jesusabdullah: I wrote one that I'm trying to keep maintained [06:47] jesusabdullah: mostly works [06:47] jesusabdullah: http://github.com/jesusabdullah/node-ecstatic [06:47] garrensmith has joined the channel [06:47] jesusabdullah: Also, connect's static middleware [06:47] jesusabdullah: which is similar [06:47] jesusabdullah: mansoor: Also, http://github.com/nodeapps/http-server [06:48] Qzen^ has joined the channel [06:49] SamuraiJack has joined the channel [06:49] mansoor: jesusabdullah, it doesn't have JS API? [06:49] jesusabdullah: mansoor: it uses ecstatic internally [06:50] garrensmith: morning [06:50] jesusabdullah: node-static for 0.1.x [06:50] Nuck has joined the channel [06:50] Nuck has joined the channel [06:50] jesusabdullah: node-static was rock solid, but didn't play nice as a middleware [06:50] k1ttty_ has joined the channel [06:51] mansoor: ahh thats fine, I'm not using express/connect I need something that I can "hook up" to my http server and control though an api [06:51] jesusabdullah: obtw, anybody interested in contributing to ecstatic: make my 0.2.x tests pass (I'm a noob) [06:52] jesusabdullah: well try ecstatic and node-static then imo [06:52] jesusabdullah: and if neither of those do what you need also look at connect's static middleware [06:53] k1ttty has joined the channel [06:53] mansoor: :D bastard seems to be exactly what i'm looking for [06:54] mansoor: thanks jesusabdullah!! [06:54] k1ttty has joined the channel [06:56] lperrin has joined the channel [06:56] dubenstein has joined the channel [06:57] confoocious has joined the channel [06:57] confoocious has joined the channel [06:58] sreeix has joined the channel [06:58] michaelmartinez has joined the channel [07:00] davehamptonusa has joined the channel [07:00] davehamptonusa has left the channel [07:01] jprichardson has joined the channel [07:02] benjixx has joined the channel [07:09] ericmuyser|air has joined the channel [07:09] skylamer` has joined the channel [07:11] madhums has joined the channel [07:11] confoocious has joined the channel [07:11] confoocious has joined the channel [07:13] garrensm_ has joined the channel [07:13] k1ttty has joined the channel [07:13] stonebranch has joined the channel [07:15] cha0s has joined the channel [07:15] cha0s has joined the channel [07:15] kwmiebach has joined the channel [07:16] jp232 has joined the channel [07:19] isaacs has joined the channel [07:20] ditesh|cassini has joined the channel [07:20] isaacs: timoxley: npm info is an alias for npm view [07:20] isaacs: lib/view.js [07:21] garrensmith has joined the channel [07:22] socketio\test\11 has joined the channel [07:22] arnorhs has joined the channel [07:23] cl0udy has joined the channel [07:24] otaku_coder has joined the channel [07:25] otaku_coder: hi, I'm building a custom module and I'm wondering what the best practice is for sending back errors from the module? Also how could I pass in a logger, such as winston, to attach to? [07:28] jesusabdullah: otaku_coder: Usually, you either throw the error (for sync functions) or pass it to the callback (for async functions) [07:28] sdonai has joined the channel [07:28] jesusabdullah: otaku_coder: myModule.doThing(function (err, result) { /* ... */ }); [07:28] umren has joined the channel [07:29] otaku_coder: jesusabdullah: ok, figured that was the case but wanted to make sure [07:29] M1l3n1um has joined the channel [07:29] subbyyy has joined the channel [07:31] gavin_huang has joined the channel [07:31] jesusabdullah: sure, sure [07:32] jiboumans_ has joined the channel [07:32] jesusabdullah: as far as attaching a logger goes, I can't give you nearly as straightforward an answer [07:32] Nuck: Ugh, been debugging this recursive directory scanner for weeks [07:32] jesusabdullah: because nobody agrees on logging at all [07:32] Nuck: Anyone feel like providing a second pair of eyes? [07:32] jesusabdullah: I'm actually hitting the hay [07:32] jesusabdullah: believe it or not [07:32] jesusabdullah: gotta test the shit out of jitsu 0.8.0-alpha yo [07:33] Nuck: lol jitsu [07:33] jesusabdullah: dude jitsu rocks [07:33] jesusabdullah: and this refactor is hella nice [07:33] jesusabdullah: like, I can find things now [07:33] Nuck: Nodejitsu seems cool, but I've got my own infrastructure :B [07:33] jesusabdullah: and the test suite is legit [07:33] Nuck: My only problem I've got to solve is making a startup script for my apps [07:33] jesusabdullah: Nuck: You know 80% of our infrastructure's oss right? [07:34] Nuck: jesusabdullah: Yep [07:34] jesusabdullah: including haibu? [07:34] Nuck: Looking at possibly using haibu [07:34] jesusabdullah: yeah, haibu's nice [07:34] Nuck: But I wish it could pull from a private git repo :( [07:34] jesusabdullah: it can [07:34] Nuck: Or even just automatically tar the current directory and push [07:34] jesusabdullah: it can definitely git pull [07:34] jesusabdullah: that's what jitsu does [07:34] Nuck: The issue is still open on haibu? [07:34] jesusabdullah: git *push* deploys don't work [07:35] jesusabdullah: git *pull* deploys work fine [07:35] Nuck: Hm, that's a bit of a problem... [07:35] stagas has joined the channel [07:35] jesusabdullah: why? didn't you ask for pull deploys? [07:36] Nuck: I'd rather not put a private key on my servers that has access to my repository [07:36] jesusabdullah: I'm sure you could make push deploys work pretty easy by combining haibu and the stizz's git thing [07:36] ph^ has joined the channel [07:36] jesusabdullah: Hell, send us a pull request [07:36] Nuck: Never heard of this git thing [07:36] simenbrekken has joined the channel [07:36] jesusabdullah: look into it [07:36] jesusabdullah: I lost track [07:37] Nuck: All I can find it "Stizz and the GIT IT RYTE" [07:37] Nuck: Something about gansta rap [07:37] simenbrekken has joined the channel [07:37] jesusabdullah: https://github.com/substack/propagit [07:37] sh1mmer has joined the channel [07:38] Nuck: Where the hell did Stizz come from? [07:38] jesusabdullah: substizzy + the stack [07:38] Nuck: lmao [07:38] jesusabdullah: with a dash of the stigg [07:38] Nuck: Okay, I'll remember that's his nickname now haha [07:38] chjj: substizzy + the stack = substizzystack? [07:38] jesusabdullah: you forgot to divide by two [07:39] Nuck: Fo stizzle my nizzle [07:39] jesusabdullah: right [07:39] jesusabdullah: anyway [07:39] jesusabdullah: bed [07:39] Morkel has joined the channel [07:40] Nuck: hrm. propagit is standalone git stuff? [07:40] Nuck: I'll hafta study it more [07:40] gorekee has joined the channel [07:40] Nuck: Anyways, if somebody could take a look at this thing and tell me if they see anything off, I'd appreciate it! https://gist.github.com/1891309 [07:41] Nuck: Trying to make my docs compile themselves when I git push [07:41] Xedecimal has joined the channel [07:41] jesusabdullah: idk nuck [07:41] jesusabdullah: honestly I've been too preoccupied with nodejitsu's deployment system to pay attention to sub's [07:41] Nuck: For some reason, while all the constituent parts seem to work, they fail in tandem :S [07:42] Nuck: jesusabdullah: I'm prolly gonna build yet another, maybe fork from haibu or propagit... [07:42] jesusabdullah: I think propagit depends on a more basic git module [07:43] jesusabdullah: propagit dupes a good chunk of haibu functonality iirc [07:43] deeprogram has joined the channel [07:43] Xedecimal: I've read quite a few pages suggesting making your own modules... Boy do they suck! They say just put your code in a .js file, then export some functions with the global 'exports' object and then in your application just use require('module').exportedname and voila! They forgot to mention that it won't find your module if you do that, "module anything not found" ... I tried placing it in the... [07:43] Xedecimal: ...lib folder, making the npm package.json file and everything, made a main function and exported that, nothing nothing nothing, a million tutorials out there that don't tell you the details, what am I missing ? [07:43] jesusabdullah: Xedecimal: package.json [07:43] stagas: Nuck: shouldn't there be a 'EventEmitter.call(this)' in the constructor? [07:43] deeprogram: hey ? [07:44] davehamptonusa has joined the channel [07:44] davehamptonusa has left the channel [07:44] Xedecimal: should I create a folder directly under my application.js file and place both the module.js and package.json file in there? Should it be in the 'lib' folder, one of those tutorials suggested that [07:44] Nuck: stagas: ? I just use utils.inherits, doesn't that handle the stuff for me? [07:44] chjj: stagas: i think event emmiters still lazily apply this._events = {}; [07:44] jesusabdullah: Xedecimal: https://github.com/nodeapps/boilerplates [07:44] jesusabdullah: Xedecimal: you'll find some simple examples here for how node modules should look [07:44] Xedecimal: *reads that git url* [07:44] chjj: Nuck: you still have to call the constructor when you do inheritence [07:44] Nuck: hrm [07:44] dannyamey has joined the channel [07:44] chjj: but i think event emitters still lazily add `this._events` if you dont call the constructor [07:45] SubStack: Nuck: also http://github.com/substack/pushover [07:45] jesusabdullah: Nuck: util.inherits just copies the prototype methods. It doesn't call the constructor. [07:45] Xedecimal: ohhh, a 'scripts' portion of package.json, nothing anywhere I read ever even made a mention of that [07:45] Nuck: Ah, I see [07:45] jesusabdullah: Xedecimal: You want the 'main' field [07:45] jesusabdullah: Xedecimal: 'scripts' is, like, for bins [07:45] jesusabdullah: alright bed [07:45] Xedecimal: dnode has no 'main' in package.json [07:45] Nuck: Well, the problem isn't in the EventEmitter, AFAICT, it seems to be something odd with the recursion or the directory lister [07:45] Xedecimal: scripts.start in express [07:46] Nuck: But no matter how hard I look, I just cannot find what's breaking it [07:46] chjj: yeah, as it happens eventemitters dont do anything in the constructor: https://github.com/joyent/node/blob/master/lib/events.js [07:46] chjj: but its usally best practice to call the constructor anyway [07:46] Xedecimal: there is no 'main' in any of the 4 boilerplate modules, right ? [07:46] deeprogram: https://gist.github.com/1891370 [07:47] jesusabdullah: Xedecimal: Those are apps, not modules [07:47] deeprogram: can you explain this problem ? [07:47] Nuck: Certain files just don't show up, when I have a basic folder structure [07:47] jesusabdullah: Xedecimal: here, let me find you a simple module [07:47] jesusabdullah: Xedecimal: https://github.com/jesusabdullah/node-zippy/blob/master/package.json [07:47] jesusabdullah: random tiny module I wrote [07:47] jesusabdullah: but you can see what I mean here [07:47] Xedecimal: ooooookay, gotcha, I'll put that together [07:48] jesusabdullah: Xedecimal: oh, and [07:48] jesusabdullah: Xedecimal: http://package.json.jit.su [07:48] Xedecimal: heyyyyyy! Lovely! [07:48] jesusabdullah: I'd almost forgotten! [07:48] jesusabdullah: Yeah >_< [07:48] Xedecimal: thank you very much! [07:48] Nuck: SubStack: Hmmm I like your API, I might copy that and make my own git deploy framework on top of gitolite for that :D [07:48] jesusabdullah: no prob [07:48] predikt has joined the channel [07:50] groom has joined the channel [07:51] elnn has joined the channel [07:51] stonebranch has joined the channel [07:51] graeme_f has joined the channel [07:51] predikt has left the channel [07:53] pthm has joined the channel [07:54] maletor has joined the channel [07:55] Xedecimal: well poop, I made a folder for my lib, put my lib.js file, made a package.json, included a lot of the variables from the cheatsheet, most notibly the 'main': './lib.js' portion. Now I get "Cannot find module 'lib'", as I was expecting, you couldn't just put it in any folder anywhere because then node would need to scan every subdir of the application trying to locate all possible libs.... [07:55] Xedecimal: ...There's gotta be one specific place to put them I'd think or some way to point them in the right place [07:56] Xedecimal: ok, put it under node_modules and now we're getting somewhere! [07:57] joshontheweb has joined the channel [07:57] dobber has joined the channel [07:57] mraxilus has joined the channel [07:58] Xedecimal: yey, all magically kicking in now! [07:58] hipsterslapfight has joined the channel [07:58] predikt has joined the channel [07:59] stafamus has joined the channel [08:00] tornad has joined the channel [08:00] gut4 has joined the channel [08:01] aliem has joined the channel [08:02] Wizek has joined the channel [08:02] jetienne_ has joined the channel [08:02] jomoho has joined the channel [08:02] saurb has joined the channel [08:03] stagas: Xedecimal: 'npm init' on project root detects some stuff for you and makes a package.json [08:04] thalll has joined the channel [08:04] Xedecimal: the first time I ran that, it wouldn't generate because I referenced npm from another folder, eg: '..\npm init' so after it asked a bunch of questions it just dumped an empty log file for me, later I found out I had to run it from it's directory and it exported a file I could move and edit [08:05] Xedecimal: definitely a long line of gotchas I keep running straight into like the special olympics hurdles [08:05] Xedecimal: I'm totally well on my way now though! Got it spawning processes, running my little ssdp server, this is just amazing! [08:05] aslant has joined the channel [08:05] mraleph has joined the channel [08:06] plutoniix has joined the channel [08:06] isaacs: Xedecimal: first, try making a program that uses some modules you install from npm, like a little express website or something [08:06] isaacs: Xedecimal: then you'll get a feel for what a "module" is, and how to install them, etc. [08:07] isaacs: Xedecimal: within your own program, you can require() other files by just referring to them by name. require("./foo.js") or require("./lib/bar.js") or whatever, relative to the file doing the requiring [08:07] Xedecimal: now THAT is a good thing to know! [08:07] Xedecimal: thne it can start feeling like php again for me [08:08] Yester has joined the channel [08:08] isaacs: Xedecimal: a "package" is just a folder with a package.json in it [08:08] isaacs: Xedecimal: it looks a little magic at first, but it's actually pretty simple. [08:08] isaacs: ACTION also came from php [08:08] jiboumans_ has joined the channel [08:08] __doc__ has joined the channel [08:08] Xedecimal: it can't be, if I move my module folder right under my app folder, then attempt to require('module'); it would say it's not found. [08:08] Xedecimal: with the package.json, 'main' defined and everything [08:09] isaacs: Xedecimal: anything that doesn't start with ./ or / or ../ is an "absolute" module [08:09] konobi: node_modules directory [08:09] saurb has left the channel [08:09] Xedecimal: that was the first problem I kept running into, I had to move my modules over to app/node_modules/module [08:09] isaacs: Xedecimal: if two files are right next to each other, they'd do require("./foo.js") and require("./bar.js") [08:09] `3rdEden has joined the channel [08:09] Xedecimal: yeah, like konobi said [08:09] isaacs: Xedecimal: "absolute" module identifiers are loaded from the builtin node modules (fs, path, etc.) or node_modules folders [08:10] isaacs: http://nodejs.org/api/modules.html [08:10] Xedecimal: holy crap, I've never even seen this page [08:10] isaacs: Xedecimal: require() is like php's require_once [08:10] euforic has joined the channel [08:10] Xedecimal: http://nodejs.org/docs/latest/api/globals.html#module was as far as I had gotten over there [08:11] Xedecimal: it'd be super awesome if they just made a nice little link from that to the modules page you just referenced, would save a ton of people a ton of questions [08:11] al3xnull has joined the channel [08:11] isaacs: Xedecimal: yes, i will add that. [08:12] Xedecimal: oh, you can, great then! [08:12] ablomen has joined the channel [08:12] mikaelb has joined the channel [08:12] ppcano has joined the channel [08:12] isaacs: lol "See `src/node.js` for more information." [08:13] isaacs: that's so old [08:13] cosmincx has joined the channel [08:13] isaacs: "Wanna know how it works? RTFS." [08:14] mmalecki: at some point I noticed I don't really use docs anymore [08:14] Xedecimal: lol [08:15] jxson has joined the channel [08:15] Tatort79 has joined the channel [08:15] isaacs: mmalecki: yeah, but it takes a while to get there. [08:15] isaacs: mmalecki: i still start with docs a lot of the time, if i haven't been in a part of the code in a long while [08:16] mmalecki: isaacs: it's easy with github's search, when you press 't' and type in module name [08:16] isaacs: oh, really? id dint' realize it had that. [08:16] isaacs: i usually browse the source locally [08:17] fangel has joined the channel [08:18] rendar has joined the channel [08:18] chirag has joined the channel [08:18] CIA-102: node: 03isaacs 07master * r1b5048b 10/ doc/api/globals.markdown : doc: refer to modules doc rather than src/node.js - http://git.io/sZ1c5g [08:18] isaacs: Xedecimal: ^ [08:19] isaacs: of course, won't be live for some time :) [08:19] Xedecimal: kick butt! [08:19] Xedecimal: that page as all the answers I ever needed all right there on one page [08:20] isaacs: sweet :) [08:22] tdegrunt has joined the channel [08:22] [AD]Turbo has joined the channel [08:22] [AD]Turbo: hola [08:24] chirag: i'm trying to connect mongodb with node.js using the node.mongodb-native driver..and the using the example given on http://howtonode.org/express-mongodb...i'm trying a basic find query but nothing is returend in the result...no error is thrown..here is the code snippest http://pastebin.com/tnsrrsxL [08:25] chirag: can someone please point out the mistake.. [08:25] Xedecimal: ok, it's your order I believe [08:26] Xedecimal: db.open has a callback that will fire once your connection opens [08:26] Xedecimal: something tells me you're sending the query before the connection successfully opens [08:27] panosru has joined the channel [08:27] chirag: but i guess i m opening the connection when the node server is up and query is fired only when i visit the index route [08:27] Xedecimal: try something like db.open(function (err, db) { db.collection('colname', function (err, c) { val = c.findOne({'name': 'value'}); } }); [08:27] michaelhartau has joined the channel [08:27] chirag: so it must be after the connection opens up [08:27] chirag: ok [08:27] Xedecimal: and if that fails, one of those 'err' arguments should be available to tell you more [08:28] Xedecimal: maybe then something will start making snse [08:28] Xedecimal: (mind you I'm no intermediate node.js developer) [08:28] k1ttty has joined the channel [08:29] skylamer` has joined the channel [08:29] robhawkes has joined the channel [08:29] lperrin has joined the channel [08:29] felixhummel has joined the channel [08:30] ovaillancourt has joined the channel [08:33] justicefries has joined the channel [08:33] chirag: Xedecimal: this.db.open(function(err, d){ d.collection('users', function(err,c){console.log(c.find();})}); [08:34] Blkt has joined the channel [08:34] Xedecimal: did this return an empty result still ? [08:34] Xedecimal: maybe try console.log(err) [08:34] Xedecimal: brb [08:35] hackband has joined the channel [08:35] chirag: it prints out a lot of stuff..http://pastebin.com/2E0Sqsg5 [08:36] FuzzYspo0N has joined the channel [08:36] chirag: console.log(err) prints null [08:38] FuzzYspo0N has joined the channel [08:39] Xedecimal: zero records, are you sure there are records to retrieve ? [08:40] chirag: yes..when i do db.chat.users.find() in the shell it prints out the record [08:40] chirag: has only 1 record [08:40] cjm has joined the channel [08:40] Xedecimal: crap, gotta go even deeper [08:41] chirag: yeah!..trying to debug from past 1 hour..:( [08:41] Xedecimal: d.collection('users', function (err, c) { c.find({}, function (err, doc) { console.log(doc); } }); mahaps ? [08:41] chirag: let me try [08:42] Xedecimal: I just got my mongo app working and it's definitely pulling results with that style [08:42] janjongboom has joined the channel [08:43] chirag: gives the same ouput as before.. [08:44] Xedecimal: maybe try findOne, cause that's what I've used for the doc [08:44] chirag: alright [08:44] Xedecimal: if that works then it's a question of dealing with the collection rather than the documents themselves [08:44] tingchun_ has joined the channel [08:44] chirag: findOne gives null [08:45] Xedecimal: geesh, I think you've exhausted my capabilities [08:45] Xedecimal: unless err is set on the findOne callback [08:45] johnhamelink has joined the channel [08:45] Xedecimal: I'm sure someone here has some better information than me as many people working with node also work with mongo [08:46] chirag: err is also not set.. [08:46] Xedecimal: if they would just wake up, if only you could shake a channel like a tree [08:47] torvalamo: anyone have a trick for getting the equivalent of the moz 'y' regex modifier instead of having to slice the string all the time? [08:47] chirag: hopefully some else would like to have a look...thanks for help!..:d [08:47] chirag: lol [08:47] Xedecimal: no problem, even though I wasn't much help, lol [08:47] mansoor: Ohhh sooo much work sooooo 1 person to do it all :( [08:48] joaojeronimo has joined the channel [08:49] janjongboom_ has joined the channel [08:51] TomY has joined the channel [08:51] joaojeronimo: Why do I get an EBADF, bad file descriptor error when I try to "nohup node server.js &" but if I launch it without nohup it just works fine ? [08:52] i42n has joined the channel [08:54] dve has joined the channel [08:55] lperrin1 has joined the channel [08:56] stonebranch has joined the channel [08:56] tomasztomczyk has joined the channel [08:57] dve has joined the channel [08:58] jkridner_ has joined the channel [09:00] janjongboom has joined the channel [09:00] navpar has joined the channel [09:01] aaronmcadam has joined the channel [09:01] FuzzYspo0N has joined the channel [09:01] robi42 has joined the channel [09:03] hipsterslapfight has joined the channel [09:04] BiCarb has joined the channel [09:07] cosmincx has joined the channel [09:09] erikzaadi has joined the channel [09:09] sriley: id guess its unable to write to nohup.log or whatever the filename is that it logs to instead [09:10] cyphase has joined the channel [09:12] sriley: has anyone had any issues using npm in vagrant? im getting an "UNKNOWN" error code trying to install a package locally [09:13] paera has joined the channel [09:14] sandfox has joined the channel [09:14] c0smikdebris has joined the channel [09:17] Qalqi has joined the channel [09:18] stefpb has joined the channel [09:18] maritz has joined the channel [09:18] merlin83 has joined the channel [09:23] salva has joined the channel [09:24] uchuff has joined the channel [09:25] Xedecimal: I've never used npm in vagrant I don't think [09:26] whitman has joined the channel [09:27] Xedecimal: terminating processes is a major pain in windows it seems for damn near anything. I couldn't kill mongodb as it would be an unclean shutdown, finally hacked up a way to send an admin command to terminate it inside and that worked, get apache going and I can terminate it's main process but child forks linger on I believe... It'd sure be nice if you could just terminate something in windows as... [09:27] Xedecimal: ...expected [09:28] graeme_f has joined the channel [09:29] hz has joined the channel [09:29] take_cheeze has joined the channel [09:31] lzskiss has joined the channel [09:31] slaskis has joined the channel [09:33] odinswand has joined the channel [09:37] arduix has joined the channel [09:37] eldios has joined the channel [09:37] jldbasa has joined the channel [09:40] dazoakley has joined the channel [09:40] dazoakley has left the channel [09:41] paera has left the channel [09:41] jetienne_ has joined the channel [09:43] Xedecimal: yes! I killed the whole daemon! [09:43] Xedecimal: I had to stdin, stdout, stderr all .end() [09:46] graeme_f has joined the channel [09:48] hellp has joined the channel [09:49] ningu has joined the channel [09:53] _dmb has left the channel [09:55] levi501d has joined the channel [09:55] stagas has joined the channel [09:56] blup has joined the channel [09:57] boltR has joined the channel [09:57] Xedecimal: neeeevermind, I was running those before it had a chance to spawn it's hellspawn children, that still don't go away, and doing that with mongo will uncleanly shut it down and break the crap out of everything, complete failures here [09:57] tokumine has joined the channel [09:58] Skola has joined the channel [09:59] ckknight has joined the channel [09:59] jetienne_ has joined the channel [10:00] robinduckett has joined the channel [10:01] daglees has joined the channel [10:01] daglees has joined the channel [10:01] M1l3n1um has joined the channel [10:03] jimmy- has joined the channel [10:03] chirag has joined the channel [10:04] deeprogram has joined the channel [10:06] paera has joined the channel [10:07] predikt has left the channel [10:07] Glenjamin has joined the channel [10:08] i42n has joined the channel [10:09] mansoor: how can I change the email attached to a NPM user? [10:11] paera has left the channel [10:14] ajackbot has joined the channel [10:16] FuzzYspo0N has joined the channel [10:17] sugyan has joined the channel [10:18] MartinCleaver: Does Node's Require mandate that filenames match classnames? (I am trying to minimally adapt a base javascript library where class FreshBooks_Element comes from file FreshBooks/Element.js) [10:18] josh-k has joined the channel [10:18] bradleymeck: MartinCleaver, no [10:19] konobi: MartinCleaver: hello canadian! [10:19] MartinCleaver: ACTION is also British :) [10:19] konobi: MartinCleaver: ditto [10:19] QaDeS has joined the channel [10:19] konobi: MartinCleaver: anyways... no... require... look at the "module" docs [10:20] MartinCleaver: but are you also Canadian, also? [10:20] konobi: http://nodejs.org/docs/latest/api/modules.html [10:20] MartinCleaver: I have http://nodejs.org/api/modules.html#loading_from_node_modules_Folders open [10:20] konobi: MartinCleaver: BC... yup [10:20] MartinCleaver: aha ;) [10:20] [[zz]] has joined the channel [10:21] MartinCleaver: ACTION is searching for the module naming rules… I think I've seen it in the past [10:21] bradleymeck: there is none MartinCleaver, the only thing node cares about is file extensions [10:21] konobi: modules are just objects... they can be named anything you want [10:21] bradleymeck: you can export anything you want [10:21] scott_gonzalez has joined the channel [10:21] MartinCleaver: ACTION thinks for a bit [10:24] Cromulent has joined the channel [10:26] rio{ has joined the channel [10:28] maxogden has joined the channel [10:29] MartinCleaver: yay. [10:29] MartinCleaver: Thanks guys [10:30] dbrain has joined the channel [10:30] konobi: np [10:30] konobi: MartinCleaver: nice product, btw [10:31] MartinCleaver: oh, Freshbooks? [10:31] MartinCleaver: ACTION is just a humble user. [10:32] MartinCleaver: though I'm friends with the owner and lots of their staff. [10:32] konobi: =0) [10:33] gavin_huang has joined the channel [10:34] gavin_huang has joined the channel [10:35] raphael has joined the channel [10:36] _unary has joined the channel [10:36] admin_ has joined the channel [10:38] booyaa: heh... loving the js hating at the moment. [10:39] copongcopong has joined the channel [10:40] ningu: on whose part? [10:42] vguerra has joined the channel [10:42] Nuck: Woot, just published my first module worth anything :D [10:43] _unary has joined the channel [10:43] coyo has joined the channel [10:43] coyo has joined the channel [10:44] rakesh314 has joined the channel [10:45] rakesh314: when using the new node cluster (not TJ's module), how can we communicate between workers? http://nodejs.org/docs/latest/api/cluster.html has precious little documentation [10:45] rakesh314: and all google searches show TJ's module [10:45] tdegrunt has joined the channel [10:46] Nuck: rakesh314: You shouldn't communicate between workers, honestly. If you have to, you could probably use a UNIX Socket? [10:46] AndreasMadsen has joined the channel [10:46] rakesh314: Nuck: Well, there is an example of the worker communicating with the master in the docs [10:46] eddyb: chjj: hey [10:47] paera has joined the channel [10:47] rakesh314: I could use a unix socket, but I was wonder if IPC would be easier? [10:47] tvw has joined the channel [10:47] konobi: which ipc? there's lots [10:47] Nuck: rakesh314: Well, I dunno, I've honestly not used clusters yet, so I don't know how their architecture is, but I think UNIX Sockets tend to be the "Linuxy" way [10:48] AndreasMadsen: Nuck: what is the problem [10:48] konobi: cluster using fd's underneath, iirc... so it's just sockets [10:48] Nuck: AndreasMadsen: ? [10:49] rakesh314: AndreasMadsen: I was wondering, when using node 0.6's cluster, if there's a way to communicate between workers using IPC [10:49] AndreasMadsen: Nuck: I have writen the core cluster module to node v0.7 so if you have problems I can properly help [10:49] konobi: rakesh314: between server, local machine, etc? [10:49] eddyb: chjj: your terminal blends in perfectly with my UI library, I only have a couple of pointer: don't catch key presses if the terminal is not focused, and display an empty box cursor instead of a filled box cursor when the terminal is not focused [10:49] AndreasMadsen: rakesh314: yes it is very easy [10:49] AndreasMadsen: rakesh314: cluster.fork().send('message') [10:49] AndreasMadsen: will send a message to the worker [10:50] Nuck: rakesh314: IPC is just Inter-Process Communication... Last I checked, that was anything that allowed you to communicate with other processes, and a UNIX Socket would be a method of IPC [10:50] AndreasMadsen: and you get it by process.on('message') in the worker [10:50] rakesh314: konobi: Yes. it appears that node's cluster only does IPC, and no sockets [10:50] AndreasMadsen: rakesh314: you wan't to send a socket over IPC, you can do that :) [10:51] Nuck: AndreasMadsen: I wasn't the one who was asking about any of this :P [10:51] rakesh314: AndreasMadsen: Ah. Cool... That looks easy enough. I'll give it a look [10:51] eddyb: chjj: you might want to move the resize code into term.js, or have an easier way of computing the new size [10:51] konobi: rakesh314: again... IPC means many thing [10:51] Nuck: I'll let the people who've dealt with cluster do their thing tho, cause I'm just going by my little research on IPC I've done :P [10:52] rakesh314: konobi AndreasMadsen I agree. I used the term loosely to mean talking between processes, like pipes or something [10:52] konobi: rakesh314: SYSv4 smaphores and symem? [10:52] rakesh314: konobi: now see, that's greek to me :D [10:52] konobi: cluster is probably pipes [10:52] ningu: put that in your pipe and redirect it [10:53] eddyb: chjj: but I'm happy with how it works and I didn't need to change anything in static/term.js IIRC, thanks for tty.js ;) [10:53] Nuck: Hold on... Are you telling me that cluster is... A SERIES OF TUBES? [10:53] konobi: ningu: yes.. i'm old =0P [10:53] Nuck: ACTION gasps [10:53] rakesh314: Nuck: haha :) [10:53] ningu: Nuck: it's not a truck [10:53] AndreasMadsen: konobi: no cluster don't use pipes, it share a server handler between workers [10:53] Nuck: ningu: Clearly. [10:53] AndreasMadsen: Nuck: ^ [10:54] konobi: AndreasMadsen: it shares an fd? [10:54] Nuck: I figured the architecture involved one process that routes between the workers [10:54] AndreasMadsen: konobi: On unix it do, in windows it does something like that [10:54] rakesh314: Just thinking out loud, would it be a good idea to have a pub-sub like mechanism to talk between workers (and maybe the master), by announcing messages to everyone when necessary? [10:54] MartinCleaver: It says in http://nodejs.org/api/modules.html#all_Together... that "To get the exact filename that will be loaded when require() is called, use the require.resolve() function." - I was hoping require.resolve would show me the places it had looked at (it doesn't). Given people (e.g. http://www.bennadel.com/blog/2169-Where-Does-Node-js-And-Require-Look-For-Modules-.htm) often (my conjecture) have confusion about where require is [10:54] MartinCleaver: looking, it would seem sensible to make require's error report have the means to state where it had looked when it fails. [10:55] MartinCleaver: ACTION reads https://github.com/substack/node-resolve/blob/master/index.js [10:55] rakesh314: by that, what I mean is, when a worker wants to talk to others using .send, would be horrible to send it to all workers so it's just simpler to work with it? [10:55] Hanspolo has joined the channel [10:56] AndreasMadsen: rakesh314: you can do that, just remember to keep you workers stateless. [10:56] AndreasMadsen: ^ and master too [10:56] Wizek has joined the channel [10:56] AndreasMadsen: rakesh314: you can send a message form worker to master, and then have master relay it to the other workers [10:56] rakesh314: AndreasMadsen: Thanks. I want to do that *to* keep the workers stateless [10:56] Nuck: statelessness is a very important thing in the Node world, I've noticed. [10:57] Nuck: Especially since it's so easy to be stateful in this setup [10:58] rakesh314: AndreasMadsen: Thanks again. This has been awesome help. Will /msg again if I need any help. [10:58] AndreasMadsen: ACTION windows vm now installing #33 update out of 152. [10:58] AndreasMadsen: rakesh314: no problem :) [10:59] MartinCleaver: How do I run the tests in https://github.com/substack/node-resolve/tree/master/test ? [10:59] maritz: MartinCleaver: with expresso [10:59] MartinCleaver: thx [11:00] maritz: (can sometimes see things like that in the package.json ;) ) [11:00] MartinCleaver: y, I did see "test" : "expresso" but somehow it didn't register! [11:01] epa_ has joined the channel [11:01] dekub has left the channel [11:05] d0k has joined the channel [11:06] lperrin has joined the channel [11:07] yarnee has joined the channel [11:10] jgaui has joined the channel [11:11] tomasztomczyk has joined the channel [11:11] spolu has joined the channel [11:12] MartinCleaver: Is there a way to automatically trace the execution of a given module? i.e. to log all entries + parameters and exits + return values? [11:12] larsschenk has joined the channel [11:12] larsschenk has left the channel [11:13] k1ttty has joined the channel [11:14] meso_ has joined the channel [11:15] robo has joined the channel [11:15] MartinCleaver: It'd have to be hooked in fairly deep [11:18] paera has left the channel [11:20] MartinCleaver: Hmm. It'd be nice if log4js-node could automatically log the name of the module and line it was being called from. [11:20] hackband has joined the channel [11:21] jimmysparkle has joined the channel [11:22] argami has joined the channel [11:22] gut4 has joined the channel [11:22] sreeix has joined the channel [11:22] maritz: MartinCleaver: sounds like you want to debug something?! [11:23] yarnee has left the channel [11:23] TomY has joined the channel [11:23] nicholasf has joined the channel [11:24] MartinCleaver: y, I wanted to trace how resolve is working - MartinCleaver: It says in http://nodejs.org/api/modules.html#all_Together... that "To get the exact filename that will be loaded when require() is called, use the require.resolve() function." - I was hoping require.resolve would show me the places it had looked at (it doesn't). Given people (e.g. http://www.bennadel.com/blog/2169-Where-Does-Node-js-And-Require-Look-For-Modules-.htm) [11:24] MartinCleaver: often (my conjecture) have confusion about where require is looking, it would seem sensible to make require's error report have the means to state where it had looked when it fails. [11:24] wao: hello [11:24] wao: what's this, at make nodejs, Build failed: -> task failed (err #2): [11:24] wao: seems, this issue https://github.com/joyent/node/issues/756 [11:24] maritz: mattijs: why not use a debugger then? :D [11:25] wao: exporting empty prefix doesnt helped much [11:25] MartinCleaver: fair q [11:25] MartinCleaver: :D [11:25] maritz: require.resolv('someModule') [11:25] maritz: would show you where it is [11:25] maritz: mattijs: sorry, accidental highlight. :( [11:25] salva has joined the channel [11:25] MartinCleaver: but what if it doesn't find it - I already had console.log(require.resolve('./freshbooks-javascript-library/TimeEntry')); [11:26] MartinCleaver: (I have written a package.json file so wanted to omit /library in my require) [11:26] maritz: then it's probably not there :D [11:26] MartinCleaver: var FreshBooks_TimeEntry = require('freshbooks-javascript-library/library/FreshBooks/TimeEntry'); [11:26] MartinCleaver: ^ works [11:26] maritz: but still, to find out exactly you could use a debugger [11:26] MartinCleaver: var FreshBooks_TimeEntry = require('./freshbooks-javascript-library/TimeEntry'); [11:26] MartinCleaver: ^ does not [11:26] maritz: require is completely js and thus debuggable, afaik [11:27] maritz: why should it? [11:27] maritz: wao: what version of node are you trying to compile? [11:28] satyr has joined the channel [11:28] mschneider has joined the channel [11:28] rakesh314: AndreasMadsen: Wow. Cluster has undergone a major improvement in 0.7. I'm guessing most of that stuff hasn't been back-ported to 0.6.x? [11:29] wao: maritz: latest one, 0.6.11 [11:30] shiawuen has joined the channel [11:30] maritz: rakesh314: likely it won't. [11:31] maritz: wao: hm, no idea then. maybe update the issue stating that it's still a problem in 0.6.11? ;) [11:31] DrPheltRight has joined the channel [11:31] wao: I think it's scons problem [11:31] rakesh314: maritz: :( Sad panda... will be waiting for 0.8 then [11:32] k1ttty has joined the channel [11:32] maritz: rakesh314: yep :) [11:32] jgaui has joined the channel [11:33] rjack has joined the channel [11:34] johnhamelink has joined the channel [11:34] AndreasMadsen: rakesh314: API changes do not get backported [11:34] tomasztomczyk has joined the channel [11:39] tobmaster has joined the channel [11:40] kwmiebach_ has joined the channel [11:41] MartinCleaver: in node's native debug when I type "scripts" it tells me the names of the .js files loaded - but it doesn't tell me where they are located on disk. I can't use node-inspector as my script is failing on a require statement [11:41] MartinCleaver: can I get the native debugger to tell me the location of the scripts files ? [11:44] gavin_huang has joined the channel [11:45] skm has joined the channel [11:48] MartinCleaver: Weird. Activity Monitor (mac) doesn't show the file names of the scripts I've opened [11:48] MartinCleaver: (in node) [11:48] AndreasMadsen: rakesh314: the the stateless design I described works with node 0.6 too. [11:49] arduix has joined the channel [11:51] diogogmt has joined the channel [11:53] Emmanuel` has joined the channel [11:53] slajax has joined the channel [11:53] charlenopires has joined the channel [11:55] papirkopi has joined the channel [12:01] rakesh314: AndreasMadsen: Yeah. I was hoping I could use cluster.workers in 0.6. If I am to maintain the list of workers by myself, I'm sure I'll end up doing some memory-leak fail. [12:01] shinuza has joined the channel [12:02] rakesh314: AndreasMadsen: But I guess that's what I shall do since it's not available in 0.6. Also, can't wait for 0.8. :) [12:02] OmidRaha has joined the channel [12:02] OmidRaha has joined the channel [12:03] AndreasMadsen: rakesh314: you make you own fork function there run var worker = cluster.fork(): and assign it to a worker object using workers[worker.workerID] [12:03] AndreasMadsen: rakesh314: and you listen on worker.on('exit') and run delete workers[this.workerID] [12:04] rakesh314: AndreasMadsen: yeah... that's what I'll do [12:04] AndreasMadsen: rakesh314: cluster.workers don't do anything more [12:04] rakesh314: AndreasMadsen: Oh. I thought cluster.workers was an array, not a keyed object. [12:05] AndreasMadsen: rakesh314: up, delete workers[this.workerID] won't work but workers[worker.workerID] will if you assign it in you own fork function [12:05] rakesh314: AndreasMadsen: My bad. It's pretty clear in the docs, actually [12:06] AndreasMadsen: rakesh314: cluster.workers ended up as a map object after a long discussion [12:06] AndreasMadsen: rakesh314: you do var a = []; a[10] = worker, then there would be a lot of undefined properties [12:06] AndreasMadsen: .. var a = []; a[10] = true; print(a) [12:07] rakesh314: AndreasMadsen: You mentioned .on("exit"). is that different from .on("death")? [12:07] AndreasMadsen: .. true [12:07] AndreasMadsen: rakesh314: no, not really [12:08] AndreasMadsen: rakesh314: there are a .on('death') event on the cluster object, so it made sense to use the same event name. [12:08] rakesh314: AndreasMadsen: yes, if workers was to be an array, items would need to be spliced out, not deleted. But then I'm guessing there might be references floating around that won't get GC'd [12:08] AndreasMadsen: rakesh314: why is that? [12:09] AndreasMadsen: rakesh314: you are a old c++ dev? [12:09] rakesh314: AndreasMadsen: the splice? to avoid the holes in the array you mentioned. But then I'm not sure what'd happen GC wise if people keep a reference to items that have been spliced out [12:09] testmachine123 has joined the channel [12:09] bnoordhuis has joined the channel [12:09] rakesh314: AndreasMadsen: No no... I run away from C++! It makes my palms sweat [12:10] rakesh314: AndreasMadsen: I got horrible images of nuclear mushroom clouds when I look at C++ [12:11] rakesh314: AndreasMadsen: I just leave C++ in the capable hands of experts [12:11] FuzzYspo0N has joined the channel [12:12] AndreasMadsen: rakesh314: if you do: var a = [{foo: true},{foo: true},{foo: true}]; var worker = a[0]; a.splice(0,1); then worker will be {foo: true} and a[0] be another object. [12:12] louissmit has joined the channel [12:12] tokumine has joined the channel [12:12] al3xnull has joined the channel [12:12] AndreasMadsen: but the worker variable will eventually be GC'ed. [12:12] AndreasMadsen: have trust in v8 GC [12:13] AndreasMadsen: .. [] != ![] [12:13] AndreasMadsen: hmm v8 bot is dead [12:13] rakesh314: AndreasMadsen: Yes. Also the array will not have any holes in them, so it should be able to run a loop over them [12:14] rakesh314: AndreasMadsen: Now, we'll have to use Object.keys and then workers[key] - a minor inconvenience, but I'm sure you had good reason [12:14] qsobad has joined the channel [12:14] AndreasMadsen: rakesh314: yes, but the index don't refer to the workerID and that is very useful if you wan't to refer to a worker over IPC. [12:15] AndreasMadsen: rakesh314: There is a eachWorker function in the doc, so you can just copy past that :=) [12:15] AndreasMadsen: or Object.ket [12:16] mansoor has joined the channel [12:16] gut4 has joined the channel [12:16] drupol has joined the channel [12:16] alippai has joined the channel [12:16] drupol: hi there, [12:16] AndreasMadsen: yo [12:16] drupol: I'm looking for a nice realtime chat solution using NodeJS, any advice ? [12:16] alippai has left the channel [12:16] alippai has joined the channel [12:16] rakesh314: AndreasMadsen: oh... a for...in loop. The Crock will disapprove! [12:17] MartinCleaver: node.js: Why does NODE_DEBUG=1 not work? I've exactly the same q as http://stackoverflow.com/questions/4175914/node-js-why-does-node-debug-1-not-work-trying-to-debug-a-require-error -- according to https://github.com/joyent/node/blob/master/lib/module.js#L64 [12:17] rakesh314: mostly because it doesn't have a .hasOwnProperty check [12:17] alippai: hello, can somebody recommend me nodejs architecture pattern tutorials/books/guides? [12:17] AndreasMadsen: rakesh314: why, there is no enmu properties, and you can do cluster.workers.hasOwnProperty [12:18] MartinCleaver: that says if (process.env.NODE_DEBUG && /module/.test(process.env.NODE_DEBUG)) { [12:18] MartinCleaver: --- but it seems to do nothing [12:18] alippai: writing js is a little bit messy - 300+ LOC and it's turning into a nightmare [12:19] MartinCleaver: (I did export NODE_DEBUG=1) [12:19] rakesh314: AndreasMadsen: or Object.keys - I've just gotten used to it now, I guess. Returns a nice array, so I can use my es5 array extras on them [12:19] MartinCleaver: alippai: https://github.com/robrighter/node-boilerplate [12:19] rakesh314: for example, take an object, and construct a querystring of key-value pairs by running .reduce on Object.keys [12:20] AndreasMadsen: rakesh314: Object.keys(cluster.worker).forEach(function (uniqueID) { var worker = cluster.workers[uniqueID]; }); [12:20] MartinCleaver: might help you [12:20] rakesh314: AndreasMadsen: that's what I was talking about. Thanks :) [12:20] braoru has joined the channel [12:20] FuzzYspo0N has joined the channel [12:21] AndreasMadsen: rakesh314: as you see it is very easy to get around but making a map object with unqiueID as index isn't that easy, so that was why cluster.workers become a map. [12:21] briancray has joined the channel [12:22] rakesh314: AndreasMadsen: Makes sense. [12:22] AndreasMadsen: rakesh314: discussion is here: https://github.com/joyent/node/pull/2388#r306698 [12:24] cjroebuck has joined the channel [12:25] MartinCleaver: ok - it's NODE_DEBUG=module [12:25] MartinCleaver: ACTION slaps own forehead [12:25] FuzzYspo0N has joined the channel [12:26] Jalava_: interesting "feature" from node shell, http://pastebin.com/FZ46UukA [12:26] Jalava_: because it doesn't happen when assigning to variable, it doesn't matter, but quite funny [12:30] MartinCleaver: ACTION posts tip accordingly [12:30] enmand has joined the channel [12:30] jaw187 has joined the channel [12:31] c0smikdebris has joined the channel [12:32] fmeyer has joined the channel [12:33] jaw187: goooooooooood morning [12:34] maritz: so so [12:34] skm has joined the channel [12:35] tornad has joined the channel [12:35] rakesh314: AndreasMadsen: Thanks for that link. I should follow these discussions more. [12:37] fmeyer has joined the channel [12:38] rauchg has joined the channel [12:39] joshfinnie has joined the channel [12:39] arduix has joined the channel [12:41] Wizek has joined the channel [12:42] CIA-102: node: 03Ben Noordhuis 07master * rb92a919 10/ (src/node_buffer.cc src/node_script.cc src/v8_typed_array.cc): Remove unused variables. - http://git.io/hSVtCw [12:42] _eddyb_ has joined the channel [12:42] fmeyer has joined the channel [12:42] _eddyb_ has joined the channel [12:42] crutex has joined the channel [12:42] crutex has joined the channel [12:44] Wizek has joined the channel [12:44] briancra_ has joined the channel [12:44] jaw187: anyone in here ever use Calipso? [12:45] erichynds has joined the channel [12:45] krucial has joined the channel [12:47] fmeyer has joined the channel [12:48] pickels has joined the channel [12:51] diegoviola has joined the channel [12:52] andrehjr has joined the channel [12:52] gut4 has joined the channel [12:52] fmeyer has joined the channel [12:52] AviMarcus has joined the channel [12:53] nFFF has joined the channel [12:53] Wizek has joined the channel [12:54] noderjs has joined the channel [12:54] noderjs: 9 [12:54] joshgillies has joined the channel [12:55] paulwe has joined the channel [12:55] pradeebv has joined the channel [12:55] artusrocha has joined the channel [12:56] codepal has joined the channel [12:57] fmeyer has joined the channel [12:58] Wizek has joined the channel [12:58] lperrin has joined the channel [13:00] piscisaureus_ has joined the channel [13:00] Wizek has joined the channel [13:00] zomgbie has joined the channel [13:00] sreeix has joined the channel [13:00] fermion has joined the channel [13:01] nicki9knuckles has left the channel [13:02] mschneider has joined the channel [13:02] fmeyer has joined the channel [13:03] MartinCleaver: ACTION discovers the reason why there are no files in his node installation /usr/local/Cellar/node/0.6.7/ is because they are built into the binary … strings /usr/local/Cellar/node/0.6.7/bin/node | grep module [13:04] MartinCleaver: kinda makes hacking to further trace rather tricky [13:07] nibblebot has joined the channel [13:07] trupppOFF has joined the channel [13:07] fmeyer has joined the channel [13:08] sharkbird has joined the channel [13:08] OmidRaha has joined the channel [13:09] janjongboom has joined the channel [13:10] jaw187: Martin: I just realized this last night when I wanted to test a change to dgram.js [13:10] robo_ has joined the channel [13:11] MartinCleaver: well, there should be a way to override the built-ins. I suppose one could compile node from scratch, but it seems overkill. [13:12] CIA-102: node: 03Shigeki Ohtsu 07master * r680d75a 10/ (common.gypi configure tools/gyp_addon): build: make default_configuration consistent with BUILDTYPE - http://git.io/xQZxyA [13:12] CIA-102: node: 03Shigeki Ohtsu 07master * r58e5d69 10/ (common.gypi tools/gyp_addon): build: fix the case where config.gypi doesn't exist - http://git.io/WH-Z6Q [13:12] CIA-102: node: 03Shigeki Ohtsu 07master * r491ec17 10/ common.gypi : build: change default BUILDTYPE of gyp to Release - http://git.io/OKqjoA [13:12] CIA-102: node: 03Shigeki Ohtsu 07master * rc1fcb1d 10/ vcbuild.bat : [13:12] CIA-102: node: build: change default BUILDTYPE of vcbuild.bat [13:12] CIA-102: node: From Debug to Release. - http://git.io/KtTQOg [13:12] nFFF: What does node.js effectively replace in the server side stack? [13:12] nFFF: Is it the equivalent to like django or rails? [13:12] aheckmann has joined the channel [13:13] zomg: I guess you could say it's similar but it's not equivalent really, since it's more low level [13:13] fmeyer has joined the channel [13:13] nFFF: But they achieve the same goal? [13:13] zomg: It's more like a JS programming environment which happens to have the capability to server web pages =) [13:13] nFFF: I already know some JS [13:13] nFFF: and Im looking to get ionto a server side language [13:14] nFFF: Like PHP/ruby/python [13:14] nFFF: but thiking perhaps node would be easier [13:14] yawNO has joined the channel [13:14] QaDeS has joined the channel [13:14] jetienne_: nFFF: node.js is like php/ruby/python. it isnt like django/rails [13:14] jetienne_: nFFF: to get something like django/rails but in node.js, look at express.js [13:14] nFFF: So we can expect a library built ontop of node? [13:15] MartinCleaver: express [13:15] yawNO: hi [13:15] nFFF: jetienne, in terms of performance how does node compare to ruby/python? [13:15] jetienne_: http://expressjs.com/ <- nFFF [13:15] nFFF: I know PHP has some issues in scalability [13:15] lowerkey has joined the channel [13:15] MartinCleaver: leaves them in the dust [13:15] yawNO: jetienne: more like http://railwayjs.com [13:15] jetienne_: nFFF: i would say node.js is faster but dont take my word for it [13:15] yawNO: express is kinda sinatra [13:15] nFFF: So nodejs is the future? [13:16] nFFF: It seems ideal for me as I know some js :< [13:16] zomg: node has its uses but it's not a magic wand [13:16] yawNO: ^ [13:16] jetienne_: nFFF: it is by far the best serverside implementation for javascript [13:16] lowerkey: Could someone help me with a question? http://stackoverflow.com/questions/9413697/sequelize-find-doesnt-return [13:16] yawNO: eg: CPU intensive stuff isnt made for node [13:16] nFFF: How cool is it that you can use javascript for clientsie and server side effectively :DD [13:16] nFFF: yawNO, what would be ideal for CP?U intesive stuff? [13:17] jetienne_: assembly [13:17] jetienne_: or more opencl [13:17] yawNO: C++? i've never got interested in that [13:17] yawNO: so i havent really gone deep digging [13:17] nFFF: Ah ok [13:17] nFFF: Dont really class them as web languages [13:18] yawNO: you can use C++ for web though [13:18] Hanspolo has joined the channel [13:18] fmeyer has joined the channel [13:18] yawNO: check out node_native [13:18] yawNO: :P [13:18] lowerkey: Anyone know what I'm doing wrong in this test code? http://stackoverflow.com/questions/9413697/sequelize-find-doesnt-return [13:20] MartinCleaver: no idea, sorry lowerkey [13:21] copongcopong has joined the channel [13:21] adrianF has joined the channel [13:21] lowerkey: Thanks for checking, MartinCleaver [13:23] fmeyer has joined the channel [13:23] paulwe has joined the channel [13:26] hotchkiss has joined the channel [13:27] Edy has joined the channel [13:27] fairwinds has joined the channel [13:28] nikolark has joined the channel [13:28] fmeyer has joined the channel [13:29] broofa has joined the channel [13:29] wbednarski has joined the channel [13:30] jdeibele has joined the channel [13:31] qsobad has joined the channel [13:32] stonebra_ has joined the channel [13:33] xbayrockx has joined the channel [13:33] Qalqi has joined the channel [13:33] sreeix has joined the channel [13:33] fmeyer has joined the channel [13:34] satyr has joined the channel [13:35] Qalqi: node.js is popular than javascript! intersting [13:36] Yester: Guys. can somebody tell me why my session handling doesn't work? :/ here is the important stuff for it. i set the session like the following: req.session.user = ; it works if i do if(req.session.user) but i want to check if there's a session by socket.io connect and which username [13:36] Yester: https://gist.github.com/1892865 [13:36] c4milo has joined the channel [13:37] lowerkey: Qalqi that's because everyone's accepted javascript as it is. [13:37] Yester: data.headers.cookie is somehow undefined [13:38] lowerkey: with the exception of those who wanna write replacement languages, of course [13:39] fmeyer has joined the channel [13:39] zomg: Yester: there's a page on socketios github regarding auth [13:39] Qalqi: lowerkey: infact i am about to start learning node.js [13:40] Qalqi: wonder what good js can bring onto server side coding [13:41] Yester: zomg: this connect module is so confusing with docs it's like there is almost no real doc for socket.io and connect. mom i check it again [13:41] lowerkey: Qualqi: nested callbacks can be a little hard to read, (and if you care about aesthetics a little hard to write) but you'll get used to it after a while [13:41] zomg: Yester: yeah it's kind of poor [13:41] lowerkey: I'm relatively new to it myself [13:41] jdeibele1 has joined the channel [13:42] zomg: Yester: if you can't get it working, perhaps this will help http://stackoverflow.com/questions/4641053/socket-io-and-session [13:42] M1l3n1um has joined the channel [13:42] zomg: Yester: instead of doing it on connect, you can add a script to the client which sends document.cookie in a message, then just parse the cookie like they parse it in the accepted answer [13:43] CIA-102: libuv: 03Ben Noordhuis 07master * ra5082e8 10/ test/run-tests.c : test: add proper type casts - http://git.io/PGCgnA [13:43] CIA-102: libuv: 03Ben Noordhuis 07master * r4240f0d 10/ test/test-fs.c : test: check uv_fs_*() return values - http://git.io/jfP_2w [13:44] Yester: zomg: yes but that's the bad solution in my opinion. if i don't get it work i'll do it like that. i work at this tutorial http://www.danielbaulig.de/socket-ioexpress/ , it's pretty good but unfortunately it doesn't describe how he set the cookies to make it work :) [13:44] fmeyer has joined the channel [13:46] madhums has joined the channel [13:48] radiodario has joined the channel [13:49] chirag has joined the channel [13:49] k1ttty has joined the channel [13:49] fmeyer has joined the channel [13:51] lowerkey: Could someone help me with a Sequelize problem? [13:51] lowerkey: http://stackoverflow.com/questions/9413697/sequelize-find-doesnt-return [13:51] snoj has joined the channel [13:54] fmeyer has joined the channel [13:55] gorekee has joined the channel [13:55] joaojeronimo has joined the channel [13:55] ryanfitz has joined the channel [13:56] mschneider has joined the channel [13:56] fumanchu182 has joined the channel [13:56] maritz: lowerkey: do you know if the save succeeds? [13:57] cedeon has joined the channel [13:58] lowerkey: maritz: the save returns, let me dig up some output [13:58] jaw187 has joined the channel [13:59] AaronMT has joined the channel [13:59] AvianFlu has joined the channel [13:59] fmeyer has joined the channel [13:59] Nss has joined the channel [14:00] lowerkey: maritz: http://pastebin.com/bN15KQ2C [14:01] tmike has joined the channel [14:03] gdbz has joined the channel [14:04] simenbrekken has joined the channel [14:06] yawNO: https://www.tropo.com/ [14:06] yawNO: holy cow.. its free for developers [14:06] yawNO: *yum* [14:06] kriszyp has joined the channel [14:08] fasecharmer has joined the channel [14:08] paulwe has joined the channel [14:09] lazyshot has joined the channel [14:09] nogginBasher has joined the channel [14:10] thalll has joined the channel [14:10] jaw187: nice find yawNO [14:10] rwaldron has joined the channel [14:10] yawNO: thx [14:10] charlenopires has joined the channel [14:11] jaw187: there are a few similiar services which give you 2000-3000 free messages when you sign up [14:11] jxie has joined the channel [14:11] deeprogram has joined the channel [14:11] tmike: amazon aws gives you a slew of messages, I think 100 per month are free or something and then you start paying [14:12] dimdm has joined the channel [14:14] yawNO: i'm really interested into sms services [14:14] fmeyer has joined the channel [14:14] `3rdEden has joined the channel [14:14] maritz: lowerkey: then i have no idea. might need to post an issue on the github repo [14:14] tmike: ACTION just checked [14:14] Yester: zomg: check this out: app.get("/", function(req, res) { console.log(req.headers); gives me out the correct header including the cookie. later a websocket connection is established and io.set('authorization', function (data, accept) { console.log(data); gives me out the header without cookie. really wtf [14:14] tmike: the first 100 are free, after that it's $0.75 per 100 SMS notifications [14:15] dubenstein has joined the channel [14:15] ovaillancourt has joined the channel [14:15] yawNO: cool [14:15] lowerkey: maritz: I just figured it out. Turns out the address_admin didn't have drop privileges [14:15] maritz: yawNO: get an sms flatrate and build an arduino/node.js powered robot hand that types sms on a phone! :D [14:15] yawNO: now i need to find a project that uses sms's [14:15] yawNO: maritz: i wonder why you still havent been nominated for the turing [14:15] tmike: you can do something like ifttt and scrape craigslist and send an SMS when a match for a string is found [14:16] yawNO: or i can create a text adventure.. SMS MMORPG [14:16] yawNO: \o/ [14:16] maritz: yawNO: catbot stole it. [14:16] yawNO: .. 'true story' [14:16] tmike: oh my [14:16] tmike: 'go west' [14:16] tmike: 'u went wst' [14:16] yawNO: tmike: wat? [14:17] tmike: 'u c 2 cats' [14:17] yawNO: nah .. i was thinking more liek [14:17] jaw187: tmike: the craigslist scraper would be awesome [14:17] yawNO: ogame [14:17] yawNO: 'move your goddam ships you idiot' [14:17] chjj has joined the channel [14:17] maritz: sms based IRC! [14:17] jaw187: tmike: blast out SMS messages in the really freaky categories [14:17] yawNO: maritz: i've got a better idea [14:17] yawNO: SMS based SMS [14:18] maritz: yawNO: hell yeah. SMS proxy [14:18] yawNO: no [14:18] yawNO: much better [14:18] yawNO: you type [14:18] maritz: send an sms and receive it back? [14:18] yawNO: o,o [14:18] yawNO: exactly [14:18] maritz: sms based ROT13 encryption! [14:18] yawNO: how did you ... [14:18] yawNO: wait [14:19] maritz: or a calculator over sms [14:19] yawNO: i found something that could really be useful [14:19] yawNO: :| [14:19] fmeyer has joined the channel [14:19] yawNO: realtime cook recepies [14:19] yawNO: like 'cook for 8 mins' [14:19] yawNO: after 8 mins you get an sms [14:19] jaw187: sms alarm clock [14:19] jaw187: zing [14:19] jaw187: winning [14:19] maritz: and then 8 minutes later you get: "but add sugar after 1 minute" [14:19] yawNO: 'turn off the oven goddammit' [14:20] yawNO: :( [14:20] felixhummel has joined the channel [14:20] jaw187: yawNO, thats a good idea [14:20] pig_ has joined the channel [14:20] pendlepants has joined the channel [14:20] yawNO: you're destroying my imagination maritz [14:20] sreeix has joined the channel [14:20] maritz: yawNO: i like to think of it as "extending" [14:20] yawNO: and jumping over its dead body with soccer shoes [14:20] tmike: SMS-based reminders would actually be a really cool idea [14:20] tmike: I wonder if somebody's done it [14:20] yawNO: yep [14:20] mraleph has joined the channel [14:20] tmike: "remind me this afternoon to let the cat in" [14:20] yawNO: Y NO DARE STEAL MAH IDEA [14:20] plutoniix has joined the channel [14:20] yawNO: *U NO [14:21] yawNO: jk [14:21] maritz: even better: build a robot hand with arduino/node.js that has a heat sensor. after 8 minutes it touches the oven and if it's hot it types an sms on a phone that reads "ouch" and sends it to you. [14:21] yawNO: :P [14:21] yawNO: btw its called Siri tmike [14:21] jaw187: it is very Siri like [14:21] tmike: *without selling your soul to apple [14:21] yawNO: of course its not in the cloud [14:21] maritz: it's called alarm clock on my phone [14:21] jaw187: but i have a Galaxy Nexus [14:21] yawNO: so its not trendy [14:21] maritz: jaw187: alarm clock?! [14:22] yawNO: tmike: you actually get speech recognition w/ that service [14:22] maritz: i think my galaxy nexus has one of those. [14:22] nFFF: So to confirm, if I was powered with javascript and node.js Id have a nice stack to work with? And wouldnt need python/ruby/php? [14:22] jaw187: maritz: i have an alarm clock [14:22] yawNO: so you could call the number [14:22] tmike: yeah I know, but if you just have a basic phone, you don't get siri [14:22] yawNO: and explain what you do [14:22] tmike: if you have anything that's not an iPhone 4GS, you don't get siri. [14:22] yawNO: then i can hire a bunch of monkeys to set timers [14:22] yawNO: \o/ [14:22] _th_n has joined the channel [14:23] yawNO: s/hire/give em bananas/ [14:23] maritz: nFFF: yeah, kinda. [14:23] tmike: So you could just set up a schedule such that at a given time it blasts out an SMS to a phone number with a predetermined message [14:24] yawNO: yep [14:24] maritz: yawNO: pigs are pretty intelligent too. just strap a fing-longer to their head and let them do it. they eat garbage, so that's cheaper than bananas. [14:24] tmike: Have someone pay like $0.99 a month for the services [14:24] yawNO: or better yet [14:24] fmeyer has joined the channel [14:24] yawNO: give it for free [14:24] yawNO: and insert ads in the sma [14:24] yawNO: *sms [14:24] jaw187: subscription services are beat [14:24] yawNO: yeah i hate ads [14:24] jaw187: yawNO make the users agree to being spammed [14:24] Tricks_ has joined the channel [14:24] yawNO: but it would be cool to have liek [14:25] pig_ has joined the channel [14:25] yawNO: 'go get the girl - buy a new human for just .99$ today!' [14:25] codepal has joined the channel [14:25] tmike: lol [14:25] RyanD has joined the channel [14:25] tmike: so you can have tiers [14:26] tmike: either like a max of fifteen SMS per month, or agree to ads or pay $0.99 for more/unlimited [14:26] yawNO: i wonder who would pay .99 for that [14:26] jaw187: just build it [14:26] Tricks_: Hi guys. I have inherited a project which utilises node for chat functionality via a flash app over xmlsocket. This all works fine when the client is allowed to connect directly to node via port 8124. However, if there's a proxy in between the client is unable to connect. Does anybody have any suggestions to resolve this? or have experienced this before? [14:27] yawNO: jaw187: yeah.. weekend is just 2 days away [14:27] yawNO: i have a linode vps [14:27] yawNO: so i can have cron jobs too [14:27] jaw187: Tricks: why doesn't the proxy forward the request properly? [14:28] jstash has joined the channel [14:28] Destos has joined the channel [14:28] thinkjson has joined the channel [14:28] Tricks_: jaw187, because their networks are locked down. Only communication over 80 and 443 is allowed [14:28] jtsnow has joined the channel [14:28] thinkjson: How do I get a process to release a port? [14:28] Tricks_: sucks [14:29] jaw187: Tricks: then you need to change your service and have it listen on port 80 [14:29] jaw187: if you already have Apache listening on port 80, use mod-rewrite [14:29] fmeyer has joined the channel [14:29] thomblake has joined the channel [14:29] jaw187: if it's something else.....use the mod-rewrite eq.... [14:29] zomgbie has joined the channel [14:30] lperrin has joined the channel [14:31] yawNO: jaw187: but .99 means like 99 text messages [14:31] yarrkov-: mod_proxy on lighttpd. [14:31] yawNO: i should limit to like.. 5/day [14:31] jaw187: yawNO: build it [14:31] jaw187: then worry about that [14:31] yawNO: challenge accepted [14:31] jaw187: i have a SMS project in mind if you were interested [14:31] yawNO: i'll let you know [14:31] exos has joined the channel [14:32] devdazed: hi all, when using caolan's async. how can i use map or forEach with multiple parmeters? [14:32] lunarjetset has joined the channel [14:32] jscheel has joined the channel [14:32] jscheel has joined the channel [14:32] yawNO: jaw187: if your project is spamming maritz to death [14:32] yawNO: i'm in [14:33] thomblake has left the channel [14:33] fermion has joined the channel [14:34] lunarjetset has joined the channel [14:34] lunarjetset has left the channel [14:34] fmeyer has joined the channel [14:35] thinkjson: server.close() does indeed stop accepting new connections, but doesn't release the port for use by another process. anyone know how to do that? [14:35] willwhite has joined the channel [14:36] stafamus has joined the channel [14:37] maritz: yawNO: i'm in too [14:37] fumanchu182 has joined the channel [14:37] yawNO: maritz: i should have my german cellphone number somewhere [14:37] yawNO: you should begin worrying [14:37] maritz: my phone number is: +0049 (germany) / 0123 (yeah, seriously) 66501883 [14:37] charlenopires has joined the channel [14:37] maritz: gogogo [14:37] yawNO: lol [14:38] yawNO: i've got like 0.40€ [14:38] yawNO: inside [14:38] dmsuperman has joined the channel [14:38] esmevane has joined the channel [14:38] yawNO: i bought the sim in the yellow supermarket [14:38] yawNO: i dont remember the name [14:38] dmsuperman: If my require.paths includes /dir/lib and I have a file a in /dir/lib/util/a.js [14:38] maritz: that's gonna be gone by just typing the first few numbers in most roaming conditions [14:38] dmsuperman: how can I require a without giving a relative path? [14:38] dmsuperman: or can I just give a path relative to /dir/lib and it'll automatically search that? [14:39] esmevane has joined the channel [14:39] maritz: dmsuperman: require('util/a'); could work, not sure right now :D [14:39] maritz: depends on what node version you're using too :/ [14:39] dmsuperman: It doesn't for me, we're running on 0.4 [14:39] fmeyer has joined the channel [14:41] ohtogo has joined the channel [14:41] jxie has joined the channel [14:41] cybear has joined the channel [14:42] Xedecimal: does anyone use child_process on windows? I can't seem to kill any daemons, either I'll corrupt my mongo database by killing it too fast (or not killing it at all) or apache will kill a single httpd.exe process but leave it's workers running indefinitely... I've been coming up with workarounds but this is just stupid, can't we just kill these things gracefully ? [14:43] devdazed: thinkjson, how are you usning server? it should release it on close [14:43] Glenjamin: dare i ask why apache and mongo are child processes of your node script? [14:43] jaw187: that [14:43] fr0ggie has joined the channel [14:44] Poetro has joined the channel [14:44] Xedecimal: I'm making a standalone app that has a built in webserver and database for the frontend. The node portion is an ssdp server that redirects dlna and upnp devices over to the webserver for outputting descriptions, I'm slowly converting a lot of the webserver stuff over to node but it'll be a long while before the hwole thing can go [14:44] ceej has joined the channel [14:44] c4milo has joined the channel [14:44] Glenjamin: i'd use an existing tool to manage the up/down status of the other processes [14:44] fmeyer has joined the channel [14:44] Glenjamin: like upstart, services, supervisor, monit etc [14:45] Xedecimal: ok, reading up now [14:46] Xedecimal: most of those are unix based, if I could run this on unix only I could just use the regular signals and everything would be fine, windows is the drooling idiot that is causing me all this trouble [14:46] Glenjamin: ah right, why do you need it to run on windows? [14:46] Glenjamin: and windows services does basically this [14:46] Xedecimal: that's the first platform for testing, it'll need to run on that before everything else [14:47] ashishg has joined the channel [14:47] djKianoosh has joined the channel [14:47] Glenjamin: your test platform is windows, but your deployment platform is *nix? [14:47] Xedecimal: I won't always have administrator privileges so I don't think I can just go all hog wild installing services and such, not that I'd want to either, I hate applications that dig deep into your system just to do one thing [14:47] devdazed: thinkjson: i created this useless script that creates a server closes it then creates another one on the same port recursively. [14:47] devdazed: http://pastie.org/3437564 [14:47] charlenopires has joined the channel [14:47] Xedecimal: deployment is all 3 (nix, mac, win) [14:47] devdazed: and it works fine for me [14:47] Xedecimal: we're working on just getting windows working first [14:47] Glenjamin: i see [14:47] nibblebot has joined the channel [14:48] Xedecimal: as it's what the majority of users will be using [14:48] nibblebot has joined the channel [14:49] Xedecimal: the whole ssdp system is working great with node which is awesome, I couldn't do threading in php to send advertisements every 5 seconds or so, eventually I had to give up on it and move over to node, everything is now great except process management, always something [14:49] fr0ggie: ssdp? [14:49] raphael: hi all, I have a problem with restler : I want to retrieve images from an API, but I clearly have an encoding issue.... Does anyone already made that ? [14:49] fr0ggie: upnp stufs? [14:49] Xedecimal: something service discovery protocol, it's how devices are located via multicast to direct other devices to find device descriptions to further understand how something can be used [14:50] Glenjamin: its a home media server app [14:50] fmeyer has joined the channel [14:50] Glenjamin: i assume [14:50] Xedecimal: exactly [14:50] Glenjamin: you could have a look at forever [14:50] Glenjamin: not sure if it works on windows though [14:50] Xedecimal: I saw that in the npm I believe [14:50] Glenjamin: thats the one [14:51] Glenjamin: i dont suppose any of this is open source? I'd love a upnp platform i could hack on in node [14:51] Xedecimal: yes, well, it will be [14:51] Glenjamin: oo, cool [14:52] Xedecimal: that was my requirement for building all of this [14:52] Xedecimal: it does everything but transcoding so far [14:52] Glenjamin: at the moment i'm using uShare and considering writing a script that creates symlinks to do custom views (like unwatched, latest etc) [14:52] Xedecimal: from collecting tvdb entries for shows and suggesting alternatives through tastekid to download subtitles and telling you what you don't have [14:52] cybear has left the channel [14:53] charlenopires has joined the channel [14:53] Xedecimal: most of that stuff is php though [14:53] thinkjson: devdazed: I think I may just have a race condition. Let me try to async wrap it. [14:53] bradleymeck has joined the channel [14:54] devdazed: thinkjson: remember, you need to wait until it is actually closed. the server will emit a 'close' event when that is done. see the script for details [14:54] themiddleman_itv has joined the channel [14:54] neoesque has joined the channel [14:54] jetienne_ has joined the channel [14:55] fmeyer has joined the channel [14:55] Tricks_: jaw187, I have done as you suggested and I can telnet to node over port 80 but it I hit enter it gets injected with HTML saying method not implemented [14:55] jaw187: Tricks: the proxy injected it? [14:56] Tricks_: looks that way [14:56] Tricks_: also if I look in the node logs I can't see any connection attempt :S [14:56] Tricks_: hmm [14:56] Yester: guys check this out: app.get("/", function(req, res) { console.log(req.headers); gives me out the correct header including the cookie. later a websocket connection is established and io.set('authorization', function (data, accept) { console.log(data); gives me out the header without cookie. really wtf. i now found this thread describing a bug similar to mine? does really nobody have this issue and use socket.io with express sessions? [14:57] Yester: https://github.com/LearnBoost/socket.io-client/issues/333 [14:57] shiawuen has joined the channel [14:58] kcf has joined the channel [14:59] ritch1 has joined the channel [14:59] sh1mmer has joined the channel [14:59] lperrin has joined the channel [15:00] lackac has joined the channel [15:00] fmeyer has joined the channel [15:00] Industrial: with the NPM redis package, is there an api call that I can feed a string and it will just try to execute it (e.g. redisClient.cmd 'KEYS *', (e, result) ->) [15:01] carlyle has joined the channel [15:02] adambeynon has joined the channel [15:03] _yoy_ has joined the channel [15:03] Industrial: e.g. I have a plain-text file with redis commands in it that I don't want to just transpose to api calls (because I'd need handling for the whole api insert commands..) but just call it in redis a la eval() [15:03] wavded has joined the channel [15:03] wavded: would sending a buffer with res.end(buf) versus sending a string res.end(string) be faster? I would imagine it would be but was curious [15:04] jaw187: Tricks: I don't have anything useful to add.....your issue is less of a node problem and more of a proxy issue [15:04] chirag: m using ejs template with express..in the browser i see html body tags twice..http://pastebin.com/d2Jm2vgR [15:05] arnorhs has joined the channel [15:05] fmeyer has joined the channel [15:07] ningu has joined the channel [15:08] spiddy has joined the channel [15:09] diva has joined the channel [15:09] baudehlo has joined the channel [15:09] Skola has joined the channel [15:10] thinkjson: devdazed: This is what I have so far. Everything works except the spawn. https://gist.github.com/bd08bd8aac9c3b817643 [15:10] fmeyer has joined the channel [15:11] whaley has joined the channel [15:11] colinclark has joined the channel [15:12] philips has joined the channel [15:12] ningu: maybe some apps have to enter freshwater to spawn? [15:12] barberdt has joined the channel [15:14] chirag: m using ejs template with express..in the browser i see html body tags twice..http://pastebin.com/d2Jm2vgR [15:15] devdazed: thinkjson: you are retarting the workers when they die [15:15] devdazed: which means they come up and listen [15:15] lduros has joined the channel [15:15] fmeyer has joined the channel [15:15] codepal has joined the channel [15:16] thinkjson: haha [15:16] chuck_daniel has joined the channel [15:16] thinkjson: nice [15:16] thinkjson: good catch [15:16] ningu: where does that global variable come from? is that cluster, or just js? [15:16] ningu: global.foo, I mean [15:17] devdazed: global is a variable in node [15:17] booyaa: .. global [15:17] ningu: hrm, ok [15:17] devdazed: to represent all the global objects. similar to window in the browser [15:17] booyaa: catb0t is down? [15:17] jetienne_: ningu: from far, it is a bit like 'window.' in a webpage [15:17] jetienne_: as devdazed just said :) [15:18] ningu: ok, so if I set global.blah in my app it's accessible from the whole app? [15:18] devdazed: yes [15:18] ningu: well, that's good to know [15:18] devdazed: but it isn't advised to do that very much [15:18] ningu: yeah, I'm sure [15:18] thinkjson: devdazed: nah, that's not it. I'm not getting the restart message on the console. [15:18] ningu: I know the line on global vars in general [15:18] jetienne_: ningu: it is a global tho, not too clean if you can avoid it [15:18] jetienne_: cool [15:19] ningu: but for example it seems fairly appropriate if you have an app-level config that needs to be accessed [15:19] maritz: wait, i thought global was removed or sth?! [15:19] ningu: I've been sticking that in app.set('config') I think, but then the app isn't always available to get it back from [15:19] jetienne_: ningu: var config = require('./config'); is better in my opinion [15:19] maritz: ningu require('config.js')?! :D [15:19] ningu: maritz: yes, there's that too... [15:20] maritz: so, why use global? [15:20] ningu: I guess I'm just used to the idea of loading the config at the start of the app [15:20] bitprobe has joined the channel [15:20] ningu: and then distributing it from there [15:20] ningu: but I take your point [15:20] maritz: require caches [15:20] relling has joined the channel [15:20] fmeyer has joined the channel [15:20] thinkjson: devdazed: it seems more likely that the new master process is not outliving the old master [15:21] shinuza has joined the channel [15:21] ningu: maritz: I just checked my code and actually that's exactly what I did. :P [15:21] devdazed: so is this server.js? [15:22] maritz: :D [15:22] aklt has joined the channel [15:23] diva has joined the channel [15:23] whaley has joined the channel [15:23] ningu: I am really impressed that I was able to just declare my dependencies and deploy right to nodejistu and everything worked [15:23] ningu: nodejitsu, even [15:23] joshsmith has joined the channel [15:24] AvianFlu: ningu, :D [15:24] nibblebot has joined the channel [15:24] thinkjson: or express doesn't fire off close event [15:24] ningu: oh random comment, although I don't really want to start a flame war... I talked to a webdev friend of mine saying I'm impressed with how fast I've been able to get my site up and running in node. he said your 10 days in node would become 4 hours if you were using drupal [15:24] merlin83 has joined the channel [15:24] ningu: I have no clue what drupal is like but I wonder what he meant [15:25] AvianFlu: ningu, it's like going to the store and buying a tube of premade cookie dough [15:25] AvianFlu: if you're making a site that fits in drupal, all you need to code is a little glue for whichever 6 things you need [15:25] ningu: well, I'm not sure how much premade stuff would really work in my case [15:25] AvianFlu: cause it's all already done for you... if what you're doing fits in drupal [15:25] ningu: maybe some [15:26] ningu: I assume it's good at forms and validation for example, which I do [15:26] ningu: but I do other things too [15:26] AvianFlu: based on node being younger, you'll probably have to think a little bit more [15:26] AvianFlu: but I don't consider that a bad thing :D [15:26] ningu: yeah, all of the really obnoxious stuff is taken care of tbh [15:26] ningu: I like writing my own templates and control flow [15:27] devdazed: thinkjson: if the close event fires then it is closed [15:27] ningu: I was also reading about ember.js and that made me curious [15:27] ningu: but it seems to be basically client side [15:28] jerkelens has joined the channel [15:28] jmar777 has joined the channel [15:28] hij1nx has joined the channel [15:29] devdazed: thinkjson: did you try killing all the workers, spawning, then doing a process.exit? instead of putting it in the setTimeout? [15:30] markbao has joined the channel [15:32] ovnicraft has joined the channel [15:33] mandric has joined the channel [15:33] ts__: ningu: ask your friend how many req/s he have with drupal lol [15:34] ningu: well, I used to use perl and he always told me php was much faster [15:35] ts__: php is fast but the last time i checked, drupal wasn't :p [15:35] BillyBreen has joined the channel [15:35] VladGh has joined the channel [15:35] ningu: hehe [15:36] lz has joined the channel [15:37] lz: hey guys [15:37] lz: just wondering, any issues with using "use strict" in all my js code? [15:38] DrHeiter23 has joined the channel [15:38] bkaney has joined the channel [15:39] DrHeiter23: When I modify attributes on a session object (req.session), do all the attributes get written as a cookie on client machine or is it still just the session_id that is used to load the store on subsequent requests? [15:40] radiofree has joined the channel [15:40] radiofree: any nodeunit experts here? [15:40] nstinson has joined the channel [15:40] devdazed: thinkjson: it seems the master never receives the message. but the worker is sending it [15:42] pendlepants has joined the channel [15:42] nstinson: Hello, do any of you have a suggestion for a good charting and graphing API that we can run locally on our server? [15:42] hellp has joined the channel [15:43] CarlosC has joined the channel [15:43] thinkjson: devdazed: updated. getting closer. It still seems like the port is in use, though: https://gist.github.com/bd08bd8aac9c3b817643 [15:43] thinkjson: nstinson: server-side? [15:43] nstinson: I think that would be the right term, thinkjson [15:44] thinkjson: so you want to render them as PNG or something? [15:44] nstinson: Something like google chart seems great, but it has a part that says "Sorry; our http://code.google.com/apis/chart/interactive/terms.html do not allow you to download and save or host the google.load or google.visualization code." [15:44] eddyb: lol [15:44] ph^ has joined the channel [15:45] nstinson: We are exploring options right now, so several different options would be ideal [15:45] devdazed: thinkjson: that code actually works for me [15:45] voodootikigod has joined the channel [15:45] infynyxx has joined the channel [15:46] devdazed: thinkjson: http://pastie.org/3437958 [15:46] AvianFlu has joined the channel [15:46] devdazed: i just set app.js to "module.exports = require('http').createServer();" [15:47] thinkjson: interesting [15:47] rtgibbons has joined the channel [15:48] michaelmartinez has joined the channel [15:49] arash has joined the channel [15:49] thinkjson: I miss learnboost's cluster module. It "Just Works (TM)" [15:50] dscape: SubStack: :D [15:50] dscape: rauchg: yt? [15:50] devdazed: i actually didnt like learnboosts cluster module. it only worked if your app inherited from net.Server. Cluster actually allows me to create workers that arent a server [15:51] bizniz98 has joined the channel [15:51] maritz: radiofree: i'm not exactly an expert, but i've used it... what's the question/issue? [15:51] draginx1 has joined the channel [15:52] jimmy- has joined the channel [15:52] jimmysparkle has joined the channel [15:52] draginx1: I installed the MSI for windows... but node i snot acommand in cmd.exe... any idea why? [15:52] kcf: nstinson: have you looked at flotr2 yet? http://www.humblesoftware.com/flotr2/documentation [15:53] yawNO: i was wondering [15:53] yawNO: providing nodejs stuff like setInterval() you could emulate cronjobs [15:53] thinkjson: nstinson: if you want SVG client-side (no node.js required) then use ccc.webdetails.org [15:53] jamund has joined the channel [15:53] yawNO: question is.. anyone as a better idea? [15:53] devdazed: thinkjson: i definitely believe it is a race condition of some sort. if i remove the 'console.log(data)' it wont resart [15:54] yawNO: *has [15:54] nstinson: We would like to utilize node.js if we can [15:54] devdazed: so on my machine, that console.log is buying it just enough time to do what it needs to resart everything [15:54] ts__: yawNO: what are you talking about? [15:54] johnhame_ has joined the channel [15:54] thinkjson: devdazed: heh - so on('close' isn't really accurate? :-) [15:55] thinkjson: nstinson: for the cool factor? or because you actually need images instead of SVG? [15:55] devdazed: thinkjson: i think it is, but i think it may be something else holding it up. maybe the master is holding the port or something [15:55] thinkjson: devdazed: the master never listens on the port... [15:55] nstinson: What is SVG exactly? [15:55] DeepEd has joined the channel [15:55] thinkjson: scalable vector graphics [15:55] nstinson: ok [15:55] madson: thinkjson: devdazed: the server handle is created in the master [15:55] devdazed: thinkjson: yeah but i cant think of anything else, im grasping for straws here. lol [15:55] nstinson: I am not totally sure to be honest. I am just one person looking for some good charting options. I know that the platform we are devleoping uses Node.js [15:56] madson: nstinson: try d3 [15:56] madson: ^ it use SVG [15:56] nstinson: kcf I saw flotr. have you used it? [15:56] devdazed: thinkjson: madson is right, the handle is created int he master and shared among the children. [15:56] nstinson: what is d3, madson? [15:56] thinkjson: d3 doesn't support IE at all [15:57] thinkjson: successor to protovis, which CCC uses [15:57] AndreasMadsen: devdazed: yes that right :) [15:57] kevwil has joined the channel [15:57] sreeix has joined the channel [15:57] thinkjson: devdazed AndreasMadsen: no reason to do that, huh? :) [15:57] AndreasMadsen: thinkjson: don't know, the readme say it support IE9 [15:58] davemo has joined the channel [15:58] AndreasMadsen: thinkjson: sorry I'm not into you issue I just disconfirmed that the server was created in the worker. [15:58] nstinson: ccc and flotr look pretty neat each [15:58] Swizec has joined the channel [15:58] nstinson: are they pretty extensible ? [15:59] sriley: anyone know what "ERR! message UNKNOWN, unknown error '/vagrant/node_modules/___express.npm'" might mean? getting that while trying to install expressjs via chef inside a vagrant box [15:59] thinkjson: yeah, but not IE6-8 [15:59] nibblebot has joined the channel [15:59] dmsuperman has left the channel [15:59] elnn has joined the channel [15:59] KBM has joined the channel [16:00] nstinson: we are not really focusing towards those browsers right now [16:00] thinkjson: flotr is flash only, I believe, so it's a tad slow [16:00] kcf: nstinson: i haven't personally used flotr2, but a few other devs i know have used and recommended it (and the original flot, as well) [16:00] bizniz98 has joined the channel [16:00] kcf: flotr2 is html5/canvas/js [16:00] nstinson: cool [16:00] thinkjson: ah yeah, then comparable [16:00] thinkjson: you might have the same IE issues there, though [16:00] thinkjson: CCC supports everything since IE6 [16:00] jtsnow has joined the channel [16:01] thinkjson: devdazed: yeah, even creating the server in the worker, and waiting 5 seconds in the master before creating the server, I still get that error [16:01] draginx1: I installed the MSI for windows... but node i snot acommand in cmd.exe... any idea why? [16:02] thinkjson: so it looks like .close doesn't really release the port, just stops accepting connections [16:02] navanjr has joined the channel [16:02] davehamptonusa has joined the channel [16:02] davehamptonusa has left the channel [16:02] thinkjson: MSI? [16:02] thinkjson: I would just download node.exe and put it on your PATH [16:02] AndreasMadsen: thinkjson: no calling server.close() from a worker won't release the port since the handle still exist in the master [16:02] thinkjson: here, let me post the updated code [16:03] ryanfitz has joined the channel [16:03] AndreasMadsen: thinkjson: you will need to close the handle and you can't do that in node 0.6 [16:03] nstinson: I will bbs [16:03] nstinson: thanks for the help, kcf and thankjson [16:03] devdazed: thinkjson: try calling destroy on the master [16:03] charlenopires has joined the channel [16:03] nstinson: if you think iof any others, please let me know [16:03] nstinson: thankls' [16:03] looopy has joined the channel [16:03] thinkjson: here's the updated code: https://gist.github.com/bd08bd8aac9c3b817643 [16:04] thinkjson: destroy? [16:04] kcf: draginx1: i think the node exe on windows is called nodejs.exe [16:04] kevwil has joined the channel [16:04] thinkjson: kcf: nope [16:05] kcf: oh, well then... i guess i've proven i haven't used windows lately :) [16:05] thinkjson: chances are the MSI just didn't put the executable on PATH, although I was unaware of an MSI... [16:05] thinkjson: the fact that it works at all on WIndows is a miracle [16:05] kcf: thought for sure my co-worker had to type nodejs instead of node [16:05] thinkjson: piscisaureus_++ [16:06] thinkjson: ah - I see the MSI for download. not sure what it does. [16:06] thinkjson: I can't imagine it changing the executable name, though [16:07] xaq has joined the channel [16:07] ivaano has joined the channel [16:07] charlenopires has joined the channel [16:08] cha0s has joined the channel [16:08] cha0s has joined the channel [16:08] ivaano has left the channel [16:08] johnhamelink has joined the channel [16:08] pokoli has joined the channel [16:09] prestonparris has joined the channel [16:09] themiddleman_itv has joined the channel [16:10] lackac has joined the channel [16:10] devdazed: thinkjson: sorry destroy() is in the master branch [16:10] tjholowaychuk has joined the channel [16:11] DrHeiter23: when authenticating a user is it enough to check if a session exists because a session wouldn't exist if they haven't logged in yet? [16:12] EvRide has joined the channel [16:12] illourr has joined the channel [16:13] al3xnull has joined the channel [16:13] draginx1: (11:02:28 AM) thinkjson: I would just download node.exe and put it on your PATH <-- where would I get that? [16:14] draginx1: and the documentation says "node" no t"nodejs" in cmd.exe [16:14] pradeebv has joined the channel [16:15] thinkjson: draginx1: outdated information. ignore me. [16:16] thinkjson: devdazed: since the require() is in the worker now, would running .fork() pick up code changes in app.js and require()'d libs since the last .fork()? [16:16] zeade has joined the channel [16:16] thinkjson: so I could use that for hot code reload, which is the point of all of this [16:17] ningu: DrHeiter23: sessions are entirely separate from users. it's possible and often sensible to have a session for clients that aren't logged in [16:17] garrensm_ has joined the channel [16:17] devdazed: it doesn't have to be in the worker. the server.js gets loaded for each worker as well, hence the need for the cluster.isMaster line [16:17] devdazed: so, all you would need to do is refork the workers [16:18] dubenstein has joined the channel [16:18] ritch1 has left the channel [16:18] thinkjson: sweet! [16:18] devdazed: but if you made any changes to server.js, then you would need to reload the masyter [16:18] thinkjson: that would be unlikely [16:18] thinkjson: it's just a shell for starting workers [16:19] thinkjson: but if I needed to, I could kill the master and restart the server [16:19] draginx1: thinkjson: i had to perform "Repair" after "install" for it to work :) [16:19] devdazed: one caveat though. i use a folder based deployment, meaning new code is put into a different folder for the ability to rollback [16:19] devdazed: if you do the sae, this wont work [16:19] devdazed: because symlinks wont relink [16:19] looopy has joined the channel [16:19] thinkjson: no, I overwrite [16:19] draginx1: in case anyone ask in here [16:19] thinkjson: even for rollback [16:19] devdazed: then, yeah, this should be fine [16:19] thinkjson: cool [16:20] phidah has joined the channel [16:20] lakkris has joined the channel [16:20] fmeyer has joined the channel [16:21] gorekee has joined the channel [16:21] volkan has joined the channel [16:22] DrHeiter23: ningu: makes sense, what is stored in the client cookie though? Just the session_id? [16:22] ningu: yes [16:23] ningu: at least, some way to look it up [16:23] ningu: it might depend on the store [16:24] AndreasMadsen has joined the channel [16:24] pradeebv has joined the channel [16:25] postwait has joined the channel [16:25] rio{{ has joined the channel [16:25] velo has joined the channel [16:25] unomi has joined the channel [16:25] Zzaichik has joined the channel [16:26] fmeyer has joined the channel [16:26] aristidesfl has joined the channel [16:27] jergason has joined the channel [16:28] addisonj has joined the channel [16:28] isaacs has joined the channel [16:28] Leemp has joined the channel [16:29] brianleroux has joined the channel [16:30] c0smikdebris has joined the channel [16:31] sorensen__ has joined the channel [16:31] fmeyer has joined the channel [16:32] joshthecoder has joined the channel [16:33] jnbek has joined the channel [16:33] jerrysv has joined the channel [16:34] addisonj: hrm, anyone have issues with node 0.6 cluster just randomly not restarting failed process? Every few days our production boxes are just dropping, no errors, 0 exit codes, we are looking at this issue https://github.com/joyent/node/issues/2515 but the patch doesn't fix it. anyone else running into something like that? [16:34] bartt has joined the channel [16:35] mmalecki: addisonj: uhm, cluster doesn't restart workers? [16:35] ccare has joined the channel [16:35] riven has joined the channel [16:35] riven has joined the channel [16:35] mmalecki: addisonj: http://nodejs.org/docs/latest/api/cluster.html#event_death_ [16:35] jergason has joined the channel [16:36] trotter has joined the channel [16:36] kenperkins has joined the channel [16:36] fmeyer has joined the channel [16:36] ajackbot has joined the channel [16:37] thinkjson: devdazed: this is so weird. I gracefully restart the workers, the new workers die, and are restarted and work fine: https://gist.github.com/bd08bd8aac9c3b817643 [16:38] AndreasMadsen: thinkjson: hi again; I'm back give me time to read you testcase and I will get back to you. [16:38] addisonj: mmalecki: I will try adding that to our cluster stuff and see what happens, but what it seems like our workers are somehow falling out of the event loop cluster for some reason does not restart them [16:38] devdazed: thinkjson: try just using worker.kill() [16:38] devdazed: and letting the aster respawn it [16:38] devdazed: *master [16:39] qsobad has joined the channel [16:40] skyler_brungardt has joined the channel [16:40] devdazed: actually, that code works perfectly on my machine [16:40] Armen_ has joined the channel [16:40] broofa has joined the channel [16:40] thinkjson: what platform are you on? [16:40] thinkjson: What platform are you on? [16:40] devdazed: oh, nvm, i see it waited 5 seconds and killed everything again [16:40] fumanchu182 has joined the channel [16:40] devdazed: osx [16:41] thinkjson: hrm [16:41] maritz: addisonj: that's what he meant: cluster isn't supposed to automatically restart workers. [16:41] maritz: so, what you're observing is perfectly normal behaviour [16:41] ryan0x2 has joined the channel [16:41] shadowshell has joined the channel [16:42] thinkjson: devdazed: yeah - so the original workers respawn when killed, even though I tell it not to, and my new workers cannot connect to the socket [16:42] thinkjson: so weird [16:42] jj0hns0n has joined the channel [16:42] jiboumans_ has joined the channel [16:43] addisonj: well i guess the bigger issue is figuring out why we are falling of the event loop at all [16:44] thinkjson: addisonj: an exception in the master would kill the cluster like that [16:44] AndreasMadsen: thinkjson: okay I have read it, what is the core issue [16:45] thinkjson: AndreasMadsen: I tell the workers to stop listening, which they do. I spawn new workers, which cannot connect to socket. I tell the old workers to die, which they do. The master restarts them even though I tell it not to. [16:45] thinkjson: so there is downtime [16:45] thinkjson: which I'm trying to avoid by doing all this craziness [16:45] addisonj: thinkjson: but we don't get any errors from master, but we will check it out more, maybe just log it up [16:45] AndreasMadsen: thinkjson: process.title don't work on all OS'es [16:45] devdazed: thinkjson: why do you call process.exit() in the worker? [16:46] thinkjson: devdazed: how else do I kill it? [16:46] devdazed: thinkjson: the problem is process.title is undefined [16:46] kirbysayshi has joined the channel [16:46] thinkjson: I have it unlisten, finish its work, then die [16:46] devdazed: if app stops listening the loop should just die [16:46] devdazed: is there something else holding the loop open? [16:46] thinkjson: that still doesn't explain why the new workers can't connect to the socket [16:46] thinkjson: I *want* to keep the loop open [16:46] devdazed: on the worker i mean [16:46] fmeyer has joined the channel [16:47] pocopina has joined the channel [16:47] thinkjson: oh. yes. [16:47] thinkjson: all sorts of timers and such [16:47] devdazed: if you stop listening on the worker, the process hsould exit [16:47] devdazed: i see [16:47] thinkjson: it would still be restarted by the master [16:48] thinkjson: I don't understand why ln 34 doesn't work [16:48] devdazed: it is working, but it is spawning after they exit as well [16:49] eddyb has joined the channel [16:49] eddyb has joined the channel [16:49] devdazed: because it can't read process.title [16:49] vkareh has joined the channel [16:50] thinkt4nk has joined the channel [16:50] RobWC has joined the channel [16:50] tmike: nodejitsu.com is acting funky? [16:50] alvaro_o has joined the channel [16:50] RobWC has left the channel [16:51] mmalecki: tmike: oh? [16:51] mmalecki: tmike: oh! [16:51] mmalecki: looking into it now [16:51] mmalecki: cc AvianFlu bradleymeck [16:51] tmike: sometimes everything loads fine, sometimes I get no styling or a bunch of error messages [16:52] bradleymeck: ACTION goes to check [16:52] whaley has joined the channel [16:52] fmeyer has joined the channel [16:52] mmalecki: bradleymeck: it's slow, I'm checking lbs [16:53] hij1nx has joined the channel [16:53] thinkjson: devdazed: it *is* working. lol. so why the errors? [16:53] jiboumans_ has joined the channel [16:53] stephank has joined the channel [16:54] isaacs: test, please: http://nodejs.org/dist/v0.7.5/node-v0.7.5-RC0.tar.gz [16:54] EhevuTov has joined the channel [16:54] devdazed: thinkjson: im not getting the errors [16:55] devdazed: however, i just realized that from your previous code, there was a whole lot of processes still running, that i had to go and kill manually [16:55] ank has joined the channel [16:55] devdazed: so, make sure there is not remnant processes ? [16:55] arnorhs has joined the channel [16:55] dodo has joined the channel [16:56] AndreasMadsen: thinkjson: I have writen a rewrite https://gist.github.com/4ed58e494f27566fc9b5 - will test it shortly [16:56] chuck_daniel has left the channel [16:57] fmeyer has joined the channel [16:58] adammokan has joined the channel [16:58] devdazed: AndreasMadsen: looks like you might fork it twice [16:58] Cromulent has joined the channel [16:59] devdazed: once in SIGUSR and again in if (worker.suicide) { [16:59] devdazed: because you set worker.suicide to true in SIGUSR [16:59] devdazed: maybe it should be if (!worker.suicide) ? [16:59] AndreasMadsen: devdazed: yes [17:00] AndreasMadsen: fixed it :) https://gist.github.com/4ed58e494f27566fc9b5 [17:00] briancray has joined the channel [17:01] looopy has joined the channel [17:01] DrPheltRight has joined the channel [17:01] devdazed: AndreasMadsen, thinkjson : this actually looks a lot cleaner, and all the properties are controlled via the master. [17:01] isaacs: AndreasMadsen: the name "suicide" seems odd here. wouldn't it be "infanticide", since it's being killed by the parent process? [17:02] isaacs: AndreasMadsen: (or maybe something less deadly?) [17:02] devdazed: @isaacs: well it isn't bieng kill by the parent. the parent is ordering it to kill itself [17:02] steveoh has joined the channel [17:02] devdazed: not sure if there is a word for that [17:02] fatjonny has joined the channel [17:02] isaacs: hm. sepuku? [17:02] fmeyer has joined the channel [17:02] tmike: it seems like something that should have a word [17:02] AndreasMadsen: isaacs: hehe, this is not cluster 0.7, I wrote it on two minutes or so names are not considered very much. [17:03] isaacs: http://en.wikipedia.org/wiki/Seppuku [17:03] jergason has joined the channel [17:03] isaacs: i guess suicide is ok, then. that's a good point. [17:03] donfrancisco has joined the channel [17:03] isaacs: i don't want to go the ruby route of having japanese names for everything and confusing new users who aren't japanese. [17:03] jetienne_ has joined the channel [17:03] isaacs: and also confusing japanese users since we're using the words wrong :) [17:04] devdazed: @isaacs: iwther that or bushido [17:04] devdazed: :) [17:04] devdazed: http://en.wikipedia.org/wiki/Forced_suicide [17:05] draginx1: whats going to be in japense? [17:05] FuzzYspo0N has joined the channel [17:06] AndreasMadsen: isaacs: it is assisted suicide, but we don't wan't long names. And in cluster 0.7 suicide is set if you call worker.destroy() from worker or master. [17:06] draginx1: and does anyone know of a facebook chat copy in nodejs? the old facebook chat but just in nodejs using socketio or w/e? (Im thinking about making one and just releasing it :D) [17:06] overthemike has joined the channel [17:06] devdazed: immolated maybe? [17:06] overthemike has left the channel [17:07] AndreasMadsen: isaacs: actually the worker ask the master permission for committing suicide before it dose it. <- would solve many real life problems [17:07] adrianF has joined the channel [17:08] jyp has joined the channel [17:08] fmeyer has joined the channel [17:08] isaacs: ok, that's a good point. "suicide" is the best name for it, i guess. [17:09] thinkjson: AndreasMadsen: let me work on integrating your code. thanks! [17:09] AndreasMadsen: thinkjson: just updated it -< https://gist.github.com/4ed58e494f27566fc9b5 [17:10] thinkjson: yeah - you were clobbering workers [17:10] AndreasMadsen: thinkjson: yep [17:11] ekryski has joined the channel [17:12] ts__: i'm looking for a way to get some uid for a plain js object. is there any way to do this ? [17:12] ningu: ts__: maybe look into how the mongodb driver generates _id's? [17:13] ts__: i was thinking of something like sha1(stringify(myObject)) [17:13] fmeyer has joined the channel [17:13] ningu: oh, I see [17:13] ningu: there are also uuid modules in npm [17:13] ningu: but if you just want a checksum that would work [17:14] bindr has joined the channel [17:14] ningu: I do something similar actually [17:14] steveoh has left the channel [17:14] isaacs: ts__: if you want to checksum a JS object, you ought to checksum it with an empty checksum already attached, so that you can verify it later. [17:14] ts__: yes in fact i dont know yet if i need a uuid or a simple checksum [17:14] ts__: lol [17:15] icebox has joined the channel [17:15] lperrin has joined the channel [17:15] ts__: thanks for the advice isaacs [17:15] vkandy has joined the channel [17:15] pizthewiz has joined the channel [17:16] Revernd has joined the channel [17:16] isaacs: ts__: function check (obj) { var existing = obj.__checksum; obj.__checksum = "" var actual = sha1(JSON.stringify(obj); var ok = existing === actual; obj.__checksum = existing; return ok {} [17:16] kitt has joined the channel [17:16] isaacs: the sha1 bit can use node's builtin crypto stuff [17:17] humasect has joined the channel [17:17] papachan has joined the channel [17:17] ts__: okay [17:18] fmeyer has joined the channel [17:19] joshontheweb has joined the channel [17:20] margle has joined the channel [17:20] maritz: hehe [17:20] maritz: .. function check (obj) { var existing = obj.__checksum; obj.__checksum = "" var actual = sha1(JSON.stringify(obj); var ok = existing === actual; obj.__checksum = existing; return ok {} [17:21] maritz: catb0t? [17:21] maritz: OH NOES [17:21] maritz: WERE IZ MA CATB0TZ? [17:21] thinkjson: AndreasMadsen: hmm. if Node.js is under high load, the process doesn't receive the signal... [17:21] c4milo: bnoordhuis: any more thoughts on https://github.com/joyent/node/issues/2812#issuecomment-4139687? [17:21] AndreasMadsen: thinkjson: okay will recomple node to test :) [17:22] thinkjson: I'm hitting it with ab @ -c20 and the signal doesn't go through until ab is done [17:23] fmeyer has joined the channel [17:23] AndreasMadsen: thinkjson: how do you know that?= [17:23] dimdm has joined the channel [17:24] AndreasMadsen: thinkjson: the server will first be forced killed after 10000 ms, allowing clients to die graceful [17:24] AndreasMadsen: ^ until then [17:25] AndreasMadsen: * until the 10000 as elapsed [17:25] AndreasMadsen: *has [17:25] AndreasMadsen: I can't write now :) [17:25] bnoordhuis: c4milo: not really, it works as expected as far as i'm concerned [17:25] ericmuyser|air has joined the channel [17:26] iskren: what is the proper way to see if a module is installed (maybe not as a dependency of the asking module) but [17:26] iskren: oops, sorry [17:26] dubenstein has joined the channel [17:26] yawNO has joined the channel [17:26] c4milo: bnoordhuis: did you read the last comment and did you see the gist with the wireshark output? [17:27] ningu: iskren: try requiring it? [17:27] c4milo: bnoordhuis: it seems like it isn't related to the http Agent. [17:27] dubenstein has joined the channel [17:28] orlandovftw has joined the channel [17:28] ericmuyser|air has joined the channel [17:28] fmeyer has joined the channel [17:28] Hanspolo has joined the channel [17:28] c4milo: bnoordhuis:this is what causes the hang up https://gist.github.com/1893548#file_invalid_stream.txt [17:29] eignerchris has joined the channel [17:29] bnoordhuis: c4milo: yes, you're writing too soon [17:29] c4milo: bnoordhuis: I am using req.write [17:29] maletor has joined the channel [17:30] blueadept has joined the channel [17:30] bnoordhuis: c4milo: in a way it's not supposed to :) [17:30] c4milo: bnoordhuis: shouldn't it send the request + headers along with the first write? [17:30] thinkjson: AndreasMadsen: so more accurately, it looks like the message passing doesn't work under high load [17:31] c4milo: bnoordhuis: yeah that makes sense too. [17:31] AndreasMadsen: thinkjson: do you wan't it to kill graceful [17:32] c4milo: bnoordhuis: is there any event being triggered by http.ClientRequest that signals once the headers where sent? [17:32] c4milo: were* [17:32] thinkjson: AndreasMadsen: yes, I want the workers to finish their work before being terminated, but under high load the shutdown message is not passed. [17:32] thinkjson: presumably because the socket it saturated [17:32] thinkjson: *is [17:33] dubenstein has joined the channel [17:33] bnoordhuis: c4milo: not really. http.js tries very hard to cram the headers and the body into a single packet [17:33] bnoordhuis: c4milo: that said, it's possible to force the headers to be written [17:33] fmeyer has joined the channel [17:34] AndreasMadsen: thinkjson: try this and send me the output -> https://gist.github.com/4ed58e494f27566fc9b5 [17:34] bnoordhuis: c4milo: there's a ._flush() method (which is not documented/supported, of course) [17:34] thinkjson: AndreasMadsen: I actually have to run. Thanks for your help, though. I'll figure it out eventually. :-) [17:34] c4milo: bnoordhuis: it doesn't work [17:35] c4milo: bnoordhuis: it's fine, I think I am going to write my own http client, I don't want to deal more with the nodejs implementation. [17:35] AndreasMadsen: thinkjson: okay no problem, you know where to find me :) [17:35] spion has joined the channel [17:35] dubenstein has joined the channel [17:35] c4milo: bnoordhuis: thank you man. [17:35] thinkjson: AndreasMadsen: thanks [17:36] dubenstein has joined the channel [17:36] ekryski has joined the channel [17:36] slloyd has joined the channel [17:36] bnoordhuis: c4milo: my pleasure [17:37] TheJH has joined the channel [17:37] whaley has joined the channel [17:38] fmeyer has joined the channel [17:39] brianseeders has joined the channel [17:39] DeepEd_ has joined the channel [17:40] johnhamelink has joined the channel [17:40] theBrettman has joined the channel [17:41] looopy has joined the channel [17:41] AD7six has joined the channel [17:42] mikeal has joined the channel [17:42] coderarity: does someone know of a good open source website with a lot of client-side JS that I could check out? [17:43] coderarity: and preferably any server-side stuff in Node.js [17:43] ningu: what I really want to know are the best scripts for joining server with client side [17:43] ningu: or techniques, whatever [17:43] AvianFlu has joined the channel [17:43] fmeyer has joined the channel [17:44] ningu: coderarity: dailyjs.com is pretty good for staying up to date, I just found it a couple days ago [17:44] r1ngzer0 has joined the channel [17:44] woodzee has left the channel [17:45] slickplaid: What's the proper way to test if an API returns JSON or not to keep JSON.parse() from throwing a syntax error in node? [17:46] texinwien has joined the channel [17:46] thalll has joined the channel [17:46] joshkehn has joined the channel [17:46] joshkehn has left the channel [17:46] coderarity: slickplaid: couldn't you just use try-catch? [17:46] slickplaid: I suppose I could check the headers, but this API i'm working with returns HTML error pages even with content-type: json [17:46] infynyxx has joined the channel [17:46] slickplaid: hrmm... I could [17:47] djazz has joined the channel [17:47] ericmuyser|air has joined the channel [17:48] PElshoff has joined the channel [17:48] jmar777: slickplaid: seems like a good case for try-catch. if the API says "this is JSON", and it's not, then that's pretty much the definition of an exception [17:49] fmeyer has joined the channel [17:49] wendall911 has joined the channel [17:49] slickplaid: thanks :D [17:49] Skola has joined the channel [17:49] slickplaid: i try so often not to use try..catch that I had almost forgot it existed [17:50] lz: is try/catch taboo? [17:50] justicefries: no, it's not. [17:50] coderarity: lz: what does that mean? [17:50] jesusabdullah: abusing try/catch is taboo. [17:51] gsmcwhirter has joined the channel [17:51] lz: coderarity like should one get spanked for using it [17:51] justicefries: so is burying exceptions that should be thrown. [17:51] jiboumans_ has joined the channel [17:51] coderarity: lz: oh I get it [17:51] slickplaid: "This function throws an exception... but if I try..catch it, it works!" <-- that kind of stuff is taboo [17:52] justicefries: yup [17:52] sh1mmer has joined the channel [17:53] coderarity: slickplaid: I think the reason we don't use it a lot in JS is because a lot of stuff is asynchronous [17:53] jxson has joined the channel [17:53] Phoenixz has joined the channel [17:53] looopy has joined the channel [17:54] fmeyer has joined the channel [17:54] slickplaid: main reason I don't use it is because I usually interface with my own code, so I can fix anything that would use it. In this case, it's not my code, can't fix it. [17:54] kmiyashiro has joined the channel [17:54] coderarity: slickplaid: well there are alternatives to the built-in JSON.parse [17:56] wiwillia has joined the channel [17:56] slickplaid: like what? [17:56] aaronmcadam has joined the channel [17:57] slickplaid: Did the changelog for node get removed? I could have sworn it was on the main nodejs.org site yesterday. [17:58] eignerchris_ has joined the channel [17:58] coderarity: slickplaid: https://github.com/joyent/node/wiki/modules#wiki-parsers-json [17:59] fmeyer has joined the channel [17:59] Phoenixz: How can I clone an object in Node? I saw var otherObj = Object.clone(obj), but that gives me an empty object in otherObj.. [17:59] thinkjson: coderarity: why? [18:00] coderarity: thinkjson: what do you mean? [18:00] thinkjson: er [18:01] slickplaid: I'll just try..catch it. Don't need another dependency in this project to keep track of. [18:01] coderarity: thinkjson: why use an alternative to built-in JSON.parse? well JSON.parse is synchronous [18:01] thinkjson: ah right [18:01] thinkjson: yes, SubStack has an evented parser [18:01] thinkjson: it's kind of slow, though [18:01] lz: Phoenixz cloning objects is hard... [18:02] Edy has joined the channel [18:02] Edy has joined the channel [18:02] xaq has joined the channel [18:02] johnmdonahue has joined the channel [18:02] slickplaid: Phoenixz: I don't believe there is a built in function for it. You have to loop through and copy each property. [18:03] thinkjson: ...and if there's nesting, you'd have to do recursion [18:03] coderarity: isn't there some fast alternative to JSON itself also? I think it may be binary [18:03] thinkjson: JSON is pretty fast [18:03] lz: Phoenixz, it's easier if you don't have circular references in objects [18:03] Phoenixz: lz: I know.. But the problem is that the object has properties which right now are all strings, so those should not be a problem.. But what if one of those in the future becomes an objewct as well? [18:04] thinkjson: I'm parsing like 15MB JSON strings in less than a second [18:04] lz: ah [18:04] fmeyer has joined the channel [18:05] jxson has joined the channel [18:05] Phoenixz: lz: Its a configuration object (generic) with configuration that I want to apply ot other objects.. Since Im a bit new to javascript, right now I have 20 objects with all the same config object :) so I want to fix that, I could copy property by property, but what if one of those becomes an object? then I'll have the same problem all over again [18:06] lz: Phoenixz could you just initialize a new configuration object for each new object [18:06] lz: you can set defaults in the constructor [18:07] sorensen__ has joined the channel [18:09] tonist has joined the channel [18:09] fmeyer has joined the channel [18:11] steveoh has joined the channel [18:11] steveoh has left the channel [18:12] wbednarski_ has joined the channel [18:13] texinwien: Phoenix: are you familiar with underscore.js? [18:13] texinwien: Phoenixz, I should say [18:14] fmeyer has joined the channel [18:15] margle has joined the channel [18:15] isao has joined the channel [18:15] adamkittelson has joined the channel [18:15] dilvie has joined the channel [18:16] CIA-102: libuv: 03Ben Noordhuis 07master * r09c722e 10/ (src/uv-common.c src/uv-common.h): [18:16] CIA-102: libuv: common: make uv__set_*_error() return -1 [18:16] CIA-102: libuv: So you can do `if (errno) return uv__set_sys_error(loop, errno);`. - http://git.io/Vs5qmQ [18:16] CIA-102: libuv: 03Ben Noordhuis 07master * rd3efefb 10/ (9 files in 5 dirs): [18:16] CIA-102: libuv: linux: share inotify fd across event loop [18:16] CIA-102: libuv: Previously, a new inotify fd was created for each watcher, making it quite easy [18:16] CIA-102: libuv: to run into the system-wide fs.inotify.max_user_instances limit (usually 128). [18:16] CIA-102: libuv: Fixes #300. - http://git.io/Esxi7Q [18:16] nicki9knuckles has joined the channel [18:17] AndreasMadsen has joined the channel [18:18] robi42 has joined the channel [18:18] ovnicraft has joined the channel [18:19] fmeyer has joined the channel [18:20] ph^ has joined the channel [18:21] FuzzYspoON has joined the channel [18:22] gr4yscale has joined the channel [18:23] phidah has joined the channel [18:23] TooTallNate has joined the channel [18:24] hipsterslapfight has joined the channel [18:24] fmeyer has joined the channel [18:25] retornam has joined the channel [18:26] StanlySoManly has joined the channel [18:29] prestonparris has joined the channel [18:29] fmeyer has joined the channel [18:30] nakkor has joined the channel [18:30] Datluong has joined the channel [18:30] kmiyashiro_ has joined the channel [18:30] andrehjr has joined the channel [18:31] tornad has joined the channel [18:32] jamescarr_ has joined the channel [18:32] nightfury has joined the channel [18:34] Skola has joined the channel [18:34] lz: does anyone know the pros/cons of using "use strict" [18:35] fmeyer has joined the channel [18:36] sauerbraten has joined the channel [18:36] eignerchris has joined the channel [18:36] paulwe has joined the channel [18:38] aconbere has joined the channel [18:39] sh1mmer_ has joined the channel [18:39] drupol has joined the channel [18:40] sh1mmer_ has joined the channel [18:40] fmeyer has joined the channel [18:40] gr4yscale has joined the channel [18:41] briancray has joined the channel [18:41] kadema has joined the channel [18:41] nicki9knuckles has left the channel [18:42] franciscallo has joined the channel [18:43] ddilinger has joined the channel [18:43] ddilinger: is it possible to do the equivilent of 'tail -f' from inside node.js ? [18:43] ddilinger: e.g., register a callback to be fired whenever new data ends up in a specific file [18:44] tmike: Did you look in the fs docs? [18:44] ddilinger: yes, but i dont even know what to look for [18:44] ddilinger: tail -f isn't listed :P [18:44] tmike: nope [18:44] tmike: but there is, I think, a watcher [18:45] tmike: poke around and read stuff [18:45] philipd has joined the channel [18:45] norviller has joined the channel [18:45] ddilinger: ahha, watch was the right keyword. thanks ! [18:45] fmeyer has joined the channel [18:45] mAritz has joined the channel [18:46] volkan has joined the channel [18:47] trakowski77 has left the channel [18:49] illourr has joined the channel [18:50] fmeyer has joined the channel [18:51] tylerstalder has joined the channel [18:51] xelor has joined the channel [18:52] `3rdEden has joined the channel [18:53] sh1mmer_ has joined the channel [18:53] sh1mmer_ has joined the channel [18:53] thinkt4nk has joined the channel [18:54] mAritz has joined the channel [18:55] xelor: say an api gives me the ability to set a cookie with a value. will a website that a visit automatically populate that cookie if it has the same name of a cookie on the website? [18:56] fmeyer has joined the channel [18:57] kmiyashiro_ has joined the channel [18:57] jamund has joined the channel [18:57] krucial has joined the channel [18:58] dgathright has joined the channel [18:58] tmike: xelor I believe that depends on the behavior of the website. [19:01] fmeyer has joined the channel [19:02] sechrist has joined the channel [19:03] sorensen__ has joined the channel [19:03] timoxley has joined the channel [19:03] fumanchu182 has joined the channel [19:03] mAritz1 has joined the channel [19:06] CarterL has joined the channel [19:06] butu5 has joined the channel [19:06] umren has joined the channel [19:06] fmeyer has joined the channel [19:08] butu5: anyone using libxmljs? how to remove an attribute from a node? [19:08] jergason_ has joined the channel [19:09] joaojeronimo has joined the channel [19:10] xbayrockx has joined the channel [19:11] fmeyer has joined the channel [19:12] Aikar has joined the channel [19:12] TheFuzzball has joined the channel [19:12] kmiyashiro has joined the channel [19:13] Eruadan has joined the channel [19:15] Eruadan: Hi, is there any particular care to take regarding SEO, when building a web app with node? [19:16] deedubs: Eruadan: There is nothing specific to node about SEO [19:16] Tricon has joined the channel [19:16] patcito has joined the channel [19:16] Eruadan: deedubs, ok, thanks [19:16] fmeyer has joined the channel [19:17] mattkime has joined the channel [19:17] gr4yscale has joined the channel [19:18] Eruadan: deedubs, i'm thinking to use now.js in first project with node. Is funny, cause i tried to go to nowjs.com to check the docs, and it seems the domain is expired? [19:18] briancray has joined the channel [19:20] sreeix has joined the channel [19:21] fmeyer has joined the channel [19:22] timoxley has joined the channel [19:22] zarex has joined the channel [19:22] mattkime has joined the channel [19:23] Qzen: Eruadan, you do know that its nowjs.org? right? [19:23] Qzen: and the docs works for me [19:23] skylamer` has joined the channel [19:23] Eruadan: wow, 1 sec [19:25] Eruadan: if i search on google for nowjs.com, i got results. It must have changed the domain and not set a 301. [19:25] Qzen: well, i tried nowjs.com and i gor redirected to .org [19:25] Qzen: so the 301 is there [19:25] Eruadan: https://encrypted.google.com/search?sourceid=chrome&ie=UTF-8&q=nowjs.com+silte#pq=nowjs.com+site&hl=en&gs_nf=1&cp=9&gs_id=i&xhr=t&q=nowjs.com&pf=p&sclient=psy-ab&pbx=1&oq=nowjs.com&aq=0&aqi=g1&aql=&gs_sm=&gs_upl=&bav=on.2,or.r_gc.r_pw.r_qf.,cf.osb&fp=bd26d1526c2a65bd&biw=1280&bih=713&bs=1 [19:26] Qzen: works well [19:26] Eruadan: i don't get redirected ;/ [19:26] sarlalian has joined the channel [19:26] rickibalboa has joined the channel [19:27] fmeyer has joined the channel [19:27] timoxley: oh man. I'm having the weirdest problem. npm install won't npm install. it does a bit of thinking, then it's like, ok. then that's it. it's as if it doesn't read the whole package.json [19:27] voodootikigod has joined the channel [19:28] SvenDowideit has joined the channel [19:28] Eruadan: i go instead to a go daddy page, saying the domain is expired http://awesomescreenshot.com/06ccch17 [19:28] Eruadan: Qzen [19:28] Qzen: yes? [19:29] Eruadan: screenshoot for you [19:29] Qzen: lol [19:29] Qzen: http://imm.io/hakd [19:29] Qzen: this is what i get [19:29] Eruadan: whatever, the owner of that domain must be informed [19:30] Eruadan: that something is not right [19:30] Qzen: yeah [19:30] slaskis_ has joined the channel [19:30] jerkelens has joined the channel [19:30] Qzen: just inform them on twitter och something [19:31] reid has joined the channel [19:31] reid has joined the channel [19:31] johnhamelink has joined the channel [19:31] jerkelens has joined the channel [19:31] slaskis_ has joined the channel [19:31] gut4 has joined the channel [19:31] xaq has joined the channel [19:31] odinswand has joined the channel [19:32] fmeyer has joined the channel [19:32] Eruadan: mm [19:32] Eruadan: i wish they were here hearing us [19:32] Eruadan: ;/. lazzy [19:32] Eruadan: lol [19:33] Eruadan: Qzen, talking about now.js [19:33] Qzen: what? [19:33] Eruadan: have you used? Can you give me some real examples of usage other than a chat? [19:34] Qzen: well, i use it for push-messages [19:34] Qzen: so if i choose to be informed when a friend loggs in on my community [19:34] whitman has joined the channel [19:34] Qzen: nowjs will push the message to me when a friend logs in [19:34] cconstantine_: anyone here use riak with nodejs? [19:35] Qzen: i use nowjs and mysql connectivity to verify each user [19:35] Qzen: i will be back later [19:35] postwait: cconstantine_: yes. [19:36] cconstantine_: postwait, is there an orm you use, or just directly? do you like it? [19:36] Eruadan: Qzen, i see, you use for specific tasks [19:36] timoxley: Eruadan http://nowjs.org/ [19:36] Eruadan: in the general application [19:36] postwait: directly. it works fine. I don't need to like or dislike it. [19:37] fmeyer has joined the channel [19:37] cconstantine_: postwait, you don't need to, but you can still have an opinion :) [19:37] timoxley: cconstantine_ I used it a while back but the community is much larger therefore support/tools much better for mongo [19:38] timoxley: cconstantine_ and I wasn't using it for any particular features of riak, so it just made sense to use mongo [19:38] cconstantine_: timoxley, I'm looking to avoid mongo. I've used it before and it has some rather odd corners [19:38] timoxley: cconstantine_ such as [19:38] orlandovftw has joined the channel [19:39] timoxley: cconstantine_ all software has corners [19:39] tvw has joined the channel [19:39] orlandovftw has joined the channel [19:39] cconstantine_: timoxley, the {safe: true} option is a lie in replica sets [19:39] ningu: yeah, I'm not convinced that mongo's corners are worse than sql's [19:39] ningu: for some cases may be a tossup [19:39] Eruadan: that is just funny http://www.youtube.com/watch?v=b2F-DItXtZs [19:40] cconstantine_: and the lack of any kind of references forces some brutal de-normalization in some circumstances. [19:40] cconstantine_: also, no counts on the indexes [19:40] jerkelen_ has joined the channel [19:41] timoxley: cconstantine_ you can do references, just throw an object id in your data [19:41] cconstantine_: it just turns into another query. that's the app doing references not the db [19:41] chronofast has joined the channel [19:41] fumanchu182 has joined the channel [19:41] fumanchu182 has joined the channel [19:42] timoxley: cconstantine_ perhaps you should use a sql solution if you want joins. [19:42] fmeyer has joined the channel [19:42] cconstantine_: timoxley: or riak does references :) [19:43] cconstantine_: timoxley, and riak may not be the answer either... just exploring [19:43] chronofast: Is there a equally high level lib akin to nowjs for realtime multiple users? [19:43] diva__ has joined the channel [19:44] jaha has joined the channel [19:44] cconstantine_: timoxley, I like mongo for some things; I used it for my syslog server [19:44] timoxley: chronofast I tried nowjs a while back, perhaps I wasn't using it on the right project but simply rolling my own solution on socket.io was far simpler than conterting nowjs to do what I wanted [19:44] timoxley: contorting* [19:45] gr4yscale has joined the channel [19:45] chronofast: That's a good bit of the problem I am having, and I wanted some input on wether or not to just roll my own instead of learning nowjs, I appreciate the input, thanks. [19:46] timoxley: cconstantine_ yeah we're building a traditional lookin' app (users, permissions, crud, etc) on it. I have a feeling we should have used sql. [19:46] zemm has joined the channel [19:46] Eruadan: http://www.youtube.com/watch?v=fjqCPiA57gM , relational databases... [19:46] timoxley: chronofast socketio is really simple. also consider using dnode, or enode https://github.com/timoxley/enode [19:47] cconstantine_: timoxley, I would use sql for that kinda stuff [19:48] malkomalko has joined the channel [19:48] eukreign has joined the channel [19:48] timoxley: cconstantine_ agree, though I hadn't deployed anything nosql before so it was a kind of experiment [19:48] ningu: so far I am pretty pleased with mongodb actually [19:48] dannyamey has joined the channel [19:49] draginx1: Is there a way to get a list of folders on someone's machine locally in nodejs? Like a file upload (but an entire folder instead) [19:49] cconstantine_: timoxley, yeah, as a compute cache nosql is great... not so much with first-order data [19:49] eukreign: accessors allow you to configure on a per property level, is there an equivalent that would allow you to have a function called when any attribute is set/get on an object? [19:49] ningu: there are some messy things, like if you want to sort case insensitive you have to add another field [19:49] bicranial has joined the channel [19:50] timoxley: eukreign http://wiki.ecmascript.org/doku.php?id=harmony:proxies [19:51] timoxley: eukreign node --v8-options | grep harmony [19:52] eukreign: is there a way to do it in current javascript that's available in modern browsers? [19:52] shipit_ has joined the channel [19:53] jerkelens has joined the channel [19:53] tmcw has joined the channel [19:54] timoxley: eukreign I don't think so, but you could loop over object's own keys, set getters/setters for each key, and have the getter/setter fire off some event when it's called [19:54] eukreign: it wouldn't work for attributes that haven't been set yet [19:55] criswell has joined the channel [19:56] timoxley: eukreign nope [19:56] eukreign: okay, thanks [19:58] zemm has joined the channel [19:59] markdaws has joined the channel [20:00] shinuza has joined the channel [20:01] markdaws: I'm using child_processes and exec to start a process. I set setsid=true in the options, when I send a SIGKILL to the process (if it's hanging) the child processes live on, looking in the node src code I don't see the setsid option actually being used in the code, is this a valid option? [20:02] Axsuul has joined the channel [20:02] bbbb has joined the channel [20:02] Axsuul has joined the channel [20:03] eddyb: chjj: "Unknown OSC code." [20:03] eukreign has left the channel [20:03] eddyb: twice per terminal [20:03] eddyb: must be my $PS1 [20:04] muke has joined the channel [20:04] eddyb: '$(ppwd \l)\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]> ' [20:05] eddyb: chjj: I had problems in text-mode consoles with this $PS1 [20:05] muke: is there no way to block on an event in node.js? [20:05] muke: or perhaps block on a function in javascript/node.js? [20:06] muke: I understand it may be frowned upon, but even functional languages have ways of having side effects [20:06] dubenstein has joined the channel [20:06] jskulski has joined the channel [20:07] eddyb: muke: a boolean outside the function [20:07] slaskis has joined the channel [20:08] eddyb: and a check inside the function [20:08] lohkey has joined the channel [20:08] eddyb: you can even change the way EventEmitter works [20:11] Behl has joined the channel [20:11] mraleph1 has joined the channel [20:12] jhurliman has joined the channel [20:12] jimmy- has joined the channel [20:12] jimmysparkle has joined the channel [20:12] themiddleman_i-1 has joined the channel [20:14] al3xnull has joined the channel [20:14] tjmehta has joined the channel [20:14] maqr has joined the channel [20:14] eldios has joined the channel [20:15] rickibalboa has joined the channel [20:15] chjj: eddyb: the terminal doesnt support osc codes [20:16] chjj: eddyb: so if you put any osc codes in your PS1 (to change the window title for example), they wont work [20:16] chjj: they wont do any harm either [20:16] eddyb: do I use any OSC code in that $PS1? [20:16] Raynos: Toying with dependency injection: https://gist.github.com/838ea033d51496dae47a Any comments on the API? [20:17] zomgbie has joined the channel [20:17] chjj: eddyb: is that the whole string? [20:17] Raynos: As an aside, has anyone else implemented a sensible dependency injection library? [20:17] chjj: i dont see any [20:17] chjj: but theres no way it would mistake a csi code for an osc code [20:17] eddyb: my .bashrc/.bash_profile and $PS1 are a cocktail made from a few examples I found on the internet [20:17] chjj: eddyb: osc codes look like \e]something\a [20:17] pickels has joined the channel [20:18] chjj: eddyb: or they can also look like: \e]something\e\ [20:18] chjj: eddyb: \e == ^[ == \033 == \x1b [20:20] eddyb: here's the culprit: "\u001b]2;eddy@eddy-laptop.lan:~\u0007\u001b]1;eddy-laptop.lan\u0007" [20:20] chjj: eddyb: yeah, thats an osc code [20:20] chjj: eddyb: dont worry about it, doesnt do any harm [20:20] chjj: tty.js just ignores them [20:20] eddyb: $(ppwd \l) maybe? [20:21] Venom_X has joined the channel [20:22] muke: eddyb: would changingg how eventemitter works be hard/global? [20:22] eddyb: global [20:22] eddyb: not really hard [20:22] filleokus has joined the channel [20:23] draginx1: is socket.io on ws yet? [20:24] eddyb: draginx1: lol? [20:25] jolo2 has joined the channel [20:26] michaelmartinez has joined the channel [20:27] volkan has joined the channel [20:28] draginx1: eddyb: or is it still on node-socket? [20:28] kkwak has joined the channel [20:28] Venom_X has joined the channel [20:29] mikeal has joined the channel [20:29] eddyb: draginx1: I don't really understand. socket.io uses WebSocket if it exists [20:29] eddyb: I mean, if it's present in the browser [20:31] ccare_ has joined the channel [20:33] chronofast has left the channel [20:33] gr4yscale has joined the channel [20:35] larsschenk has joined the channel [20:35] larsschenk has left the channel [20:36] eddyb: chjj: also, did you get my other messages? [20:36] eddyb: the ones about resizing [20:37] eddyb: and how it shouldn't block keypresses when it's not focused [20:37] drupol has left the channel [20:38] eddyb: I should use git for tty.js, in case you change anything :) [20:38] jkridner_ has joined the channel [20:39] Druid_ has joined the channel [20:40] jxson has joined the channel [20:41] ryanfitz has joined the channel [20:41] fmeyer has joined the channel [20:42] thinkt4nk has joined the channel [20:42] mikeal has joined the channel [20:45] lperrin has joined the channel [20:46] gr4yscale has joined the channel [20:46] kkwak has joined the channel [20:46] robi42 has joined the channel [20:46] krnl has joined the channel [20:47] fmeyer has joined the channel [20:47] tvw has joined the channel [20:50] hij1nx has joined the channel [20:50] omolina has joined the channel [20:50] omolina: any one working with node + glusterfs [20:51] tmike: isaacs were you looking for make test results for 0.7.5? [20:51] M1l3n1um has joined the channel [20:52] fmeyer has joined the channel [20:54] nFFF has joined the channel [20:54] logicalparadox has joined the channel [20:56] ramitos has joined the channel [20:56] coderarity: SubStack: is wreq just a test/example, or can I actually use it? [20:56] SubStack: yes [20:56] mmalecki: lol [20:56] SubStack: it shows you how to use it on the readme [20:57] SubStack: it's also not something that I care a lot about [20:57] fmeyer has joined the channel [20:58] coderarity: SubStack: well, I was considering using it instead of browserify, would I be better off just using browserify? [20:58] SubStack: use whichever [20:58] coderarity: ok, cool [20:58] necromancer has joined the channel [20:59] SubStack: wreq is just not as well tested and I have no idea how it compares in load times versus browserify bundles [20:59] necromancer: hey all [20:59] djazz has left the channel [20:59] necromancer: how does coffeescript work on node? [20:59] necromancer: does it compile to JS and then node executes that JS? or is it interpreted directly? [20:59] mmalecki: barely [20:59] necromancer: hah [20:59] SubStack: does that matter? [21:00] SubStack: you just type coffee file.coffee [21:00] SubStack: and it runs somehow [21:00] necromancer: yes, it does [21:00] lohkey: :) [21:00] mmalecki: gremlins! [21:00] SubStack: or do you mean do you need a build step? [21:00] necromancer: SubStack: or else i wouldn't be asking it [21:00] hcchien has joined the channel [21:00] necromancer: i also wouldn't have joined the #node.js channel to ask it ;) [21:00] lohkey: necromancer: you pretty much describeed whats going on [21:00] necromancer: lohkey: which one? [21:01] lohkey: it compiles to JS [21:01] necromancer: ok cool [21:01] necromancer: i'm making a framework and i wanted to give people the option of coffee or JS [21:01] gorekee has joined the channel [21:01] lohkey: it's like a code gen (coffee) that feeds into a cod gen(V8) [21:01] necromancer: right [21:02] fmeyer has joined the channel [21:02] AviMarcus has joined the channel [21:02] M1l3n1um has joined the channel [21:03] admin_ has joined the channel [21:04] confoocious has joined the channel [21:04] confoocious has joined the channel [21:04] xaq has joined the channel [21:05] dgathright_ has joined the channel [21:06] themiddleman_itv has joined the channel [21:07] draginx1: (3:29:59 PM) eddyb: I mean, if it's present in the browser <-- WS and node-socket are building blocks for socket.io [21:07] fmeyer has joined the channel [21:07] \mSg has joined the channel [21:08] jergason has joined the channel [21:09] zarex has joined the channel [21:09] Gekz has joined the channel [21:09] timr has joined the channel [21:11] graeme_f has joined the channel [21:12] M1l3n1um has joined the channel [21:12] fmeyer has joined the channel [21:12] isaacs: tmike: yeah, but i'm pretty much happy with it [21:13] M1l3n1um has joined the channel [21:13] prestonparris has joined the channel [21:13] M1l3n1um has joined the channel [21:15] M1l3n1um: hi [21:16] tmike: I did get a few fails, you want a pastebin log? [21:16] isao has joined the channel [21:17] Hamms has joined the channel [21:17] fmeyer has joined the channel [21:18] patrickjst has joined the channel [21:19] dve has joined the channel [21:19] muke: has anyone used synchronous? [21:20] wbednarski has joined the channel [21:21] ramitos has joined the channel [21:23] fmeyer has joined the channel [21:24] shinuza has joined the channel [21:25] RLa has joined the channel [21:26] skylamer` has joined the channel [21:26] Leo_ has joined the channel [21:27] daglees has joined the channel [21:27] daglees has joined the channel [21:27] hotchkiss has joined the channel [21:27] isao has joined the channel [21:28] fmeyer has joined the channel [21:30] gr4yscale has joined the channel [21:30] whaley has joined the channel [21:30] itayneeman has joined the channel [21:30] felixge has joined the channel [21:30] felixge has joined the channel [21:30] itayneeman: Anyone know if request has the ability to cancel in flight requests? [21:32] gr4yscale has joined the channel [21:32] AvianFlu has joined the channel [21:32] c0smikdebris has joined the channel [21:33] gr4yscale has joined the channel [21:33] fmeyer has joined the channel [21:34] M1l3n1um has joined the channel [21:35] addisonj has joined the channel [21:35] gr4yscale has joined the channel [21:35] mandric has joined the channel [21:37] mikeal has joined the channel [21:37] gr4yscale has joined the channel [21:38] fmeyer has joined the channel [21:38] M1l3n1um has joined the channel [21:40] necromancer: itayneeman: in the browser, the request is aborted if it's made again without the first one completing [21:40] itayneeman: necromancer: and in node? [21:40] itayneeman: specifically, I'm wondering if I do something like: "var myreq = request(....);" [21:41] itayneeman: is there a way to abort myreq [21:41] necromancer: itayneeman: oh you're talking about the request lib [21:42] itayneeman: necromancer: yes [21:42] itayneeman: in XmlHttpRequest there is the abort() method [21:42] blup has joined the channel [21:42] necromancer: itayneeman: welp, if it's in the request object it's probably in this file :) https://github.com/voxpelli/node-request/blob/master/main.js [21:42] itayneeman: necromancer: I took a good look [21:43] necromancer: itayneeman: i just tried to find `abort` and couldn't [21:43] necromancer: yeah...i don't think it's possible [21:43] itayneeman: necromancer: there doesn't seem to be anything, except on the .req object, but it gets deleted [21:43] fmeyer has joined the channel [21:43] itayneeman: well, hopefully mikeal will jump in and tell me how I'm doing it wrong :) [21:43] M1l3n1um has joined the channel [21:43] M1l3n1um1 has joined the channel [21:45] batousai has joined the channel [21:45] gr4yscale has joined the channel [21:46] batousai: is it possible to handle http-equiv="refresh" as a 302 redirect? [21:46] HardFu has joined the channel [21:46] HardFu: out of curiosity, are there any good alternatives to express? [21:47] chjj: batousai: http-equiv=refresh is non-standard behavior to begin with [21:47] tjholowaychuk: HardFu geddy/flatiron are alts [21:47] gr4yscale has joined the channel [21:47] HardFu: thanx, I'll have a look [21:47] tjholowaychuk: HardFu there are a few built on express as well, railway for more rails-style stuff [21:47] tjholowaychuk: zappa [21:47] tjholowaychuk: or something [21:48] jerrysv: HardFu: bricks - http://bricksjs.com/ [21:48] bbttxu has joined the channel [21:48] batousai: chjj, some very relevant sites use it [21:48] M1l3n1um has joined the channel [21:48] HardFu: Not a rails fan, so I'll skip that one :) [21:48] chjj: batousai: those sites are made by incompetent people then [21:48] HardFu: there was one that supported fibers, forgot it's name [21:48] fmeyer has joined the channel [21:48] batousai: microsoft? [21:48] tmike: So, you have a few for (var x in y) loops in a function or something. jshint complains that var x is already defined. Should I really make sure to use different variable names in each for block? [21:49] chjj: batousai: i cant remember the last time i saw a "relevant" site with proper markup [21:49] chjj: batousai: and yes, microsoft is extremely incompetent when it comes to the web [21:49] necromancer: lol [21:49] chjj: batousai: who could even argue against that? [21:49] Hanspolo has joined the channel [21:49] necromancer: they ARE incompetence when it comes to the web. see: IE 6, IE 7, IE 8, IE 9 [21:49] necromancer: IE 5.5 [21:49] necromancer: windows [21:49] necromancer: office [21:49] necromancer: xbox live [21:49] batousai: chjj, no objections here [21:49] necromancer: ;D [21:49] chjj: it shouldnt surprise you that microsoft employees dont know how to throw some basic markup on a web page [21:50] lakkris: node.js <3 [21:50] coyo has joined the channel [21:50] necromancer: doesn't http-equiv essentially inject HTTP headers after they've already been defined? that's a big no-bo [21:50] necromancer: no-no* [21:51] arduix has joined the channel [21:51] chjj: necromancer: i think that was kind of its purpose, but Refresh was never a header, which is why its nonstandard [21:52] chjj: Refresh was just a made-up netscape thing [21:52] necromancer: oh really? haha [21:52] reid has joined the channel [21:52] necromancer: yeah it certainly doesn't look like a header [21:54] fmeyer has joined the channel [21:54] Wizek has joined the channel [21:55] timr has joined the channel [21:56] timr: hello, can anyone help with a stdin issue I am having? [21:56] Cromulent has joined the channel [21:56] coderarity: timr: you should probably just ask and people will respond if they can help [21:57] addisonj has joined the channel [21:57] CoverSlide: timr: everyone can help you with the stdin issue you are having [21:57] graeme_f: i can't [21:57] tmike: are the couchdb futon tests supposed to take mulitple hours? [21:57] CoverSlide: everyone except for graeme_f [21:58] perezd has joined the channel [21:58] tmike: hm. I'd say not. Logs are spewing OS Process errors too. [21:59] fmeyer has joined the channel [21:59] timr: ok, I am trying to run nodejs as an os daemon in couchdb. Couchdb is supposed to communicate with os daemons over stdio. The problem I am having is that the stdin events (data, end) are never hit in recent versions of node. It does however work in node version 0.5.7 [22:00] draginx1 has left the channel [22:00] ts__ has joined the channel [22:01] CoverSlide: sorry I can't help you with your stdin problem [22:02] themiddleman_itv has joined the channel [22:02] unomi has joined the channel [22:02] vguerra has joined the channel [22:03] broofa has joined the channel [22:03] spolu has joined the channel [22:03] coderarity: timr: wait, wiat [22:04] timr: I'm still here [22:04] coderarity: timr: 'The stdin stream is paused by default, so one must call process.stdin.resume() to read from it.' [22:04] fmeyer has joined the channel [22:04] shipit_ has joined the channel [22:04] coderarity: timr: is this the problem? [22:04] themiddleman_i-1 has joined the channel [22:04] xaq has joined the channel [22:05] timr: I am resuming the stream, so that should not be the issue. [22:06] timr: when I run my script from command line, the data event is being hit when I press the enter key in recent versions [22:06] coderarity: timr: are you sure that couchdb is actually sending it over to stdin? I mean, try sending stuff to stdin manually and see if it responds [22:06] timr: in version 0.5.7 (which was working) the data event is hit every key stroke [22:07] TooTallNate: timr: upgrade to 0.6.11 [22:07] tommyvyo has joined the channel [22:07] Destos has joined the channel [22:08] timr: TooTallnate: I was using that version today and I was having the same issue [22:08] rtgibbons has joined the channel [22:08] coderarity: timr: and stream.readable is true? [22:08] timr: yes [22:09] timr: it is readable when run from couchdb (logging over stout works) [22:09] coderarity: timr: like, you're listening to the error event to make sure nothing happens right? you're probably gonna have to give more information for anyone to be able to help [22:09] fuseelements has joined the channel [22:09] timr: The error event is never hit [22:09] timr: I am listening to it [22:09] coderarity: timr: like, console.log(process.stdin.readable); [22:10] timr: yes, the stream is readable [22:10] coderarity: timr: no errors, it just doesn't work? that's kind of hard to debug [22:10] michaelhartau has joined the channel [22:10] timr: yeah, that is why I am asking for help... [22:11] TooTallNate: you might need to gist some code [22:11] coderarity: ^ [22:12] timr: I think that node was originally calling the data event when the stdin stream recieved a flush, and in an update it was changed to wait for the return key [22:12] joshthecoder has joined the channel [22:12] sauerbraten has joined the channel [22:13] gr4yscale has joined the channel [22:13] timr: and I don't think couchdb sends a \n or \r when it flushes [22:13] TooTallNate: timr: that's not what's happening [22:14] mschneider has joined the channel [22:15] ramitos has joined the channel [22:16] StanlySoManly has joined the channel [22:17] whaley has joined the channel [22:17] TooTallNate: timr: also, wheres the documentation for how this couchdb thing is supposed to work? [22:17] timr: http://davispj.com/2010/09/26/new-couchdb-externals-api.html [22:17] timr: there is an example nodejs daemon at the bottom of the page [22:18] TooTallNate: so does the example work? [22:18] timr: it does in version 0.5.7 [22:18] timr: not in the latest [22:19] TooTallNate: well you haven't showed us any code yet [22:19] ramitos_ has joined the channel [22:19] TooTallNate: but i'm betting its cause you're not using the up-to-date process.stdin api [22:21] jimmy_ has joined the channel [22:21] jimmysparkle has joined the channel [22:22] dve has joined the channel [22:22] perezd_ has joined the channel [22:22] TheFuzzball: I'm trying to compile node-taglib on Lion and compilation fails. [22:23] ag4ve: are there any hardware access libraries? [22:23] gdbz has joined the channel [22:23] sorensen__ has joined the channel [22:23] joshsmith has joined the channel [22:24] TheFuzzball: I've installed taglib and its headers are in /usr/local/includes/taglib but node-waf chokes on fileref.h, which is definitely in there. [22:24] EyePulp has joined the channel [22:24] timr: I just test the code in the example at the bottom of the page I linked to. It also works in version 0.5.7 but not in version 0.6.11 [22:25] timr: if that is not using the stdin api correctly, then what changes need to be made? [22:25] TooTallNate: timr: you don't call process.openStdin() anymore [22:25] TooTallNate: you just access process.stdin directly [22:26] TooTallNate: and you must first call process.stdin.resume() [22:26] timr: I made those changes to my code, but I will make them to the example code now and test [22:27] mikl has joined the channel [22:28] ag4ve: ahha, found it: https://github.com/schakko/node-usb -- duckduckgo yielded nothing so i had to revert back to the goo [22:29] simenbrekken has joined the channel [22:29] epa_ has joined the channel [22:29] timr: I am getting the same error [22:31] sandfox has joined the channel [22:34] crewmoss has joined the channel [22:34] gorekee has joined the channel [22:35] TheFuzzball: Is there a good module for watching a directory for changes? [22:35] timr: here is the code that I am using, the data event and the end event are never hit in node version 0.6.11 [22:35] timr: http://pastebin.com/YE2uAMFb [22:36] TooTallNate: timr: do the log entries go through? [22:36] timr: they do [22:37] TooTallNate: timr: your code is very basic, i don't see any error [22:37] TooTallNate: therefore you may have hit a regression [22:37] dshaw_ has joined the channel [22:37] TooTallNate: you should open an Issue on github explaining your situation [22:37] gr4yscale has joined the channel [22:37] TooTallNate: including the code you just posted [22:37] timr: ok, I will. [22:37] enmand has joined the channel [22:38] timr: Thank you for looking into the issue for me [22:38] TooTallNate: np [22:38] TooTallNate: TheFuzzball: try using `fs.watch()` [22:38] TooTallNate: TheFuzzball: no external module needed! [22:38] TheFuzzball: Does it work on a directory tree? [22:38] chjj: i just accidentally named 2 different functions the same thing [22:39] TooTallNate: TheFuzzball: yes [22:39] chjj: that probably isnt good [22:39] TooTallNate: chjj: depends on the scoping :p [22:39] chjj: i need to get more creative with my function names [22:39] chjj: TooTallNate: they were both on the same prototype ;p [22:39] tttthet has joined the channel [22:39] mmalecki: chjj: prepend one with 'please' [22:41] chjj: Tab.prototype.resize = function() {}; Tab.prototype.pleaseResize = function() {}; [22:41] chjj: seems to work [22:41] jaha has joined the channel [22:41] TheFuzzball: TooTallNate Heh, it says that filename won't always be populated, and sometimes you'll only get event. That's thoroughly useless. Any cross-platform solutions? [22:41] mehlah_ has joined the channel [22:42] TooTallNate: TheFuzzball: so readdir() the dir afterwards and calculate the diff [22:42] CIA-102: node: 03isaacs 07v0.7.5-release * r73806b5 10/ AUTHORS : Add new authors - http://git.io/D1tWYg [22:42] CIA-102: node: 03isaacs 07v0.7.5-release * rd3b8372 10/ lib/querystring.js : lint, missed in QS speed merge - http://git.io/IUq6qQ [22:42] CIA-102: node: 03isaacs 07v0.7.5-release * ra913022 10/ (configure node.gyp): [22:42] CIA-102: node: Revert "build: support shared V8 properly" [22:42] CIA-102: node: This reverts commit 3d1b67064085ef486a69c2fc69d195dc35f4f50c. [22:42] CIA-102: node: Breaks build on windows. [22:42] CIA-102: node: https://gist.github.com/1895279 - http://git.io/cG_5dw [22:42] CIA-102: node: 03isaacs 07v0.7.5-release * rd384b8b 10/ (7 files in 6 dirs): (log message trimmed) [22:42] CIA-102: node: 2012.02.23, Version 0.7.5 (unstable) [22:42] CIA-102: node: * startup speed improvements (Maciej Małecki) [22:42] CIA-102: node: * crypto: add function getDiffieHellman() (Tomasz Buchert) [22:43] TheFuzzball: TooTallNate That's quite a good idea, as I already have methods to do that in place I'll give it a go :) [22:43] rauchg has joined the channel [22:43] TheFuzzball: Thanks [22:43] CIA-102: node: * buffer: support decoding of URL-safe base64 (Ben Noordhuis) [22:43] CIA-102: node: * Make QueryString.parse() even faster (Brian White) [22:43] CIA-102: node: * url: decode url entities in auth section (Ben Noordhuis) [22:43] CIA-102: node: 03isaacs 07master * ra913022 10/ (configure node.gyp): [22:43] CIA-102: node: Revert "build: support shared V8 properly" [22:43] CIA-102: node: This reverts commit 3d1b67064085ef486a69c2fc69d195dc35f4f50c. [22:43] CIA-102: node: Breaks build on windows. [22:43] CIA-102: node: https://gist.github.com/1895279 - http://git.io/cG_5dw [22:43] CIA-102: node: 03isaacs 07master * rd384b8b 10/ (7 files in 6 dirs): (log message trimmed) [22:43] CIA-102: node: 2012.02.23, Version 0.7.5 (unstable) [22:43] CIA-102: node: * startup speed improvements (Maciej Małecki) [22:43] CIA-102: node: * crypto: add function getDiffieHellman() (Tomasz Buchert) [22:43] CIA-102: node: * buffer: support decoding of URL-safe base64 (Ben Noordhuis) [22:43] CIA-102: node: * Make QueryString.parse() even faster (Brian White) [22:43] CIA-102: node: * url: decode url entities in auth section (Ben Noordhuis) [22:43] CIA-102: node: 03isaacs 07master * rc5cbc3d 10/ (11 files in 7 dirs): Merge branch 'v0.7.5-release' - http://git.io/mF4iMA [22:45] chjj: .. 1 [22:45] chjj: hmm [22:45] robi42 has joined the channel [22:46] M1l3n1um has joined the channel [22:48] shinuza has joined the channel [22:49] diva has joined the channel [22:49] tokumine has joined the channel [22:51] samsonjs has joined the channel [22:52] CIA-102: node: 03isaacs 07master * r59ecf2c 10/ (configure node.gyp): [22:52] CIA-102: node: Revert "Revert "build: support shared V8 properly"" [22:52] CIA-102: node: This reverts commit a9130222bd36ac2c5dd7ae560f02bb99569749a7. - http://git.io/1DeF5A [22:52] CIA-102: node: 03Nathan Rajlich 07master * ra84adad 10/ node.gyp : [22:52] CIA-102: node: Default node_shared_v8 to false. [22:52] CIA-102: node: Fixes #2818. - http://git.io/v94QYQ [22:54] isaacs: retweet every tweet! https://twitter.com/nodejs/status/172814789523931136 [22:54] lohkey_ has joined the channel [22:54] sh1mmer has joined the channel [22:56] chilts: yay, can't wait for v0.8 :) [22:59] krucial has joined the channel [22:59] deeprogram has joined the channel [22:59] nstinson has left the channel [23:00] mlochead has joined the channel [23:01] diogosnows has joined the channel [23:01] wbednarski has joined the channel [23:01] fr0zen has joined the channel [23:04] izepstan has joined the channel [23:04] tylerstalder has joined the channel [23:05] isao has joined the channel [23:05] StanlySoManly1 has joined the channel [23:05] briancra_ has joined the channel [23:05] eldios: hey guys.. little CSS-help =) I have this ---> http://jsfiddle.net/5nnwJ/3/ [23:06] eldios: I need to have the .description section in the first column and the .title and .image sections in the second column [23:06] eldios: any hint? [23:06] lz has joined the channel [23:08] felixhummel has joined the channel [23:09] jaw187: eldios: use Twitter Bootstrap or YUI Grids [23:10] chilts: or 960.gs :) [23:10] eldios: I'm actually using html5 boilerplate [23:10] lohkey has joined the channel [23:10] k1ttty has joined the channel [23:11] dubenstein has joined the channel [23:11] eldios: and it's nice itself.. [23:11] criswell has joined the channel [23:11] eldios: and as fornow this is the only difficutly I'm facing.. so leaerning a bit moe of CSS is not bad overall [23:11] eldios: =) [23:11] eldios: more* [23:14] sriley: anyone know what might cause npm to "ERR! Could not create /vagrant/node_modules/___express.npm", it created the directory - seems to be the unpack that fails. im only getting this during the chef execution, if i run it manually it works [23:16] sriley: eldios: float left the sections [23:16] dubenstein has joined the channel [23:17] sriley: tbh id put the frameworks away, they dont really help anything, better to just learn and do what you need without all the junk they do [23:18] Tobsn has joined the channel [23:19] joshgillies has joined the channel [23:19] eldios: sriley, thanks for some reasons it was not working before floating them left.. still I have different problems now, but maybe I can workaounr those too [23:19] eldios: thank you [23:20] eldios: thank you jaw187 and chilts anyway =) [23:20] eldios: I suppose I will give bootstrap another look [23:20] sriley: personally i wouldnt, its better to just learn what youre doing [23:22] isaacs: sriley: it should have printed out way more info. [23:22] tkaemming has joined the channel [23:22] isaacs: sriley: do you get an error code? [23:22] tttthet has joined the channel [23:22] sriley: UNKNOWN [23:22] isaacs: great! [23:22] isaacs: what version of node/npm? [23:22] isao has joined the channel [23:22] sriley: one sec ill paste the output [23:23] illourr has joined the channel [23:23] dubenstein has joined the channel [23:23] timoxley: eldios bootstrap is good. just use it unless you claim to be a great designer. unless you're doing design fulltime, you probably shouldn't be doing design. [23:23] sriley: http://pastebin.com/pVhx0Ka6 [23:24] eldios: yes timoxley time is indeed the main reason I would follow such a path [23:25] eldios: also not being a naturally talented designer could be another reason XD [23:26] criswell has joined the channel [23:26] dubenstein has joined the channel [23:26] timoxley: eldios don't worry. most people aren't; they simply don't realise it. [23:27] eldios: XD [23:27] AviMarcus: I suck at design. I think I know what looks decent but I have no friggin' clue how to make it. [23:27] Nss has joined the channel [23:27] sh1mmer has joined the channel [23:28] sh1mmer has joined the channel [23:29] eldios: AviMarcus, same here.. [23:30] VladGh has joined the channel [23:31] timoxley: eldios AviMarcus same issue also. best tactic is to not try. the more you try the more awful your design is going to look. [23:31] eldios: XD [23:32] BeTaMaX has joined the channel [23:32] timoxley: plain page with simple formatting > amatuer designer vomit [23:32] BeTaMaX: hi [23:32] BeTaMaX: �� [23:32] BeTaMaX: anyone in this room' [23:32] CoverSlide: no, nobody [23:33] BeTaMaX: could you support me with some java code? [23:33] addisonj has joined the channel [23:33] timoxley: haha [23:33] timoxley: BeTaMaX try #java [23:33] timoxley: BeTaMaX this is a channel for node.js i.e. http://nodejs.org/ [23:34] timoxley: BeTaMaX unless of course, you mean javascript, in that case try ##javascript [23:34] redir has joined the channel [23:35] perezd_ has joined the channel [23:36] al3xnull has joined the channel [23:36] BeTaMaX: i meant java actually [23:36] sriley: isaacs: did you see the paste? it might have expired now, let me know if you need me to paste it again. but from what i could see there wasnt anything in there that would really point to what could be wrong [23:36] cconstantine_: BeTaMaX, java and javascript (used in node.js) are dramatically different in many ways. try #java [23:37] blacktea has joined the channel [23:37] gerard0` has joined the channel [23:38] isaacs: sriley: i did not see the paste, no [23:38] isaacs: oh, http://pastebin.com/pVhx0Ka6 [23:38] jldbasa has joined the channel [23:39] sriley: yea it expired heres a new one with a longer expiration http://pastebin.com/nMeTY9Zb [23:39] levi501d has joined the channel [23:39] BeTaMaX has left the channel [23:40] davidbanham has joined the channel [23:41] whaley has joined the channel [23:41] ashishg has joined the channel [23:41] perezd has joined the channel [23:43] perezd_ has joined the channel [23:45] gerard0 has joined the channel [23:46] ashishg has joined the channel [23:46] jmoney has joined the channel [23:46] jmoney has left the channel [23:47] perezd has joined the channel [23:47] jmoney has joined the channel [23:47] jarek has joined the channel [23:47] sriley: isaacs: seems that https://github.com/isaacs/npm/issues/2070 has the same issue [23:48] isaacs: sriley: "still"? we're on 0.6.11 and node 1.1.1 now [23:48] isaacs: sriley: i think if you update, it might be fixed. [23:49] ningu: node 1.1.1? [23:49] isaacs: yeah [23:50] TooTallNate: he means npm 1.1.1 :p [23:50] ningu: is that different from node.js? [23:50] ningu: oh [23:50] ningu: ok [23:50] isaacs: oh, haha, i didn't even see the diff there [23:51] eeemsi: is it now possible to install npms behind a http proxy? [23:52] dreamdust has joined the channel [23:52] piscisaureus_ has joined the channel [23:53] etrece has joined the channel [23:53] copongcopong has joined the channel [23:53] iain_ has joined the channel [23:54] materialdesigner has joined the channel [23:54] isaacs: eeemsi: that hasn't landed in request yet. but you can set the registry to the http url to get through an http proxy, or use an https proxy [23:54] eeemsi: isaacs: interesting - going to try that tomorow [23:55] eeemsi: isaacs: hm… hadn't replicate your registry for while now - that was an error ;) [23:55] isaacs: yeah [23:56] isaacs: i want to get all the tarballs out ofthere and onto something else. [23:56] eeemsi: updated 2gb so far [23:56] isaacs: so you don't have to replicate down the content, just the metadata [23:56] isaacs: that'll let us scale up to 100k packages, i think [23:56] eeemsi: ^^ [23:56] eeemsi: something like that [23:56] whaley has joined the channel [23:56] eeemsi: it replicates and replicates and wont stop … [23:56] eeemsi: 10.4gb atm [23:57] sriley: ah that has indeed improved the error i now get an EPERM error [23:58] eeemsi: waiting for couchdb 1.2.0 to not get the invalid json errors any more [23:58] devaholic has joined the channel [23:58] naderman has joined the channel [23:59] CIA-102: libuv: 03Brandon Philips 07v0.6 * rfca18c3 10/ src/win/fs.c : [23:59] CIA-102: libuv: win: fs: handle EOF in read [23:59] CIA-102: libuv: in luvit after upgrade libuv from 243cfc to d3efef readSync started [23:59] CIA-102: libuv: failing. It seems that the code cleanup stopped handling EOF [23:59] CIA-102: libuv: Trivially reproduced with this [23:59] CIA-102: libuv: local fs = require('fs') [23:59] CIA-102: libuv: print(fs.readFileSync('foo.luvit')) - http://git.io/9aDiDQ [23:59] ningu: why is libuv called libuv? [23:59] sriley: though i dont quite get why its not permitted since it works when its not being run via chef, and according the the uid gid its the same user its running the command as [23:59] jaw187_ has joined the channel [23:59] Nuck: Ugh... Gitolite's environment for running hooks seems to change how Node is acting...