[00:00] CodyGray has left the channel [00:01] bazookatooth has joined the channel [00:02] tonymilne has joined the channel [00:03] buzzomatic: To answer my own question, npm install glob, https://github.com/isaacs/node-glob [00:05] CStumph has left the channel [00:06] tayy has joined the channel [00:08] topaxi has joined the channel [00:08] arpegius has joined the channel [00:10] Mrfloyd has joined the channel [00:15] jacter has joined the channel [00:15] copongcopong has joined the channel [00:17] jameson: if I call this.someFunc.apply(this, someVars)... someFunc is going to have a local scope access to all variable in 'this' right? [00:17] CodyGray has joined the channel [00:18] ggg has joined the channel [00:19] febits has joined the channel [00:19] ggg: anyone good with node-mongodb-native [00:19] jbroman: jameson: You still have to say "this.foo", if that's what you're asking. [00:20] ack has joined the channel [00:20] jbroman: jameson: They aren't implicitly available as local variables. [00:21] Yuffster_work has joined the channel [00:21] CodyGray has left the channel [00:21] jameson: jbroman: thx, and I just verified that ;) [00:22] ggg: I try to authenticate via the driver, but db.authenticate('ggg', 'ggg', function(err) { launches the error function, but err equals to null .... any clues why the error isnt displayed?? [00:22] jameson: I really should just make bunch of sanbox files to remind myself of all this [00:25] joshthecoder has joined the channel [00:26] felipellrocha has joined the channel [00:26] saikat has joined the channel [00:26] mandric has joined the channel [00:28] [[zz]] has joined the channel [00:28] ggg: manage to fix it [00:29] ggg: function isnt initiated for an error [00:32] Murvin: If I make some changes in the nodejs/lib/http.js file, do I need to "make" again in order to see the new change? [00:32] dgathright has joined the channel [00:34] Nedry has joined the channel [00:36] dylang_ has joined the channel [00:43] dmose has joined the channel [00:45] Nuck: UGh [00:45] Nuck: Why won't mongodb-native connect to MongoHQ for me? :/ [00:45] sveimac has joined the channel [00:45] Nuck: ugh [00:46] Nuck: Gotta debug after I eat dinner I guess :/ [00:49] bentruyman has joined the channel [00:49] avalanche123 has joined the channel [00:49] ray24 has joined the channel [00:49] ray24: Yo bro's [00:50] mt3ck_: yoyo [00:52] bronson_ has joined the channel [00:52] MooGoo: im not nearly drunk enough [00:52] MooGoo: ggg eh [00:52] MooGoo: one of my favs [00:53] ack has joined the channel [00:53] ggg: me? [00:53] MooGoo: yea ggg is good shit [00:54] ggg: just googled it, its a condom brand...didnt know [00:54] MooGoo: it is? [00:54] bazookatooth has joined the channel [00:54] MooGoo: that's somehow apropriate [00:54] ggg: actually i misread [00:54] ggg: its a codon [00:54] ggg: french wikipedia mislead me [00:54] ray24: y0 bro.. I got something to ask my bro's [00:55] MooGoo: it's a codon.... [00:55] ggg: codon is some genetic thing, aka ggg [00:55] MooGoo: I see [00:55] MooGoo: it's sad when the real result is all the way at the bottom of google [00:55] ggg: so mongoo, your the one behind mongoose? [00:55] dominictarr has joined the channel [00:55] MooGoo: sign of the times I guess [00:55] ray24: Yo bro llemme ask you something [00:55] MooGoo: uh yup, that was me [00:56] MooGoo: yo dawg [00:56] ray24: Let's say ... [00:57] ray24: There's a girl that you don't want to talk to.. and you tell yourself thaty ou don't wanna talk to her [00:57] ray24: and you still talk to her [00:57] ray24: what kind of dude would that be? [00:57] MooGoo: just stick to pr0n [00:57] MooGoo: like ggg [00:57] sshaginyan: lol [00:57] ggg: out of curioisity, how do you bind/build a node module to an existing c/c++ framework? [00:58] ggg: i dont talk to chicks [00:58] bradley has joined the channel [00:58] ggg: my gf would kill me [00:58] ggg: whats pr0n ? [00:58] ray24: Porno [00:58] sshaginyan: ggg: I don't talk to chicks either, usually chicks talk to me [00:58] ray24: Animal porn [00:59] ggg: thats not bad, chicks pay me drinks ... [00:59] ggg: when i used not to be under the whip* [00:59] ray24: So.. you're the B for girls. [00:59] ggg: B for? [00:59] sshaginyan: Guys how old are you? [01:00] ray24: age is irrelevant dude [01:00] ggg: surprinsgly 22 [01:00] ray24: especially on IRC [01:00] ggg: not it isnt [01:00] ray24: cuz.. everyone want to appear younger and stuff [01:00] ray24: so u never know [01:00] sshaginyan: lol same here [01:00] ggg: i look like 19, but 23 [01:00] MooGoo: im 9 [01:00] ray24: Depends on who's looking [01:00] coyo has joined the channel [01:00] ray24: If i saw you, I might see a 40 year old! [01:00] MooGoo: im 15 year old schoolgirl [01:01] ray24: I bet I could pwn everyone in here [01:01] ggg: ok, so anyone can anwer my previous question? [01:01] sshaginyan: [1-9]{2,}. [01:01] ggg: i havent gamed for 5 year [01:01] ray24: I'd pwn you in a real life game [01:01] ggg: maybe [01:02] sshaginyan: [1-9]{0,2}. [01:03] sshaginyan: What hosting would you recommend for node? [01:03] devrim has joined the channel [01:03] Bwen: sshaginyan: one with internet [01:03] sshaginyan: Bwen: ... you mean the interweb [01:04] Bwen: or do I... ¬_¬ [01:04] ggg: arpatnet [01:04] sshaginyan: lol [01:04] sshaginyan: isn't that millitary [01:04] ggg: any relevant documentation for node-mongodb-native ? [01:04] ggg: you mixing with skynet in terminator men [01:05] sshaginyan: ggg: no [01:05] sshaginyan: http://en.wikipedia.org/wiki/ARPANET [01:05] sshaginyan: ggg: It is millitary I think under Trumen [01:05] ggg: i can connect...but they dont show anything else, doing query ...etc [01:06] ray24: Any computer hackers here? [01:06] sshaginyan: BackTrack gangsta [01:06] sshaginyan: ray24: define hacker [01:06] ray24: A computer literate [01:07] sshaginyan: lol [01:07] ray24: whut [01:07] Krytoss has joined the channel [01:07] sshaginyan: computer literate is relative [01:08] sshaginyan: give a static definition [01:08] ray24: A professional computer expert [01:08] Krytoss: that too is relative [01:09] Krytoss: i know far too many "professional computer experts" who shouldn't be allowed to touch their calculator [01:09] ray24: That's quite scary [01:09] broofa has joined the channel [01:09] sshaginyan: Krytoss: lol [01:09] tbranyen: i <3 my ti83 [01:10] ray24: Ti-83 is 10 years old [01:11] tbranyen: ray24: uh mine is older than that [01:12] sshaginyan: ray24: check out the curta calculator http://www.vcalc.net/cu.htm [01:12] tbranyen: copyright is 1999 [01:12] tbranyen: but yeah its awesome [01:12] mandric has joined the channel [01:12] ray24: lol what the heck? [01:12] ray24: that's a calculator? [01:12] sshaginyan: ray24: yup [01:13] sshaginyan: ray24: Can someone please purchase me one of these? [01:13] ray24: I've never seen anyone bring that to take math final [01:13] sshaginyan: ray24: check the price [01:13] ray24: 125 [01:13] sshaginyan: http://shop.ebay.com/i.html?_from=R40&_trksid=p5197.m570.l1313&_nkw=curta&_sacat=See-All-Categories [01:14] ray24: ;p; [01:14] ray24: lol [01:15] wilmoore has joined the channel [01:17] dgathright_ has joined the channel [01:21] scoates has joined the channel [01:21] jzacsh has joined the channel [01:23] pifantastic has joined the channel [01:23] be4u has joined the channel [01:25] Swimming_bird has joined the channel [01:26] Nuck|mobile has joined the channel [01:27] llrcombs: is there a way to check to see if the PATH contains a certain program name? [01:29] niftylettuce has joined the channel [01:29] Nuck|mobile has joined the channel [01:30] nibblebot has joined the channel [01:30] abrookins has joined the channel [01:31] ben_alman_ has joined the channel [01:31] jbroman: llrcombs: A simple (albeit slightly ugly) way would be to spawn "which [programname]" and check its exit code. [01:31] ifree has joined the channel [01:31] jbroman: I believe it should be 0 if it was found and non-zero otherwise. [01:33] ifree: how can I solve this problem "node-stringprep.cc:160: error: ‘strcasecmp’ was not declared in this scope" I'm in mingw g++4.34 [01:34] ifree: during install node-stringprep [01:34] kmwallio has joined the channel [01:35] sharkbone has joined the channel [01:38] wookiehangover has joined the channel [01:38] tonymilne: Tim Caswell around? [01:39] tbranyen: tonymilne: doesn't appear to be unless he's lurking under a different nick for some creepy reason [01:42] tmpvar has joined the channel [01:43] jacter1 has joined the channel [01:45] prettyrobots has joined the channel [01:46] boehm has joined the channel [01:46] tshpaper has joined the channel [01:47] jerrysv has joined the channel [01:49] perlmonkey2 has joined the channel [01:49] _Sorensen: happy day, got docco working [01:49] _Sorensen: ...now to redo all of my comments... [01:50] sridatta has joined the channel [01:51] dguttman has joined the channel [01:52] ifree: how can I solve this problem "node-stringprep.cc:160: error: ‘strcasecmp’ was not declared in this scope" I'm in mingw g++4.34 thanx [01:52] Aria: What version are you compiling? [01:52] zeade has joined the channel [01:54] k1ttty has joined the channel [01:54] Nuck: Okay, I need help with Node-mongo-native [01:54] Nuck: https://gist.github.com/ccccd41a4463deb8a453 <-- doesn't work, all I get is "Connecting to mongo..." [01:54] Nuck: And it hangs [01:56] Nuck: My configuration is correct, I know that much. [01:56] cognominal_ has joined the channel [01:56] _Sorensen: i'm not entirely sure... but dont you want to be making a new connection? [01:57] marcello3d has joined the channel [01:57] _Sorensen: as in, connecting to an existing DB as opposed to making a new DB [01:57] _Sorensen: which is how the code reads [01:57] ifree: g++4.34 [01:57] Nuck: Huh? No, this is Mongo, the DB is already made. [01:58] _Sorensen: var client = new Db [01:58] Nuck: I've used almost exactly the same code for months, and this is the first time I've ever had trouble. [01:58] bartt has joined the channel [01:58] _Sorensen: hnng, then I don't know, sorry :( [01:58] Nuck: _Sorensen: That's normal. I pulled that snippet right off the examples they give [01:58] JakeyChan has joined the channel [01:59] ifree: @Aria can you help me [01:59] sh1mmer: ifree: which version of Node [01:59] JakeyChan: what's the module can do with mongodb ? [01:59] ifree: 0.48 [01:59] Nuck: Only thing I can think of is that maybe MongoHQ is being a bitch, but that does not appear to be the case, since I can still access it with mongo CLI [01:59] JakeyChan: mongonse ? [02:00] _Sorensen: mongoose [02:00] Nuck: JakeyChan: What? You mean mongodb-native or Mongoose? [02:00] Nuck: Or perhaps Mongolian. [02:00] zivester has joined the channel [02:00] Nuck: There's hundreds of libs [02:00] _Sorensen: i'm a big mongoose fan [02:00] JakeyChan: Nuck: they are not same thing ? [02:00] _Sorensen: very easy to use [02:00] _Sorensen: mongoose is an ORM to mongodb [02:00] _Sorensen: not the same [02:01] ifree: Build failed: -> task failed (err #1): {task: cxx node-stringprep.cc -> node-stringprep_1.o} [02:01] JakeyChan: sounds cool :D [02:01] Lorentz: mongoose be good [02:01] mif86- has joined the channel [02:01] _Sorensen: mongoose be my hero [02:01] Lorentz: Initially confused me somewhat, but once I groked it was good [02:01] Bonuspunkt has joined the channel [02:01] _Sorensen: the API change to 1.0 confused me [02:02] _Sorensen: i wish i could define a schema in one shot [02:02] Lorentz: I got in just before 1.0, and code was still changing [02:02] Lorentz: which broke constantly, thus my confusion [02:02] Lorentz: But that was a while ago. [02:02] _Sorensen: ah, i didnt get heavy into it until 1.0 [02:02] _Sorensen: before then was testing / sandboxing fun [02:02] sh1mmer: I've been hacking in a binding to the v8 profiler to do heap dumps [02:02] sh1mmer: and something isn't right [02:02] sh1mmer: https://github.com/sh1mmer/node/tree/profiler [02:02] PPilate has joined the channel [02:02] flazz_ has joined the channel [02:02] _Sorensen: pre 1.0 you could define the entire schema in one object [02:03] sh1mmer: The profiler object from node.cc isn't getting instantiated in JS [02:03] _Sorensen: now it seems that you have to do the model.pre('something') afterwards [02:03] sh1mmer: I don't know if anyone feels like taking a look [02:03] doffm_ has joined the channel [02:03] Ian__ has joined the channel [02:03] drudge- has joined the channel [02:03] EvanCarr1ll has joined the channel [02:03] zedas_ has joined the channel [02:03] houBin_ has joined the channel [02:03] tmzt_ has joined the channel [02:04] ivan_ has joined the channel [02:04] adelcambre has joined the channel [02:04] pandark__ has joined the channel [02:04] kruckenb has joined the channel [02:04] Emmanuel__ has joined the channel [02:04] hjst_ has joined the channel [02:07] Nuck: ACTION hates Mongoose [02:07] seawise has joined the channel [02:07] ifree has left the channel [02:08] JJMalina has joined the channel [02:09] edsu has joined the channel [02:09] ggg has joined the channel [02:09] marcello3d: Nuck: why are you using it? [02:09] ggg: simple node,js question about node-mongodb-native [02:10] ggg: ive declared my db in my server,js, how can i use this same connected and authenticated db in another module?? [02:10] piscisaureus: sh1mmer: what do you mean "something is not right"? [02:11] ggg: id like to insert something in a collection, but it says db is undefined, i tried exports.db when declaring my db, but it gave me an error [02:11] harth has joined the channel [02:11] marcello3d: ggg: you could make a file like db.js: exports.db = ...codetomakedb... [02:12] marcello3d: then in other files: var db = require('./db').db [02:12] cjm has joined the channel [02:12] marcello3d: or if you want to make collection objects (this is what I do with mongolian deadbeef): exports.blog = db.collection("blog"); exports.users = db.collection("users"); [02:13] mjr_ has joined the channel [02:13] marcello3d: then access it with: var db = require('./db'); ... use db.users and db.posts ... [02:13] ggg: ok, so i want to initalize my db, when my server starts, if i = require, will it be loaded, and then i can use it in another module?? [02:13] mike5w3c has joined the channel [02:13] marcello3d: yea, the module is only loaded once [02:13] marcello3d: then subsequent calls to require() reference the same object [02:14] ggg: ok, thanks alot marcello, ill give it a shot [02:14] ggg: node.js is really interesting [02:15] _Sorensen: i'll say [02:16] ggg: i keep reading it good for chat apps etc...but shouldnt it be good for normal http if its good for low latency apps?? [02:16] _Sorensen: its good for... EVERYTHING [02:16] _Sorensen: haha i'm slightly kidding [02:16] _Sorensen: chat apps, for sure [02:16] _Sorensen: for example: http://sorensen.no.de/ [02:16] _Sorensen: my nifty chat app [02:16] _Sorensen: :D [02:17] Nuck: marcello3d: And I don't use Mongoose. [02:17] Nuck: I'm using mongodb-native [02:17] Nuck: But it's not working for me :/ [02:17] sh1mmer has joined the channel [02:18] marcello3d: nuck: tried mongolian? [02:18] Nuck: No thank y ou [02:18] Nuck: I'm keeping my mongodb-native [02:18] Nuck: https://gist.github.com/ccccd41a4463deb8a453 [02:18] Nuck: I'm just having it hang at "Connecting to Mongo..." [02:18] marcello3d: mongolian is much simpler [02:18] Nuck: This code USED to work, so I imagine I fucked it up somewhere subtle. [02:18] sh1mmer: Nuck: tried a packet sniffer? [02:19] Nuck: sh1mmer: Ugh I'd rather not resort to that :/ [02:19] sh1mmer: e.g. is it sending anything to the database at all? [02:19] _Sorensen: and i'm assuming you havn't updated the package? [02:19] sh1mmer: Nuck: well I think I'm trying to establish if it's network conditions [02:19] _Sorensen: in RE: to API changes [02:19] xijhing: _Sorensen: what stack do you use for your chat app? [02:20] marcello3d: that same code is like one or two lines in mongoliandb :) (depending on stylistic preference) [02:20] _Sorensen: dnode/backbone/mongoose [02:20] _Sorensen: as the primaries [02:20] _Sorensen: and express [02:20] Nuck: sh1mmer: I can access mongo via the CLI [02:20] _Sorensen: just added accesskeys and happy.js form validation [02:20] Nuck: Just not via Mongodb-native [02:20] _Sorensen: working on the docs now :D [02:20] Nuck: I don't believe anything has changed in the API [02:20] Nuck: The example is the same [02:20] jerrysv: isaacs: you happen to be around? [02:21] marcello3d: Nuck: and the api is based on the mongo shell (nearly identical, where possible) [02:21] xijhing: very cool [02:21] _Sorensen: thanks [02:21] _Sorensen: feel free to have at it [02:21] mikeal has joined the channel [02:21] Nuck: I just need to figure out why this is broken :S [02:22] _Sorensen: Nuck: wish I could help, sorry mate :( [02:23] piscisaureus: sh1mmer: ping [02:23] sh1mmer: piscisaureus: hey [02:24] piscisaureus: shimmer: f->Call(global, 1, args); [02:24] piscisaureus: line 2941 [02:24] piscisaureus: make that 1 a 2 [02:24] jerrysv: anyone having success publishing with npm 1.0.13? [02:24] Nuck: hmmm [02:24] Nuck: It works if I use localhost [02:24] marcello3d: Nuck: console.dir(config) tell you anything? [02:24] sh1mmer: piscisaureus: duh [02:24] sh1mmer: I knew it was something dumb [02:24] sh1mmer: I shouldn't really hack it in there [02:24] sh1mmer: but I'll fix that later [02:25] piscisaureus: I don't know - there may be more errors there [02:25] Nuck: Fuckit, I'm switching my mongo to local :/ [02:25] sh1mmer: sure [02:25] piscisaureus: but this one was obvious :-) [02:25] dgathright has joined the channel [02:25] sh1mmer: piscisaureus: yeah now I have access to my crappy wrapper [02:25] Druide_ has joined the channel [02:25] sh1mmer: piscisaureus: ok it seems to work a bit [02:26] sh1mmer: I'm going to make it dump the snapshots to file [02:26] piscisaureus: I hope that snapshotting still works. node --prof seems to be broken atm and me and ryah don't know why. [02:27] xijhing: _Sorensen: dnode requires a websocket connection? [02:27] sh1mmer: piscisaureus: seems to work with what I wrapped right now [02:27] piscisaureus: ok, cool [02:27] sh1mmer: piscisaureus: but again I won't know until I start dumping them out to disk [02:27] piscisaureus: well, try it and let us know :-) [02:27] sh1mmer: doing it now [02:28] sh1mmer: I have to figure out streams in C++ [02:28] tmpvar: v8 profiling -> cachgrind output would be nice. im going to do this [02:28] sh1mmer: soooo rusty [02:28] piscisaureus: noooz [02:28] piscisaureus: streams-- [02:28] v8bot: piscisaureus has taken a beer from streams. streams now has -1 beers. [02:28] ray24: You got my beer? [02:28] piscisaureus: just use write() and friends [02:28] niftylettuce has joined the channel [02:29] sh1mmer: piscisaureus: the serialize method of HeapSnapshot is is a stream [02:29] piscisaureus: bleh [02:29] ezl_ has joined the channel [02:34] sridatta has joined the channel [02:35] jtsnow has joined the channel [02:35] dgathright has joined the channel [02:37] jerrysv: heya tmpvar [02:39] unlink has joined the channel [02:39] unlink has joined the channel [02:40] drewolson has joined the channel [02:41] drewolson: anyone out there have good examples for testing express controllers with vows? [02:42] Nuck: YUSH! [02:42] Nuck: Just finished my login stuff! [02:42] Nuck: sessions are officially awesome. [02:42] Charuru has joined the channel [02:42] sirdancealot has joined the channel [02:43] skm has joined the channel [02:45] kylefox has joined the channel [02:45] tmpvar: jerrysv, yo to [02:45] tmpvar: wow. yo yo, even [02:45] KingJamool has joined the channel [02:45] jerrysv: yo to to you too [02:46] sh1mmer: piscisaureus: any suggestions for how to wire this stream up to a JavaScript interface? [02:46] sh1mmer: piscisaureus: or a starting point to check out [02:47] piscisaureus: sh1mmer: is it actually okay to call into JS while v8 is taking a dump? [02:47] clifton has joined the channel [02:47] sh1mmer: piscisaureus: yeah good point [02:47] pifantastic has joined the channel [02:47] sh1mmer: and awful phrasing [02:47] sh1mmer: sigh [02:48] kylefox has left the channel [02:48] piscisaureus: heh :p [02:48] sh1mmer: any suggestions for working with streams and fs in c++? [02:48] avalanche123 has joined the channel [02:49] fairwinds has joined the channel [02:50] piscisaureus: hmm. I don't use stream much. If you just want to do a blocking write I guess c++ provides an easy stream to write to a file (ofstream?) [02:51] piscisaureus: Other possible solution: buffer everything up in a malloced memory area, then create a SlowBuffer object to wrap it, pass the buffer object to some JS callback [02:51] brainproxy has joined the channel [02:51] brainproxy has joined the channel [02:52] jerrysv: is anyone able to npm publish currently? [02:52] sh1mmer: piscisaureus: I guess this should be blocking [02:52] sh1mmer: so I'll just use the standard stream apis [02:52] sh1mmer: I'm sure ry will point out how janky my codei s [02:53] luke` has joined the channel [02:54] JoshC1 has joined the channel [02:56] piscisaureus: I think it's as easy as [02:56] piscisaureus: ostream output("dump.txt"); [02:56] piscisaureus: snapshot.serialize(output, kJSON); [02:56] piscisaureus: output.close(); [02:56] piscisaureus: sh1mmer: but reading the v8 api I think it is okay to call JS while it is streaming snapshot data [02:56] sh1mmer: piscisaureus: it is [02:57] sh1mmer: piscisaureus: but I'm doing it the easy way [02:57] sh1mmer: and then I'll make it suck less [02:57] piscisaureus: that's good, always start doing things the easy way [02:57] sh1mmer: especially since this is the longest time (this afternoon) I've worked on C++ in about a decade [02:58] piscisaureus: heh :-) [02:58] piscisaureus: start small [02:58] piscisaureus: end up as a ry replacement [02:58] sh1mmer: I have his hoodie [02:58] sh1mmer: soon... [03:02] Nuck: Anyone here know a good RubyBlue-esque JS syntax highlighting file for Nano? [03:03] Nuck: Or will I hafta build it myself? [03:04] MooGoo: just man up and use vim [03:04] Nuck: fuck vim [03:04] Aria: ACTION smirks. [03:04] MooGoo: I'll pretend I didn't hear that [03:05] Nuck: No offense, but I am a fan of usability. And vim has the least usable interface I've ever seen. [03:05] eggsby has joined the channel [03:05] MooGoo: I wouldnt really point to nano/pico as a beacon of useability in text editors [03:06] tbranyen: Nuck: Its an acquired interface [03:06] marcello3d: I use intellij [03:06] marcello3d: works great :D [03:06] marcello3d: node.js support, too [03:06] Aria: They satisfy the basic grid-of-characters usability. [03:06] eggsby: So, I'm working on a silly node irc bot... using the node-irc library. Any time I trigger a kick on a nick that isn't in the room it crashes the process, is there any way around this? [03:06] eggsby: try/catch block doesn't seem to be doing the trick [03:06] MooGoo: lol [03:06] MooGoo: that sux [03:07] eggsby: for some relevant code: http://pastie.org/2099407 [03:08] Aria: Looks like a bug -- node-irc is making an async call, and not handling the error, nor passing you the callback so you can handle it. [03:08] Aria: So boom. Outside your part of the stack. [03:09] eggsby: bl-bl-bleeeeding edge [03:09] marcello3d: aria: actually this is an eventemitter error it looks like? [03:09] marcello3d: someone's not calling foo.on('error', ... ) [03:09] Aria: Yeah, exactly. [03:09] eggsby: oo! [03:09] eggsby: so its me then [03:10] MooGoo: where is ur bot [03:10] eggsby: http://github.com/eggsby/nousbot/ [03:10] marcello3d: yea, if you're ever given an emitter that you're calling foo.on('bar',...), you probably also want a foo.on('error',...) somewhere [03:13] eggsby: that did the trick, thank you marcello3d [03:13] eggsby: (noob mistakes :3) [03:14] MooGoo: what's your bot gonna do [03:15] jamescarr has joined the channel [03:15] eggsby: oh just whatever the heck [03:15] jamescarr: hey I noticed the recent node.js docs say not to update require.paths... [03:15] jamescarr: in a webapp, how else can you specify to look in node_modules of the current directory? [03:15] broofa has joined the channel [03:16] MooGoo: you should bring it here [03:16] MooGoo: .rock [03:16] eggsby: lol, don't want to clutter up the channel with noob toys :) [03:17] eggsby: hopefully going to hook it up to express for a web ui though [03:17] eggsby: add simple key/value junk to it [03:17] MooGoo: have it log the channel and learn too talk [03:17] MooGoo: to [03:17] devrim has joined the channel [03:18] eggsby: markov chain? :p [03:18] caolanm has joined the channel [03:18] MooGoo: less you have a better idea [03:18] diorahman has joined the channel [03:19] Nuck: Sweet, got syntax highlighting set up in Nano about as close to Ruby Blue as is humanly possible [03:20] Corren has joined the channel [03:21] bazookatooth has joined the channel [03:22] sh1mmer: that was exciting [03:22] CodyGray has joined the channel [03:22] sh1mmer: shots fired and then people sprinting down the street [03:22] CodyGray has left the channel [03:22] sh1mmer: everyone in the front of the restaurant getting out of the windows [03:23] blueadept has joined the channel [03:23] Nedry: damn, i love the node development model [03:23] Nuck: sh1mmer: wait, what? [03:23] Aria: Isn't it spiffy? [03:24] Nuck: sh1mmer: WTF are you talking about? [03:24] Nuck: You in Vancouver? :P [03:24] sh1mmer: Nuck: I'm sitting getting a shake [03:24] sh1mmer: and there were shots [03:24] sh1mmer: and then running people [03:24] Nuck: sh1mmer: Where? [03:24] marcello3d: woot, almost ready to release first version of my new module [03:24] sh1mmer: and now there are cops and a chopper [03:24] sh1mmer: San Francisco [03:24] sh1mmer: in the missino [03:24] Nuck: sh1mmer: lmao really? [03:24] marcello3d: oh boy [03:24] Aria: Oh man. [03:24] Nedry: what's your module? [03:25] marcello3d: BSON parser/serializer. exciting stuff, I know ;) [03:25] baoist has joined the channel [03:25] Nedry: sounds pretty useful actually [03:26] cafesofie has joined the channel [03:26] marcello3d: hope so [03:26] marcello3d: plan on using it in mongolian deadbeef [03:26] marcello3d: so I can remove the dependency on mongodb-native [03:26] Nedry: sweet [03:26] Aria: ACTION tries to figure out the best way to pass current state to a reloaded process. [03:27] Nedry: i've been using couch, but i've had my eye on mongo too [03:27] sh1mmer: looks like they held up a grocery store across the street [03:27] marcello3d: sh1mmer: anyone hurt? [03:27] rchavik has joined the channel [03:27] dgathright has joined the channel [03:28] sh1mmer: dunno [03:28] sh1mmer: it's all police tape right now. I don't see any paramedics yet [03:28] sh1mmer: but they blocked the road [03:28] marcello3d: are you inside it or outside? [03:28] kawaz_air has joined the channel [03:28] sh1mmer: inside [03:29] aurojit has joined the channel [03:30] skm has joined the channel [03:30] abrookins has joined the channel [03:30] patrickarlt has joined the channel [03:31] marcello3d: https://github.com/marcello3d/node-buffalo :D [03:31] zomgbie has joined the channel [03:31] sourcode has joined the channel [03:31] rbranson[webscal has left the channel [03:33] jerrysv: hey, has anyone had any luck with npm publish lately? [03:34] zeade has joined the channel [03:34] jerrysv: huh, looks like you have marcello3d [03:34] marcello3d: yea, I just used it [03:34] marcello3d: mere seconds ago [03:34] marcello3d: well, minutes ago, according to search.npmjs.org :) [03:34] jerrysv: i'm getting TypeError: Object.keys called on non-object [03:35] jerrysv: whenever i type npm publish, after it downloads all of the npm data [03:35] jerrysv: had been hoping isaacs was around [03:36] marcello3d: maybe your package.json is corrupt? [03:37] Calvin has joined the channel [03:37] MooGoo: .rock [03:37] Calvin: rock [03:38] gsmcwhirter: what are valid values for the hostname parameter of .listen ? [03:39] jerrysv: marcello3d: indeed it was -- finally found it with npm test [03:41] seangaffney has joined the channel [03:41] seangaffney has left the channel [03:41] jslatts_ has joined the channel [03:42] marcello3d: Nedry: check it out? :) [03:45] JakeyChan has joined the channel [03:45] jamescarr: hmmm... should the MX record for a mail server just be example.com or should it be mail.example.com? [03:46] jbroman: jamescarr: It should be an MX record for whatever domain you intend to receive mail for. [03:46] jbroman: If you want to deliver to xyz@example.com, then you want an MX record for example.com. [03:46] jamescarr: so example.com [03:46] eggsby has left the channel [03:46] jamescarr: :( [03:46] Aria: the MX record should be on the domain itself, but it can point to any label that has an A or AAAA record [03:46] wilmoore has joined the channel [03:46] Aria: So example.com IN MX mail.example.com [03:47] Aria: or example.com IN MX handler12345.outsourced-email-co.com [03:47] jamescarr: ah [03:47] localhost has joined the channel [03:47] Nedry: looks pretty cool, i don't have a mongo instance to play with right now, will have to set one up soon [03:47] jamescarr: could I just install sendmail and be done with it? [03:47] jamescarr: :S [03:47] jamescarr: ACTION sucks balls at setting up a mail server [03:47] Nedry: postfix seems popular these days [03:48] Nedry: setting up sendmail back in the day was painful [03:48] jamescarr: yeah I install postfix [03:48] marcello3d: nedry: this particular module is independent of mongodb, though, it's just a binary object serializer/parser [03:48] jamescarr: cant get it to work :( [03:48] clifton has joined the channel [03:49] Corren has joined the channel [03:49] Aria: haraka! [03:49] Nedry: cool, i'll pull it down and play around.. might be useful for bson encoding and stuffing an object into an ecrypted cookie [03:50] Benny_ has joined the channel [03:50] Nedry: like with base64 or something [03:50] Benny_: ohai [03:50] \sega has joined the channel [03:50] marcello3d: nedry: maybe :) not sure if BSON is the best choice there [03:50] marcello3d: see FAQ: http://bsonspec.org/#/faq [03:52] Nedry: well, the speed could still be a win for huge numbers of requests [03:52] marcello3d: yea but I feel like for cookie-sized amounts of data [03:52] marcello3d: + encryption [03:53] marcello3d: your object serialization is not going to be the bottleneck [03:53] Benny_: node can do bson? [03:53] Nedry: yeah, you're probably right [03:53] marcello3d: Benny_: https://github.com/marcello3d/node-buffalo :) [03:54] Benny_: awesome marcello [03:54] shiawuen has joined the channel [03:54] Benny_: something new here every dya [03:54] jerrysv: that was way too hard [03:55] Benny_: thats very good for the mongo lovers [03:55] tk has joined the channel [03:58] rhutchison has joined the channel [03:59] meso has joined the channel [04:02] hermanjunge has joined the channel [04:02] hermanjunge: Hi noders [04:02] hermanjunge: I'm learning to work with http.request [04:03] hermanjunge: but can't find a way in google to introduce the headers [04:04] Aria: request.setHeader? [04:04] Aria: is this a client or a server request? [04:05] amerine has joined the channel [04:07] sh1mmer: gross! [04:07] sh1mmer: stream 3-ways [04:07] ryanfitz has joined the channel [04:07] Krytoss: hoping someone might point out why my simple socket.io attempt isn't working https://gist.github.com/1037218 [04:08] Krytoss: i get "socket.io ready - accepting connections" and then two "sending client" msgs, one for the page and then for the favicon [04:09] Krytoss: i'd expect to at least get some motion from the connection being made but nada [04:09] sh1mmer: localhost:888 [04:09] sh1mmer: localhost:8888 [04:09] tim_smart has joined the channel [04:09] sh1mmer: it still needs to talk to the right port to upgrade [04:09] hermanjunge: Aria: Is a client [04:09] hermanjunge: Aria: Basically I'm trying to make something like a "curl" [04:09] JoshC2 has joined the channel [04:10] hermanjunge: I use var req = http.request(options, function(res...... [04:10] hermanjunge: above I use var options = {... [04:10] tim_smart: hermanjunge: What was your question? [04:10] hermanjunge: but don't know how to set up header [04:10] tim_smart: Just joined [04:10] hermanjunge: hi tim_smart [04:10] Krytoss: sh1mmer: i actually had it as localhost:8888, but then in chrome debug it was showing the websocket as aiming at localhost:8888:8888 [04:10] hermanjunge: I want to learn how to set up headers in an http.request() [04:11] sh1mmer: Krytoss: hm [04:11] Krytoss: sh1mmer: so i think it's pulling down the port automatically [04:11] Aria: Ah. Then set the headers in the options: {headers: {"Content-Type": "text/plain"]} [04:11] tim_smart: options.headers['Content-Length'] = xxx [04:11] hermanjunge: I know how to set up host, port, path... etc [04:11] hermanjunge: great [04:11] sh1mmer: Krytoss: it sends a request to the server and then issues and upgrade request [04:11] ditesh|cassini has joined the channel [04:11] Aria: http://nodejs.org/docs/v0.4.8/api/http.html#http.request [04:11] sh1mmer: Krytoss: port might be an options [04:11] hermanjunge: option.headers['Authorization'] ? [04:11] sh1mmer: new io.Socket("http://localhost", {port: 8888}) or something [04:12] hermanjunge: Aria: I've been there [04:12] Krytoss: ah [04:12] Krytoss: good idea i'll check that [04:12] sh1mmer: Krytoss: I can't remember off the top of my head [04:12] hermanjunge: read about the object is header [04:12] hermanjunge: but didn't understand till just now [04:12] hermanjunge: thanks [04:12] tim_smart: hermanjunge: Usually a good idea to check the docs before asking questions :) [04:12] sh1mmer: Krytoss: but I do know it sends a regular HTTP request which upgrades to a socket connection [04:12] sh1mmer: tim_smart++ [04:12] v8bot: sh1mmer has given a beer to tim_smart. tim_smart now has 1 beers. [04:12] hermanjunge: I was there :D [04:12] Aria: Hehe. Yeah. "an object" is a simple thing in JS ;-) [04:12] Aria: Easy to overthink it. [04:13] Krytoss: sh1mmer: doesn't seem to be anything in the readme [04:13] hermanjunge: Aria: You were right, most errors I make are by overthinking [04:13] sh1mmer: Krytoss: all of Gui's examples run on 80 [04:13] sh1mmer: it might be a bug [04:13] Nuck: Ugh [04:13] Nuck: This is gonna be a bitch. [04:13] SubStack: xijhing: you can do dnode server to server or server to browser [04:13] \sega has joined the channel [04:14] DTrejo_ has joined the channel [04:14] hermanjunge: beer for you all, thank you [04:14] Aria: Mmm, beer. [04:14] hermanjunge: or red wine [04:14] hermanjunge: we make good syrah red wine here [04:14] hermanjunge: bye! [04:15] Nuck: Building a modular profile management API on REST [04:15] Corren has joined the channel [04:16] Nuck: Profiles will contain "modules", which will be simple EJS pages I'll embed into the page [04:16] tmpvar: Aria, you in DC yet? [04:16] tmpvar: er.. [04:16] tmpvar: boston [04:16] tmpvar: sorry [04:16] Aria: Nope. Started the drive this morning. [04:16] Aria: I'll be there the 29th. [04:16] tmpvar: fun [04:16] dug_ has left the channel [04:16] Aria: Yeah. [04:16] tmpvar: looks like we'll be trading places [04:16] DelvarWorld has joined the channel [04:16] Aria: (taking our time and seeing friends and family) [04:16] tmpvar: nice [04:16] Aria: Heh, joy! You headed west? [04:16] tmpvar: that i am [04:16] Aria: Nuts! I was hoping to connect. [04:16] tmpvar: 30th im back in az for a few months [04:16] DelvarWorld: shut up and listen to me - serious question, is it possible to dynamically reload a js file in node? [04:16] Aria: Ah, fun. [04:17] Aria: What a time of year to be there. [04:17] tmpvar: haha. [04:17] Aria: Bring your air filter. [04:17] tmpvar: im in the mountains :) [04:17] tmpvar: so its not horrible [04:17] Aria: You still have a different definition of horrible. [04:17] Nuck: DelvarWorld: You'll get more people willing to help you if you don't preface your question with "shut up and listen to me" [04:17] Aria: (Mine includes Boston's summer weather.) [04:17] Nuck: Srsly. [04:17] tim_smart: /ignore DelvarWorld [04:18] tmpvar: agreed, DelvarWorld you basically just caused everyone here to ignore you [04:18] Nuck: When you act like a prick, expect people to be a prick back. [04:18] bentruyman has joined the channel [04:19] Aria: The smoke's been nasty, though, tmpvar. Those fires in AZ got Ridgway to be nearly unbreathable. [04:20] tmpvar: Aria, oh right. [04:21] sh1mmer: piscisaureus: you still around? [04:21] sh1mmer: do you know of any concrete implementations of OutputStream? [04:22] \sega has joined the channel [04:23] mapleman1 has joined the channel [04:24] Nuck: So, how's the MinGW build for Node going? [04:25] tbranyen: hasn't it always worked? [04:25] Nuck: No, I remember it wasn't perfect. [04:25] Nuck: It lacked OpenSSL, IIRC [04:25] tbranyen: what does perfect mean? [04:25] tbranyen: oh [04:25] DelvarWorld: Nuck: that's fine [04:25] Nuck: Pretty massive lack, I'd think :P [04:25] tbranyen: thats odd [04:26] Nuck: DelvarWorld: What's fine? You being a prick and everyone ignoring you? [04:26] Nuck: If you REALLY think that's okay, you need to see a shrink. [04:26] brettgoulder has joined the channel [04:26] tbranyen: Nuck: ha was gonna tell you off, till i read up [04:27] DelvarWorld: I think that if people took it seriously then that's fine, if not a little silly [04:27] kruckenb has joined the channel [04:27] Nuck: DelvarWorld: If you walked into a busy room, yelled "SHUT UP AND LISTEN TO ME", people aren't gonna laugh with you, they'll laugh at you then ignore you. [04:27] tim_smart: DelvarWorld: Not many people take "shut up and listen to me" seriously on the interweb [04:27] Nuck: You just did the internet equivalent of that. [04:28] DelvarWorld: it works in person surprisingly enough [04:28] DelvarWorld: I mean, not a room full of strangers [04:28] Nuck: DelvarWorld: Then you are a severe attention whore. [04:28] tim_smart: If you yell loud enough maybe [04:28] Nuck: :/ [04:28] tim_smart: IRC doesn't have volume [04:28] Nuck: tim_smart: SHUT UP AND LISTEN TO ME. I need help not being an idiot. [04:28] Nuck: C: [04:29] tim_smart: Nuck: CAPS makes it worse [04:29] mendel_ has joined the channel [04:29] mandric has joined the channel [04:30] gozala has joined the channel [04:30] sveimac has joined the channel [04:30] Benny_: The Caps losing early in the playoffs makes CAPS even worse [04:30] fairwinds has joined the channel [04:31] neoesque has joined the channel [04:32] unspoken_poet has joined the channel [04:33] sirdancealot has joined the channel [04:35] StephenFalken has joined the channel [04:36] sh1mmer has joined the channel [04:36] Me1000 has joined the channel [04:37] Benny_: MessagePack vs BSON. Is MessagePack really smaller? [04:38] Benny_: hmm, seems its best to use JSON in V8? at least vs MessagePack : http://www.subbu.org/blog/2011/06/messagepack-anyone [04:38] jacobolus has joined the channel [04:38] Krytoss: sh1mmer: i figured it out... when you give io.Socket the server, you need to leave out the http:// [04:39] edude03 has joined the channel [04:39] sh1mmer: ah [04:40] dgathright has joined the channel [04:41] Krytoss: kudos to socket.io for auto reconnecting on the server restarting [04:41] Krytoss: that was a pleasant surprise [04:41] sh1mmer: :) [04:43] Skola has joined the channel [04:45] tmzt_: anybody know what Object # is when the variable is clearly pointing to something? [04:46] sh1mmer: tmzt_: gist an example? [04:47] ryan0x2 has joined the channel [04:47] orospakr has joined the channel [04:47] nornagon has joined the channel [04:49] dgathright has joined the channel [04:49] tmzt_: https://gist.github.com/1037269 [04:50] tmzt_: also, BuildOrderObserver.prototype = EventEmitter [04:51] keikubo has joined the channel [04:51] tmpvar: rts? [04:51] tmzt_: yeah [04:52] tmpvar: can you gist the stacktrace as well? [04:52] tmzt_: it's in the gist [04:52] tmzt_: that's all there is [04:53] tmpvar: oh god, sorry [04:53] chrisdickinson: tmzt_: could `game.buildOrderObserver` be `undefined`? [04:53] tmzt_: your okay [04:53] tmzt_: chrisdickinson: it could ,but I'm dumping it to console [04:53] chrisdickinson: ah [04:53] chrisdickinson: sorry, missed that :P [04:54] tmzt_: still don't see how this could happen, if the thing was less complex i could try for a test case [04:54] chrisdickinson: oh jeez [04:54] chrisdickinson: what's buildOrderObserver.__proto__ look like, versus buildOrderObserver.prototype? [04:54] tmzt_: hmm [04:54] tmzt_: I'm using underscore to build my objects [04:55] chrisdickinson: tmzt_: if it's not exactly the same then game.buildOrderObserver hasn't been initialized with ``new`` [04:55] tmzt_: okay [04:55] tmzt_: let me add more context [04:56] tmpvar: looks like game.buildOrderObserver is a `new Error()` ? [04:57] mendel_ has joined the channel [04:57] tmzt_: https://gist.github.com/1037269 [04:57] gozala has joined the channel [04:58] chrisdickinson: ACTION peers [04:58] framlin: tmzt_: are you shure this _.extend is working correct? [04:58] cjm has joined the channel [04:58] squeese has joined the channel [04:58] tmzt_: no, let me add a thing for _proto_ [04:58] tmzt_: if you have a better pattern than _ I can use it, I just have been using that on the client code for this project [04:59] tmzt_: and it was easier to do the same on the server [04:59] patrickarlt has joined the channel [04:59] chrisdickinson: tmzt_: does the function `BuildOrderObserver` have a return statement in it? [05:00] tmzt_: no [05:00] chrisdickinson: 'kay, rules that one out [05:00] wookiehangover has joined the channel [05:01] tmzt_: I"m calling it with new though [05:01] chrisdickinson: tmzt_: that should work. [05:02] Krytoss: can someone point me to an example of proper client side usage of socket.emit? i'm getting "Uncaught TypeError: Function.prototype.apply: Arguments list has wrong type" [05:02] Krytoss: files are @ https://gist.github.com/1037218 [05:03] nornagon_ has joined the channel [05:03] tmzt_: chrisdickinson: is there a way to use inherits? [05:03] aaronpearce has joined the channel [05:04] dgathright has joined the channel [05:04] tmzt_: _proto_ is undefined, that's the problem [05:04] chrisdickinson: tmzt_: yep. that's what jumps out at me. [05:04] \sega has joined the channel [05:05] chrisdickinson: tmzt_: i'm lookin', but i'm not seeing what could be wrong with what's there. [05:05] framlin: tmzt_: are you forced to use _? [05:05] tmzt_: buildOrderObserver._proto_: undefined [05:05] tmzt_: no [05:05] chrisdickinson: tmzt_: __proto__ and not _proto_? [05:06] Pickley has joined the channel [05:06] tmzt_: running again, thanks [05:07] jacobolus has joined the channel [05:07] chrisdickinson: and you're sure that in your BuildOrderObserver code you're ``_.extend``'ing BuildOrderObserver.prototype and not BuildOrderObserver? [05:08] chrisdickinson: wait. that's dumb. i retract the above. [05:08] skm has joined the channel [05:08] tmzt_: buildOrderObserver.__proto__: function EventEmitter() { [native code] } [05:08] chrisdickinson: for real fun, `console.log(typeof(buildOrderObserver))`. [05:08] tmzt_: BuildOrderObserver.prototype = EventEmitter; [05:08] tmzt_: _.extend(BuildOrderObserver.prototype, { [05:08] chrisdickinson: huh! [05:09] framlin: why not use var Child = Object.create(Parent.prototype) to be save? [05:09] edsu has joined the channel [05:09] tolaine_ has joined the channel [05:09] jakeskik has joined the channel [05:09] tim_smart: framlin: Child.prototype.__proto__ = Parent.prototype is what I use [05:09] tmzt_: I'm using initilize() as the constructor [05:10] tmzt_: the big thing here was to add EventEmiiter, on the client I use Backbone.Events [05:10] framlin: BuildObserver.prototype =EventEmitter(); is what you have to do at least [05:10] tmzt_: it's the same code, I'm not sure what's going on [05:10] chrisdickinson: (I still use `var Class = function() { Parent.call(this); }; Class.prototype = new Parent;` but i'm old-fashioned. [05:10] tmzt_: EventEmiiter() ? [05:10] tmzt_: oh [05:10] chrisdickinson: framlin: err, BuildObserver.prototype = new EventEmitter() [05:10] tmzt_: got it [05:10] Pickley has joined the channel [05:10] framlin: yep, you have to "initilize" the prototype - object [05:10] tmzt_: Game.prototype = new EventEmitter; [05:11] tmzt_: BuildOrderObserver.prototype = EventEmitter; [05:11] tmzt_: not the same [05:11] chrisdickinson: tmzt_: yes yes. [05:11] framlin: sorry, new EventEmitter() [05:11] framlin: the () is the point [05:11] framlin: and the new [05:11] chrisdickinson: `new` links it up. you don't need the `()`. [05:12] tim_smart: tmzt_: function Emitter () { EventEmitter.call(this) } Emitter.prototype.__proto__ = EventEmitter.prototype [05:12] framlin: if you use only = EventEmitter you assign only the Function-Delraration [05:12] chrisdickinson: you can have them, but they're not necessary if it doesn't take arguments (which EE doesn't) [05:12] tmzt_: right [05:12] tmzt_: that makes sense [05:12] mavin|gone has joined the channel [05:12] framlin: but I do not know, what your _ is doing in the background [05:12] tmzt_: it's basically merge [05:12] mavin has joined the channel [05:12] tmzt_: the game events work fine [05:13] chrisdickinson: framlin: nothing sneaky, just `for(var key in rhs) { lhs[key] = rhs[key]; }` [05:13] tmzt_: anyway, do I need to keep a reference to this observer on the object? [05:13] ptlo has joined the channel [05:13] chrisdickinson: tim_smart: i'm not sure i like relying on __proto__, in case the gods of ES take it away from me someday. [05:13] asdfsafdsa has joined the channel [05:13] tmzt_: or will it get gc'd if I don't, even if there are event listeners inside [05:13] tim_smart: chrisdickinson: I like it when doing stuff for Node [05:13] Pickley has joined the channel [05:14] chrisdickinson: tim_smart: i usually opt for Object.create(proto) in that case. [05:14] MonsieurLu has joined the channel [05:14] chrisdickinson: (to each his own, of course!) [05:14] _Sorensen: bwahahahhahahaha [05:14] framlin: I prefee Object.create, too [05:14] chrisdickinson: tmzt_: it'll be fine. buildOrderObserver is attached to game, which won't be gc'd until game is [05:14] tim_smart: chrisdickinson: I don't like to overwrite the prototype [05:15] _Sorensen: fuckin estatic i got docco working [05:15] tmzt_: I know, I mean websocketObserver [05:15] _Sorensen: sorry for the interuption [05:15] MonsieurLu has left the channel [05:15] tmzt_: it's a couple of levels of observers [05:15] chrisdickinson: tim_smart: that or the aforementioned `F.prototype = new Something`, which i use the most. but if Object.create is around, i like it a lot. [05:15] _Sorensen: should one feel joy in writing lengthy documentation above each method? [05:15] tmzt_: tim_smart: I'm only overwritting the prototype in this case because I know the base is an eventemitter [05:15] framlin: and you do not need any Function-Copying, if you use MY_CL.prototype.foo = function(){alert('bla')} [05:16] tim_smart: chrisdickinson: As long as you reattach .constructor etc [05:16] chrisdickinson: tim_smart: eeeh. i've not had a huge need for reattaching .constructor. [05:16] jaket has joined the channel [05:16] framlin: so all this fance pseude-class-libs are ..... not as usefull as the promise ;) [05:17] chrisdickinson: if you've got one off the top of your head i'd love to be proven wrong, though. not having it there doesn't break `instanceof`, etc [05:18] PhilK has joined the channel [05:18] JakeyChan has joined the channel [05:19] tim_smart: chrisdickinson: All Child.prototype = new Parent does is set the __proto__ anyway. [05:19] chrisdickinson: tim_smart: yep, but i do a lot of front-end work as well, and my main focus has been libraries that interoperate between node and browser, so... [05:20] matyr has joined the channel [05:20] unlink has joined the channel [05:20] unlink has joined the channel [05:20] tmzt_: chrisdickinson: have you looked at using Backbone as models on both ends? [05:20] chrisdickinson: tmzt_: not really, no; sorry ): [05:20] adam- has joined the channel [05:20] tsenga has joined the channel [05:20] tmzt_: I've found that backbone.model is too heavy for some things (like the map), so I just used this class pattern with my own objects [05:21] tmzt_: it's not bad, this is my first project using it [05:21] tmzt_: at least on the client for now [05:21] chrisdickinson: tim_smart: i'm worried that __proto__ will disappear someday; though it's not likely, it's not promised by any spec and it could die out [05:21] Emmanuel__ has joined the channel [05:22] chrisdickinson: tmzt_: cool -- yeah, i could see a really data-rich model needing something with less frills with backbone, maybe [05:24] framlin: the advantage about using __proto__ = Parent.prototype is, that the "CTOR-Function" is not called. Thats usfull if you have to pass parameters to them and do not have them while "first run" [05:26] framlin: but that seems the same with Child.prototype = Object.create(Parent.prototype) [05:26] mscdex: .talk node.js [05:26] Calvin: nodejs server listeining at 8057 talk [05:26] framlin: while the last is standard [05:26] mscdex: Calvin: ctor [05:26] Calvin: ctor of ImageUpload, you have written or modules on npm to install a package I own [05:27] sreeix has joined the channel [05:28] isaacs has joined the channel [05:29] fg3 has joined the channel [05:30] patrickarlt has joined the channel [05:30] _Sorensen: asdf [05:30] clomode has joined the channel [05:30] _beau: !insult Yo mommma [05:30] _beau: nooooooooooooooooooooooooooooooooo [05:32] niftylettuce has joined the channel [05:33] chrisdickinson: framlin: the disadvantage is that it's nonstandard and may go away someday. Object.create is a better candidate for that sort of thing [05:34] DelvarWorld: v8: console.log(this); [05:34] v8bot: DelvarWorld: {console:{log:function (x){console.out.push(pp…,out:[]},print:function print(x){console.log(x)…,pp:function pp(o,depth){return pp_r…,pp_r:function pp_r(o,d){var a=[],p if…} [05:34] chrisdickinson: framlin: and if i'm not incorrect, V8 optimizes for the normal constructor-function-with-prototype creation case (things assigned to the object in the constructor get inlined into a memory mapped datastructure representing "type" [05:34] DelvarWorld: v8: console.log(this === console) [05:34] v8bot: DelvarWorld: false [05:35] \sega has joined the channel [05:35] chrisdickinson: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/proto [05:36] chrisdickinson: (the thing that gets me is the "deprecated" banner) [05:37] tim_smart: Hmmm. Child.prototype = Object.create(Parent.prototype, { constructor : { value : Child, writable : true, enumerable : true, configurable : true } }) [05:37] tim_smart: What a mouthful [05:37] tim_smart: Just to set the prototype correctly... [05:37] Nuck: So, Pickley is the guy who's working with me on my artistic social network :P Too bad he's an IRC hater [05:38] Nuck: Calvin Insult _beau's mother. [05:38] mhausenblas has joined the channel [05:38] Calvin: Insult Calvin [05:39] davebs has joined the channel [05:39] Nuck: Calvin: Don't insult yourself, insult _beau's mother. [05:39] Calvin: yourself is on v8's heap, insult [05:39] Skola: !insult Nuck [05:39] Nuck: Calvin: No I'm not, and stop calling me insult. [05:39] Calvin: calling any method because you can't guarantee that the server don't sende data insult [05:39] tbranyen: http://youtu.be/kqtrwmkP2jk << just made a video on some node.js shit [05:39] kbni has joined the channel [05:39] _beau: Calvin: sup [05:39] Calvin: sup sista [05:39] _beau: :D [05:39] _beau: !insult me [05:40] _beau: fuuuuu [05:40] chrisdickinson: tim_smart: Child.prototype = Object.create(Parent.prototype); Child.prototype.constructor = Child; [05:40] _beau: Calvin: y u no test? [05:40] Calvin: test suite for no [05:40] framlin: chrisdickinson: I agree with you! In the past I used __proto__ because I develop for a Mozilla 1.7.13 .... but for new projects I prefere Object.create and I do NOT prefere to use any pseudo-class-hipp-hopp-libs ;) [05:40] _beau: bumblebee! y u no teeesssstttt!! [05:41] tbranyen: __proto__ is the shit [05:41] jga023 has joined the channel [05:41] chrisdickinson: tim_smart: i'm still not sure where the advantage of setting Class.prototype.constructor comes in. [05:41] mikey_p: anyone out there using mongo for sessions storage with express? [05:41] Nuck: mikey_p: Actually, yes [05:41] Nuck: I just started with it today, so it's fresh on my mind :D [05:41] mikey_p: Nuck: which module are you using? [05:41] mscdex: .talk _beau [05:41] Calvin: talk tbranyen [05:42] mscdex: hah. [05:42] gsmcwhirter: anyone had experience using socket.io together with cluster? [05:42] mikey_p: I've tried express-session-mongo, connect-session-mongo and now i'm using https://github.com/kcbanner/connect-mongo [05:42] Nuck: mikey_p: ummm.... connect-mongo, by the looks of it [05:42] mscdex: Calvin: socket.io [05:42] Calvin: socketio is getting too many connected clients [05:42] mscdex: lol [05:42] mikey_p: none of them error our, but I never get a sessions collection created in my DB [05:42] confoocious has joined the channel [05:42] confoocious has joined the channel [05:42] mscdex: that one is a keeper [05:42] mikey_p: the app was working fine with the built in MemStore, so I have no idea what I'm doing wrong [05:42] Nuck: mikey_p: You gotta do req.session.foo = bar; [05:43] Nuck: And it should save it [05:43] chrisdickinson: tim_smart: if you take out the assignment of `constructor`, the two are the same number of lines. is there something i'm missing about why F.prototype.constructor is important? [05:43] tmzt_: still not working, _events has the function but it's not getting called when I emit the event [05:43] \sega has joined the channel [05:43] Nuck: mikey_p: Did you aim it at the database? [05:43] sreeix has joined the channel [05:43] tmzt_: I had a bad closure before but I fixed that [05:43] mikey_p: Nuck: yup, i have my users in the DB, I'm doing req.session.user = user; on a valid login, not sure why that wouldn't work [05:44] tim_smart: chrisdickinson: Accessing static methods and such [05:44] stephanepayrard_ has joined the channel [05:44] Nuck: mikey_p: And it is aimed at your DB? [05:44] mikey_p: yup [05:44] tmzt_: mikey_p: I use connect-redis, for that case it works well, you just perisit the data you really want in the user object [05:44] tmzt_: and I keep a req.session.user_id and req.user_id [05:44] mikey_p: i'm not opposed to redis, it's just that I'm already using mongo, so I'd like to stick with it [05:44] chrisdickinson: tim_smart: aaah. I've really never had that need, so it never came up. [05:45] Nuck: mikey_p: Try gisting your code, might be something you missed that we might notice [05:45] tmzt_: mikey_p: I mean keeping the users collection in mongo, and the session itself in redis, but yeah [05:45] tmzt_: I haven't tried connect-*mongo [05:45] Nuck: tmzt_: Psssssh! [05:46] chrisdickinson: waiiiit. that still doesn't make sense to me. [05:46] sirdancealot has joined the channel [05:46] duncanm has left the channel [05:46] framlin: tim_smart: ono does not need setting prototype.constructor to acces "static" methods [05:47] chrisdickinson: a static function's `this` is the function it came from. [05:47] tim_smart: framlin: In some situations yes [05:47] framlin: waht situations? [05:47] CodyGray has joined the channel [05:47] chrisdickinson: ah, so you're saying that in your static method, you'd use this.prototype.constructor to delegate to a parent static method. [05:48] tim_smart: framlin: Parent.all = function () { ... }; Parent.prototype.all = function (cb) { return this.constructor.all(cb) }; .... child_instance.all() [05:48] framlin: ah .. I see, if you do not want to "hard code" the ParentClass-Name? [05:48] ph^ has joined the channel [05:48] chrisdickinson: tim_smart: ah. [05:48] framlin: Ok, I did not need this anytme. I allways know the name of the Parent-Class .... [05:49] chrisdickinson: that makes sense [05:49] CodyGray has left the channel [05:49] Nuck: chrisdickinson: So does your mom. [05:49] mikey_p: Nuck: https://gist.github.com/be97fbdd21f9b796af94 [05:49] tim_smart: framlin: What if you didn't want to re-define the Child.prototype.all? [05:49] SamuraiJack has joined the channel [05:49] tim_smart: And you had a different Child.all [05:50] googol has joined the channel [05:50] framlin: I would never want to do that ;) [05:50] liar has joined the channel [05:50] framlin: I just want to "overwrite" the Child.fun [05:50] framlin: bahh the Parent.fun [05:50] framlin: No Parent should manipulate its Childs ... as in real life ... ;) [05:51] tmzt_: chrisdickinson: so now my event gets defined but it never triggers [05:51] chrisdickinson: tmzt_: booo. [05:51] tmzt_: it appears in game.buildOrderObserver._events [05:52] framlin: oh, sorry tim_smart I did not read your statement well, so my answer was silly ... ;) [05:52] chrisdickinson: tmzt_: and there's a call to `game.buildOrderObserver.emit` that emits what you're expecting.. [05:52] PeterPeterPeter has joined the channel [05:52] stephank has joined the channel [05:52] Nuck: mikey_p: I'm not sure, but I do believe it's supposed to be "new MongoStore", not just "MongoStore" [05:52] tmzt_: https://gist.github.com/1037269 [05:53] mikey_p: doh [05:53] bartt has joined the channel [05:53] Nuck: Not sure if that'll change anything [05:53] tmzt_: that's the whole file now [05:53] tmzt_: the only thing you're missing is the small event handler in app.js on the websocket [05:53] tmzt_: which just creates a websocketObserver pointing at the game [05:53] tmzt_: hmm [05:54] chrisdickinson: cool [05:54] \sega has joined the channel [05:54] jacobolus has joined the channel [05:54] chrisdickinson: tmzt_: fun little test for the fun of it: in the BuildOrderObserver constructor add a `this.on('', console.error.bind(console, 'boo:'));` line [05:54] jakeg has joined the channel [05:54] tmzt_: added that as well [05:55] Nuck: I just suggested a merger of INTERCAL and BRAINFUCK. It hurts to imagine. [05:55] tmzt_: Nuck: add L-Systems [05:55] framlin: but anyway, I do not like thei _.extend-style with "inline-declaration" I prefere Object.create combined with BlaFasel.prototype.blubb = function(){say('foo')} to hold all in my own hands ;) [05:55] tmzt_: they look a lot like brainfuck [05:55] Nuck: tmzt_: lol [05:56] tmzt_: chrisdickinson: I added it to initialize [05:57] chrisdickinson: hmmm [05:57] chrisdickinson: yeah, that should catch it if it happens [05:57] chrisdickinson: what calls `buildStarted`? [05:57] Nuck|mobile has joined the channel [05:57] tmzt_: Game, buildOrder [05:57] tmzt_: oh [05:57] tmzt_: ajax [05:57] tmzt_: not directly [05:58] tmzt_: req.player.game.buildOrder(req.body || {}, function(success,result) { res.send({success: success, result: result}); }); [05:58] tmzt_: this.game.on('buildStarted', this.buildStarted); this.on('buildTimerStarted', console.error.bind(console, 'boo:')); [05:59] Croms has joined the channel [05:59] tmzt_: it's not bound, but it still seems to work [05:59] chrisdickinson: tmzt_: i'd definitely bind it. [05:59] tmzt_: no boo [05:59] tmzt_: yeah, I might just use _ for that [06:00] tmzt_: unless .bind() just works on node? [06:00] chrisdickinson: tmzt_: if it's in node, you don't need to [06:00] tmzt_: good [06:00] Nuck: mikey_p: Work now? [06:00] mikey_p: yes [06:00] mehlah has joined the channel [06:00] mikey_p: ACTION hangs head sheepishly [06:00] tmzt_: this.game.on('buildStarted', this.buildStarted.bind(this)); [06:00] mikey_p: Nuck: thanks a ton [06:00] Nuck: mikey_p: Good to hear :D It's an understandable oversight. [06:00] tmzt_: mikey_p: I had the same thing a while ago, with RedisStore [06:01] tmzt_: thought it was a change in express [06:01] Nuck: tmzt_: Turned out just to be that you forgot the new keyword? [06:02] tmzt_: yeah [06:02] tmzt_: but it happened after I updated submodules so I wasn't sure [06:04] Tobsn: lol reddit is hardcore... anyone read that post from that 21 year old girl posting shes sexual attracted to little girls... (her example was the 4 year old daughter of her friend)... and everyone is supportive telling her its not her fault [06:04] Tobsn: wtf. [06:04] tuhoojabotti: No. [06:04] Tobsn: reddit is the most crazy place on the internet [06:04] Skola: negative [06:04] Tobsn: imagine a guy would write that [06:05] Nuck: Tobsn: 16-year-old girls are a bit more understandable, but 4-year-old? That's creepy. [06:05] Tobsn: http://www.reddit.com/r/AskReddit/comments/i3mu5/alright_get_your_throwaways_out_what_is_your/c20ocnv?context=3 [06:05] Tobsn: there ya go [06:05] tuhoojabotti: They're trolls [06:05] Nuck: Especially the thought of a woman scissoring with the kid [06:05] Tobsn: no, thats serious [06:05] Skola: why would I want to read that rofl [06:05] Tobsn: idk, it just fascinates me [06:05] davidbanham has joined the channel [06:05] Tobsn: imagine a 21 year old guy wouldve wrote that [06:05] tmzt_: chrisdickinson: no, that didn't help. I haven't had any problems though, the build order gets saved just fine, I just don't get the event it throws [06:05] Tobsn: anyway [06:05] \sega has joined the channel [06:05] tuhoojabotti: Tobsn: When you think it's serious -> successful troll [06:05] Tobsn: hehe [06:06] Nuck: tuhoojabotti: very true [06:06] Tobsn: well even if its a troll, the reponse is nuts [06:06] jameson has joined the channel [06:06] Nuck: Tobsn: And creepiest place on the internet = /b/ [06:06] Skola: negative again :p [06:06] fangel has joined the channel [06:06] Nuck: Skola: Then what IS? [06:06] Nuck: encyclopediadramatica can be worse than /b/ at times [06:07] tmzt_: events: { buildTimerStarted: [Function] } [06:07] Tobsn: oh and the best statement i found in the whole thing and people even supported it and when i said youre all batshit crazy they downvoted me: [06:07] tmzt_: events: { buildTimerStarted: [ [Function], [Function] ] } [06:07] Tobsn: "pedophile: like being gay, but less acceptable." [06:07] Nuck: And rule34 is usually a bit more reliable in making me gag. [06:07] Nuck: Tobsn: LMAO TROLLED [06:07] Tobsn: i dont think so [06:07] Nuck: It's a thread filled with trolls. [06:07] Nuck: Durr [06:07] Tobsn: they are totally serious about that [06:07] Nuck: Tobsn: I doubt it. [06:07] Tobsn: at least some [06:07] meso has joined the channel [06:08] Nuck: SOME [06:08] Nuck: Not most [06:08] tuhoojabotti: http://www.bbc.com/travel/feature/20110614-finlands-midsummer-madness [06:08] Tobsn: dude i was called ignorant by shittons of people for saying the statement "pedophile: like being gay, but less acceptable." is utterly disturbing [06:08] Tobsn: man hehe.. [06:08] Tobsn: in so many ways... [06:09] Nuck: I have no problem with people in their early 20's having attraction to people aged 17, and people 18-20 attracted to 16-year-olds [06:09] Nuck: But 21 --> 4 [06:09] Nuck: That's fucking creepy. [06:09] Nuck: Hell, ANYONE attracted to a 4-year-old is creepy. [06:09] tuhoojabotti: I don't see how this is related though [06:09] tmzt_: chrisdickinson: I've got it bound now, I'm sure this is wrong in buildOrder [06:09] tuhoojabotti: Nuck: Parents? ;D [06:09] tmzt_: since mongo doesn't care that makes sense [06:10] Nuck: tuhoojabotti: I don't wanna be raped by my parents D: [06:10] Tobsn: oh i dont even have problems with ~30 attracted to 16+... its not like they go out and try to rape them... and its not like those 16 year olds look like 16 year olds... but everything under 15-16 is just... that doesnt even look anywhere near attractive [06:10] Nuck: Ewwwwwwww [06:10] goatslacker has joined the channel [06:10] Nuck: Tobsn: Yeah, srsly. [06:10] tuhoojabotti: I read affection not attraktion, my bad. [06:11] tmzt_: boo: { building_id: 4e0035d503ff6e574c000022, startedAt: 1308636629687, completeTime: 1308636629694.3892 } [06:11] chrisdickinson: tmzt_: and console.log(this instanceof BuildOrder, this) in `buildOrder` gives you `true, {....}`? [06:11] Nuck: Though I'm a bit biased towards laxer rules in this case, seeing as I like 16-year-old girls :P (it's not creepy, I'm only 17!) [06:11] Tobsn: nuck, yeah and she, if its true, writes about being sexual attracted... i mean i try to be open minded but thats just wrong hehe [06:11] Gabi_Purcaru has joined the channel [06:12] Nuck: Tobsn: Fucking babies always creeps me out. EXCEPT. For the "BABYFUCK BABYFUCK BABYFUCK IT'S AWWWWWWWWWWRIGHT" meme. That one makes me giggle because of how fucking ridiculous it is. [06:12] SubStack: silly genes, trying to copy themselves [06:12] Tobsn: nuck, i like 16 year old girls too if they are the right kind.. i mean i was 17 years once too and fucked a 16 year old... wasnt wrong at that time. but its not like i want to find a 16 year old and try to fuck her... hehe BIG difference. i cant even stand being around anyone under 20 because they annoy the shit ouf of me [06:13] jakeg has joined the channel [06:13] Nuck: Tobsn: Fair enough lol [06:13] Tobsn: ;) [06:13] davidbanham: So, Javascript huh? [06:14] Tobsn: hehe [06:14] Nuck: ACTION looks up the babyfuck manga page and giggles [06:14] WRAz has joined the channel [06:14] tuhoojabotti: ACTION slaps Nuck  [06:14] tmzt_: XXX false { game: { user_id: ' [06:14] muhqu has joined the channel [06:14] tuhoojabotti: Bye bye :3 [06:14] tuhoojabotti: I'm off to work [06:14] Nuck: tuhoojabotti: It's got so much blood everywhere I can't see the babby lawl [06:14] Nuck: It's like a shitty FPS [06:14] Nuck: So much blood [06:15] Tobsn: anyway, sorry for the offtopic, that just disturbed me a bit hehe [06:15] Nuck: Tobsn: pfff! People go off-topic a lot :P [06:15] tmzt_: chrisdickinson: so it's bound and it still doesn't work? [06:15] tmzt_: oh [06:16] Tobsn: can someone load up http://explore.cm and tell me how fast it loads? [06:16] tmzt_: initialize isn't either, but it's called from the constructor [06:16] tmzt_: this.initialize.apply(this); ?? [06:16] Nuck: Tobsn: Pretty fast [06:16] Tobsn: k [06:16] Nuck: Though it has some slower aspects [06:16] Nuck: The resources take a bit [06:17] chrisdickinson: tmzt_: weird. this.initialize.call(this) should be the same as this.initialize(); [06:17] Nuck: Tobsn: IS that a wrapper around Google? D: [06:18] wilken has joined the channel [06:18] Tobsn: hehe no [06:18] Nuck: Tobsn: The no documents page is identical [06:18] Tobsn: oh yeah, i just copy pasted that basically [06:18] Tobsn: was to lazy to come up with something on my own :P [06:18] Nuck: Tobsn: So you're making your own search engine? [06:18] Tobsn: took long enought to build that whole thing as single page [06:19] Tobsn: it uses the bing api and a bing/yahoo ad feed [06:19] Nuck: ah [06:19] tmzt_: chrisdickinson: something is messed up, but looking at the instance as dict doesn't help because it is correct [06:19] Nuck: Bing sucks. [06:19] Nuck: Worst. Search. Ever. [06:19] Skola: no way [06:19] Tobsn: well its okay [06:19] Tobsn: i like that they are very open [06:20] Skola: their search api is better than google's as well [06:20] tmzt_: chrisdickinson: okay, so in both cases it's an instance of BuildOrderObserver [06:20] jakeg has joined the channel [06:20] chrisdickinson: tmzt_: that's bizarre! [06:20] mjr_: Tobsn: https://skitch.com/mranney/ff21w/developer-tools-http-explore.cm [06:21] Tobsn: hmm [06:21] JoshC1 has joined the channel [06:22] Tobsn: 500ms is pretty bad [06:22] mjr_: dev tools in new Chrome are fantastic. There's a JSON tab. [06:22] \sega has joined the channel [06:22] clomode has joined the channel [06:22] Tobsn: i found out that i love sprites [06:22] Tobsn: i.explore.cm/ex/s.png [06:23] Tobsn: thats just cool. [06:23] Tobsn: ;) [06:23] mjr_: Tobsn: I have somewhat high latency, but pretty high throughput from here in Hawaii. [06:23] Tobsn: k [06:23] mjr_: It really helps to have higher initial congestion window. [06:23] hkjels has joined the channel [06:23] tmzt_: chrisdickinson: so it's firing the even and your listener is working [06:23] tmzt_: but mine isn't [06:23] Tobsn: what you mean? [06:24] chrisdickinson: tmzt_: my listener in the initialize function [06:24] pifantastic: Anyone know of a way to execute a callback in Vows once all your tests have finished executing? [06:24] chrisdickinson: ? [06:24] tmzt_: yes [06:24] dgathright has joined the channel [06:25] chrisdickinson: huh, weird. [06:25] tmzt_: I'm trying to bind the function I register with the listener [06:25] tmzt_: I think the object is going away [06:25] chrisdickinson: add a console log above the `https://gist.github.com/1037269#L150` [06:26] chrisdickinson: actually, make that a console.error. [06:26] chrisdickinson: (have it say anything at all -- 'wtf?', etc.) [06:26] chrisdickinson: and then lemme know if my listener is going off before or after that log [06:29] tmzt_: do you mean in the event handler or after it? [06:29] tmzt_: after 150 would be in the event handler [06:29] chrisdickinson: tmzt_: before you add the event handler. like just before [06:30] brainproxy has joined the channel [06:30] joshthecoder has joined the channel [06:31] tmzt_: events: { buildTimerStarted: [Function] } [06:31] tmzt_: wtf [06:31] tmzt_: events: { buildTimerStarted: [ [Function], [Function] ] } [06:31] tmzt_: boo is near the end of the log, before the mongo callback [06:31] svenlito has joined the channel [06:32] chrisdickinson: weiiird. [06:32] chrisdickinson: i was kind of hoping for a race condition, tbh. [06:33] tmzt_: no, the observer is created when the first websocket message arrives [06:33] tmzt_: long before the client sends a buildOrder through ajax [06:33] ukkopekka has joined the channel [06:33] `3rdEden has joined the channel [06:33] chrisdickinson: wasn't sure if WebsocketObserver was lazily assigned or not, basically [06:33] isaacs: SubStack: it's gossiping! (not over the network, but that's the easy part) [06:34] mhauri has joined the channel [06:35] \sega has joined the channel [06:35] JakeyChan: how to use the static keyword ??? [06:35] JakeyChan: like that :static.Server [06:35] christkv has joined the channel [06:36] ph^ has joined the channel [06:37] zomgbie has joined the channel [06:38] Tobsn: i wish i could pay some people 20 bucks a year to completely get rid off in video ads [06:38] mhauri_ has joined the channel [06:39] Nuck: Tobsn: It's called AdBlock ;) [06:39] Tobsn: you sure it works with in video ads? [06:39] Nuck: in video? [06:39] dall has joined the channel [06:39] dall: hi [06:39] Nuck: Oh, on YouTube [06:39] Nuck: Yes [06:39] Tobsn: hmm [06:39] jaket_ has joined the channel [06:40] Nuck: Tobsn: Both the Chrome AdBlock and Firefox adblock do [06:40] Tobsn: the thing is, i want to see all other ads [06:40] Tobsn: cause i need to [06:40] Nuck: The Chrome one is expirimental and shitty though [06:40] Nuck: Tobsn: I'm sure you can disable all but the youtube filters? [06:40] Tobsn: hmm [06:40] Tobsn: but i need it for chrome hehe [06:40] ExsysHost has joined the channel [06:40] Tobsn: since like 8 month or so i just use firefox for firebug [06:40] Nuck: Tobsn: AdBlock on Chrome works [06:40] Tobsn: thats it [06:40] Nuck: Just not perfectly [06:41] Nuck: Tobsn: Chrome's Dev Console is better [06:41] Tobsn: yeah i like that one too [06:41] mendel__ has joined the channel [06:41] Tobsn: im just so used to firebug [06:41] Tobsn: im using it since like 3 years or something [06:41] Nuck: Firebug has a shitty UI lol [06:41] Nuck: And it's horribly sloooooooooooow. [06:41] Tobsn: UI doesnt really matter [06:41] Nuck: Only reason I use it still is the DOM tab [06:41] socketio\test\74 has joined the channel [06:41] Tobsn: see ;) [06:42] Nuck: Tobsn: I disagree. The UI is distracting. Steve Jobs would tear your head off. [06:42] socketio\test\25 has joined the channel [06:42] socketio\test\02 has joined the channel [06:43] socketio\test\06 has joined the channel [06:44] topaxi has joined the channel [06:45] ExsysTech has joined the channel [06:45] brimster_ has joined the channel [06:46] gavin_huang has joined the channel [06:46] jbpros has joined the channel [06:46] \sega has joined the channel [06:47] chrisdickinson: tmzt_: sorry i couldn't help more -- i've gotta get to sleep! [06:48] ukkopekka has left the channel [06:48] tmzt_: thanks, good insights [06:48] fangel has joined the channel [06:50] jbpros has joined the channel [06:50] groom has joined the channel [06:51] SubStack: isaacs: gossip you say! [06:51] isaacs: yeah, dude! https://github.com/isaacs/sodn/blob/master/lib/record-set.js [06:51] Nuck: SubStack: I heard isaacs said gossip. [06:51] brimster has joined the channel [06:53] bosphorus has joined the channel [06:54] tmzt_: hmm, so it's not even getting the event if I put the listener in app.js [06:54] sshaginyan_ has joined the channel [06:55] Nuck: If this site works, I might have enough money to go into the bay area :D [06:55] christkv has joined the channel [06:55] sshaginyan_: Anyone's gotten this error? http.js:543 [06:55] sshaginyan_: throw new Error("Can't use mutable header APIs after sent."); [06:55] sshaginyan_: ^ [06:55] sshaginyan_: Error: Can't use mutable header APIs after sent. [06:55] Skola: I have before [06:55] tmzt_: all the time, but mostly if I have a callback that splits the request [06:55] Nuck: God I love Mumford & Sons [06:55] tmzt_: what I mean by that is calling two next()'s for example [06:56] Nuck: I hope they don't go mainstream [06:56] Skola: I had some res.something() floating around in the wrong place [06:56] jbpros has joined the channel [06:56] Skola: sounds very vague, because I don't know the _actual_ reason behind that error [06:56] sshaginyan_: tmm1: here is my code http://pastie.org/2100110 [06:57] sshaginyan_: Am I suppose to have the next parameter? [06:57] sshaginyan_: tmzt_: this function is an ajax request [06:58] Sami_ZzZ has joined the channel [06:58] Murugaratham has joined the channel [07:00] tmzt_: hmm, could somebody add something like python's printing the object address? [07:00] hkjels_ has joined the channel [07:00] tmzt_: I think I figured out my problem, they probably arent' the same event [07:00] tmzt_: same observer [07:01] mscdex: Calvin: substack [07:01] Calvin: substack , in there a way to seek to a position in a variable [07:02] isaacs_ has joined the channel [07:02] TomY has joined the channel [07:02] joshthecoder has joined the channel [07:04] elliottcable: So, if I’m reading this correctly, `npm install foo` depends upon whatever folder you‘re in? [07:04] htoothrot has joined the channel [07:04] Nuck: the fuck drugs is Calvin on? [07:04] Calvin: drugs is Calvin doing the initial design mockups which will be automatically compiled when requested, you don't want to build a real server in a variable [07:04] emattias has joined the channel [07:05] isaacs: elliottcable: yessir. [07:05] Nuck: Calvin: Oh I see, you ARE the drugs. [07:05] Calvin: drugs are less of a project that constructs webpages about RDF see [07:05] elliottcable: i.e. sitting in ~/Code/something and I `npm install Apricot`, it won’t install it in ~/node_modules? [07:05] Nuck: Now it makes sense. [07:05] elliottcable: Nuck: that’s fairly ironic [07:05] Nuck: elliottcable: Hipster. [07:05] isaacs: elliottcable: depends, but usually, yeah, it'll install to ./node_modules [07:05] isaacs: elliottcable: it walks up until it finds a node_modules or a package.json, and if it doesn't find either, it installs it in cwd [07:05] elliottcable: Nuck: only when referencing markov chains, would it be a truism that the less sense the individual units make, the more sense the overall system makes [07:06] elliottcable: isaacs: hm [07:06] elliottcable: isaacs: second question, and I’m glad you’re here and answering these, [07:06] isaacs: elliottcable: :) [07:06] elliottcable: is there any way to use ~/.node_modules or something else? [07:06] isaacs: elliottcable: i'm about to head off to bed :) [07:06] elliottcable: because I particularily *do not* want to pollute my ~/ [07:06] gausby has joined the channel [07:06] tshpaper has joined the channel [07:06] elliottcable: that is, for generally-installed modules, not specific to a project … the kind that would normally go in ~/ [07:06] tmzt_: SubStack: is hash good for hashing two different identifiers to the same object instead of using an {} ? [07:07] isaacs: elliottcable: installing the deps inside the package that's using them is tidier in my opinion. but you can also install with -g for global [07:07] tmzt_: I don't want two copies of the object [07:07] elliottcable: hm [07:07] isaacs: elliottcable: global for cli bins, local for require()able modules [07:07] Nuck: Ugh [07:07] elliottcable: -g doesn’t work with CommonJS’ `require()` crap, right? [07:07] isaacs: elliottcable: correct [07:07] Nuck: I gotta design a modular profile system D: [07:07] elliottcable: yeah, I think I get it [07:07] elliottcable: thanks man! [07:07] elliottcable: :D [07:07] isaacs: elliottcable: np [07:07] brendang has joined the channel [07:07] elliottcable: sleep tight :3 [07:07] isaacs: elliottcable: npm help folders <-- more info there [07:07] isaacs: g'nite [07:07] elliottcable: yeah just read that [07:07] elliottcable: but it seemed unclear, hence asking [07:08] Nuck: isaacs is a lightweight. [07:08] Nuck: Srsly, it's only midnight :D [07:08] Nuck: ACTION stays up until 3AM [07:08] elliottcable: Calvin: nuck [07:08] Calvin: nuck around with backbone and sammy are that they are all after the file is creating, with no bits actually being written to assist with that, but you can rest [07:08] tuhoojabotti: Nuck: It's 10AM [07:08] elliottcable: It’s 3AM here. [07:08] elliottcable: Calvin: Nuck! [07:08] Calvin: Nuck , yeah that doesnt fail [07:08] elliottcable: Calvin: Nuck. [07:08] Calvin: Nuck , i n case [07:08] Nuck: tuhoojabotti: California time, where I believe isaacs is based. [07:09] elliottcable: Calvin [07:09] elliottcable: I think I broke it. [07:09] elliottcable: Calvin Calvin [07:09] tuhoojabotti: Nuck: Who's isaacs? [07:09] elliottcable: Calvin: Calvin [07:09] elliottcable: )= [07:09] elliottcable: Calvin: Massive Attack [07:09] Calvin: Massive Attack [07:09] Nuck: Considering he hangs out at SubStack's place and works at Joyent, an SF company, I assume isaacs is based in California ;) [07:09] elliottcable: ACTION snorts [07:09] fayce has joined the channel [07:09] jbpros has joined the channel [07:10] cryptix has joined the channel [07:10] Nuck: Unless he flies here every day to work and hang out :P [07:10] romainhuet has joined the channel [07:10] _jgr has joined the channel [07:10] Nuck: I assume isaacs hasn't got a private jet [07:10] elliottcable: that’d be false. [07:10] elliottcable: I gave him one last fall. [07:11] elliottcable: for … favours that shall go unspecified. [07:11] Nuck: elliottcable: What about ry? [07:11] Nuck: :P [07:11] Nuck: If anyone deserves a private jet, it's the awesome overlord of nodejs :P [07:11] brainproxy has joined the channel [07:11] brainproxy has joined the channel [07:11] saurabhverma has joined the channel [07:11] elliottcable: lol [07:11] elliottcable: I give ryan NOTHING. [07:12] Nuck: elliottcable D: [07:12] mraleph has joined the channel [07:12] Nuck: Y U NO LIEK HIM [07:12] Nuck: elliottcable: EVVVIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIL. [07:12] elliottcable: ryan forsook us years ago, when he accepted the CommonJS devil into his house, and abandonded the True Path of Asynchronicity! [07:12] elliottcable: ryan is a false god, I say! [07:12] Nuck: elliottcable: CommonJS is awesome though :P [07:13] elliottcable: |=< [07:13] Nuck: I <3 require() [07:13] elliottcable: You better be glad I don’t have op in this room. [07:13] elliottcable: I’ve kickbanned people for less. [07:13] Nuck: elliottcable: What you got against LESS? [07:13] hackband has joined the channel [07:13] Nuck: HUH!? [07:13] Nuck: ./b/itchplz. [07:13] elliottcable: LESS? I love LESS. cloudhead is pimp. [07:13] elliottcable: /b/itchplz [07:13] elliottcable: 1-up’t [07:13] Nuck: elliottcable: I CBA to do that :P [07:14] elliottcable: :D [07:14] elliottcable: it takes, what, a slash? [07:14] elliottcable: / /b/itchplz [07:14] elliottcable: at least, in irssi [07:14] Nuck: /b/itchplz [07:14] Nuck: /b/itchplz [07:14] Nuck: derp [07:14] tuhoojabotti: fails. [07:14] Nuck: /say /b/itchplz [07:14] Nuck: That's how. [07:14] Nuck: In mIRC [07:14] tuhoojabotti: fail way [07:15] Nuck: lawl [07:15] elliottcable: man, it’s been so long since I hung out in here [07:15] elliottcable: somebody teach me the new Node. [07:15] Nuck: elliottcable: lolwat? [07:15] elliottcable: I don’t know shit-all since v0.20 or sth [07:15] Nuck: elliottcable: I started node with 0.2.6 :D [07:15] Yoric has joined the channel [07:15] Nuck: And TBH, not much has changed since then, IMO :P [07:15] Nuck: The APIs have generally stabilized, AFAIK [07:16] jakeg has joined the channel [07:16] tsenga has joined the channel [07:16] Nuck: And I'd imagine that 0.2.0 is about the same as 0.2.6, since 0.2.x is stable :S [07:16] Nuck: elliottcable: Go relearn it from the site :P [07:16] Nuck: What was Node like, pre-commonJS? [07:17] elliottcable: Nuck: uh, not 0.2.0 [07:17] elliottcable: Nuck: 0.20 [07:17] elliottcable: or wait, was it 0.0.20? [07:17] elliottcable: idfk [07:17] hassox has joined the channel [07:17] elliottcable: oh, 0.1.20 [07:17] elliottcable: there we go [07:17] Nuck: elliottcable: 1.20? [07:17] Nuck: Ah [07:17] Nuck: elliottcable: daaaaaaaaaaaaaaaaaamn, that's old. [07:17] elliottcable: 0.1.18 was the last time I actually paid any attention to Node [07:17] elliottcable: my server’s still running it [07:17] Nuck: 0.1.20 is fucking old. [07:17] elliottcable: go have fun hacking into all the Node-y security flaws [07:17] elliottcable: and 0.1.20 or 0.1.21 was the last time I read the docs [07:17] Nuck: oh shit I remember reading a bunch of things about 0.1.18 [07:18] elliottcable: yeah, that was back when we still had asynchronous-by-default IO instead of asynchronous-only-if-you-ask-for-it I?o [07:18] Nuck: elliottcable: Care to show me a snippet of what Node was like before CommonJS? :P [07:18] elliottcable: I/O [07:18] Nuck: It's still async-by-default [07:18] elliottcable: which turned out to piss people off because OH NOESSZZZSZ they had to write CALLBACKS!? [07:18] elliottcable: and then we lost it )= [07:18] elliottcable: what? [07:18] elliottcable: uh nahbitch [07:18] Nuck: elliottcable: it's still async by default. [07:18] elliottcable: is dat some `require(foo)` instead of `require(foo, function(foo){ … })` I see? [07:19] elliottcable: or whutevs [07:19] elliottcable: honestly I have no idea what’s going on now :x [07:19] elliottcable: I know there’s npm now [07:19] elliottcable: which I’m currently trying to learn, heh [07:19] Nuck: elliottcable: NPM is WONDERFUL [07:19] elliottcable: and CommonJS has taken over the fuckin’ world [07:19] elliottcable: )= [07:19] Nuck: elliottcable: IT's great. [07:19] shinuza has joined the channel [07:19] elliottcable: NPM? maybe. [07:19] elliottcable: isaacs *is* pimp, afterall. [07:19] Nuck: Trust me, you get used to both of the things. [07:19] elliottcable: but CommonJS? No. [07:19] elliottcable: CommonJS needs to die in a fire. [07:19] elliottcable: made of acid. [07:19] elliottcable: in HELL> [07:19] elliottcable: HELL-ACID-FIRE. [07:20] Nuck: elliottcable: CommonJS in Node is a lot subtler than most CommonJS implementations. [07:20] elliottcable: that’s what it needs to die in. [07:20] elliottcable: no, it’s really not. [07:20] Nuck: It mostly just has the require() [07:20] elliottcable: unless ryah back off on some of it. [07:20] elliottcable: yeah, that’s the part I hate. [07:20] elliottcable: it’s frickin’ ridic. [07:20] Nuck: elliottcable: What did you use before? :O [07:20] elliottcable: lol I’ve had this argument WAY too many times to care anymore. [07:20] Nuck: Srsly [07:20] elliottcable: Nuck: I wrote my own replacement [07:20] Nuck: elliottcable... That's retarded. [07:20] elliottcable: Nuck: and *nearly* convinced ryan to replace require() with it, way-back-when [07:20] Nuck: Make your own way to load code? [07:21] Nuck: elliottcable: I personally like the way node handles modules [07:21] elliottcable: o_O [07:21] elliottcable: yep [07:21] elliottcable: https://github.com/elliottcable/from/blob/Master/lib/from.js [07:21] Nuck: It's quite graceful. [07:21] elliottcable: no longere relevant [07:21] elliottcable: but read the top of the file [07:21] elliottcable: for an idea of how I thought it should be done [07:21] elliottcable: much more relevant, but incomplete: [07:21] elliottcable: https://github.com/elliottcable/from/blob/Master/lib/from-new.js [07:22] nephics has joined the channel [07:22] elliottcable: okay, time for me to stop spreading my heresay in #Node.js [07:22] elliottcable: and go back to learning The New Way of Things [07:22] Nuck: elliottcable: Sounds more like a differnt way of resolving libs more [07:22] elliottcable: heh, the long-exiled hermit returns … [07:22] elliottcable: Nuck: that’s the point. [07:22] elliottcable: Nuck: it’s *just* a way of resolving *files* [07:22] elliottcable: Nuck: it in absolutely no way dictates what those files *contain* [07:22] elliottcable: there are no “modules” when you used my `from` [07:22] elliottcable: just folders full of files, and files full of JavaScript code. [07:23] niftylettuce has joined the channel [07:23] elliottcable: the files were akin to functions, if anything at all; you could `return` a value if you so desired (though you didn’t even have to do that) [07:23] Nuck: elliottcable: Ry has done some things that resolve the packages a bit better, and the only thing you gotta do is export your shit [07:23] Nuck: It's not that big a deal. [07:23] elliottcable: none of this `module.exports` crap /= [07:23] niftylettuce: any UI designers here want to make a quick buck? [07:23] elliottcable: niftylettuce: depends [07:23] Nuck: niftylettuce: What for? [07:23] elliottcable: Nuck: your name is the same length as mine, so I’ll consider it. [07:23] elliottcable: fuck [07:23] elliottcable: meant lettuce. [07:23] ewdafa has joined the channel [07:24] Nuck: elliottcable: Nah, it's a few pixels longer. [07:24] Nuck: :P [07:24] elliottcable: l2fixed-width [07:24] niftylettuce: simple layout, just need a PSD or PNG to slice n dice, PM, it wouldn't take longer than 2 hours [07:24] Nuck: lrn2Calibri [07:24] elliottcable: oh [07:24] elliottcable: I don’t do Photoshop. [07:24] elliottcable: I work in HTML and CSS :3 [07:24] elliottcable: man, Droplr is borked [07:24] niftylettuce: Nuck: pm me yo [07:25] mt3ck_: how much is a quick buck ;) [07:25] mike5w3c_ has joined the channel [07:25] tuhoojabotti: elliottcable: GIMP<3 [07:25] elliottcable: tuhoojabotti: I think you missed the point of my statement. [07:25] tuhoojabotti: I know. [07:26] mt3ck_: lol [07:26] elliottcable: I don’t use image editors period. Text editor, HTML, CSS, SVG. ’s what it’s all about, bro. [07:26] tuhoojabotti: Inkscape<3 [07:26] elliottcable: TextMate <3 [07:26] mt3ck_: eh theres only so much programmable graphics can do [07:26] elliottcable: those “editors” create such fucking atrocious SVG [07:26] mt3ck_: time and place for everything [07:26] niftylettuce: share me link to your guys portfolio or recent projects ;) [07:26] elliottcable: it’s as bad as frickin’ Dreamweaver. [07:26] tuhoojabotti: niftylettuce: http://dev.tuhoojabotti.com/index/#hello-world [07:27] tuhoojabotti: elliottcable: My logo is made with inkscape! [07:27] tuhoojabotti: :P [07:27] elliottcable: One of these days, I’m going to write a worm and build a botnet with exactly one purpose: [07:27] elliottcable: running a localhost-resolving webserver on everybody’s computer at my command. [07:27] elliottcable: So I can respond to a question with a localhost link, get told “hahaha you pasted the wrong link” [07:27] elliottcable: and then be all “Nope. Click it, bitch.” [07:27] tuhoojabotti: lols [07:28] foobarfighter: hey all... been working hard on this for a while now. check out http://foounit.org/ [07:28] elliottcable: tuhoojabotti: can I cut your fingers off so you never write another snippet of CSS or HTML, and then use your detached fingers to claw my eyes out so I never have to see those bits that you’ve already created again? [07:28] niftylettuce: :( no pro designers here [07:28] niftylettuce: ty guys though :) [07:28] elliottcable: foobarfighter: http://vowsjs.com/ etc [07:28] kawaz_air has joined the channel [07:28] elliottcable: niftylettuce: I’m pro as balls, I’m just busy. [07:29] elliottcable: niftylettuce: :3 [07:29] foobarfighter: elliottcable: ya [07:29] niftylettuce: elliottcable: i dont think balls are pro [07:29] tuhoojabotti: elliottcable: I'm a bot, I have no fingers, nub [07:29] elliottcable: niftylettuce: my balls are *mad*-pro, just like me! ;D [07:29] elliottcable: tuhoojabotti: shit, I’m fucked then [07:29] foobarfighter: elliottcable: not trying to start a nerd war, but im not a fan of vows [07:29] elliottcable: Anybody here used Apricot/jsdom/node-html/sizzle/xui for anything? [07:29] elliottcable: foobarfighter: heh [07:29] elliottcable: foobarfighter: I don’t care either way; I only know about it ’cause a friend made it [07:30] elliottcable: foobarfighter: not my style at all; I use my own in-house testing framework for everything [07:30] tilgovi has joined the channel [07:30] tilgovi has joined the channel [07:30] elliottcable: cf. https://github.com/elliottcable/Speck/blob/master/specifications/speck/check_specs.rb [07:30] elliottcable: only, heh, in JavaScript. [07:30] MattJ has joined the channel [07:30] foobarfighter: elliottcable: ya no worries... a lot of people like vows, and its a great framework. not detracting from that, but i like what ive made more :) [07:30] elliottcable: identical semantics for both languages; they translate well. [07:31] xijhing: guys, relax [07:32] romanb has joined the channel [07:32] tuhoojabotti: piis and luv [07:32] svenlito has joined the channel [07:32] gozala has joined the channel [07:33] tshpaper has joined the channel [07:34] skm has joined the channel [07:34] Schmallon has joined the channel [07:36] swistak has joined the channel [07:37] ts__ has joined the channel [07:37] DelvarWorld has joined the channel [07:38] thalll has joined the channel [07:38] Nuck: tuhoojabotti: Piss and love? [07:38] tuhoojabotti: Nuck: Whatever floats your boat. [07:38] Nuck: shut up and listen - seriously, piss on each other and make love. [07:39] Nuck: [07:39] elliottcable: xijhing: whut [07:40] elliottcable: I’m pretty sure that if it involves pissing on eachother, “make love” is not the appropriate phrase. [07:40] nephics has left the channel [07:41] Nuck: elliottcable: I PISS ON MY LOVED ONES. [07:41] elliottcable: PISS ON ME D: [07:42] fangel has joined the channel [07:44] Nuck: ACTION pisses on elliottcable [07:44] elliottcable: this channel is turning into ##Paws. o_o; [07:44] tuhoojabotti: elliottcable: All thanks to Nuck [07:44] tuhoojabotti: He's NuckingFuts [07:44] path[l] has joined the channel [07:44] elliottcable: Nuck? What am I, chopped liver? [07:45] tuhoojabotti: elliottcable: don't feed the troll [07:45] elliottcable: … that’s rather hard, because I *am* the troll. [07:45] elliottcable: actually, speaking of feeding the troll, I need breakfast. bbl. [07:45] tuhoojabotti: Stop feeding yourself [07:46] Nuck: ACTION lols at elliottcable [07:46] Nuck: I love telling people the story of how I accidentally argued with Mike Shaver about JS when I first came into this room. [07:46] Nuck: It gets some good laughs. [07:46] herbySk has joined the channel [07:46] tuhoojabotti: channel* [07:46] Nuck: tuhoojabotti: SAME DAFFERANCE [07:47] tuhoojabotti: chatrooms are so msn style [07:47] tuhoojabotti: eww [07:47] guyht has joined the channel [07:47] sshaginyan_: Does node support the push method for lists? [07:47] tauren has joined the channel [07:47] Nuck: lists? [07:47] tuhoojabotti: arrays yes. [07:47] tuhoojabotti: lists? [07:47] Nuck: You mean Arrays? [07:47] sshaginyan_: for arrays [07:47] sshaginyan_: yes [07:47] tuhoojabotti: even append! [07:47] Nuck: v8: [].push('test') [07:47] v8bot: Nuck: 1 [07:47] Nuck: lolwat [07:47] tuhoojabotti: v8: ['lol'].append("lul") [07:47] v8bot: tuhoojabotti: TypeError: Object lol has no method 'append' [07:47] tuhoojabotti: :o [07:48] tuhoojabotti: I have append [07:48] tuhoojabotti: :P [07:48] tuhoojabotti: noobas [07:48] tuhoojabotti: -a [07:48] sshaginyan_: what's going on? [07:48] sshaginyan_: lol [07:48] tuhoojabotti: v8: ['lol'].push("lul") [07:48] v8bot: tuhoojabotti: 2 [07:48] tuhoojabotti: yeah [07:48] tuhoojabotti: v8: var i=['lol'].push("lul"); console.log(i); [07:48] v8bot: tuhoojabotti: 2 [07:48] tuhoojabotti: hmm [07:49] tuhoojabotti: weird [07:49] adambeynon has joined the channel [07:49] tomfarm has joined the channel [07:49] Nuck: sshaginyan: WE'RE TEACHING YOU SHIT. [07:49] Nuck: :D [07:49] Nuck: LEARN! [07:49] tuhoojabotti: \m/ [07:49] Nuck: ACTION pounds a textbook into sshaginyan_'s skull. [07:49] DoNaLd`: hi all .. is there somebody from ajax project or cloud9ide project ? [07:49] tuhoojabotti: DoNaLd`: I use ajax [07:49] JakeyChan: is there have cool mysql command tools with nodejs ?? [07:50] Nuck: I use Cloud9IDE every few months, if I get bored. [07:50] tuhoojabotti: JakeyChan: try mysql module. [07:50] tuhoojabotti: "npm install mysql" [07:50] mekwall has joined the channel [07:50] tuhoojabotti: Works for me [07:51] DoNaLd`: ok .. i have issue with node version in cloud9ide .. which is included in this project .. actual nodejs 0.4.7 is not usable with 0.3.0 cloud9ide .. is only some issue on my system or is it issue with cloud9 vs. last nodejs version ? [07:51] mekwall: hey guys! anyone got node-supervisor to run with an upstart script? [07:52] DoNaLd`: version of nodejs, which is included in cloud9ide is 0.4.1 pre [07:52] masylum has joined the channel [07:54] tomfarm has left the channel [07:56] aliem has joined the channel [07:57] Nuck: I need somebody to bounce ideas off of. [07:57] Nuck: lol [07:57] Nuck: I wish I lived with programmers. [07:57] Nuck: Instead I live with manic-depressive artists and fat people. [07:57] Nuck: And by that I mean my family. [07:58] Nuck: So, I shall shove my ideas in this chat and ask for opinions. [07:59] Nuck: For a modular page, I'm using APIs, so I'm thinking I'll do POST /user/:name/profile/module/:module/ [07:59] jonaslund_ has joined the channel [07:59] Nuck: To set settings on it [07:59] tim_smart: I currently live with a cat, 3 dogs and a crap load of sheep and cows [07:59] JoshC2 has joined the channel [07:59] tuhoojabotti: Nuck: You'd rather live with fat geeks? ;) [07:59] Nuck: tuhoojabotti: I would. [07:59] tuhoojabotti: Come live with me then [07:59] PeterPeterPeter has joined the channel [07:59] tuhoojabotti: ":D" [07:59] Nuck: Having a manic-depressive brother is like living with an annoying bitch. [08:00] ablomen has joined the channel [08:00] Nuck: tuhoojabotti: No, you'll molest me while I sleep. [08:00] Nuck: Plus you live in... Where? [08:00] tuhoojabotti: How is that worse? [08:00] tuhoojabotti: Finland [08:00] Nuck: Ewwwww finland [08:00] tuhoojabotti: Nuck: you've never been here [08:00] Nuck: ACTION shall move to SF! [08:00] Nuck: Well, SF *area* [08:00] tuhoojabotti: Nuck: http://www.bbc.com/travel/feature/20110614-finlands-midsummer-madness [08:01] tuhoojabotti: ":D" [08:01] fayce has joined the channel [08:01] Xano has joined the channel [08:01] tuhoojabotti: jonaslund: Vad tycker du om Nuck här? [08:01] mekwall: anybody using node-supervisor at all? :p [08:01] tuhoojabotti: :D [08:01] tuhoojabotti: mekwall: nodemon :D [08:02] mekwall: finnj�vel :) [08:02] mekwall: j/k [08:02] tuhoojabotti: oh no, more swedes [08:02] tuhoojabotti: I'm outta here [08:02] mekwall: yarr, but I like finns [08:02] tuhoojabotti: :o [08:02] tuhoojabotti: Even worse [08:02] tuhoojabotti: :D [08:02] mekwall: bastuklubben! [08:02] Nuck: tuhoojabotti: Aren't you the guys with Ikea? [08:02] mekwall: omg [08:02] tuhoojabotti: Nuck: lol no [08:02] mekwall: no [08:02] mekwall: that's us! [08:02] tuhoojabotti: that's Sweden [08:03] tuhoojabotti: We have SAUNA [08:03] emattias_ has joined the channel [08:03] mekwall: and /me is sm�l�nning just like IK in IKEA :) [08:03] tuhoojabotti: Don't speak that [08:03] tuhoojabotti: that svenska språket [08:03] mekwall: I'm not [08:03] mekwall: if you tell me what sm�l�nning is in english I won't use that word either :) [08:04] framlin: tim_smart: seems you are a lucky one ;) [08:04] framlin: .. cause of the cats, dogs,sheeps and cows .. [08:04] Calvin: SyntaxError: Unexpected identifier [08:04] mekwall: just got a hilarious support mail [08:04] mekwall: "I am in China. Your site is not working?" [08:04] tuhoojabotti: mekwall: Awesome [08:04] mekwall: my response was: "You are in China." [08:05] mt3ck_: lol [08:05] tuhoojabotti: mekwall: Just blame the Great firewall of China. [08:05] mekwall: yup [08:05] Nuck: mekwall: lol fair enough [08:05] mekwall: tried it from US, India and Netherlands [08:05] mekwall: works just great [08:05] mekwall: so yeah... must be the firewall :) [08:05] Nuck: mekwall: "oh sorry, your country's just a bitch." [08:05] mekwall: yeah... democracybitches! [08:05] sgimeno has joined the channel [08:05] Nuck: IS there a company that offers great firewall testing? [08:05] Nuck: DEMOCRACY 4 LIFE [08:06] Nuck: America: the first modern democracy, and the first to lose its touch. [08:06] mt3ck_: great and firewall dont belong together [08:06] elliottcable: What? Go damnit, Nuck, you’re still here. [08:06] mekwall: I love this channel already [08:06] Nuck: elliottcable: Huh? [08:06] tuhoojabotti: mekwall: Välkommen or sth [08:07] Nuck: elliottcable: Habla Ingles? [08:07] mt3ck_: nuck lives sleeps and drinks here [08:07] Nuck: tuhoojabotti: Velkommen? [08:07] mekwall: Nuck: democracy and capitalism kinda work against eachother ;) [08:07] Nuck: ACTION pulls out his scraps of dutch that he knows [08:07] Nuck: mekwall: They sorta do. [08:07] Nuck: And they sorta compliment eachother [08:07] mekwall: that's a lie [08:07] mt3ck_: mekwall to some extent, leniency in laws and large pockets make it happen [08:08] JKarsrud has joined the channel [08:08] mekwall: if you think that you have been brainwashed ;) [08:08] elliottcable: Politics? In *my* #Node.js? [08:08] ryan0x2_ has joined the channel [08:08] Esteb has joined the channel [08:08] elliottcable: (More likely than you may think.) [08:08] tuhoojabotti: Now this is worse than /b/ [08:08] mekwall: elliottcable: nah, more like trolling [08:08] Nuck: mekwall: I think a regulated freemarket is probably the best thing we can get. You don't want TOO MUCH regulation, that stamps out progress, but too much freedom and you're fucked :P [08:08] tuhoojabotti: Nuck: Shut it, thanks. [08:08] mekwall: omg my eyes [08:08] jensn has joined the channel [08:09] Nuck: It's a double-edged blade. [08:09] cha0s has joined the channel [08:09] mekwall: I'd love to discuss that shit, but right now I want to discuss upstart and node-supervisor [08:09] mt3ck_: lol [08:09] Nuck: People just never realize everything political is double-edged :P I can hope, but nobody in America especially will ever understand it. [08:09] tuhoojabotti: go to #Node.js-offtopic [08:09] Nuck: ACTION flips the bird towards Washington, D.C. [08:09] Nuck: upstart? [08:10] Nuck: Wuzzat? [08:10] sshaginyan_: Can someone help me out http://www.pastie.org/2100305 [08:10] zomgbie has joined the channel [08:10] mekwall: Nuck: did you asked google? unimpressed. [08:10] sshaginyan_: I'm trying to push objects into a list but doesn't seem to work [08:10] Nuck: mekwall: FUCK GOOGLE. [08:10] Nuck: But okay [08:11] mekwall: hell yeah! down with the capitalist pigs! [08:11] jeremyselier has joined the channel [08:11] tuhoojabotti: pigs<3 [08:11] mekwall: oink! [08:11] tuhoojabotti: In Minecraft! [08:11] sshaginyan_: I can see the objects when I do sys.inspect(e)); but can't push them in an array [08:11] adambeynon has joined the channel [08:11] tuhoojabotti: :O) [08:11] Skola: lulz excellent pigsmiley [08:11] tuhoojabotti: sshaginyan_: Paste some code. [08:11] Nuck: DOWN WITH THE COMMUNIST GREEN DONGS [08:11] tuhoojabotti: Skola: Thank you. [08:11] Nuck: :P [08:11] tuhoojabotti: :oD [08:11] apa- has joined the channel [08:12] JKarsrud: tuhoojabotti: 10:10:04 [08:12] JKarsrud: sshaginyan_ [08:12] JKarsrud: Can someone help me out http://www.pastie.org/2100305 [08:12] Skola: lol that one takes some braintwisting [08:12] JKarsrud: :) [08:12] Nuck: That's al I see when I see a Creeper is a bouncy green penis. [08:12] sshaginyan_: tuhoojabotti: I did [08:12] tuhoojabotti: I see [08:12] tuhoojabotti: JKarsrud: Failpaste, but thanks. :P [08:12] rio{ has joined the channel [08:12] JKarsrud: meh, stupid client [08:12] JKarsrud: 10:10:04 sshaginyan_ Can someone help me out http://www.pastie.org/2100305 [08:12] JKarsrud: better? :D [08:13] mraleph has joined the channel [08:13] mekwall: ~pop� [08:13] tuhoojabotti: sshaginyan_: You remember to sanitize that sql right? [08:13] tuhoojabotti: :3 [08:13] mekwall: JKarsrud fails yet again [08:13] sshaginyan_: yes [08:13] sshaginyan_: lol [08:13] dominictarr has joined the channel [08:13] SugaSlide has joined the channel [08:13] \sega has joined the channel [08:14] sshaginyan_: tuhoojabotti: not worried about that now [08:14] asabil has joined the channel [08:14] tuhoojabotti: sshaginyan_: I don't remember what sys.inspect does though. :D [08:14] mekwall: tuhoojabotti: you in the sauna now? [08:14] SugaSlide has left the channel [08:14] sshaginyan_: forget it I'ts wrong [08:14] JKarsrud: mekwall: wtf, how do you see that stuff? [08:14] sshaginyan_: it displays objects [08:14] Nuck: Ah damn [08:14] tuhoojabotti: mekwall: Work. :/ [08:14] Nuck: I wanted to see if I could set my name to "/nuck" to piss people off :P [08:15] mekwall: tuhoojabotti: you don't have a sauna at work? [08:15] tuhoojabotti: mekwall: It's called "Public Toilet" [08:15] mekwall: tuhoojabotti: cool! [08:15] tuhoojabotti: But other than that no [08:15] S1kx has joined the channel [08:15] S1kx has joined the channel [08:15] simenbrekken has joined the channel [08:15] framlin: is it wise to use require loading dynamically scripts depending on request-parms of a http-request? [08:15] framlin: wise while looking at performance .. [08:16] Nuck: tuhoojabotti: How do you turn a public toilet into a sauna? [08:16] Nuck: All we do in America is turn public bathrooms into gay sex chambers [08:16] mekwall: Nuck: just turn the heat up? [08:16] Nuck: At least that's what some cities think [08:16] Nuck: mekwall: To what? 100° F? [08:16] sshaginyan_: tuhoojabotti: sys.inpect() is like console.log [08:16] Nuck: ... [08:16] Nuck: Derp [08:16] mekwall: eventually the water in the toilet will start to vaporize [08:16] mekwall: and you got yourself a sauna [08:16] mt3ck_: hmm [08:16] mt3ck_: shit steam [08:16] tuhoojabotti: Nuck: 100deg F I lol'd [08:17] mekwall: Nuck: celsius dude [08:17] tuhoojabotti: 120 Celsius is ~ok [08:17] mekwall: been there, done that :) [08:17] Nuck: ACTION imagines shit hovering in midair [08:17] tuhoojabotti: mekwall: Remember to spank! [08:17] mekwall: and then jump into the frozen lake! [08:17] Nuck: EVAPORATED FECES [08:17] tuhoojabotti: mekwall: I turned back at the door. ;D [08:17] Nuck: tuhoojabotti: To spank? :S [08:17] Nuck: Ewww [08:17] tuhoojabotti: Nuck: We don't shit in the sauna. [08:18] mekwall: yeah! spank with bushwood! [08:18] tuhoojabotti: Yeah [08:18] Nuck: tuhoojabotti: You do in the public bathroom [08:18] uchuff has joined the channel [08:18] Nuck: mekwall: Spanking yourself with Bush's Wood? [08:18] Nuck: Ewwww [08:18] tuhoojabotti: Nuck: It's not wrong! [08:18] Nuck: IT's alll... rednecky. [08:18] mekwall: its manly [08:18] tuhoojabotti: You spank yourself [08:18] mekwall: nothing you'd know anything about [08:18] tuhoojabotti: Yeah [08:18] tim_smart: /part [08:19] Nuck: Spanking yourself with Presidential genitals doesn't sound fun. [08:19] Nuck: I wouldn't slap myself with Obamacock either. [08:19] mekwall: bush is still president in your country? ;) [08:19] tuhoojabotti: http://varjosanomat.com/?p=1564 This is so good. ;D [08:19] Nuck: mekwall: No but he still gets the title. Sadly. [08:19] jvduf has joined the channel [08:19] mekwall: anyway, not to kill this channel. node-supervisor and upstart, anyone? [08:19] framlin: seem to be it doesnt matter who americas president is :( [08:20] mekwall: framlin: how did you figure that out? :D [08:20] Nuck: framlin: Obama's doing his best, with Republicans filibustering him. It's hard to get anything but a deadlock these days. [08:20] framlin: both go to war without any reason .... [08:21] Nuck: Obama didn't go to war with no reason, he took out Osama without hesitation 8D ding dong, the FUCKER'S DEAD. [08:21] mekwall: just look at the us military budget... that's enough to see what that country is about [08:21] christkv has joined the channel [08:21] JKarsrud has left the channel [08:21] Nuck: mekwall: Ew don't remind me [08:21] Nuck: Our education has gone down the crapper too [08:21] mekwall: well you don't have to be that smart to fire a gun [08:21] mt3ck_: everything has gone down the shitter to millitary [08:21] mekwall: so why the need for education? [08:22] Nuck: mekwall: We're trying not to be militaristic. [08:22] Nuck: And actually [08:22] mekwall: haha [08:22] Nuck: Our military is only expensive because we have crazy-ass tech [08:22] framlin: both are fabulating about terrorism, just to kill people without any justice/process ..... [08:22] Nuck: PRactiaclly nobody carries a fun anymore :S [08:22] mekwall: as long as you alienate yourself from the rest of the world, there will be trouble and war :P [08:23] temp01 has joined the channel [08:23] Nuck: mekwall: Yup, and people got pissed at Obama for bowing to a chinese diplomat. [08:23] Nuck: I mean, jeebus, the guy is being (get this) DIPLOMATIC. [08:23] mt3ck_: its sad [08:23] Nuck: Srsly [08:23] mekwall: terrorism is a fictional word [08:23] mekwall: it has no meaning [08:23] framlin: Nuck: heard about Libya? [08:23] mt3ck_: the best we can do is interconnect [08:23] mekwall: just like god [08:23] tim_smart: /topic A channel where mature programmers talk about node.js [08:23] Nuck: mekwall: It really doesn't [08:23] Nuck: framlin: We're not the biggest guys in Libya, that's France. [08:23] Nuck: So don't blame us. [08:24] tuhoojabotti: Nuck: Enough with the politics. [08:24] markwubben has joined the channel [08:24] framlin: Nuck: I blame everyone who is going to war! [08:24] mekwall: Nuck: is bowing diplomatic? I thought it was a gesture of politeness :) [08:25] tuhoojabotti: #Node.js-offtopic -> ;O) [08:25] mt3ck_: mekwall: to normal people, not politicions [08:25] framlin: tuhoojabotti: you are right! ;) [08:25] mekwall: politicians are normal people [08:25] mekwall: they just lie alot more [08:25] tuhoojabotti: mekwall: #Node.js-offtopic [08:26] Nuck: mekwall: Not normal people, they're scummier. [08:26] mekwall: tuhoojabotti: well I tried to switch topics numerous times :D [08:26] mekwall: but I aint getting any response on my node questions hehe [08:26] tuhoojabotti: mekwall: Stop talking then. [08:26] tuhoojabotti: :) [08:26] mekwall: I'm TYPING :) [08:26] mt3ck_: haha [08:26] mekwall: boom! [08:26] tuhoojabotti: mekwall: HEHE [08:27] mt3ck_: its late if there was note stuff it would overrun what we were talking about [08:27] tim_smart: Sexy redis clients https://github.com/Tim-Smart/node-redis [08:27] Nuck: lawl [08:27] tim_smart: Asyncronous callbacks [08:27] tim_smart: Arrays [08:27] tim_smart: Blah blah [08:27] Nuck: very true, Mr. mt3ck_ [08:27] Nuck: BANANAS [08:27] Nuck: They are delishus. [08:27] tuhoojabotti: Nuck: #Node.js-offtopic -> [08:27] mt3ck_: wine in dlishuhs [08:27] Nuck: ACTION giggles [08:27] tuhoojabotti: Free voices for first 10! [08:28] mekwall: is tuhoojabotti a bot? [08:28] tuhoojabotti: mekwall: Yes. [08:28] mekwall: botti sounds like bot in finnish [08:28] Nuck: is Calvin a bot? [08:28] Calvin: bot needs to be added to node, do is run coffee REPL and try it out in here does is [08:28] mekwall: Nuck: Obama is a bot! omg [08:28] tuhoojabotti: mekwall: It is. [08:28] Nuck: Nah, Calvin is too dumb to be a bot. [08:28] Calvin: dumb js [08:28] Nuck: mekwall: YUSH! He's made in JAPAN! [08:28] Nuck: Everybody knows it's true :P [08:29] mt3ck_: his face does look plastic [08:29] tuhoojabotti: He'll shut up if you don't answer him. [08:30] Nuck: tuhoojabotti: Who, Obama? You racist or something? [08:30] Nuck: [08:30] vpereira has joined the channel [08:30] mekwall: http://gyazo.com/124b544ea6bcfacf9fba74a50fa0daad.png ! obama factory in japan! [08:30] tuhoojabotti: elliottcable: So I herd you didden't liek my site, It's on development, so I'd like to know what you think I'm doing wrong. [08:30] mt3ck_: see [08:30] mt3ck_: told you [08:30] elliottcable: tuhoojabotti: hahahahaha [08:30] tuhoojabotti: I haven't refactored the js yet, so it's a piece of shit I know. [08:31] elliottcable: what the fuuuuuuuuuuuuck mekwall [08:31] tuhoojabotti: mekwall: Join offtopic [08:31] mekwall: elliottcable: hello to you to sir [08:31] Nuck: mekwall: that's fucking creepy. [08:32] fangel has joined the channel [08:32] mekwall: tuhoojabotti: nah, I'll stop now... my coworkers are looking at me funny because of my snickering [08:32] tuhoojabotti: mekwall: Fair enough [08:33] mekwall: but I still think you're with the CIA [08:33] mekwall: trying to silence us :( [08:33] tuhoojabotti: mekwall: I'm with the KGB [08:33] mekwall: same shit [08:34] meso has joined the channel [08:34] tuhoojabotti: Nuck: If you'd program as much as you spam here your project would be done. ;) [08:35] mekwall: projects are never done! [08:35] tuhoojabotti: elliottcable: So you were just bashing at me for no reason? :/ [08:35] mekwall: and I still am wondering about node-supervisor [08:35] tuhoojabotti: mekwall: Why? [08:35] tuhoojabotti: Ask [08:36] tuhoojabotti: mekwall: Wondering is not good enough, what's your problem? [08:36] Skola has joined the channel [08:36] mt3ck_: straight shooter tuhoo gettin shit done [08:37] tuhoojabotti: mt3ck_: I'm also updating 700 products with correct information in the mean time D: [08:37] mekwall: tuhoojabotti: well supervisor works great, but not with upstart :) [08:37] mekwall: log gets spammed with Error reading path: //./root [08:37] tuhoojabotti: mekwall: Stop using upstart? [08:37] tuhoojabotti: :P [08:38] mt3ck_: hot damn wouldnt that be more important thank bickering about how were not talking about node? [08:38] mekwall: tuhoojabotti: #Node.js-troll --> [08:38] tuhoojabotti: mekwall: Can we have logs? [08:38] tuhoojabotti: It never hurts to munch some logs [08:38] mekwall: I just told you what was in the log [08:38] mekwall: loads of Error reading path: //./**** [08:39] tuhoojabotti: I see. [08:39] mekwall: which probably means that supervisor is not monitoring the path where the app is, but rather the root :) [08:39] tuhoojabotti: mekwall: You think that's upstart or supervisor spammin'? [08:39] tuhoojabotti: yeah [08:39] mekwall: supervisor [08:39] mekwall: not upstart [08:39] tuhoojabotti: ok [08:39] mekwall: upstart doesn't log anything [08:39] tuhoojabotti: yeah [08:39] mekwall: exec sudo -u node /usr/local/bin/node /tmp/test/app.js 2>&1 >> /var/log/node.log [08:39] jamey-uk has joined the channel [08:39] mekwall: works just great [08:40] mekwall: but when I choose supervisor instead of node [08:40] tuhoojabotti: mekwall: How did you configure upstart? [08:40] emattias has joined the channel [08:40] zeade has joined the channel [08:41] mekwall: tuhoojabotti: http://pastie.org/2100404 [08:41] tuhoojabotti: oops my boss was 1m away [08:41] tuhoojabotti: :D [08:42] jamey-uk: https://gist.github.com/1037471 lines 89 and 95, I'm using connect-form (and hence node-formidable), it will output 'req' on the first instance but not within the closure on line 95. What am I doing wrong? [08:42] mekwall: bah, having a boss sux ;) [08:42] tuhoojabotti: mekwall: export HOME="/root" <- problems? :D [08:42] [AD]Turbo has joined the channel [08:42] [AD]Turbo: hi there [08:43] tuhoojabotti: [AD]Turbo: Hey [08:43] djcoin has joined the channel [08:43] mekwall: tuhoojabotti: don't think so, but worth a try removing it... but I've seen that in more or less every upstart script [08:43] tuhoojabotti: mekwall: It looks to me you change the environment dir to /root and then supervisor fails :D [08:43] tuhoojabotti: But I wouldn't know, I just work here. [08:44] mekwall: tuhoojabotti: nope, no difference [08:44] mekwall: still spamming the log [08:44] MrGoodbyte has joined the channel [08:44] mekwall: trying to access all files [08:44] tuhoojabotti: Then try /j #upstart [08:44] tuhoojabotti: :D [08:45] tuhoojabotti: I don't know how it works [08:46] mekwall: tuhoojabotti: pretty sure upstart aint the problem [08:46] tuhoojabotti: Oh :o [08:46] jomoho has joined the channel [08:47] mc_greeny has joined the channel [08:47] mekwall: tuhoojabotti: DEBUG: Watching directory '//.' for changes. [08:47] mekwall: that's the problem ;) [08:47] tuhoojabotti: Yeah [08:48] tuhoojabotti: I bet it's upstart giving supervisor wrong environment path [08:48] tuhoojabotti: or sth [08:48] tuhoojabotti: :D [08:48] mekwall: yup [08:48] mekwall: should be able to pass the folder [08:48] mekwall: with -w [08:49] framlin: is it wise to use require loading dynamically scripts depending on request-parms of a http-request? [08:49] framlin: wise while looking at performance .. [08:49] mekwall: tuhoojabotti: do you know how I disable output of DEBUG? [08:49] mekwall: sys.debug [08:50] tuhoojabotti: mekwall: I know nothing. :/ [08:50] tuhoojabotti: I just work here. [08:51] mekwall: k [08:51] mekwall: anyway, solved it [08:51] mekwall: exec sudo -u node /usr/local/bin/supervisor --watch /tmp/test /tmp/test/app.js 2>&1 >> /var/log/node.log [08:51] tuhoojabotti: mekwall: No problem. [08:51] sharkbone has joined the channel [08:51] tuhoojabotti: I knew I could do it. [08:52] bzinger has joined the channel [08:52] tuhoojabotti: mekwall: See what I did thar [08:52] tuhoojabotti: :D [08:52] tuhoojabotti: I stopped the spammin' and got your problem solved [08:53] tuhoojabotti: ACTION feels proud of himself [08:53] mekwall: tuhoojabotti: You're just being an annoying finn [08:53] dominictarr has joined the channel [08:53] tuhoojabotti: mekwall: I know, and I'm lovin' it! [08:53] tuhoojabotti: :) [08:54] mekwall: Me too! It helped me focus on my own problem. Since solving your problem would be impossible [08:54] tuhoojabotti: I had a problem? [08:54] tuhoojabotti: :o [08:54] mekwall: You ARE the problem :D [08:54] tuhoojabotti: :o) [08:55] Nuck: God I love deviantART chat. Some guy claimed he was as "calm as a pick in cold water", but quickly corrected himself to "pickle", but two others chimed in with "prick" and "prickless wonder" [08:55] Nuck: And he was the only one who got in trouble XD [08:56] Skola: was there in previous life http://basdirks.deviantart.com/ [08:56] Nuck: Skola: huh? [08:57] Nuck: Oh beautiful, they ended by telling a mod "you, my friend, just got trolled" [08:57] Nuck: So they got banned with a message of "you, my friend, just got banned" [08:58] Mrfloyd has joined the channel [09:00] temp01 has joined the channel [09:00] adambeynon has joined the channel [09:01] markwubben has joined the channel [09:02] Murugaratham has joined the channel [09:02] adrianmg has joined the channel [09:03] mekwall: Nuck: ahahaha [09:04] kulor-uk has joined the channel [09:04] mekwall: anyone know of a template engine that works like twig or djangos template engine? [09:04] fab__ has joined the channel [09:05] fab__: hi [09:05] tuhoojabotti: Hello fab__ [09:05] fab__: i have a question about node.js [09:05] tuhoojabotti: fab__: Oh really? [09:05] tuhoojabotti: I wouldn't have guessed that. [09:05] blup has joined the channel [09:05] mekwall: fab__: Don't listen to him. He's finnish [09:06] mekwall: fab__: just ask away :) [09:06] k1ttty_ has joined the channel [09:06] tuhoojabotti: mekwall: I was coming to that. [09:06] fab__: how send a data to server node at connection ? [09:06] tuhoojabotti: fab__: What kind of server? [09:06] tuhoojabotti: What protocol? [09:06] fab__: server http [09:07] mekwall: ACTION is confused [09:07] sjbreen has joined the channel [09:07] mekwall: fab__: do you want to send from server to client? [09:07] fab__: no otherwise [09:07] mekwall: fab__: client to server? :) [09:07] fab__: yes [09:08] mekwall: and your client is a browser? [09:08] mekwall: or another server? [09:08] fab__: when the client is connecting to the server [09:08] fab__: no a browser [09:08] tuhoojabotti: fab__: You mean reply [09:08] fab__: it's a web application [09:08] mekwall: fab__: so what kind of data do you want to send from the client? [09:09] tuhoojabotti: fab__: http://nodejs.org/docs/v0.4.8/api/http.html#response.write [09:09] mikeal has joined the channel [09:09] fab__: an id (id of the user who is connect to my app) [09:09] w3rdness has joined the channel [09:09] tuhoojabotti: fab__: Read that api. :P [09:09] fab__: ok thanks [09:10] mekwall: wow that was easy :) [09:10] tuhoojabotti: fab__: And good luck with your project! [09:10] tuhoojabotti: mekwall: I know what I'm doing. [09:10] fab__: thanks [09:10] tuhoojabotti: ;) [09:11] mekwall: tuhoojabotti: I can see that! Impressive how you just pointed him over to the docs, and he actually thanked you for it! [09:11] tuhoojabotti: mekwall: Oink oink! :O) [09:11] mekwall: whenever I do that I get: "fu! i already read that!" ... which means they kinda skimmed the first paragraph or two [09:12] tuhoojabotti: mekwall: I had a hash see that #-part [09:12] tuhoojabotti: It's profit [09:12] mekwall: yes yes [09:12] mekwall: very nice [09:12] mekwall: and there he went! :D [09:12] temp01 has joined the channel [09:12] jamey-uk: can anyone help me with my node-formidable problem? I'm losing access to the request object, which is denying me from using flash messages :( [09:12] tuhoojabotti: mekwall: It's not the first time I'm on irc. [09:12] ExsysTech has joined the channel [09:13] mt3ck_: anyone here this late good with jade and partials? [09:13] __tosh has joined the channel [09:14] jaket has joined the channel [09:15] eldios has joined the channel [09:16] sreeix_ has joined the channel [09:16] mt3ck_: having trouble getting access to a collection im passing in [09:16] \sega has joined the channel [09:16] Skola: mt3ck_ got gist? [09:16] mt3ck_: got them in a pastie [09:16] Skola: gimmeh [09:17] mt3ck_: http://pastie.org/2100498 [09:17] mt3ck_: the ammount measurement and items are showing blank [09:18] mt3ck_: can put ingredients[0].ammount and it will show a value for that one [09:18] mt3ck_: but not sure why it isnt working like it normally should [09:19] Skola: well what are you passing in as ingredients? [09:19] mekwall: how do I disable the output of sys.debug? [09:19] Skola: an array perhaps instead of an object? [09:21] mt3ck_: skola: http://pastie.org/2100530 [09:21] Nuck: God I love Epic Bear Man [09:21] mt3ck_: so i need to throw some curlys on it? [09:21] Nuck: +d [09:22] Skola: well there are multiple ingredients per recipe [09:22] hybsch has joined the channel [09:22] Skola: what are you passing as local? [09:22] Skola: recipe[x]? [09:22] hellp has joined the channel [09:22] tiglionabbit_ has joined the channel [09:23] mt3ck_: recipes.ingredients [09:24] Skola: but what do you use that form for? for editing a specific recipe? [09:25] mt3ck_: yea its to edit the recipe, the edit form has a partial, recipe_form which has all the form inputs, title etc which show up fine with recipe.title, i have another partial ingredient_form because each recipe will have diff number of ingredients [09:26] MrGoodbyte: hi [09:26] Murvin has joined the channel [09:27] werm has joined the channel [09:27] romanb has joined the channel [09:27] MrGoodbyte: https://github.com/MrGoodbyte/SynapseJS/blob/master/synapse.js [09:27] temp01 has joined the channel [09:28] MrGoodbyte: all methods can reach tasks variable correctly except for dropSocket [09:28] Skola: I don't get why you put recipe.ingredients in a local [09:28] Skola: in edit.jade [09:28] MrGoodbyte: What do I do wrong? [09:28] FIQ has joined the channel [09:28] mt3ck_: trying different stuff i guess =\ [09:29] Skola: why don't you just pass recipe.ingredients to your ingredient_form partial? [09:29] Skola: you're referencing title, serves, summary etc the normal way, ie. recipe.title etc [09:29] mt3ck_: i have and ill end up doing recipe.ingredients.ammount for the value [09:29] mt3ck_: and it will show blank [09:30] fabBeloola has joined the channel [09:30] fabBeloola: slt [09:30] mscdex: partials are for the elderly [09:30] Skola: : D [09:30] Skola: ja you don't need a 2 layered partial scheme [09:30] fabBeloola: i have a question about io socket [09:31] Skola: it will be fairly clear if you put everything in edit.jade [09:31] \sega has joined the channel [09:31] mscdex: Calvin: socket.io [09:31] Calvin: socketio , and is the mixture of a single ied the [09:31] Skola: partial has a speed performance afaik [09:31] Skola: not huge, but only use it when you need to [09:31] mt3ck_: really just using it to get an idea [09:31] Skola: a performance penalty* [09:31] fabBeloola: how to send a data at the connection with socket.io in php [09:31] mt3ck_: and if anything to edit values i need to [09:31] mt3ck_: trying to make an api [09:32] mt3ck_: but makes it easier to be able to edit with forms for time being [09:32] zomgbie has joined the channel [09:32] fabBeloola: how to send a data t oserver with socket.io (at the connection) in php ? [09:33] mscdex: fabBeloola: huh? i don't think there is a socket.io server for php.... [09:33] temp01 has joined the channel [09:33] fabBeloola: no i have a socket.io to communicate with server node.js [09:33] sirdancealot has joined the channel [09:34] mscdex: so then how does php play into that? [09:34] fabBeloola: and i want to send an id to the server node.js via socket.io [09:34] fabBeloola: my app is build in php [09:34] mscdex: the client is just html + js (+ swf) [09:34] mscdex: the server is node.js [09:35] broofa has joined the channel [09:35] fabBeloola: it's not possible to pass a param in "new io.Socket('localhost',{'port':8092});" ? [09:35] simenbrekken: Any way to recursively print an object? [09:36] mscdex: fabBeloola: just pass whatever you need after you make the connection [09:36] zeade has joined the channel [09:36] framlin: simenbrekken: console.log(JSON.stringify(obj, null, 2)); [09:37] fabBeloola: ok but in th e server node.js how retrieve the data [09:37] fabBeloola: ? [09:37] mscdex: simenbrekken: console.log(util.inspect(obj, false, 9999)); [09:37] mscdex: simenbrekken: :p [09:37] simenbrekken: mscdex: thanks :) [09:37] eldar has joined the channel [09:38] mscdex: fabBeloola: follow the examples on http://socket.io/ [09:38] eldar has joined the channel [09:38] fabBeloola: it's too simple like example [09:39] sharkbone has joined the channel [09:39] fabBeloola: and i haven't a lot of documentation for node.js [09:39] steffan has joined the channel [09:39] fabBeloola: someone have make a real time notification push in node.js ? [09:40] `3rdEden: yes people have [09:40] fabBeloola: you ? [09:40] \sega has joined the channel [09:40] `3rdEden: yup [09:40] fabBeloola: with a database ? [09:41] mscdex: heh [09:41] mscdex: Calvin: node.js rules! [09:41] Calvin: nodejs is gonna not be the perfect solution [09:41] mscdex: :O! [09:41] sirdancealot has joined the channel [09:42] tuhoojabotti: :DD [09:42] fabBeloola: ok what is the perfect solution for real time notification push like facebook notification ? [09:42] tuhoojabotti: Calvin: Are you sure? [09:42] Calvin: sure , I hate perl Are [09:42] `3rdEden: fabBeloola yes [09:42] `3rdEden: with a database [09:42] tuhoojabotti: :D [09:43] `3rdEden: fabBeloola socket.io is the perfect solution [09:43] fabBeloola: can you send me your sources by mail ? [09:43] fabBeloola: i want use socket.io with a node;js server [09:43] fabBeloola: and a mysql base [09:43] vpereira: anyway to open an sys V IPC with node.js? [09:43] vpereira: something like ftok? [09:44] `3rdEden: fabBeloola lol, can't send my sources.. [09:44] dgathright has joined the channel [09:44] fabBeloola: `3rdEden why ? [09:44] `3rdEden: we use it our product [09:44] `3rdEden: so I can just hand you over our codebase [09:44] `3rdEden: just for fun and giggles [09:44] kuya_ has joined the channel [09:45] tuhoojabotti: `3rdEden: Opensource love<3 [09:45] tuhoojabotti: :P [09:45] fabBeloola: i want a code example because i'm blocked [09:45] tuhoojabotti: fabBeloola: Google [09:45] fabBeloola: ok lol [09:46] `3rdEden: tuhoojabotti lol [09:46] fabBeloola: I went through every page of Google [09:46] `3rdEden: fabBeloola what is wrong? [09:46] `3rdEden: errors? [09:46] `3rdEden: brain block? [09:47] tuhoojabotti: Most likely [09:47] fabBeloola: i don't know how send the push notification to a certain client [09:47] fabBeloola: with the id of the node session ? [09:47] fabBeloola: but how ? [09:48] tuhoojabotti: fabBeloola: Read socket.io tutorials. :P [09:48] tuhoojabotti: If that's what you wanna use [09:48] fabBeloola: the tutorial is basic [09:48] vpereira: fabBeloola: subscribe [09:48] tuhoojabotti: Well your problems doesn't seem too complicated either. [09:48] fabBeloola: where ? [09:48] adambeynon has joined the channel [09:49] vpereira: fabBeloola: with ruby and eventmachine you can use a Channel, i'm not sure, but this pattern is as well implemented in node.js [09:49] fabBeloola: i don't want use ruby [09:49] fabBeloola: i use php [09:50] `3rdEden: fabBeloola what kind of session? [09:50] __doc__ has joined the channel [09:50] mscdex: heh [09:50] thalll has joined the channel [09:50] mscdex: Calvin: php [09:50] Calvin: php has lambdas but they even have security issues in their colons [09:50] mscdex: lol [09:50] mscdex: classic [09:51] `3rdEden: Calvin: milf [09:51] Calvin: milf [09:51] `3rdEden: o [09:51] \sega has joined the channel [09:51] `3rdEden: he should just google stuff mscdex ;) [09:51] `3rdEden: when he doesn't have a `answer` about it [09:52] mscdex: yeah [09:52] mscdex: Calvin: ruby [09:52] Calvin: ruby it is that your request was made on a desktop browser or if I'm using only a function, but hey [09:53] mscdex: but hey! [09:53] SubStack: Calvin: coffee script [09:53] Calvin: coffee command withing a node module which epend on script [09:54] SubStack: Calvin: ashkenas [09:54] Calvin: ashkenas [09:54] `3rdEden: Calvin: realtime [09:54] Calvin: realtime game server, a game simulator to [09:54] philhawksworth has joined the channel [09:55] beawesomeinstead has joined the channel [09:55] beawesomeinstead has joined the channel [09:55] beawesomeinstead has joined the channel [09:55] philhawksworth has left the channel [09:55] sreeix has joined the channel [09:55] Swizec has joined the channel [09:57] mscdex: Calvin: http agent [09:57] Calvin: agent and assign it to a variable and the request library or does it make sense to expose a db object could be used to work with expresso or vows to my interpretation of the crypto issue the [09:57] temp01 has joined the channel [09:57] mscdex: Calvin: connection pooling [09:57] Calvin: connection open, and it's callback continues by calling outer pooling [09:57] sirdancealot has joined the channel [09:57] vpereira: anyway to access an sys V IPC with node.js? [09:57] wereHamster: Calvin: I named my macbook after you :) [09:57] Calvin: macbook it works fine, but the problem is I need this test var named [09:58] mscdex: vpereira: probably not without a c++ addon [09:59] mscdex: that's a guess though, i've never used sysv ipc [09:59] vpereira: mscdex: yes c++ addon [09:59] vpereira: nice [09:59] fangel has joined the channel [10:00] squeese has joined the channel [10:00] fly-away has joined the channel [10:00] mscdex: vpereira: why are you using sysv ipc anyway? [10:01] temp01 has joined the channel [10:01] vpereira: mscdex: my core (a c application in kernel space) must read some informations that i will, probably insert with node.js [10:02] k1ttty has joined the channel [10:02] mscdex: oh [10:02] vpereira: so its a way to share memory between both process.. and i dont want my application running in kernel space accessing other than a ipc [10:08] temp01 has joined the channel [10:08] fermion has joined the channel [10:11] blup: i've asked this in the couchdb channel, but no response. i'm having trouble creating a view from within futon, i'm getting 'unknown_query_language javascript'... anybody have a clue? [10:11] Skola: "php has lambdas but they even have security issues in their colons" [10:11] Skola: that's Calvin's best one yet [10:11] Calvin: Calvin's a schizo that's [10:11] Skola: lol [10:11] jvduf has joined the channel [10:11] blup: i've reinstalled from source, and same problem [10:12] Wizek has joined the channel [10:15] sirdancealot has joined the channel [10:15] \sega has joined the channel [10:20] fairwinds has joined the channel [10:22] Yoric has joined the channel [10:26] \sega has joined the channel [10:28] hellp has joined the channel [10:30] copongcopong has joined the channel [10:30] Rotham has joined the channel [10:31] fairwinds has joined the channel [10:31] sreeix has joined the channel [10:32] fairwinds_ has joined the channel [10:33] sirdancealot has joined the channel [10:34] tcurdt has joined the channel [10:34] micheil has joined the channel [10:35] ehedenst has joined the channel [10:36] devrim has joined the channel [10:37] adambeynon has joined the channel [10:38] CoinOpeBoy has joined the channel [10:38] hij1nx has joined the channel [10:39] jakeg has joined the channel [10:39] \sega has joined the channel [10:39] jamey-uk has left the channel [10:41] Emmanuel__: anyway I can prevent a node server from crashing if it can't make the connection (using http) [10:41] Emmanuel__: I wrap that in a try/catch statement [10:41] Emmanuel__: but it does not seem to be enough [10:42] path[l] has joined the channel [10:43] jakeg: anyone here live in the UK? [10:43] tuhoojabotti: jakeg: Probably. [10:43] Skola: y? lulzsec? [10:43] jakeg: lol! is that the isle of man or smething? [10:44] tuhoojabotti: jakeg: But I saw Pendulum live last weekend! [10:44] Skola: what kind of info does the UK "Census" hold? [10:45] jakeg: interested in knowing what good node developers there are here in the UK. We're making a cool product with node but may need some help :) [10:45] azend has joined the channel [10:45] mscdex has joined the channel [10:51] bkozal has joined the channel [10:51] rio{ has joined the channel [10:53] hij1nx has joined the channel [10:53] copongcopong has joined the channel [10:54] \sega has joined the channel [10:56] JoseCabo has joined the channel [10:56] JoseCabo: hellooooooooo everybody [10:56] fayce has joined the channel [10:56] tuhoojabotti: JoseCabo: Heyy<3 [10:57] JoseCabo: tuhoojabotti, hey! ^^ [10:57] tuhoojabotti: ;) [10:57] JoseCabo: I ended my examsssssssss, i am freeeeeee [10:57] tuhoojabotti: JoseCabo: How old are you? [10:57] JoseCabo: 23 years old. [10:57] tuhoojabotti: About time then ;) [10:57] hij1nx has joined the channel [10:58] JoseCabo: wo tuhoojabotti ? xD [10:58] JoseCabo: I can lose my time again! ^^ [10:59] tuhoojabotti: JoseCabo: I'm 17 [10:59] JoseCabo: :O tuhoojabotti you are a "yogurin" :P [10:59] JoseCabo: wajejej [10:59] tuhoojabotti: crazy :P [11:00] JoseCabo: u know what it is? xD [11:01] avalanche123 has joined the channel [11:01] cjm has joined the channel [11:01] tuhoojabotti: JoseCabo: No idea [11:02] sirdancealot has joined the channel [11:02] JoseCabo: haha, of curse you not :P but i will don't say nothing because you would kill me xD [11:03] tuhoojabotti: JoseCabo: Then I'll have to google! [11:03] tuhoojabotti: or ask my bot [11:03] JoseCabo: tuhoojabotti, xDDDDDDD [11:03] JoseCabo: It isn't in Google. Is a gay term in Spain. Not despective. [11:04] JoseCabo: (xD!) [11:04] tuhoojabotti: :O [11:05] tuhoojabotti: JoseCabo: I'm not gay, irc love is not wrong ♡ [11:05] JoseCabo: I prefer be married with node.js :P [11:05] tuhoojabotti: irc love is like you love your parents, but you wouldn't f**k with them. [11:06] JoseCabo: Anyway you are a yogurin xD [11:06] tuhoojabotti: nah [11:06] SubStack: browserify@1.1.0 is out! [11:07] SubStack: complete overhaul [11:07] JoseCabo: tuhoojabotti, you know OpenGL? [11:08] tuhoojabotti: Yes, I know what it is. [11:08] JoseCabo: i am sure about it. I am working in a fork of an existent opengl module for node.js [11:08] S2kx has joined the channel [11:09] tuhoojabotti: Opengl on the server :D [11:09] JoseCabo: It isn't working for me... but i think is because this extension is old and my first demos of the fork works everywhere :P [11:09] JoseCabo: node.js isn't only for server side :P [11:09] tuhoojabotti: I know, just joking [11:09] tayy has joined the channel [11:10] JoseCabo: tuhoojabotti, in fact I love it when it runs normal client app (:babas) [11:10] tuhoojabotti: :) [11:10] JoseCabo: My bf and I want make an app this summer with node.js [11:10] JoseCabo: When I will be bored i will try to wrap qt api with node.js [11:11] tuhoojabotti: Wait, so you're gay? [11:11] JoseCabo: and then i will be the best in worrrrld [11:11] JoseCabo: tuhoojabotti, could be [11:11] tuhoojabotti: Well if you have a bf [11:11] tuhoojabotti: unless you're bi ofc [11:12] bogomips has joined the channel [11:12] JoseCabo: hahah, i am not bi xD [11:12] rchavik has joined the channel [11:12] JoseCabo: exept with node.js that is my lover and it is a girld. [11:12] JoseCabo: girl* [11:12] liquidproof has joined the channel [11:12] Skola: say I have an object with a lot of methods, how can I call all the methods without calling them manually? [11:13] bogomips: goodmorning, i'm tryng node and socket.it, there is a method to strip all html tag to be save from xss or i must write one manually ? thanks [11:13] bogomips: s/it/io [11:13] tuhoojabotti: Skola: I want to know how to call a function by the name of it [11:13] tuhoojabotti: like if I have a string "lol" I want to call lolInit [11:13] tuhoojabotti: :D [11:13] Skola: yes [11:14] Skola: me too : {} [11:14] tuhoojabotti: I did that on the browser [11:14] Skola: isn't that metaprogramming? [11:14] JoseCabo: tuhoojabotti, Skola i don't understand. [11:14] ryah: Skola: for (var x in obj) { if (typeof obj[x] == 'function') obj[x]() } [11:14] tuhoojabotti: window["function_name"] worked :D [11:14] JoseCabo: Skola, do you want call a function/method without the name, right? [11:14] Skola: thanks ryah [11:14] Skola: yes Jose [11:15] JoseCabo: ryah, rules :D [11:15] tuhoojabotti: ryah: So if I don't know the object is is this[function_name]? :D [11:15] SubStack: eval() anyone? [11:15] tuhoojabotti: Okay I guess I should use them as objects [11:15] ryah: JoseCabo: :) [11:16] ryah: tuhoojabotti: ? [11:17] igl1 has joined the channel [11:17] tuhoojabotti: ryah: I'm not sure how I want to do it yet. :D But I'm thinking of making a modular plugin system that calls the right init function with the data from the mysql and not having a huge switch for that would be a plus. [11:18] tuhoojabotti: Like type=gallery|article|link [11:18] tuhoojabotti: and it calls galleryInit or articleInit [11:18] tuhoojabotti: and so on [11:19] tuhoojabotti: window[data.type + "PluginInit"](data, article); <- that's what I used to do. :P [11:19] framlin: obj[type+'init](args) [11:19] tuhoojabotti: yeah [11:19] tuhoojabotti: But I wonder what the obj will be [11:20] framlin: tho obj that has all the functions you want to call implemented ;) [11:20] tuhoojabotti: Yeah [11:20] tuhoojabotti: I guess I'll make a plugins object to store them :P [11:21] framlin: maybe this[type+'Init'](data, article) depends on where they are used/declared [11:21] tuhoojabotti: yeah [11:21] tuhoojabotti: Exactly what I thought. [11:21] tuhoojabotti: But perhaps it's better not make them to global scope. :D [11:21] framlin: shure ;) [11:22] framlin: global is evil [11:22] tuhoojabotti: Thanks ryah ♡ [11:22] tuhoojabotti: :P [11:23] gavin_huang has joined the channel [11:31] jbpros has joined the channel [11:33] Tobsn: does anyone know a website thumbnail service? [11:33] Tobsn: free & precached if possible [11:34] tiagoa has joined the channel [11:34] tuhoojabotti: Tobsn: I just found one ;D [11:34] tuhoojabotti: But I don't think it's intended for external use :D [11:34] Tobsn: haha [11:34] Tobsn: url? [11:34] justinTNT has joined the channel [11:35] tuhoojabotti: http://m.hs.fi/inf/imgc?rotate=left&scale=1000&url=http://www.miika.name/temp/avatar.png give java errors if you put ; :P [11:35] tuhoojabotti: hs is a big finnish newspaper [11:35] xandrews has joined the channel [11:35] tuhoojabotti: biggest that is [11:35] Tobsn: what? [11:35] Tobsn: no i mean from websites [11:35] Tobsn: screenshots [11:36] tuhoojabotti: Hmm [11:36] tuhoojabotti: I don't understand. [11:36] tuhoojabotti: oh wait [11:36] tuhoojabotti: you mean like to see what your site looks like? [11:36] tuhoojabotti: http://browsershots.org/ ? [11:37] Tobsn: hehe [11:37] Tobsn: http://www.websnapr.com/ [11:38] Tobsn: http://api1.thumbalizr.com/?url=http://www.ford.de&width=250 [11:38] Tobsn: like that [11:39] tiglionabbit_ has joined the channel [11:39] tuhoojabotti: Tobsn: What do you need that for? :o [11:39] tuhoojabotti: for your search I guess [11:39] tuhoojabotti: Tobsn: Just rip the images from google ;D [11:39] Tobsn: http://url2png.com/code/ [11:39] Tobsn: yeah thats not possible [11:40] Tobsn: the urls are very unique [11:40] tuhoojabotti: yeah [11:40] `3rdEden: Tobsn just run a headless webkit or firefox instance on your server ;) [11:40] Tobsn: im doing this since 12 years, trust me, if i wouldve found a way to get it for free and easy i wouldnt ask hehe [11:40] Tobsn: lol [11:40] Tobsn: you two are not helpful at all [11:40] Tobsn: :P [11:40] tuhoojabotti: 2 Bad [11:41] `3rdEden: Tobsn I'm not helpfull *tears* [11:41] Tobsn: `3rdEden, but yes, for around 2ms i had this EC2 gearman idea shooting through my head [11:41] tuhoojabotti: http://youtu.be/qILWHFYAnQ (Rocksonix) [11:41] Tobsn: but no, im not gonna do that [11:41] `3rdEden: http://www.phantomjs.org/ <-- [11:41] `3rdEden: easy peasy [11:41] Tobsn: http://url2png.com/plans/ [11:41] Tobsn: i like that [11:41] Tobsn: where do those idiots come up with those prices? [11:42] Tobsn: if i run a serious service 20,000 is a fucking joke [11:43] tuhoojabotti: Tobsn: Serious service with Bing ;Q [11:43] jbpros has joined the channel [11:43] Tobsn: tuhoojabotti, go and find a search API [11:43] Tobsn: go, let me know if you find another one [11:43] tuhoojabotti: Why are you making a search site? [11:43] tuhoojabotti: Just curious [11:43] Tobsn: hehe [11:43] Tobsn: its just a very very tiny part of making around 6 million dollar a month [11:44] Tobsn: but, i need it, so i coded that together [11:44] tuhoojabotti: This random k-pop I'm listening to is just getting better and better :D [11:44] tuhoojabotti: damn, now it got worse [11:45] jbpros_ has joined the channel [11:45] tuhoojabotti: (male k-pop :SS) [11:45] tuhoojabotti: I thought this was a good shoutcast! [11:45] Tobsn: tuhoojabotti, im doing affiliate marketing & coding since 12 years now, started end of 1999, i had some good ideas and some bad ideas and i had a really really good one around 8 month ago... so i got myself some VC and now im a one man show pulling off something my nearest competitor needs 40 people [11:45] Tobsn: thats why i cant waste time building a website screenshot service hehe [11:45] ditesh|cassini has joined the channel [11:45] Tobsn: or set up solr hehe [11:46] Tobsn: for that matter [11:46] tuhoojabotti: Tobsn: b-but Bing ;D [11:46] Tobsn: who the fuck cares [11:46] tuhoojabotti: Anyways I wish you luck with your project. :P [11:46] Tobsn: you really think that anyone who will use that thing will know the difference? [11:46] tuhoojabotti: but I'd like if your site would be more unique [11:46] Tobsn: nobody cares buddy, its not a web2.0 public project, its just a money maker site [11:47] vpereira: what is the best reference for C++ and node.js, or how to write the c++ modules.. any official documentation? [11:47] tuhoojabotti: Tobsn: also the button is still taller than the textbox :P [11:47] Tobsn: its not like im in SF and have investors that have investors that have investers that have to show anyone anything [11:47] Tobsn: damnit [11:47] Tobsn: which browser? [11:47] tuhoojabotti: Chrome latest stable [11:47] vpereira: http://nodejs.org/docs/v0.3.1/api/addons.html ? [11:47] tuhoojabotti: I told you yesterday [11:47] Tobsn: god damnit [11:47] tuhoojabotti: 29px and 30px [11:48] Tobsn: why is that thing now 1px larger [11:48] Tobsn: that was fine a couple days ago [11:48] tuhoojabotti: :P [11:48] Tobsn: its the same size in IE [11:48] tuhoojabotti: IE ;) [11:48] Tobsn: http://dl.dropbox.com/u/1656816/Screenshots/_t-z.png [11:48] Tobsn: http://dl.dropbox.com/u/1656816/Screenshots/i0n6.png [11:48] Tobsn: and firefox [11:48] Tobsn: chrome users arent using that service anyway [11:49] FireFly has joined the channel [11:49] Tobsn: tuhoojabotti, yeah the target zone using that site will be probably 98% IE [11:49] Tobsn: erm target group [11:50] tuhoojabotti: Only IE users typo com to cm? ;) [11:50] Tobsn: the domain doesnt matter either [11:52] Xano has joined the channel [11:54] hij1nx has joined the channel [11:55] andree has joined the channel [11:55] mike5w3c has joined the channel [11:57] mekwall: hmm this is weird [11:58] zomgbie has joined the channel [11:58] mekwall: node.js isn't multi-core capable... but for some reason it performs way better with 4 cores compared to 1 [11:58] mekwall: how is that? [11:58] framlin: EventLoop? [11:58] Tobsn: gcc? [11:58] Lorentz: Depends on what you're doing. [11:58] mekwall: benchmarking a http server [11:59] framlin: non blocking [11:59] Tobsn: ryah, there? [11:59] mekwall: framlin: yes, but does that mean that it leverages all cores? [11:59] mekwall: even though there's only once process [11:59] mekwall: one* [12:00] Tobsn: http://node.gd/ [12:00] framlin: no, afik its running only on one core [12:00] framlin: but its not blocking, so it does not need to fork threads [12:01] mekwall: I know that [12:01] mekwall: but how come it peforms better with 4 cores then with 1? :D [12:01] bradley has joined the channel [12:01] Lorentz: How are you benchmarking an http server? [12:01] mekwall: Lorentz: there you go... didn't think about that ;) [12:02] mekwall: locally... so probably apachebench using more cores [12:02] framlin: ah .... no I get your point ... good question ;) [12:02] mekwall: thats probably the explanaition [12:02] mc_greeny has joined the channel [12:02] mekwall: got about 2600 req/s with 1 core and 4400 with 4 cores [12:02] Tobsn: yeah [12:03] Tobsn: you can also not test locally [12:03] Tobsn: that takes away all the problems [12:03] mekwall: Tobsn: I'm merely testing the performance of node.js [12:03] mekwall: not a real-life test [12:03] mekwall: comparing it to other local tests [12:03] mekwall: might not have any real use but to myself [12:04] Bwen has joined the channel [12:04] Tobsn: that still takes away latency etc. [12:04] mekwall: yeah, but I'm not benchmarking the connection [12:05] mekwall: benchmarking a simple http server that outputs "Hello world" ... and I'm pretty sure I'll never have a site running with only that anyways [12:05] roidrage: and that's why your benchmark is pretty much useless [12:05] Tobsn: no youre not [12:05] mekwall: roidrage: not to me, when I am comparing it to other local tests [12:06] Tobsn: youre benchmaking how fast node.js can send out requests from localhost to localhost hehe [12:06] mekwall: compared to... [12:06] roidrage: your other local tests are also pointless [12:06] svenlito has joined the channel [12:06] mekwall: which is the important part here :) [12:06] Tobsn: youre really not testing it [12:06] roidrage: the numbers you're getting don't have any meaning, either way. you'd be foolish to conclude anything from them [12:06] mekwall: roidrage: as I said, they only have a use for myself... proving how fast node.js is [12:06] Tobsn: they are always only for yourself [12:06] Tobsn: and it doesnt show you how fast node.js is [12:07] mekwall: so why are you guys arguing? :) [12:07] Tobsn: that way youre just finding out how fast the kernel is [12:07] mekwall: trolling behavior 101 [12:07] Tobsn: oookay [12:07] Tobsn: well, than go ahead [12:07] Tobsn: nevermind us [12:07] eyesUnclouded has joined the channel [12:07] roidrage: i hope to see a proper blog posts with your results soon [12:07] Tobsn: remind our words in 4-6 years when your facepalm and remember what we said [12:08] replore has joined the channel [12:08] Tobsn: http://node.gd http://javascript.gd [12:08] Tobsn: :D [12:09] elliottcable: Damnit, I don’t really grasp npm yet >,< [12:09] elliottcable: if node_modules/ is supposed to be in *in my dirctory*, uh [12:09] mekwall: if I drive a car at 60mph with 1 gear, and then give it 3 more gears and can drive in 200mph but on first gear. sure I'd question why :) [12:09] elliottcable: well, first off, how do I make it work with `require()`? [12:09] elliottcable: doesn’t `require()` only look in ~/node_modules? [12:09] elliottcable: at least, that’s all I recally from way-back-when [12:09] mekwall: roidrage: why would I post that? [12:10] xerox: elliottcable: hang on [12:10] mekwall: benchmarks are useless to anyone but yourself [12:10] xerox: elliottcable: http://nodejs.org/docs/v0.4.8/api/modules.html#modules [12:10] elliottcable: actually, ignore me. I just reached the “modules” section of the current Node API docs. so, yeah, apparently it does the same recursively-climb-and-look-for-modules thing. [12:10] elliottcable: xerox: hahaha good timing [12:11] xerox: exactly [12:11] mekwall: Tobsn: wth are you on about? [12:11] xerox: and npm installs in ./node_modules by default [12:11] xerox: or installs in process.installDir if passed the -g option (global) [12:11] xerox: which you use for scripts, end of the story! [12:11] Tobsn: elliottcable, yeah its all handled locally [12:11] liquidproof has joined the channel [12:11] hojberg has joined the channel [12:11] Tobsn: you just do require(module) [12:12] mekwall: Tobsn: and yes it does show me how fast node.js is compared to other solutions on my current hardware [12:12] Tobsn: mekwall, like i said, nevermind ;) [12:12] Tobsn: or does it? [12:12] elliottcable: deadmau5 == perfect programming music [12:12] Tobsn: are you really sure about it? [12:12] elliottcable: second only to Grieg [12:12] tuhoojabotti: elliottcable: Now you're ignoring me. :/ [12:12] elliottcable: tuhoojabotti: what? [12:12] elliottcable: tuhoojabotti: hi, what, hi, what’d you say [12:12] Tobsn: lets say you compare php over a webserver locally vs. node.js locally [12:12] elliottcable: ACTION is working [12:12] Tobsn: you think that would be a 1:1 comparison? [12:12] mekwall: Tobsn: you just read trolling for dummies didn't you... [12:12] Tobsn: 500 req/sec with php and 2000 req/sec with node.js [12:13] Tobsn: mekwall, well you think you know it better so why would you keep asking? [12:13] roidrage: aw, you guys are so cute [12:13] Tobsn: hehe [12:13] mekwall: can't compare it with php [12:13] tuhoojabotti: elliottcable: You bashed at my site and didn't tell me why. :/ [12:13] tuhoojabotti: afaik [12:13] tuhoojabotti: iirc [12:13] roidrage: mekwall: why keep arguing if all if good for you? you don't have to convince us, we just have a different pov on what constitutes proper benchmarking [12:13] kulor-uk has joined the channel [12:13] Tobsn: roidrage, im just waiting that he snaps out of it and realizes that what hes doing makes no sense instead of saying we are trolling [12:13] mekwall: Tobsn: compared it with python/twisted with an equally simple http instance... [12:13] mc_greeny has joined the channel [12:13] elliottcable: tuhoojabotti: oh lol [12:14] adambeynon has joined the channel [12:14] mekwall: roidrage: because its fun to see Tobsn trying to troll me... which kinda makes me a troll as well for encouraging him :) [12:14] elliottcable: tuhoojabotti: look, I’m really busy / distracted. I’d be glad to give you a free point-by-point critique session, because I’m so motherfucking nice and all that; but you’ll need to ask me *later* [12:14] elliottcable: tuhoojabotti: go hang in ##Paws and catch my ear when I look bored [12:14] Tobsn: whatever dude [12:14] Tobsn: its 5am [12:14] elliottcable: lol roidrage is in here? [12:14] Tobsn: i need to go to bed anyway [12:14] tuhoojabotti: elliottcable: :D [12:14] roidrage: no, it's not. it's 2pm! [12:14] elliottcable: EIGHT AM [12:14] Tobsn: no, its 5am! [12:14] elliottcable: AND I HAVEN’T SLEPT YET [12:15] mekwall: Tobsn: there's a truth. everything is relative [12:15] elliottcable: #BAWS [12:15] elliottcable: your mom is relative. [12:15] elliottcable: to you. [12:15] elliottcable: a relative. [12:15] elliottcable: that. [12:15] elliottcable: >,> [12:15] roidrage: lulz [12:15] elliottcable: <,< [12:15] mekwall: haha [12:15] elliottcable: roidrage: don’t I know you from somewhere? [12:15] Tobsn: your moms bedroom? [12:15] roidrage: from the internet [12:15] elliottcable: ACTION /ht Tobsn [12:15] Tobsn: ht [12:15] Tobsn: hmm [12:15] mekwall: roidrage: yeah my pov is that there is no such thing as proper benchmarking [12:15] Tobsn: hate? [12:15] jtrudeau has joined the channel [12:16] mekwall: too many variables to account for [12:16] Tobsn: hypertension? [12:16] Tobsn: yeah, way too many variables [12:16] jtrudeau has joined the channel [12:17] mekwall: hyperthreading? :P [12:17] dtan has joined the channel [12:17] Tobsn: foursquare hits 10m users [12:17] Tobsn: wanna bet 9,999,940 are on facebook? ;) [12:17] Twelve-60 has joined the channel [12:18] Tobsn: http://www.businessinsider.com/chart-of-the-day-mobile-apps-vs-web-minutes-per-day-2011-6 [12:18] Tobsn: btw. that blew my mind a couple hours ago [12:18] elliottcable: Oh my god fuck jslint. [12:19] elliottcable: it thinks EVERY SINGLE LINE OF MY CODE is a syntax error [12:19] elliottcable: oh, wait, EVERY SINGLE LINE THAT ISN’T EMPTY, my bad [12:20] abrookins has joined the channel [12:20] mekwall: crockford for dummies [12:20] Tobsn: hmm can you collapse images if not loaded? [12:21] Tobsn: is that even possible [12:21] Tobsn: hmm [12:21] Tobsn: ah nevermind, gonna write it down, do it in a couple hours [12:21] tuhoojabotti: It's 15:21 [12:22] rio{: elliottcable: maybe you have the wrong options set for your expectations? [12:23] elliottcable: rio{: heh perhaps [12:23] elliottcable: rio{: I’m speaking in general; I don’t actually use jslint myself. [12:25] jetienne has joined the channel [12:27] mAritz has joined the channel [12:27] thalll has joined the channel [12:28] sourcode has joined the channel [12:30] jonaslund: ASI ? [12:31] abrookins has left the channel [12:31] edude03 has joined the channel [12:31] jscheel has joined the channel [12:32] havenn has joined the channel [12:32] jscheel_ has joined the channel [12:32] jscheel_ has joined the channel [12:33] rpj8-else has joined the channel [12:33] al3xnull_ has joined the channel [12:34] xandrews has joined the channel [12:34] Leonidas has joined the channel [12:34] rpj8-else: I'd like to grab a lot of users from my mongo db through middleware and send them to a partial with express. Right now I'm thinking of doing it like passing an array of returned users from mongoose, but I'm not sure how to pass variables using middleware. I tried next(users) at the end but failed miserably [12:35] elliottcable: http://www.vim.org/scripts/script.php?script_id=2975 [12:35] Druide_ has joined the channel [12:35] elliottcable: is so ridiculously pimp! [12:35] Will| has joined the channel [12:36] sonnym has joined the channel [12:36] asobrasil has joined the channel [12:40] stagas has joined the channel [12:41] dtan has joined the channel [12:41] rauchg: testing [12:41] rauchg: for release [12:41] socketio\test\42 has joined the channel [12:42] rauchg: oops [12:42] rauchg: testing for release now [12:42] rauchg: elliottcable [12:42] rauchg: hi [12:43] arpegius has joined the channel [12:43] rauchg: hi arpegius [12:44] unlink has joined the channel [12:44] unlink has joined the channel [12:45] stonebranch has joined the channel [12:46] rauchg: hi stonebranch [12:46] jakeg has joined the channel [12:50] jslatts_ has joined the channel [12:53] rpj8-else: A little more information: http://jsfiddle.net/KeQBZ/ I'm attempting to do something like this, but I'm not doin' it right. Any insights? [12:54] jakeg: socket.io 0.7 ftw http://socket.io/index.html#announcement [12:54] `3rdEden: OH yeah we just released it ^ [12:55] mendel_ has joined the channel [12:56] jakeg: lol "One socket is cool. You know what's cooler? >1 socket" [12:56] AaronMT has joined the channel [12:57] code2k has joined the channel [12:57] hdon has joined the channel [13:00] tim_smart: elliottcable: comma first style? [13:02] drudge: i wonder if node can run on the Power6 arch [13:02] adambeynon has joined the channel [13:07] gozala has joined the channel [13:08] elliottcable: Hm. [13:08] elliottcable: `npm help json` has an example with *two* `"repository` jeys, which I’m pretty sure is illegal. [13:08] elliottcable: should I provide a `"repositories": [ … ]` array instead? [13:08] davidsklar has joined the channel [13:10] brianseeders has joined the channel [13:12] Xano has joined the channel [13:13] dans: how should i organise my node projects? say i'm creating models with mongoose...where should i put these? and where should i put routes? [13:14] Lorentz: Put them somewhere logical. In a directory maybe. [13:14] Lorentz: If it doesn't make sense as you keep coding, refactor. [13:14] Lorentz: Worry about it when it happens. [13:14] dans: ok but are there any common patterns? [13:15] stagas: dans: whatever works [13:16] squeese has joined the channel [13:16] jlecker has joined the channel [13:16] coffeecup: i started to write a multiplayer shooter (2d) with socket.io and send 60 world updates / second to each client connected, when there are 20 clients connected i get nearly 100% cpu usage... i did no optimization at all but is this the regular performance i can get out of it ( ~1500 messages / second ) ? i run this on my virtual machine which is allowed to use 1 core of my core-i7 cpu [13:17] stagas: dans: usually for a web app I use app/ views/ public/ [13:18] tuhoojabotti: I have node/ and www/ ;) [13:18] jtrally has joined the channel [13:18] stagas: coffeecup: 60 updates/sec is too much [13:19] Bwen: coffeecup: time for client prediction and optimization [13:19] coffeecup: yea.. i c :) [13:19] stagas: coffeecup: or you can use maga https://github.com/stagas/maga [13:21] sioked has joined the channel [13:21] elliottcable: “This is not a simple alias to setTimeout(fn, 0), it's much more efficient.” [13:21] elliottcable: is that still true? [13:21] stagas: elliottcable: yeap [13:22] kkaefer: elliottcable: yes [13:22] elliottcable: heh, any specifics as to why? [13:22] elliottcable: #justcurious [13:22] dtan has joined the channel [13:22] kkaefer: elliottcable: read the code ;) [13:22] stagas: elliottcable: and also they will execute in the order you call them at the top of the next event loop [13:23] kkaefer: elliottcable: the gist is that process.nextTick() just puts them at the top of the next event loop [13:23] elliottcable: why can’t setTimeout do the same when its argument is zero? [13:23] kkaefer: while setTimeout does some wrapping to ensure it's waiting for at the specified amount of milliseconds [13:23] baoist has joined the channel [13:23] elliottcable: and I don’t read C++, by principle :3 [13:23] kkaefer: elliottcable: it's javascript code [13:23] elliottcable: at least, if there’s *absolutely any* other option [13:23] elliottcable: ah, well that’s very slightly more likely. [13:23] mandric has joined the channel [13:24] elliottcable: if only whoever writes the majority of the Node source code nowadays wrote sane, legible JavaScript! ;D [13:24] taf2: principles to stay ignorant ? [13:24] dtan: elliotcable, there is a slight delay even when you have setTimeout to 0 [13:24] dtan: it's kinda weird [13:24] elliottcable: dtan: mmhmm, I got it [13:24] elliottcable: dtan: makes sense from what kkaefer said [13:24] dtan: i found that out while debugging IE [13:24] elliottcable: effectively, what I’d guessed; just wanted to verify [13:24] dtan: ah, sorry just logged in [13:24] elliottcable: no probs mate [13:24] dtan: so i don't think i saw his comment [13:24] brettgoulder has joined the channel [13:24] elliottcable: ACTION hums along to Cake and reads new-Node docs [13:24] tuhoojabotti: dtan: ofc there's delay in setimeout(0) [13:24] tuhoojabotti: it's more code to run ;P [13:25] dtan: ha [13:25] dtan: true [13:25] thomblake has joined the channel [13:25] avalanche123 has joined the channel [13:26] oktav2k3 has joined the channel [13:26] rfay has joined the channel [13:26] vpereira1 has joined the channel [13:26] jarek has joined the channel [13:26] jarek has joined the channel [13:27] tim_smart: dtan: setTimeout essentially does the same as process.tick [13:27] tim_smart: or onTick [13:27] tim_smart: w/e [13:27] elliottcable: tim_smart: forgive the interruption, but do I know you? [13:28] dtan: cool, i just started learning node.js so i haven't really run into many scenarios just yet [13:28] elliottcable: ACTION is trying to re-associate the people from his vague memories of the old #node.js with the new actives [13:28] tim_smart: elliottcable: Maybe.... [13:28] tim_smart: :p [13:28] elliottcable: lol so very helpful man [13:28] elliottcable: has EventEmitter changed much? [13:28] tim_smart: Um I have been around since early 2010 [13:29] Aikar: tim_smart: not identical but very close in functionality :P [13:29] elliottcable: I’m pretty sure I was still here in “early 2010”? [13:29] elliottcable: I stopped paying some time in late Janurary I think? [13:29] tim_smart: elliottcable: Alias .on to .addListener, .once and some other stuff [13:29] oktav2k3: hello everybody [13:29] oktav2k3: can anyone help me with node-control? [13:29] elliottcable: what about the error handling? [13:29] elliottcable: I hear people talking about “bubbling” [13:29] elliottcable: and that sounds disturbingly magical / abstracted [13:30] elliottcable: |= [13:30] mkrecny has joined the channel [13:30] elliottcable: doesn’t sound like it’s simple errbacks anymore? unless it’s just new terminology for the Same Ol’ Thing? [13:30] dtan: i only know what bubbling is on the frontend [13:30] tim_smart: elliottcable: Depends what you are working with. Streams usually emit 'error' events, callbacks usually have (error) as the first argument [13:30] tim_smart: error is null if there was no error [13:31] elliottcable: “Error events are treated as a special case in node.” [13:31] elliottcable: but I’m not quite seeing *how* they’re specially treated, from the docs … [13:31] cbibler_ has joined the channel [13:31] elliottcable: mind you I haven’t worked all the way through it yet, still reading [13:31] tim_smart: elliottcable: If you don't add a error listener, they usually throw [13:31] xandrews has joined the channel [13:31] tim_smart: Unless you catch it with a process.on('uncaughtException') [13:31] elliottcable: so if there’s zero listeners registered on an EventEmitter instance for the key 'error' [13:32] elliottcable: and then an 'error' event is generated in some way, [13:32] elliottcable: Node automatically crashes and prints a stack trace? [13:32] elliottcable: #amireadingthisright [13:32] tim_smart: Ya [13:32] elliottcable: and that’s true for *any* EventEmitter instance, not just special core-ones from things like Server? [13:32] mkrecny: what are ppl using for nested urlencoded params - querystring.stringify() doesn't work past a 1d object [13:32] elliottcable: ah I can test this myself. Ignore me, wasting everybody’s time. [13:32] tim_smart: elliottcable: http://nodejs.org/docs/v0.4.8/api/events.html#events.EventEmitter [13:32] tim_smart: elliottcable: Docs are pretty decent [13:32] elliottcable: that’s what I’m reading right now :D [13:33] elliottcable: but yeah I’ll play, stupid questions to be asking on my part |= [13:34] ianward has joined the channel [13:34] elliottcable: v8: (new(require("events").EventEmitter)()).emit('error') [13:34] v8bot: elliottcable: ReferenceError: require is not defined [13:34] elliottcable: oh bluh [13:34] elliottcable: well yeah, tested it locally, and it indeed throws [13:34] elliottcable: interesting. [13:34] tim_smart: indeed [13:34] elliottcable: well, that understood, I still don’t grasp what “bubbling” is. [13:34] elliottcable: I gather it’s good practice if you’re writing modular code, so … [13:34] tim_smart: Where does it mention bubbling [13:34] elliottcable: not in the docs [13:34] elliottcable: I’m assuming it’s an idiomatic practice involving error handling [13:35] elliottcable: I really don’t know, I just hear the word bandied about :x [13:35] tim_smart: It just means passing errors back to the front-most UI [13:36] okuryu has joined the channel [13:37] tagae has joined the channel [13:38] Fodi69 has joined the channel [13:39] elliottcable: hm, Buffer seems *fairly* sane [13:39] elliottcable: as sane as you can get if you want to modify binary from plain JavaScript, I suppose [13:39] elliottcable: why do I hear so much hate on it? [13:39] elliottcable: are there known issues I should be aware of? [13:41] adnam has joined the channel [13:43] lorinc has joined the channel [13:43] Poetro has joined the channel [13:44] oktav2k3: can anyone help me with node-control? [13:44] oktav2k3: https://github.com/tsmith/node-control [13:44] jonaslund: elliottcable: there are some small shortcommings imho but nothing major [13:44] jonaslund: elliottcable: it's not terribly fast either (naturally) [13:44] pen has joined the channel [13:45] jonaslund: BUT.. in the future(TM) it will be fast (V8 has optimizations for dense Int/Float buffers to speed up WebGL and those improvements will trickle down to node.js Buffers eventually) [13:46] dall: guys, do you know a SIP module for nodejs ? (to make normal calls) [13:46] dall: (make/receive) [13:46] Jalava_: is this bug, arguments is not array of parameters but Object with keys starting from 0 containing parameters [13:46] jonaslund: Jalava_: no it's according to spec [13:46] Jalava_: problem is that you cannot use .apply() with arguments directly [13:47] Jalava_: because apply expects array and not assoc array [13:47] Jalava_: tested on chrome js and it gives arguments as array and not object [13:48] jonaslund: the EcmaScript standard says that apply should accept an array or arguments object [13:48] ngs has joined the channel [13:48] jonaslund: (Just checked) [13:48] Jalava_: hmm, then apply bugs [13:49] jonaslund: I'm pretty sure i've done code passing stuff [13:49] ksheurs has joined the channel [13:49] Jalava_: because calling function.apply(arguments) gives arguments as first parameter as object [13:50] softdrink has joined the channel [13:50] Aphelion has joined the channel [13:50] Aphelion has joined the channel [13:50] dtan: isn't the first argument of apply the object to scope to? [13:50] jonaslund: function blah(X) { doThingsWithX...; Array.prototype.shift.apply(arguments); otherFunction.apply(this,arguments); } [13:50] Jalava_: ah this, arguments [13:50] adambeynon has joined the channel [13:51] jonaslund: yeah you always specify this [13:51] jonaslund: first [13:51] jonaslund: then arguments [13:51] dtan: this, or depending on your context [13:51] willwhite has joined the channel [13:51] Jalava_: hmm, looking at our code we did that, strange [13:51] dtan: i know in the browser when i make an alias for console methods [13:51] hij1nx: jonaslund: this or any object that should be the context [13:52] dtan: i always pass in the console as the first argument, not this [13:52] akashiraffee has joined the channel [13:52] jonaslund: hij1nx: whatever is a valid object and is passed as the this parameter will become the this reference in the called function. [13:53] hij1nx: jonaslund: yes [13:55] jonaslund: function getGlobal() { return (function() { return this; }).apply(null); } [13:55] jonaslund: nasty but valid with ES 3 [13:56] davidwalsh has joined the channel [13:57] meat_popsicle has joined the channel [13:58] ryanfitz has joined the channel [14:03] hij1nx has joined the channel [14:04] BillyBreen has joined the channel [14:05] nibblebo_ has joined the channel [14:05] JJMalina has joined the channel [14:06] jamey-uk has joined the channel [14:07] baudehlo has joined the channel [14:07] jamey-uk: I'm using the HTTP module to download a JPEG from our CDN… it's just over 1MB in size, it downloads in the browser quickly, but using http.request() it seemingly comes back in one chunk and takes a *long* time (more than 10 seconds). Am I doing something fundamentally wrong here? [14:07] tuhoojabotti: jamey-uk: Some guy was looking for people in the UK. [14:07] tuhoojabotti: :P [14:07] jamey-uk: tuhoojabotti: thanks, it's my boss :P [14:07] tuhoojabotti: :D:D [14:08] jamey-uk: *we're* looking for people in the UK ;) [14:08] tuhoojabotti: jamey-uk: How was your chat with Mike? :D [14:08] jerrysv has joined the channel [14:08] jamey-uk: yeah good thanks, I've got him on IM now, we chatted about the merits of various programming language :D [14:08] jamey-uk: languages* [14:08] tuhoojabotti: hehe [14:09] jamey-uk: tuhoojabotti: v [14:09] tuhoojabotti: He was liek AS3 and you were liek JS [14:09] mikl: I have a rather weird npm install issue, as described here: https://github.com/samshull/node-proxy/issues/7 - any ideas? [14:09] jamey-uk: tuhoojabotti: woops, I'm still shocked he went to the same school as me [14:09] tuhoojabotti: :D [14:09] jamey-uk: tuhoojabotti: precisely, I was like what the hell is AS(2/3), I'm all like JS and ninja [14:09] zomgbie has joined the channel [14:09] tuhoojabotti: :P [14:10] thejh has joined the channel [14:10] Corren has joined the channel [14:11] bentruyman has joined the channel [14:12] tmpvar has joined the channel [14:12] liar has joined the channel [14:13] jamey-uk has left the channel [14:13] jarek has joined the channel [14:13] jarek has joined the channel [14:13] Daemon_Byte has joined the channel [14:13] Daemon_Byte has joined the channel [14:14] hunterloftis has joined the channel [14:15] jamey-uk has joined the channel [14:15] hunterloftis: cron jobs on a server without assuming the server is going to retain a timeout (maybe it crashes?) ... anybody know of an existing datastore-backed solution? [14:16] Daemon_Byte: Hi all. I'm trying to write a quick web server to sit in front of varnish to limit the number of times a user can access the website. I've pretty much got everything working but I have one problem stopping me. http://pastebin.com/YZUDUGa1 If you arrive on the server and found to be in the white list you get proxied onto our site straight away on line 201. This works fine. If however it goes into the memcache call back and then proxies [14:16] Daemon_Byte: line 270 then the server just hangs forever. The browser gets no response nore does node throw an error. Any help would be useful at this point [14:18] fakewaffle_ has joined the channel [14:19] dantalizing has joined the channel [14:19] dantalizing has joined the channel [14:19] kruckenb has joined the channel [14:20] bazookatooth has joined the channel [14:20] montylounge has joined the channel [14:22] jslatts has joined the channel [14:22] d0k has joined the channel [14:25] arpegius_ has joined the channel [14:25] brolin has joined the channel [14:25] mapleman has joined the channel [14:26] JoseCabo: Hi! I posted an issue to node.js: https://github.com/joyent/node/issues/1207 [14:26] tahu has joined the channel [14:27] Daemon_Byte has left the channel [14:27] nibblebo_: Daemon_Byte: didn't look at the code much, but if your request hangs, perhaps you are not doing res.end() [14:30] drudge: has anyone built node.js on AIX? [14:31] clifton has joined the channel [14:32] coleGillespie has joined the channel [14:32] jslatts: does anyone know if fs.watchFile on a directory will trigger its callback when a large file is being written into the directory _before_ the write has completed? [14:32] pifantastic has joined the channel [14:33] mynyml has joined the channel [14:35] jacobolus has joined the channel [14:36] bingomanatee has joined the channel [14:36] dall has joined the channel [14:37] jarek has joined the channel [14:37] jarek has joined the channel [14:38] LiamMagee has joined the channel [14:39] adambeynon has joined the channel [14:41] flou has joined the channel [14:42] sivy has joined the channel [14:42] Destos has joined the channel [14:44] googol has joined the channel [14:44] christkv has joined the channel [14:45] zomgbie has joined the channel [14:45] lgespinoza has joined the channel [14:45] lgespinoza has left the channel [14:45] stagas: jslatts: I think it triggers before [14:46] stagas: jslatts: noticed it when I was ftp uploading [14:46] jslatts: stagas: that is my guess as well. I guess i need to write a unit test and figure it out [14:46] skohorn has joined the channel [14:46] infynyxx has joined the channel [14:46] Skola has joined the channel [14:47] Xano has joined the channel [14:48] jtsnow has joined the channel [14:50] Mrfloyd has joined the channel [14:52] fumanchu182 has joined the channel [14:53] tahu has joined the channel [14:53] ditesh|cassini has joined the channel [14:53] gazumps has joined the channel [14:53] Swizec has joined the channel [14:53] madzak has joined the channel [14:53] vipaca has joined the channel [14:53] vipaca has joined the channel [14:55] Swimming_bird has joined the channel [14:56] gsmcwhirter has joined the channel [14:56] mandric has joined the channel [14:57] mcavage has joined the channel [14:57] pjacobs has joined the channel [14:58] dylang has joined the channel [14:58] bshumate has joined the channel [14:58] bshumate has joined the channel [14:59] montylounge has joined the channel [14:59] msilverman2 has joined the channel [14:59] bentruym_ has joined the channel [14:59] bradley has joined the channel [15:00] msilverman2: Mornin', all. Anyone out there use TJ's tobi? Getting a weird error when I try to submit a form: TypeError: Property 'POST' of object # is not a function [15:01] colinclark has joined the channel [15:04] meso_ has joined the channel [15:06] gozala has joined the channel [15:06] raidfive has joined the channel [15:07] k1ttty has joined the channel [15:08] sub_pop has joined the channel [15:09] joshontheweb has joined the channel [15:09] bingomanatee: can you pastebin code? [15:09] sirganya has joined the channel [15:09] KingJamool has joined the channel [15:09] rpflo has joined the channel [15:10] jameshome has joined the channel [15:12] rpj8-else: fuuuuu. Anyone have sorting of records working with mongoose? [15:12] madsleejensen has joined the channel [15:12] thejh has left the channel [15:13] bingomanatee: keep in mind sorts on large recordsets might not work if you don't have indexes on the key properties. [15:13] felicity_ has joined the channel [15:13] felicity_: how do i build node.js using GCC on Solaris? http://p.tcx.org.uk/44 [15:13] yozgrahame has joined the channel [15:13] bingomanatee: thats a mongo concern not a mongoose concren. [15:13] christkv has joined the channel [15:14] rpj8-else: bingomanatee: fair enough. that being siad, Ihave 2 records in this database :P [15:14] tjholowaychuk has joined the channel [15:14] rpj8-else: and sorting works from the mongo repl [15:14] liquidproof has joined the channel [15:15] rpj8-else: hmmerz [15:15] rpj8-else: do I need the mongodb-native-driver installed explicitly? [15:16] eb4890 has joined the channel [15:16] wookiehangover has joined the channel [15:19] mscdex: felicity_: i'd post to the mailing list, Joyent uses Solaris in-house iirc [15:20] bradley has joined the channel [15:21] RORgasm has joined the channel [15:21] bentruyman has joined the channel [15:22] eresair has joined the channel [15:22] felicity_: hmm, well i just patched the bundled scons for now... we have a standard patch for scons which tries *really* hard to not use gcc on solaris. so not sure if it's really a node issue.. [15:22] sfoster has joined the channel [15:23] philtor has joined the channel [15:23] EyePulp has joined the channel [15:24] trumpetmic has joined the channel [15:26] hij1nx has joined the channel [15:26] aron_ has joined the channel [15:26] jacoboss has joined the channel [15:27] jacoboss: hi [15:27] mc_greeny has joined the channel [15:27] adambeynon has joined the channel [15:27] jacoboss: i have a problem with arch & nodejs [15:27] tbranyen: jacoboss: yeah python2 [15:27] tbranyen: vs python3 [15:27] jacoboss: till like a week ago the git version had several issues with arch [15:28] tbranyen: jacoboss: why aren't you installing through the AUR? [15:28] jacoboss: exactly [15:28] jacoboss: i tried that [15:28] jacoboss: and now i get the same errors... [15:28] tbranyen: can you pastie the errors? [15:28] jacoboss: pretty frustrating [15:28] jacoboss: shure [15:28] tbranyen: does makepkg work successfully? [15:28] dylang has joined the channel [15:28] tbranyen: like does it build a package? [15:30] kawaz_air has joined the channel [15:30] jacoboss: it takes a while to build [15:30] [AD]Turbo: socket.io 0.7 released via npm! [15:31] sh1mmer has joined the channel [15:31] kmiyashiro has joined the channel [15:31] MarkMenard has joined the channel [15:31] iffy|x200 has joined the channel [15:32] dall has joined the channel [15:32] dall: hi [15:32] zmbmartin: so I am messing with express-csrf it is only applied to post req. Are only post req susceptible to csrf? When I try to use it with post & put or post, put, delete I start getting errors? [15:34] swaj has joined the channel [15:34] zmbmartin: tjholowaychuk: do you implement csrf similar to the express-csrf repo? [15:35] fangel has joined the channel [15:35] tmpvar has joined the channel [15:35] rworth has joined the channel [15:36] jacoboss: god this machine is slow... [15:37] boaz has joined the channel [15:37] dguttman has joined the channel [15:37] cronopio has joined the channel [15:38] elliottcable: Hm. [15:38] elliottcable: I need to do some local development on a tiny little Node-y app [15:38] elliottcable: serverside, there’s a massive optimized NginX handling lots of such things, that will catch all the static file requests [15:39] elliottcable: I need some sort of really quick, really simple, no-bells-and-whistles way to serve the static files when playing with this same app’s source code locally [15:39] tchype has joined the channel [15:40] tjholowaychuk: elliottcable might want to use connect's static() middleware [15:40] tjholowaychuk: one line to set up [15:40] jacoboss: ok now it works... all i did was re-download & reinstall from aur... the strange thing is that i already tried... meh as long as it works... [15:40] jacoboss: goodbye everyone [15:40] tjholowaychuk: connect(connect.static('public')).listen(3000) [15:41] pen has joined the channel [15:41] pen has joined the channel [15:41] socketio\test\31 has joined the channel [15:42] mikl: I have a rather weird npm install issue, as described here: https://github.com/samshull/node-proxy/issues/7 - any ideas? [15:45] boaz has joined the channel [15:45] mfields has joined the channel [15:45] bartt has joined the channel [15:45] ryanfitz has joined the channel [15:46] sirdancealot has joined the channel [15:46] elliottcable: I don’t use connect. [15:46] tjholowaychuk: elliottcable: you dont have to use the rest of connect [15:46] elliottcable: I was hoping for something external to Node. [15:47] tjholowaychuk: ah [15:47] tjholowaychuk: gotcha [15:47] elliottcable: *just* to serve extant static files, and proxy any file-missing hit onwards to my little server.js running on port 12094u205u02341 [15:48] mfields: Hi, I'm a total beginner with node I was wondering if someone could help me out wit a small problem. I cannot seem to access localhost 8888 with telnet on mac os x 10.6 [15:48] elliottcable: mfields: tell me more about what you’re doing [15:48] tjholowaychuk: mfields: cluster repl? [15:48] elliottcable: mfields: (if I stop responding or start talking about something else, I’ve grown bored with you, and you’ll have to solicit help somewhere else. #ADHDisclaimer) [15:49] mfields: basically, just testing at the moment [15:49] jamey-uk: I'm using http.request() to download a JPEG from my CDN and it takes a number of seconds for the request to complete (before it saves the file locally)… yet in my browser with a fresh uncached copy it takes barely a second. Why is there such a delay? [15:49] stephank has joined the channel [15:49] socketio\test\53 has joined the channel [15:49] jvduf has joined the channel [15:49] mfields: tjholowaychuk - sorry, but I don't know what that means? [15:49] mscdex: jamey-uk: post your code [15:49] tjholowaychuk: mfields nvm haha just guessing [15:50] tjholowaychuk: mfields should be fine to do that though, I use telnet with node all the time [15:50] jvduf has joined the channel [15:50] socketio\test\62 has joined the channel [15:50] jamey-uk: mscdex: https://gist.github.com/1038159 line 144, it does come back with 'Saved!' but only after a surprisingly long response time [15:50] Yuffster_work has joined the channel [15:51] Pilate has joined the channel [15:51] bartt1 has joined the channel [15:51] mscdex: jamey-uk: use a write stream [15:51] JoseCabo: I posted a "bug" in node.js github: https://github.com/joyent/node/issues/1207 related with c++ modules. [15:51] sioked has joined the channel [15:51] mscdex: jamey-uk: don't buffer it all at once [15:51] JoseCabo: I've posted* [15:52] buzzomatic has joined the channel [15:52] trumpetmic has joined the channel [15:52] sstreza has joined the channel [15:52] mfields: My server seems to be running fine accessed via web browser. I am able to connect with: "telnet localhost 8888" as well. But when I type: "GET /", nothing happens. [15:53] tjholowaychuk: mfields GET / HTTP/1.1 [15:53] simenbrekken has joined the channel [15:53] tmpvar: JoseCabo, on noes! [15:53] broofa has joined the channel [15:53] tmpvar: oh noes* [15:54] JoseCabo: tmpvar, hi tmpvar! :D [15:54] JoseCabo: noes? whatmeans that? [15:54] jamey-uk: noes = no, if u r a cat [15:54] mfields: tjholowaychuk same results ... it just hangs and then after a while prints: "Connection closed by foreign host." [15:54] Corren has joined the channel [15:54] freeformz has joined the channel [15:54] tjholowaychuk: mfields hmm that sounds more like an application bug then, the request itself should be ok [15:54] tjholowaychuk: totally depends what you are doing i suppose [15:55] JoseCabo: jamey-uk, ah xD :S! [15:55] jamey-uk: JoseCabo: you are not from teh internets? [15:55] tswicegood has joined the channel [15:55] tmpvar: JoseCabo, that is a really weird bug :/ [15:55] JoseCabo: jamey-uk, mmm i am from spain xD [15:56] JoseCabo: tmpvar, yeees, too weird :P [15:56] jamey-uk: mscdex: what's the reason for using a write stream rather than fs.writeFile()? [15:56] mscdex: jamey-uk: you write it as it comes in instead of buffering the entire file [15:56] mscdex: jamey-uk: https://gist.github.com/1038164 [15:57] mscdex: jamey-uk: line 134 [15:57] tmpvar: JoseCabo, you will probably get more traction if you narrow the failing case [15:57] JoseCabo: tmpvar, I compiled a trunk version of node that it doesn't exists, I think. But i don't know what was... the newer version of node have a bug executing *.node files [15:57] jamey-uk: mscdex: thanks, I guess I assumed there'd be a utility function for this somewhere [15:57] JoseCabo: tmpvar, can u help me, please? [15:57] tmpvar: JoseCabo, a bit.. I'm at work atm (last week btw!) [15:57] mfields: tjholowaychuk - ohhhh ... I'm guessing maybe that not sending a Content-Length header might be the issue? [15:57] hebz0rl has joined the channel [15:58] JoseCabo: tmpvar, i was in exams this weeks too :P [15:58] dall: guys Is SIP supportend on node.js ? is there a module? [15:58] tmpvar: then its off to 100% node / oss for a few months [15:58] tjholowaychuk: mfields could be depending on what your logic expects [15:58] jerrysv: tmpvar: personal vacation? [15:58] tmpvar: funemployment [15:58] Vertice has joined the channel [15:58] socketio\test\20 has joined the channel [15:58] jerrysv: tmpvar: awesome. on purpose? [15:58] tmpvar: basically, i've moved on to focus on some personal projects :) [15:59] tjholowaychuk: haha funemployment [15:59] tjholowaychuk: is the best kind [15:59] mscdex: 404 funemployment not found [15:59] dylang has joined the channel [15:59] jerrysv: very nice. [15:59] rworth has joined the channel [15:59] tjholowaychuk: tmpvar cool man congrats! [15:59] tmpvar: danke! [15:59] JoseCabo: hehe [15:59] mscdex: bitte [15:59] tmpvar: im stoked [15:59] jerrysv: maybe at some point you'll be able to spend more mindshare on my pull request :) [15:59] ekryski has joined the channel [15:59] jerrysv: but seriously, congrats [16:00] tmpvar: jerrysv, i know, i know [16:00] pietern has joined the channel [16:00] jerrysv: i really do need to add a benchmark or two to the request [16:00] jerrysv: but my time has been spent employed [16:00] tmpvar: hehe [16:01] blueadept has joined the channel [16:01] tmpvar: im probably going to focus on perf for jsdom for a while.. which means I need a good profiling tool. was thinking v8-profiler -> cachegrind -> kcachegrind [16:01] ekryski has left the channel [16:01] tmpvar: (since I havent been able to get node-inspector + cpu profiling to function) [16:02] mandric has joined the channel [16:02] jerrysv: have you tried https://github.com/bnoordhuis/node-profiler ? [16:02] gbot2 has joined the channel [16:02] jerrysv: (caveat, i haven't, i set it aside for a mythical off day) [16:03] rabidewok has joined the channel [16:03] jerrysv: ACTION was at the coast, feet up overlooking the beach, still working on node [16:03] erictj has joined the channel [16:04] jscheel_ has joined the channel [16:04] elliottcable: How can I provide `require()`-equivalent in the browser? [16:04] jscheel_ has joined the channel [16:04] elliottcable: or, more specifically, collapse a library that has several files `require()`-ing eachother, into one file, and then share that with the browser /= [16:05] elliottcable: I’d think this would be a Solved Problem™ by this point, as afaict it’s the primary use case for Node.js, right? [16:05] tjholowaychuk: elliottcable https://github.com/visionmedia/jade/blob/master/jade.js#L3-48 [16:05] tjholowaychuk: is what i usually do [16:05] elliottcable: but googling is being difficult [16:05] tjholowaychuk: instead of attempting massive async hacks [16:05] tjholowaychuk: https://gist.github.com/1036929 [16:05] dylang has joined the channel [16:05] slickplaid: elliottcable: browserify/dnode [16:05] tjholowaychuk: ACTION will finish that some time, but that's the basic idea [16:05] elliottcable: yes, the goal is not to do requirements [16:05] elliottcable: er, not to do requests* [16:05] slickplaid: http://substack.net/posts/24ab8c [16:06] tjholowaychuk: yeah, a mandatory server for require() stuff seems a little odd [16:06] tjholowaychuk: personally [16:06] elliottcable: mandatory? [16:06] tjholowaychuk: the browserify thing [16:06] elliottcable: oh, you’re talking about browserify [16:06] tjholowaychuk: still a cool idea though [16:06] elliottcable: yeah, just looked at that, not a fan [16:06] elliottcable: seems way too heavy [16:06] elliottcable: and runtime? nah [16:07] elliottcable: this should totally be handle-able prior to runtime [16:07] tjholowaychuk: for sure [16:07] elliottcable: or at runtime, but cached into a static [16:07] hunterloftis: tjholowaychuk: using cluster, need to run a background process (something like cron in JS) to process stuff every couple of hours. Would like it to be tied into the cluster to start/stop with the server, not sure of the best way. Considering a plugin that launches a web worker...? [16:08] boaz has joined the channel [16:08] samsonjs has joined the channel [16:09] gaYak has joined the channel [16:09] CrypticSwarm has joined the channel [16:09] gaYak has joined the channel [16:10] willwhite has joined the channel [16:11] Bradleymeck_ has joined the channel [16:11] cerisier has joined the channel [16:12] squeese has joined the channel [16:12] temp01 has joined the channel [16:14] dgathright has joined the channel [16:14] DTrejo: hunterloftis: npm docs webworker [16:15] hunterloftis: DTrejo: thanks, but it's not the webworker that I'm questioning, more where I should create a new webworker in the 'cluster' flow [16:15] DTrejo: ah [16:15] adambeynon has joined the channel [16:15] hunterloftis: DTrejo: since I want that worker to only have one single instance, but be bound to a cluster, if that makes sense. [16:16] DTrejo: mm [16:16] tjholowaychuk: hunterloftis yeah that's a tough call you lose redundancy by doing that as well [16:16] tjholowaychuk: you could just check env.CLUSTER_ID or w/e I have for workers [16:16] tjholowaychuk: can't remember right now [16:17] hunterloftis: tjholowaychuk: Yeah I know what you mean. I guess I could just see if CLUSTER_ID === 0 and only launch the cron process in that case [16:17] tjholowaychuk: yup [16:18] hunterloftis: tjholowaychuk: I don't understand the "isMaster" and "isWorker" stuff in the cluster API docs. It looks like they're being called on the cluster object in the root server.js, in which case... wouldn't it always be master? A master that spawns workers? [16:18] sh1mmer: hooray [16:18] sh1mmer: I can make node segfault by writing bad c++ [16:18] patcito has joined the channel [16:19] jerrysv: sh1mmer: yes :) [16:19] sirdancealot has joined the channel [16:20] vpereira1: anybody here does C++ for node.js ? [16:21] sh1mmer: vpereira1: what's up? [16:21] jarek has joined the channel [16:21] jarek has joined the channel [16:21] tjholowaychuk has joined the channel [16:21] baoist has joined the channel [16:21] sh1mmer: It's normally easier if you just ask [16:21] w3rdness has joined the channel [16:21] vpereira1: ok [16:21] tbranyen: lol [16:21] vpereira1: so my module i have a #define FOO 'fufu' [16:22] vpereira1: there is any magic way to make it accessible in my module? [16:22] vpereira1: like to do myclass = MyClass.new [16:22] vpereira1: myclass.FOO ? [16:22] tjholowaychuk: it's not really magic, but yeah you can expose it with v8's property stuff [16:22] tbranyen: magically assign it [16:22] jerrysv: you guys got this? [16:22] sh1mmer: most of that's in the add-ons tutorial in the docs [16:22] mkrecny has joined the channel [16:22] sh1mmer: you do have to wire it up though [16:23] madsleejensen has joined the channel [16:23] micheil has joined the channel [16:23] joeshaw_ has joined the channel [16:23] patrickarlt has joined the channel [16:23] svenlito has joined the channel [16:23] vpereira1: sh1mmer: in which add-on tutorial? [16:23] vpereira1: the 3 lines tutorial, you mean? [16:23] sh1mmer: It's an appendix in the docs [16:24] sh1mmer: yeah [16:24] tbranyen: vpereira1: once you have a constructor function should be as easy as attaching to args.This() [16:24] sh1mmer: There are also a couple of others online [16:24] swajr has joined the channel [16:24] tbranyen: not entirely sure of the syntax off-hand, probably something like args.This()->Set("FOO", String::New(FOO)); [16:24] tbranyen: or something [16:24] vpereira1: tbranyen: thanks [16:24] tbranyen: assuming you don't want it on the prototype [16:25] vpereira1: i just don't want to have to define a const one more time :-) [16:25] Mrfloyd has joined the channel [16:25] tjholowaychuk: tbranyen yeah iirc that's what it is [16:25] tjholowaychuk: been a while [16:26] ph^ has joined the channel [16:26] vpereira1: just one more question.. i don't have to use class, at all, right? [16:26] vpereira1: i mean, i can define all my functions as C functions static Handle myfunction(const Arguments & args); [16:27] saurabhverma has joined the channel [16:27] vpereira1: and i don't have to pack it in Class, right? [16:27] tbranyen: writing classes that are 1:1 to constructors is very advantageous [16:27] vpereira1: tbranyen: true [16:27] vpereira1: tbranyen: but not mandatory, right? [16:27] tbranyen: vpereira1: i'm not entirely sure tbqh, i don't see why it would be tho [16:27] caolanm has joined the channel [16:27] amerine has joined the channel [16:27] vpereira1: tbranyen: great, thanks [16:28] tbranyen: vpereira1: pretty sure everything is just function references, so i bet you could get away without using a class [16:28] vpereira1: tbranyen: because i didn't use any class, and because of that, i cannot pack nothing in my Constructor :-) [16:28] vpereira1: so i will do a function that simple return my constant [16:29] jakeg has joined the channel [16:30] addisonj: hah, reading about MS strategy for win 8 is quite entertaining... http://arstechnica.com/microsoft/news/2011/06/html5-centric-windows-8-leaves-microsoft-developers-horrified.ars [16:30] rabidewok has joined the channel [16:30] unomi has joined the channel [16:30] addisonj: makes me glad I didn't spend tons of time learning .NET [16:30] perezd has joined the channel [16:30] patrickarlt has left the channel [16:30] EyePulp: addisonj: one of many reasons to be glad you didn't [16:31] patrickarlt has joined the channel [16:31] bogomips: telemachus, hi, i have trouble to send data a specific socket id usind socket io. i tryed this syntax but don't works client.clients[clientid].send(data); but the server crash and i get ypeError: Cannot read property '7449913842137903' of undefined [16:31] bogomips: thanks [16:31] addisonj: i did some .net work for family, it really blows [16:32] systemfault: Our friends at MS don't want to use webgl though.. [16:32] malkomalko has joined the channel [16:32] systemfault: That's where they want people to use their "silverlight" [16:32] baoist has left the channel [16:32] baoist has joined the channel [16:33] vpereira1: ach, horrible article [16:33] puffpio has joined the channel [16:33] vpereira1: Apple does the same but its cool [16:33] vpereira1: In the past with apple you had to learn Objective C to write native apps, now they are focusing in the macruby.. [16:33] addisonj: but yes, curious to see what MS will do with js... an MS style jquery? that hurts my head just thuinking about it [16:33] vpereira1: and it will kill applescript [16:34] unomi: addisonj: MS backs jquery [16:34] saikat has joined the channel [16:34] systemfault: Some google guy written a new blog article on the webgl "FUD" http://games.greggman.com/game/webgl-security-and-microsoft-bullshit/ [16:34] vpereira1: without MS wouldn't exist ajax :-) [16:34] m00p has joined the channel [16:34] liquidproof has joined the channel [16:35] unomi: vpereira1: without MS we probably wouldn't need it.. [16:35] asabil has joined the channel [16:35] vpereira1: unomi: sure we would use just lynx [16:35] systemfault: I prefer AJAJ than AJAX :/ [16:35] unomi: vpereira1: that said, you are right - activeX functionality did alot for browser vendor aspirations [16:35] m00p has joined the channel [16:36] unomi: does anyone actually use XML with AJA(x) anymore? [16:36] addisonj: what I mean by that, is in order to work with win 8, there is going be some crazy system API, and I can only imagine MS engineers trying to take their over engineering and applying to javascript [16:36] Prism has joined the channel [16:37] tjholowaychuk: unomi haha i wonder that all the time [16:37] Cleer has joined the channel [16:37] tjholowaychuk: I want my JSONHttpRequest [16:37] unomi: addisonj: every interface vendor in the world is trying to either a. create captive markets or b. outcompete within 'free' markets [16:37] tjholowaychuk: and PDFHttpRequest [16:37] tjholowaychuk: and ImageHttpRequest [16:37] mt3ck has joined the channel [16:37] tjholowaychuk: future proofing ftw [16:37] unomi: often when b. is moderately successful they will venture into a. [16:37] TooTallNate has joined the channel [16:38] sirdancealot has joined the channel [16:38] unomi: there is alot to be said for old fashioned competition when it comes to functionality.. at least in the face of a lack of standards for 'free markets' - but we are already like 15 years behind the standards specs [16:38] tbranyen: I'm still using XML with XHR in some cases :-/ [16:39] bogomips: npn can update automatically the new modules ? [16:39] bogomips: ah ok nom update works fine :D [16:39] unomi: dyslexia has to suck [16:40] unomi: or 'coffee fingers', ymmv [16:41] unomi: with canvas and especially webGL - the bag of tricks seems expended for the medium term [16:41] Bradleymeck has joined the channel [16:41] unomi: so no wonder that MS is going 'wtf' [16:41] systemfault: unomi: I wonder what will happen with webgl and MS. [16:41] unomi: systemfault: eventually they will come around [16:41] bene has joined the channel [16:41] systemfault: I hope... And not 10 years later [16:42] unomi: or they will be in the same boat as they were pre IE9 [16:42] jamey-uk has left the channel [16:42] unomi: and with a customer base that is growing more cognizant of the features of competitors [16:43] unomi: with webgl and games it is a somewhat different situation than with 'pure websites' [16:43] unomi: people who play games are used to installing programs to get their fix - here you are just exhanging a 20mb browser for a 1gb+ installer [16:43] taf2: ie's on it's way out... this would just be the nail in the coffin [16:44] w3rdness: You can't get around the fact that WebGL lets a website control the graphics driver in a way which is much too direct for comfort. The central problem is the poor quality of driver code compared to OS code. If these were of equal quality, then indeed this would be no more dangerous than a JVM. [EDIT: and for extra danger, the driver code generally runs at elevated privilege.] You can presumably exploit a hole in the OS by e [16:44] w3rdness: xecuting something in a JVM, but that's been an extremely rare exploit because of the high quality of the JVM and OS code in the relevant parts of their interface. This thing opens a huge attack surface against much more vulnerable code. Driver code is buggy, usually prematurely released in a rush to market, and deliberately closed and obscured. Maybe the answer is to make that code better across all the graphics companies, [16:44] w3rdness: but until this happens, I fear WebGL. [16:44] AntelopeSalad has joined the channel [16:44] unomi: w3rdness: sure, there are issues to be ironed out - but as people have noted, activeX and silverlight also allows 3d acceleration [16:44] taf2: flash 11 [16:45] pandeiro has joined the channel [16:45] taf2: ACTION thinks it's about the video game market... and keeping control with directx or rather losing control to opengl [16:45] addisonj: with the amount of inertia behind webgl, their will be solutions, thats what engineers do is fix problems [16:45] unomi: so its not a 'technical barrier', its more of a repeat of the 'concerns' with websockets - though with a bit more meat [16:45] vpereira1: uh [16:46] vpereira1: my first node.js module https://github.com/vpereira/svipc :-) [16:46] vpereira1: i'm little scared with node.js :-/ [16:46] bartt has joined the channel [16:46] micheil: actually, no-one has proved that using the browser and the WEbSocket object that you can do the cache poisoning attack [16:46] micheil: it's only been proved with flash and java clients. [16:46] pt_tr has joined the channel [16:46] aliem has joined the channel [16:46] vpereira1: my first week working with that and i wrote more C/C++ code than javascript [16:47] systemfault: vpereira1: Haha [16:47] philhawksworth has joined the channel [16:49] Kryt has joined the channel [16:49] mehlah has joined the channel [16:49] Lorentz has joined the channel [16:49] Vertice has joined the channel [16:51] anno^da has joined the channel [16:52] tiagoa has joined the channel [16:55] febits has joined the channel [16:56] dylang_ has joined the channel [16:59] qrux has joined the channel [17:00] jetienne: w3rdness: webgl "security issue" is trivially fixable [17:00] tchype has joined the channel [17:01] jetienne: w3rdness: and btw if you dislike webgl considere that flash and silverlight have the exact same issue :) [17:01] dmose has joined the channel [17:01] elliottcable: tmpvar: you around? [17:01] `3rdEden has joined the channel [17:01] jetienne: w3rdness: so if ms is doing this press for security reason, they will disable flash/silverlight anytime soon :) [17:03] jga023 has joined the channel [17:03] jetienne: the fix is the same as for javascript. "if a thread is running for too long, kill it" [17:03] vpereira1 has left the channel [17:03] erictj has left the channel [17:03] jetienne: it is implemented in js in ff, chrome and likely other [17:05] trotter_ has joined the channel [17:05] samsonjs has joined the channel [17:06] gleicon has joined the channel [17:07] esundahl has joined the channel [17:10] montylounge has joined the channel [17:11] jakeg has joined the channel [17:12] mraleph has joined the channel [17:12] hippich has joined the channel [17:13] hippich: hi guys! have a quick question re best practices. i do new project with node.js, as part of projects i develop modules which i do not plan distribute (they are very domain specific). Where I should place them in project flder? /node_modules or somewhere else? [17:15] ryah: hippich: yes [17:15] saikat has joined the channel [17:15] joeshaw_ has joined the channel [17:15] saikat has joined the channel [17:16] hippich: so this is best practice to put third party modules and project's modules in the same folder? (just want to confirm i am not missing anything). [17:16] catshirt has joined the channel [17:17] jakeg: i prefer require('./lib/my-module') and putting it in /lib/my-module.js [17:17] saikat_ has joined the channel [17:17] jakeg: so i can easily rm -rf node_modules; npm install . [17:18] hippich: yeah. i would like to keep node_modules with third party modules too. [17:18] simenbrekken has joined the channel [17:18] iFire` has joined the channel [17:19] niftylettuce has joined the channel [17:19] jakeg: i wouldn't trust this ryah guy's advice. i think he's a noob [17:19] mkrecny: lawlz [17:19] mkrecny: querystring module won't properly encode nested objects [17:20] mkrecny: anyone got a recursive work around for this? [17:20] addisonj: mkrecny, could use traverse [17:20] mandric has joined the channel [17:20] mkrecny: addisonj: ? [17:20] addisonj: https://github.com/substack/js-traverse [17:20] Murvin has joined the channel [17:21] reid has joined the channel [17:21] mikeal has joined the channel [17:21] seawise has joined the channel [17:21] addisonj: use a forEach or a map and gather the results [17:21] dmcquay has joined the channel [17:21] Poetro has joined the channel [17:22] mkrecny: addisonj: i'm not asking how to do it i'm asking if anyone has done it [17:23] dguttman has joined the channel [17:24] tmpvar: elliottcable, yo [17:25] boaz has joined the channel [17:25] pandeiro has joined the channel [17:26] patrickarlt has joined the channel [17:29] hwinkel has joined the channel [17:29] jscheel_ has joined the channel [17:29] jscheel_ has joined the channel [17:30] dipser has joined the channel [17:30] joeshaw_ has left the channel [17:30] bradley has joined the channel [17:31] __tosh has joined the channel [17:31] simenbrekken has joined the channel [17:31] Country has joined the channel [17:32] markwubben has joined the channel [17:32] sh1mmer has joined the channel [17:32] temp01 has joined the channel [17:32] focusaurus has joined the channel [17:33] slaskis: mkrecny: tried this one? https://github.com/visionmedia/node-querystring [17:34] harth has joined the channel [17:34] topaxi has joined the channel [17:35] LowValueTarget has joined the channel [17:36] jarek has joined the channel [17:36] jarek has joined the channel [17:37] hojberg has joined the channel [17:37] mkrecny: slaskis: it's a parser - not an encoder [17:38] hippich: jakeg: but with /lib/ solution i need to do "require("../lib/something"). I would rather do simple requrie("something") instead. is it possible to make node.js look in /lib/ folder for modules as well? [17:38] malkomalko: tjholowaychuk: you around? [17:38] slaskis: mkrecny: ooh, sorry :P [17:38] hippich: i.e. so node will look in to /lib first and then to /node_modules [17:38] tjholowaychuk: malkomalko yup [17:39] dve has joined the channel [17:39] mkrecny: slaskis: np [17:39] focusaurus: NPM 1.0 fun.... [17:39] malkomalko: really quickly, we found when using tobi, click/submit, was trying to call 'POST' on the browser object, looks as though only lowercased versions of the http verb properties existed... did Express update to the uppercase version of those verbs at some point? [17:40] malkomalko: we can branch and fix it, but we were just wondering if that was the root cause [17:40] ctide: hippich: http://nodejs.org/docs/v0.4.1/api/modules.html#loading_from_the_require.paths_Folders [17:41] hippich: ctide, thanx. NODE_PATH env variable is what I needed! [17:41] tjholowaychuk: malkomalko not sure what you mean [17:42] tjholowaychuk: app.POST? [17:42] tjholowaychuk: haha [17:42] malkomalko: one sec.. let me try again :) [17:42] tjholowaychuk: there were some changes in the router.methods [17:42] tjholowaychuk: but they should be lowercase [17:43] malkomalko: just saying it appears as though when using tobi, when trying to click a link or submit a form [17:43] malkomalko: it was trying to call: browser.POST [17:43] malkomalko: where only browser.post is there [17:43] malkomalko: so I was wondering if that was an express uppercase/lowercase thing that got changed at some point [17:43] tjholowaychuk: ohh gotcha [17:43] tjholowaychuk: hmm [17:43] BillyBreen has joined the channel [17:44] tjholowaychuk: sounds more like a bug in tobi [17:44] tjholowaychuk: or do you have method="POST" [17:44] tjholowaychuk: because it's supposed to be lowercased [17:44] malkomalko: yah, that's probably it [17:44] malkomalko: in fact [17:44] malkomalko: I bet that's the problem right there [17:45] tjholowaychuk: i think the spec states that it should be lower-cased [17:45] malkomalko: I think maybe tobi should underscore coming accross [17:45] tjholowaychuk: not sure why, kinda lame [17:45] malkomalko: for people that uppercase [17:45] malkomalko: awesome spelling on across [17:45] malkomalko: lol [17:46] dylang has joined the channel [17:47] jakeg has joined the channel [17:47] malkomalko: said my peace! [17:48] ryan0x2 has joined the channel [17:49] dominictarr has joined the channel [17:49] pandeiro has joined the channel [17:50] jhurliman has joined the channel [17:50] mhausenblas has joined the channel [17:50] mikeal1 has joined the channel [17:52] swilson06 has joined the channel [17:52] mjr_ has joined the channel [17:52] Yoric has joined the channel [17:53] yozgrahame has joined the channel [17:53] TooTallNate has joined the channel [17:53] fairwinds has joined the channel [17:54] mc_greeny has joined the channel [17:55] dgathright has joined the channel [17:58] catshirt has joined the channel [17:59] sirdancealot has joined the channel [17:59] clifton has joined the channel [17:59] MattJ has joined the channel [18:00] Kryt has joined the channel [18:00] tauren has joined the channel [18:01] Poetro has joined the channel [18:01] bartt has joined the channel [18:02] jslatts has joined the channel [18:02] ExsysTech has joined the channel [18:03] rabidewok has joined the channel [18:03] hojberg has joined the channel [18:04] mkrecny_ has joined the channel [18:05] idefine has joined the channel [18:05] stagas has joined the channel [18:07] romanb has joined the channel [18:07] thalll has joined the channel [18:08] themiddleman_itv has joined the channel [18:08] flou has joined the channel [18:08] joshthecoder has joined the channel [18:09] Bwen has joined the channel [18:09] adambeynon has joined the channel [18:09] etaty has joined the channel [18:11] svenlito has joined the channel [18:11] Kryt has joined the channel [18:12] tiglionabbit_ has joined the channel [18:13] path[l] has joined the channel [18:15] gustavowt has joined the channel [18:15] themiddleman_i-1 has joined the channel [18:15] socketio\test\05 has joined the channel [18:16] PeterPeterPeter has joined the channel [18:16] sshaginyan has joined the channel [18:16] dylang_ has joined the channel [18:17] eyesUnclouded has joined the channel [18:17] AvianFlu has joined the channel [18:21] rpj8-else: I'm attempting to do this: http://stackoverflow.com/questions/4299991/how-to-sort-in-mongoose [18:21] rpj8-else: however, this method is not working for me [18:25] yozgrahame1 has joined the channel [18:25] nibblebot_: you can't chain methods like that in mongoose [18:26] pjacobs: rpj8-else, do Post.find().sort({'field', -1}).execFind(function(err, obj){}); [18:28] nibblebot_: you mean sort({'field': -1}) ? [18:28] blueadept has joined the channel [18:29] rpj8-else: execFind? [18:29] pjacobs: nibblebot, right [18:30] pjacobs: here's an example: Posts.find({}).sort('createdDate', 1).limit(20).execFind(function(err, obj) { [18:30] pjacobs: this works right now [18:30] tilgovi has joined the channel [18:30] tilgovi has joined the channel [18:30] maushu has joined the channel [18:30] nibblebot_: i'd never seen that syntax [18:31] socketio\test\80 has joined the channel [18:31] socketio\test\78 has joined the channel [18:31] topaxi has joined the channel [18:32] hwinkel1 has joined the channel [18:33] willwhite has joined the channel [18:33] zmbmartin: is there a way to sort docs in a mongoose query while also sorting embedded docs? something like Listing.find({}, sort: [['price','desc'], ['photos.position', 'asc']]}, function... [18:34] madsleejensen has joined the channel [18:34] mehlah has joined the channel [18:34] jakehow has joined the channel [18:34] defeated has joined the channel [18:34] joshthecoder has joined the channel [18:35] jga023 has joined the channel [18:35] defeated: Anyone about who can help me understand how node handles DNS lookups (w/ regards to resolv.conf, nsswitch.conf, etc) [18:35] nibblebot_: sounds like something you'll have to do with the records after you fetch them [18:36] tiagoa_ has joined the channel [18:36] hackband has joined the channel [18:38] catshirt has joined the channel [18:38] kylefox has joined the channel [18:38] kylefox has left the channel [18:39] seawise has joined the channel [18:39] supster has joined the channel [18:39] wbw72 has joined the channel [18:40] wbw72: any1 with 'jade' knowledge? [18:40] hellp has joined the channel [18:40] adambeynon has joined the channel [18:40] bentruyman has joined the channel [18:40] slaskis: wbw72: ask away and see if anyone feels hit (i've never used it myself) [18:41] anniex has joined the channel [18:41] tjholowaychuk: wbw72 i know a little [18:41] wbw72: i am trying to output a by when i put "option(value='') select something" in my jade script it's optimized away... anyway around that? [18:41] esundahl has left the channel [18:41] wbw72: by = but :) [18:41] tjholowaychuk: ah, yeah that's a known issue [18:42] tjholowaychuk: though you dont have to use value='' for a select [18:42] slaskis: tjholowaychuk: otherwise it uses the text though? [18:42] tjholowaychuk: yeah [18:42] tjholowaychuk: just give it a value [18:42] tjholowaychuk: and check for that value [18:42] tjholowaychuk: until the bug is fixed at least [18:42] slaskis: ah right [18:43] tjholowaychuk: value='oh noes didnt select anything' [18:43] wbw72: hehe i would but i was using jquery-validate plugin which requires the empty value [18:43] tjholowaychuk: ah [18:43] tjholowaychuk: lame [18:43] slaskis: is it the same with value=0 ? [18:43] sshaginyan has joined the channel [18:43] eddanger has joined the channel [18:43] tjholowaychuk: i'll see if i can patch it quickly [18:43] tjholowaychuk: and not break other shit [18:44] wbw72: ;) thanx [18:45] anniex has left the channel [18:45] tjholowaychuk: weird i have val === '' [18:45] tjholowaychuk: can't recall why [18:45] tjholowaychuk: i guess so if people do id=something it wont just be blank [18:46] tjholowaychuk: hmm tests all pass [18:46] tjholowaychuk: so i'll release in a min [18:46] dylang has joined the channel [18:47] jhurliman: is knox (https://github.com/LearnBoost/knox) a dead library? there are 16 open issues, two of them claiming the library has been broken since node 0.4.1 [18:48] _fat has joined the channel [18:48] slaskis: jhurliman: works fine for me, and wasn't it updated like yesterday? [18:48] tjholowaychuk: jhurliman i just dont have time to patch it much [18:48] tjholowaychuk: the community seems to be [18:48] tjholowaychuk: breaking it [18:48] tjholowaychuk: more and more [18:48] tjholowaychuk: haha [18:48] slaskis: haha [18:48] tjholowaychuk: but I dont have time to check everything [18:48] jhurliman: lol [18:48] slaskis: oh right, i too get that 403 error peoples talking about actually when i try to add some x-amz headers... [18:49] jhurliman: sounds like node-crawler, which worked fine until third party contributors tried to "fix" it [18:49] tjholowaychuk: maybe i should just revert to before all the stuff they added [18:49] tjholowaychuk: it was fine for our needs [18:49] copongcopong has joined the channel [18:49] jhurliman: i'll give it a try. all i need to do is push image uploads into an s3 bucket [18:50] tjholowaychuk: yeah same pretty much [18:50] tjholowaychuk: but if it's still busted by the time i need it again, im reverting [18:51] jscheel_ has joined the channel [18:51] jscheel_ has joined the channel [18:51] sshaginyan has joined the channel [18:52] tchype has joined the channel [18:52] CrypticSwarm has joined the channel [18:52] S2kx has joined the channel [18:54] wadey has joined the channel [18:58] sshaginyan has joined the channel [18:58] sveimac has joined the channel [18:58] sveimac has left the channel [18:59] jameson has joined the channel [19:00] defeated: On a scale of... I dunno, "that's cool as long as you understand the risks" to "what are you thinking, you idiot?!", how bad would it be to use process.binding("net") to get direct access to getaddrinfo? [19:00] baudehlo: is it exposed in there? [19:01] eyesUnclouded has joined the channel [19:01] defeated: yeah, it's exposed [19:01] defeated: but process.binding itself is allegedly private, right? [19:01] baudehlo: *shrug* I've used it before. [19:01] jbpros has joined the channel [19:01] mkrecny has joined the channel [19:02] baudehlo: to access pipe() [19:02] context: aren't you suppose to use require() instead of process.binding now [19:02] junkee[] has joined the channel [19:02] context: oh nm [19:02] baudehlo: context: process.binding just gives you access to the C++ layer. [19:03] baudehlo: you still have to require('net') for it to work. [19:03] defeated: Ok, thanks, at least it gives me a potential workaround to my issue [19:04] context: what does getaddrinfo have that you need [19:04] euforic has joined the channel [19:05] defeated: it properly resolves srv records respecting search domains [19:05] defeated: whereas dns.resolveSrv does not [19:05] context: what about resolve() same ? [19:05] defeated: yep [19:06] defeated: resolveSrv/resolve go through ares [19:06] context: search domain? [19:06] baudehlo: resolve.conf config. [19:06] yogu has joined the channel [19:06] defeated: nod [19:06] context: kk. thought so [19:07] defeated: or nsswitch.conf, etc [19:07] blueadept has joined the channel [19:07] baudehlo: though I'm pretty sure ares can read that too. [19:07] pifantastic_ has joined the channel [19:07] yogu: sgasdg [19:07] baudehlo: I'm fairly sure I made it work in ParaDNS [19:07] defeated: it doesn't seem to in my testing so far [19:07] ryah: 713 people? [19:07] ryah: wtf [19:07] ryah: question - how many of you are bots? [19:07] defeated: @ryah: what have you wrought?? [19:08] piscisaureus: bleep [19:08] context: ouch. [19:08] context: defeated: simplist work around would be to manually read resolv.conf ? [19:08] tomb has joined the channel [19:08] baudehlo: defeated: well what I mean is that may be in how node is using ares... not a weakness of ares [19:09] defeated: baudehlo: possibly, yes [19:09] wbw72: tjholowaychuk: Thanx for the very fast fix! [19:09] Bonuspunkt: im no bot :D [19:09] sshaginyan has joined the channel [19:09] eldar_ has joined the channel [19:09] tjholowaychuk: wbw72 np [19:10] ryah: context: whats your problem? [19:10] defeated: ryah: it's my problem actually [19:10] ryah: context: dns not working? [19:10] ryah: oh [19:10] defeated: i'm trying to resolve srv w/out a search domain [19:10] context: ;) [19:10] defeated: and it fails [19:10] rpj8-else: ryah: [19:10] rpj8-else: Thank you for existing. [19:10] rpj8-else: that is all. [19:10] context: haha [19:10] defeated: considering using process.binding("net") to get access to getaddrinfo which seems to work (for mac/linux anyway) [19:11] context: ryah: thank you for not falling down the stairs 1 more time than you did as a child [19:11] _fat has joined the channel [19:11] ryah: process.binding('net').getaddrinfo('localhost', 4, function() { console.log(arguments) }) [19:11] ryah: defeated ---^ [19:11] defeated: yep, that works for me [19:11] ryah: yeah we're using that in the future [19:11] defeated: I just wasn't sure if that was bad form [19:11] ryah: sometimes c-ares messes up [19:12] defeated: since process.binding is technically private [19:12] swajr has joined the channel [19:12] ryah: actually landing that this week in master [19:12] ryah: rpj8-else: :) [19:12] defeated: awesome [19:12] defeated: thanks for the confirmation, you've just saved me a ton of work ;) [19:12] socketio\test\95 has joined the channel [19:12] defeated: and thanks for node, I love it :) [19:12] insin has joined the channel [19:13] baudehlo: fwiw reading the code in ares it does read the search list. [19:14] baudehlo: just not sure if you have to do something explicit to make use of it. [19:14] yozgrahame has joined the channel [19:15] SocketTester has joined the channel [19:16] tsenga has joined the channel [19:16] eddanger has joined the channel [19:17] Skola: when inexperienced with unit testing, how many tests are too much? [19:17] tjholowaychuk: 1 [19:17] jslatts has joined the channel [19:18] jmoyers has joined the channel [19:18] kmiyashiro: is express unit testeded? [19:18] baudehlo: defeated: ah yeah - so to get it to use the search domains you have to use the ares_search() API. Node uses the ares_query() API. [19:18] tjholowaychuk: IMO you can't really have too many, HOWEVER you need to be careful of volatile apis, dont go testing shit that wont remain similar otherwise it can be verrrry annoying [19:18] tjholowaychuk: kmiyashiro yeah [19:18] tjholowaychuk: and tests are no excuse to ignore more robust manual testing etc [19:18] Skola: alright, thanks for the suggestion [19:19] Skola: How do I establish what to test for? [19:19] Skola: dw, I'm gonna read about it, but is there a methodology? [19:19] Skola: spec writing? [19:19] Skola: common sense? [19:20] Skola: is there consensus on this? [19:20] tjholowaychuk: write some public api code in the test [19:20] tjholowaychuk: it will fail [19:20] tjholowaychuk: implement it [19:20] tjholowaychuk: and have it pass [19:20] tjholowaychuk: though typically I code the first 1/3 of a project with no tests to establish an api [19:21] chrisdickinson: Skola: I like to do as tjholowaychuk said; with the addition that you should be testing what happens when the api is used correctly, as well as what happens when the api is used improperly (verifiable error cases) [19:21] tjholowaychuk: yeah totally [19:21] Skola: alright, are there certain things I should always be aware of for simple functions? [19:22] zmbmartin: tjholowaychuk: what do you use to test web apps in express (expresso, tobi) anything else? [19:22] tjholowaychuk: it is difficult to maintain 100% coverage, soooooo many possibilities but I find personally at least unit tests and acceptance tests are usually the most important [19:22] tjholowaychuk: but it really depends on the project [19:22] chrisdickinson: yeah [19:22] jmoyers: ACTION wishes es-discuss digest mode wasn't such a piece of shit. [19:22] baudehlo: TEST ALL THE THINGS! [19:22] andrenkov has joined the channel [19:22] chrisdickinson: i like high level tests with a few mid-level private api tests. [19:22] Skola: alright tj [19:22] tjholowaychuk: stylus has only acceptance tests for example [19:22] tjholowaychuk: 9k lines of them, but no unit tests [19:22] chrisdickinson: nothing that relies on internal structures, really. [19:23] chrisdickinson: oh! importantly: if you have a bug in your code that gets reported to you (via gh issues, etc): make a test case for it! [19:23] tjholowaychuk: and our app mainly has acceptance tests, because our components all have their own tests [19:23] Skola: is there something you could recommend for me to read? [19:23] Skola: either code or prose [19:24] defeated: Just want to throw this out there, which doesn't really cover how to test, but more how to write testable code: http://misko.hevery.com/code-reviewers-guide/, it's written with java in mind, but the concepts apply anywhere. Reading and understanding this really made a huge impact on how I design my code to make sure it's as easy to test as possible [19:24] zmbmartin: what are the best unit and acceptance test libraries [19:24] Skola: thanks for the link defeated [19:24] zmbmartin: I really need to do more testing [19:25] defeated: unit test libraries there are lots, expresso, vows, jasmine [19:25] defeated: it depends on your preferences [19:25] zmbmartin: what for acceptance? [19:26] defeated: acceptance tests, zombie is the best I've found, but it's somewhat hampered by its dependence on jsdom [19:26] Skola: tjholowaychuk: what do you use for testing? I could just check on github, but I'd like to hear some context [19:26] dmose has joined the channel [19:27] chrisdickinson: if you like BDD, vows or jasmine is probably the best -- if you like writing tests like "When I do X, Y should do Z" [19:27] newy_ has joined the channel [19:27] catshirt has joined the channel [19:27] baudehlo: eww [19:27] chrisdickinson: there's also should.js [19:27] tjholowaychuk: Skola depends on the case [19:27] tjholowaychuk: cluster, stylus, nib, node-canvas, and others all have their own little test frameworks [19:27] chrisdickinson: (for that case) [19:27] tjholowaychuk: for specific needs [19:27] tbranyen: tjholowaychuk: does cluster do any kind of file locking? [19:27] chrisdickinson: (disclaimer: i like straight-up unit tests better than BDD-style frameworks) [19:27] baudehlo: what test library has nice output (like perl's Test::More stuff)? [19:27] tbranyen: in case two processes are hitting the same file [19:27] tjholowaychuk: tbranyen what file [19:27] baudehlo: I tried node-tap, but it expects you to use prove (from perl) to run the tests... [19:27] Skola: ok but for small libs would you recommend a custom framework? [19:27] baudehlo: which just seemed wrong. [19:27] tbranyen: tjholowaychuk: any file [19:27] wadey: i like the output and style of whisky, but it is still a little new [19:27] tjholowaychuk: tbranyen nope, cluster has nothing to do with that [19:27] tbranyen: tjholowaychuk: if you use readFile/writeFile for instance [19:28] wadey: and some things don't work right [19:28] chrisdickinson: Skola: it'd probably be best to go with an existing framework. [19:28] baudehlo: hah. [19:28] chrisdickinson: Skola: I like expresso a lot in that case. [19:28] baudehlo: a test library that isn't well tested? [19:28] Skola: ok chrisdickinson :) [19:28] adambeynon has joined the channel [19:28] Skola: I use jasmine, expresso and should.js right now [19:28] rpj8-else: pjacobs: Hey, where did you find that command, by the way? The execFind bit of `Posts.find({}).sort('createdDate', 1).limit(20).execFind(function(err, obj) {` [19:28] Skola: it's good, but I don't know enough about testing to settle on anything yet [19:28] tjholowaychuk: who cares [19:28] tjholowaychuk: as long as you have tests [19:29] tjholowaychuk: and they tell you if shit's broken [19:29] SocketTester has left the channel [19:29] tjholowaychuk: that's all you need [19:29] chrisdickinson: whatever feels most natural to you to write [19:29] tjholowaychuk: I used to like all the fancy crap but I've grown out of that [19:29] defeated: yep, definitely having tests is the big win [19:29] tbranyen: ryah: does node do anything with file locking, couldn't see in the source [19:29] chrisdickinson: and helps you debug the most when it breaks (which it will break.) [19:29] defeated: other than that use whatever makes you the most productive [19:29] baudehlo: ah expresso looks pretty decent [19:29] tjholowaychuk: baudehlo it almost does nothing [19:29] tjholowaychuk: haha [19:29] tjholowaychuk: which works great [19:29] sbisbee has joined the channel [19:29] tjholowaychuk: for most my cases [19:29] baudehlo: though the name makes me twitch :) [19:30] chrisdickinson: tjholowaychuk: the hard part about testing frameworks that i've seen is the test runner and output, and expresso seems to work pretty well there [19:30] swaj has joined the channel [19:30] ezl_ has joined the channel [19:30] tjholowaychuk: chrisdickinson output is easy [19:30] tjholowaychuk: nothing hard about test frameworks [19:30] chrisdickinson: *s/i've seen/i've been writing/g (erk) [19:30] tjholowaychuk: parallelized output [19:30] tjholowaychuk: not so easy [19:30] tjholowaychuk: but like i said, i couldnt care less about the output as long as itshows me what breaks [19:32] swaj- has joined the channel [19:32] Skola: are there specific things in js to be extra attentive about? [19:32] kmiyashiro: are there things that will automatically poll for changes and automatically run tests? [19:32] rauchg has joined the channel [19:33] tjholowaychuk: kmiyashiro expresso had that [19:33] tjholowaychuk: but it's annoying more than anything else [19:33] swaj has joined the channel [19:33] kmiyashiro: oh [19:33] tjholowaychuk: for people in the term all day i dont really see a benefit [19:33] tjholowaychuk: and having massive error output in a growl notification etc doesn't help [19:33] kmiyashiro: I wonder if it's silly to write tests for a small project with no API [19:34] _fat has joined the channel [19:34] caolanm has joined the channel [19:34] defeated: the benefit of tests is if someone else will maintain it after you, or even if you might put it aside and come back to it 6 months, a year later [19:35] steffkes has joined the channel [19:35] defeated: when your actively working in a code base, tests are more of a fail safe, but when you're new to it, or coming back it without the whole thing mapped in your head, they can be a life saver [19:35] chrisdickinson: my mindset when i'm working on libraries is that it's not really a public project until there are tests and docs for the entire thing. until that point, my library is just a sketch of what could be useful. [19:35] tjholowaychuk: refactoring [19:35] defeated: *you're [19:35] tjholowaychuk: is the main reason [19:35] tjholowaychuk: for me at least [19:35] tjholowaychuk: or edge cases that i forget to manually look at [19:36] defeated: yeah, refactoring without tests is terrifying ;) [19:36] tjholowaychuk: oh god yeah [19:36] chrisdickinson: for me, it's the automated proof that my code isn't lying through its teeth :) [19:36] ctide: refactoring+++ [19:36] defeated: chrisdickin: then it's just a question of whether your tests are lying ;) [19:36] jerrysv: v8bot++ [19:36] v8bot: jerrysv has given a beer to v8bot. v8bot now has 29 beers. [19:36] jerrysv: refactoring++ [19:36] v8bot: jerrysv has given a beer to refactoring. refactoring now has 1 beers. [19:37] jerrysv: odd [19:37] ctide: the true value of testing didn't sink in until i had to completely refactor flow of data through an existing system [19:37] chrisdickinson: defeated: true :) but until i've got tests, i feel like i'm just building castles in the sky, yanno? [19:37] ctide: and could do it and just deploy it w/ no fear because it had a solid test suite [19:37] defeated: chrisdickin: yep :) [19:39] jakeg: love this discussion. have saved it for future reference :) [19:39] mAritz has joined the channel [19:42] pjacobs: rpj8-else, somewhere on the net. The mongoose docs are weak. Many people know that. However the library is pretty nice [19:42] Skola: you're welcome! [19:42] Skola: :[] [19:42] Skola: it's a good sign if noob questions lead to fruitful discussion [19:42] rpj8-else: pjacobs: Ah I see. Yeah I've been reading that. I mean it's udnerstandable because it's in rapid development [19:43] rpj8-else: I just wanted to find the most up-to-date place in hopes of keeping up with the changes :p [19:44] Bonuspunkt: :/ [19:45] Utkarsh_ has joined the channel [19:45] coreb has joined the channel [19:46] Fodi69 has joined the channel [19:46] Bonuspunkt: why are there still 0.2 apis in 0.4? [19:46] perezd_ has joined the channel [19:47] Shinuza has joined the channel [19:47] rphillips has joined the channel [19:47] Shinuza: I like the topic [19:48] btipling_ has joined the channel [19:48] Gregor has joined the channel [19:48] pquerna has joined the channel [19:49] Utkarsh has joined the channel [19:49] seawise has joined the channel [19:49] H2S04 has joined the channel [19:50] MarkMenard_ has joined the channel [19:51] ctide: using mikeal's request module, if it's followed a redirect is there a way to find out what URL it ultimately ended up returning? [19:51] bentruyman has joined the channel [19:52] ezmobius has joined the channel [19:53] dall has joined the channel [19:53] dall: hello [19:53] Shinuza: Yop [19:54] aron_ has joined the channel [19:54] dall: hi Shinuza [19:54] dall: Shinuza, do you know if there is any module to use SIP protocol with node? [19:55] Shinuza: I think I saw something like this but I chatting from my phone [19:56] Shinuza: So it's hard to look around [19:57] dall: k [19:57] dall: thanks [19:57] hassox has joined the channel [19:57] Nuck has joined the channel [19:58] blueadept: i've written so much node code i dont think i can go back to anything else [19:59] blueadept: i just got offered equity in a company, but their a php stack [19:59] blueadept: meh [19:59] blueadept: they're* [20:00] Shinuza: Going from node to php hmmm [20:00] LiamMagee has joined the channel [20:00] tjholowaychuk: istill think coffeescript should be for php [20:00] seawise: blueadept - what have your written on Node? [20:00] tjholowaychuk: php is way worse than js [20:00] bazookatooth: i dont see why it should exist for anything, really. [20:00] jslatts has joined the channel [20:00] chrisdickinson: ACTION likes coffeescript [20:00] tjholowaychuk: that's the one language I would take the compile hit for [20:01] seawise: blueadept - can you give examples? [20:01] tjholowaychuk: if i ever had to look at it again that is [20:01] chrisdickinson: admittedly, it took me a while to warm up to it [20:01] blueadept: seawise: just stuff for myself, side projects, weekend hacks [20:01] blueadept: nothing big [20:01] blueadept: not like tj over here [20:01] coreb: php's pretty popular though, even if it's so "bad" [20:01] chrisdickinson: is there a big taboo against releasing a node library that's written in coffeescript but compiled down? [20:01] tjholowaychuk: chrisdickinson it's fine i guess as long as you accept regular js patches [20:01] tjholowaychuk: which i imagine would be very annoying [20:02] martyziff has joined the channel [20:02] tjholowaychuk: i think it hurts the community in general [20:02] chrisdickinson: tjholowaychuk: how so? [20:02] tjholowaychuk: but as long as you dont make ppl compile it should be ok [20:02] ceej has joined the channel [20:02] tjholowaychuk: i've seen interesting projects and ignored them since i would be dealing with non-js [20:02] chrisdickinson: hrm [20:03] blueadept: word [20:03] blueadept: just started using nowjs today [20:03] Shinuza: Coffee script is cool [20:03] blueadept: one word: awesome [20:03] chrisdickinson: this library will probably be doubly contentious since it's written in coffeescript and it's an ORM :\ [20:03] Shinuza: But careful making a standard by usage [20:03] Shinuza: Making it [20:03] Shinuza: Same thing for js extensions [20:04] rio{ has joined the channel [20:05] Shinuza: Have you guys seen Jeremy's talk at jsconf? [20:06] chrisdickinson: yep [20:06] Shinuza: Brendan is talking too [20:06] christkv has joined the channel [20:06] cjm has joined the channel [20:07] blueadept: i saw a vid of jsconf and they were talking a lot about coffeescript [20:07] blueadept: should i start using it now? [20:07] tjholowaychuk: brendan is supes lame [20:07] bogomips2_ has joined the channel [20:07] tahu has joined the channel [20:07] tjholowaychuk: and by lame [20:07] tjholowaychuk: i mean, scatter brained [20:07] blueadept: ha [20:07] mikey_p|afk: there is simply no way that coffee script can exist without splitting the community and development [20:08] chrisdickinson: i don't see that happening [20:08] tjholowaychuk: -> reminds me of php [20:08] ryan0x2_ has joined the channel [20:08] tjholowaychuk: i->never->want->to->type->this->again [20:08] chrisdickinson: tjholowaychuk: reminds me of C++, and i'm not sure which one's less appealing :\ [20:08] Shinuza: There is an effort to propose part of coffee script syntax as js next [20:08] tjholowaychuk: unfortunately yes [20:08] blueadept: really [20:08] blueadept: so all my code is going to break? [20:08] tjholowaychuk: all i want is regexp.exec(str, offset) [20:09] tjholowaychuk: but people are too busy with stupid syntax crap [20:09] chrisdickinson: blueadept: no, it would sit nicely on top of existing js syntax. [20:09] blueadept: well that's not totally bad i guess [20:09] simenbrekken has joined the channel [20:09] chrisdickinson: tjholowaychuk: have you used coffeescript much yet? [20:09] tjholowaychuk: wouldn't say much but yeah [20:09] chrisdickinson: i ask, because i was basically of the same opinion until i broke down and tried it [20:09] tjholowaychuk: not sure how you classify much [20:10] tjholowaychuk: it has some good parts [20:10] tjholowaychuk: but those parts are far less than unique [20:10] chrisdickinson: writing a medium-sized project, i guess, would be how i'd qualify it [20:10] gf3: tjholowaychuk: what about → [20:10] gf3: :D [20:10] konobi: if i wanted to screw up my ability to debug easily, i'd just pipe my JS code through google closure [20:10] tjholowaychuk: gf3 haha yeah there you go unicode madness [20:10] dall: guys what web framework are you using with node? is there only express ? [20:10] tjholowaychuk: dall lots of options, check the wiki [20:10] martyzif` has joined the channel [20:10] tjholowaychuk: node's wiki [20:10] chrisdickinson: konobi: i thought that'd be problematic, but really i didn't run into that sort of problem much at all [20:11] chrisdickinson: (either in-browser or in-node) [20:11] chrisdickinson: the only problem i have with coffeescript is the kitchen-sink approach to syntactic sugar [20:11] konobi: yeah, i'll avoid biting myself in the ass later byt avoiding the issue now =0) [20:11] martyzif` has left the channel [20:11] brettgoulder has joined the channel [20:12] chrisdickinson: otherwise i've found it pretty much a joy to write. [20:12] Hexmare has joined the channel [20:12] Hexmare: anyone have a ctags file for node.js? [20:12] Hexmare: have not been able to come across one [20:13] footyfish has joined the channel [20:14] shinuza has joined the channel [20:14] shinuza: That was the elevator [20:14] shinuza: tjholowaychuk: I removed php from my resume altogether [20:14] tjholowaychuk: hahha [20:14] shinuza: I left Python, Ruby and Haskell for laughter [20:14] tjholowaychuk: ACTION does not have a resume [20:15] blueadept: your github is your resume [20:15] shinuza: hehe [20:15] tjholowaychuk: if i were hiring i wouldnt even look at a resume [20:16] shinuza: If you have strong code expectation [20:16] shinuza: and the applicant provides code that suits you [20:16] SubStack: I only look at npmtop [20:16] shinuza: it's better than a resume [20:16] adambeynon_ has joined the channel [20:16] shinuza: and by code I mean, code + documentation + proper interaction with the community around the projects [20:17] johnnywengluu: is there a way to require() two different instances? [20:17] shinuza: depend what you call instances [20:17] johnnywengluu: eg. have two require('yuitest') but they both require() different instances [20:18] johnnywengluu: or is it returning the same instance? [20:18] shinuza: the same [20:18] roblarter has joined the channel [20:18] shinuza: unless you flush the cache [20:18] Yoric has joined the channel [20:18] johnnywengluu: how do i do that? [20:19] shapeshe1 has joined the channel [20:19] shinuza: excellent question, I've no idea [20:19] vikstrous1 has joined the channel [20:19] johnnywengluu: any node expert here? [20:19] shinuza: johnnywengluu: http://blog.romeda.org/2010/01/hot-code-loading-in-nodejs.html [20:19] shinuza: unless the API changed, which I doubt a lot [20:19] roblarter: time to learn some node.js fun :) [20:21] chrisdickinson: SubStack: just saw npmtop; super cool [20:21] SubStack: shinuza: why implement that in core? [20:21] chrisdickinson: SubStack++ [20:21] v8bot: chrisdickinson has given a beer to SubStack. SubStack now has 38 beers. [20:21] SubStack: seems like something that's easy to do in userspace [20:22] SubStack: chrisdickinson: yep, I need to get back over 2% of node again [20:22] SubStack: only 1.78% [20:22] shinuza: SubStack: haven't seen it was a fork :) [20:22] chrisdickinson: SubStack: i'm only at #31, with 0.4% ): [20:22] chrisdickinson: someday! i can dream! [20:24] Guest53328: SubStack: What's your rank right now? :P [20:25] Guest53328: ACTION shitfucks over /ns [20:25] Guest53328: goddamnit [20:25] bazookatooth has joined the channel [20:25] eyesUnclouded has joined the channel [20:26] shinuza: johnnywengluu: meh, it's not part of the std :) [20:26] Guest53328: I'm Nuck, jsut FYI ;) [20:26] Guest53328: ACTION shoots Nickserv [20:26] creationix has joined the channel [20:27] Hexmare: :q [20:27] shinuza: yop creationix [20:27] cjm has left the channel [20:28] blueadept has joined the channel [20:28] puffpio has joined the channel [20:28] shinuza: johnnywengluu: use require.cache :) [20:28] mange has joined the channel [20:29] dall: guys, can i manage vhosts with express? [20:30] jmoyers: yes [20:30] jmoyers: yes you can [20:30] tjholowaychuk: not allowed [20:30] johnnywengluu: shinuza: could you elaborate? [20:30] dall: hmm :) [20:30] hellp has joined the channel [20:31] ryan0x2 has joined the channel [20:31] dall: allowed or not? [20:32] sh1mmer: possible but you are putting two domains in the same shared memory [20:32] sh1mmer: which is not recommended [20:32] unlink has joined the channel [20:32] unlink has joined the channel [20:32] shinuza: johnnywengluu: it contains the modules that are loaded [20:32] hunterloftis has joined the channel [20:32] hassox has joined the channel [20:33] creationix: now, if you were ok with a proxy, then the master process could be the vhost proxy and individual node servers could serve each domain [20:33] flou has joined the channel [20:33] jmoyers: wait, whats the problem with putting two domains on the same process? [20:33] creationix: jmoyers: it's just less secure and robust [20:33] mikeal has joined the channel [20:33] creationix: if that's ok then it's ok [20:33] jmoyers: i do it for 3-4 static sites [20:33] hunterloftis: weird issue... using cluster to start up a server - that server does require('tick')(server) - tick.js does server.on('close') and process.on('exit'), but neither gets called when ctrl+c shuts down the actual server. [20:34] jmoyers: seems to work out [20:34] creationix: jmoyers: yeah, static sites are a case where it's perfectly fine [20:34] sh1mmer: jmoyers: it's slightly more robust/secure for static content because of the work load [20:34] tjholowaychuk: hunterloftis: SIGINT signals the children with SIGKILL [20:34] Nuck has joined the channel [20:35] hunterloftis: tjholowaychuk: thanks, I'll listen for that... [20:35] tjholowaychuk: though you should get "close" for the server still [20:35] dall: sh1mmer, why isnot raccomended? [20:35] creationix: btw, I made a pure js implementation of nextTick last night (for the browser) https://gist.github.com/1037316 [20:35] tjholowaychuk: but only the object returned from cluster() [20:35] tjholowaychuk: not the http server [20:35] sh1mmer: dall: you put all the domains in the same memory [20:35] Aphelion has joined the channel [20:35] Aphelion has joined the channel [20:35] sh1mmer: so if someone can exploit one site somehow they could get access to the others [20:36] hunterloftis: tjholowaychuk: the connect/express server is passing itself to tick.js ... so cluster -> app.js -> tick.js(app) [20:36] creationix: dall: if one site crashes, they all crash. They are all on the same cpu core, they all are in the same vm heap sharing the same limit [20:36] sh1mmer: more than that if one site is slow then it affects the others [20:36] sh1mmer: the event loop can be fragile [20:36] creationix: and security issues may arise if they don't mutually trust eachother [20:36] dall: shit [20:36] brettgoulder has joined the channel [20:36] dall: so any advices ? [20:36] jmoyers: whats the use case dall? [20:36] dall: better to use nginx apache or others? [20:36] sh1mmer: dall: run a couple of processes [20:36] jmoyers: you haven't given any cotnext [20:37] shinuza: dall: you can use nginx upfront [20:37] hunterloftis: tjholowaychuk: process.on('SIGKILL') doesn't get triggered either :/ [20:37] creationix: actually, using unique v8 contexts for each site goes a ways to help the security issue [20:37] sh1mmer: creationix: hey if you wanted to do a js bbq with drinking [20:37] dall: yes ok but if i have 10 websites(exmaple) [20:37] dall: is not possible? [20:37] briznad has joined the channel [20:37] Nuck has joined the channel [20:37] sh1mmer: creationix: we could use my place [20:37] simenbrekken has joined the channel [20:37] tjholowaychuk: hunterloftis you can't register an action with SIGKILL [20:37] jmoyers: it .. is possible [20:37] creationix: sh1mmer: ahh, but I don't *want* drinking [20:37] jmoyers: but depends entirely on your needs [20:37] jmoyers: if they are dynamic PRODUCT sites or some such [20:37] creationix: thanks though [20:37] sh1mmer: creationix: bah [20:37] dall: but not raccomended [20:37] sh1mmer: haha [20:37] jmoyers: or high traffic sites [20:37] jmoyers: then its not a good idea [20:38] dall: ok [20:38] junkee[]: wuhuuu! I'm playing a song using gstreamer in JS! :) [20:38] hunterloftis: tjholowaychuk: Hm. this process never gets killed though. It's got a setInterval that just logs a line... even after shutting down cluster, no more http://localhost, it keeps on setInterval logging... [20:38] tjholowaychuk: hunterloftis is it one of the workers? [20:38] dall: ot of curiosity [20:39] konobi: hunterloftis: SIGKILL is uncatchable, the kernel will kill the process immediately... if you want something to capture, try SIGTERM [20:39] dall: createServer() doens't start async "process" [20:39] dall: ? [20:39] hunterloftis: tjholowaychuk: yes, it's the worker with process.env.CLUSTER_WORKER === '0' [20:39] dall: why if a website is slow it also the other will be slow? [20:39] hunterloftis: konobi: thanks [20:39] tjholowaychuk: hunterloftis I could have SIGINT send a different signal, doesn't matter much for that one [20:39] creationix: dall: no, it just registers callbacks [20:40] creationix: dall: it's all the same event loop [20:40] tjholowaychuk: hunterloftis right right, i remember what you are doing now [20:40] xandrews has joined the channel [20:40] creationix: the same process can listen on multiple ports, or even multiple ip addresses or multiple domains [20:40] creationix: but then it's the same event loop [20:40] hunterloftis: tjholowaychuk: It's weird because the actual process/server does get shut down and restarted, etc... but the setInterval just keeps trucking, hah [20:40] tjholowaychuk: yup [20:40] dall: creationix, so if i have a website with a big loop..it can't accept more then one http connections? [20:40] tjholowaychuk: because the worker dies [20:40] tjholowaychuk: doesn't mean it's child does [20:41] konobi: hunterloftis: well, you gotta clearInterval =0) [20:41] shinuza: actually if you kill the worker explicitly it leaves a zombie process [20:41] tjholowaychuk: orphaned yes [20:41] creationix: dall: do you understand how the reactor pattern / event loop works? [20:41] hunterloftis: konobi: that's what I'm trying to do, but I'm not getting any 'close' events or process 'exit' signals ;) [20:41] skm has joined the channel [20:41] konobi: hunterloftis: SIGCHLD? [20:41] _Sorensen has joined the channel [20:41] creationix: dall: handling multiple connections is the strength of this architecture [20:42] tjholowaychuk: hunterloftis cluster(sever).on('close') is the only one you will (should) get [20:42] dall: creationix, no, could you give me a link to understand how it works? [20:42] tjholowaychuk: though like I said SIGINT doesn't need to be so harsh [20:42] tjholowaychuk: I could signal the workers with SIGTERM [20:42] dall: yes i know it can handles thousand of connections [20:42] hunterloftis: tjholowaychuk: thanks, I'll mess with that, I can modify the signal to SIGTERM right now and see if that helps [20:43] hunterloftis: tjholowaychuk: I'm wondering what I'm missing with 'close' though [20:43] creationix: dall: the reason it can do that is because it doesn't have to spawn a thread of process for each new connection [20:43] tjholowaychuk: it's gotta be in the master process [20:43] creationix: dall: and it can hold on to the connection for indefinite amounts of time because the connection doesn't ever block the loop for long [20:43] creationix: dall: but the event loop is single threaded and can only service one callback at a time [20:44] hunterloftis: tjholowaychuk: At this level, I don't (think) I have access to the cluster object. cluster('app') -> then app creates a server, which then goes to tick(server)... so tick has access to server, but not cluster [20:44] creationix: dall: so the more sites you put on the same loop, the slower it gets since all the events are being handled one at a time [20:44] tjholowaychuk: hunterloftis yeah that sounds correct [20:44] dall: creationix, ooh ok, make sense....right [20:44] creationix: dall: and if any single callback misbehaves, then the entire thing goes to crap [20:45] hunterloftis: tjholowaychuk: I'll read up on this though. Since I'm not sure about what you mean by being the master process (other than possibly having id == 0) I think I just don't understand the master/workers thing enough [20:45] dtan: creationix: so if there are a bunch of requests on one site (and say it's only one site running on the node.js instance) wouldn't htat mean that the site would slow down with the more connections to it? [20:45] creationix: dtan: of course, any architecture will get slower the more load you put on it [20:45] dall: creationix, but the problem could happen only with ONE site......if one callback "does a lot of things" It can slow the entire website, right? [20:45] tbranyen: tjholowaychuk: coworker just made an example showing node issues without having file locking :-/ [20:45] tbranyen: this is something i assumed happened under the hood [20:46] tjholowaychuk: nope [20:46] tjholowaychuk: just like anytihng else you just have to be aware of what you are doing in parallel [20:46] shinuza: creationix: I'm guessing how to node is written in node :) [20:46] shinuza: but did you write it from scratch [20:46] dtan: creationix: then at what point would the load be, typically to see noticable slow down? [20:46] shinuza: or is it something existing? [20:47] tbranyen: tjholowaychuk: wasn't that the point of using "single threaded" systems? [20:47] jmoyers: uh [20:47] tbranyen: to avoid shit like this [20:47] dmcquay has joined the channel [20:47] tjholowaychuk: well not really [20:47] tjholowaychuk: that doesn't help with I/O related conflicts [20:47] jmoyers: look, its not like things just magically slow down -- there are plenty of benchamarks out there that show thousands of concurrent connections. [20:47] jmoyers: if you're doing IO, you aren't blocking the event loop [20:47] jmoyers: this means files, network, etc [20:47] jmoyers: its only if you're doing something like a tight loop, or some long winded calculations [20:47] tjholowaychuk: tbranyen: you dont have all the shared memory bullshit with threads though [20:47] bene has joined the channel [20:47] tjholowaychuk: which is nice [20:47] jmoyers: in those cases you move it off into another process [20:48] jmoyers: single threaded doesn't means its not using a worker pool in the background to handle IO -- it is [20:48] dall: as long i understand the reason....the result is: that node could handles a lot of connections BUT if a callback usend on the process is heavy it slow down the entire system? .... wrong ? [20:48] jmoyers: its that the main javascript context is single threaded [20:48] tbranyen: tjholowaychuk: hmmm maybe providing some kind of abstracted method for locking then in fs [20:49] caiges has joined the channel [20:49] jmoyers: define "heavy" [20:49] sjbreen has joined the channel [20:49] shinuza: anyone has experience with a nodejs blog? [20:49] jmoyers: if you are reading files off disk, no [20:49] tjholowaychuk: tbranyen what are you doing that is causing issues? [20:49] jmoyers: if you are adding + 1 to a variable 100,000,000 times, yes [20:49] dall: i don't know....i mean....many loops, many connections to DB [20:49] jmoyers: you are mixing problem sets -- loops and database connections are different [20:49] tbranyen: tjholowaychuk: we were just discussing node and it came up: https://github.com/sbisbee/nodeFlockPOC [20:49] hunterloftis: tjholowaychuk: From within a cluster server instance, is there a way to tell if that server is the master? I see 'isMaster' but server.isMaster === undefined here [20:49] tbranyen: he countered with that [20:49] jmoyers: databases imply you are going out to the network to grab data from a different server -- this does NOT block [20:50] tjholowaychuk: hunterloftis cluster = cluster(app).listen(...); cluster.isMaster [20:50] tbranyen: although he was only able to prove it with multiple node processes [20:50] dall: but the concept is correct? accepts many connections but with only one thread if there is an heavy callback it slow donw all [20:50] jmoyers: as soon as you hit a point that would otherwise block on input/output (from network, disk, etc), its handled out of band [20:50] dall: no? [20:50] creationix: shinuza: howto.no.de? [20:50] tjholowaychuk: hunterloftis there are env vars as well [20:50] mkrecny has joined the channel [20:50] tbranyen: which i guess could happen with cluster [20:50] shinuza: creationix: yes, that was my question earlier, was it written from scratch? [20:51] jmoyers: yes, if you do while(true){ ; } in one of your request handlers, it will block. [20:51] hunterloftis: tjholowaychuk: wouldn't cluster always be master? [20:51] shinuza: or using something that already exist? [20:51] tjholowaychuk: hunterloftis nope [20:51] fairwinds has joined the channel [20:51] dall: jmoyers, i have to wait a database response....so is not the same things? [20:51] jmoyers: no, it is not the same thing [20:51] tjholowaychuk: hunterloftis: that same file is executed in the workers as well [20:51] creationix: dall: in node, you can't wait for io in a blocking way [20:51] kruckenb has joined the channel [20:51] creationix: if you did, the event loop wouldn't work [20:51] tjholowaychuk: hunterloftis which allows cluster(server).listen() to work [20:52] creationix: pure CPU things are allowed to block because they are relatively cheap [20:52] reid has joined the channel [20:52] creationix: but waiting on I/O is extremely expensive in comparison [20:52] hunterloftis: tjholowaychuk: I think I just need to read through cluster's source to actually understand what it's doing [20:52] tjholowaychuk: tbranyen i dont get it, of course you would have different results with that [20:52] tjholowaychuk: it's not ordered [20:52] mkultra329 has joined the channel [20:52] tbranyen: tjholowaychuk: i guess the idea would be if node was employing file locking that wouldn't happen? [20:52] tjholowaychuk: why not just not do that [20:52] tjholowaychuk: lol [20:52] dall: creationix, perfect.... so if i only have .html file....i can use readFile (async) so i could have 100 websites on node [20:52] dall: no? [20:53] creationix: dall: so, for the db example, you would start the db query, and give it a callback to be fired when the query returned. Then you would stop blocking and the event loop would service other stuff while waiting [20:53] dall: if it always async....i don't think it make node slow [20:53] dall: ok [20:53] creationix: there are no hard rules except don't block on I/O [20:53] konobi: dall: go look at ryah's slides from jsconf.eu 2009 [20:54] creationix: other than that, all work does block the CPU a little and it eventually adds up the more work you put on it [20:54] jmoyers: and then you use something like cluster ;-) [20:54] creationix: it depends entirely on just how expensive the work is and how fast you need it to return [20:54] creationix: static sites in particular are easy because they often don't have internal state [20:54] konobi: dall: http://jsconf.eu/2009/video_nodejs_by_ryan_dahl.html [20:55] creationix: then you can actually spawn several identical processes that share the load across CPUs [20:55] tbranyen: tjholowaychuk: well honestly its never been an issue for me, and i know less than most about file locking [20:55] sonnym has joined the channel [20:55] creationix: cluster is great for this [20:55] dall: can i not use cluster? it will use all the cores no? and then.....i could start more then one node process no? [20:55] tbranyen: didn't know if that was something that could be added [20:55] shinuza: it's important to understand the differences between I/O bound ops and CPU bound ops [20:55] creationix: and if you app had some internal state, it could be stored in a shared redis db that all the nodes have access to [20:56] dall: yes correct [20:56] goatslacker has joined the channel [20:56] creationix: but going back to virtual hosts, they are no different from different routes in a single http app [20:56] creationix: it's just more work with it's own handler [20:56] creationix: a single app with 100 different routes is the same as an app with 100 different virtual hosts [20:57] dall: creationix, but what do you think about cluster and spawn more then one process? i think it's the same....i can block (Example) nginx to use MAX 3 process.... so it's equale to have: node app.js - node app.js - node app.js no? [20:57] hassox has joined the channel [20:57] creationix: dall: I don't understand your question [20:57] dall: creationix, fuck my english :-D [20:57] dall: creationix, i mean... [20:58] creationix: nginx is a lot like node when doing static files btw [20:58] dall: creationix, nginx doens't spawn 10000 process as a request arrive to the server......on the configuration we can set how many child to start.... so my questions is, what is the difference between [20:59] dall: nginx 3 processes and [20:59] dall: node app.js [20:59] dall: node app.js [20:59] dall: node app.js [20:59] dall: ? [20:59] Nakamura has joined the channel [20:59] dall: it's the same thing i think no? [20:59] dall: there are 3 node processes started individually [20:59] dall: no? [20:59] creationix: dall: three seperate node servers can't be listening to the same port [20:59] dtan: what would be an ideal set up be if running a node based site with a high volume of users at once ? [20:59] creationix: but using cluster, 3 child processes can share the paren't port [21:00] catshirt has joined the channel [21:00] creationix: cluster is really good for this kind of stuff and it's not a proxy [21:00] tjholowaychuk: yeah cluster doesn't behave as a proxy [21:00] dall: creationix, i know i can proxy to them no [21:00] dall: ? [21:00] creationix: right, the other option is to have a node process per site and have a reverse proxy [21:00] dall: ah ok [21:01] creationix: when going the cluster route, you don't know which process will get each request [21:01] creationix: it's whoever is free when the request comes in [21:01] creationix: so it's best to not keep much state in the process [21:01] dall: creationix, or start 10 node processes and use nginx that server one of these each time (round robin) no? [21:01] creationix: dall: right, then you're using nginx as a proxy [21:02] creationix: but it's best to not proxy if you can get away with it [21:02] creationix: less layers = good [21:02] dall: creationix, you are right....so the solution is only the cluster [21:02] creationix: websockets in particular are very hard to proxy properly [21:02] dall: becuase all the website must to listen to 80 port [21:03] creationix: so the options are: 1 - a single process listening on port 80, 2 - multiple identical processes sharing port 80, 3 - multiple different processes behind a proxy [21:04] dall: th point number 2 do you mean to use cluster module ? [21:05] creationix: dall: I'd recommend cluster. It's not technically required, but it sure makes it a lot easier [21:06] seawise: hey, who is working with Node.js on daily job? [21:06] seawise: seems Node.js is a developer thing [21:06] seawise: and employers still not interested in Node.js devs [21:06] dall: creationix, but could i choose how many cluister to create at the beginning? [21:06] dall: or it create max N cluster as the core of the server ? [21:06] tjholowaychuk: dall cluster(app).set('workers, 2) etc [21:07] dall: cool! [21:07] tjholowaychuk: missed a quote [21:07] dall: so i can create 100 cluster for 100 website :-D eheheh [21:07] tjholowaychuk: baha [21:07] creationix: seawise: there are sure interested here in the bay area [21:07] tjholowaychuk: probably dont want to [21:07] tjholowaychuk: but you could lol [21:07] creationix: a year ago there were no jobs, but now there seem to be many [21:08] seawise: it's good to hear [21:08] creationix: dall: right, but each of the 100 cluster nodes will be serving all 100 sites each [21:08] asobrasil has left the channel [21:08] creationix: also, it's generally not useful to have more cluster nodes than cpu cores [21:08] dall: cluster as fisically spawd node processes? (shit this question is written very bad i think) :-D [21:09] shapeshe1 has joined the channel [21:09] dall: creating one moment i try to explain.... [21:09] seawise: what typical projects solved w/ Node.js employers want? [21:09] dall: we have 10 websites [21:09] dall: and then create 2 clusters..............ok [21:10] creationix: seawise: it varies, everything from traditional web apps to infrastructure parts to mobile development on webos [21:10] tjholowaychuk: dall you'll want at least 2 in production [21:10] tjholowaychuk: ideally more for redundancy [21:10] creationix: tjholowaychuk: do you use cluster for learnboost stuff? [21:10] creationix: tjholowaychuk: I mean in data based apps [21:10] dall: now, if one website is taking more time because it has a lot of loops etc etc.....another cluster will be used at the same time (if there are free cores) or like a thread if all the cores are working.......right? [21:11] TheFuzzball has joined the channel [21:11] seawise: sure it varies, websites on Node? hmm, APIs? real-time apps? [21:11] TooTallNate: creationix: Ya, we use cluster at LearnBoost [21:11] jerrysv has joined the channel [21:11] creationix: dall: each cluster node is a single process with a single thread and a single event loop [21:11] dall: creationix, perfect [21:11] dall: solved! ooook fuck nginx [21:11] dall: :D [21:12] creationix: tjholowaychuk: what would you recommend for simple static file serving? express, connect, or something else? [21:12] Fodi69 has joined the channel [21:12] creationix: tjholowaychuk: I've been using stack + creationix [21:12] dall: creationix, how the requests are assigned? round robin? (i mean looping to all the cluster created?) [21:12] tbranyen: i'd be interested to know how node fares against nginx in terms of caching/compression [21:12] creationix: dall: they aren't assigned, the os just hands the connection to the first available process [21:13] dall: yes perfect...that what i meant [21:13] dall: ok [21:13] dall: last questions creationix .... [21:13] creationix: only a proxy is able to look at the input and assign to a particular process [21:13] dall: what happen if a callback crash? [21:13] dall: the cluster will be killed and restarted? [21:13] creationix: dall: if there is an exception, it's best to let that process die [21:13] creationix: then cluster will restart it [21:13] seawise: okay, I'm interested in live examples of websites and applications built with Node.js, can you point me to some most well-known ones? [21:14] dall: creationix, amazing! very good [21:14] dall: ok [21:14] creationix: seawise: there are some on the node wiki [21:14] SubStack: Nuck: #3 [21:14] creationix: seawise: I use it for howto.no.de and creationix.com [21:14] dall: creationix, thank you so much for the support :) [21:14] creationix: seawise: but those aren't very fancy [21:14] seawise: I know only Plurk.com as a top-tier app [21:14] creationix: dall: thanks tjholowaychuk for cluster [21:14] seawise: but have heard they have migrated off from Node.js [21:14] prestonparris has joined the channel [21:15] creationix: seawise: I hear rumors of it being used at facebook, yahoo and the like [21:15] seawise: creationix: will check your sites :) [21:15] seawise: there's a list of top-tier users on MongoDB page for example [21:15] dall: tjholowaychuk has written the cluster module? [21:16] creationix: sh1mmer: do you know? [21:16] creationix: sh1mmer: who are the top node users in production [21:16] seawise: where can I read about success stories - live use cases of Node.js? [21:16] creationix: dall: I believe so [21:16] dall: creationix, wow [21:16] dall: good [21:17] creationix: TooTallNate: so what do you guys use for persistance? redis? [21:17] creationix: oh, mongo [21:17] mehlah has joined the channel [21:17] TooTallNate: mongo [21:17] TooTallNate: and redis for sessions [21:17] creationix: hence mongoose [21:17] creationix: that makes sense [21:17] dall: creationix, how the requests are managed? i mean HTTP REQUEST --> CLUSTER ---> CHECK THE FIRST FREE PROCESS ----> ASSIGN TO SINGLE CLUSTER NODE [21:17] dall: ? [21:17] TooTallNate: lol, ya [21:17] creationix: dall: no, it's super low level [21:17] eddanger has joined the channel [21:17] TooTallNate: dall: I'm pretty sure the kernel assigns to the first available process [21:18] creationix: dall: cluster binds to port 80, then creates N child processes and passes the fd to each of them [21:18] context: mongrel scusk ! [21:18] TooTallNate: the "master" cluster process doesn't ever receive client connections [21:18] creationix: dall: then the child processes all select over the shared port [21:18] dall: aah ok...understand [21:18] creationix: dall: so every time a request comes in, the operating system hands it to the first free cluster node [21:18] dall: master process manage all the childs [21:18] dall: perfect [21:18] dall: ok [21:18] cjm has joined the channel [21:18] creationix: dall: then the http request handler in that node processes the request [21:19] darren has joined the channel [21:19] creationix: dall: the master process isn't a proxy, it just moniters them and restarts them when needed [21:19] dall: yes...like nginx works [21:19] dall: + or - [21:19] creationix: right [21:19] creationix: nginx is a good architecture, just not very scriptable [21:19] creationix: node fixes that [21:19] dall: it has a root (master) process and then his childs [21:20] creationix: dall: also node processes can change their uid and gid [21:20] dall: ok perfect [21:20] dall: creationix, goood! [21:20] creationix: not sure it cluster has an option to do that automatically. I'll bet it does [21:20] dall: aaaaaah one this creationix, is it possible to create a sort of sandbox for each process? [21:20] jerrysv has joined the channel [21:20] creationix: dall: what kind of sandbox? [21:21] dall: i mean.... if i do fs.readFile(...) [21:21] TooTallNate: i mean, they're kind of sandboxed already... [21:21] dall: i want denied the reading of some directories [21:21] dall: *deny [21:21] TooTallNate: why? [21:21] Calvin has joined the channel [21:21] creationix: dall: you can put the whole cluster in a chroot, or just set up your file permissions the way you want [21:21] dall: what this night my english is so bad [21:21] dall: ok [21:21] creationix: dall: but that's all outside the scope and responsibility of cluster and node [21:22] hassox has joined the channel [21:22] iffy|x200 has joined the channel [21:22] dall: creationix, yesok [21:22] eyesUnclouded has joined the channel [21:22] dall: perfect alll make sense!! [21:22] dall: very good [21:22] creationix: enjoy [21:23] dall: so now i ONLY have to study.........node.........cluster..............redis............mongo..................and finally socket.io [21:23] dall: :D [21:23] creationix: dall: that's the learnboost stack [21:23] creationix: dall: they write some pretty cool stuff [21:23] tjholowaychuk has joined the channel [21:23] tjholowaychuk: damn starbucks [21:24] sh1mmer: creationix: Voxer [21:24] sh1mmer: almost certainly [21:24] coyo has joined the channel [21:24] creationix: sh1mmer: right, I meant to mention them [21:24] kylefox has joined the channel [21:24] creationix: seawise: voxer uses node [21:24] mjr_: we use the shit out of it [21:24] creationix: and I guess learnboost is becomming high profile [21:25] creationix: at least in the developer world [21:25] creationix: I have no clue how many actual users they have [21:25] dall: creationix, what is learnboost? [21:25] sh1mmer: mjr_: haha, I couldn't have put it better. [21:25] dall: i'm seeing the website... [21:25] dall: something for shools? [21:25] creationix: dall: yep, some sort of gradebook thingy [21:25] tbranyen: its developer porno [21:26] tbranyen: thats what it is [21:26] tjholowaychuk: quite a few users, functionality is more the concern right now [21:26] dall: tbranyen, :) [21:26] chjj: dev porn? im in [21:26] dall: me tooooo [21:26] tjholowaychuk: 8====D [21:26] creationix: so I don't know much about companies using node in production from the comsumer's point of view, but I can tell you what companies employ high-profile node developers [21:27] dall: why i started with php!!!!!! [21:27] chjj: which ever company employs me ^ [21:27] darren: hey all. is /usr/local not the default install path for node anymore? [21:27] mikeal has joined the channel [21:27] creationix: Joyent, LearnBoost, CloudKick, HP(webOS), ... [21:27] mjr_: Hey creationix, I hear this little silicon valley startup called Hewlett Packard is using node in some kind of consumer product. [21:27] creationix: mjr_: now if only we used it right [21:28] halfhalo: heh [21:28] systemfault: mjr_: Another company without money, right? :/ [21:28] mjr_: Well, they are just getting started. [21:28] creationix: hey, there are two phones in the market today that ship with node, and tablets go on sale in a week and a half [21:29] creationix: the *stuff* is about to hit the fan [21:29] tjholowaychuk: ACTION wants free phone [21:29] creationix: ACTION wants one too [21:29] halfhalo: ACTION gets in line [21:29] tjholowaychuk: ACTION wants to get rid of android [21:29] creationix: tjholowaychuk: what carrier do you use? [21:29] tjholowaychuk: virgin mobile or something [21:29] dtan: which phones and tablets? [21:29] tbranyen: hp touchpad looks pretty sweet [21:30] tbranyen: gonna wait to see what consumer whores have to say first [21:30] creationix: dtan: http://www.hpwebos.com/us/ [21:30] xandrews has joined the channel [21:30] creationix: I ordered the white veer for my personal phone. I can't wait till it gets here [21:30] dtan: creationix so that's running copmletely off node? [21:30] creationix: it's like a little node powered mini panda bear [21:30] halfhalo: creationix: technically all the webos phones can run node. we have 2.x running on older devices via wosi's metadoctor [21:31] creationix: dtan: no, not just node, but it powers background tasks [21:31] dtan: ah gotcha [21:31] creationix: the frontend is mostly vanilla v8 + webkit [21:31] tjholowaychuk: haha panda? [21:31] tjholowaychuk: awesome [21:31] dtan: ah cool [21:31] tjholowaychuk: i want a panda [21:31] tjholowaychuk: powered by node [21:31] dtan: haha [21:31] tjholowaychuk: i dig that stack though [21:31] halfhalo: ACTION notes he has built node via a debian chroot on his pandaveer [21:31] tjholowaychuk: android [21:31] tjholowaychuk: sucks [21:31] dall: creationix, do you know http://geddyjs.org/ ? [21:31] dtan: creationix: have you tried any of them out? [21:31] creationix: halfhalo: lol, pandaveer [21:32] halfhalo: i love it. its freaking fast. [21:32] creationix: dtan: I've seen all of them since I get early prototypes at work, but I don't own a veer [21:32] dtan: how are they? [21:33] tchype has joined the channel [21:33] creationix: dtan: the older devices are a little slow (I mean they were released 2 years ago), but the new stuff is nice [21:33] chjj: ACTION needs more webscale [21:33] creationix: dtan: the user interface and the dev environment is amazing though [21:33] dtan: creationix: ah cool, do you think they are worht the money? [21:33] dtan: ah you can do dev stuff on them? [21:34] creationix: dtan: webOS gives you root out of the box [21:34] dtan: ah snap [21:34] creationix: dtan: and we support the homebrew community [21:34] creationix: ask halfhalo [21:34] halfhalo: yupyup [21:34] dtan: cool [21:34] mikey_p: so what is webos doing with node? i missed that session at nodeconf even though I am rather curious [21:34] creationix: node powered the background services [21:34] dtan: creationix, halfhalo, so you both work for hp? [21:35] dall: creationix, which web frameworks are you currently using? [21:35] halfhalo: I don't work for HP, i'm homebrew [21:35] creationix: dall: I'm using enyo on webOS since I'm on the enyo team ;) [21:35] dtan: ah ok cool [21:35] mikey_p: creationix: you work for HP? [21:35] creationix: yep [21:35] dtan: halfhalo - you've played around with the veer stuff though? [21:35] creationix: I work on the javascript frameworks for webOS, especially the node stuff [21:35] halfhalo: dtan: I own a veer, so yes [21:35] dtan: good? [21:36] darren has left the channel [21:36] catshirt has joined the channel [21:36] zeropx has joined the channel [21:36] dall: enyo [21:36] dall: ok [21:37] halfhalo: dtan: what do you mean good? [21:37] dtan: is the veer good [21:37] xeodox has joined the channel [21:37] sjbreen has joined the channel [21:37] zeade has joined the channel [21:38] creationix: dtan: are you in the bay area? [21:38] halfhalo: as a phone overall? depends on your use. for me, its great. Alot of power in a small package [21:38] dall: creationix, website? [21:38] dtan: creationix - no, east coast [21:38] dtan: halfhalo - gotcha [21:38] devinus has joined the channel [21:38] creationix: dtan: ok, because there are veers on display in the lobby of my work [21:38] devinus: where does npm install the runnable scripts? [21:38] creationix: devinus: use npm install -g [21:38] dtan: creationix: ah, ya, don't think i can make it down there easily =) [21:39] dtan: thanks though [21:39] dtan: i gotta run though, past quittin' time! [21:39] creationix: dall: website for what? [21:39] dall: enyo [21:39] creationix: dall: It's not public yet, you have to get into the early access program [21:40] dall: ah ok [21:40] creationix: developer.palm.com [21:40] halfhalo: enyo is.... nice. weird, but nice. [21:41] creationix: devinus: it puts them in $PWD/node_modules/.bin if you don't specift the -g flag [21:41] devinus: creationix: thanks for that [21:42] mikeal has joined the channel [21:42] mikeal has joined the channel [21:42] halfhalo: webos is pretty much one of the most open mobile os's out there. there is no locking, no bootloader encrypting, nothing like that. you type on thing on the phone and you have full root access. [21:43] creationix: halfhalo: and the primary sdk is node + webkit + v8 [21:43] S2kx: https://gist.github.com/21d5aaeeaab929353e47 anyone an idea how i can fix this error? [21:43] llrcombs: Hey, I'm having trouble spawn()ing php-cgi [21:43] creationix: anyway enough turning this into the webos marketing room [21:43] halfhalo: heh [21:43] seawise: anyone developing games with Node.js? [21:43] llrcombs: OHWAIT [21:43] llrcombs: nevermind [21:44] llrcombs: found the problem [21:44] llrcombs: ignore me [21:44] JoshC1 has joined the channel [21:44] mikey_p: I love that the maps screenshot on http://h41112.www4.hp.com/promo/webos/us/en/veer.html has the map centered on the location of jsconf [21:44] context: s2kx: windows? [21:44] creationix: seawise: I'm sure there are, but most the things I've heard about are still mostly secret [21:45] sveimac has joined the channel [21:45] TheFuzzball_ has joined the channel [21:45] S2kx: context: non, ubuntu [21:45] creationix: mikey_p: lol [21:45] seawise: some people claim that Node.js have problems with production [21:45] context: s2kx: all the dev packages you need? [21:45] mikey_p: subtle [21:45] seawise: memory leaks, etc [21:45] llrcombs: the arguments array in spawn... are there any problems with that? [21:46] seawise: is that true? [21:46] context: seawise: if its leaking memory its probably their JS doing it. [21:46] creationix: seawise: if used incorrectly things can go bad [21:46] Yuffster_work has joined the channel [21:46] tbranyen: seawise: what people, who there? [21:46] S2kx: context: : Yep i believe so. it kind of seems like a broken version of libstdc++ slipped in or so. [21:46] context: tbranyen: *them* [21:46] S2kx: context: using the nodejs package wont be the problem, right? [21:46] seawise: tbranyen: some Java people [21:46] context: never ask why *they* are. *they* will come for you :p [21:47] context: s2kx: no. prolly want node-dev though if not already [21:47] tbranyen: oh the jawa's [21:47] seawise: some Java people behind Java non-blocking solutions [21:47] context: s2kx: looks like it might be a missing package. wouldn't know which one though [21:47] creationix: node is very powerful and lightweight if used correctly [21:47] creationix: but it's easy for inexperienced people to get it terribly wrong [21:48] creationix: in production at least [21:48] coreb1 has joined the channel [21:48] llrcombs: I'm having trouble passing args into it [21:49] roblarter has joined the channel [21:49] creationix: seawise: are you trying to evaluate using node in a new app? [21:49] caolanm has joined the channel [21:50] kruckenb has joined the channel [21:50] cjm has joined the channel [21:50] creationix: the problem with using event loops in Java, Ruby, and Python is that most of the eco-system uses blocking I/O [21:50] creationix: so it's dangerous [21:51] creationix: one accidental dependency on some blocking library and the entire event loop goes to crap [21:51] creationix: with node there is no such legacy [21:51] seawise: creationix: yeah, I want to develop real-time game using Node.js and want to be sure that is a good idea [21:51] creationix: it was non-blocking from inception [21:51] seawise: have a great idea and completed design on hands [21:51] creationix: seawise: it's a good idea if you have the expertise or are willing to learn proper javascript and event programming [21:52] creationix: some things are much easier, and other things are much harder [21:52] tjholowaychuk: the main flaw of how we have things set up IMO is cases where you need to be robust, but you have 10 different objects to listen on a million damn events [21:52] wadey has joined the channel [21:52] Nuck: God I hate when people try to tell me that JS is useless beyond web programming. [21:52] tjholowaychuk: which is super annoying and fragile [21:52] seawise: ok, what things are easier? [21:52] systemfault: Nuck: People are ignorant :) [21:52] seawise: and this is even more interesting - what things are harder? [21:52] Nuck: systemfault: I inform them by telling them Firefox uses JS for th UI ;) [21:52] creationix: seawise: things that involve high-concurrency, real-time network I/O and are otherwise I/O bound [21:53] Nuck: That always seems to shut them up [21:53] seawise: I'm experimenting with Node.js on my free time and I like it, like event model [21:53] systemfault: :) [21:53] creationix: Nuck: also gnome3 uses js for the window manager [21:53] Nuck: creationix: orly? [21:53] systemfault: Ya, RLY. [21:53] systemfault: And CSS [21:53] creationix: seawise: but when things go wrong in production it can be hard to debug [21:53] Skola has joined the channel [21:53] seawise: just want to be sure it will work w/o problems on production environment [21:53] creationix: seawise: mjr_ can probably give some insight to using it in production [21:54] creationix: seawise: any software will have problems, the question is if they will be something you can solve [21:54] dall: creationix, did you use express web framework? [21:54] llrcombs: anyone else had problems with spawn();'s 2nd arg? [21:54] systemfault: With the chrome dev tools, JS is not that difficult to debug anymore. [21:54] creationix: dall: i helped write Connect, but I've never actually used express [21:54] systemfault: (Even client-side) [21:54] dall: ok [21:55] xeodox: Let's say I have an array. var a = new Array; a.forEach(function(elem){ console.log(elem); } ); ....is this blocking? [21:55] seawise: creationix: what things mrj_ is developing? [21:55] dall: all the developer told express is one of the best web framework [21:55] llrcombs: I <3 WebKit devtools [21:55] systemfault: xeodox: Sure [21:55] creationix: xeodox: yes, Function.prototype.forEach is blocking and syncronous [21:55] dall: also on socket.io is used [21:55] Nuck: dall: I know I love it [21:55] sub_pop has joined the channel [21:55] xeodox: thx [21:55] dall: Nuck, express? [21:55] Nuck: dall: Ahyup [21:56] kruckenb has joined the channel [21:56] erictj has joined the channel [21:56] creationix: well, considering the authors of express and socket.io now work together and both are used in their product, they probably go well together [21:56] mjr_: seawise: we use node.js for the backend of Voxer, which is a voice messaging application for iOS. [21:56] dall: i really don't how it works....but....is it eay? layout could be manage without a look of trouble? [21:57] dtan has joined the channel [21:57] tvc has joined the channel [21:57] dall: i'm dyslexic today [21:57] dtan: ah that was a long commute heh [21:57] erictj: What's the easiest way to get vows to honor a —debug-brk flag when running tests? [21:57] Nuck: dall: ExpressJS is pretty damn easy. [21:57] mjr_: seawise: node has some unique things that make it interesting in production, but there's nothing that's overall harder or easier than anything else, operationally. [21:57] Druide_: anyone who's good at xmpp [21:57] Nuck: I used with with the EJS template engine, which is sorta like PHP-esque syntax [21:58] ryan0x2 has joined the channel [21:58] dall: Nuck, expressjs ? require('express') are we talking about the same module right? [21:58] MattJ: Druide_: me but I'm not awake [21:58] seawise: mjr_: thanks for replying! [21:58] bogomips2__ has joined the channel [21:58] seawise: mjr_: can you name that unique things? [21:58] mjr_: seawise: just be mindful of the GC overhead of your realtime game thing. GC cost has been my biggest surprise, but it's usually avoidable. [21:58] Nuck: dallL Aye [21:58] ezl_ has joined the channel [21:59] Nuck: dall: expressjs is the site [21:59] dall: ok [21:59] seawise: mjr_: and if that is not a secret how do you use Node.js for the backend, can you name some of the use cases it's really good for? [21:59] Nuck: It's a bit odd if you're used to a server like Apache [21:59] mjr_: seawise: open a REPL socket for all of your processes and expose useful objects to it so you can inspect / change your program without stopping the process. [21:59] Nuck: Since you can't just drop shit in a folder and have it work automagically [21:59] tvc: im not sure how to "include" other files into a script, like i know to include modules you use require() but what if i want to include another .js file in the current directory, so i can make my project modular [21:59] seawise: mjr_: everything hangs during GC, right? [21:59] Nuck: But once you get used to it, it's nice. [22:00] tvc: i cant really find any documentation on it [22:00] mjr_: seawise: V8 tries really hard to minimize the cost of GC, but yes, the world stops during GC [22:00] context_ has joined the channel [22:01] dall: Nuke, one moment...you can set a directory...like the root path to wrok right? [22:01] Nuck: tvc: You exports.thing = in the file (I think that's the variable, not sure), and then var thing = require('./file.js') [22:01] dall: i don't understand what you mean [22:01] seawise: mjr_: and how often CG happens? [22:01] Nuck: dall: Huh? You hafta code each path to load the file for itself [22:01] llrcombs: anyone have any idea why passing args into spawn() wouldn't work properly? [22:01] mjr_: seawise: you don't really get to pick. It happens whenever V8 thinks it would be a good idea [22:01] clvv has joined the channel [22:01] Nuck: dall: Read through the express site, it's quite helpful [22:01] dall: Nuck, is there something like "reqrite" ? [22:01] dall: *rewrite [22:02] mjr_: seawise: just measure your program with --prof and --trace_gc [22:02] mikey_p: there's an #express channel now? [22:02] tjholowaychuk: dall: req.url = 'some new url' is your rewrite :D [22:02] mjr_: Try it different ways and make sure that you aren't doing excessive GC [22:02] konobi: node-inspector and the profiling stuff works pretty well [22:02] Nuck: dall: No need for mod_rewrite, since you write the URLs yourself. [22:02] tjholowaychuk: mikey_p yeah a node guy registered it [22:02] Nuck: dall: You'll see once you start using it. [22:02] tjholowaychuk: mAritz i think [22:02] seawise: mjr_: what operations emit GC more that others? [22:03] dall: ehehe yes but if i want to manage request like: example.com/one/two/three [22:03] bnoordhuis has joined the channel [22:03] creationix: seawise: anything that mutates memory or creates new objects can trigger a gc [22:03] dall: cna i put these one - two -three in variable? like $1 $2 $3 [22:03] creationix: seawise: but as a general rule, create as few objects as possible [22:03] mjr_: seawise: the more objects you keep around, the longer GC will take. [22:04] creationix: seawise: I often reuse objects in pools and that seems to help some [22:04] creationix: seawise: but don't prematurely optimize, that will cause more harm than good [22:04] dtan: ^ been told the same [22:04] mjr_: yeah, just write your program, and then measure it with --trace_gc [22:05] mjr_: I've been getting a lot of mileage out of --trace_gc lately [22:05] kruckenb has joined the channel [22:05] creationix: mjr_: how long are your gc's usually? They get nasty long on embedded devices [22:06] konobi: https://github.com/dannycoates/node-inspector # heap snapshot inspection!! [22:06] seawise: thanks for advices, guys [22:06] mjr_: creationix: when things are running well, 1-5ms or so. When things are not going well, 60+ms [22:06] dall: guys redis is something like similar to mongo? [22:07] mjr_: I'm finding that the typical node pattern of setting up lots of little anonymous functions as event handlers for logic ends up costing a non-ignorable amount in GC time. [22:07] bnoordhuis: slightly on-topic, v8 is getting a new gc that is supposedly many times faster than the current one [22:07] bnoordhuis: but it'll probably be a while before it lands in node [22:07] mjr_: Instead if you use a simple anonymous function to bind back to another object, it's way faster. [22:08] dtan: noob question: what does "gc" stand for? [22:08] bnoordhuis: dtan: garbage collector :) [22:08] dtan: ah thanks [22:09] mjr_: bnoordhuis: that's excellent. I'm looking forward to that and the crankshaft optimizations applied to Buffer index code. [22:09] devdazed has joined the channel [22:09] devdazed: hi all, is there a way to send icmp packets using node? [22:10] devdazed: basically ping, using net? [22:10] bnoordhuis: devdazed: don't think so, node core doesn't currently expose raw sockets [22:10] devdazed: would this be possibly with an extension, or even easy? [22:10] devdazed: *possible [22:11] bnoordhuis: devdazed: possible? yes. easy? depends on if you know c++ and the unix network api [22:11] devdazed: bnoordhuis: thanks [22:12] konobi: devdazed: you could always spawn `ping` [22:12] mjr_: devdazed: nope, we need raw socket support. [22:12] devdazed: konobi: i really dont want the overhead of spawning processes [22:12] mjr_: or you could write a c++ module [22:12] devdazed: plus it seems sort of hacky to me [22:12] seawise: another questions, everyone knows Node.js roadmap, what is scheduled for future released, what to be aware of? [22:12] konobi: you'll also need to run your node process as root [22:13] WRAz: @mjr_: ++ [22:13] dall: thank you guys..........see you soon [22:13] dall: by [22:13] WRAz: I don't know why people are so hesitant to write c++ modules, its a great feature of node. [22:14] bnoordhuis: seawise: the major thing for 0.5 / 0.6 is proper windows support [22:14] tchype has joined the channel [22:14] WRAz: you mean... no more cygwin? [22:15] bnoordhuis: WRAz: that's the idea yes [22:15] WRAz: that'd be pretty bad ass. [22:15] pifantastic has joined the channel [22:15] Nuck: oooh yay [22:15] Nuck: bnoordhuis: official binaries? [22:15] coyo has joined the channel [22:16] bnoordhuis: Nuck: don't know actually :) you should ask ryah [22:16] caolanm has joined the channel [22:17] rabidewok: im taking the plunge... i'm going to propose that our website rebuild not go forward as planned in php, and that we go with node [22:17] rabidewok: got meeting setup next week to pitch the idea :) [22:17] tjholowaychuk: mAritz ping [22:18] Nuck: rabidewok: What site? [22:18] devrim has joined the channel [22:18] rabidewok: ccnbikes.com & 2mevents.com [22:18] rabidewok: current site is a pile of junk written by very bad contractors [22:18] eddanger has joined the channel [22:19] clifton has joined the channel [22:19] jerrysv: off chance, but -- sundarram from pinetechlabs, you here? [22:19] thoolihan has joined the channel [22:20] markwubben has joined the channel [22:20] tvc has left the channel [22:21] WRAz: @rabidewok: Are there ever good contractors? [22:21] rabidewok: these ones really took the cake [22:21] LiamMagee has joined the channel [22:22] WRAz: anyhow, I'd hold off your decision about utilizing node. [22:22] Nuck: rabidewok: The design isn't *that* bad, though it is rather generic. I can see the backend really sucking though. [22:22] rabidewok: whys that wraz? [22:22] creationix: ACTION closes the window to better concentrate [22:22] creationix has left the channel [22:22] WRAz: I loved node, I really want to use it in a production environment but for critical services I can't even begin to imagine using it yet. [22:23] WRAz: however, been using it for reporting/real time transaction records/distributed tools [22:23] rabidewok: nuck: it's an absolute nightmare, no exception handling, code duplication up the wazoo, and what appears to be a monkeys understanding of OOP [22:23] davve: WRAz: cool [22:24] WRAz: hasn't really given me any trouble either but I'm always paranoid ;) [22:24] Nuck: rabidewok: Shitty OOP? Welcome to PHP. [22:24] davve: with DOM? [22:24] swaj: are there any good tutorials out there for express js integration testing? [22:24] swaj: or examples really? [22:24] ryanf_ has joined the channel [22:25] Nuck: It always makes me giggle when programmers talk about testing. Because you know what I do? I use it. I test by not testing. [22:25] WRAz: ACTION shivs nuck. [22:25] swaj: Then your shit probably doesn't work [22:25] hassox has joined the channel [22:25] simenbrekken has joined the channel [22:25] Nuck: My test for my social network will involve me getting a few coders and nerds to go onto the site and try and break shit. [22:25] davve: testing is more than just using it [22:25] reid has joined the channel [22:25] insin: ACTION slips a half-brick into a sock [22:25] davve: but i get your point [22:25] WRAz: Unit Tests = Important, Integration Tests = Even more important... [22:26] davve: i get bugs though. i dont use it enough maybe [22:26] Nuck: I figure the best test is the one where you get an assload of smart people to try and break shit ;) [22:26] Nuck: Because if anyone can break it, they can. [22:26] davve: i should make UML plans [22:26] davve: before i start [22:26] davve: :D [22:26] WRAz: @Nuck, that level of testing is also important ;) [22:26] swaj: that's a pretty shitty test plan [22:26] Nuck: lol @ UML [22:26] broofa has joined the channel [22:26] Nuck: ACTION shrugs [22:26] Nuck: It works! [22:26] WRAz: but, unit tests/integration tests will save you time [22:26] insin: (and get them to run Selenium IDE while they do so) [22:27] Nuck: WRAz: Meh, I just write code and then test it as I go [22:27] xandrews has joined the channel [22:27] coyo has joined the channel [22:27] Nuck: And then I wrap it all up and get people to break it [22:27] dtan: i wish we had testing set up on the stuff i work on bc/ it's a super pain in the ass to figure out where the hell something is breaking [22:27] Nuck: I also feed bad data in it myself :P [22:27] WRAz: for small code bases I'm sure thats fine [22:27] WRAz: but... I really depend on my test frameworks to tell me when shit breaks [22:27] swaj: tjholowaychuk: do you have any examples of integration testing with express? Vows looks pretty nice to be, but I'm just not sure where to start. [22:28] Nuck: WRAz: I know when shit breaks, and I know what my codebase looks like. [22:28] tjholowaychuk: swaj not many examples sorry [22:28] swaj: hrm [22:28] tjholowaychuk: would be nice to add some to the examples dir [22:28] Nuck: I'll prolly add unit testing after the initial release [22:28] yozgrahame has joined the channel [22:28] Nuck: But for now, I'm not bothering. [22:28] swaj: what framework is good for integration testing? [22:28] davve: WRAz: show us something [22:28] davve: :) [22:28] swaj: in JS [22:28] hosh_work has joined the channel [22:28] sfragis has joined the channel [22:29] dguttman_ has joined the channel [22:29] davve: http://tapir.haninge.kth.se/~davve/lol/ [22:29] WRAz: @Davve: http://plus4chan.org/b/coc/src/130795573655.gif [22:29] Nuck: ACTION goes back to Programming, Motherfucker. [22:30] Nuck: as much as the man behind it is a douchebag, he had one thing I agree with :P [22:30] swaj: funny you quote zed shaw... pretty sure he writes unit tests :) [22:30] Nuck: swaj: Perhaps, but I'll chock that up to his douchey half :P [22:30] Nuck: And by half I mena 99% [22:30] goatslacker has joined the channel [22:30] WRAz: @davve: https://github.com/WhenRaptorsAttack/Jixel [22:31] WRAz: that thing has been through a few revisions [22:32] Murvin has joined the channel [22:32] davve: WRAz: cant get to demo :/ [22:33] WRAz: yar, jixel.org is down atm [22:33] ryanf_ has left the channel [22:33] WRAz: waiting for a paas account then going to point it at that w/ the demo up [22:33] WRAz: got tired of maintaining a VM. [22:34] davve: you made backup? [22:34] swaj: tjholowaychuk: Do you have any recommendations for an integration testing framework for express? [22:34] WRAz: ofc [22:34] swaj: tjholowaychuk: IE, which do you use? [22:34] thoolihan has joined the channel [22:34] tjholowaychuk: swaj: we use expresso with tobi [22:34] WRAz: you can just grab the source and point at testharness.html too [22:34] WRAz: its just shows off the rendering [22:34] brettgoulder has joined the channel [22:34] materialdesigner has joined the channel [22:34] tjholowaychuk: swaj but vows / zombie or similar would be fine too [22:35] WRAz: I need to clean that shit up so bad. [22:36] masylum has joined the channel [22:36] masylum: hi! [22:36] S2kx has joined the channel [22:36] davve: naw too much work [22:36] clifton has joined the channel [22:36] davve: you can compile my game at http://tapir.haninge.kth.se/~tobbe/ageofkth [22:36] CodyGray has joined the channel [22:36] davve: its made all in C with libraries SDL and opengl.. in 4 months time [22:37] davve: i did client/server networking and stuff [22:37] davve: pretty good for a bunch of newbs [22:37] davve: :D [22:37] WRAz: ah, I made games before ;) thats just an HTML5 game engine. I think its pretty cool. [22:37] WRAz: thats cool that you guys rolled your own network stack [22:38] WRAz: most people opt for raknet [22:38] davve: well. SDL has a net sub module [22:38] davve: which was used. for cross compability [22:38] topaxi has joined the channel [22:38] davve: server was all bsd sockets and posix [22:38] davve: :) [22:38] bradley has joined the channel [22:39] davve: SDL_net.. also SDL_mixer etc [22:39] CodyGray has left the channel [22:39] mkrecny has joined the channel [22:39] davve: nodejs seems so cool, but im new to js also and i know plain html [22:40] davve: you can do cool stuffs with it :) and the event loop sort of thinking [22:40] WRAz: hmm, my package.json isn't being picked up inside a directory [22:40] davve: WRAz: any games made with jixel? [22:40] swaj: oh nice tj, I didn't know about tobi. that looks like exactly what I want [22:40] davve: ...yet... [22:40] swaj: thanks [22:40] WRAz: nah, I'm still mucking around with it too much to make a game with it, plus single player games are boring to me [22:41] WRAz: so I'm working on a DNode driven Game Server stack right now ;) [22:41] davve: make one and i'll network it :) [22:41] davve: and host ! [22:41] WRAz: you check out DNode yet? [22:41] xandrews has joined the channel [22:41] davve: barely node :) [22:42] davve: ACTION looks into it [22:42] felicity_ has left the channel [22:42] eggie5 has joined the channel [22:42] swaj: looks like nowjs [22:42] eggie5: ello? [22:42] ParadoxQuine has joined the channel [22:42] malkomalko has joined the channel [22:43] davve: you can do a lot with regular sockets [22:43] tilgovi has joined the channel [22:43] tilgovi has joined the channel [22:43] davve: tcp or udp depending on the kind of game.. [22:43] davve: im sure there are great modules [22:44] davve: nvm im not sure i quite have th etime [22:44] blup has joined the channel [22:44] davve: it would take some dedication [22:44] davve: and i have to do stuff that pays :( [22:45] davve: :) [22:45] WRAz: haha, yeah. DNode is a crutch and hopefully should make my life way easier [22:45] WRAz: Otherwise the performance overhead it adds hurts a bunch, oh well [22:45] squeese has joined the channel [22:46] joshthecoder has joined the channel [22:46] temp01 has joined the channel [22:46] davve: a bird stole my lunch today [22:47] davve: rendered most of it inedible [22:47] bazookatooth has joined the channel [22:47] davve: a huge ass seagul. [22:47] davve: living in stockholm [22:48] davve: swedish life [22:48] SubStack: WRAz: you can always pay somebody to make it faster later once your prototype is a huge success [22:48] davve: they make me wish i had a gun [22:48] WRAz: haha sub [22:48] davve: but, we cannot. only for hunting [22:48] WRAz: this is true, and I firmly believe in prototyping ;) [22:48] gozala has joined the channel [22:48] davve: and seaguls are not ok to kill. i think. also carrying in the city is not ok [22:48] davve: i think [22:49] WRAz: Do what needs to be done in a manner that allows extension later but don't sweat the details. [22:49] robertfw: yeah [22:49] davve: im sure. [22:49] robertfw: im having to hammer that into our new developer [22:49] robertfw: it'd be nice to do it right from the start [22:49] robertfw: but then you never do anything :) [22:49] WRAz: also, thanks for making DNode again, I already told you that before tho ;) [22:49] marcello3d has joined the channel [22:50] SubStack: robertfw: "right" varies by what stage the product is at [22:50] davidbanham has joined the channel [22:51] robertfw: the point i made is that what you think is right when you start [22:51] robertfw: usually isn't what is right at the end [22:51] skm has joined the channel [22:51] WRAz: http://pastebin.com/fvgR0bX0 < this package.json should load controller.js in the same directory yeah? [22:52] SubStack: yes [22:52] WRAz: doesn't >.> [22:52] ngs has joined the channel [22:53] skoom has joined the channel [22:53] WRAz: when I toss an index.js in that same directory that gets picked up but teh package.json isn't [22:55] skoom has joined the channel [22:55] esundahl has joined the channel [22:55] mikeal has joined the channel [22:55] bbttxu has joined the channel [22:56] davve: have you seen a barking cat? [22:56] davve: http://www.youtube.com/watch?v=aP3gzee1cps [22:57] skoom has joined the channel [22:57] robertfw: heard a dog meow the other day [22:58] rpj8 has left the channel [23:02] skm has joined the channel [23:02] bradley: what was the name of that module that did cpu / memory checks etc for child processes and kept them limited? [23:03] F1LT3R has joined the channel [23:03] fairwinds has joined the channel [23:04] kitsunde has joined the channel [23:04] zpao has joined the channel [23:04] willwhite has joined the channel [23:07] harth has joined the channel [23:11] tjholowaychuk has joined the channel [23:14] jaket has joined the channel [23:14] Sorella has joined the channel [23:14] cryptix has joined the channel [23:15] seawise_ has joined the channel [23:16] Bonuspunkt has joined the channel [23:17] masylum: I have some problems compiling node on Leopard (10.5.8) [23:18] masylum: Checking for openssl : not found [23:18] bradley: did you install libssl-dev? [23:18] masylum: it compiles ok, but then I get this error https://github.com/senchalabs/connect/issues/280 [23:19] masylum: I just installed xcode and git bradley, is a fresh Leopard install [23:20] bradley: you will need to install the development version of openssl, it contains the core of node's crypto library which is used by lots of things [23:20] bradley: development library* not version [23:21] tayy has joined the channel [23:21] heavysixer has joined the channel [23:21] tiglionabbit_ has joined the channel [23:21] tchype has joined the channel [23:22] eddanger has joined the channel [23:23] replore_ has joined the channel [23:23] sjbreen has joined the channel [23:23] masylum: how can I install libssl-dev? [23:24] ryan[WIN] has joined the channel [23:24] tiglionabbit_ has left the channel [23:24] ryan[WIN] has joined the channel [23:27] bnoordhuis: masylum: what os / distro are you using? [23:27] masylum: osx 10.5.8 leopard [23:28] masylum: a fresh install [23:28] bnoordhuis: masylum: maybe macports? i don't know os x that well [23:28] masylum: I will check [23:28] masylum: works perfectly on snow leopard [23:29] masylum: but in leopard is a mess.. [23:29] esundahl has left the channel [23:29] tchype has joined the channel [23:34] telemachus: homebrew has openssl as well [23:35] Badababuba has joined the channel [23:37] newy_ has joined the channel [23:38] eventualbuddha: homebrew > macports, imo [23:38] Druide_ has joined the channel [23:39] defeated has left the channel [23:42] kmiyashiro: why's that? [23:42] coleGillespie_ has joined the channel [23:42] markwubben has joined the channel [23:46] telemachus: I prefer it for two reasons: (1) it's far faster and (2) it has slimmer dependency chains (since MacPorts has a policy of installing an entire separate system for itself) [23:47] kmiyashiro: wtf [23:47] kmiyashiro: Firefox 5 [23:47] kmiyashiro: wtf [23:47] Lorentz: Yes, it's out [23:47] kmiyashiro: just do autoupdates like chrome [23:47] kmiyashiro: dammit [23:48] arpegius has joined the channel [23:49] AvianFlu has joined the channel [23:50] tonymilne has joined the channel [23:50] eventualbuddha: firefox _5_? [23:51] eventualbuddha: what happened to 4.x? [23:51] kmiyashiro: yes [23:51] kmiyashiro: I don't know [23:51] kmiyashiro: it's bad [23:51] prestonparris has left the channel [23:51] KingJamool has joined the channel [23:52] spetrea: I shaved my head http://i.imgur.com/MIqkW.jpg [23:53] rpj8 has joined the channel [23:53] rpj8: In jade, when I attempt to use a dynamic helper in a url like so: a(href='../stats/#{session.username}') [23:53] rpj8: the link shows up as http://localhost:3000/stats/#{session.username} [23:53] eventualbuddha: rpj8: double quotes, probably [23:54] rpj8: trie dthat too. [23:54] kmiyashiro: rpj8: is that in the source? [23:54] kmiyashiro: or toolbar [23:54] TooTallNate: href = '../stats/'+session.username [23:54] TooTallNate: ? [23:55] kmiyashiro: oh, yeah that [23:55] rpj8: both [23:55] kmiyashiro: attributes don't need to interpolate or whatever [23:55] kmiyashiro: I think [23:55] rpj8: kmiyashiro: they def. do in script tags [23:55] Shrink has joined the channel [23:55] rpj8: TooTallNate: I'll try that [23:56] rpj8: TooTallNate: works [23:56] rpj8: thank you! [23:56] rpj8: kinda dumb of me not to try that. [23:56] TooTallNate: :) np