[00:00] janiczek has joined the channel [00:00] dgathright has joined the channel [00:01] jakl: What is the latest version that socket.io will work on? [00:01] mattp_ has joined the channel [00:01] paulwe_ has joined the channel [00:01] wadey has joined the channel [00:02] wadey has joined the channel [00:02] adrianmg has left the channel [00:03] bwinton has joined the channel [00:04] blup has joined the channel [00:06] blup: i was wondering, instead of obfuscating some client code, would it be a good idea to send the objects on('ready') with socket.io? [00:09] Dmitrijus: blup: sounds bad [00:09] SamWhited has joined the channel [00:09] jakl: The client gets the code either way right? [00:09] Dmitrijus: yep [00:09] innociv: http://pastebin.com/AbeSCusM Trying to use npm is giving me this odd message. [00:09] joshkehn has joined the channel [00:09] eldios: http://www.spreecast.com/events/nodejs-hangout-episode-00 <- real episode 00 of nodejs hangout :) come join me in a 5-10 minutes lean talk about nodejs [00:10] adnam has joined the channel [00:10] Dmitrijus: atlhough, i think it is just stupid to obfuscate code at all, viva la opensource or something [00:10] innociv: I just installed node, and npm, so this is my first time using it and it's never worked before. [00:10] ggg has joined the channel [00:10] jakl: so on 0.5.6, require('socket.io') gives an error Error: require.paths is removed. Use node_modules folders [00:11] normanrichards has joined the channel [00:11] ggg: anyone knows why i cant serve a static img file? if i type it path in the browser I get an invalid resource, but if i type a .css path it works.... [00:11] jakl: Is there a patch for socket.io so it doesn't use require.paths to include files? [00:12] wookiehang0ver has joined the channel [00:13] darshanshankar has joined the channel [00:14] isaacs has joined the channel [00:15] chrislorenz has joined the channel [00:15] replore_ has joined the channel [00:15] replore has joined the channel [00:16] eldios: who was the guest? :) [00:16] cliffano: anyone has any suggestion on a nifty way to deep merge two javascript objects? i.e. all properties will be combined into one object [00:16] adnam has joined the channel [00:16] svnlto has joined the channel [00:17] dgathright has joined the channel [00:18] innociv: Anyone? I can't find anything on google. :/ [00:18] innociv: Only my own paste comes up [00:18] dgathright_ has joined the channel [00:18] innociv: http://pastebin.com/AbeSCusM Trying to use npm is giving me this odd message. [00:18] joshkehn: innociv: What was your question? [00:20] bingomanatee1 has joined the channel [00:21] ecin has joined the channel [00:21] bingomanatee1: hi node [00:21] joshkehn: bingomanatee1: Hi [00:22] dgathright has joined the channel [00:24] innociv: joshkehn, it's right there with the paste. [00:24] innociv: npm is giving me gibberish and not actually installing things. [00:25] joshkehn: Yeah, I wasn't in the room for that I think. [00:25] joshkehn: Oh [00:25] isaacs: gist the gibberish [00:25] joshkehn: Found it. :o [00:25] CPartridge has joined the channel [00:25] Juan77 has joined the channel [00:25] innociv: I repeated it before your message. [00:25] joshkehn: Looks like escape codes. [00:25] joshkehn: What OS are you on? [00:26] innociv: debian [00:26] isaacs: innociv: that's not odd. it's just that you have a terminal that doesn't support unicode [00:26] isaacs: innociv: npm config set unicode false [00:26] innociv: ah [00:27] isaacs: looks like it installed socket.io in ./node_modules/socket.io [00:27] Skyec: is there any way to force js to be run in node? I just want to spit stuff out to the console, but i don't think this code is being evaluated [00:27] mjr__ has joined the channel [00:27] isaacs: seems pretty by the book, actually [00:27] Circlefusion has joined the channel [00:27] isaacs: Skyec: node -e 'console.log("foo")' ? [00:27] dgathright_ has joined the channel [00:27] innociv: http://pastebin.com/5z47BAbK Now. Seems ot be installed [00:27] cconstantine: is it normal for an event emitter to clear the listener list after a throw in a listener? [00:27] innociv: isaacs, i was getting an error saying socket.io wasn't installed when trying the socket.io example. [00:27] isaacs: innociv: there ya go [00:27] Skyec: isaacs: i mean, i've got code in my js file, but it doesn't seem to be getting called [00:28] innociv: But now it works. [00:28] isaacs: Skyec: gist the code [00:28] joshkehn: Skyec: Can you share the code? [00:28] jakl: what version of node are you useing for your socket.io setup? [00:28] isaacs: innociv: i'm teling you, though, you should totally get a unicode-supporting terminal font. it's way prettier :) [00:29] innociv: ACTION nods [00:30] Skyec: oh, I think I know what it is [00:30] cconstantine: When I create an EventEmitter and throw from within a listener I lose all current listeners: http://pastebin.com/7xm9dUKg is there anyway around this? [00:30] innociv: http://socket.io/#how-to-use In this first example, where should index.html be located? [00:30] Skyec: I'm using process.exit() to stop execution, but i don't think just kills node right off [00:32] Skyec: *i think that just kills node right off [00:32] rektide has joined the channel [00:33] norviller has joined the channel [00:33] apoc has joined the channel [00:33] tuhoojabotti has joined the channel [00:33] trupppOFF has joined the channel [00:33] freewil: Skyec, what are you trying to do? [00:33] Skyec: its okay. I understand what I'm trying to do is fundamentally flawed [00:33] freewil: mmmk [00:34] innociv: I assume it has to do with __dirname, but I don't see where that's set. [00:34] mjijackson has joined the channel [00:35] innociv: Oh it looks like the directory of the js script [00:36] Skyec: innociv: its a global [00:36] Skyec: and yes, that's what its set to [00:37] micheil has joined the channel [00:37] Skyec: did "print" get removed from the internal node debugger? [00:37] innociv: node ___.js runs a script. What do I use to stop running it? [00:38] bnoordhuis: innociv: ctrl-c? [00:38] eldios has joined the channel [00:38] joshkehn has joined the channel [00:38] ji0n has joined the channel [00:40] jmoyers: do people like jekyll? is there anything similar in node? [00:41] jmoyers: blog aware static site generator type thing? [00:41] jacobolus has joined the channel [00:41] jacobolu_ has joined the channel [00:41] AaronMT has joined the channel [00:42] ChrisPartridge has joined the channel [00:43] eldios: jmoyers, docpad [00:43] eldios: will review it in nodejs hangout episode 2 [00:43] eldios: had committed some code too =) [00:43] eldios: github.com/balupton/docpad [00:43] eldios: should be [00:44] CarterL has joined the channel [00:44] innociv: Neat. It works except I got "Failed to load resource" from "localhost" in the example. Odd to me, seeing as how I "app.listen(6969, "208.94.240.69");" [00:44] kurtzhong has joined the channel [00:44] innociv: http://208.94.240.69:6969/ [00:44] jmoyers: eldios nice [00:44] eldios: ;) [00:44] jmoyers: whats with this tab based indentation though :P [00:44] jmoyers: eyes bleeding [00:45] jmoyers: coffeescript i dont mind, but tabs?! [00:45] innociv: http://socket.io/#how-to-use example here, except I changed the listen as per my above message. [00:46] TooTallNate has joined the channel [00:46] eldios: jmoyers, tab == 2 spaces in my IDE / code editor (sublime) [00:46] blueadept has joined the channel [00:46] eldios: what's so wrong with that? =) [00:46] jmoyers: yeah, github tab = 8 spaces though [00:46] jmoyers: or some awful thing [00:46] simoon: I clicked it innociv, I did the same socket.io thing today :) [00:46] eldios: ARGH [00:46] innociv: Yeah? Any idea what my issue here is? [00:47] simoon: oh yep [00:47] simoon: :) [00:47] ditesh|cassini has joined the channel [00:47] CarterL has joined the channel [00:47] jtsnow has joined the channel [00:47] simoon: [00:47] simoon: will make it worksie [00:48] innociv: It actually seems to load socket.io.js fine. If you look in inspector and click that link, it comes up [00:48] simoon: oh [00:48] innociv: Maybe the issue is at "io = require('socket.io').listen(app) [00:48] innociv: "? [00:48] JaKWaC has joined the channel [00:49] jakehow has joined the channel [00:49] innociv: That makes the error "GET http://localhost:6969/socket.io/1/?t=1316566096897&jsonp=0 "... [00:50] micheil: perhaps 208.94.240.69:6969 != localhost:6969? [00:50] simoon: yeah [00:50] jacobolus has joined the channel [00:50] simoon: I think thats the only solution I can see too atm [00:50] simoon: but who knows [00:51] innociv: Yeah the problem is here: "" [00:51] simoon: because, I'm getting the file and its looking for my localhost [00:51] innociv: micheil, indeed it doesn't. [00:51] mike5w3c has joined the channel [00:51] innociv: But what is setting that line? How can Iget it to be the ip instead of localhost? [00:52] micheil: there's likely to be an host setting for socket.io, as to what that is, I wouldn't know. [00:54] innociv: Would really think they'd cover hosting outside of localhost in their example. [00:55] innociv: It's getting the port right, but is using localhost instead of the ip. [00:56] lz has joined the channel [00:56] lz has joined the channel [00:57] micheil: ACTION knows almost nothing about socket.io as far as configuring it. [00:58] stash1 has joined the channel [00:59] Twelve-60` has joined the channel [00:59] matyr has joined the channel [01:00] mandric has joined the channel [01:00] innociv: Also, what do I do about using an httpd for normal pages, and just having a socket.io connection for streaming data? I get 404 not found for socket.io.js in such a case. [01:00] nrajlich has joined the channel [01:00] innociv: I don't need the whole http and fs. I just need io. [01:01] neoesque has joined the channel [01:01] innociv: ah wait [01:01] micheil: innociv: if you just need socket.io, I'm curious as to why you'd want to go that route rather than outsource it [01:01] innociv: What do you mean by outsource it? [01:01] micheil: (disclaimer, I do work for a company that provide a hosted service doing exactly that) [01:01] micheil: as in, why do you want to use socket.io? [01:01] lz: hahaha [01:02] micheil: iz: ? [01:02] innociv: Because I have my own server already. Setting up node doesn't seem terribly difficult. [01:03] micheil: okay [01:03] micheil: innociv: have you read much about socket.io / scaling such a thing, or don't you expect any large amount of users? [01:03] davidwalsh has joined the channel [01:04] micheil: (two questions there) [01:04] innociv: Yeah I expect a lot of users. Plurk said they have 100k-300k with node.js. [01:05] micheil: okay [01:05] k1ttty has joined the channel [01:05] micheil: thanks for those answers, it's good food for thought. [01:05] jetienne has joined the channel [01:05] codely has joined the channel [01:05] innociv: I still don't get why it wants to make this localhost:80 instead of the ip and port number I'm telling it to bind to. [01:06] micheil: it'll likely be a client-side config option [01:06] codely: hey everyone. i'm at the point now where i'm super comfortable in node, writing lots of modules etc. i wanted an 'expert opinion' - if i have a form for a user, where the background data need not have a callback (I'm hitting an API HARRRDDDDD) regardless of async its going to need a little bit of time. [01:06] codely: should i just process.emit? to call my data parsing worker? [01:06] innociv: All that's on the client is that tiny bit of html. http://pastebin.com/VAxTcurV It appears that /socket.io/socket.io.js appaneds that [15:38] pyrotechnick: or at the start? [15:38] cying has joined the channel [15:38] DrMcKay: pyrotechnick: I'm actually not sure, I'm doing it for the first time [15:39] pyrotechnick: yeah i think its at the start bro [15:39] pyrotechnick: so like [15:39] DrMcKay: r04r: I run gitosis on my server, but it has no ui [15:39] Aikar: that test isnt equal [15:39] pyrotechnick: your first ones running a million times and making a fuckoff huge array [15:39] zastaph has joined the channel [15:39] pyrotechnick: and the second has to use the fuckoff huge array for its test [15:39] pyrotechnick: so it crashes [15:39] pyrotechnick: ill fix it for ya [15:40] DrMcKay: pyrotechnick: fixed [15:40] pyrotechnick: ok [15:40] DrMcKay: pyrotechnick: ah, sorry [15:40] Bonuspunk has joined the channel [15:40] pyrotechnick: a = a.concat(b); [15:40] eldar has joined the channel [15:40] pyrotechnick: thats still bad [15:40] guillermo has joined the channel [15:41] pyrotechnick: Array.prototype.push.apply(a, b); [15:41] pyrotechnick: thats extremely clever [15:41] DrMcKay: pyrotechnick: why? it's intended to result in a huge array [15:41] pyrotechnick: yeah theyre fine now [15:41] jakehow has joined the channel [15:41] DrMcKay: pyrotechnick: and yeah, I actually wanted to check if it's sneaky or just extremely stupid [15:41] pyrotechnick: it seems awesmoe [15:41] pyrotechnick: i think you're onto something [15:42] Glenjamin: DrMcKay: these 2 are not the same operation [15:42] r04r: DrMcKay: It looks cool, but I need something with a web interface. Thanks, though! [15:42] Morkel has joined the channel [15:43] pyrotechnick: Glenjamin: why not? [15:43] CoverSlide: concat returns a new array [15:43] Glenjamin: one modifies the array in place, the other makes loads of new arrays and assigns them to the same variable [15:43] Glenjamin: the latter should be much slower [15:43] kenperkins has joined the channel [15:43] pyrotechnick: yeah but [15:43] DrMcKay: r04r: there's some OSS thing like GH, give me a sec [15:43] pyrotechnick: everyone does it this way [15:43] pyrotechnick: this is how you always see it written [15:43] pyrotechnick: this is what they do [15:43] pyrotechnick: a = a.concat something [15:43] Glenjamin: i've never seen that [15:43] pyrotechnick: i see it daily [15:44] DrMcKay: Glenjamin, CoverSlide: that's the point, I wanted to compare the sneaky way and the stupid way [15:44] r04r: DrMcKay: So far I've looked at Gitorious, Indefero and Bonobo [15:44] DrMcKay: r04r: http://gitorious.org/ [15:44] DrMcKay: r04r: ah, yes :) [15:44] Fabryz has joined the channel [15:45] nuck: Dear Connect Mongo: Y U NO WORK [15:45] _kud has joined the channel [15:45] pyrotechnick: Glenjamin: i just looked through some popular libs and it's everywhere [15:45] knifed has joined the channel [15:46] Glenjamin: the semantics are different [15:46] Glenjamin: concat doesn't modify the original [15:46] stelleg has joined the channel [15:46] pyrotechnick: you're missing the point [15:46] CoverSlide: concat creates a copy of the original array. I would assume this is slower [15:46] pyrotechnick: intersects = intersects.concat( this.intersectObject( objects[ i ] ) ); [15:46] pyrotechnick: that is how it's always used [15:47] pyrotechnick: i know what you're saying, trust me, i get it [15:47] pyrotechnick: it's stupid, it's different, but it's what people do all of the time [15:47] pyrotechnick: even good developers [15:47] Glenjamin: pyrotechnick: but in the context of a called function... [15:47] halfhalo has joined the channel [15:48] pyrotechnick: look at this code [15:48] netlemur: is there something like an official guide or some guidelines for module development for node? [15:48] pyrotechnick: https://gist.github.com/e0fb3206757f2252981d [15:48] DrMcKay: well, even jquery uses concat [15:48] pyrotechnick: tell me it couldnt be made alot faster with the alternate method [15:48] pyrotechnick: i know [15:48] pyrotechnick: thats what i was saying [15:48] pyrotechnick: EVERYONE does it [15:48] pyrotechnick: always [15:48] Aikar: r04r: if you want self hosted, look at gitosis and then put git-web in front of it [15:49] halfhalo has joined the channel [15:49] DrMcKay: this thing seems pretty popular as well: http://www.google.com/codesearch#search/&q=Array.prototype.push.apply%20lang:%5Ejavascript$&type=cs [15:49] CoverSlide: I'm curious what's crashing chrome though [15:49] pyrotechnick: so its in jquery some places [15:49] smathy has joined the channel [15:49] pyrotechnick: CoverSlide: the test was broken [15:50] pyrotechnick: CoverSlide: its fixed now [15:50] Glenjamin: pyrotechnick: point taken, but unless it actually comes up as a hotspot, the point is moot [15:50] pyrotechnick: Glenjamin: this is a webgl engine mate [15:50] pyrotechnick: that code gets run 60 times a second at least [15:50] Glenjamin: then optimise it! [15:50] pyrotechnick: yep [15:50] Glenjamin: but that doesn't mean every use of concat ever has to be changed to array.prototype [15:50] pyrotechnick: i havent used that construct in mine yet, but i will patch the crap out of three.js [15:50] ph^ has joined the channel [15:50] Eber: When I run a synchronous thing inside my script, does that block all toher async stuff? [15:51] pjacobs has joined the channel [15:51] Glenjamin: Eber: yes [15:51] r04r: Aikar: Will do, thanks [15:51] Aikar: r04r: I use gitosis for self hosted repos, its soooooo easy to install, and requires no daemon (its all powered by git hooks... so sweet). I know you said web interface, git-web provides that but it is pretty basic [15:51] Eber: Glenjamin: uhm, right! thanks! [15:52] Aikar: r04r: you setup 1 user (pref git) on your box, install gitosis on it, and then your users authenticate with SSH keys, and able to control read/write permissions on a user/group level. [15:52] Glenjamin: you can use process.nextTick to release the loop every now and then if needed [15:52] Glenjamin: Aikar: r04r https://github.com/sitaramc/gitolite is like gitosis, but newer, better maintained and documented [15:53] Aikar: oh right i remember i was going to look at that [15:53] Glenjamin: it can also do more finely grained permissions [15:53] DrMcKay: wait, shit, what am I running? it could be gitolite actually [15:53] DrMcKay: give me a sec, I'm not sure now [15:53] stephank has joined the channel [15:53] DrMcKay: it's gitolite :/ [15:54] DrMcKay: r04r: ^ (I thought it's gitosis) [15:54] TheJH: that's another cool idea, something like gitorious/github in node :) [15:55] nuck has joined the channel [15:55] dylang has joined the channel [15:55] qbert65536 has joined the channel [15:55] AaronMT has joined the channel [15:55] Glenjamin: don't re-invent wheels that aren't broken :p [15:55] DrMcKay: TheJH: I want to write it [15:56] DrMcKay: TheJH: together with some sane issue tracking system [15:56] CoverSlide: NIH, buddy [15:56] Glenjamin: a better way of managing git hooks across projects / repositories... [15:56] MrNibbles: Glenjamin: dammit, I'm so close to my quantum tunnelling wheel…. [15:56] Glenjamin: that i'd be into [15:56] DrMcKay: CoverSlide: NIH? [15:56] Glenjamin: http://en.wikipedia.org/wiki/Not_Invented_Here [15:56] qbert65536: anyone go to non programming channels on freenode ? [15:57] DrMcKay: ah, I thought it was National Institute of Health [15:57] Vennril has joined the channel [15:57] DrMcKay: (obviously, not a native speaker) [15:57] Spion_ has joined the channel [15:57] CoverSlide: there are non-programming channels here? [15:57] sub_pop has joined the channel [15:57] Aikar: qbert65536: use to, till i moved them to my network :P [15:57] DrMcKay: wait, there are channels other than #node.js? [15:57] ryanmcgrath has joined the channel [15:58] Aikar: brb going upstairs to get chick-fil-a on site! /ujelly:P [15:58] TheJH: qbert65536, I'm reading in the channel of the german pirate party from time to time and I recently began reading what happens in the channel of a bunch of people in my town [15:58] FIQ|screen has joined the channel [15:58] DrMcKay: CoverSlide: sounds like NIH, but sure is gonna be fun :) [15:59] micheil: there is a git implementation in JS iirc. [15:59] qbert65536: Aikar, I am gellin :S [15:59] fson: DrMcKay: yeah, like isn't freenode named after node.js? ;) [15:59] qbert65536: /undo [15:59] DrMcKay: micheil: yes, there is [15:59] patcito has joined the channel [15:59] jarek has joined the channel [15:59] DrMcKay: fson: :D [16:00] DrMcKay: oh, btw, did you know that github doesn't only host node.js? [16:00] DrMcKay: I thought it was the only repo there [16:00] Margle has joined the channel [16:00] bshumate has left the channel [16:01] pyrotechnick: i seen some rails thing [16:01] pyrotechnick: is that like node? [16:01] pyrotechnick: it can scale? [16:01] DrMcKay: pyrotechnick: I think it's some support library for node.js [16:02] pyrotechnick: NoSQL? [16:02] DrMcKay: you mean, NodeSQL? [16:02] pyrotechnick: github.com/lol/harharhar [16:03] ttpva has joined the channel [16:04] scott_gonzalez has joined the channel [16:04] r04r: I might be missing some things, well I'm pretty sure I am, but why is nodejs considered to be extremely scaleable as opposed to other languages? [16:05] pizthewiz has joined the channel [16:05] DrMcKay: r04r: it's async? [16:05] jonrohan has joined the channel [16:05] broofa: isaacs I notice you've "starred" some of the modules on npmjs.org. Is that a public feature somewhere, or just something you're working on? [16:06] isaacs: broofa: TheJH wrote it actually, but there are a few things i'm working out with it [16:06] chrislorenz has joined the channel [16:06] CoverSlide: ACTION sees no stars [16:06] mklappstuhl has joined the channel [16:06] broofa: @CoverSlide http://search.npmjs.org/#/node-uuid "People who starred node-uuid" (e.g.) [16:06] mehtryx: question about stdio. I am trying to control stdout and stderr during a programs execution. I've tested this code: https://gist.github.com/1232478 and the stdout part works….the stderr simply seems to be ignored. Anyone able to tell me if its even possible without writing a c lib to override this? [16:07] gregmoreno has joined the channel [16:07] TomY has joined the channel [16:07] CoverSlide: oic [16:07] broofa: isaacs so can I assume we'll have a rating and commenting system for modules "real soon now"? ;) [16:07] isaacs: broofa: few weeks [16:07] isaacs: any day now [16:07] broofa: sweet! [16:07] isaacs: maybe tomorrow [16:07] CoverSlide: did you know that [16:07] CoverSlide: we are all made of stars? [16:07] isaacs: maybe it's already done!! [16:07] CoverSlide: people come together [16:07] aconbere has joined the channel [16:07] CoverSlide: people they fall apart [16:08] pyrotechnick: http://www.youtube.com/watch?v=XGK84Poeynk [16:08] r04r: DrMcKay: How does that contribute to scalability? I'm a bit clueless on that :/ [16:08] pyrotechnick: Symphony of Science - 'We Are All Connected' [16:08] DrMcKay: wait, aren't people made of little node.js servers connected with Hook.io? [16:08] CoverSlide: wow this water hasn't been touched in 2 weeks [16:08] CoverSlide: algae tastes good [16:08] pyrotechnick: you're a whale mate [16:08] pyrotechnick: of course it does [16:08] Frippe has joined the channel [16:09] pyrotechnick: your species is genetically predisposed to enjoy the taste of plankton [16:09] DrMcKay: r04r: it lets you break the c10k barrier [16:10] dgathright has joined the channel [16:10] DrMcKay: there was someone here explaining it by some shopping metaphor [16:11] FIQ|screen has joined the channel [16:11] pandeiro has joined the channel [16:11] tmcw has joined the channel [16:11] mklappstuhl: might be a basic question: how can I write the init function in a way that allows me to use "client" also in the later defined function: https://gist.github.com/08aa57d8e1a49b5e5237 [16:11] sveisvei has joined the channel [16:12] r04r: DrMcKay: I get how async helps, but I thought scalability meant putting multiple servers behind a load balancer or something. [16:12] CoverSlide: that would help, [16:12] CoverSlide: but asynchronous IO is a much more efficient way of doing it [16:13] r04r: CoverSlide: Gotcha [16:13] Aikar: r04r: generally does. i think its more meant to say its easier to build a scalable system with node than many other langs. since you can do many things much more effeciently in node [16:13] herbySk has joined the channel [16:14] CoverSlide: i mean you can still load balance multiple node servers, lots of people do that too [16:14] r04r: Aikar: Ah, that makes sense. I was just wondering if there was some node magic that I missed regarding this [16:14] akujin- has joined the channel [16:14] Aikar: using node doesnt magically make your app scalable, and other languages can be scalable. its just the effort to do so is diff per environment [16:14] slifty has joined the channel [16:14] Glenjamin: r04r: it's a combination of this: http://krondo.com/?p=1209 (the reactor pattern), and v8's JIT compilation [16:15] CoverSlide: classically, most servers choose to spawn a new thread per connection, but that's much more overhead [16:15] Aikar: r04r: nope, and node even has its own pitfall that you have to get around that you dont in other langs: its single threaded, so paralellizing work over multiple cores is a problem you have to solve (which is easy with many modules already written) [16:15] gazumps has joined the channel [16:15] Glenjamin: IPC is never "easy" [16:15] r04r: Aikar: CoverSlide: Glenjamin: Alright, that makes sense. Thanks! [16:16] Glenjamin: its fine, but its not "easy" [16:16] jakehow_ has joined the channel [16:16] espacia has joined the channel [16:17] levi: Node is opinionated about program structure in a way that makes a different set of things natural than in other programming environments. [16:18] ben_alman: when developing an npm module, how can i "install" the in-development version for global use, but so that it points to the in-development files? [16:18] r04r: I really like the event based-ness. It's great. [16:18] isaacs: ben_alman: npm link [16:18] Glenjamin: ben_alman: npm link [16:18] micheil: it is possible to catch a socket hang up error, right? [16:18] ben_alman: thanks! [16:19] pyrotechnick: micheil: like socket not writable? [16:19] pyrotechnick: you can try/catch the write or listen for 'end' and dont write after that [16:19] Swizec has joined the channel [16:19] micheil: I'm getting this error: { stack: [Getter/Setter], arguments: undefined, type: undefined, message: 'socket hang up' } [16:19] pyrotechnick: oh i dunno about that one [16:19] pyrotechnick: strange [16:19] micheil: when the remote server is closed. [16:20] micheil: normally you get a type or errno [16:20] micheil: which you can match against. [16:20] DrMcKay: micheil: process.on('unhandledException') or something like that [16:20] micheil: nup [16:20] DrMcKay: !doc link process [16:20] micheil: I can't do that. [16:20] dmkbot: http://nodejs.org/docs/latest/api/process.html [16:20] micheil: as this is a library I'm working on. [16:20] DrMcKay: micheil: ah, then I have no idea, sorry [16:20] Glenjamin: socket.on('error') [16:20] eee_c has joined the channel [16:21] micheil: hmm.. [16:21] Glenjamin: if an 'error' event is emitted without a listener, an exception is thrown instead [16:21] DrMcKay: uhm, my bot fails [16:21] gjohnson has joined the channel [16:22] DrMcKay: I'll fix that later [16:22] micheil: Glenjamin: yeah, I know that. However, the point is, there is an error listener [16:22] Glenjamin: oh [16:22] micheil: I'm trying to figure out where the "socket hang up" error comes from [16:22] Glenjamin: then check the stack of that error, cos something is "doing it wrong" [16:22] Glenjamin: error.stack [16:22] slifty has joined the channel [16:23] slifty_corsair has joined the channel [16:23] micheil: there is no stack. [16:23] Nuck has joined the channel [16:23] Glenjamin: error: { stack: [Getter/Setter], [16:23] DrMcKay: yeah, that's how socket hung up sockets actually look like :/ [16:23] Glenjamin: that's empty? [16:23] micheil: oh, wait, my bad. [16:23] DrMcKay: they have 2 or 3 instructions [16:23] micheil: :/ [16:23] micheil: Now i need to reproduce this bugger. [16:24] cjm has joined the channel [16:24] bartt has joined the channel [16:24] mklappstuhl: might be a basic question: how can I write the init function in a way that allows me to use "client" also in the later defined function: https://gist.github.com/08aa57d8e1a49b5e5237 [16:24] jslatts has joined the channel [16:24] skiz has joined the channel [16:25] skiz has joined the channel [16:25] Glenjamin: mklappstuhl: have init() accept a callback and call it with the new client [16:25] Eber: Guys, any ideas why this code is blocking even the server requests? http://pastie.org/private/ollrapduc4t9ulzladuh4a [16:25] Glenjamin: and have the methods be part of this client object, which probably wraps ldap's client [16:25] markdaws has joined the channel [16:25] artnez has joined the channel [16:26] artnez has left the channel [16:27] Glenjamin: micheil: is the socket hang up error coming from an http request? [16:27] micheil: yeah [16:27] micheil: got a backtrace, looking into it [16:27] micheil: looks internal to node.js [16:28] EyePulp: Baby got Backtrace? [16:28] micheil: hmm.. [16:28] euforic has joined the channel [16:28] Glenjamin: it appears a couple of times in https://github.com/joyent/node/blob/master/lib/http.js#L1570 [16:28] micheil: http.js line 1291 [16:28] Glenjamin: and in all cases it's emitted via the "error" event [16:28] EyePulp: My asynchronous code don't want none unless you got callbacks son. [16:29] micheil: yeah [16:29] Glenjamin: which node version micheil ? [16:29] micheil: and it doesn't have an error code. [16:29] micheil: (I'm on the latest stable) [16:29] micheil: hmm.. I really don't want to have to match against a string.. [16:29] deedubs has joined the channel [16:30] deedubs has joined the channel [16:31] context: glenjamin: that just happen. [16:31] TheJH: micheil, you're trying to find out where an error is coming from? [16:31] micheil: TheJH: I've found the error now, but it's a matter of handling it. [16:31] TheJH: micheil, ah, ok [16:32] Glenjamin: i'd submit an issue to github, and use string matching for now :s [16:33] mklappstuhl: Glenjamin: what do you mean by "call it with the new client"? (it would be awesome if you could fork the gist and write down some pseudo code that helps me to understand what you mean) [16:33] micheil: TheJH: the error that I'd expect is a ECONNRESET or ECONNREFUSED [16:33] micheil: TheJH: happens if the remote server closes the connection possibly while writing data [16:34] madsleejensen has joined the channel [16:34] c4milo: tjholowaychuk: how do I specify a host in superagent? just doing request.post('http://localhost:8002/foo')? [16:34] FIQ|screen has joined the channel [16:34] FIQ|screen has joined the channel [16:34] tjholowaychuk: c4milo yup [16:35] tjholowaychuk: i started some better docs [16:35] tjholowaychuk: http://visionmedia.github.com/superagent/ [16:35] tjholowaychuk: haven't covered all the node stuff yet though [16:35] c4milo: tjholowaychuk: I'm receiving a null response :( [16:35] tjholowaychuk: c4milo ah yeah the .end() signature for node is (err, res) [16:35] tjholowaychuk: i need to change the client to match [16:36] c4milo: tjholowaychuk: ahh perfect [16:37] lmorchard has joined the channel [16:37] c4milo: tjholowaychuk: on the other hand, for what I could see from mocha, It looks like the core functionality is there. I don't understand why you said yesterday it's in a 30% of progress. [16:37] tjholowaychuk: still lots to do if you look at the issue queue [16:39] Glenjamin: mklappstuhl: sorry, i don't really have time right now - and i'm not all that familar with ldapjs in particular [16:39] Glenjamin: basically you need to use callbacks instead of return [16:39] Glenjamin: so you can do stuff in order asynchronously [16:40] mklappstuhl: Glenjamin: I think I did not get that callback thing completely... thanks anyway for your help [16:40] wadey has joined the channel [16:40] mklappstuhl: I will try to read some more that helps me understand [16:41] irahgel has left the channel [16:41] c4milo: tjholowaychuk: I saw the issue queue [16:42] gr-eg has joined the channel [16:42] BillyBreen has joined the channel [16:43] cronopio has joined the channel [16:44] r04r: tjholowaychuk: Your docs is missing a quote (or has one too many) under "POST / PUT requests". ".data('{"name":"tj","pet":"tobi"})" [16:44] FIQ|screen has joined the channel [16:44] tjholowaychuk: doh [16:45] zomgbie has joined the channel [16:48] spolu has joined the channel [16:49] TooTallNate has joined the channel [16:49] slifty has joined the channel [16:49] FIQ|screen has joined the channel [16:51] spolu: Hi there, I have a small question about v8 GC: I have a large v8 heap (in memory search type of workload), I receive a few message from the network that do not generally impact any object of my heap but trigger a mark-sweep / mark-compact that takes forever. [16:51] Nuck|mobile has joined the channel [16:51] spolu: (> 1s) [16:51] spolu: I was wondering if it was possible to influence the GC behavior to reduce the number of mark-sweep / mark-compact to an acceptable level [16:52] spolu: or should I just implement my C++ module to put those object out of v8 heap? [16:52] DrMcKay: spolu: I'm not a V8 expert, but I believe it got fixed in very recent revision [16:52] Glenjamin: they're still working on a new GC afaik [16:52] spolu: yep [16:52] Glenjamin: spolu: if thats an option, i'd do so [16:52] Glenjamin: since that keeps you safe from the heap limit too [16:53] bnoordhuis: spolu: if possible, stay out of v8 [16:53] bnoordhuis: spolu: stuff like HandleScope can trigger the gc [16:53] spolu: Glenjamin: that's what I was thinking… kind of wanted to delay that dev… but I can't afford 1s block every few seconds [16:53] sivy has left the channel [16:53] spolu: bnoordhuis: what do you mean by HandleScope can trigger the gc? [16:53] Glenjamin: yeah, over about 600MB the GC cycles are a bit long [16:53] spolu: Glenjamin: yup :) [16:54] Glenjamin: we restart our process at > 550MB to keep our in-mem cache useful [16:54] nuck_ has joined the channel [16:55] bnoordhuis: spolu: say you have a c++ callback that declares a HandleScope variable [16:55] davidwalsh has joined the channel [16:55] bnoordhuis: spolu: when that variable goes out of scope, it may trigger a gc run [16:55] spolu: bnoordhuis: ok! but if it's out of heap, no pb with that. [16:56] eignerchris has joined the channel [16:56] bnoordhuis: spolu: correct [16:56] bengrue has joined the channel [16:57] madzak has joined the channel [16:58] madzak has left the channel [16:58] mykhal has joined the channel [17:00] malkomalko has joined the channel [17:01] DrMcKay: can I put > 1 tags in one line in Jade? [17:01] spolu: thanks bnoordhuis and Glenjamin! back to C++ :) [17:01] tjholowaychuk: DrMcKay not jade-style tags no, it has no way to know if you want literal text [17:01] tjholowaychuk: or a tag [17:01] tjholowaychuk: but you can have inline html [17:01] dshaw_ has joined the channel [17:01] karboh has joined the channel [17:02] tjholowaychuk: p foo #{name} bar [17:02] tjholowaychuk: whatever [17:02] DrMcKay: tjholowaychuk: OK, thanks [17:02] tjholowaychuk: or you can use ":" for "block expansion" [17:02] towski has joined the channel [17:02] tjholowaychuk: ul\n li: a(href='#') Contact [17:02] tjholowaychuk: vs [17:02] tjholowaychuk: ul\n li\n a(... [17:03] DrMcKay: ah! this! [17:03] DrMcKay: yeah, pretty much what I've been looking for :) [17:03] DrMcKay: thanks [17:03] Morkel has joined the channel [17:03] jergason_home has joined the channel [17:04] jtrudeau has joined the channel [17:05] sleek has joined the channel [17:06] jefftrudeau has joined the channel [17:06] N0va has joined the channel [17:06] hoodoos has joined the channel [17:06] postwait has joined the channel [17:06] AaronMT has joined the channel [17:07] tmcw has joined the channel [17:07] kmiyashiro: has anyone here built a web API? [17:07] langworthy has joined the channel [17:08] hoodoos: hello, guys! is there any good resource with an explanation of proper timeouts handling of http request? my problem here is that if I run 2 concurrent requests for same website it seem to produce only one socket for 2 http requests. but timeout event is fired for socket, not for request. so it's quite hard and not very straight forward to handle.. [17:08] hoodoos: kmiyashiro, what kind of web API you mean? [17:09] tjholowaychuk: kmiyashiro i think a lotttt of people have [17:09] kmiyashiro: so [17:09] kmiyashiro: I'm trying to figure out if it's easy to have a "fields" param [17:09] kmiyashiro: and then that fields param tells the API which fields to return in the response [17:09] cpetzold has joined the channel [17:09] kmiyashiro: and similarly, an "exclude_fields" param, to exclude certain fields [17:09] kmiyashiro: is that easy? [17:09] tjholowaychuk: like this https://github.com/lloyd/JSONSelect [17:09] tjholowaychuk: ? [17:09] kmiyashiro: and if so, how easy? [17:10] kmiyashiro: ehh [17:10] kmiyashiro: kinda [17:10] tjholowaychuk: not sure what you're referring to as fields [17:10] kmiyashiro: but I'd rather not filter it out [17:10] hoodoos: very abstract task you described :) [17:10] kmiyashiro: in JSON, they would be certain keys [17:10] kmiyashiro: xml, tags [17:10] kmiyashiro: I assume [17:10] kmiyashiro: it would just modify the db select call [17:11] kmiyashiro: but, not sure if it's that simple [17:11] kmiyashiro: or if content filtering is easier [17:11] kmiyashiro: for example, the NYTimes API lets you select which fields to return: http://developer.nytimes.com/docs/read/article_search_api#h2-responses [17:11] towski has joined the channel [17:12] hoodoos: well, i don't quite understand, you want some ready solution or what? [17:12] kmiyashiro: no, just wondering if anyone has done it [17:12] kmiyashiro: and if so, how easy was it [17:13] Nuck_ has joined the channel [17:13] vidi has joined the channel [17:13] _sorensen_ has joined the channel [17:14] diamonddog: had anyone ever tried flv streaming via nodejs ? [17:14] danielrmz has joined the channel [17:15] hoodoos: kmiyashiro, well, it doesn't sound difficult :) [17:15] kmiyashiro: haha… ok [17:15] StanlySoManly has joined the channel [17:15] nibblebo_ has joined the channel [17:15] kmiyashiro: so "very easy" [17:16] Nuck: Dear MJC WiFi: Y U SO LAGGY [17:16] Nuck: 20-second CTCP ping [17:17] hoodoos: kmiyashiro, question usually contains half of answer) [17:17] hoodoos: kmiyashiro, what kind of difficulites do you see in implementation of that stuff? [17:17] codely has joined the channel [17:18] DrMcKay: when I want to get all users, resource name should be /user or /users? [17:18] kmiyashiro: I don't see any difficulties… but someone said it would require re-architecting of an API [17:18] kmiyashiro: and I can't see how that's possible [17:19] ecin has joined the channel [17:19] codely: I wrote a fast module for twitter search, the limit is 15 pages of 100 results per page. Am I using http.request efficiently, to the best? the code seems kind of convuluted? http://pastebin.com/wzvfKChC [17:19] dgathright has joined the channel [17:19] hidden has joined the channel [17:20] codely: if someone could look at it that would be sweet :P [17:20] vidi has joined the channel [17:20] zemanel has joined the channel [17:21] gregpascale has joined the channel [17:21] fizx has joined the channel [17:22] Nuck|mobile has joined the channel [17:22] edwardmsmith has joined the channel [17:23] TheJH: codely, 8 spaces are a lot [17:24] adambeynon has joined the channel [17:24] codely: 8 space. [17:24] pyrotechnick: i did not know you could write ant scripts in js [17:24] pyrotechnick has left the channel [17:24] TheJH: codely, lines 13-17 could be expressed much shorter [17:24] codely: ? tabs are 4 on it ... [17:24] pyrotechnick has joined the channel [17:24] pyrotechnick: and import java classes [17:24] pyrotechnick: that is awesome [17:24] codely: TheJH: ideas? [17:25] Eber: Guys, I have some code, and it's blocking new requests somehow... could anyone try to help me? as far as I can see, everything is running async, it shouldn't block... Here is my code ::: http://pastie.org/private/ollrapduc4t9ulzladuh4a [17:25] TheJH: codely, `var resultsPagePath = nextPagePath || "/search.json?result_type=recent&rpp=100&q=" + term` [17:26] ctide: codely: https://github.com/mikeal/request would help clean it up a bit [17:26] pyrotechnick: that syntax highlighting is really nice on pastie [17:26] CIA-54: libuv: 03Ben Noordhuis 07master * r12d3680 10/ src/unix/tty.c : unix: fix warning: implicit declaration of function ‘isatty’ - http://git.io/i1x0gQ [17:26] codely: tx TheJH [17:26] codely: thx ctide [17:26] Eber: pyrotechnick: always use it :) [17:27] TheJH: codely, why the closure around it? every module automatically is inside a closure [17:27] TheJH: codely, what's the purpose of lines 31-34? [17:28] icebox has joined the channel [17:28] TheJH: codely, in line 38, you have more parens than necessary [17:28] hoodoos: is there anyway to emit error events on all requests attached to single socket? or i'm talking non-sense? :) [17:29] hoodoos: i guess close to it :) [17:29] Nuck|mobile has joined the channel [17:29] brion_ has joined the channel [17:30] TheJH: codely, instead of `nextPageStepSplit[2] + "=" + nextPageStepSplit[3] + "=" + nextPageStepSplit[4]`, just do `nextPageStepSplit.slice(2, 5).join('=')` [17:30] zomgbie has joined the channel [17:30] codely: sweet on parenths [17:31] codely: TheJH: I'm bad with regex, i know i just need to find the max_id and +1 it with a regex [17:31] codely: :/ [17:31] softdrink: voodootikigod: what are you using your serialport lib for? just curious [17:33] TheJH: codely, when working with querystrings, you should be using nodes querystring module anyway [17:33] joshkehn has left the channel [17:33] codely: hmm ok ... [17:33] codely: will do [17:33] codely: sweet [17:33] codely: got rid of half the code [17:33] codely: "holler [17:33] codely: " [17:33] bradleymeck has joined the channel [17:33] softdrink: challah! [17:34] webben has joined the channel [17:34] bradleymeck: isaacs is there a way to tell npm to install into sbin instead of bin for -g? [17:34] isaacs: bradleymeck: nope [17:34] isaacs: bradleymeck: why do you need to go into sbin? [17:34] max_dev has joined the channel [17:34] bradleymeck: init.d script calling it, not a big deal i can modify the path in init.d [17:35] qbert65536: anyone use authbind with node ? How do I stop thee damn thing [17:35] qbert65536: I just need to restart the app [17:35] ttpva has joined the channel [17:35] isaacs: bradleymeck: i guess sbin is the more "right" place for it, since it's a script, not a binary [17:35] jergason_home has joined the channel [17:36] dmkbot has joined the channel [17:36] m00p has joined the channel [17:36] bnoordhuis: isaacs: heresy! sbin is for statically linked binaries! [17:36] isaacs: oh, it's static bins? [17:36] bnoordhuis: yes [17:37] isaacs: hm. wonder why i thought the s was for script [17:37] bnoordhuis: the idea being that if you trash /lib and /usr/lib, the stuff in /sbin will still work [17:37] isaacs: anyway, most of the crap in bin is not actually binary [17:37] mikedeboer has joined the channel [17:37] bnoordhuis: no, it's a remnant of the past now [17:37] DrMcKay: bnoordhuis: can't it be dynamically linked against stuff in /lib? [17:38] bnoordhuis: DrMcKay: see above [17:38] isaacs: in that case, npm should really live in bin, not sbin [17:38] isaacs: since, if you destroy lib/node_modules, it's completely useless [17:38] SimonR has joined the channel [17:38] DrMcKay: bnoordhuis: I see, but I thought that it can be linked against /lib [17:39] bnoordhuis: DrMcKay: yes, well... i don't think there have been many unices that strictly observed that static linking rule [17:40] tmedema has joined the channel [17:40] bradleymeck: either way it is fixed by init.d script modifying the path [17:40] bnoordhuis: there are some who say that the s stands for system, so anything you need to maintain a system [17:41] reid has joined the channel [17:42] chapel: isaacs: you got more info on sleep? [17:42] DrMcKay: bnoordhuis: well, I'll stand by your point of view (everything you need to fix things) [17:42] isaacs: chapel: you should ask maxogden about that [17:42] DrMcKay: chapel: sleep is overrated [17:42] chapel: lol [17:42] DrMcKay: chapel: drink coffee [17:42] pyrotechnick: v [17:42] pyrotechnick: black v [17:42] isaacs: SLEEP is RESTful [17:43] chapel: o/ pyrotechnick [17:43] DrMcKay: lol [17:43] isaacs: (or at least, should be) [17:43] pyrotechnick: sleep is an antipattern [17:43] DrMcKay: gah, I've been having some pretty terrible nightmares lately [17:43] DrMcKay: one of them was actually funny [17:43] JorgeRuiz has joined the channel [17:43] jesusabdullah: It's been a while since I've had actual nightmares [17:43] pyrotechnick: tell us more... [17:43] DrMcKay: negative delta was chasing me and I had no idea about imaginary number [17:44] pyrotechnick: let's talk about our hopes and dreams [17:44] DrMcKay: so I wasn't able to solve it [17:44] pyrotechnick: that's messed up. [17:44] bnoordhuis: DrMcKay: nothing about your country being overrun by protestants? [17:44] DrMcKay: bnoordhuis: lol :D [17:44] DrMcKay: bnoordhuis: nope, not yet [17:45] chapel: I had a dream that my gf and I went to india [17:45] DrMcKay: bnoordhuis: (also, you're not up to date, we're more afraid of Muslims now) [17:45] pyrotechnick: did you two take acid? [17:45] pyrotechnick: with the beatles? [17:45] chapel: but some evil regime took over and was purging certain people from existence [17:45] bnoordhuis: DrMcKay: as is the rest of europe these days :/ [17:45] chapel: seemed almost like aliens or something [17:45] chapel: was really weird [17:45] tmcw has joined the channel [17:46] pyrotechnick: chapel let me analyse this for you [17:46] DrMcKay: pyrotechnick: I swear they were Rolling Stones! [17:46] pyrotechnick: oh dear [17:46] pyrotechnick: this isn't good [17:46] chapel: lol [17:46] pyrotechnick: were the purgers wearing loafers? [17:46] bnoordhuis: DrMcKay: your country has a lot of experience in beating back the muslims though [17:46] chapel: no, moccasins [17:47] pyrotechnick: well thats okay then [17:47] pyrotechnick: if theyd had been wearing loafers that means you're supergay [17:47] pyrotechnick: but now it's cool [17:47] caolanm has joined the channel [17:48] pquerna: is whomever wrote stata here. [17:48] pquerna: https://github.com/mjijackson/strata/blob/master/lib/session/cookie.js#L122-131 <- this is not what you want. you do not want a hash. you want an HMAC. kthx. [17:48] DrMcKay: bnoordhuis: we did it once or twice, IIRC [17:48] ctide: normally he is, mjijackson is his nick [17:49] pizthewiz has joined the channel [17:49] robotmay has joined the channel [17:50] gazumps856 has joined the channel [17:50] stonebranch has joined the channel [17:50] pyrotechnick: pquerna: you're an op so i assume you know but … https://github.com/mjijackson/strata/issues [17:51] else has joined the channel [17:51] pquerna: thats complicated [17:51] tbranyen: strata looks pretty [17:51] pquerna: irc is life, life is irc. [17:51] whitman has joined the channel [17:51] saikat has joined the channel [17:51] jetienne has joined the channel [17:51] pyrotechnick: submitting an issue is more complicated than randomly searching for the author [17:51] pquerna: i thought the chances of the author being in this channel were quite high [17:52] pyrotechnick: the chances of github notifying him about your issue is almost 100% [17:52] pquerna: heh [17:52] else has joined the channel [17:52] pyrotechnick: ALMOST [17:52] hoodoos: isaacs, excuse me, can I ask you a question? in case if can: i have two concurrent requests to same http resource, i see that they both have same socket(i guess they're getting queued up by agent) and I attach a timeout event to it. and when timeout happen how can I emit error/end event on both http requests? i know it sounds non-sense but can you prove me right or wrong? thank you! :) [17:52] pyrotechnick: it could failcorn [17:52] pyrotechnick: in case if you can't? [17:53] Ned_ has joined the channel [17:53] tjholowaychuk: if (err && strata.handleError(err, env, callback)) [17:53] tjholowaychuk: nice [17:53] tjholowaychuk: leaky abstractions ftw [17:53] pyrotechnick: yeah that's fail i've played with stuff like that before [17:53] pyrotechnick: you start of thinking it's an amazing idea [17:53] pyrotechnick: then you stop. and don't. and never again. [17:53] `3rdEden has joined the channel [17:54] grekko has joined the channel [17:54] pyrotechnick: better off with process.on 'uncaughtException' [17:54] pyrotechnick: and just throwing it lol [17:54] codely: how do i use a .git repo as a package.json req for npm? i had it in some older code but ...? [17:55] pyrotechnick: do u just use the tarball address for the version? [17:55] nibblebot has joined the channel [17:55] pyrotechnick: thats what u do to install it [17:55] devaholic: anyone know how to get the name of the schema in a mongoose plugin [17:55] saikat: I'm trying to figure out what transports are default and what transports are served by socket.io. On the client, the readme says the transports are ['websocket', 'flashsocket', 'htmlfile', 'xhr-multipart', 'xhr-polling', 'jsonp-polling'], but looking at the code, I see https://github.com/LearnBoost/socket.io-client/blob/master/lib/io.js#L119. [17:55] DrMcKay: codely: https://github.com/Relief-1/Relief1/blob/master/package.json#L16 [17:55] saikat: Similarly, on the server, the wiki says defaults are ['websocket', 'htmlfile', 'xhr-polling', 'jsonp-polling'] but in the code itself, I see https://github.com/LearnBoost/socket.io/blob/master/lib/manager.js#L34 [17:55] codely: sweet [17:56] devaholic: aheckmann perhaps :p [17:56] codely: ty [17:56] pyrotechnick: DrMcKay: that's sweet [17:56] nuck has joined the channel [17:56] DrMcKay: pyrotechnick: yeah, that's a pretty recent change [17:56] DrMcKay: gotta love it [17:57] pyrotechnick: can you do a tag or branch? [17:57] deedubs_ has joined the channel [17:57] cying has joined the channel [17:57] liar has joined the channel [17:57] sirdancealot has joined the channel [17:57] DrMcKay: pyrotechnick: yes, there's a way [17:57] pyrotechnick: sweet [17:57] DrMcKay: pyrotechnick: give me a sec [17:57] `3rdEden: you can link to any tar/gz you want [17:57] markdaws_ has joined the channel [17:57] tjholowaychuk: moar clones of connect [17:57] JaKWaC has joined the channel [17:58] pyrotechnick: the wsgi one? [17:58] pyrotechnick: i wouldnt say it's a clone [17:58] saikat: also, is there any issues with using xhr-multipart in socket.io? i don't see any references to xhr-multipart on the server in 0.8.4 [17:58] pyrotechnick: isn't it targeting rack and wsgi? [17:58] `3rdEden: saikat #socket.io [17:58] saikat: and none of the defaults seem to point to it (except for that one wiki on the clientside) [17:58] saikat: oh didn't know, thanks 3rdeden [17:58] JaKWaC has joined the channel [17:58] DrMcKay: pyrotechnick: I can't find it, but try git://github.com/user/repo/branch [17:59] stisti has joined the channel [17:59] DrMcKay: or maybe not, I'm not sure [17:59] pyrotechnick: i dont think git can do stuff like that [17:59] `3rdEden: DrMcKay pyrotechnick you can just link to a tar archieve: https://github.com/LearnBoost/socket.io/tarball/0.8.2 [17:59] `3rdEden: that would work [17:59] Country has joined the channel [17:59] aheckmann: devaholic the model has a modelName property which should be what you're looking for [18:00] `3rdEden: that would link to socket.io's 0.8.2 tag [18:00] pyrotechnick: well [18:00] pyrotechnick: it will fetch a checkout [18:00] pyrotechnick: not much point having git support then [18:01] pyrotechnick: i guess if you're not tracking HEAD there's no much point in git anyway [18:01] cying_ has joined the channel [18:01] chapel: yep [18:01] nuck: Ugh, express.compiler is pissing me off [18:01] chapel: easier to get tarball link [18:01] chapel: imo [18:01] pyrotechnick: i agree [18:01] pyrotechnick: still [18:01] pyrotechnick: tracking a branch would be dandy [18:01] chapel: sure, but its complicated [18:02] chapel: and could be annoying if something happened [18:02] pyrotechnick: you're complicated jacob [18:02] devaholic: aheckmann: sweet, checking it now [18:02] chapel: no, you're uncomplicated [18:02] EvRide has joined the channel [18:02] pyrotechnick: your face is uncomplicated [18:02] nuck: tjholowaychuk: Why is compiler so... painful? [18:02] tjholowaychuk: nuck it's going bye bye [18:03] nuck: tjholowaychuk: orly? [18:03] nuck: Any replacement or will I hafta do it myself? [18:03] tjholowaychuk: yeah, it's only useful for really simple stuff anyway [18:03] BillyBreen has joined the channel [18:03] pyrotechnick: so what's creationix smoking? https://github.com/creationix/luanode [18:03] eee_c1 has joined the channel [18:03] DrMcKay: pyrotechnick: he's just being awesome [18:03] nuck: What I want is a middleware that hooks requests through static [18:04] nuck: I don't want it to pre-parse, I want it to parse and cache [18:04] nuck: Like the template systems [18:04] mehtryx has left the channel [18:04] chapel: pyrotechnick: too much milk [18:04] chapel: :) [18:04] AvianFlu has joined the channel [18:04] pyrotechnick: i love how he raves on about a coherent, unsharded, unified community around node and then ports it to lua [18:05] chapel: well I think he is doing it to learn node better [18:05] chapel: and to learn lua [18:05] fermion has joined the channel [18:05] Aikar: (node SSL) error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol [18:05] nuck: And a better reason is *why not*? [18:05] pyrotechnick: yeah he can do what he wants i think its badass [18:05] Aikar: what the hell is that o.o [18:05] jetienne has joined the channel [18:05] pyrotechnick: i just find his behaviour interesting [18:06] baudehlo: It's a neat idea. Lua clearly needs more libraries. [18:06] devaholic: aheckmann: nope, i have a schema.pre and its undefined in parallel and serial [18:06] tjholowaychuk: pyrotechnick yeah i think he's just playing around [18:06] tjholowaychuk: there are already like 3 ports to lua [18:06] aheckmann: devaholic this.modelName ? [18:06] tjholowaychuk: (of node-ish stuff) [18:06] dgathright has joined the channel [18:06] devaholic: yeah, undefined... [18:06] langworthy has joined the channel [18:06] pyrotechnick: luanode + gmod [18:06] pyrotechnick: now you're talking... [18:06] bnoordhuis: Aikar: probably a http request to a https endpoint [18:07] devaholic: aheckmann: i'm using mongoose.plugin [18:07] reid has joined the channel [18:07] sepconcerns has joined the channel [18:07] bnoordhuis: baudehlo: working on it: https://github.com/bnoordhuis/lua-uv :) [18:07] aheckmann: devaholic k i'm checking [18:07] baudehlo: bnoordhuis: neat. Should I start porting Haraka? ;-) [18:08] JaKWaC_ has joined the channel [18:08] aheckmann: devaholic this.constructor.modelName [18:08] aheckmann: its only set on the Model [18:09] CoverSlide has joined the channel [18:09] louissmit_ has joined the channel [18:10] chrislorenz has joined the channel [18:10] devaholic: aheckmann: ahh, you rock [18:10] devaholic: thats the one [18:10] aheckmann: devaholic coo [18:10] devaholic: for some reason i did not even see constructor in my inspector [18:10] devaholic: noted, though [18:11] robi42 has joined the channel [18:11] devaholic: this plugin gives mongoose pub/sub support with redis and dnode [18:11] knifed has joined the channel [18:11] nibblebo_ has joined the channel [18:11] nuck: Ugh I wish LESS streamed [18:12] tjholowaychuk: cant you add less to the client [18:12] tjholowaychuk: and doing it that way [18:12] tjholowaychuk: (maybe?) [18:12] aheckmann: devaholic cool [18:12] nuck: tjholowaychuk: Client-side LESS? [18:12] tjholowaychuk: yeah [18:12] tjholowaychuk: not in prod [18:12] tjholowaychuk: obviously because that's a huge fail [18:12] nuck: tjholowaychuk: I'm talking about production :I [18:13] devaholic: so when mongoose saves, it hits a node proc and browser connected to a completely different machine with the same state [18:13] devaholic: pretty fun stuff [18:13] devaholic: now i can subscribe to models ;) [18:13] Aikar: why is node 0.4.12 printing node ssl errors now? [18:13] nuck: If I could stream LESS, I could probably set it as a way to render a page [18:13] nuck: Aaaactually [18:13] nuck: I wonder [18:13] nuck: ACTION has an idea [18:14] davidcoallier has joined the channel [18:15] broofa has joined the channel [18:15] Morkel has joined the channel [18:16] Aikar: isaacs: ryah how can i turn off these (node SSL) error outputs? [18:16] Aikar: 0.4.10 didnt do it, .12 is [18:16] cpetzold has joined the channel [18:16] bnoordhuis: Aikar: https://github.com/joyent/node/commit/6312e88#commitcomment-592796 [18:17] mklappstuhl has joined the channel [18:17] dexter_e has joined the channel [18:17] bnoordhuis: Aikar: upgrade to latest master, i fixed it in 44bebc0 [18:17] Aikar: bnoordhuis: can it be backfixed to 0.4? [18:18] Lemon|mbp has joined the channel [18:19] sylvinus has joined the channel [18:19] zomgbie has joined the channel [18:19] jmoyers has joined the channel [18:20] bnoordhuis: Aikar: probably yes [18:20] shanez has left the channel [18:20] Aikar: i'm seeing it on 0.4.x [18:21] bnoordhuis: Aikar: can you open an issue? [18:23] paulwe_ has joined the channel [18:23] cole_gillespie has joined the channel [18:23] Aikar: https://github.com/joyent/node/issues/1751 [18:24] Twisol has joined the channel [18:25] fly-away has joined the channel [18:25] her456 has joined the channel [18:25] jbpros has joined the channel [18:26] Twisol: I want to bundle an npm module with my project, so I put it in a subdirectory. How do I tell npm (via package.json) that it should use this subdirectory instead of fetching it from online? [18:26] Twisol: It only says you can use either a version string or a URL for the dependency, but basically I want to give it a path. [18:27] jhurliman has joined the channel [18:27] vampi-the-frog has joined the channel [18:27] vampi-the-frog has joined the channel [18:28] chapel: Twisol: just don't put it in there [18:28] devaholic: aheckman++ [18:28] v8bot_: devaholic has given a beer to aheckman. aheckman now has 1 beers. [18:28] chapel: though if its already bundled, and it matches the versions you set [18:28] chapel: it shouldn't do anything [18:29] Aiden has joined the channel [18:29] Twisol: chapel: I'm deploying to Heroku, which won't let me upload bundled modules in node_modules/ [18:29] Twisol: so I need to put it somewhere else and tell npm to install from there [18:29] chapel: umm, is it a custom module, not on npm, or github? [18:29] Twisol: Yeah. [18:30] chapel: put it somewhere heroku can access it by url as a tarball [18:30] stagas has joined the channel [18:30] chapel: and link to that in the package.json [18:30] sepconcerns has left the channel [18:31] markwubben has joined the channel [18:31] mendel_ has joined the channel [18:32] Twisol: chapel: Hm... I'm really not a fan of that. Would it be better to just add the path to require.paths? [18:32] cups has joined the channel [18:32] chance- has joined the channel [18:33] chapel: umm, you could bundle it in a different directory [18:33] erichynds has joined the channel [18:33] chapel: Im not well versed with heroku [18:33] ttpva has joined the channel [18:33] chapel: so I can't really help you with them specifically [18:33] cups: hey guys has anyone had any experience trying to compile css less files with the windows node.js executable? [18:34] Twisol: The salient point is that I can't upload the node_modules/ directory, so I need to find other ways to tell npm where to find my module [18:34] chapel: so heroku just wont let you? that seems odd imo [18:34] cups: I tried including node in my environment vars, then when I try node parser.js I get the following error: cannot find module 'less/tree' [18:34] devaholic: hey chapel [18:34] MatthewS has joined the channel [18:34] chance-: @Twisol it seems like heroku would handle the node_modules in the same manner that it handles gems [18:35] chance-: no? [18:35] deedubs_ has joined the channel [18:35] CoinOpeBoy has joined the channel [18:35] Twisol: In the guide it says to add node_modules to .gitignore, and "Make sure that all of your app�s dependencies are declared in package.json and that you are not relying on any system-level packages." [18:35] chance-: that makes sense [18:35] Twisol: chance-: I expect so, but Ruby has a way to specify local paths [18:35] chance-: so it does handle them like gems then [18:35] chapel: yo devaholic [18:35] devaholic: chapel: i wrote that dnode-session middleware we were talking about, and i went ahead and wrote a dnode-auth on top of it that works OOTB with mongoose-auth, if youre interested [18:36] temp01 has joined the channel [18:36] ericnakagawa has joined the channel [18:36] chapel: cool [18:36] chance-: hmmph [18:36] devaholic: you get access to the same vars that mongoose-auth puts into your express views basically [18:36] shanez has joined the channel [18:36] chapel: Im not interested, just cause Ive done it already, and don't have any outstanding dnode projects [18:36] devaholic: but like, reall time :P [18:36] cying has joined the channel [18:36] devaholic: oh okay [18:36] chapel: definitely put that on github if you haven't [18:37] devaholic: i might put it up on npm [18:37] chapel: and tell substack :) [18:37] devaholic: yeah [18:37] devaholic: im still testing it i think, but willdo [18:39] chapel: Twisol: not sure, ask isaacs [18:39] Twisol: chapel: Thanks [18:40] chapel: sorry I couldn't help [18:40] chrissanz has joined the channel [18:40] freeformz has joined the channel [18:40] Twisol: It's fine. If all else fails I can just throw my vendor/ subfolder into require.paths [18:40] AphelionZ has joined the channel [18:41] Twisol: the only thing npm does for me here is put the module in node_modules, which is already in require.paths [18:43] chance-: @twisol i came in late to the convo but what was the exact problem? Incase I run into it as well [18:43] mikedeboer has joined the channel [18:44] cups: anyone ever compile less with windows version of node.js? :) [18:44] Twisol: chance-: I have a module that's not on the npm repositories or on GitHub, and I need to bundle it with my app to host on Heroku [18:44] devaholic: Twisol: sounds like you should put it in lib/vendor and set up your require as ./lib/vendor and forget it was ever an npm module [18:44] Twisol: chance-: Heroku doesn't want you uploading a node_modules/ directory, so I can't just put it in there [18:44] Twisol: devaholic: That's what I was thinking, yeah. [18:44] Twisol: er [18:44] devaholic: thats the way to do it [18:44] Twisol: you mean directly require it as require("./lib/vendor")? [18:45] devaholic: plus the name of the module [18:45] chance-: yea.. that sounds like the right approach on my end as well [18:45] Twisol: eh, I was hoping to avoid the ./ [18:45] Twisol: hence adding vendor/ to require.paths [18:45] devaholic: i dont see any reason why you should avoid ./ [18:45] chance-: is there a way to specify additional repositories or sources in npm? [18:45] chance-: via a config? [18:45] Twisol: to me, it shows what code is part of the app and what isn't [18:46] chance-: i mean if there were.. you could do it that way [18:46] devaholic: thats why it's in vendor [18:46] Twisol: chance-: I looked, but apparently it's just version strings or URLs [18:46] devaholic: not everything is on npm [18:46] Twisol: chance-: and the URL has to point to a tarball [18:46] chance-: @twisol ah, i see [18:47] Twisol: oh, I remember why I needed to have npm do this [18:47] parshap has joined the channel [18:47] Twisol: it has native code [18:47] chance-: eek [18:47] Twisol: :D [18:47] nuck: tjholowaychuk: There any way to pass a variable into res.render inside a middleware, so I can set session to req.session on all pages? [18:47] tjholowaychuk: nuck yeah do res.local('session', req.session) [18:48] nuck: tjholowaychuk: Sweet, thanks :D [18:48] nuck: Figured out compiler, it's horribly hard to control [18:48] chance-: twisol, sounds like you need to setup some form of repo, wrap it up in a tarball, and point to it through it's url [18:49] Twisol: chance-: Yeah, but it's an internal package that I don't really feel like putting online. [18:49] tjholowaychuk: nuck it's just not flexible enough for things like less/stylus [18:49] tjholowaychuk: stuff like jade/markdown it's fine [18:49] devaholic: what is native code preventing you from doing? [18:49] Twisol: devaholic: It needs to be compiled when I push the project to Heroku [18:50] chrissanz has joined the channel [18:50] nuck: tjholowaychuk: It's a nice idea, and if you didn't have to set dest and src, it'd be perfect. [18:50] devaholic: i'm not exactly sure how heroku deployment works, but why cant you just require what you need as per usual? [18:51] chrissanz has left the channel [18:51] chance-: @devaholic they handle the bundling themselves [18:51] chrissanz has joined the channel [18:51] chance-: @devaholic you push via git, they build out everything, and walla [18:52] chance-: at least that's how it works with rails, I'm assuming the same applies to node [18:52] chapel: Twisol: I think your best option at this point, is to bundle it as a tarball, host it on a url you control, and put that into the package.json [18:52] chance-: i havent deployed a node app yet [18:52] chapel: not optimal [18:52] chapel: but you really don't have a choice if you have to use npm [18:52] markdaws has joined the channel [18:52] mike5w3c has joined the channel [18:52] colinclark has joined the channel [18:52] khrome_ has joined the channel [18:52] isaacs: why can't they handle it bundled in node_modules? [18:52] chance-: chapel: yea, I just told him that too but apparently he doesnt want to roll that way (understanably) [18:53] chance-: isaacs: because they build out the node_modules themselves, I'm sure [18:53] Twisol: isaacs: I don't know, but that's how it is... [18:53] freeformz has joined the channel [18:54] johnwards has joined the channel [18:54] zhami has joined the channel [18:54] chance-: have you tried giving a filepath as a url? ;x [18:54] Twisol: Seems like it would just be a lot easier to refer to a local module, both for Heroku and in general, if you could provide a relative path. [18:54] chance-: relative*' [18:54] dmkbot has joined the channel [18:55] csanz_ has joined the channel [18:55] Twisol: chance-: I looked at the npm code for installing dependencies, I don't think it supports that [18:55] csanz_ has left the channel [18:55] Twisol: it seems to check for a scheme [18:55] devaholic: twisol can you use git submodules with heroku? [18:55] isaacs: Twisol: no, it does not support that [18:55] bradleymeck: anyone know why in an init.d script start_daemon might not end/return? [18:55] tmcw has joined the channel [18:55] Twisol: devaholic: Not sure. If you could, it would still have to pull the submodule repo from somewhere online [18:56] devaholic: well you could put it up separately at least... or if it is on github [18:56] devaholic: dunno [18:56] Twisol: Yeah, that's the catch, I don't want to put it online :D [18:56] isaacs: Twisol: so, why not just put the code in your repo? not getting it... [18:57] isaacs: can you specify some kind of "on installation" script with heroku? [18:58] Twisol: isaacs: I don't think so. As far as I can tell, it just runs npm when you deploy to fetch your dependencies. [18:58] aron_ has joined the channel [18:58] Twisol: I could be wrong, of course. I just don't see it anywhere in the docs [18:59] Twisol: to summarize the issue again: I have a private package that contains native code, and I need to tell npm where to find it so that it can install and compile when Heroku does its thing [18:59] csanz_ has joined the channel [18:59] bergie has joined the channel [18:59] isaacs: Twisol: whati'm saying is, put the source in your repo. then, have a preinstall or something that cd's into there, and does `node-waf compile build` or whateverd [19:00] Twisol: A preinstall on the package.json of my app itself? [19:00] isaacs: sure, i mean, if heroku runs those. [19:00] isaacs: ask them :) [19:00] isaacs: "How do I set up my repo so that a script i specify will be run on installation?" [19:00] Twisol: Alright, I'll figure something out. Thanks :) [19:00] isaacs: np [19:00] Twisol: Quick question if you don't mind [19:00] Twisol: you maintain NPM, right? [19:00] isaacs: Twisol: if they're running `npm install`, then `preinstall` is the thing you want [19:00] isaacs: yeah, that's me :) [19:01] chance-: Twistol: if they give you a positive answer, I'd like to hear it.. pre-install scripts could be useful [19:01] Twisol: Is there any particular reason npm doesn't support local paths for dependencies? [19:02] chance-: because node is young and noone has run into this problem yet? or at least noone that has been willing to add it/request it? :) [19:02] aron_ has joined the channel [19:02] ttpva has joined the channel [19:03] Twisol: Hah. It's just a pretty useful thing to have. I use it a lot in Ruby when I'm working on gems. [19:03] Fabryz: how to make a
in jade? [19:03] jergason_home has joined the channel [19:04] Twisol: chance-: also someone did request it on the mailing list, based on a google search. Didn't see any responses. [19:04] Fabryz: these. damn. anchor. tags. [19:04] astropirate has joined the channel [19:06] Me1000 has joined the channel [19:06] Twisol: isaacs: actual question asked above, in case you missed it [19:06] isaacs: yeah, mostly because of the hazards of publishing things that aren't available off of your machine [19:07] isaacs: Twisol: i would be ok with doing it, if we could have teh read-json.js also add a "private": true when it finds local file deps [19:07] Twisol: What if it was always relative to the app folder? [19:07] isaacs: if it's in your app folder, then why not just make it a bundledDependency, and not have to install it at all? [19:08] Twisol: isaacs: does that assume that it's in .node_modules? [19:08] isaacs: put it in node_modules/foo, "dependencies": {"foo":}, "bundleDependencies":["foo"] [19:08] isaacs: yeah [19:08] Twisol: Can't do that because of Heroku [19:08] isaacs: what's wrong with that? i do that a lot [19:08] dgathright_ has joined the channel [19:08] isaacs: does heroku forcibly remove your node_modules folder? [19:08] Twisol: it doesn't want you to push your .node_modules folder up [19:08] isaacs: really? [19:08] Twisol: I think it does, but it's been a while since i tried [19:08] Twisol: I can try again quick and get back to you [19:08] isaacs: did you list it as a bundled dependency? i mean, maybe they're using npm to build a tarball or some such [19:09] isaacs: in which case, the node_modules will fall out, if it's not explicitly bundled. [19:09] Twisol: No, I don't think I did [19:09] avalanche123 has joined the channel [19:09] isaacs: but if they're actually removing it, i can't help you [19:09] Twisol: Unless you supported relative paths ;) [19:09] Aikar: isaacs: did you change npm to require listing everything in bundledDependencies in order to not get deleted on package creation for publish? my node_modules dir is disappearing which had other files in it, ie stuff not listed as dependency... [19:09] Twisol: I'll get back to you about what Heroku does, at any rate [19:10] isaacs: Aikar: yes, anythingin node_modules that is not in bundleDependencies will be left behind [19:10] Aikar: :/ why? [19:10] isaacs: Aikar: the problem is that people were accidentlaly publishing a lot of garbage. [19:10] isaacs: express was coming along with dnode and crap [19:10] isaacs: node_modules should be for dependencies. dependencies should be listed, and explicitly bundled if desire. [19:11] isaacs: *desired [19:11] bartt has joined the channel [19:11] Aikar: so i have a node_modules/mylib.js that symlinks to ../mylib.js so i can do require('mylib') in examples/tests instead of relative (makes for more reasonable code that people will be using...) how would you define that? [19:12] cconstantine_ has joined the channel [19:12] NetRoY has joined the channel [19:12] Twisol: aikar: require.paths? [19:12] isaacs: Aikar: have your tests not do that, or run your tests with NODE_MODULES=$PWD/.. node test/foo/ [19:12] Aikar: Twisol: no thats not a solution :P [19:13] isaacs: Twisol: yeah, deprecated [19:13] Aikar: ugh.. can we have that "feature" turned off by config? [19:13] isaacs: Aikar: to set the require.paths, set the NODE_PATH env var [19:13] maligree has joined the channel [19:14] isaacs: (not NODE_MODULES as i wrote above, that's a typo) [19:14] Aikar: i dont wanna go through all that crap [19:14] isaacs: Aikar: so put it in your bashrc [19:14] Aikar: my npm publish should work just the same as my tarball/git checkout [19:14] isaacs: Aikar: dude, just list it as a dependency, and bundle it. [19:14] isaacs: git and npm are different tools, they aren't 100% the same, and shouldn't be. [19:14] Aikar: thats what i sorta asked, was how would i define that to make it not be deleted [19:15] isaacs: "bundleDependencies": ["mylib"] [19:15] isaacs: cd node_modules; ln -s .. mylib [19:15] isaacs: that *may* cause crazy recursion... [19:15] Aikar: would still like a config option to disable that though [19:16] Twisol: D: [19:16] isaacs: the standard way to do this is to have your tests load modules using relative paths. [19:16] isaacs: it's less important that tests *look* like user code, and more important that they *act* like user code. [19:16] isaacs: you want to be 100% sure that your tests are loading the code you think they are, or else they're not valid tests. relative paths. super reliable. [19:17] Aikar: isaacs: more so meant it for examples [19:18] isaacs: oh, ok [19:18] Twisol: isaacs: Wait... Based on this discussion, npm wipes out node_modules/ when installing? [19:18] Aikar: when publishing [19:18] Twisol: Ahh. [19:19] isaacs: Twisol: except for the entries in bundleDependencies [19:19] Twisol: So not really related to the Heroku thing. Rats, it would've made sense :S [19:19] isaacs: when publishing, installing globally, or anything else that adds a folder to the cache folder [19:20] isaacs: hm.. seems this isn't very well documented. [19:20] isaacs: it should live at http://npmjs.org/doc/pack.html probably [19:20] isaacs: http://npmjs.org/doc/json.html#bundledDependencies [19:21] tylerstalder has joined the channel [19:22] mklappstuhl: anyone here who would explain to me how I should use callbacks to use the client i created in an init function in other functions?: https://gist.github.com/08aa57d8e1a49b5e5237 [19:24] creationix has joined the channel [19:26] anveo has joined the channel [19:27] JaKWaC has joined the channel [19:28] idefine has joined the channel [19:28] eee_c has joined the channel [19:29] eee_c2 has joined the channel [19:30] Bonuspunkt has joined the channel [19:30] rmzg: mklappstuhl: Black magic [19:30] Frippe has joined the channel [19:31] sub_pop has joined the channel [19:31] eldios has joined the channel [19:32] eee_c1 has joined the channel [19:32] robotmay has joined the channel [19:33] madzak has joined the channel [19:34] ryanmcgrath has joined the channel [19:37] Twisol: isaacs: If I have a bundled dependency in node_modules, and it has native code, will that ever be compiled? Does NPM just ignore bundled dependencies or does it just skip the fetch step? [19:37] Aikar: Twisol: no, youll need to make a makefile for your project that executes that modules build steps [19:37] mjr_ has joined the channel [19:38] Twisol: so we're back to having to do something extra because you can't specify a local directory. :( [19:38] Aikar: easiest thing to do is look at the package.json step that it lists for npm to run to build it, and paste that exact line (with updated paths etc) into your make file [19:38] Twisol: Aikar: When is the makefile run? [19:38] sirdancealot has joined the channel [19:38] Aikar: yours or theirs? [19:38] zemanel has joined the channel [19:39] isaacs: Twisol: dude, just put it in your package, and run the things to build it [19:39] chance-: Twisol: better question is if you can alter the makefile on heroku [19:39] Aikar: youll then need to define a command in YOUR package.json to run 'make' [19:39] chance-: my guess is no [19:39] isaacs: "scripts": { "preinstall": "cd ./thing; make" } [19:39] Twisol: hm, k [19:39] Aikar: or do that if its simple like that [19:39] ttpva has joined the channel [19:39] isaacs: or "scripts": { "preinstall" : "cd ./thing; node-waf configure build" } [19:39] isaacs: and then put it in "thing" and require("../thing/blah.node") [19:40] Twisol: Sorry, I'm just not used to having to deal with this sort of thing. [19:40] davidcoallier has joined the channel [19:40] isaacs: git add thing; git commit -m "add thing"; git push heroku [19:40] isaacs: Twisol: the npm integration is a little slicker on no.de, imo [19:40] isaacs: Twisol: but no.de is in the middle of being put out, having caught on fire yesterday [19:40] CoverSlide: :o [19:41] chance-: uhm [19:41] chance-: you mean like the building? [19:41] chance-: :| [19:41] chance-: cause if so, i may be waiting for my beta invite for a minute [19:41] arpunk has joined the channel [19:41] jamescarr has joined the channel [19:41] jesusabdullah: I'm going to pretend that's a literal fire [19:42] jamescarr: sigh... vows is driving me crazy at the moment ;) [19:42] isaacs: jesusabdullah: nah, just a program that did a thing it should'nt've done [19:42] CoverSlide: ACTION has a fire in his pants [19:42] dreamdust has joined the channel [19:42] jamescarr: what's the point of test coverage if you're just going to wind up with an error that says "Asynchronous Error" and doesn't tell you which of your 500 tests cases caused it [19:42] jamescarr: ARGH [19:43] DrMcKay: jamescarr: but hey, you know it's an error! [19:43] chance-: at least it caught it? :/ [19:43] SubStack: ACTION instruments jamescarr  [19:43] ctide: that's better than vows just hanging [19:43] jamescarr: ctide, oh that's a fun one too :) [19:43] ctide: that's my main gripe w/ vows [19:44] jamescarr: I just forked it, going to go rummage around in it and see if I can make it display the error better [19:45] davidascher has joined the channel [19:45] eee_c has joined the channel [19:47] madsleejensen1 has joined the channel [19:47] chance-: thats the spirit :) [19:48] Wa has joined the channel [19:49] devongovett has joined the channel [19:49] Twisol: isaacs: I just pushed a bundled module with native code to Heroku and it seems to work. I actually didn't have to add that pre-install script hook, it did it on its own [19:49] isaacs: sweet [19:50] Twisol: Yep. Thanks for the help! [19:50] isaacs: yeah, install runs a rebuild on bundled deps, since they're almost always not built for the same arch [19:50] maushu has joined the channel [19:50] isaacs: np :) [19:50] Twisol: Eeexcellent [19:50] mikedeboer has joined the channel [19:50] isaacs: but i don't know what heroku does, just what npm does [19:50] isaacs: not sure exactly how they're using it [19:50] dgathright has joined the channel [19:50] Twisol: Presumably it just does an npm install, because that's what the output seems like [19:50] tobie has joined the channel [19:50] isaacs: kew [19:50] Twisol: thanks again [19:50] isaacs: that'd be the easy way :) [19:51] josdehar has joined the channel [19:51] tobie has joined the channel [19:51] fizx has joined the channel [19:52] Twisol: chance-: Pinging you because you asked. Bundled deps work on Heroku just fine. [19:52] fizx has joined the channel [19:52] aheckmann has joined the channel [19:52] chance-: howd you do it? [19:52] chance-: you just pushed it up with modules? [19:53] Twisol: chance-: I threw it into node_modules, added it to the bundlesDependencies array in package.json, and pushed. [19:53] DrMcKay: isaacs: just a friendly notice, glob doesn't compile with v0.5 [19:54] Twisol: chance-: since it had a wscript in it, npm automatically compiled it when it was pushed up, so that's all I had to do [19:54] bradleymeck has joined the channel [19:54] isaacs: DrMcKay: i know [19:54] bradleymeck: anyone know how to change a child-process' name? [19:54] jesusabdullah: isaacs: http://en.wikipedia.org/wiki/Lp0_on_fire [19:54] jesusabdullah: >:D [19:55] jesusabdullah: I kinda want to get this error [19:55] jesusabdullah: and have to put out a burning inkjet [19:55] jesusabdullah: wouldn't that make a regreat story? [19:56] Tiller has joined the channel [19:56] nuck: ugh querying Mongoose for count and it just doesn't want to work [19:56] Tiller: Hi! [19:56] DrMcKay: !doc link process#title [19:56] dmkbot: http://nodejs.org/docs/latest/api/process.html#process.title [19:56] DrMcKay: bradleymeck: just like you would do it there ^ ? [19:57] polyrhythmic has joined the channel [19:57] bradleymeck: DrMcKay yes but on a child [19:58] yozgrahame has joined the channel [19:59] CoverSlide: `tis impossible [19:59] blup has joined the channel [19:59] Aikar: protip: dont run npm install in a php project completely unrelated to node [19:59] isaacs: haha [19:59] madsleejensen1 has left the channel [19:59] Aikar: was like "wtf, i know i just installed that module" [19:59] CoverSlide: har har har ahr [20:00] Tiller: Guys, I've a problem with socket.io. On the client side, I use : socket.emit('data', { ... }); And on the server side : socket.on('data', function (data) {... }); The communication is working 2 or 3 times, (I've some console.log in both sides). But after, it stops to work. I'm sending, but I don't receive anything =/ Any idea? [20:00] nuck: Mongo, Y U NO START [20:01] CoverSlide: Mongo only pawn in game of life [20:01] stagas has joined the channel [20:01] fizx has joined the channel [20:02] Aikar: anyone know of an ini parsing module that supports multiple depth levels/numeric index arrays? [20:02] paulwe has joined the channel [20:02] joshthecoder has joined the channel [20:02] Aikar: iniparser doesnt do multi depth :( [20:02] Twisol has left the channel [20:03] stagas has joined the channel [20:03] CoverSlide: wow [20:03] Aikar: or i know, on process start i can execute a child process that parses the ini and converts it to json...! :( trying to keep this products configs simple and consistent with the rest of our stuff (which uses ini files) [20:03] paulwe has joined the channel [20:03] CoverSlide: at that point, I would just switch to json [20:04] DrMcKay: bradleymeck: sorry, I thought it's possible by modyfing env, but turns out it's not [20:04] bradleymeck: ini is a pretty simple format im sure a patch to iniparser wouldnt take as long as the maintainance of doing odd things [20:04] Aikar: im at json now, but the sys admins who manage production wont be happy if im like "yo, your use to ini files, now use json" [20:04] Aikar: so im trying to 'downgrade' to ini files [20:04] wookiehangover has joined the channel [20:05] nuck: lol is it bad that I just started Mongo with the setting "logpath=/dev/null" in a development environment? [20:05] DrMcKay: bradleymeck: but wait, you could have a simple node.js wrapper script, which takes title as a first parameter, then fires target process with the rest of arguments and pipes stdin, stderr and stdout [20:05] Aikar: bad? no, not that useful if you have problems/ yeah [20:05] Aikar: i guess since my current configs are simple depth anyways its ok for now [20:08] nuck: Fuck yeah just made some epic progress in this :D [20:08] DrMcKay: bradleymeck: no, actually, that won't work :< [20:09] nuck: Got my basic layout into Node and working, and then got logins and registrations set up [20:09] avalanche123 has joined the channel [20:09] AvianFlu has joined the channel [20:09] TheJH: nuck, how much data do you want to store in mongo? [20:09] nuck: TheJH: Why? [20:10] TheJH: nuck, because you'll get crashes if you have much data in a mongodb on a 32-bit-system [20:10] nuck: TheJH: I know [20:10] nuck: This is just development [20:10] nuck: I'm on my laptop for now [20:10] Ned_ has joined the channel [20:10] chance-: TheJH : I didn't, thanks for letting me know :) [20:10] nuck: When I move to production I'm 64 bit [20:11] patcito has joined the channel [20:11] Tiller: Any idea for my socket.io problem? [20:12] Aikar: TheJH: "Crashes" ? [20:12] tmcw has joined the channel [20:12] mikedeboer has joined the channel [20:12] Aikar: i havent heard of mongo straight up crashing [20:12] stagas has joined the channel [20:12] salazr_ has joined the channel [20:13] Aikar: and mongos memory is really tricky to figure out. itll report insane virtual sizes, but thats not how much memory its actually using. the OS controls that memory [20:13] Me1000 has joined the channel [20:13] Aikar: so you can store more than 4gb of data on a 32bit system [20:13] `3rdEden: brb swapping Macs [20:13] Aikar: just the OS will start hitting disk more often [20:14] TheJH: Aikar, I put maybe a few gigabytes of data into a mongo db using node (on a 32 bit system). after a while, mongo crashed. [20:14] BillyBreen has joined the channel [20:14] Aikar: TheJH: you report it to 10gen? [20:14] Aikar: it shouldnt crash, that would be a bug [20:14] TheJH: Aikar, it's a known, inherent problem [20:14] patcito has joined the channel [20:15] TheJH: Aikar, http://blog.mongodb.org/post/137788967/32-bit-limitations "32-bit MongoDB processes are limited to about 2.5 gb of data. This has come as a surprise to a lot of people who are used to not having to worry about that. The reason for this is that the MongoDB storage engine uses memory-mapped files for performance." [20:16] Aikar: ah ok i think i remember something about that, and its more to do with running out of address space [20:16] davida_ has joined the channel [20:17] Aikar: curious, why was your OS 32bit anyways? lol [20:17] EyePulp: so let's say I want traffic coming into a url "/" to display the content of a page sourced elsewhere "www.foo.com/some/page/" This is something I can accomplish with a simple node based proxy, no? [20:17] astropirate has joined the channel [20:17] TheJH: Aikar, because the install CD was 32bit :D [20:17] plpl has joined the channel [20:18] AvianFlu_ has joined the channel [20:18] Aikar: why you buy a 32bit cd? lol [20:18] Aikar: or d/l w/e OS your on [20:18] TheJH: Aikar, what, buy? [20:18] stagas has joined the channel [20:19] TheJH: Aikar, it was a fedora-gnome3-livecd, and I just installed from it without thinking about 64 bits or so [20:19] Aikar: TheJH: "the CD" physical media makes me think of getting from a store, which would usually = buy :P [20:19] `3rdEden has joined the channel [20:19] Aikar: ah ok [20:19] TheJH: Aikar, no, CD-RW :D [20:19] _root_ has joined the channel [20:19] tauren has joined the channel [20:19] Aikar: i think the last things ive ever really burnt was ubuntu cd's lol... [20:20] CoverSlide: ACTION is all usb [20:20] Aikar: dont have any spare 'you can format me' usb drives to use for OS installs [20:21] Aikar: hell my one i kept on keychain has crumbled... i need to replace that [20:21] Aikar: ive superglued it so much [20:21] CarterL has joined the channel [20:22] Aikar: keep* forgot it was my paypal token i took off due to it being broke (dead bat?), not my usb [20:24] elijah has joined the channel [20:24] TheJH: I still have a floppy drive in my PC :) [20:24] CoverSlide: I use grub + map + chainloader for my isos [20:24] TheJH: although I didn't use it for months... [20:24] CoverSlide: on my 250GB usb drive [20:24] CIA-54: node: 03Fedor Indutny 07new-tty-binding * r86f8701 10/ lib/_debugger.js : [debugger] fix 'debug> connecting...', fixed autostart (XXX figure out why it wasn't working in some cases), fixed highlighting for first line of module's code - http://git.io/S5Sxng [20:24] CIA-54: node: 03Fedor Indutny 07new-tty-binding * r13c0156 10/ lib/_debugger.js : [debugger] optimize context's properties initialization, make 'list' a function, not a getter - http://git.io/i-verg [20:24] CIA-54: node: 03Fedor Indutny 07new-tty-binding * rf1135b9 10/ lib/_debugger.js : [debugger] shorten break message - http://git.io/m_sbnQ [20:26] lazyshot has joined the channel [20:26] aho has joined the channel [20:27] Vertice has joined the channel [20:28] CIA-54: libuv: 03Igor Zinkovsky 07file_watcher * r1e0757f 10/ (9 files in 5 dirs): windows: file watcher - http://git.io/YFVNlw [20:28] CIA-54: libuv: 03Ben Noordhuis 07file_watcher * r2a1c32a 10/ (6 files in 3 dirs): linux: implement file watcher API - http://git.io/xZMwxQ [20:28] githogori has joined the channel [20:28] CIA-54: node: 03Fedor Indutny 07master * r3148f14 10/ lib/_debugger.js : [debugger] fix 'debug> connecting...', fixed autostart (XXX figure out why it wasn't working in some cases), fixed highlighting for first line of module's code - http://git.io/3lvlXQ [20:28] CIA-54: node: 03Fedor Indutny 07master * r79fd1f7 10/ lib/_debugger.js : [debugger] optimize context's properties initialization, make 'list' a function, not a getter - http://git.io/q0KUIA [20:28] CIA-54: node: 03Fedor Indutny 07master * r8efe7a8 10/ lib/_debugger.js : [debugger] shorten break message - http://git.io/zrQp_A [20:28] nuck: And fuck yeah sessions are working [20:29] Aikar: "fuck yeah seaking"* [20:29] freeformz has joined the channel [20:29] bingomanatee_ has joined the channel [20:29] gazumps has joined the channel [20:30] bingomanatee_: off topic … anyone know how to get notify working on MacOS? [20:30] bingomanatee_: (way off topic) [20:31] sharksauce has joined the channel [20:31] hornairs has joined the channel [20:31] bergie has joined the channel [20:33] jergason_home has joined the channel [20:33] mykhal has joined the channel [20:33] metellus has joined the channel [20:33] kmiyashiro: anyone have experience with pusher vs pubnub? [20:35] aron_ has joined the channel [20:36] davidascher has joined the channel [20:36] robhawkes has joined the channel [20:36] davida_ has joined the channel [20:36] AvianFlu_ has joined the channel [20:37] davidascher has joined the channel [20:37] jamescarr: is there someway to see unprocessed events or intervals/timeouts that havent been stopped? [20:37] AvianFlu_: save the timeouts and intervals somewhere and keep track of them yourself maybe? [20:38] eee_c has joined the channel [20:39] jamescarr: that's what I do, it's not me... got some vows specs hanging and suspect it's due to unfired events [20:39] jamescarr: no way of knowing though :( [20:39] AvianFlu_: oh man, I had one of those this past weekend... the tests were bombing out cause a callback wasn't being called [20:39] tmcw has joined the channel [20:39] LuckySMack has joined the channel [20:39] jamescarr: yeah, pisses me off [20:40] broofa has joined the channel [20:40] apoc has joined the channel [20:40] tuhoojabotti has joined the channel [20:40] trupppOFF has joined the channel [20:40] link has joined the channel [20:40] tjholowaychuk: jamescarr yeah it's a pretty annoying problem, it's futile to try to shut down all timers, connections etc in every lib [20:40] stash1: chasing the same problem too [20:40] tjholowaychuk: the best would be just to have the test runner know how many tests you have, when it's done just force the exit [20:40] stash1: i'd love to see (maybe even at the libev level) what events are pending [20:40] jamescarr: tjholowaychuk, yeah, or at least just timeout after a period and tell you which tests did not complete [20:41] eboyjr has joined the channel [20:41] tjholowaychuk: that too [20:41] tmcw has joined the channel [20:41] bingomanatee_: jamescarr: given the fluid nature of node, a custom event broker would be your best bet for tracking events. [20:41] LuckySMack: are there any apps that work with node fo automated test/build the app when comitted and pushed? [20:41] DrMcKay: LuckySMack: pre-commit git hook? [20:42] storrgie has joined the channel [20:42] chance-afk has left the channel [20:42] _root_ has joined the channel [20:43] LuckySMack: i was thinking post commit. say I push my changed to github, and i have a callback to my server which when triggered, pull the changes for the proper branch and runs the tests and any builds that need to be done. [20:43] sharksauce has left the channel [20:44] DrMcKay: LuckySMack: maybe Hudson can do that? [20:44] LuckySMack: Ok, i'll check into it. [20:44] LuckySMack: thanks. I didn't think it would have support for node. [20:45] DrMcKay: LuckySMack: well, I haven't tried that, but I think that you can just give it a command it should run [20:46] DrMcKay: LuckySMack: also, nodeunit has a Hudson reporter or something like that [20:46] wadey_ has joined the channel [20:47] LuckySMack: Ok, I'm looking up people using the two together now. Found an article on it. Iv'e never used hudson and don't have a lot of experience with any continuous integration software yet. I'm trying to get into it. [20:47] ako has joined the channel [20:47] LuckySMack: ill check that out too. thanks. [20:48] DrMcKay: LuckySMack: :) [20:48] LuckySMack: found this for getting setup http://www.carbonsilk.com/node/deploying-nodejs-apps/ [20:49] nuck has joined the channel [20:49] nuck has joined the channel [20:50] LuckySMack: Hrmm, hudson is now jenkins. A couple projects at work use jenkins. Though none of the apps im on. I feel the need to ask around... [20:50] DrMcKay: LuckySMack: I wouldn't bother with setting up git manually, use Gitolite [20:50] LuckySMack: yea i have that already on my server [20:52] dandean has joined the channel [20:53] darshanshankar has joined the channel [20:53] EyePulp: I want to have a node service act as a proxy for various urls on the backend. a request to www.somenodeservice.com/ would display foo.com/some/ugly/deep/link/ content. I assume this is a proxy, but I'm new to this. [20:54] EyePulp: I'm using https://github.com/nodejitsu/node-http-proxy to work out the basics, but don't see an easy way to make it grab full urls on the back side. [20:54] jscheel has joined the channel [20:55] EyePulp: I'm probably failing some basic understanding here. [20:56] catb0t has joined the channel [20:58] tmcw has joined the channel [20:58] DrMcKay: catb0t <3 [20:59] Cromulent has joined the channel [21:00] DrMcKay has joined the channel [21:00] AvianFlu_: EyePulp, can you explain what you're trying to achieve in more detail? [21:00] AvianFlu_: i.e. help me understand what you want your end result to look like [21:00] catb0t has joined the channel [21:01] tokumine has joined the channel [21:01] jetienne has joined the channel [21:02] stagas: EyePulp: you can check req.headers.host [21:03] gerard0 has joined the channel [21:03] nerdy_ has joined the channel [21:04] EyePulp: AvianFlu: We want to re-display content buried in a corporate parent site at the base of some host urls. eg. for foo.com/ we would show the content in fooparentcompany.com/some/deep/link/ [21:04] Morkel has joined the channel [21:05] EyePulp: stagas: I see that, but how do I get the reverse proxy to go down a different url path for the content it's receiving? [21:05] stagas: EyePulp: check req.headers.host and req.url, rewrite the url and proxy the request [21:05] sonnym has joined the channel [21:05] catb0t has joined the channel [21:05] EyePulp: stagas: ah… I think I followed that [21:05] stagas: EyePulp: req.url = '/some/other/path'; proxy.proxyRequest(...) [21:06] jefftrudeau has joined the channel [21:06] EyePulp: stagas: proxy.proxyRequest requires a host & port - would I need to grab them out of the destination url then? [21:07] stagas: EyePulp: yeah the target host port [21:10] cpetzold_ has joined the channel [21:11] mehtryx has joined the channel [21:11] zeade has joined the channel [21:12] cpetzold__ has joined the channel [21:12] daleharvey: what is the equivalent of $.extend({}, obj1, obj2) in nodejs? (merges both object properties into one object) [21:13] tmcw: daleharvey: you can use underscore, which is nodejs compatible and provides _.extend [21:13] tmcw: http://documentcloud.github.com/underscore/#extend [21:13] tmcw: same behavior exactly afaik [21:14] sleek has joined the channel [21:14] deadman87 has joined the channel [21:15] descipher has joined the channel [21:17] kbni has joined the channel [21:21] ggg has joined the channel [21:21] ggg: anyone has spare time to view the following gist https://gist.github.com/1233353 [21:21] Ned_ has joined the channel [21:21] ggg: thx [21:21] isaacs has joined the channel [21:23] abjorn has joined the channel [21:23] daleharvey: tmcw: yeh cheers, figured it would be in v8 but underscore is nice anway [21:23] thalll has joined the channel [21:27] zhami has joined the channel [21:27] daleharvey: ggg: whats up with it? [21:28] robertfw has joined the channel [21:28] daleharvey: oh wait, serves an invisible image, what does the http headers say its returning, try a random png of google and see if that works [21:28] jonrohan has joined the channel [21:29] _kud has joined the channel [21:29] ronnieboy has joined the channel [21:30] slifty has joined the channel [21:31] boltR has joined the channel [21:31] eronius has joined the channel [21:32] Ned_ has joined the channel [21:32] MooGoo: so [21:33] MooGoo: anyone know of an sqlite3 module that works with .5? [21:33] davidcoallier has joined the channel [21:33] jamescarr: is there some standard logger that socket.io uses under the hood? [21:34] fangel has joined the channel [21:34] sechrist has joined the channel [21:35] max_dev has joined the channel [21:35] brolin has joined the channel [21:36] broofa has joined the channel [21:36] apoc has joined the channel [21:36] tuhoojabotti has joined the channel [21:36] trupppOFF has joined the channel [21:38] jldbasa has joined the channel [21:39] ayo has joined the channel [21:40] dreamdust: @jamescarr: You can bind your own stuff in the socketio logger… take a look at this comment https://github.com/LearnBoost/socket.io/pull/380#issuecomment-1965853 [21:41] ap3mantus has joined the channel [21:42] normanrichards has joined the channel [21:43] caolanm has joined the channel [21:46] nuck has joined the channel [21:47] LuckySMack: DrMcKay, Hey, I found this. If your'e interested in knowing. build integration setup for node. https://github.com/ryankee/concrete [21:48] DrMcKay: LuckySMack: hey, that's pretty neat [21:48] LuckySMack: yea. fairly simple too [21:48] kbni has joined the channel [21:49] DrMcKay: LuckySMack: I will look into it, I may or may not be writing some code hosting using node.js now :D [21:49] BillyBreen1 has joined the channel [21:49] aheckmann has joined the channel [21:50] aron_ has joined the channel [21:50] normanrichards has joined the channel [21:50] LuckySMack: DrMcKay, cool. I looked into a few like nodester and webbynode and a few others. I prefer the full control of my own VPS. [21:55] nuck: Just set up localno.de [21:55] nuck: And dear god [21:55] nuck: It is awesome [21:55] flexd has joined the channel [21:56] Juan77 has joined the channel [21:56] tylerstalder has joined the channel [21:58] arpunk has joined the channel [21:58] daleharvey: is there a standard logging mechanism for node? [21:58] Oi has joined the channel [21:59] daleharvey: I would prefer rotatable logs, definitely require seperate logging levels [21:59] DrMcKay: daleharvey: console.log? [21:59] tjholowaychuk: just use logrotate [21:59] tjholowaychuk: and whatever node logger you want [22:00] DrMcKay: :wq [22:00] DrMcKay: damn you, Alt-Tab :/ [22:01] mrryanjohnston: atl-tab + vim commands [22:01] mrryanjohnston: :o ? [22:01] daleharvey: yeh using logrotate sounds sensible, any suggestion on "whatever logger", Id like to keep stdio as is, just a console.log / console.error / console.warn that goes to disk [22:01] dominictarr has joined the channel [22:01] DrMcKay: mrryanjohnston: yup, vim running in one console and irssi in second, why? [22:02] CrankyMonkey has joined the channel [22:02] mrryanjohnston: DrMcKay: i'm out of practice of using alt-tab hehe [22:02] mrryanjohnston: sorry [22:02] tjholowaychuk: daleharvey 2>&1 >> my.log [22:02] DrMcKay: mrryanjohnston: :D [22:03] DrMcKay: mrryanjohnston: xmonad user here, I believe this is the keystroke I use, like, every 10 seconds [22:03] mbrevoort has joined the channel [22:03] daleharvey: that doesnt give me levels, will look aroud, cheers [22:04] tjholowaychuk: daleharvey https://github.com/visionmedia/log.js [22:04] tjholowaychuk: is about as simple as they come [22:04] mrryanjohnston: DrMcKay: ah, I havenm't tried xmonad yet! dwm here. I just don't use alt-tab :S [22:04] tizzo-afk has joined the channel [22:04] ceej has joined the channel [22:05] EyePulp: stagas: any idea how to get a debug printout of the req/res objects after proxy.proxyRequest() has its way with them? [22:05] tobie has joined the channel [22:06] stagas: EyePulp: what kind of debug [22:06] normanrichards has joined the channel [22:07] EyePulp: well, I'd like to figure out what it's doing to the request object once it gets it - I get a different response from one of the servers I'm hitting when going through the proxy versus browsing directly. [22:07] toxico has joined the channel [22:10] davidbanham has joined the channel [22:10] AvianFlu has joined the channel [22:10] teknopaul has joined the channel [22:11] Brandon_R has joined the channel [22:11] Brandon_R: hello [22:11] schwab has joined the channel [22:14] stagas: EyePulp: it repeats the request as a new client to the target server and pipes the response back to the original res object [22:15] stagas: EyePulp: so I guess you can attach events to the res object as usual [22:15] nerdy_ has joined the channel [22:16] \ask has joined the channel [22:16] stagas: EyePulp: I'm not sure what you're trying to do [22:17] EyePulp: stagas: I think I follow what you mean - there shouldn't be an real modification the proxy is adding to the request. [22:17] diamonddog: is there a good tutorial on how to create nodejs cpp modules ? [22:17] \ask: hi everyone - using express.js, I set res.local('user') in my code, but it's not available in the view. If I set res.local('user2') it is. [22:18] \ask: is this expected? [22:18] EyePulp: stagas: I'm just running into a different response from a proxy based request versus a browser based request. [22:19] AvianFlu: EyePulp: can you gist your code? [22:20] \ask: oh, doh -- just realized I had a dynamicHelpers setup for user. Gah! [22:20] stagas: EyePulp: it adds a few headers for the original client info as those change since it's a new request, like remoteAddress, but the rest should be the same [22:21] mraleph has joined the channel [22:21] EyePulp: AvianFlu: I'll need to clean out a lot of company stuff - so probably not yet. when I get more desperate… probably will become a gist [22:21] AvianFlu: I understand [22:22] AvianFlu: you have to change req.headers.host if you're going to a remote server... that may help you [22:22] AvianFlu: or not [22:22] EyePulp: Though the process of cleaning out usually solves a lot of things… =) [22:23] marcello3d has joined the channel [22:23] EyePulp: AvianFlu: you magnificent bastard… it was the req.headers.host [22:24] Lemon|mbp has joined the channel [22:24] AvianFlu: EyePulp: very common problem. I could have helped you sooner if I wasn't having so many net problems >.< [22:24] Swizec has joined the channel [22:25] EyePulp: awesome [22:25] EyePulp: thanks AvianFlu & stagas -- I'm closer now! [22:26] EyePulp: now to figure out which res.on event to use - is there a 'complete' ? [22:26] EyePulp: ACTION is looking for docs that outline all the response events... [22:26] random123 has joined the channel [22:27] igl1 has joined the channel [22:30] Isaiah has joined the channel [22:30] tokumine has joined the channel [22:30] isaiah_ has joined the channel [22:31] CIA-54: libuv: 03Igor Zinkovsky 07master * r1e0757f 10/ (9 files in 5 dirs): windows: file watcher - http://git.io/YFVNlw [22:31] CIA-54: libuv: 03Ben Noordhuis 07master * r2a1c32a 10/ (6 files in 3 dirs): linux: implement file watcher API - http://git.io/xZMwxQ [22:32] normanrichards has joined the channel [22:33] nibblebot has joined the channel [22:34] sechrist has joined the channel [22:35] necrodearia has joined the channel [22:35] liveink has joined the channel [22:36] mandric has joined the channel [22:36] nforgerit has joined the channel [22:37] mquin_ has joined the channel [22:37] Brandon_R: hello guys [22:41] liar has joined the channel [22:42] skiz has joined the channel [22:42] spolu has joined the channel [22:45] brianseeders has joined the channel [22:47] wadey has joined the channel [22:47] Swizec has joined the channel [22:48] Brandon_R: anyone here [22:48] MooGoo: ill kill u [22:49] bnoordhuis: such hostility [22:49] Brandon_R: lol [22:49] Brandon_R: so any new projects guys? [22:50] MooGoo: yar, the project to break all the modules my poor bot relies on [22:50] MooGoo: I think they call it node .5 or something [22:50] stagas has joined the channel [22:51] MooGoo: and to find a topic for this chan [22:51] Sorella has joined the channel [22:51] JSManiacs has joined the channel [22:52] CIA-54: libuv: 03Ben Noordhuis 07master * rbee7112 10/ (src/unix/internal.h src/unix/linux.c): unix: move container_of and SAVE_ERRNO to internal.h - http://git.io/YDko-g [22:53] dreamdust: MooGoo: Don't use 0.5.x, it's an unstable release. Even numbers are stable IIRC [22:53] MooGoo: yup [22:54] MooGoo: its a hard habit to break, always going straight to the dev versions of all your favorite packages [22:54] slifty has joined the channel [22:54] beeviz has joined the channel [22:56] Lemon|mbp has joined the channel [22:56] [[zz]] has joined the channel [22:57] ttpva has joined the channel [23:01] wadey has joined the channel [23:02] slifty has joined the channel [23:02] AaronMT has joined the channel [23:03] chance- has joined the channel [23:04] Skyec: is there a way to set the NODE_PATH as a command line parameter to the node binary? [23:04] chance-: is there anyway node would cache routes between running an app? [23:05] chance-: i'm having a funky issue where it has completely interchanged the route paths between two route definitions and i cant find any reason as to why it would [23:07] alexdoom has joined the channel [23:08] smathy: Skyec… just wrap the binary in a shell script that sets the var. [23:08] Skyec: smathy: thanks. I'll give that a try [23:09] nuck has joined the channel [23:09] aoclown has joined the channel [23:10] Me1000 has joined the channel [23:13] chance-: Is there anyway to see registered routes in express? [23:13] tjholowaychuk: chance- app.routes.all() [23:14] chance-: awesome, thanks man [23:14] aoclown: Does anyone know how to change waf's output directory for a compiled node module? I've searched everywhere and the waf docs are less than useful. [23:15] ianl` has joined the channel [23:18] ChrisPartridge has joined the channel [23:19] dylang has joined the channel [23:19] perezd has joined the channel [23:20] dmkbot has joined the channel [23:23] schwab has joined the channel [23:24] Vertice has joined the channel [23:29] losing has joined the channel [23:29] BillyBreen has joined the channel [23:30] Skyec: anybody here using WebStorm by any chance? [23:30] joshthecoder has joined the channel [23:31] denom has joined the channel [23:31] Frippe has joined the channel [23:32] Ned_ has joined the channel [23:33] davidwalsh has joined the channel [23:33] cjheath has joined the channel [23:34] ggg_ has joined the channel [23:34] uchuff has joined the channel [23:34] ggg_: anyone knows why i see no images with static on express? the gist: https://gist.github.com/1233353 [23:34] joshkehn has joined the channel [23:35] tjholowaychuk: ggg_ what's the request? [23:35] tjholowaychuk: GET /foo.png? [23:35] tjholowaychuk: sorry I guess GET /images/foo.png [23:35] ggg_: yah [23:36] ggg_: in a browser bar [23:36] ggg_: you can have a better explanation at this stackoverflow topic: http://stackoverflow.com/questions/7506797/static-image-file-is-invisible-in-node-js-express [23:36] tjholowaychuk: should be fine if you have ./static/images/whatever.png [23:37] wookiehangover has joined the channel [23:37] tjholowaychuk: maybe try without cloud9 [23:37] ggg_: i get a invalid mime type, so the picture isnt displayed [23:37] tjholowaychuk: shouldn't matter though I would hope [23:37] ggg_: the request and response are present, it just doesnt show the picture [23:38] ggg_: it works for a css file tho [23:38] Skyec: ggg_: have you had a look at using node-static? [23:38] Skyec: https://github.com/cloudhead/node-static [23:38] skiz has joined the channel [23:38] Isaiah has joined the channel [23:38] jergason_home has joined the channel [23:38] tjholowaychuk: pff that wont change anything [23:38] piscisaureus has joined the channel [23:38] ggg_: no, I thought using expresses static would be enough, i dont want my project to have to many modules [23:39] Skyec: i'm not sure. I know that node-static claims to be RFC2616 compliant [23:39] tjholowaychuk: node-static supports a lot less than connect's static() [23:39] tjholowaychuk: look at the code [23:40] ggg_: so TJ, any clue what im doing wrong? Im on win7 and dont have node on it [23:40] dynacker: how does node-static compare to nginx :>? [23:40] ggg_: since there isnt a npm for windows, [23:40] tjholowaychuk: ggg_ so IE? what user-agent? [23:40] ggg_: on chrome [23:40] ggg_: i could give it a shot on IE [23:41] tjholowaychuk: works just fine for me in chrome [23:41] metellus has joined the channel [23:42] tjholowaychuk: i dont know anything about cloud9 though, maybe it's doing something that is messing things up [23:43] tjholowaychuk: or some dependency issue that it's having [23:43] tjholowaychuk: who knows [23:44] jvdev has joined the channel [23:44] craigpetchell has joined the channel [23:44] ggg_: im getting a red X [23:44] ggg_: could be cloud9 [23:44] tjholowaychuk: probably, i just tried it a few seconds ago [23:45] tjholowaychuk: node 0.4.12 [23:45] ggg_: dont feel like developing locally [23:45] tjholowaychuk: :s [23:45] tjholowaychuk: that's weird [23:45] tjholowaychuk: haha [23:45] tjholowaychuk: but you're on windows so I can understand that [23:45] chance- has joined the channel [23:45] rchavik has joined the channel [23:46] ggg_: cloud9 is convnienet, npm ...etc. Getting modules installed on win7 is a pain [23:46] ggg_: and i keep getting errors [23:46] spolu: hi there, if a Local object comes in as an arguemeant in a v8 add-on and I call Persistent p = Persistent::New(args[0]). is p content out of v8 heap? [23:47] shipit has joined the channel [23:47] TooTallNate: spolu: that would simply create a persistent reference to an existing JS object [23:48] TooTallNate: said object would be allocated on V8's heap though [23:48] Me1000 has joined the channel [23:48] spolu: TooTallNate: so to remove an object from V8 heap I would need to "deeply" copy it into a pure C++ newly allocated C++ object right? [23:49] spolu: TooTallNate: no automated way here? especially if I later need to return a JS object. right? [23:49] Cromulent has joined the channel [23:50] ggg_: TJ it is cloud9, just found a bug ticket on cloud9ide support [23:50] AphelionZ has joined the channel [23:50] tjholowaychuk: ggg_ hmm interesting, possibly a version thing then [23:50] TooTallNate: spolu: why not just hang onto the Persistent handle and return the original JS object back when needed? [23:51] TooTallNate: spolu: you can allocate memory for the Perisistent with: new Persistent() [23:51] ggg_: Ive got a feeling the upload process from the client to server (cloud9) aint working properly [23:51] ggg_: have you tried cloud9 tj? [23:51] tjholowaychuk: nope [23:51] jergason_home has joined the channel [23:51] spolu: TooTallNate: to reduce V8 heap to avoid long GC. [23:52] crescendo|laptop has joined the channel [23:52] crescendo|laptop has joined the channel [23:52] spolu: TooTallNate: new Persistent() would only allocate memory for in a "shallow" way no? and keep most of the object content into V8 heap, right? [23:52] TooTallNate: spolu: well i have no idea what youre making, but that's probably overkill/overoptimization [23:52] dreamdust: A web-based IDE? That's interesting... [23:53] TooTallNate: spolu: right, it's *just* a reference [23:53] TooTallNate: you *could* copy properties from a JS object that you need to a C++ object, and save C++ objects [23:53] tjholowaychuk: nope [23:53] TooTallNate: then convert them back to JS objects when needed [23:53] tjholowaychuk: my bad [23:53] TooTallNate: but like I said, probably overkill/overoptimization [23:53] spolu: TooTallNate: I have ~500mb heap. That's >1s mark-sweep/compact [23:54] TooTallNate: why so many objects? [23:54] spolu: TooTallNate: in-memory search [23:54] CIA-54: node: 03Igor Zinkovsky 07master * rde0066c 10/ node.gyp : remove node_zlib.h from node.gyp - http://git.io/9t13yw [23:55] alvaro_o has joined the channel [23:55] TooTallNate: well, as you've already encountered, node/v8 doesn't do so well with that sort of thing :p [23:55] TooTallNate: that's usually where redis comes in for us ;) [23:56] spolu: TooTallNate: :) that's what I'm just gonna put my hash tables in a C++ add ons… only pb is "serialization"/"deserialization" [23:57] willwhite has joined the channel [23:59] tylerstalder has joined the channel