[00:00] dimroc has joined the channel [00:01] JaKWaC has joined the channel [00:01] AvianFlu has joined the channel [00:01] ttpva has joined the channel [00:04] Mohnish: CAN SOMEONE HELP ME WITH NODE CHAT CODE [00:04] Mohnish: PLEASE [00:04] Mohnish: CAN SOMEONE HELP ME WITH NODE CHAT CODE [00:04] Mohnish: CAN SOMEONE HELP ME WITH NODE CHAT CODE [00:04] Mohnish: CAN SOMEONE HELP ME WITH NODE CHAT CODE [00:04] Mohnish: CAN SOMEONE HELP ME WITH NODE CHAT CODE [00:04] jesusabdullah: Mohnish: [00:04] Mohnish: CAN SOMEONE HELP ME WITH NODE CHAT CODE [00:04] Mohnish: CAN SOMEONE HELP ME WITH NODE CHAT CODE [00:04] jesusabdullah: stop that right now. [00:04] Mohnish: Yeah [00:04] Mohnish: sorry [00:04] jesusabdullah: ಠ_ಠ [00:04] aaronblohowiak: ./ignore Monish [00:04] Mohnish: sorry [00:04] jesusabdullah: What do you want to know? [00:05] Mohnish: First off all I thought [00:05] jesusabdullah: I mean, I won't tell you how to write a chat app [00:05] Mohnish: nobody was alive [00:05] jesusabdullah: but I can give you hints depending on what questions you have [00:05] Mohnish: Exactly, I just want someone to [00:05] Mohnish: explain the query method [00:05] JaKWaC has joined the channel [00:05] Lingerance: ACTION was reading node-chat for an answer, not helping out of principle now. [00:05] Mohnish: in the Node chat [00:05] mandric has joined the channel [00:06] jesusabdullah: node-chat? [00:06] jesusabdullah: I'm not aware of this project [00:06] jesusabdullah: link? [00:06] Mohnish: Yeah, the one written by Ryan Dahl [00:06] Mohnish: https://github.com/mohnish/node_chat/blob/master/server.js#L55 [00:06] Mohnish: I have provided the exact line number in the link too. [00:06] replore_ has joined the channel [00:06] replore has joined the channel [00:07] r04r: call function, get back all messages since timestamp. What is the problem? [00:09] Mohnish: if (matching.length != 0) { callback(matching); } else { callbacks.push({ timestamp: new Date(), callback: callback }); } [00:09] Mohnish: What does that code do [00:09] Mohnish: 63 to 67 [00:10] r04r: checks if any of the messages passed the if in the for loop above, if so it calls the callback function with that array of messages, if not it pushes the callback function on a callback stack to maybe be handled later [00:10] blaenk has joined the channel [00:10] blaenk has joined the channel [00:10] joshkehn has joined the channel [00:11] joshkehn has left the channel [00:14] joshkehn has joined the channel [00:15] bwinton has joined the channel [00:15] joshkehn has left the channel [00:15] bluezjuice has joined the channel [00:15] Nuck: Anyone know when the next round of TPs is coming? [00:16] rootslab has left the channel [00:17] JakeyChan has joined the channel [00:18] ceej has joined the channel [00:19] mediacoder has joined the channel [00:20] julioj has joined the channel [00:20] mikeal has joined the channel [00:22] aaronblohowiak: Nuck: TPs? [00:22] CarterL has joined the channel [00:22] Nuck: TouchPads [00:23] aaronblohowiak: oh, sorry, dunn [00:23] aaronblohowiak: o [00:23] paul_k has joined the channel [00:25] JakeyChan_ has joined the channel [00:25] joshkehn has joined the channel [00:29] aguynamedben has joined the channel [00:29] saikat has joined the channel [00:29] julioj has joined the channel [00:30] ecin has joined the channel [00:30] mikeric has joined the channel [00:30] joshkehn has joined the channel [00:31] davidascher has joined the channel [00:31] Dulak has joined the channel [00:32] ttpva has joined the channel [00:32] julioj: hello everyone! [00:33] dynacker: HI [00:35] smtlaissezfaire_ has joined the channel [00:37] japerry has joined the channel [00:38] Brandon_R has joined the channel [00:38] Brandon_R: hello guys [00:38] Brandon_R: what's up [00:38] dynacker: yo [00:38] netlemur has joined the channel [00:39] kenperkins has joined the channel [00:39] AphelionZ has joined the channel [00:39] pixel13 has joined the channel [00:40] joshthecoder has joined the channel [00:40] AphelionZ: Is there a way to spoof the node version number of ignore the version dependency? I'm running 5.5-pre and I dont want to downgrade to 0.4.x to npm install stuff like express [00:41] SubStack: I wish [00:42] AphelionZ: ha, shit [00:42] ryanrolds_w: Does npm install file.tar.gz not work? [00:42] AphelionZ: I'll try it [00:42] ryanrolds_w: Do you have npm installed? [00:42] AphelionZ: yeah [00:43] ryanrolds_w: Worst case would be untaring the package, editing the package.json to allow >= 0.5.0 and retar gz it. [00:43] ryanrolds_w: Just be aware that if they say they wont work with 0.5.0 you will probably run in to problems trying to use the module. [00:43] AphelionZ: that's an option… [00:44] pixel13 has left the channel [00:44] DrMcKay: of course there is [00:44] DrMcKay: npm install --node-version 0.4.12 [00:45] DrMcKay: npm install --node-version 0.4.12 [00:45] jmoyers has joined the channel [00:45] DrMcKay: AphelionZ: ^ [00:45] DrMcKay: SubStack: ^ [00:45] joshkehn has left the channel [00:45] SubStack: :o [00:45] Aphelion: o hai [00:45] SubStack: DrMcKay++ [00:45] v8bot_: SubStack has given a beer to DrMcKay. DrMcKay now has 1 beers. [00:45] davidbanham has joined the channel [00:45] AphelionZ: ah, well there we go! hello Aphelion *grumbles* [00:45] Aphelion: lol [00:46] Aphelion: ACTION wins again [00:46] AphelionZ: one day… one day [00:46] AphelionZ: thanks DrMcKay [00:46] DrMcKay: :) [00:46] ryanrolds_w: Nice, I was't aware of that switch. [00:47] AphelionZ: worked like a charm [00:47] k1ttty has joined the channel [00:47] netlemur: is it possible to automatically generate a package.json with the correct dependencies from the node_modules folder? [00:47] Aphelion: hey, i need to win sometimes. AphelionZ - i'm currently stuck in an endless loop of not-winning. HFS+, mac, and realpath() insanity. did you know that realpath() doesn't always return a result of the same case as the actual filesystem representation? >_< [00:48] joshkehn has joined the channel [00:48] Brandon_R: what's up [00:48] Brandon_R: i have a question about node include paths [00:48] AphelionZ: haha are you kidding me [00:48] Aphelion: AphelionZ: it also strips a subset of unicode characters on HFS+, but not case-sensitive HFSX. [00:48] joshkehn has left the channel [00:49] AphelionZ: jesus [00:49] chance- has joined the channel [00:49] Aphelion: AphelionZ: i have a long-running bug on github that's been there since march since everyone who sees the bug just has to rename the folder to a different case and back to fix it. so i never get to the root cause. [00:50] JakeyChan has joined the channel [00:50] neoesque has joined the channel [00:50] Aphelion: fuck HFS. hard. [00:51] AphelionZ: how deep is that bug? that sounds like some low level nonsense [00:51] mattkime has joined the channel [00:51] siculars has joined the channel [00:51] Aphelion: AphelionZ: https://github.com/thibaudgg/rb-fsevent/issues/10#issuecomment-2231959 [00:52] mattkime: i'm just getting started with nodejs and curious if anyone has a simple routing solution [00:52] AphelionZ: yeesh [00:52] mattkime: if a url matches a file in a dir then i want to serve it, if not, try another dir [00:52] ttpva has joined the channel [00:53] jonrohan has joined the channel [00:54] Brandon_R: routing solution? i would try out one of the main frameworks [00:54] raja has joined the channel [00:54] Brandon_R: express seems to be the best atm [00:54] CIA-109: node: 03Ryan Dahl 07v0.4 * rdea49e3 10/ (lib/net.js test/simple/test-net-write-callbacks.js): [00:54] CIA-109: node: net: Fix string-concat hot path bug [00:54] CIA-109: node: Also removes functionality added in f9fec3a2d65580b7e39edc9afd5904cd4775c87c [00:54] CIA-109: node: because it changes API. (That patch shouldn't have been added anyway.) - http://git.io/_Na0kA [00:54] nerdy_ has joined the channel [00:55] navaru has left the channel [00:55] mattkime: i took a look at express and was hoping to find something simpler [00:56] MUILTFN has joined the channel [00:56] tokuzfunpi has joined the channel [00:57] pixel131 has joined the channel [00:57] Brandon_R: which is more high performance [00:57] nerdfiles1 has joined the channel [00:57] Brandon_R: nodejs or php [00:57] nerdfiles1 has left the channel [00:58] pixel131 has left the channel [00:59] raja_ has joined the channel [01:01] dimroc: hahaha [01:01] dimroc: that's good [01:01] skiz_ has joined the channel [01:01] dimroc: he left [01:01] JaKWaC has joined the channel [01:02] helupplz has joined the channel [01:04] raja has joined the channel [01:04] fattytuna has joined the channel [01:08] Peniar has joined the channel [01:09] ttpva has joined the channel [01:10] ji0n has joined the channel [01:11] jj0hns0n_ has joined the channel [01:12] Peniar has joined the channel [01:12] Isaiah has joined the channel [01:16] abraxas has joined the channel [01:16] joshkehn has joined the channel [01:17] joshkehn has left the channel [01:17] chance- has joined the channel [01:17] jimt_ has joined the channel [01:20] brianseeders has joined the channel [01:21] willwhite has joined the channel [01:21] bwinton has joined the channel [01:23] dibber has joined the channel [01:25] dibber has left the channel [01:26] BillyBreen has joined the channel [01:26] defunctzombie has joined the channel [01:27] defunctzombie: Trying out the latest node.js master I see that udp addMembership is not supported [01:27] defunctzombie: with a comment that it may never be supported by libuv [01:27] defunctzombie: does this mean it will never be supported? [01:27] defunctzombie: in the future, how would one do multicast in node? [01:27] defunctzombie: legacy mode? [01:27] bnoordhuis: defunctzombie: we'll probably add it some time in the future [01:28] bnoordhuis: but it's not high priority [01:28] defunctzombie: do you not think it is an issue that it will break anyone using multicast? [01:28] alexeypro_ has joined the channel [01:28] defunctzombie: they will be completely unable to upgrade to the new node versions as it will not even be supported through alternative apis? [01:29] davidascher has joined the channel [01:30] jzkunlun has joined the channel [01:31] sam350 has joined the channel [01:31] bnoordhuis: defunctzombie: i did an informal poll on the mailing list before ripping it out [01:31] bnoordhuis: there aren't that many users right now [01:33] RichardBronosky has joined the channel [01:34] vipaca has joined the channel [01:34] vipaca has joined the channel [01:34] defunctzombie: bnoordhuis: don't you think that 1) misses the uses that aren't on the list and 2) completely leaves anyone using in the dark for upgrading? [01:35] defunctzombie: do you think it will be back before 0.6? [01:35] defunctzombie: or is it just going to be left out altogether? [01:35] bnoordhuis: defunctzombie: before 0.6? hmm, maybe [01:35] Daegalus: I personally think Mailing lists need to not be used for polling, the vast majority of users dont use mailing lists, and I think Mailing lists really need to be phased out of modern day community [01:35] defunctzombie: the only reason I bring up the issue is because I use multicast [01:36] defunctzombie: and now node is no longer an option for me [01:36] defunctzombie: which is a big problem for me because everything I have is written in node [01:36] julioj has joined the channel [01:36] Daegalus: wait, multicast is gone? [01:36] defunctzombie: and if it can't do multicast [01:36] defunctzombie: then that is a serious stopper [01:36] bnoordhuis: defunctzombie: so don't upgrade t0 0.6 just yet [01:36] defunctzombie: Daegalus: us [01:36] bnoordhuis: *to [01:37] defunctzombie: but it sounds like it isn't even in the plans to put it back [01:37] raja: What is the ~ expected release for 0.6 [01:37] chance- has joined the channel [01:37] Daegalus: Well, I hope its back before 6.0, because I rely on Multicast too [01:37] Daegalus: err 0.6 [01:37] briandh has joined the channel [01:37] bnoordhuis: defunctzombie: re-read what i said [01:37] defunctzombie: (I would also like to point out that without multicast, it makes it much harder to test new node versions for other bugs) [01:37] guidocalvano has joined the channel [01:37] jzkunlun: Recently, I tried to compile node.js on RedHat Linux 4. It failed. I searched web. The solution is i have to use gcc 4.x (gc 3.x is current version). I successfully compiled gcc 4.x (including new libmpc.so and libgmc.so) and installed them on my home directory. Then i built node.js. This time, it failed with not finding libmpc.so. I did configure LD_LIBRARY_PATH to add my newly built lib directory. For some reason, Scons stripped [01:38] defunctzombie: defunctzombie: before 0.6? hmm, maybe [01:38] defunctzombie: that is what I read [01:38] defunctzombie: and it seemed uncertain to me :) [01:38] Lingerance: jzkunlun: "For some reason, Scons stripped" <-- message cut [01:39] defunctzombie: is there something I can do to get multicast back? I can help with that aspect of development if there is a lack of manpower for the support? [01:39] defunctzombie: note, that I am only interested in mac/linux support for it tho [01:39] defunctzombie: and have no way to test windows support [01:39] bnoordhuis: defunctzombie: we accept libuv patches but they need to work on all supported platforms [01:40] defunctzombie: I just don't see why such a feature is turned off instead of routed to the legacy system? [01:40] jzkunlun: Scons stripped my LD_LIBRARY_PATH. It caused node.js build failure. If i manually run any compiling command, it was successful. Any idea? Thanks, [01:40] bnoordhuis: defunctzombie: because the legacy infrastructure is getting gutted whole [01:40] defunctzombie: and if someone wishes to contribute but does not do windows development? [01:40] defunctzombie: will the patch be rejected? [01:40] defunctzombie: or can the support be added back in parts? [01:41] bnoordhuis: defunctzombie: hmm, maybe - depends on the quality of the patch [01:41] defunctzombie: well, I think that is really the only way you will get patches from people, cause I will never submit a windows patch [01:41] defunctzombie: however I will gladly make a posix support patch [01:42] luke` has joined the channel [01:42] jaf0 has joined the channel [01:42] DrMcKay: defunctzombie++ [01:42] v8bot_: DrMcKay has given a beer to defunctzombie. defunctzombie now has 1 beers. [01:42] bnoordhuis: defunctzombie: i'll let you in on a little secret [01:42] bnoordhuis: we get more patches than we know what to do with [01:43] defunctzombie: I believe you [01:43] DrMcKay: requiring people who never written line of Windows code to add Windows support to their patch seems insane [01:43] skm has joined the channel [01:43] defunctzombie: but do you always get patches for all OSes from the same person? [01:43] netlemur: DrMcKay: Windows support seams insane. [01:43] defunctzombie: I am basically saying that I think the support should be added back as was available in posix [01:43] DrMcKay: lulz [01:43] defunctzombie: and when the windows people catch up [01:43] defunctzombie: then add it for them [01:43] d0k_ has joined the channel [01:44] defunctzombie: but don't screw over your other users to attempt to support another platform :) [01:44] defunctzombie: I am all about the legacy rework and think it is great [01:44] chance-: how is that screwing over other users though? [01:44] defunctzombie: just was a bit sad to see the comment about multicast and whether it would ever be supported in libuv [01:44] netlemur: did Microsoft pay Joyent money? [01:44] blaenk has joined the channel [01:44] defunctzombie: they gave support (from what I know) which is very good [01:45] chance-: netlemur: pretty sure ms contributed financially for windows support [01:45] blaenk has joined the channel [01:45] defunctzombie: and nothing can detract from that [01:45] heavensgate has joined the channel [01:45] DrMcKay: yeah, this support surprised me, but it's a great +1 for them [01:46] chance-: why was it surprising? they support jquery too [01:46] heavensgate: wheres the regular java channel? [01:46] darinc has joined the channel [01:46] heavensgate: i dont want to code on top of Dahls LLC [01:46] heavensgate: His websites lied to me and pissed me off lastnight [01:46] MooGoo: ##javascript [01:46] MooGoo: go there and ask your java questions [01:47] heavensgate: with that hip california talk [01:48] chance- has left the channel [01:48] chance- has joined the channel [01:48] skyl has joined the channel [01:48] icewhite has joined the channel [01:49] skyl: is there a way to pop out into node console from within a script during runtime? [01:49] DrMcKay: !doc link repl [01:49] dmkbot1: http://nodejs.org/docs/latest/api/repl.html [01:49] Wa has joined the channel [01:49] DrMcKay: skyl: ^ [01:50] RichardBronosky: I'm trying to do a regex match in node.js (yeah I know I'm reaching with that one but everyone is asleep in #regex) [01:50] RichardBronosky: solve pattern for m="qw as zx er df cv ty gh bn ui jk op".match(pattern); where m[0]="qw as zx er df" && m[1]="cv ty gh bn ui" && m[2]="jk op" [01:50] bnoordhuis: defunctzombie: anyway, feel free to submit a patch [01:50] bnoordhuis: defunctzombie: but like i said, it should be of good quality so it doesn't become a pain to implement on other platforms [01:50] jonrohan has joined the channel [01:51] maeldur has joined the channel [01:51] chance-: bnoordhuis - tt [01:51] chance-: woops [01:51] skyl: thanks DrMcKay [01:51] davidascher has joined the channel [01:51] chance-: that doesnt seem like too much to ask, having versions out of synch would be a nightmare [01:52] sdwrage has joined the channel [01:53] gxdssoft has joined the channel [01:54] defunctzombie: is the solution in the meantime to use the legacy module? [01:54] defunctzombie: require ('dgram_legacy') ? [01:55] Lingerance: RichardBronosky: That looks like a homework question. But you might want to look into what {,5} means. [01:55] RichardBronosky: not homework http://www.linkedin.com/in/richardbronosky [01:56] RichardBronosky: Lingerance I've been using {1,5} but it doesn't give me multiple matches [01:57] bnoordhuis: defunctzombie: yes, but everything legacy will be removed before 0.6.0 [01:57] RichardBronosky: I've even tried various levels of nesting () and using (?: to avoid back references on the supporting groups. [01:58] Lingerance: RichardBronosky: What do you have for the regex so far? [01:58] heavensgate has left the channel [01:58] zmbmartin has joined the channel [01:59] chance-: someone has to have solved this already: mongoose validation message to field pairing…? :| [01:59] shipit has joined the channel [01:59] RichardBronosky: /(([a-z]+ {0,1}){1,5})+/ grabs the last 5 [02:00] RichardBronosky: /(([a-z]+ {0,1}){1,5})+?/ grabs the first 5 [02:00] Lingerance: https://gist.github.com/1249804 [02:01] socialhack has joined the channel [02:01] a_suenami has joined the channel [02:01] defunctzombie: bnoordhuis: can I just add back support for addMembership and dropMembership ? [02:02] defunctzombie: and call out to uv_udp_add_membership ... etc? [02:02] defunctzombie: like other things do? [02:02] defunctzombie: and then it can be implemented on the desired platform? [02:02] defunctzombie: it is similar in windows [02:02] defunctzombie: I am looking at the code now and shouldn't be a problem [02:03] bnoordhuis: defunctzombie: yes [02:03] RichardBronosky: Lingerance that looks really good! [02:03] RichardBronosky: I'm trying it out on my more complex dataset now. [02:03] bnoordhuis: defunctzombie: lest i forget, it should have libuv tests [02:04] defunctzombie: k [02:07] mike5w3c_ has joined the channel [02:07] neilk_ has left the channel [02:07] trotter has joined the channel [02:07] konobi: RichardBronosky: easier with a g modifier [02:07] skiz has joined the channel [02:08] RichardBronosky: yes, I needed the /g [02:08] racar has joined the channel [02:08] RichardBronosky: it's SO SIMPLE! Using /g I can't even make it fail. [02:10] liveink has joined the channel [02:10] RichardBronosky: it can be done as simply as: /([a-z]+ ?){1,5}/g [02:11] mjr_: So this OSX Lion "Network Link Conditioner" is really handy for testing node streams. [02:12] ditesh|cassini has joined the channel [02:12] jslatts has joined the channel [02:13] RichardBronosky: mjr_ tell more [02:14] liveink_ has joined the channel [02:14] joshkehn has joined the channel [02:14] joshkehn has left the channel [02:15] AphelionZ: which of the functions here do I use to create a crypt(3) password for a htpasswd file? http://nodejs.org/docs/v0.5.5/api/crypto.html [02:16] RichardBronosky: nevermind, I quick google showed me how little the tool does. [02:16] jaequery has joined the channel [02:17] RichardBronosky: mjr_, was hoping for something a little more Charles or Little Snitch like [02:17] bnoordhuis: Aphelion: crypto.createCipher [02:17] Aphelion: ... [02:17] bnoordhuis: sorry, AphelionZ [02:17] Aphelion: maybe i should change nicks while in this channel =] [02:18] AphelionZ: bnoordhuis: thanks! [02:18] murilobr has joined the channel [02:18] AphelionZ: actually sorry bnoordhuis which algorithm should I enter [02:19] hermanjunge has joined the channel [02:19] jakehow has joined the channel [02:19] bnoordhuis: AphelionZ: depends, probably DES [02:20] AphelionZ: just looking for the same thing that the htpasswd command line tool uses [02:20] ttilley: <_< [02:21] AphelionZ: aww [02:21] bnoordhuis: AphelionZ: i think htpasswd defaults to md5 or sha1? [02:22] ShonM has joined the channel [02:22] vidi has joined the channel [02:22] AphelionZ: kk it detaults to that but i need crypt for INN haha [02:22] AphelionZ: I'm doing a node.js NNTP thing, like an idiot [02:23] te-brian2 has joined the channel [02:23] bnoordhuis: AphelionZ: okay... well, traditional crypt uses plain DES [02:23] AphelionZ: ok cool [02:25] dominictarr has joined the channel [02:25] davidascher has joined the channel [02:28] ditesh has joined the channel [02:28] ron_frown has joined the channel [02:29] willwhite has joined the channel [02:30] a_suenam_ has joined the channel [02:30] thepatr1ck has joined the channel [02:32] alexeypro has joined the channel [02:34] stelcheck has joined the channel [02:37] smtlaissezfaire_ has joined the channel [02:39] jmoyers has joined the channel [02:39] davidascher has joined the channel [02:40] edenli has left the channel [02:41] bartt has joined the channel [02:42] igl has joined the channel [02:42] AvianFlu has joined the channel [02:43] ryanmcgrath has joined the channel [02:44] softdrink has joined the channel [02:44] amigojapan has joined the channel [02:45] chance- has joined the channel [02:46] lmorchard has joined the channel [02:47] devongovett has joined the channel [02:48] spathi^ has joined the channel [02:50] zeade has joined the channel [02:51] tilgovi has joined the channel [02:51] tilgovi has joined the channel [02:52] CIA-109: node: 03Ben Noordhuis 07master * rfa44659 10/ test/common.js : test: fix typo in error message - http://git.io/M_OF1w [02:54] mike5w3c has joined the channel [02:55] AphelionZ: this is so weird - sorry to keep bugging you about this but im really close [02:55] chance- has joined the channel [02:55] Vennril2 has joined the channel [02:55] pyrotechnick has joined the channel [02:55] AphelionZ: crypto.createCipher("des", password) returns an empty object {} [02:55] pyrotechnick: isaacs around? [02:56] AphelionZ: anybody know why? [02:56] broofa has joined the channel [02:56] vipaca has joined the channel [02:58] neilk_ has joined the channel [02:58] metellus has joined the channel [02:59] AphelionZ: ahh here we go [02:59] AphelionZ: http://stackoverflow.com/questions/5977865/whats-wrong-with-this-simple-nodejs-crypto-function [03:00] marcello3d has joined the channel [03:02] icewhite has joined the channel [03:03] luke`_ has joined the channel [03:03] jonrohan has joined the channel [03:03] icewhite has joined the channel [03:06] icewhite has joined the channel [03:06] rbriggin has joined the channel [03:08] dshaw_ has joined the channel [03:11] pongwon has joined the channel [03:13] mikeric_ has joined the channel [03:14] aguynamedben has joined the channel [03:15] secoif_ has joined the channel [03:15] rfay has joined the channel [03:17] sethuhdiah has joined the channel [03:18] jtsnow has joined the channel [03:22] pyrotechnick has joined the channel [03:22] TooTallNate has joined the channel [03:22] darinc has left the channel [03:25] sam350 has joined the channel [03:27] Dulak has joined the channel [03:28] temp01 has joined the channel [03:29] abraxas: Using node-http-proxy, does anyone know if it's possible to relay a request directly to an http server, _without_ going through a socket? just passing the requests on to the server within the same process... [03:30] AvianFlu: abraxas, UNIX sockets [03:30] AvianFlu: apparently you can pass something like ':/tmp/myunixsocket.sock' as a path to use [03:31] abraxas: right [03:31] abraxas: but you can't just call a function to pass the http request object? [03:31] smtlaissezfaire_ has joined the channel [03:31] shirro has joined the channel [03:32] AvianFlu: abraxas, you could make or use a middleware [03:32] AvianFlu: but I'm not really sure what you need to do [03:32] AvianFlu: unix sockets are way faster than localhost TCP sockets [03:33] abraxas: right, i prefer unix over tcp [03:33] abraxas: but if i could just say proxy.sendTo(myHttpServer), not using any sockets, that would be fastest i guess [03:34] AvianFlu: that's not really proxying, though, why not just serve the requests at that point? [03:34] abraxas: my setup is a proxy running in a cluster-master, that sometimes passed an http request to a cluster-worker [03:34] AvianFlu: I may just be misunderstanding [03:34] abraxas: that's what I'm trying to achieve [03:34] AvianFlu: aren't cluster workers separate processes? [03:34] abraxas: yes [03:34] cognominal has joined the channel [03:35] AvianFlu: I think unix sockets are your best bet [03:35] vipaca has joined the channel [03:35] vipaca has joined the channel [03:35] AvianFlu: http://github.com/nodejitsu/node-http-proxy/issues/104 has some info [03:35] abraxas: I've read that issue. [03:35] AvianFlu: the info there is relative to the 0.6.x API, though, you'll want to use the RoutingProxy constructor as of 0.7.x [03:35] abraxas: okay [03:35] jackbean has joined the channel [03:36] AvianFlu: as I understand things, unix sockets are your best choice here [03:36] bayashi_ has joined the channel [03:36] abraxas: right, i understand [03:36] abraxas: i just fear i'll have to pipe through 2 sockets to achieve all this [03:37] Spion has joined the channel [03:37] AvianFlu: I want to say they're bidirectional as it is [03:37] abraxas: the thing with cluster is, the httpServer object exists in the master process.. when the master receives an http request, it passes the file descriptor of the client on to a worker process, so it can deal with it. [03:37] abraxas: that's how i understand it. [03:37] AvianFlu: but I haven't gotten around to messing with this much [03:37] abraxas: it passed that fd through a unix socket [03:37] abraxas: if i also need a unix socket, simply for the master process to talk to itself…….. seems a bit pointless? [03:37] bayashi_ has left the channel [03:37] e6nian has joined the channel [03:37] AvianFlu: cluster is already doing what I was telling you to do, based on what you said [03:38] abraxas: maybe I'm not getting it yet.. [03:38] abraxas: right, except for (if i'm not mistaken), you cannot intercept the request on the master and decide to deal with it there [03:39] AvianFlu: I think I had your question backwards [03:39] zeade has joined the channel [03:39] AvianFlu: you want to keep the request in the master sometimes instead of sending it to a child, you're saying? [03:39] abraxas: exactly [03:39] bradleymeck has joined the channel [03:40] AvianFlu: yeah, my bad, I was thinking about it in reverse [03:40] AvianFlu: you totally want a middleware [03:40] abraxas: as far as i know, cluster doesn't allow me to do that, so I figured I'd create a proxy that relays to the cluster's http server. [03:40] AvianFlu: yeah, that's not a bad idea [03:40] AphelionZ: anybody have a cool function or library or any ideas for cleaning input for cli use? [03:40] abraxas: (i am the middleware ;)) [03:40] avalanche123 has joined the channel [03:40] AvianFlu: AphelionZ, what do you mean specifically by "cleaning input" [03:40] AphelionZ: well, like i already stripped semicolons out to avoid any "; rm -rf /" nonsense [03:40] AvianFlu: abraxas or a routing proxy [03:41] e6nian: who use browserify here? what's the best practise to load jquery cdn ? [03:41] bradleymeck: aphelionz throw them into a chroot? [03:41] AphelionZ: that.. seems excessive [03:41] AphelionZ: also hard [03:41] AvianFlu: abraxas, look at the RoutingProxy API and set two endpoints, one for your cluster and one for "deal with this locally" [03:41] abraxas: okay, i will [03:41] AvianFlu: depending on how you want to sort things out [03:41] abraxas: thanks [03:41] AvianFlu: there's also http://github.com/dominictarr/proxy-by-url [03:42] abraxas: the distinction is probably path based [03:42] abraxas: path / method combo [03:42] abraxas: (but i can live with just path) [03:42] AvianFlu: proxy-by-url would be an ez-mode way to do it, but be advised nobody has used it for very much yet [03:42] abraxas: right [03:42] abraxas: i do need something stable that performs well [03:42] AvianFlu: (it was written because people ask us how to proxy like that all the time) [03:43] abraxas: so node-http-proxy seems like a safe bet to me [03:43] abraxas: right [03:43] AvianFlu: the proxy-by-url code is small, though, you could easily just "get the idea" from it, too [03:43] abustin has joined the channel [03:43] abraxas: got it, looking at it now :) [03:43] bradleymeck: anyone in node-core know the reason symstr is calculated off the path of a shared library rather than a simple name w/o the path involved? [03:43] paul_k has joined the channel [03:44] bradleymeck: dlsym's argument ^ [03:44] devaholic has joined the channel [03:44] davidbanham has joined the channel [03:45] abraxas: but in any case, if i do a "sometimes respond, sometimes proxy" setup, the actual proxying, even if to an http server within the same process, will have to go through a socket? [03:45] pyrotechnick has left the channel [03:45] abraxas: if anything, it may be a shortcoming of cluster, i guess [03:46] abraxas: but yeah, the master process in cluster doesn't actually use an httpserver.. just a net binding [03:46] abraxas: that directly defers the tcp request to a worker [03:46] abraxas: so there's no way to intelligently hook into that and deal with an http request [03:46] icewhite has joined the channel [03:47] AvianFlu: abraxas, no [03:48] AvianFlu: if you wanted to, you could make a middleware with an http server [03:48] abraxas: i do wonder if my http proxy would be able to just directly proxy to cluster's existing socket, or if i need to create a new one [03:48] AvianFlu: or that called one you made [03:48] AvianFlu: could potentially use the same [03:48] AvianFlu: but I can't say for sure [03:48] abraxas: that would be sweet [03:48] abraxas: i'll try it [03:49] tjgillies: im trying to checkout e80987980e1de73f0f4b8624ce4238de8438a73d [03:49] tjgillies: but it doesn't seem to exist [03:49] tjgillies: but i see https://github.com/joyent/node/commit/e80987980e1de73f0f4b8624ce4238de8438a73d [03:49] abraxas: then cluster's master code would never be deferring any requests… the proxy would be doing it... interesting [03:50] skiz has joined the channel [03:52] mbrevoort has joined the channel [03:54] smathy has joined the channel [03:54] mike5w3c has joined the channel [03:54] skiz has joined the channel [03:57] anoop has joined the channel [03:59] icewhite has joined the channel [04:00] boehm has joined the channel [04:01] abraxas has joined the channel [04:02] overra_ has joined the channel [04:02] icewhite_ has joined the channel [04:02] JaKWaC has joined the channel [04:03] superjudge has joined the channel [04:04] abraxas: AvianFlu: i have a meeting now, but will get back to you to let you know how that worked out [04:04] AvianFlu: cool, I'm definitely curious how that works out [04:05] abraxas: for now a bit puzzled tho how i refer to unix sockets in proxyRequest() [04:06] AvianFlu: there are several different endpoints in the http-proxy API [04:06] AvianFlu: entry points, rather [04:07] AvianFlu: the way this looks to me, you'd make a new RoutingProxy [04:07] AvianFlu: there should be examples in the readme [04:07] abraxas: but not with unix sockets, right? [04:07] AvianFlu: well then you'd use that guy's object literal syntax [04:07] fairwinds: gmorning. am sort of tempted to use a couple of globals. Am passing in param with optimist but need values in other modules. Anyone with better idea? [04:07] AvianFlu: 'localhost': ':/some/socket.sock' [04:08] AvianFlu: fairwinds, pass them as function arguments? assign them as object properties? [04:09] rev087ipad has joined the channel [04:10] harthur has joined the channel [04:12] ShonM has left the channel [04:12] fairwinds: AvianFlu: yeah have been thinking this out a bit. I have my controllers in separate modules so looking for a clean way of getting the args to each controller module [04:13] amigojapan has joined the channel [04:13] AvianFlu: there are a bunch of different ways to handle it [04:13] AvianFlu: globals won't kill you, per se [04:13] AvianFlu: you just better be damn sure you can stand to have one of the var for everybody [04:13] mike5w3c has joined the channel [04:13] vipaca has joined the channel [04:13] fairwinds: heh [04:13] AvianFlu: if two places need to be in different states, it can really screw you sometimes [04:13] fairwinds: right [04:14] fairwinds: I am not keen on globals generally [04:14] AvianFlu: if you know what a noose is, you can drag some firewood with one without it getting caught around your neck, it's true :) [04:15] AvianFlu: you should consider setting up the scope in such a way that things are visible where they need to be [04:15] fairwinds: hehe [04:15] paul_k has joined the channel [04:15] AvianFlu: maybe set up an object prototype [04:15] AvianFlu: so everybody has access to this.whatever [04:15] isaacs has joined the channel [04:17] fairwinds: yeah. I am passing params to server.js on startup so it set ports dynamically [04:18] Nuck: Okay, so, Redis. [04:18] Nuck: Somebody explain how database design works in this [04:18] fairwinds: Nuck: Redis is just simple key value store. [04:19] fairwinds: set a value using a key, get it back [04:19] fairwinds: you can play with in using telnet [04:19] Nuck: Aye, but like, I want key => Object [04:20] joshkehn has joined the channel [04:20] Nuck: And then two of the fields on Object are arrays [04:20] joshkehn has left the channel [04:20] Nuck: I'm not sure how to do this on Redis [04:22] AAA_awright: I'm not sure you d [04:22] AAA_awright: *do [04:22] AAA_awright: Nuck: http://redis.io/topics/data-types#lists [04:22] Nuck: AAA_awright: Do what? [04:23] warreng has joined the channel [04:24] warreng: if i use mysql (via require('db-mysql')) will it auto-reconnect if the db connection drops? [04:24] AAA_awright: Also "Redis Sets are an unordered collection of Strings. It is possible to add, remove, and test for existence of members in O(1)" How, unless that's a very large O [04:24] warreng: more specifically, how do i build a long-running daemon in node.js that uses mysql? [04:25] AAA_awright: Which mysql is this exactly? [04:25] nerdy_ has joined the channel [04:26] Skyec: does anybody have any suggestions for a nodejs cookie module thats NOT "cookie"? [04:26] AAA_awright: ... Don't use cookies? [04:26] fairwinds: AvianFlu: figured something out. [04:26] CarterL has joined the channel [04:26] AAA_awright: Uh [04:27] AAA_awright: Skyec: I've never needed to use a library to manipulate cookies, reading the headers is sufficent [04:27] Skyec: AAA_awright: that's not up to me. I'm connecting to a service [04:28] Skyec: yeah, i was just trying to not re-invent the wheel. Unfortunately the "cookie" module is set that its the "server" and doesn't cater for reading/setting cookies as a client [04:28] AAA_awright: If you're sending cookies it's even easier, just give back whatever it sends you [04:28] Skyec: i guess i'll just have to do this work myself. no biggie [04:31] ceej has joined the channel [04:32] warreng: do any of the current mysql libs support "reconnecting after server goes away"? [04:33] AAA_awright: warreng: It's never been a problem for anyone I know [04:34] EhevuTov_ has joined the channel [04:34] akujin has joined the channel [04:35] rodasc has joined the channel [04:35] Nuck: Okay, let's say I've got a bunch of items which need to go into redis and each one has a name, two lists, and a namespace. How would I go about this? [04:35] superjudge has joined the channel [04:35] niftylettuce_ has joined the channel [04:35] bingomanatee_ has joined the channel [04:35] thepatr1ck has joined the channel [04:36] shipit has joined the channel [04:36] jsanford has joined the channel [04:37] cying has joined the channel [04:37] kersny has joined the channel [04:37] incredimike has joined the channel [04:37] towski has joined the channel [04:37] gf3 has joined the channel [04:38] azend has joined the channel [04:38] omni5cience has joined the channel [04:38] AAA_awright: I think you're going to outgrow Redis [04:38] Guest18468 has joined the channel [04:39] Nuck: AAA_awright: Whyso? [04:39] joshkehn has joined the channel [04:39] Nuck: I need this data to be low-latency and read-heavy [04:39] AAA_awright: Maybe name-lista name-listb are two lists [04:39] fdmanana has joined the channel [04:39] AAA_awright: And what's the namespace? [04:39] paul_k has joined the channel [04:39] Nuck: AAA_awright: Another string [04:39] joshkehn has left the channel [04:39] AAA_awright: name-namespace -> string [04:40] AAA_awright: and then names -> set of strings [04:40] Nuck: 'name' should be unique within a namespace [04:40] tuhoojabotti: _should_ [04:40] AAA_awright: should or MUST? [04:40] AAA_awright: namespace-names -> set of strings [04:40] Nuck: tuhoojabotti: *will* [04:40] tuhoojabotti: Better. [04:40] Nuck: (but it also needs to be case-insensitive) [04:41] AAA_awright: ns--name--{lista,listb,namespace} [04:41] AAA_awright: You're killing me here [04:41] AAA_awright: Maybe you need an RDF store [04:41] Nuck: I'm using Mongo mostly [04:42] Nuck: But REdis for low-latency high-traffic data [04:42] AAA_awright: That sounds like every other database in existance [04:43] Nuck: heh [04:44] tshpaper has joined the channel [04:44] boehm has joined the channel [04:44] TooTallNate has joined the channel [04:44] blup has joined the channel [04:44] pt_tr has joined the channel [04:44] dmkbot1 has joined the channel [04:44] zorzar has joined the channel [04:44] enhydra has joined the channel [04:44] r04r has joined the channel [04:44] gregmoreno has joined the channel [04:44] sid3k has joined the channel [04:44] ashb has joined the channel [04:44] kraft has joined the channel [04:44] Gruni has joined the channel [04:44] HenryTrollins has joined the channel [04:44] Crshman has joined the channel [04:44] T0aD has joined the channel [04:44] yorick has joined the channel [04:44] khrome has joined the channel [04:44] Marak has joined the channel [04:44] majek has joined the channel [04:44] indutny has joined the channel [04:44] iaincarsberg has joined the channel [04:44] roidrage has joined the channel [04:44] Leonidas has joined the channel [04:44] rook2paw1 has joined the channel [04:44] epsas_ has joined the channel [04:44] mavin|gone has joined the channel [04:44] wereHamster has joined the channel [04:44] eddict has joined the channel [04:44] _sri has joined the channel [04:44] DoNaLd` has joined the channel [04:44] stutter has joined the channel [04:44] Hadaka has joined the channel [04:44] robinduckett has joined the channel [04:44] progrock has joined the channel [04:44] zedas has joined the channel [04:44] ollie has joined the channel [04:44] pzich has joined the channel [04:44] wang has joined the channel [04:44] sstephenson has joined the channel [04:44] a11235 has joined the channel [04:44] xerox has joined the channel [04:44] DrPizza has joined the channel [04:44] mrkurt has joined the channel [04:44] yorick has joined the channel [04:44] wereHamster has joined the channel [04:45] kraft has joined the channel [04:45] isaacs has joined the channel [04:45] racar has joined the channel [04:46] ecin has joined the channel [04:46] MrNibbles has joined the channel [04:47] mquin has joined the channel [04:47] ShonM has joined the channel [04:48] ShonM has left the channel [04:48] petrjanda has joined the channel [04:49] Nuck: AAA_awright: What If I did namespace:lowername:lista => [] and namespace:lowername:listb => [] and namespace:lowername:name? [04:49] Nuck: You think that might work? [04:49] sdwrage has joined the channel [04:49] AAA_awright: Yeah [04:49] maletor has joined the channel [04:50] Nuck: AAA_awright: I know I'm pushing the limits of Redis, it's just I need something memcached-fast [04:50] AAA_awright: Maybe you want a graph database [04:50] saikat has joined the channel [04:51] Nuck: AAA_awright: haha are they fast? [04:51] AAA_awright: If you have a particular query to execute, it should be faster [04:52] jhurliman: does anyone have sample code for parsing the new facebook cookies? they are named fbsr_[appid] instead of fbs_[appid] and are apparently completely undocumented [04:52] Nuck: jhurliman: you hacker you :P [04:53] jhurliman: :-? [04:53] jhurliman: i'm trying to get my service to continue working after the upgrade in 48 hours [04:53] Shrink has joined the channel [04:55] jhurliman: ah, there actually is some documentation: http://developers.facebook.com/docs/authentication/signed_request/ [04:55] rev087ipad has joined the channel [04:58] Shrink has left the channel [04:58] davidascher has joined the channel [05:00] freewil has joined the channel [05:02] jimt has joined the channel [05:03] clarkfischer has joined the channel [05:03] AAA_awright: Nuck: https://groups.google.com/d/topic/nodejs/LiGA8vlhnuw/discussion [05:04] AAA_awright: I seriously wish Google and Twitter would just suck it up and use history.pushState already [05:04] AAA_awright: Hashbangs make me want to murder kittens [05:05] hermanjunge has joined the channel [05:06] isaacs_ has joined the channel [05:15] Nuck: AAA_awright: Hmmmm, I can see quite a few use cases for this >_> [05:15] AAA_awright: You looking at Neo4j? [05:16] Nuck: For now I'll stick to Redis, but I may move to a graph database later [05:16] Nuck: AAA_awright: Yeah, i looks interesting [05:16] AAA_awright: Probably would handle those what-might-you-like-based-on-who-else-likes-what queries [05:18] Spion_ has joined the channel [05:19] Nuck: AAA_awright: It would help, but meh [05:20] k1ttty has joined the channel [05:21] AAA_awright: Nuck: I was also thinking, you shouldn't have to hard code support for "favorite" and "likes", an algorithm that sugguests more things you might favorite or like should be able to select them based on the knowledge that "things in this group (AAA's favorites) tend to also be in these other people's groups (Nuck's Top Picks, Person's Featured Favorites, etc) and so AAA might also like things in those groups" [05:21] Nuck: AAA_awright: haha nope [05:22] Nuck: That gives more weight to discovered artworks [05:22] AAA_awright: Maybe you have a default which is anything in favorites also goes into likes, so you know what deliberately isn't a favorite, an algorithm could give weight to that [05:22] AAA_awright: Nuck: Well compensating for all of that of course [05:22] Nuck: AAA_awright: My algorithm already accounts for that [05:23] Nuck: It puts minimal emphasis on how discovered a piece is [05:23] Nuck: AAA_awright: But there is a very high chance of me moving to Neo4j in the future :P [05:23] AAA_awright: More discovered pieces have more certainty, maybe, but that has nothing to do with the prediction of how much you might like it (or whatever metric you want to return) [05:24] AAA_awright: Right [05:24] Nuck: I'll write migration scripts and cross that road when I come to it :P [05:24] Pilate has joined the channel [05:25] AAA_awright: Anyways my point is there shouldn't be anything intrinsic to the "Favorite" label versus "Likes", if one person swapped their use of the two it shouldn't even notice they're doing it incorrectly, it just goes along [05:25] AAA_awright: Yep [05:25] AAA_awright: Well, why not do that now? [05:25] towski has joined the channel [05:25] AAA_awright: Don't worry about scaling, just make sure you don't paint yourself into a corner [05:25] Nuck: AAA_awright: Stop adding complexity [05:25] Nuck: I'm follow the rule of KISS [05:25] AAA_awright: I think a simple algorithm would already do that [05:26] Nuck: AAA_awright: Switching to neo4j means learning a new technology and restarting [05:26] Nuck: Not happening [05:26] Nuck: As for algorithmic changes, we've got a very simple algorithm we're happy with [05:26] AAA_awright: Nono, I mean, use all MongoDB now, don't worry if it doesn't scale, you can move to Neo4j later [05:26] dynacker: NO WORRY ABOUT SCALE [05:26] Nuck: And which is highly effective (as long as data is quick to access) [05:26] Draggor: go go neo4j [05:27] rev087 has joined the channel [05:27] neo4j has joined the channel [05:27] neo4j: ACTION goes goes [05:28] AAA_awright: ... I am so, sorry :p [05:28] neo4j: ACTION deploys [05:28] OmidRaha has joined the channel [05:28] maeldur has joined the channel [05:28] rev087: I wonder how much commercial licenses cost for either [05:28] neo4j: ACTION sparks, arcs [05:29] AAA_awright: I don't really like the model for quite a lot of databases [05:29] AAA_awright: I'm looking for an RDF store right now and I can't tell what would be a good pick [05:30] AAA_awright: It has to be something lots of people can adopt commercially if they want, freely doing so. Ideally, a public domain database, but those really don't exist [05:30] Nuck: ACTION slaps AAA_awright and tells him to shut up about RDF [05:30] Nuck: Also, MySQL [05:30] AAA_awright: My own app is public domain and it's suprisingly hard to program for, lots of "Free Software" software is not, in fact, free software [05:31] fangel has joined the channel [05:31] rev087: hmm mongodb seem to allow free comercial use [05:31] dynacker: yep [05:31] rev087: neo4j don`t as far as I can tell [05:31] Nuck: rev087: Yeah, they better [05:31] mjr_: You can use sqlite [05:31] Nuck: Another reason not to use neo4j for me :P [05:31] AAA_awright: All the good stuff is AGPL which is absolutely rediculous, I refuse to use AGPL [05:31] Nuck: Mongo++ [05:31] v8bot_: Nuck has given a beer to Mongo. Mongo now has 1 beers. [05:31] Fredderf has joined the channel [05:32] rev087: neo4j-- [05:32] v8bot_: rev087 has taken a beer from neo4j. neo4j now has -1 beers. [05:32] Nuck: ACTION just ignored Karmalicious  [05:32] AAA_awright: Well, I use it, I refuse to recognise it's terms mean anything [05:32] Nuck: NOW SHUT THE FUCK UP >:C [05:32] AAA_awright: neo4j++ [05:32] v8bot_: neo4j is getting too many beers. Don't let neo4j get drunk! [05:32] AAA_awright: wth [05:32] tim_smart has joined the channel [05:32] Nuck: AAA_awright: neo4j is AGPL'd and requires a license for commercial use [05:33] AAA_awright: Someone kick Karmalicious for speaking without being spoken to [05:33] Nuck: AAA_awright: Agreed [05:33] EyePulp has joined the channel [05:33] mjr_: I keep trying to figure out this semantic web stuff every time someone on hacker news mentions RDF, and I still don't get it. [05:34] Nuck: I do Semantic HTML [05:34] Nuck: I do not do "semantic web" [05:34] Gregor has joined the channel [05:34] AAA_awright: mjr_: RDF is a data model used to make statements about resources [05:35] Nuck: AAA_awright: Same can be said for oEmbed [05:35] AAA_awright: All the resources are identified by a globally unique URI, so you can "link" your data like you link webpages [05:35] mjr_: Yeah, I keep reading that, but philosophically, this seems crazy. [05:35] AAA_awright: I'm not sure what oEmbed is for [05:35] jonrohan has joined the channel [05:36] Nuck: AAA_awright: A very different purpose. [05:36] mjr_: It's like the 90's with XML all over again. You can get universal interoperability, come inside we'll show you more. [05:36] Nuck: I was remarking on how vague that "make statements about resources" is [05:36] Nuck: mjr_: haha Inorite [05:36] astrolin has joined the channel [05:36] Nuck: I'll keep my Handlebars. [05:36] dynacker: KEEP YOUR NECK BEARD [05:36] AAA_awright: mjr_: XML is a syntax, DOM is the data model... Likewise, there's multiple formats for RDF like n3, RDF/XML, or JSON encoding [05:37] willwh has joined the channel [05:37] AAA_awright: The difference between DOM and RDF is RDF is globally unique, DOM is contextual, a DOM document could be describing anything, usually something that the processor knows in advance. RDF simply makes statements about stuff. [05:38] bombworm has joined the channel [05:38] losing has joined the channel [05:39] davidascher has joined the channel [05:40] AAA_awright: mjr_: For instance, I could encode details about an upcoming meeting in RDF, send the resource and the facts about it to you, and if you know what a cal:Event is, you can read the statements made about that resource to know the exact location, time, etc [05:40] AAA_awright: Since properties are also defined with URIs, you can make statements about how to use properties [05:41] rev087: do you know of any common use cases for RDF, AAA_awright ? [05:42] mjr_: Thank you for taking the time to explain that. I will try to keep an open mind about something that I know little about. [05:42] AAA_awright: Well I listed one, listing calendar data, locations; you can describe people, user accounts [05:43] rev087: hmm, kinda difficult to wrap my mind around it to be honest [05:43] mjr_: It still kind of seems like solving a problem at a level that has not enough incentive to solve. [05:43] rev087: I mean, I understand the usefulness [05:43] SamuraiJack has joined the channel [05:43] rev087: freebase for instance seem to serve data in RDF: http://rdf.freebase.com/rdf/en/the_lord_of_the_rings [05:43] maletor has joined the channel [05:44] AAA_awright: mjr_: What I'm using it for is just a database to store data in, like an XML database, and generate webpages using that data. Since RDF uses globally unique identifiers, you can store information about anything. And since you can embed RDF data in HTML with RDFa, you can /extract the very same data used to generate the webpage/ very cool stuff [05:45] rev087: sounds cool indeed [05:45] metellus has joined the channel [05:46] jzacsh has joined the channel [05:46] jzacsh has joined the channel [05:47] AAA_awright: rev087: Lots of people make it out to be this giant complex thing, really, it's just a data model (like how DOM is a data model) that makes statements about globally identifiable resources, using URIs. [05:47] tim_smart has joined the channel [05:47] pquerna has joined the channel [05:48] rev087: I see [05:48] Gregor has joined the channel [05:48] AAA_awright: specifically, (subject predicate object) statements, or more informally, (resource property value) [05:49] jhurliman has joined the channel [05:49] Nuck: AAA_awright: So sorta like the object I feed into res.render? [05:50] AAA_awright: You could encode an Object into JSON maybe, but that wouldn't expose the power of RDF [05:50] rurufufuss has joined the channel [05:50] Nuck: AAA_awright: But it's a simialr concept? [05:50] AAA_awright: subject and predicate are URIs, the object is either a URI or a string [05:51] AAA_awright: and the string itself can have a URI type, or a language like "en" [05:51] icewhite has joined the channel [05:51] tjgillies: i can't fins this commit in my cloned source: https://github.com/joyent/node/commit/e80987980e1de73f0f4b8624ce4238de8438a73d [05:51] tjgillies: is it because its in a different branch than master or something? [05:51] Nuck: oh is RDF what Firefox uses for l18n? [05:51] tjgillies: s/fins/find/ [05:52] AAA_awright: Firefox uses RDF but not for anything useful [05:52] amigojapan has joined the channel [05:53] ckpcw has joined the channel [05:53] AAA_awright: I think Mozilla was more like "Hey there's this new standard for conveying data we should use it even though it's [this is 1999 remember] hugely underdeveloped" [05:53] ckpcw has left the channel [05:53] Nuck: AAA_awright: Mozilla wasn't founded until like 2003 [05:53] rev087: pretty much the intended use of namespaced xml I guess >:D [05:53] Nuck: You know that, right? [05:53] AAA_awright: It's been in there for a LONG time [05:54] sub_pop has joined the channel [05:54] AAA_awright: Maybe I'm off by 4 years [05:54] AAA_awright: RDF is cirra 1999 [05:54] Lingerance: Nuck: Mozilla existed before it was founded. [05:54] rev087: var neo4j = require('neo4j'); >:D [05:54] Nuck: Lingerance: heh true [05:55] temp02 has joined the channel [05:55] towski has joined the channel [05:55] gigawatt has joined the channel [05:55] AAA_awright: tjgillies: You might need to add https://github.com/niclashoyer as a remote [05:55] rev087: mr. zuckerberg, prepare to meet your nemesis [05:55] gigawatt: Hey Ryan [05:55] AAA_awright: Or that user, it doesn't look like that commit is pulled yet [05:56] BoiseComputer has joined the channel [05:56] gigawatt: Has anyone worked with Redis in Node ? [05:56] AAA_awright: rev087: So that's my long term goal, develop a p2p network that lets you exchange RDF-formatted messages with your friends, to replace email [05:56] gigawatt: Having some really weird issues [05:56] tjgillies: AAA_awright ⬅ he doesn't have a node repo on his github account :( [05:56] AAA_awright: tjgillies: Huh [05:56] mjr_: gigawatt: what are your issues? [05:57] tjgillies: AAA_awright ⬅ https://github.com/niclashoyer [05:57] tjgillies: no node [05:57] AAA_awright: rev087: And since it's RDF, you can extend your client any way you like, you just have to install the semantics for "This is how to format a tagged photo with friends" or "This is a birthday" or "This is how to format a status update" [05:57] gigawatt: Well, Every now and then we do a HGET on a key we know exists in a hash table, and the result returns null [05:57] CrypticSwarm has joined the channel [05:58] AAA_awright: http://magnode.org/doc/en/ describes all my idea [05:58] mjr_: gigawatt: when you say "return" you mean the callback gets invoked with null as the arg? [05:58] gigawatt: yes [05:58] gigawatt: (null, null) [05:58] AAA_awright: Shamelessly ripped off of some other documentation format [05:58] gigawatt: err, result [05:58] mjr_: gigawatt: OK, it seems like we have some kind of issue with reconnection [05:58] mjr_: what version are you running [05:58] mjr_: of node_redis? [05:58] tjgillies: AAA_awright ⬅ how did you know it wasn't pulled? [05:59] AAA_awright: tjgillies: I can't see what branch it's under [05:59] pgherveou has joined the channel [05:59] AAA_awright: Maybe I'm mis-reading [05:59] mjr_: gigawatt: I've heard this from someone else, or perhaps it was you on github. I'm a bit behind on my node_redis issues. [05:59] BoiseComputer: v0.4.12 [05:59] gigawatt: ^^ thats our node [05:59] BoiseComputer: redis_version:2.2.12 [05:59] gigawatt: i reported an issue with Socket.IO [06:00] gigawatt: were using a single redis client outside of the scope of Socket.IO [06:00] mjr_: gigawatt: does this happen right away or after the client has been running a long time? [06:01] gigawatt: this happens after a few hours or so [06:01] gigawatt: then about 30mins later it usually starts working agin [06:01] gigawatt: again* [06:01] mjr_: OK, it's probably something to do with reconnection behavior. I wish I knew what it was though. [06:01] mjr_: Is this in production, and/or can you easily modify your program to log some things? [06:02] gigawatt: we data comes in it comes in with a hash, it hten checks the DB if it's in there, if not it stores it, if it is in there it calls this callback, but we get thousands of lines saying it'snot in there [06:02] mjr_: I don't have this problem in my production environment, and we do 100M redis operations / day. [06:02] gigawatt: yes we can modify [06:02] gigawatt: partial prod/developent [06:02] gigawatt: we have a subset of 300 people connected while were in BETA [06:02] k1ttty has joined the channel [06:02] mjr_: gigawatt: see pm [06:05] gigawatt: thanks mjr [06:05] rev087: sounds exciting AAA_awright [06:06] gigawatt: RedisStore.hget('hangouts', hangout.id, function(err, result){ result always null [06:07] dgathright has joined the channel [06:09] Xano has joined the channel [06:12] binaryjohn has joined the channel [06:13] pid_ has joined the channel [06:16] liveink has joined the channel [06:16] Remoun has joined the channel [06:17] skiz has joined the channel [06:24] Tigraine has joined the channel [06:24] superjudge has joined the channel [06:25] AAA_awright: rev087: You should subscribe to http://groups.google.com/group/magnode to know when I make a stable release! [06:25] AAA_awright: ... Probably years from now [06:25] CrypticSwarm has joined the channel [06:25] JakeyChan has joined the channel [06:25] AAA_awright: Yeah, it is pretty exciting if I can find some help with it [06:25] rev087: tough job [06:25] rev087: can`t say rdf is exactly sexy nowadays [06:25] AAA_awright: It's a pain because there's almost no good tools for RDF data, I've looked, and none for databases for Node.js [06:25] Renegade001 has joined the channel [06:26] Lingerance: I'd be interested in helping with the p2p part of it. [06:26] andree has joined the channel [06:27] rev087: subscribed [06:29] pgherveou has joined the channel [06:29] jonrohan has joined the channel [06:29] Nuck: Prolly gonna hafta generate my own unique IDs for each tag [06:29] Nuck: No big deal [06:30] Nuck: probably use a binary string [06:30] Lingerance: AAA_awright: Where's your github [06:31] AAA_awright: Lingerance: https://github.com/Acubed/ [06:31] Nuck: haha Acubed [06:31] Nuck: AAA_awright: Where'd the awright come from? [06:31] AAA_awright: My name [06:31] Nuck: AAA_awright: lolrly? [06:31] Nuck: Your name is awright? [06:32] rev087: Aldo Alison Alberto [06:32] AAA_awright: AAA_awright is the concatation of my alter-ego and my real-life ego [06:32] rev087: Ailson Alessandro Aguiar [06:32] AAA_awright: Actually I kinda stole it [06:32] Nuck: Because that's how the guy in Prisencolinen Sinainciusol says "all-right" [06:33] Nuck: Betcha don't know my real name :P [06:33] AAA_awright: From that guy who has all the high scores on all the arcade machines [06:33] AAA_awright: Nuck: I saw a real-like name somewhere but wasn't interested enough to record it in my stalker file [06:33] Nuck: Not that you can't find it in my whois :P [06:34] AAA_awright: Or there [06:34] Nuck: I've been going by some variant of "nuck", "nuck chorris", etc. since I was something like 11 [06:34] Nuck: (online) [06:34] Nuck: It started as nuck_chorris and degraded slowly into "NuckingFuts" and "Nuck" [06:35] Lingerance: Do you have a public repo of magnode? [06:35] Lingerance: Or is that in node-rdf? [06:36] harthur has joined the channel [06:36] TheEmpath has joined the channel [06:36] TheEmpath: hail nodelings [06:37] Nuck: ACTION heils hitler [06:37] Nuck: Oh wait, *hail* [06:37] TheEmpath: so lets say I have me one node instance running on one machine and one node instance running on another [06:37] Nuck: Sorry, I get mistaken now and then [06:37] Nuck: TheEmpath: Load balancing? [06:37] Nuck: Or communication? [06:37] TheEmpath: Load balanced [06:37] TheEmpath: so a user connects to either instance... order isn't guarenteed [06:38] TheEmpath: when they wanna talk to each other like a private message, i use a message queue, right? rabbitMQ, zeroMQ, etc [06:38] Nuck: TheEmpath: This is the internet, nothing is gaurunteed [06:38] TheEmpath: that's why i love it! [06:38] Nuck: But yeah, you'd do cross-server communication through a socket [06:38] Nuck: Similar to how IRC does peering [06:38] Nuck: Err linking [06:39] TheEmpath: so if i have a quad core with node on each core and ngnix routing connections to each instance, and then multiple boxes with this same setup.... [06:39] TheEmpath: then some dedicated RAM monolith running an MQ [06:40] Nuck: TheEmpath: Use a file as a socket [06:40] TheEmpath: ahhh linux can do that [06:40] TheEmpath: thats for the cores on the same box... will that work for networks too/ [06:40] TheEmpath: ? [06:40] TheEmpath: box1 and box2... communication through a file? [06:41] Lingerance: No [06:41] Lingerance: You want something that can distribute messages [06:41] Nuck: TheEmpath: Then you use real sockets :P [06:41] TheEmpath: righto [06:41] aguynamedben has joined the channel [06:41] Lingerance: Which you can do with 0MQ or whatever. [06:41] TheEmpath: any recommended preference? [06:42] Nuck: http://db.tt/UjPGF4sl This was an odd moment last night haha [06:42] jonrohan has joined the channel [06:42] Xano has joined the channel [06:42] AAA_awright: Lingerance: I do [06:42] TheEmpath: lol [06:42] Morkel has joined the channel [06:43] AAA_awright: Lingerance: http://git.bzfx.net/~aaa/magnode.git/ [06:43] AAA_awright: It's on the second rewrite so I'm not sure when I'll be ready to push to Github [06:43] Nuck: AAA_awright: Third try? [06:44] Nuck: Third time's the charm, I always say [06:44] AAA_awright: Hopefully this one, but if I get database abstraction wrong, It'll likely be another rewrite [06:44] Nuck: And by that I mean I do things 3 times before things stop sucking [06:44] Nuck: AAA_awright: Make it database-agnostic? [06:44] Nuck: And provide a modular db backend? [06:44] AAA_awright: I'd like to be like Linus and get everything right the first time [06:44] Lingerance: I have database abstraction with my ExtJS port. [06:44] Nuck: haha [06:45] AAA_awright: Everything I have so far doesn't even acknowledge the existance of databases [06:45] Nuck: It took me 3 rewrites to my JS deviantART chat bot before it didn't suck as bad [06:45] neshaug has joined the channel [06:45] Lingerance: It's not great, but for something where you're working with a limited set of tables it's nice. [06:45] Nuck: It took me until the third database connector module before I was happy [06:45] mc_greeny has joined the channel [06:45] Nuck: (mongo, mongoskin, mongoose) [06:45] Nuck: mongoose++ [06:45] v8bot_: Nuck has given a beer to mongoose. mongoose now has 1 beers. [06:46] mAritz has joined the channel [06:46] cosmincx has joined the channel [06:46] Nuck: Mongoose++ [06:46] v8bot_: Nuck has given a beer to Mongoose. Mongoose now has 1 beers. [06:46] asdfdasf has joined the channel [06:46] Nuck: ACTION should prolly add normalization to the bot [06:47] AAA_awright: v8bot_++ [06:47] v8bot_: AAA_awright has given a beer to v8bot_. v8bot_ now has 5 beers. [06:47] `3rdEden has joined the channel [06:47] dynacker: oh my god it is Skyec ! [06:47] aguynamedben has joined the channel [06:47] ph^ has joined the channel [06:48] shanebo has joined the channel [06:49] robotmay has joined the channel [06:53] leahculver has joined the channel [06:54] jacter has joined the channel [06:54] thalll has joined the channel [06:55] TheCode: Amigos, how do you handle file upload using Node? [06:55] petrjanda has joined the channel [06:55] guidocalvano has joined the channel [06:56] AAA_awright: Well gnight everyone [06:58] leahculver has left the channel [06:59] Ibuprofen has joined the channel [07:01] daine has joined the channel [07:02] i42n has joined the channel [07:04] abraxas: AvianFlu: are you sure the unix socket support has landed in the latest http-proxy yet? [07:05] k1ttty_ has joined the channel [07:05] AvianFlu: abraxas the API changed a little, it's probably just a question of finding the right entry point for it [07:06] AvianFlu: I think that using the RoutingProxy or ProxyTable objects, it would work [07:06] abraxas: I'm new to http-proxy, so it may just be me… but I've tried the magic colon, arrays, .. [07:06] emattias has joined the channel [07:06] AvianFlu: I'll look into it [07:06] abraxas: Thanks so much [07:08] jacobolus has joined the channel [07:08] tlrobinson has joined the channel [07:10] ptlo has joined the channel [07:11] wbednarski has joined the channel [07:14] raphdg has joined the channel [07:14] abraxas: AvianFlu: I think I have it working [07:14] luke` has joined the channel [07:15] AvianFlu: did it end up looking like https://gist.github.com/1250161 ? [07:15] AvianFlu: I mean, awesome either way XD [07:15] abraxas: let me check :) sorry for bothering, man [07:16] abraxas: btw, it works with cluster [07:16] abraxas: it ended up being: 'my.local.domain': 'localhost:/tmp/mysock.sock' [07:16] AvianFlu: interesting [07:16] abraxas: i guess if you don't specify anything before the colon, it repeats the domain? in which case i may have had a routing issue locally...? [07:17] AvianFlu: I'm not really sure there [07:17] NetRoY has joined the channel [07:17] AvianFlu: the colon confused me, honestly, I just knew it was working [07:17] ablomen has joined the channel [07:18] GeorgeJ has joined the channel [07:18] clu3 has joined the channel [07:18] louissmit has joined the channel [07:19] ivanfi has joined the channel [07:20] abraxas: :) [07:20] abraxas: so what works with cluster is: httpProxy.createServer(options).listen(port); [07:20] mraleph has joined the channel [07:20] RaviJK has joined the channel [07:20] abraxas: but now I want to hook into this, and relay with proxy.proxyRequest()… haven't gotten the hang of that yet tho [07:20] abraxas: keep getting the host/target missing from options error [07:21] AvianFlu: you need a middleware now [07:21] AvianFlu: for the don't-go-to-the-other-process part [07:21] abraxas: okay [07:22] abraxas: not advisable to try and use proxyRequest? [07:22] RichardBronosky has joined the channel [07:22] AvianFlu: it sounds like you're just using it in the wrong place... it's hard to say from here though :) [07:22] abraxas: it's possible [07:23] abraxas: well, the example shows "require('connect-gzip').gzip()", but that doesn't tell me much as in how to interface [07:23] abraxas: I'm not using any frameworks, and won't be able to either [07:24] AvianFlu: nevermind connect [07:24] abraxas: I guess the store example works well [07:24] AvianFlu: http://blog.nodejitsu.com/http-proxy-middlewares [07:24] AvianFlu: better code examples ther [07:24] AvianFlu: e [07:24] abraxas: thanks [07:25] AvianFlu: there's also an example of making your own, which you might rather do anyway [07:25] abraxas: i'll enjoy that, thanks [07:26] abraxas: is this going to destroy my performance btw? [07:26] AvianFlu: a big chain of middlewares would [07:27] AvianFlu: if you aren't going to start buffering requests or decoding your body, though, no [07:27] abraxas: the code that will decide on the "deal with it here, or delegate to http server" will probably be around 5 lines [07:27] abraxas: okay [07:27] AvianFlu: that should be mostly nothing [07:27] abraxas: i'll just be looking at method/path [07:28] abraxas: is the middleware able to abort relaying to the httpserver? [07:28] mikedeboer has joined the channel [07:29] AvianFlu: I'm quite confident you could break execution in a convenient way [07:29] AvianFlu: just return nothing, return somewhere else... it might take some thinking but it shouldn't be too much trouble [07:29] abraxas: okay [07:30] abraxas: can you explain to me how this is different from using the proxyRequest() method? or why that's a bad idea? [07:30] mynix has joined the channel [07:31] AvianFlu: it's not a bad idea, it's just likely easier this way [07:31] abraxas: somehow seems easier to branch with that, into httpserver _or_ local [07:31] AvianFlu: the API changed for 0.7.c [07:31] AvianFlu: 0.7.x rather [07:31] jokil has joined the channel [07:31] jokil has left the channel [07:31] AvianFlu: now, the HttpProxy() constructor is a single-destination, optimized proxy [07:32] AvianFlu: a RoutingTable is several instances of those, each pointing to a destination [07:32] Druide has joined the channel [07:32] AvianFlu: the new API isn't documented all that well, though [07:32] AvianFlu: you could definitely do it with HttpProxy() instances and the proxyRequest method, though [07:32] abraxas: ok [07:33] Wizek has joined the channel [07:33] sridatta has joined the channel [07:33] topaxi has joined the channel [07:34] [AD]Turbo has joined the channel [07:34] TomY_ has joined the channel [07:34] AvianFlu: the HttpProxy constructor wants something like this: HttpProxy({ target: { host: host, port: port } } ) [07:35] AvianFlu: FYI [07:35] [AD]Turbo: hi there [07:36] abraxas: okay [07:36] abraxas: host being localhost, port being '/tmp/my.sock' ? [07:36] AvianFlu: I *think* so [07:37] AvianFlu: I haven't gotten around to testing the unix socket stuff [07:37] AvianFlu: but I'm pretty sure that's how it's supposed to work [07:37] abraxas: hey, that works [07:37] abraxas: with cluster [07:37] __doc__ has joined the channel [07:37] AvianFlu: the net module, underneath it all, says if port is a number, it's a port, and if it's a string, it's a socket [07:37] AvianFlu: nice [07:38] CrypticSwarm has joined the channel [07:38] chjj has joined the channel [07:38] polotek has joined the channel [07:38] neilk_ has joined the channel [07:39] temp01 has joined the channel [07:39] abraxas: oh really? [07:39] abraxas: cool [07:39] abraxas: yeah, it works now [07:39] abraxas: i'm doing half my responses on cluster master, the other half on worker [07:39] abraxas: works like a charm [07:40] AvianFlu: sweet [07:40] johnwards has joined the channel [07:41] Aphelion has joined the channel [07:42] _kud has joined the channel [07:44] mrtazz has joined the channel [07:46] abraxas: AvianFlu: https://gist.github.com/1250211 [07:47] joe-f3 has joined the channel [07:49] temp01 has joined the channel [07:49] ts__ has joined the channel [07:49] EvRide has left the channel [07:51] whitman has joined the channel [07:52] i42n has joined the channel [07:54] mpavel has joined the channel [07:54] jbpros has joined the channel [07:56] beevi7 has joined the channel [07:57] cosmincx has joined the channel [07:59] Nuck has joined the channel [07:59] Margle has joined the channel [08:00] amigojapan_ has joined the channel [08:00] simenbrekken has joined the channel [08:01] markwubben has joined the channel [08:02] fangel has joined the channel [08:02] uchuff has joined the channel [08:03] aaronmcadam has joined the channel [08:04] adambeynon has joined the channel [08:04] jsj has joined the channel [08:04] temp01 has joined the channel [08:06] mpavel has left the channel [08:06] shipit has joined the channel [08:07] wbednarski: Is it possible to use two version of node, I use 0.4 but have to use 0.5 for some stuff, how to do this? [08:07] polotek: wbednarski: use nave or nvm [08:07] abraxas: AvianFlu: what's interesting is that according to apache bench, the response length is different in case of master/worker (i.e.: non-proxy/proxy) [08:08] polotek: they are node modules that help you manage node versions/environments [08:08] polotek: I prefer nave [08:08] abraxas: AvianFlu: I'll investigate further, because on first glance the responses seem identical [08:08] wbednarski: thanks polotek [08:08] robotmay has joined the channel [08:09] Wizek has joined the channel [08:10] meso has joined the channel [08:10] abraxas: AvianFlu: it seems cluster doesn't like keep alive :( [08:11] NuckOff has joined the channel [08:12] aron_ has joined the channel [08:16] Nuckg has joined the channel [08:19] AvianFlu: that's a shame [08:19] AvianFlu: and surprising [08:20] abraxas: actually, it was me [08:20] abraxas: I wasn't aware you had to pass that header manually [08:20] abraxas: now i know :) [08:20] abraxas: but the proxy did do it... [08:20] abraxas: without me asking [08:20] AvianFlu: well good then [08:20] abraxas: is that normal? [08:21] NuckOff has joined the channel [08:21] AvianFlu: I think so, yes [08:21] abraxas: okay [08:22] abraxas: Interesting how when I route things through cluster, my headers are lower-cased ("connection: keep-alive"), and through http proxy, they are not ("Connection: keep-alive") .. Not sure if that's HttpServer being funky, or cluster… my guess is HttpServer. [08:23] AvianFlu: that's strange, because earlier today I was told that the http-proxy was lowercasing all the headers [08:23] ppcano has joined the channel [08:24] AvianFlu: then again that was proxying websocket connections [08:24] abraxas: ah, right [08:24] abraxas: so http-proxy is doing it, before passing it to cluster [08:24] abraxas: proxyRequest() [08:24] AvianFlu: makes sense [08:24] kurtzhong has joined the channel [08:24] abraxas: when just doing res.end(); without actually parodying, it doesn't do it [08:24] liar has joined the channel [08:25] abraxas: parodying? damn auto-correct [08:25] AvianFlu: I wonder if that's the proxy or the http.Agent [08:25] abraxas: proxying [08:25] abraxas: mm [08:26] beawesomeinstead has joined the channel [08:27] franciscallo has joined the channel [08:29] abraxas: reverse proxy is touching the response, but i guess that's not related [08:30] AvianFlu: what do you mean, specifically [08:30] abraxas: writeHead() [08:30] abraxas: i'm just browsing through the code, to see where the headers may get touched [08:30] abraxas: or rewritten by nodejs [08:30] NuckOff has joined the channel [08:31] AvianFlu: lol welcome to what I did today [08:31] AvianFlu: there's the http-proxy [08:31] AvianFlu: there's node's lib/http.js [08:31] AvianFlu: and then there's http-parser.c [08:31] bergelmir has joined the channel [08:31] OmidRaha has joined the channel [08:31] abraxas: solving this will likely introduce a performance improvement, i'm guessing :) [08:32] AvianFlu: it's quite possible [08:32] k1ttty has joined the channel [08:33] bergelmir has joined the channel [08:35] Jippi has joined the channel [08:38] dexter_e has joined the channel [08:40] sreeix has joined the channel [08:42] ppcano has joined the channel [08:42] mehlah has joined the channel [08:43] sdwrage has left the channel [08:44] Cerales has joined the channel [08:44] Cerales: There's something odd happening in my node app - I've declared a global variable called "database", and I definitely initialise it, but when I try to call methods on it inside the callback given to http.createServer, it says the "database" object is undefined [08:46] pickels has joined the channel [08:47] DrMcKay has joined the channel [08:49] whitman: Cerales, pastebin it, removing any usernames/passwords etc [08:49] Glenjamin: Cerales: using globals.database = ? [08:50] Nuck has joined the channel [08:52] tylerstalder has joined the channel [08:53] gxdssoft has joined the channel [08:55] amoxibos has joined the channel [08:55] Cerales: Glenjamin: I'm not using globals. , no. I didn't know that was a thing. [08:55] Cerales: but it's definitely defined in the same file. [08:56] robhawkes has joined the channel [08:56] polotek: Cerales: yeah you should gist some code so we can take a look [08:56] markwubben has joined the channel [08:56] Cerales: I guess I'm really confused about scope.I can't figure out how to make an object be in scope inside the callback function I pass into http.createServer [08:57] polotek: anybody here more than passing familiar with child processes in node? [08:58] Lingerance: polotek: Just ask anyways [08:58] polotek: Cerales: sounds like a closure problem [08:58] polotek: anyway, it seems to me that child.killed is not a very useful property [08:58] burningdog has joined the channel [08:59] polotek: it doesn't tell if you if the child_process has exited. it tells if kill() has been called and a signal was sent to the process [08:59] polotek: but the signal didn't necessary kill the process [08:59] Cerales: polotek: / Glenjamin: http://pastebin.com/js7pLpmZ [08:59] polotek: I need a reliable way to tell if the process has completed [09:00] Cerales: so basically i'm requiring that file [09:00] Cerales: and calling STL.listen(); [09:01] polotek: Cerales: yeah that's what I thought [09:01] polotek: so the line CouchDatabase.init [09:01] polotek: is where your problem is [09:01] polotek: that is an asynchronous call [09:01] MrNibbles: hey guys [09:01] Lingerance: Yeah, you're having a closures issue. Generally I add things like that to the object whose events need it. [09:01] polotek: so the database var is not initialized until that returns [09:02] secoif has joined the channel [09:02] stonebranch has joined the channel [09:02] MrNibbles: whats the state of the differences between latest stable and dev? [09:02] MrNibbles: e.g 4-5 [09:02] MrNibbles: is it still 'nothing will run under 5'? [09:02] polotek: MrNibbles: huge [09:02] Cerales: polotek: but shouldn't that be ok, since i'm not trying to use it until I'm inside its callback? [09:02] MrNibbles: polotek: ok, worth looking into migrating over? [09:02] anoop has joined the channel [09:03] MrNibbles: polotek: how long will we have on 4? [09:04] polotek: MrNibbles: the stable version 0.6.0 is supposed to drop "any day now". [09:04] polotek: but it's going to be a rough transition I think [09:04] guidocalvano has joined the channel [09:04] polotek: 0.5.0 is a complete overhaul that introduces libuv and windows support [09:04] paul_k has joined the channel [09:04] MrNibbles: yeah, I'm imagining so. I've not even begun to attempt development on .5 yet [09:04] polotek: the goal is near complete backwards compability [09:04] polotek: but still [09:04] polotek: there will be lots of bumps I'm assuming [09:04] robhawkes has joined the channel [09:05] MrNibbles: hmm ok [09:05] admc has joined the channel [09:05] polotek: Cerales: your problem really depends on what other functions you're kicking off [09:05] MrNibbles: polotek: thanks for your advice [09:05] polotek: what method is actually erroring out that it can't find the database var? [09:05] Cerales: saveQuery (line 142) [09:06] amigojapan has joined the channel [09:07] mytrile has joined the channel [09:08] polotek: Cerales: oooohhh. there's an even more insidious problem here [09:08] Cerales: : O [09:08] polotek: you're not returning db directly form init [09:08] polotek: you're making this finish function [09:08] polotek: that does cb(this) [09:08] abraxas: AvianFlu: when proxyRequest hits a max-open-files limit, it crashes the node ungracefully [09:08] polotek: but remember that "this" is a special construct [09:09] polotek: it changes depending on how/where the function is invoked [09:09] AvianFlu: abraxas, EMFILE, right? [09:09] Cerales: oh man [09:09] polotek: So you pass finished into verifyDB [09:09] abraxas: AvianFlu: yup. http-proxy.js:201 [09:09] Glenjamin: I'd aim to separate the callback chain for init from running the app [09:09] polotek: and then invoke it there *with no context* [09:09] AvianFlu: yeah, you have to set your max sockets with your ulimit -n in mind [09:09] Glenjamin: then your "main" method runs init, then the tasks [09:09] polotek: you've lost the reference to CouchDatabase at that point [09:10] mraleph has joined the channel [09:10] abraxas: AvianFlu: right.. does it make sense to have a more graceful way of dealing with this? or should i just try {} catch my proxyRequest calls? [09:10] Cerales: polotek: so is it possible to pass control to verifyDB without losing that reference? [09:10] AvianFlu: abraxas, the best solution is to set a limit that doesn't clash with your ulimit -n [09:10] polotek: Cerales: use a local closure [09:10] polotek: var self = this; [09:10] AvianFlu: try catch is slow [09:11] Cerales: in verifyDB, or in it? [09:11] AvianFlu: when you can help it, don't do ti [09:11] Cerales: in init* [09:11] polotek: finished = function() { database = self; } [09:11] Cerales: ohhh [09:11] abraxas: AvianFlu: wait, where's this "max sockets" you mention? part of node? [09:11] Cerales: and then call db(database), maybe? [09:11] AvianFlu: it's an option in the proxy somewhere [09:11] Cerales: cb(database) * [09:11] abraxas: AvianFlu: okay, cool [09:11] polotek: Cerales: na, once you use the closure things work as you expect [09:11] polotek: it's only the special "this" that changes. [09:12] polotek: If you use a local variable to keep track of it, then the closure works just fine [09:12] Margle has joined the channel [09:13] polotek: You could also set database = this inside init itself [09:13] Cerales: I'm confused about where I use this closure - is "var self = this" in init()? [09:13] polotek: that variable is already available [09:13] bzinger has joined the channel [09:13] polotek: it has nothing to do with whether verifyDB fails or not [09:13] polotek: yeah, in init [09:13] polotek: Cerales: but then you have a different problems [09:14] Cerales: >_< [09:14] polotek: You can't just throw Errors with async functions [09:14] polotek: they won't be caught [09:14] Cerales: it sounds like maybe I'm structuring this all wrong? [09:14] Glenjamin: pretty much :) [09:14] Glenjamin: it takes a day or 2 to get your head around the control flow [09:14] Cerales: well [09:14] polotek: have you seen the node callback convention? function(err, data) { } [09:14] Cerales: no harm in throwing it away and starting again :) [09:14] Cerales: yeah i've noticed that [09:14] Glenjamin: there's even a post on the top of hacker news today thats doing it wrong :) [09:15] polotek: So the convention is if you run into errors in some async flow, you pass them back as the first argument of the callback [09:15] polotek: and then the receiving code can check that variable [09:15] polotek: otherwise it uses the other arguments as the valid return values [09:16] mynix has joined the channel [09:17] slifty has joined the channel [09:18] markwk has joined the channel [09:19] markwk: looking for a sketchpad type node.js app for adapting as an online classroom blackboard... [09:20] mike5w3c has joined the channel [09:21] jmoyers has joined the channel [09:21] Glenjamin: expressjs.com down for anyone else? [09:22] ablomen: http://www.downforeveryoneorjustme.com/expressjs.com [09:23] irahgel has joined the channel [09:24] Glenjamin: it's back for me now too :) [09:24] zemanel has joined the channel [09:24] Glenjamin: You guys seen http://news.ycombinator.com/item?id=3051029 ? [09:25] fly-away has joined the channel [09:26] junkee[] has joined the channel [09:26] shipit has joined the channel [09:28] RaviJK has joined the channel [09:30] micrypt has joined the channel [09:30] shirro has joined the channel [09:30] shirro has joined the channel [09:31] adambeynon has joined the channel [09:31] clarkfischer has joined the channel [09:31] davidcoallier has joined the channel [09:31] davidcoallier has joined the channel [09:34] nforgerit has joined the channel [09:36] micrypt has joined the channel [09:38] slifty has joined the channel [09:39] sfoster has joined the channel [09:41] liar has joined the channel [09:41] polotek: Glenjamin: forks of node core have historically not gained much traction [09:42] jomoho has joined the channel [09:46] sreeix_ has joined the channel [09:47] DrMcKay: export debug=1 builds node in debug mode, right? [09:47] Cerales: Anyone got any experience with the Cradle library for CouchDB? I'm trying to save a document but couch is returning "bad content type" [09:47] DrMcKay: so that all debug() calls get outputted somewhere? [09:48] ditesh has joined the channel [09:48] ppcano_ has joined the channel [09:48] TomY_ has joined the channel [09:50] eldios has joined the channel [09:50] polotek: DrMcKay: I haven't looked in a while [09:50] polotek: but used to be you did ./configure --debug [09:50] polotek: and that would build a separate node executable [09:50] polotek: node_debug [09:50] polotek: which would output the debugging info [09:50] Glenjamin: polotek: i'm not keen on the approach syntactically at all, regardless of the implementation method [09:50] DrMcKay: polotek: ah, thank you :) [09:51] polotek: Glenjamin: I think it's fine conceptually [09:51] DrMcKay: polotek: yeah, it does (-O0 opt flag) [09:51] polotek: but changing javascript without the backing of the maintainers of the runtime engines is just not a smart bet [09:52] polotek: it's a losing proposition in the long term [09:52] polotek: joyent is never going to commit to maintaining a fork of v8 [09:52] Glenjamin: I'm just not sold on AST-manipulations to hide callbacks [09:53] mike5w3c has joined the channel [09:53] Glenjamin: i wonder if a fork that allowed extension modules to do AST transformations would get more traction [09:53] chjj: did google chrome enable nacl by default now or something? [09:53] polotek: Glenjamin: it's not simple ast transform [09:53] polotek: it's an implemenation of couroutines at the language layer [09:53] polotek: same as node-fibers [09:53] polotek: it doesn't hide callbacks [09:53] Glenjamin: ah, that wasn't entirely clear from the explanation [09:54] polotek: it eliminates them in favor of paused execution stacks [09:54] micrypt has joined the channel [09:54] vidi has joined the channel [09:55] polotek: the more I think about it, the more I'm convinced that it's up to google how this turns out [09:55] polotek: an elegant solution to this problem requires v8 language support of some kind [09:55] polotek: anything in between is just a mess [09:55] icewhite has joined the channel [09:56] Glenjamin: is it conceiveable for v8 to implement some way of "plugging" stuff like this in [09:56] Glenjamin: so it can be maintained as a fork [09:56] Glenjamin: erm [09:56] Glenjamin: not a fork [09:56] tiglionabbit has joined the channel [09:56] polotek: it's conceivable, but it doesn't really make sense for them to do so [09:56] tiglionabbit: I'm trying to serve the current directory as static files with express (using the connect static middleware) but it isn't working. It just says "Cannot GET /" [09:56] polotek: the v8 team has been pretty responsive in terms of bug fixes and performance enhancements [09:57] polotek: but it doesn't make sense for them to change the direction of v8 [09:57] polotek: it's built for their browser [09:57] polotek: they're not really interested in any other use case except in the interests of supporting open source [09:57] Glenjamin: mm [09:57] pzich has joined the channel [09:57] polotek: so adding something which they will never use just to benefit some niche server-side community is unlikely [09:58] tiglionabbit: oh wait I was making a silly mistake of course [09:58] polotek: tiglionabbit: stop doing that ;) [09:59] tiglionabbit: specifically, I was using coffeescript and didn't realize my watchdog compiler wasn't actually recompiling my code [09:59] micrypt has joined the channel [09:59] vguerra has joined the channel [10:00] markwk has joined the channel [10:02] te-brian has joined the channel [10:03] piscisaureus has joined the channel [10:03] slifty has joined the channel [10:03] ditesh|cassini has joined the channel [10:04] andree has joined the channel [10:05] jetienne_ has joined the channel [10:07] RaviJK has joined the channel [10:08] ryanmcgrath has joined the channel [10:09] micrypt has joined the channel [10:13] navaru has joined the channel [10:13] khismetix has joined the channel [10:15] Wizek has joined the channel [10:16] secoif has joined the channel [10:17] chrislor_ has joined the channel [10:18] N0va` has joined the channel [10:20] mike5w3c has joined the channel [10:22] Xano has joined the channel [10:22] Frippe has joined the channel [10:24] Frippe has joined the channel [10:24] herbySk has joined the channel [10:25] Xano has joined the channel [10:26] Xano has joined the channel [10:32] liar has joined the channel [10:32] RaviJK has joined the channel [10:33] markwk has joined the channel [10:33] TomY has joined the channel [10:37] CIA-109: node: 03Alexandre Turpin 07master * r628fa9e 10/ doc/api/buffers.markdown : [10:37] CIA-109: node: docs: Added missing parenthesis to buffer.readUInt8 example. [10:37] CIA-109: node: Fixes #1790. - http://git.io/AJmPRA [10:38] bzinger has joined the channel [10:40] okuryu has joined the channel [10:41] dmkbot has joined the channel [10:41] rootslab has joined the channel [10:44] jbrokc has joined the channel [10:44] zastaph has joined the channel [10:47] davidbanham has joined the channel [10:48] ph^ has joined the channel [10:50] TheCode: express.js [10:51] briandh: socket.io.js [10:52] GeorgeJ: wat.js [10:52] CIA-109: node: 03Marco Rogers 07v0.4 * r3fc01d9 10/ doc/api/child_processes.markdown : [10:52] CIA-109: node: docs: note about empty environment in child processes [10:52] CIA-109: node: Fixes #1794. - http://git.io/eDXPbQ [10:52] JakeyChan_ has joined the channel [10:53] markwk has joined the channel [10:54] icewhite has joined the channel [10:56] jbrokc has joined the channel [10:58] robi42 has joined the channel [10:58] phused has joined the channel [10:59] CarterL has joined the channel [11:00] phused has joined the channel [11:00] stonebranch has joined the channel [11:00] murilobr has joined the channel [11:01] tiglionabbit has joined the channel [11:06] bzinger has joined the channel [11:07] CarterL has joined the channel [11:09] hasenj has joined the channel [11:15] markwk has joined the channel [11:19] boltR has joined the channel [11:20] TheCode: guys, what' recommended for handling file uploads? [11:20] luke` has joined the channel [11:21] dmkbot has joined the channel [11:24] robi42 has joined the channel [11:24] AphelionZ has joined the channel [11:26] fermion has joined the channel [11:27] robi42_ has joined the channel [11:31] bshumate has joined the channel [11:31] augustl: TheCode: normal browser multipart requests? [11:31] max_dev has joined the channel [11:32] boehm has joined the channel [11:33] hellp has joined the channel [11:34] astropirate has joined the channel [11:34] McMAGIC--Copy has joined the channel [11:36] dylang has joined the channel [11:36] scott_gonzalez has joined the channel [11:37] markwk has joined the channel [11:41] blup has joined the channel [11:42] paul_k has joined the channel [11:43] DrMcKay has joined the channel [11:44] navaru has joined the channel [11:45] schwab has joined the channel [11:45] _kud has joined the channel [11:46] RuslanPopov: ppl, how to compare two yaml files and get diff like output? [11:46] navaru has left the channel [11:46] robi42 has joined the channel [11:47] alfonso has joined the channel [11:47] alfonso: how do i make a GET request? i saw http://nodejs.org/docs/v0.4.12/api/http.html#http.get but i keep getting back incorrect headers [11:49] dmkbot has joined the channel [11:51] fairwinds has joined the channel [11:51] temp01 has joined the channel [11:51] alfonso: var request = require('request'); request({ 'uri': 'http://foo.com/bar' }, function(error, response, body) { console.log(error, response, body); }); [11:51] alfonso: got it [11:51] alfonso: was looking for http.~ something [11:52] paul_k has joined the channel [11:53] robi42_ has joined the channel [11:53] raz has joined the channel [11:53] jtrudeau has joined the channel [11:56] socialhack has joined the channel [11:56] tiglionabbit has joined the channel [11:59] tiglionabbit has left the channel [11:59] bnoordhuis has joined the channel [12:00] joshkehn has joined the channel [12:00] brianseeders has joined the channel [12:01] niftylettuce_: anyone here using mongoose-auth or everyauth? [12:02] Cromulent has joined the channel [12:02] Murvin has joined the channel [12:03] herbySk has joined the channel [12:05] petrjanda has joined the channel [12:06] matyr has joined the channel [12:08] jldbasa has joined the channel [12:08] Tigraine has joined the channel [12:09] DrMcKay: niftylettuce_: sup? [12:09] markwk has joined the channel [12:09] niftylettuce_: DrMcKay: I'm trying to get redirect on existing session working, e.g. you login, then go back to your `/login` route and it should auto-redirect... but it doesn't, oh noez [12:10] DrMcKay: niftylettuce_: there was a GH issue about that [12:10] DrMcKay: niftylettuce_: let me look it up [12:10] niftylettuce_: yea i posted to it [12:11] niftylettuce_: DrMcKay: https://github.com/bnoguchi/everyauth/issues/66 [12:11] SubStack: a connection pool module would be sweet [12:11] SubStack: ACTION npm searches for one [12:11] CarterL has joined the channel [12:11] jmar777 has joined the channel [12:12] DrMcKay: niftylettuce_: no, not this one [12:13] DrMcKay: https://github.com/bnoguchi/everyauth/issues/41 [12:13] niftylettuce_: yeah but that is a hack [12:13] DrMcKay: https://github.com/bnoguchi/everyauth/issues/12 [12:13] DrMcKay: niftylettuce_: well, sure it is [12:13] jbrokc: so is there any chance koush's async stuff will get pulled into master? [12:14] niftylettuce_: DrMcKay: I'm unsure if this would solve the issue, I would have to then add another get route for `/login` [12:14] ryanmcgrath has joined the channel [12:15] niftylettuce_: in issue 66 bnoguchi stated it should auto-redirect on the `/login` route [12:15] jbpros has joined the channel [12:15] niftylettuce_: ( by default ) [12:15] AaronMT has joined the channel [12:16] Wizek: hi all [12:17] Wizek: Would you rather run your unit tests in paralell or in series? [12:19] SubStack: aha looks like mikeal already wrote exactly what I need [12:19] SubStack: Wizek: probably in series actually [12:19] SubStack: I used to be much more in the other camp [12:20] SubStack: but had problems because stuff would grind to a halt with everything firing at once [12:22] augustl: Wizek: both [12:22] augustl: since it depends [12:23] augustl: some of my tests starts a http server on port X in setUp, for example [12:23] augustl: wouldn't want to run those in parallell ;) [12:23] augustl: but for tests that only do process local stuff then running them in parallel is cool [12:24] augustl: and in random order too! [12:24] mpavel has joined the channel [12:24] Wizek: Okay, 1 vote for serial only, 0 for paralel only and 2 for either/both at this point :) [12:25] mpavel has left the channel [12:25] augustl: Wizek: why are you asking? [12:26] mehtryx has joined the channel [12:26] Wizek: augustl, because I'm in the process of writing a js unit testing framework, and I'd like to have better support for async code handling besides assert counting [12:26] augustl: Wizek: why are you writing your own? [12:27] Wizek: augustl, the sort answer: because those I tried didn't provided everything I needed [12:27] SubStack: Wizek: I like tap. [12:28] augustl: don't spend too much effort on that, http://busterjs.org will soon be released ;) [12:28] augustl: perhaps you can re-use some of our code though, we have a bunch of pretty generic libs [12:29] Brandon_R has joined the channel [12:29] Brandon_R: hey guys [12:29] Brandon_R: i need some help [12:29] niftylettuce_: Brandon_R: whats up [12:29] SubStack: augustl: not sure that is the best approach for engaging the community [12:29] Brandon_R: not much [12:30] Brandon_R: trying to make a node module but cannot get libev to work [12:30] SubStack: I like it when stuff is released early and iterated quickly [12:30] Brandon_R: i mean it cannot find it [12:30] Brandon_R: how do i include it? [12:30] SubStack: augustl: also are you on the busterjs team? I saw somebody give a talk about it at ssjs at peoplebrowsr in san francisco a few months back [12:31] augustl: SubStack: that's me :) [12:31] SubStack: aha [12:31] SubStack: I've got my own test harness system up and running too, but just for browser code [12:31] replore has joined the channel [12:31] Wizek: SubStack, what tap do you mean? [12:31] raz: blech [12:31] SubStack: living at http://browserling.com:9088/ until we move over to testling.com [12:32] raz: the npm install is such a trainwreck [12:32] SubStack: Wizek: http://github.com/isaacs/node-tap [12:32] raz: whoever is responsible: offer a fucking tarball [12:32] rfay has joined the channel [12:32] N0va` has joined the channel [12:32] SubStack: raz: you can use tarballs with npm [12:33] SubStack: if some dependency is acting up just change its version string to a tarball url [12:33] SubStack: you can get them for any github project through the download link [12:33] raz: SubStack: i tried. fetched tarball, did the submodule dance, compiled and checked the end-result in. trying to compile from that checkout on another host randomly fails. [12:33] raz: SubStack: oh wait, i'm talking about npm itself, not the stuff npm manages [12:33] SubStack: submodules -_- [12:33] SubStack: oh [12:33] SubStack: yes that can be trouble [12:34] SubStack: I live dangerously and just do the curl ... | sh one-liner [12:34] raz: no really an option on production hosts. and i have seen *that* fail, too... [12:34] raz: it must be possible to store a reproducible tarball of node/npm. i'm sure this must be possible. [12:34] augustl: I prefer to use submodules if my project isn't a dependency of other npm packages [12:35] augustl: which is typically true systems I write in node that I put in production [12:35] joshkehn has left the channel [12:35] augustl: submodules = git submodules [12:35] RaviJK has joined the channel [12:35] augustl: raz: it is. You can, for example, clone the git repo and use that as your npm "install" [12:36] augustl: Wizek: btw, disregard the first thing I sand, and regard the 2nd thing I said [12:36] raz: augustl: i did that. it worked the first time. now it fails with the "graceful=fs" error.. [12:37] augustl: never heard of that error [12:37] raz: augustl: http://pastie.org/2610869 [12:37] Wizek: augustl, disregard `Wizek: both` and regard `since it depends` O.o or how do you count? :D [12:37] herbySk has joined the channel [12:37] Brandon_R: anyone here know how to use gcc? [12:38] augustl: Wizek: hehe [12:39] robi42 has joined the channel [12:39] raz: holy crap.. [12:39] raz: is there an npm replacement in the works? [12:40] raz: this seems to be going nowhere [12:40] bergelmir has joined the channel [12:40] raz: "As of version 0.3, it is recommended to run npm as root." [12:40] augustl: why are you using npm at all? [12:40] raz: augustl: to install graphite stuff [12:40] raz: i've given up on node dev but need to deploy graphite.. [12:40] augustl: in other words: why not use submodules [12:41] raz: because graphite says to install by npm [12:41] raz: and i'd have to dig into their stuff to figure out how to do it otherwise [12:41] nerdy has joined the channel [12:42] raz: the problem is that this stuff sometimes work and then it randomly doesn't [12:42] augustl: I doubt graphite requires npm [12:43] augustl: you probably just have to put it in node_modules and build it if it has C++ [12:43] Wizek: augustl, is the (not released, I understand) code of busterjs available somewhere? [12:43] augustl: Wizek: https://gitorious.org/buster [12:43] robi42_ has joined the channel [12:44] r04r: Does nodejs' TLS module automatically reject certificates past their expiry date? [12:44] erichynds has joined the channel [12:44] augustl: Wizek: it's feature complete now, currently working on unfucking some bits and pieces [12:44] Margle has joined the channel [12:44] augustl: Wizek: our assert module is very reusable, for example [12:45] augustl: buster is written for reusability, so that folks can use our stuff in their own frameworks. (Which is why I said you could disregard my comment about not writing your own framework) [12:45] dylang has joined the channel [12:45] augustl: Wizek: documentation is unfortunately sparse at this point though.. [12:46] r04r: augustl: "Capture, control and automate multiple browsers." -- It's a test framework, but, uh, what does that do? [12:46] shorton1 has joined the channel [12:46] augustl: r04r: buster tests browser JS as well [12:46] augustl: r04r: think JsTestDriver if you're familiar with it [12:47] augustl: so that part is being used for shipping the test suites to the browsers, running them, and reporting back [12:47] r04r: augustl: I'm not, actually. But that's interesting. [12:47] jetienne_ has joined the channel [12:47] augustl: r04r: it's pretty neat :) It lets you run and get feedback from browser tests from a terminal [12:47] augustl: or from hudson/jenkins, or whatever. [12:48] davidbanham has joined the channel [12:48] r04r: augustl: Would this be used in development? If so, what would the advantage be over just using the browser's console? Or production to track down why people are having issues? Or am I just misunderstanding it all :P [12:49] r04r: augustl: Nevermind, found a blogpost that explained it fairly well [12:49] fumanchu182 has joined the channel [12:50] augustl: r04r: cool :) [12:50] darinc has joined the channel [12:50] augustl: r04r: are you new to automated testing, unit testing, etc? [12:50] augustl: short answer: it's for development [12:50] heavysixer has joined the channel [12:50] augustl: the advantage is automation [12:50] r04r: augustl: Yup, never used it before. College student that never did any real serious work. [12:51] raz: git clone https://github.com/isaacs/npm.git [12:51] raz: warning: remote HEAD refers to nonexistent ref, unable to checkout. [12:51] augustl: r04r: the idea is that some (mosts) tests you do by hand, can be written down as code. This is in many situations an advantage since you don't have to manually test the same code over and over. [12:51] raz: ACTION needs more hands to facepalm enough [12:51] r04r: augustl: Makes sense [12:51] hij1nx has joined the channel [12:52] augustl: r04r: http://www.amazon.com/Test-Driven-JavaScript-Development-Developers-Library/dp/0321683919 :) [12:53] augustl: r04r: https://gitorious.org/buster/buster-args/blobs/master/test/buster-args-test.js#line41 is an example of automated testing if you're curious [12:53] Wizek: augustl, yeah, I might find lack of docs a concern. [12:54] augustl: Wizek: the assertions package _is_ documented though http://busterjs.org/docs/buster-assertions/ [12:54] augustl: Wizek: but there's no guide with examples of how to integrate it etc. [12:55] TheJH has joined the channel [12:55] TheJH has joined the channel [12:56] olragon has joined the channel [12:56] Wizek: augustl, anyways thanks for telling me about it and aswering my question. I'll be back in around 15-30 mins and I might have some other questions if you are still around at that point [12:56] phiggins has joined the channel [12:57] augustl: Wizek: I'd love to help you out :) [12:57] r04r: augustl: Cool. Thanks! [12:57] augustl: someone using buster-assertions in their project would be the closest Buster.JS has been to a release so far, so I'm super eager =P [12:58] r04r: brb [12:59] fbrett66 has joined the channel [13:00] fbrett66: Hi there, anyone on an error Build failed: -> task failed (err #2):{task: libv8.a SConstruct -> libv8.a} at node installation with debian lenny ? [13:00] fbrett66: I'm using this script to install node for a local user https://raw.github.com/gist/579814/ea7f2fca38758885f32aad1483d4fecf12c4f478/node-and-npm-in-30-seconds.sh [13:01] augustl: raz: feel your pain btw.. [13:01] fermion has joined the channel [13:01] augustl: raz: seems the highest priority in npm was to get something usable, fast ;) [13:01] augustl: in b4 comment about not being usable [13:02] raz: :q [13:02] raz: sighs [13:02] fbrett66: And i've already apt-get install libv8-dev g++ build-essentials pkg-config binutils make [13:02] JasonJS has joined the channel [13:05] ph^ has joined the channel [13:05] jhbot has joined the channel [13:05] JakeyChan has joined the channel [13:07] ryanmcgrath has joined the channel [13:07] aron_ has joined the channel [13:08] Wizek has joined the channel [13:10] jmar777 has joined the channel [13:10] socialhack has joined the channel [13:10] hasenj has joined the channel [13:10] vguerra has joined the channel [13:10] pzich has joined the channel [13:10] Nuck has joined the channel [13:10] cosmincx has joined the channel [13:10] mrtazz has joined the channel [13:10] tim_smart|away has joined the channel [13:10] omni5cience has joined the channel [13:10] gf3 has joined the channel [13:10] broofa has joined the channel [13:10] Hamms has joined the channel [13:10] efoster has joined the channel [13:10] confoocious has joined the channel [13:10] mekwall has joined the channel [13:10] gabeaudick has joined the channel [13:10] ncb000gt has joined the channel [13:10] PhilK has joined the channel [13:10] iivvoo has joined the channel [13:10] apoc has joined the channel [13:10] tuhoojabotti has joined the channel [13:10] cmeiklejohn has joined the channel [13:10] lukegb has joined the channel [13:10] fearphage has joined the channel [13:10] swaj has joined the channel [13:10] hoodow has joined the channel [13:10] tg has joined the channel [13:10] mrkurt has joined the channel [13:10] a11235 has joined the channel [13:11] hotspants has joined the channel [13:11] djcoin has joined the channel [13:12] sreeix has joined the channel [13:12] ceej has joined the channel [13:13] bzinger has joined the channel [13:14] pquerna has joined the channel [13:16] mekwall has joined the channel [13:17] Xano has joined the channel [13:19] lazyshot has joined the channel [13:19] takpar has joined the channel [13:20] criswell has joined the channel [13:20] flexd has joined the channel [13:20] deedubs has joined the channel [13:22] jakehow has joined the channel [13:28] `3rdEden has joined the channel [13:30] hermanjunge has joined the channel [13:33] thomblake has joined the channel [13:33] thomblake has left the channel [13:34] Aikar: hmm [13:34] Aikar: so i just found streamline last night [13:34] Aikar: this is pretty epic [13:34] Aikar: i had thought about trying to do something like this [13:34] Aikar: but glad to see someone who can 'get it right' did it... [13:35] felixge has joined the channel [13:35] felixge has joined the channel [13:38] bradleymeck: the only problem i have with streamline is i cant see if a function i call will yield to something else which unlike single frame yields can mean you are unsure of when it will return (so timeouts for stuff that seams sync) may be async, but you can go in and see it in the code if it gets to be a problem [13:38] CIA-109: libuv: 03saghul 07master * rb594dba 10/ src/unix/core.c : unix: fix memcpy when copying hints on uv_getaddrinfo - http://git.io/IKdmXQ [13:39] Aphelion has joined the channel [13:40] CIA-109: libuv: 03Ben Noordhuis 07master * re53d125 10/ (.mailmap AUTHORS): Update AUTHORS and .mailmap - http://git.io/8PcU_w [13:42] eee_c has joined the channel [13:43] willwhite has joined the channel [13:44] jarek_ has joined the channel [13:44] smtlaissezfaire_ has joined the channel [13:45] Poetro has joined the channel [13:45] Poetro has joined the channel [13:47] Acolyte has joined the channel [13:48] Acolyte: has anyone managed to get persevere 2.0 running on node? [13:49] lepht has joined the channel [13:50] jedahan has joined the channel [13:51] fangel has joined the channel [13:52] Aikar: bradleymeck: you mean like if function foo() { bar(32, _); how that could break away and cause your code calling foo to blow up? [13:52] Aikar: yeah i can see that being a problem [13:53] barodeur has joined the channel [13:54] tom_ has joined the channel [13:54] AphelionZ has joined the channel [13:55] AphelionZ has left the channel [13:55] cjheath has joined the channel [13:56] simenbrekken: Can I use a remote repository via npm to install my forked versions of certain modules? [13:56] zmbmartin has joined the channel [13:57] DrMcKay: simenbrekken: yes [13:57] DrMcKay: simenbrekken: do a: "module": "git://" [13:58] simenbrekken: in my package.json right? [13:58] DrMcKay: simenbrekken: like that https://github.com/Relief-1/Relief1/blob/master/package.json#L16 [13:58] Casan has joined the channel [13:59] simenbrekken: DrMcKay: thanks :) [13:59] Acolyte: is there an alternative to persevere for node.js? [13:59] DrMcKay: simenbrekken: :) [13:59] socialhack has joined the channel [14:00] joshkehn has joined the channel [14:01] Casan: hi, I just installed node for the first time, yeah! let's go, I'm on a freebsd8.2 in a jail, and when I install npm it fails (I even made a copy of bash to /bin/bash) I can use some help. [14:01] joshkehn has left the channel [14:01] TheJH: Casan, could you gist the error? [14:02] zmbmartin has joined the channel [14:03] Casan: TheJH, I'd love to, how do I gist the error? haha sorry, new for me [14:03] liar has joined the channel [14:03] TheJH: Casan, ah, gist is just a cool github service [14:04] TheJH: !@Casan mem gist [14:04] jhbot: Casan, Gist is kind of a pastebin. Every paste is a git repo. https://gist.github.com/ [14:04] Venom_X has joined the channel [14:06] felixge has joined the channel [14:06] felixge has joined the channel [14:06] skyl has joined the channel [14:07] herbySk has joined the channel [14:08] simenbrekken: DrMcKay: quick follow-up question: how do I pull changes from the dev repo? [14:08] knifed has joined the channel [14:09] piscisaureus_ has joined the channel [14:09] stash1 has joined the channel [14:10] aheckmann has joined the channel [14:11] Casan: https://gist.github.com/1250794 [14:12] marcello3d has joined the channel [14:13] raja_ has joined the channel [14:15] simenbrekken: DrMcKay: npm link ../my-forked-module worked nicely, thanks anyway :) [14:16] ivanfi has left the channel [14:17] felixge_ has joined the channel [14:17] felixge_ has joined the channel [14:19] colinclark has joined the channel [14:19] cognominal_ has joined the channel [14:20] JasonJS has joined the channel [14:20] davidascher has joined the channel [14:21] wdperson has joined the channel [14:21] dmsuperman has joined the channel [14:22] k1ttty has joined the channel [14:22] dmsuperman: Using the mongodb lib I'm trying to use a cursor.toArray twice, and it says the cursor is closed. Is it possible to perform toArray without closing the cursor implicitly? [14:23] khismetix has joined the channel [14:23] nibblebot has joined the channel [14:23] zmbmartin has joined the channel [14:23] Aikar: dmsuperman: why would you toArray twice? [14:23] warreng has joined the channel [14:24] albertosh has joined the channel [14:24] Voxxit has joined the channel [14:24] jslatts has joined the channel [14:24] nibblebo_ has joined the channel [14:24] r04r: Im trying to create a tls server with a certificate signed by myself, but I'm getting the error error:0906D06C:PEM routines:PEM_read_bio:no start line -- Anyone has any idea why? [14:24] pixel13 has joined the channel [14:25] pixel13 has left the channel [14:25] N0va` has joined the channel [14:25] zastaph has joined the channel [14:25] wbw72 has joined the channel [14:26] thalll has joined the channel [14:27] r04r: Whoops, nevermind. I was giving crt and .key files, not .pem files [14:27] socialhack has joined the channel [14:28] Glenjamin: is there a similar trick to ~indexOf which does !~indexOf without looking so ugly? [14:28] dmsuperman: Aikar: I want to read the results and then return both the array of results and the cursor in case they want to use teh cursor in a different way [14:28] dmsuperman: I need to read teh results for my own purposes in my layer though [14:28] Glenjamin: why not just return the cursor and let them read it? [14:28] Glenjamin: ah [14:30] kevwil has joined the channel [14:30] anveo has joined the channel [14:30] lazyshot: make two cursors? [14:30] Aikar: dmsuperman: so just pass them the results [14:31] Glenjamin: because of how mongo drivers work, thats probably your only option [14:31] Glenjamin: when you access a cursor, thats when it hits the server [14:31] dmsuperman: I suppose I can just make two cursors [14:32] dmsuperman: Since they have to explicitly ask for the cursor [14:32] Glenjamin: if they don't access the second cursor, it shouldn't hit the server [14:32] Vennril has joined the channel [14:32] crisO has joined the channel [14:32] dmsuperman: Oh even better [14:32] dmsuperman: Thanks [14:34] wankdanker has joined the channel [14:35] adrianmg has joined the channel [14:35] adrianmg has left the channel [14:35] gsmcwhirter has joined the channel [14:35] DrMcKay: simenbrekken: sorry, I've been away [14:35] DrMcKay: simenbrekken: I believe that npm update will updated [14:35] DrMcKay: *update [14:36] bradleymeck has joined the channel [14:36] simenbrekken: DrMcKay: nope :) [14:36] thalll has joined the channel [14:36] DrMcKay: that's weird [14:36] DrMcKay: simenbrekken: give me a sec [14:37] eee_c1 has joined the channel [14:37] xtianw has joined the channel [14:37] jtsnow has joined the channel [14:37] CrisO has joined the channel [14:38] DrMcKay: simenbrekken: true, outdated doesn't seem to have an idea about git [14:38] DrMcKay: simenbrekken: try going into node_modules/forked_module and doing a git pull [14:39] simenbrekken: it isn't a git repo [14:39] simenbrekken: but npm link works just fine [14:39] DrMcKay: simenbrekken: glad you got it working :) [14:39] shuny_ has joined the channel [14:39] r04r: When calling socket.end() on a tls server it looks like it doesnt trigger the socket.on('end') handled [14:39] r04r: handler* [14:39] r04r: Am I doing something wrong or is that intended behavior? :s [14:40] CoverSlide: are you calling that on the socket or the clearTextStream? [14:40] cgfuh has joined the channel [14:40] blup has joined the channel [14:41] CoverSlide: i.e. is `socket` the object you get from the `secureConnection` event or from the `connection` event? [14:41] r04r: CoverSlide: On the socket [14:41] aelien27 has joined the channel [14:41] r04r: tls.createServer(SSL_Options, function(socket) { <- That socket [14:41] neilk_ has joined the channel [14:41] CoverSlide: ok that's a clearTextStream, not a socket [14:41] r04r: Oh [14:42] lmorchard has joined the channel [14:42] CoverSlide: although ... hmm I'd open up an issue, I think the behavior should be predictable [14:42] r04r: CoverSlide: How should I get the socket? Grab it from the connection event? [14:43] CoverSlide: yeah, that'll get the encrypted socket [14:43] softdrink has joined the channel [14:43] CoverSlide: tls server is just an extension of the net server [14:43] r04r: And clearTextStream.on('connection' works? [14:43] CrisO has joined the channel [14:43] Aikar: has anyone done a company wide transition from svn to git with git-svn and handled the issue of externals etc and got a public guide on advice? [14:43] CoverSlide: ... no, that shouldn't [14:44] r04r: CoverSlide: I figured as much >.> I'm not sure how to get that socket within a tls.createServer scope then [14:44] felixge has joined the channel [14:44] felixge has joined the channel [14:45] Remoun has joined the channel [14:45] wbednarsk has joined the channel [14:46] brianc has joined the channel [14:46] r04r: What I'm getting from the docs is that the CleartextStream is just a regular stream which has the .end() method, and the end event, and when I call the .end() method it doesnt seem to trigger that event. [14:46] fangel has joined the channel [14:47] xetorthio has joined the channel [14:47] CoverSlide: hmm, actually, I'm not sure if the .end() method triggers the `end` event [14:47] CoverSlide: `end` is for when the end of the stream has been reached [14:48] CoverSlide: although if you are able to call the .end() method, you can call the `end` handler directly [14:48] r04r: CoverSlide: Looks like I want the close event, then? [14:48] tek has joined the channel [14:48] boltR has joined the channel [14:49] fatjonny has joined the channel [14:49] r04r: Ah, yep. .end() calls the close event and now everything is working again. On regular sockets the end event works just as well [14:50] amigojapan has joined the channel [14:50] CoverSlide: odd, it sounds like a bug [14:50] DennisRasmussen has joined the channel [14:50] r04r: Bug reports go to github's issue tracker? [14:51] CoverSlide: yeah [14:51] CoverSlide: but i could be wrong, I'm proably mixing up how the streams events all work [14:53] sub_pop has joined the channel [14:54] RaviJK has joined the channel [14:54] CoverSlide: perhaps since there's no EOF sent to the stream, that's why there's no `end` event [14:54] yorick: is there a way to inject data back into a Readble Stream? [14:54] yorick: readable* [14:55] yorick: when I call process.nextTick(function() {stream.emit('data', d)}) it doesn't do streams [14:55] yorick: paused* [14:55] rfay has joined the channel [14:55] SubStack: heylookit: https://github.com/substack/stagecoach [14:55] SubStack: I made another github repo. [14:55] CoverSlide: sweet [14:56] SubStack: 2 new npm modules tonight/this morning [14:56] r04r: CoverSlide: I have no idea >.> I created an issue ( https://github.com/joyent/node/issues/1795 ) [14:56] yorick: hey substack [14:56] yorick: did I ever tell you I love you? :) [14:56] CoverSlide: did you ever know that you're my here? [14:56] CoverSlide: you're everything I would like to be [14:56] yorick: but with more money. [14:56] meandi has joined the channel [14:57] devongovett has joined the channel [14:57] SubStack: hahaha money [14:57] SubStack: ACTION is crazy poor [14:57] yorick: s/more/less/ [14:57] Cromulent has joined the channel [14:57] SubStack: still on startup wages getting this company off the ground [14:57] halfhalo has joined the channel [14:58] shorton1 has left the channel [14:58] yorick: browserling? [14:58] CoverSlide: yeah, personally, I think the stream/socket from the tls.Server and net.Server should work interchangably, but it's either an oversight there may be some underlying problem with calling an `end` event on that stream [14:58] halfhalo has joined the channel [14:58] CoverSlide: have to let the core devs figure it out [14:59] SubStack: yorick: yep [14:59] yorick: there's no real stream API. the only defined thing is pipe. [14:59] TomY has joined the channel [14:59] yorick: SubStack: it's still running chrome 7 (or claims to be) [15:00] uchuff has joined the channel [15:00] SubStack: yorick: this is cooler: [15:00] SubStack: curl -sS substack.net/snippets/test.js | curl -sSNT- browserling.com:9088/?browsers=iexplore/7.0,iexplore/8.0,iexplore/9.0 [15:00] JakeyChan has joined the channel [15:00] yorick: although it's actually running chrome 10 [15:00] DrMcKay: SubStack: when I meet you, I want your autograph! [15:00] SubStack: you'll be able to plug that service into stage coach >:D [15:00] jaequery has joined the channel [15:00] CoverSlide: also, you should work on the cross-browserness of the site [15:00] yorick: SubStack: that _is_ cooler. [15:01] SubStack: and only deploy when all your tests pass [15:01] SubStack: if you know of any companies with lots of money that would like such a product send them my way! [15:01] CoverSlide: maybe just have a chrome frame popup on window.navigator.match(/MSIE/) [15:01] alvaro_o has joined the channel [15:02] SubStack: yeah probably [15:02] SubStack: it's hard to test browserling in itself though :/ [15:02] SubStack: anyways the new hotness will be on testling.com [15:02] CoverSlide: well i tried it, and it failed in most IE's [15:02] hellp has joined the channel [15:02] yorick: SubStack: also, do you mind me stealing your test code and binary parsers for node-binary and using it for node-protoparse? :) [15:02] SubStack: yorick: mit/x11 means go right on ahead [15:03] yorick: I don't think you put that anywhere [15:03] SubStack: just using the libs directly won't work though? [15:03] SubStack: oh whoops [15:03] mandric has joined the channel [15:03] SubStack: yorick: https://github.com/substack/node-binary/blob/master/package.json#L35 [15:03] SubStack: it's just tucked out of the way like that [15:03] yorick: is that even valid? [15:04] r04r: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software :P [15:04] SubStack: uploading the same license file over and over again violates DRY [15:04] DrMcKay: lol [15:04] EvRide has joined the channel [15:04] skiz has joined the channel [15:04] yorick: and also, no. I can't directly use the libs because it's not exported [15:05] SubStack: what isn't exported? [15:05] _kud has joined the channel [15:06] yorick: decode[BL]Eu[us]? \(bytes\) are not [15:06] SubStack: ah [15:06] yorick: https://github.com/substack/node-binary/blob/master/index.js#L309 [15:08] yorick: https://github.com/yorickvP/node-protoparse <-- I want to use them so I don't have to write my own to copy your functionality [15:08] wbednarski has joined the channel [15:08] wolftankk has joined the channel [15:08] BrianTheCoder has joined the channel [15:08] jonrohan has joined the channel [15:08] ianl` has joined the channel [15:10] deedubs: Off topic Question: Would you guys be interested in getting a weekly report on what was happening around github repos that you own/watch? [15:11] Glenjamin: anything that makes the activity feed useful would be good [15:12] Margle has joined the channel [15:13] tizzo-afk has joined the channel [15:13] Aikar: http://a3.sphotos.ak.fbcdn.net/hphotos-ak-ash4/313238_2353168395853_1449450171_32594001_1162151069_n.jpg [15:13] BillyBreen has joined the channel [15:16] mike5w3c_ has joined the channel [15:16] Aikar: if I just require('streamline') will that overload the require handler ? [15:16] synkro has joined the channel [15:16] alekhine has joined the channel [15:16] gxdssoft has joined the channel [15:17] ditesh|cassini has joined the channel [15:17] hornairs has joined the channel [15:17] dgathright has joined the channel [15:19] Aphelion has joined the channel [15:19] kevwil has joined the channel [15:20] Xeoncross has joined the channel [15:21] sonnym has joined the channel [15:21] JasonJS has joined the channel [15:22] Xeoncross: I'm looking to build a simple SMTP server that I can use to collect emails for processing in my application. [15:22] Xeoncross: https://gist.github.com/1250888 is what I have so far [15:22] Xeoncross: I thought that Node.js would be a good choice because of the I/O handling [15:23] Xeoncross: Is there anything I should be aware of when trying to get node.js to respond to hundreds of requests to submit email? [15:23] Renegade001 has joined the channel [15:23] CoverSlide: as with anything in node, keep it async [15:24] Xeoncross: Yes, I love the async designs pushed by JS [15:24] CoverSlide: avoid long loops [15:24] robertfw has joined the channel [15:24] Xeoncross: I plan on using the mysql client to just receive and store the requests for processing later. [15:24] Wizek has joined the channel [15:25] bradleymeck: Xeoncross look into Haraka [15:25] eignerchris has joined the channel [15:26] Epeli: Released an asset manager for Node.js https://github.com/epeli/node-piles [15:26] Xeoncross: bradleymeck, Haraka looks a little bit over my limit right now. I would rather start small if there is nothing stupid about my approach. [15:27] vipaca has joined the channel [15:28] bradleymeck: Xeoncross I wouldnt wrap the callbacks in objects, and i would implement a command queue but other than that it should be fine [15:28] adambeynon has joined the channel [15:28] bradleymeck: dont forget though that if you do tls you need to dump all info about the client including commands queued once auth occurs [15:29] Xeoncross: Thanks, but there won't be any auth. It's just for receiving public email for an application to process. [15:30] bradleymeck: k, if you get far please ping me again im always interested in SMTP [15:30] darinc has joined the channel [15:31] Xeoncross: No problem. I will have many more questions as time goes on and I learn the correct way to write node apps. [15:31] sreeix has joined the channel [15:33] tjholowaychuk has joined the channel [15:33] tjholowaychuk has joined the channel [15:35] louissmit has joined the channel [15:35] dshaw_ has joined the channel [15:36] catb0t has joined the channel [15:36] ktiedt has joined the channel [15:37] lmorchard has joined the channel [15:37] herbySk has joined the channel [15:38] Wizek has joined the channel [15:40] softdrink: ruby, y u so slow? (屮゜Д゜)屮 [15:40] dmsuperman has left the channel [15:41] jmoyers has joined the channel [15:42] lz has joined the channel [15:42] lz has joined the channel [15:43] bradleymeck: because i reflect reflection with my abstractions [15:43] JasonJS_ has joined the channel [15:44] DrMcKay: softdrink: try rubinius, it should be faster [15:45] softdrink: can't. out of my control. [15:46] jtsnow has joined the channel [15:46] DrMcKay: softdrink: get a gun [15:47] ppcano has joined the channel [15:47] softdrink: bout to [15:47] eee_c has joined the channel [15:49] TomY has joined the channel [15:50] guillermo has joined the channel [15:51] slickplaid has joined the channel [15:51] bzinger has joined the channel [15:52] jmar777_ has joined the channel [15:53] vampi-the-frog has joined the channel [15:53] vampi-the-frog has joined the channel [15:55] hotch has joined the channel [15:55] ditesh has joined the channel [15:55] captain_morgan has joined the channel [15:55] jacobolu_ has joined the channel [15:55] robi42 has joined the channel [15:56] slloyd has joined the channel [15:56] RaviJK has joined the channel [15:58] inpho has joined the channel [15:58] hotch: hey everyone, i wasn't a big github user til node, why does my code appear on view => raw (yet .md files display fine) my tabs as what appears to be 8 space. In any editor I use its set for tabs as 4 spaces. what's the deal? [15:59] soothsayer has joined the channel [15:59] smathy has joined the channel [15:59] CoverSlide: 8 spaces is the standard for plaintext tabs [16:00] softdrink: they're probably actual tab characters [16:00] hotch: hmm yeah [16:00] CoverSlide: your editor is obviously not converting the tabs to spaces [16:00] devrim has joined the channel [16:00] softdrink: don't get me started on tabs vs spaces. [16:00] kevwil has joined the channel [16:00] hotch: yeah i thought so just wondering .. the standard. I'm extremely OCD and when i was viewing code on github i almost had to send myself to bellveue [16:00] hotch: ok convert tabs to space, 4 spaces. perfect. [16:01] softdrink: ACTION cringes [16:01] pizthewiz has joined the channel [16:02] piscisaureus has joined the channel [16:03] stash1 has joined the channel [16:04] xy has joined the channel [16:04] dmsuperman has joined the channel [16:05] dmsuperman: Using mongodb again, how can I query a document based on it's _id? I try just passing {_id:'hexID'} but it doesn't return any results [16:05] dmsuperman: Also tried mongodb.BSONPure.ObjectId('hexID') [16:06] reid has joined the channel [16:07] DrMcKay: dmsuperman: {_id: ObjectID('hexID') [16:07] jerrysv has joined the channel [16:07] RaviJK has joined the channel [16:07] openpercept has joined the channel [16:08] mhauri has joined the channel [16:08] Aphelion has joined the channel [16:08] dmsuperman: DrMcKay: ObjectID isn't defined [16:08] dmsuperman: I'm assuming it was a quick reference to mongodb.BSONPure.ObjectID though [16:09] fatjonny has joined the channel [16:09] shipit has joined the channel [16:09] dmsuperman: Which as I said returns no results (though mongodb.BSONPure.ObjectID does return an ID) [16:09] dmsuperman: But when I do find({}) I see the object in the results [16:09] descipher_ has joined the channel [16:10] luke` has joined the channel [16:10] harthur has joined the channel [16:10] fatjonny has joined the channel [16:11] murilobr has joined the channel [16:11] fatjonny has joined the channel [16:11] descipher_ has joined the channel [16:11] shipit has joined the channel [16:12] fatjonny has joined the channel [16:13] shipit has joined the channel [16:13] paulwe has joined the channel [16:13] kenperkins has joined the channel [16:14] fbrett66 has left the channel [16:14] shipit has joined the channel [16:17] nforgerit has joined the channel [16:17] shipit has joined the channel [16:18] te-brian has joined the channel [16:18] Brandon_R has joined the channel [16:18] dmsuperman: Anybody know how to query a mongodb record with a given _id? mongodb.BSONPure.ObjectId('the ID') returns what seems to be a hex value but the query returns no results [16:18] shipit has joined the channel [16:18] Brandon_R: hey guys [16:19] Wizek has joined the channel [16:19] patcito has joined the channel [16:20] avakarev has joined the channel [16:20] colinclark_ has joined the channel [16:20] avakarev: list [16:20] slifty has joined the channel [16:20] DrMcKay: dmsuperman: wait, you're querying it from node or...? [16:20] dmsuperman: DrMcKay: Yeah? [16:20] dmsuperman: I ran a mongo shell and I can get the record back that way [16:22] avakarev has joined the channel [16:23] DrMcKay: dmsuperman: you're using this driver, right? https://github.com/christkv/node-mongodb-native [16:24] skiz has joined the channel [16:24] skiz has joined the channel [16:27] socialhack has joined the channel [16:27] isaacs has joined the channel [16:27] japj has joined the channel [16:28] MrTopf has joined the channel [16:30] mehlah has joined the channel [16:31] sreeix has joined the channel [16:32] dgathright has joined the channel [16:32] broofa has joined the channel [16:33] Casan: FreeBSD Node.js problem: due to problems installing npm from source on node-devel from ports, I'm trying to compile from node v0.5.7 from source but I encounter a problem while running gmake In function `uv_fs_fdatasync': src/unix/fs.c:450: undefined reference to `fdatasync' - I don't understand. gist at https://gist.github.com/1251170 I wish I had an idea how to move forward. [16:33] isaacs: Casan: does it work with the code on node master? [16:35] joshthecoder has joined the channel [16:35] Casan: isaacs, I thought I tried, already. but let me confirm it, brb [16:36] isaacs: # git clone git://github.com/joyent/node.git [16:36] isaacs: # git checkout v0.5.7 [16:36] isaacs: shouldn't there be a "cd node" in there? [16:36] gregpascale has joined the channel [16:37] nyam has joined the channel [16:37] N0va` has joined the channel [16:40] irahgel has left the channel [16:40] DrMcKay: isaacs: npm needs a bot detecting common strings in npm issues: https://github.com/isaacs/npm/issues/1468 [16:40] jbpros has joined the channel [16:40] SamuraiJack has joined the channel [16:41] isaacs: DrMcKay: we have one. It's TheJH. [16:41] isaacs: ;) [16:41] isaacs: DrMcKay: honestly, i like having to take human action for all of those. [16:41] isaacs: otherwise, it's too easy to just never fix them [16:41] isaacs: the tar thing will be a thing of the past very soon. [16:42] DrMcKay: :) [16:42] DrMcKay: isaacs: OK, cool :) [16:43] DrMcKay: ACTION  [16:43] DrMcKay: isaacs: also, merge my pull request [16:43] DrMcKay: ACTION  [16:44] isaacs: DrMcKay: probably not until after the winbin stuff. [16:44] isaacs: DrMcKay: too much in transit right now [16:45] tuhoojabotti: DrMcKay: Error, you did not specify xml version. [16:45] skyl has joined the channel [16:45] DrMcKay: isaacs: sure, no problem :) (winbin is windows version of npm?) [16:45] Casan: isaacs, you are right, did that too. ok here is a much more complete gist: https://gist.github.com/1251229 [16:45] jetienne has joined the channel [16:46] DrMcKay: tuhoojabotti: I you have some strict parser out there [16:46] isaacs: Casan: can you join #libuv? [16:47] Casan: notice that this time the 'build' seem to finish successfully, but I also notice that some of the checking is missing. [16:47] isaacs: Casan: it's weird that there's no error or anything getting printed, just g++....end [16:48] tuhoojabotti: Yeah. [16:48] tuhoojabotti: Perhaps it was piped to Google+ [16:48] smtlaissezfaire has joined the channel [16:48] JasonSmith: davididas: Regarding the anonymous functions in map, I actually prefer Matt's original syntax, it looks like a whole script file [16:48] creationix has joined the channel [16:49] JasonSmith: ECHAN, sorry :) [16:49] robertfw has joined the channel [16:49] qbert65536 has joined the channel [16:49] colinclark has joined the channel [16:50] ghost_olli has joined the channel [16:51] jsurfer has joined the channel [16:51] jedahan has joined the channel [16:51] ecin has joined the channel [16:53] CIA-109: node: 03Ryan Dahl 07master * r005448b 10/ Makefile : Don't ls node_g after make - it confuses people - http://git.io/_hmHZg [16:53] eee_c has joined the channel [16:53] nibblebot has joined the channel [16:58] MrTopf has joined the channel [16:59] JasonSmith: isaacs: Mind a possible newbie question? I have a new package that is both a library and a CLI tool. Seems like it should depend on optimist if installed -g but not depend if installed locally. Is that doable or am I worrying too much? [17:00] StanlySoManly has joined the channel [17:01] guidocalvano has joined the channel [17:02] kevwil_ has joined the channel [17:02] towski has joined the channel [17:02] zmbmartin has joined the channel [17:03] TheFuzzball has joined the channel [17:03] dgathright has joined the channel [17:03] bradleymeck: JasonSmith, dont worry about it [17:04] kevwil has left the channel [17:04] DrMcKay: JasonSmith: optimist is small enought not to care about it :) [17:04] DrMcKay: btw, learning how to walk again is fun [17:04] JasonSmith: Thanks, all [17:05] meandi2 has joined the channel [17:05] dshaw_ has joined the channel [17:05] upstream has joined the channel [17:05] smathy_ has joined the channel [17:08] anveo has joined the channel [17:08] reid has joined the channel [17:09] localhost has joined the channel [17:09] BoiseComputer has joined the channel [17:11] kevwil has joined the channel [17:11] TooTallNate has joined the channel [17:12] zmbmartin has joined the channel [17:12] pt_tr has joined the channel [17:15] vidi has joined the channel [17:15] jonrohan has joined the channel [17:17] perezd has joined the channel [17:17] colinclark has joined the channel [17:18] brion has joined the channel [17:18] robotmay has joined the channel [17:19] Yuffster_work has joined the channel [17:19] Spion has joined the channel [17:19] zmbmartin_ has joined the channel [17:19] CarterL has joined the channel [17:20] futini has joined the channel [17:21] Casan: FreeBSD npm problem: I changed to compile from master and not v0.5.7, and Node.js successfully completed gmake install. However npm ERR! Could not create /usr/local/lib/node_modules/___npm.npm - verbose gist at: https://gist.github.com/1251301 [17:23] DrMcKay: Casan: use sudo sh instead of sh [17:23] dandean has joined the channel [17:24] JaKWaC has joined the channel [17:24] Casan: DrMcKay, fantastic :) the latest node, npm is running on freebsd.. now I can begin haha, happy. thanks. [17:25] DrMcKay: Casan: :) [17:26] cbzink has joined the channel [17:26] nforgerit has joined the channel [17:26] cbzink: Anyone have any good resources for a Node.js IM server (like AjaxIM) or know how to get AjaxIM working? [17:27] Morkel has joined the channel [17:27] aguynamedben has joined the channel [17:27] cjroebuck has joined the channel [17:27] CIA-109: libuv: 03Ryan Dahl 07ipc * r72d8d76 10/ (4 files): wip - http://git.io/BSbAUQ [17:27] CIA-109: libuv: 03Ryan Dahl 07ipc * r32151d5 10/ (13 files in 4 dirs): Add argument to uv_pipe_init for IPC - http://git.io/T25aRA [17:27] rendar has joined the channel [17:29] jbpros has joined the channel [17:29] dmkbot has joined the channel [17:30] vidi has joined the channel [17:31] dmsuperman: DrMcKay: Sorry I just returned, yes I'm using that driver [17:31] zmbmartin has joined the channel [17:31] dmsuperman: DrMcKay: In reference to mongodb and find({_id:ObjectID}) [17:34] mendel_ has joined the channel [17:34] edenli has joined the channel [17:34] colinclark has joined the channel [17:35] dmkbot has joined the channel [17:35] stonebranch has joined the channel [17:36] _kud has joined the channel [17:36] dandean has joined the channel [17:36] pid_ has joined the channel [17:36] whitman has joined the channel [17:38] ossareh_ has joined the channel [17:39] devongovett has joined the channel [17:40] neilk_ has joined the channel [17:41] Aikar: O.o? buffer is going to go away before 1.0? why [17:41] DrMcKay: dmsuperman: you have to call .find({_id:id}) on collection [17:41] DrMcKay: Aikar: because of typed arrays [17:41] Aikar: re: http://www.youtube.com/watch?v=AH7kw8sKefg @ 44:45 [17:42] Aikar: hmm i need to look up them more [17:42] nibblebo_ has joined the channel [17:42] DrMcKay: dmsuperman: https://github.com/christkv/node-mongodb-native <- readme, data types section [17:42] wadey has joined the channel [17:42] r04r: V8/Javascript does lazy evaluation, right? [17:43] zeade has joined the channel [17:43] CIA-109: libuv: 03Ryan Dahl 07ipc * r73047ab 10/ test/run-tests.c : Add server to ipc_helper - http://git.io/nqNp1w [17:43] CIA-109: libuv: 03Ryan Dahl 07ipc * r38bcd0f 10/ include/uv.h : Add uv_write2 and uv_read2_start to header file - http://git.io/2Z44Tg [17:44] AvianFlu has joined the channel [17:44] githogori has joined the channel [17:44] dmsuperman: DrMcKay: I am [17:45] dmsuperman: DrMcKay: Ah, weird [17:45] xerox: what's the global equivalent of npm ls [17:45] dmsuperman: That documentation tells me to use db.bson_serializer.ObjectID [17:45] dmsuperman: Which works [17:45] dmsuperman: ACTION hates outdated documentation :-/ [17:45] wadey has joined the channel [17:45] dmsuperman: Thanks though :D [17:45] DrMcKay: dmsuperman: :) [17:46] DrMcKay: are we getting ipc? cool! [17:46] mrsrikanth has joined the channel [17:46] dmsuperman: DrMcKay: One last thing if you happen to know [17:47] dmsuperman: Do you know how I could test that a value is of the type which ObjectID returns? [17:47] dmsuperman: typeof tells me 'object' [17:47] `3rdEden has joined the channel [17:47] dmsuperman: Which is odd considering console.dir reports it as _id: 4e822643a95d3b0f27000001 (no quotes) [17:47] DrMcKay: dmsuperman: brb (15 minutes) [17:48] xy has joined the channel [17:48] robertfw has left the channel [17:48] zmbmartin has joined the channel [17:48] dmsuperman: Sure thing [17:49] yorick: xerox: npm ls -g? [17:49] xerox: oh simple as that [17:50] criswell has joined the channel [17:50] Wizek has joined the channel [17:51] Renegade001 has joined the channel [17:53] reid has joined the channel [17:54] nibblebot has joined the channel [17:54] meandi has joined the channel [17:55] dshaw_: Has anyone done anything that checks that your node_modules are up-to-date with package.json at execution time? [17:55] MrWarGames has joined the channel [17:56] AvianFlu: dshaw what do you mean specifically [17:56] stelleg has joined the channel [17:56] yorick: you could use the npm api [17:56] AvianFlu: are you talking about checking npm for the latest versions? [17:56] AvianFlu: or about making sure all your stuff in node_modules is also in package.json [17:56] MrWarGames has joined the channel [17:56] dshaw_: AvianFlu: 2ND [17:56] kristsk has joined the channel [17:57] dshaw_: yorick: which command? [17:57] dmkbot has joined the channel [17:57] AvianFlu: dshaw_, http://github.com/nodejitsu/require-analyzer might be worth a look too [17:57] yorick: npm up? [17:57] AvianFlu: it wraps all that stuff [17:57] AvianFlu: it explicitly checks for stuff in node_modules that isn't in package.json [17:57] yorick: npm outdated [17:57] AvianFlu: also does some even crazier stuff [17:57] dshaw_: AvianFlu: Cool. Thought you guys might have something. [17:57] yorick: use npm outdated :P [17:58] dshaw_: yorick: Good [17:58] xerox: how was it called that program to re-run a node program automatically when its source is changed and saved ? [17:59] yorick: var npm = require('/usr/local/lib/node_modules/npm/npm.js') [17:59] dshaw_: yorick: can you call that as a method if you require in npm? That would be even better than exec-ing it. [18:00] dshaw_: ACTION lol [18:00] eee_c1 has joined the channel [18:00] yorick: npm.load({}, function(er) { if (er) handle_error(er); npm.commands.outdated(function(er, data) { ... }) }) [18:00] yorick: like so [18:01] socialhack has joined the channel [18:01] dshaw_: yorick: boom. Thanks! [18:01] erichynds has joined the channel [18:02] yorick: it checks if all modules are up-to-date [18:02] yorick: not neccesarily with package.json [18:03] jslatts_ has joined the channel [18:03] yorick: I think you can just use npm.commands.install [18:03] dshaw_: hmm [18:03] reid has joined the channel [18:04] dshaw_: yorick: so if I add a dependency, you don't think outdated would catch that. [18:04] dshaw_: ACTION tests it [18:05] dshaw_: yorick: Yeah, that's not what I want. [18:06] yorick: then make something yourself [18:06] dshaw_: :) [18:06] dshaw_: sho nuff [18:06] yorick: I don't think it's a good idea to enforce this stuff anyways [18:06] r04r: Is there a simple way to check if a port is used on a system with nodejs? [18:06] dshaw_: Most of the time when I want npm to do something crazy… it already's doing what I want. :) [18:07] FIQ has joined the channel [18:08] dshaw_: I'll pick izaacs brain when he gets on and check out AvianFlu's recs. [18:08] AvianFlu: dshaw_ our jitsu CLI tool runs the require-analyzer [18:08] AvianFlu: and updates all the package.json fields too [18:08] AvianFlu: you might be able to use it in an offline way and not have to make a r-a script :) [18:08] aho has joined the channel [18:08] AvianFlu: let me see if one of the commands will just update your package for you [18:09] robi42 has joined the channel [18:09] postwait has joined the channel [18:09] skyl has joined the channel [18:11] tylerstalder has joined the channel [18:11] zeropx has joined the channel [18:12] jakehow has joined the channel [18:12] markwk has joined the channel [18:14] Xano has joined the channel [18:18] isaacs has joined the channel [18:20] mehlah has joined the channel [18:20] khismetix has joined the channel [18:21] kristsk has joined the channel [18:22] captain_morgan has joined the channel [18:23] mhstop has joined the channel [18:24] StanlySoManly: is there some way i can do something like require('vm').runInThisContext but let it have access to local scope? here's a snippet of what i'm trying to do: http://pastebin.com/rnVmuLXc [18:24] nibblebo_ has joined the channel [18:25] knifed has joined the channel [18:25] StanlySoManly: node 0.5.5, btw, if that makes a difference. [18:28] Country has joined the channel [18:29] Yuffster_work has joined the channel [18:29] johnwards has joined the channel [18:31] pt_tr_ has joined the channel [18:32] MatthewS has joined the channel [18:33] kevwil has joined the channel [18:33] franciscallo has joined the channel [18:33] ryanrolds_w has joined the channel [18:33] heavysixer has joined the channel [18:34] jetienne has joined the channel [18:35] dmkbot has joined the channel [18:35] creationix has left the channel [18:35] CIA-109: node: 03Ryan Dahl 07master * r84641fc 10/ wscript : WAF: Clean out/Release/deps/uv before build - http://git.io/S6Vu1A [18:37] fmeyer has joined the channel [18:38] wookiehangover has joined the channel [18:38] Wizek has joined the channel [18:38] shipit has joined the channel [18:39] wookiehangover: is there a way to install a dependency from a package.json file from a git repo? [18:39] wookiehangover: npm doesnt seem to want to do it [18:42] DrMcKay: wookiehangover: https://github.com/Relief-1/Relief1/blob/master/package.json#L16 [18:42] nibblebot has joined the channel [18:43] wookiehangover: DrMcKay: thanks [18:43] gsmcwhirter has joined the channel [18:43] wookiehangover: unfortunately, that's what I'm doing [18:43] wookiehangover: but its not working [18:44] zemanel has joined the channel [18:45] jonrohan has joined the channel [18:45] bradleymeck has joined the channel [18:45] DrMcKay: wookiehangover: npm version? [18:45] wookiehangover: I'm updating to the latest now [18:45] wookiehangover: but that doesnt work in 1.0.15 [18:46] wookiehangover: ok, update fixed it [18:46] wookiehangover: thanks [18:46] rfay has joined the channel [18:46] dmkbot has joined the channel [18:47] maushu has joined the channel [18:48] zemanel_ has joined the channel [18:48] michaeldeol has joined the channel [18:50] wink_ has joined the channel [18:50] CIA-109: libuv: 03Ryan Dahl 07ipc * r24399c5 10/ (include/uv.h src/unix/stream.c): unix: implement uv_write2 - http://git.io/x-GHOQ [18:50] mikedeboer has joined the channel [18:53] r04r: Is `var slaveSocket = new net.Socket(); slaveSocket.connect(targetPort, "127.0.0.1"); slaveSocket.pipe(forwardConn); forwardConn.pipe(slaveSocket);` supposed to work for tunneling all data between two sockets? I seem to be having issues :/ [18:53] wbednarski has joined the channel [18:53] polotek has joined the channel [18:54] polotek: tjholowaychuk: hey you there? [18:54] tjholowaychuk: yeah [18:54] captain_morgan has joined the channel [18:54] HenrikJoreteg has joined the channel [18:54] eignerchris_ has joined the channel [18:54] polotek: quick question about express [18:54] tjholowaychuk: k shoot [18:54] polotek: I'm working with someone else's code [18:54] Frippe has joined the channel [18:54] Ozd has joined the channel [18:55] polotek: they have a route that calls into some api functions [18:55] polotek: app.get('/api/v1/:func', ...) [18:55] polotek: I need to now make this a little smarter. Some api funcs only respond to post [18:56] polotek: What's the nice way to do this such that I can still have a top level handler at '/api/v1'? [18:56] tmedema has joined the channel [18:56] tjholowaychuk: so you want to handle /api/v1 and /api/v1/:func ? [18:57] tjholowaychuk: not sure i get the issue [18:58] baoist has joined the channel [18:58] polotek: the issue is that depending on what :func is, I want to restrict the response [18:58] zmbmartin has joined the channel [18:59] CarterL has joined the channel [18:59] polotek: "getDocument" responds to get and not post [18:59] tjholowaychuk: ah [18:59] polotek: publishDocument responds to post and not get [18:59] tjholowaychuk: quite a few ways you could go about doing that [18:59] kevwil has joined the channel [18:59] polotek: good, trying to avoid listing a route for each func name [18:59] tjholowaychuk: hmm for example you could organize the methods to match the http verb [18:59] tjholowaychuk: methods.get.foo = function(){} [19:00] tjholowaychuk: or if that's not ideal [19:00] tmedema: Anyone has any idea why this request to a CSV file does not result in the file's contents but instead in a redirection page? https://gist.github.com/1251600 when going to that URL in the browser the CSV file appears [19:00] tjholowaychuk: well you pretty much have to define which methods respond to what some way [19:00] tjholowaychuk: it could be a simple array of method names [19:00] gr-eg has joined the channel [19:01] polotek: tmedema: how many redirects are there? I think request only follows so many by default [19:01] polotek: tjholowaychuk: ideally I would be able to do app.all('/api/v1', apiHandler.handle); [19:01] wbednarski has joined the channel [19:02] polotek: then inside the handler I can do as you suggest, check the func types [19:02] stisti has joined the channel [19:02] tmedema: polotek: it follows 10 by default, more than enough [19:02] tjholowaychuk: polotek yup you could do that [19:02] polotek: and then return 403 or something if the :func and verb don't match [19:03] tjholowaychuk: or app.get('/api/v1/:func', api.get) app.post('/api/v1/:func', api.post) [19:03] tjholowaychuk: etc [19:03] tjholowaychuk: if they're organized in that way [19:03] tjholowaychuk: or can be [19:03] tjholowaychuk: or for example if you want args as well [19:03] tjholowaychuk: maybe [19:03] tjholowaychuk: app.all('/api/v1/:name/*', callback) [19:04] tjholowaychuk: and just req.params[0].split('/') [19:04] tjholowaychuk: to give you the remaining segments (if any) [19:04] harthur has joined the channel [19:04] polotek: tjholowaychuk: I think your first suggestion will work fine. api.get and api.post [19:05] polotek: I would just check the func name and return a non 200 if it doesn't match some pre-defined set [19:05] Yuffster__work has joined the channel [19:05] polotek: thanks. [19:05] rfay has joined the channel [19:06] jonrohan has joined the channel [19:06] sonnym has joined the channel [19:06] pquerna has joined the channel [19:07] tim_smart|away has joined the channel [19:09] Lorentz has joined the channel [19:10] eignerchris has joined the channel [19:10] amoxibos has joined the channel [19:11] Gregor` has joined the channel [19:11] Pilate has joined the channel [19:12] pquerna has joined the channel [19:13] Casan: node+npm is now both installed from master, it is working yay! now I'm trying to get the hang of using npm. I'm installing express. I git cloned express.js and ran npm install -d. Right now I'm trying to satisfy its dependency for Commander.js - hey tjholowaychuk - install -d tells me that my npm1.0.30+node0.5.8-pre is not compatible, When I run npm install commander.js/ it says it requires node0.4.x :: What am I doing wrong? [19:13] i42n has joined the channel [19:14] PPilate has joined the channel [19:16] mjr_ has joined the channel [19:17] tim_smart|away has joined the channel [19:17] maeldur has joined the channel [19:19] navaru has joined the channel [19:20] yorick: Casan: express.js is not compatible with node0.5.8-pre [19:20] avih_ has joined the channel [19:20] yorick: you can't run it with node/master [19:20] jmoyers has joined the channel [19:21] libScout has joined the channel [19:21] xerox: is there any good reason to run unstable other than hacking on it [19:21] Casan: yorick, thanks, haha ok. previous versions failed to compile [19:22] Casan: xerox, running on freebsd, and couldn't get 5.7 and npm to compile properly... but I'll give it another try. [19:22] jesusabdullah: xerox: If you're chomping at the bit for windows support..? [19:22] thomblake1 has joined the channel [19:22] jesusabdullah: Casan: Why are *you* running 0.5.x? Didn't you just say you were on freebsd? [19:22] wilmoore has joined the channel [19:22] yorick: xerox: because unstable will soon == stable [19:23] thomblake1 has left the channel [19:23] ceej has joined the channel [19:23] libScout: can't seem to find this answer... can i create a node server that routes requests on port 80 to various services, including my tradition apache server? [19:23] mraleph has joined the channel [19:23] tilgovi has joined the channel [19:23] markwk has joined the channel [19:23] a11235 has joined the channel [19:23] scott_gonzalez has joined the channel [19:23] soothsayer has joined the channel [19:24] Casan: jesusabdullah, yes. I'm thinking that, by the time I have learned how to use node, 5.x will be default, and 4.x likely to be deprecated, so timing it now by learning things the 5.x way. [19:24] yorick: libScout: yes [19:24] sfoster has joined the channel [19:25] libScout: yorick, thanks... would this be more like a proxy or a dns? i want certain urls on a domain to route to a couple node services and then everything else goes onto apache [19:25] grieve[a] has joined the channel [19:25] mrkurt has joined the channel [19:26] pquerna_ has joined the channel [19:26] wbednarski has joined the channel [19:26] jesusabdullah: Casan: The APIs aren't going to change too much between 0.4.x and 0.5.x [19:26] Aikar: any one know of another soap module that actually works and doesnt use C++ addons (ie no npm install soap). node-soap-client seems weird and not working, soap uses C++ for xml, douche seems incomplete [19:26] StanlySoManly: maybe there's a better way to ask my question. :) is there a way that i can pull in javascript from another file and have it run with access to local scope? [19:26] yorick: libScout: proxy [19:26] harthur has joined the channel [19:26] rick_h_ has joined the channel [19:26] RuslanPopov: heh, still can't diff two yaml files with nodejs :( [19:26] yorick: jesusabdullah: the eio api is changed [19:27] rfay has joined the channel [19:27] Brandon_R has joined the channel [19:27] CoverSlide: native module will probably break [19:27] Brandon_R: hey guys [19:27] Brandon_R: does this chat use socket.io? [19:28] CoverSlide: this chat uses irc [19:28] wbednarski has joined the channel [19:29] CoverSlide: full javascript-based xml parser will suck [19:29] CoverSlide: regexes aren't really meant for parsing something like xml [19:30] kflorence has joined the channel [19:32] Brandon_R: how do people write parsers without regex? [19:32] polotek: tjholowaychuk: does route middleware still take params on the route? e.g. /api/v1/:func? [19:32] polotek: or only a path? [19:33] Casan: ohh well, creating another jail now for the 0.4.x series to get something stable.. then I can tinker with 0.5.x on the side. [19:33] konobi: Brandon_R: recursive descent parsers [19:33] dreamdust: @Brandon_R: With state-machines. [19:33] Aikar: oh lol [19:33] tjholowaychuk: polotek they can access anything the main route callback can [19:33] Aikar: mt [19:33] Brandon_R: cool i might need to check these stuff out [19:33] polotek: that's what I figured. must be some other reason it's not firing [19:33] Brandon_R: could make my apps more fast [19:33] necromancer: socket.io rules [19:33] tmedema: Is there a node module for downloading attachments that are gziped? Eg. google CSV files, like http://www.google.com/insights/search/overviewReport?cat=0-570&cmpt=q&content=1&export=1 [19:34] necromancer: actually i wonder how useful node would be without the ability to stream data from other sites [19:34] necromancer: since node is so fast it's almost like realtime communication [19:34] necromancer: which in the past had to be done using BOSH and XMPP... [19:34] Brandon_R: socket.io is very nice [19:34] softdrink: ACTION pets socket.io [19:35] Brandon_R: i have a question guys [19:35] threedaymonk has joined the channel [19:35] Brandon_R: what css templating engine will convert css for backward compatibility [19:35] Brandon_R: like what socket.io does for sockets [19:35] dreamdust: SASS + Compass [19:35] softdrink: Brandon_R: what do you mean? [19:35] Brandon_R: rounded-corners would turn to moz-rounded-couners etc [19:35] dreamdust: Use Compass mixins for compatibility [19:36] aron_ has joined the channel [19:36] tjholowaychuk: Brandon_R stylus [19:36] tjholowaychuk: border-radius: 5px 10px etc [19:36] tjholowaychuk: will expand [19:36] softdrink: well of course tjholowaychuk is going to say stylus… but he's right. ;) [19:36] Brandon_R: less does it also [19:37] rfay has joined the channel [19:37] Brandon_R: but in a none default way [19:37] tjholowaychuk: less/sass require explicit mixin use [19:37] softdrink: ooh… codesurgeon looks interesting [19:37] pquerna has joined the channel [19:37] dreamdust: how did I not know about stylus [19:38] dreamdust: I always wondered why the explicit mixin is used [19:38] tjholowaychuk: no one knowsssOoOoo [19:38] tjholowaychuk: hha [19:38] dreamdust: in compass I mean [19:38] tjholowaychuk: we dont talk about it too much [19:38] dreamdust: lol [19:38] dreamdust: it's like wtf [19:38] softdrink: only cool kids use stylus [19:38] softdrink: ¬¬ [19:38] EhevuTov has joined the channel [19:38] tjholowaychuk: softdrink https://github.com/LearnBoost/stylus/commit/f48a04b5b37cc77c58c2d450e00eddf185eec1f2 [19:38] tjholowaychuk: just added that today [19:38] tjholowaychuk: so you can scope a file [19:39] tjholowaychuk: to keep things cleaner [19:39] dshaw_: Joyent office hours today? [19:39] softdrink: ooh handy [19:39] softdrink: that should clean up one of my files pretty nicely [19:40] softdrink: does it scope variables and functions as well, or just selectors? [19:40] tjholowaychuk: just selectors [19:40] softdrink: doh [19:41] thepatr1ck has joined the channel [19:41] softdrink: 'cause right now in one of my files i have a bunch of variables like: RingNavigator_radius, RingNavigator_sliceAngle, etc [19:41] hydrozen has joined the channel [19:41] mikedeboer has joined the channel [19:41] rphillips has joined the channel [19:41] rphillips has joined the channel [19:41] tjholowaychuk: ah [19:41] arpunk has joined the channel [19:42] softdrink: like so: https://gist.github.com/0757b4f174614b996c6c [19:42] Pilate has joined the channel [19:42] tjholowaychuk: gotcha [19:42] tilgovi_ has joined the channel [19:42] tilgovi_ has joined the channel [19:42] tjholowaychuk: yeah it would be nice to have file-local functions too [19:42] tjholowaychuk: i dont go to crazy with that stuff [19:43] softdrink: soooo basically scoping lets me avoid having everything that's under line 21 indented...? [19:43] tjholowaychuk: yup [19:43] softdrink: (not complaining, just clarifying) [19:43] softdrink: cool [19:43] tjholowaychuk: it doesn't work with root properties (yet) [19:43] tjholowaychuk: foo: 'bar' at root for example [19:43] japj: ACTION is using vows on windows with nodejs master and loves the coloured terminal encoding support ;) [19:44] softdrink: that'll actually help. i had a coworker create another widget and he accidentally ended up with a crapload of global declarations because he forgot to indent [19:44] maeldur has joined the channel [19:44] jsurfer has joined the channel [19:44] pquerna has joined the channel [19:44] zemanel has joined the channel [19:45] elliottcable: who was I talking to about vm the other day? [19:45] elliottcable: I finally figured it out and wrote up a testcase [19:45] elliottcable: afaict it’s a bona fide bug [19:45] elliottcable: possibly in V8 instead of Node.js, though. [19:45] softdrink: dear github: please let me organize the repos that i watch into folders. sincerely, me [19:45] elliottcable: softdrink › yes, a thousand times yes [19:46] elliottcable: or tags, since they’re obviously fond of them (Issues.) [19:46] necromancer: dear softdrink, stop following all those damn repos you're killing our servers. love, github [19:46] elliottcable: necromancer › I think I have him beat. [19:46] softdrink: dear github, I still love you. me. [19:46] softdrink: :D [19:46] necromancer: heh [19:46] elliottcable: necromancer › http://github.com/elliottcable [19:46] Aikar: hmm [19:46] elliottcable: I can’t get it to load, but I know it was like 600+ *last year* [19:46] softdrink: i guess i *could* just use bookmarks... [19:46] Aikar: so i decided to try to use soap module. looks like its buggy :( [19:47] mikedeboer has joined the channel [19:47] elliottcable: ah yes, following 495 people and 1,016 repos [19:47] softdrink: speaking of… does anyone have a good bookmarking solution? [19:47] Aikar: ima cry if i have to execute a php process to make soap request ; ; [19:47] ecin_ has joined the channel [19:47] elliottcable: softdrink › I love pinboard. [19:47] gerard0 has joined the channel [19:47] elliottcable: then again, it was three cents to sign up when I signed up. [19:47] elliottcable: now it’s like ten bucks [19:47] elliottcable: so *shrug* [19:47] softdrink: doh [19:47] stepheneb has joined the channel [19:47] softdrink: i'm broke currently. stupid cobra payments. [19:48] elliottcable: cobra? [19:48] softdrink: insurance [19:48] meandi2 has joined the channel [19:49] jbpros has joined the channel [19:49] JaKWaC has joined the channel [19:51] chrislorenz has joined the channel [19:51] vampi-the-frog has joined the channel [19:51] vampi-the-frog has joined the channel [19:51] MooGoo: lpine vs mutt [19:51] MooGoo: asdasdl;, [19:51] MooGoo: 'god damnit [19:51] MooGoo: fucking focus follows mouse [19:51] MooGoo: ahem [19:52] rfay has left the channel [19:52] zmbmartin has joined the channel [19:52] fangel has joined the channel [19:53] anveo has joined the channel [19:53] creationix has joined the channel [19:53] nibblebo_ has joined the channel [19:53] overra has joined the channel [19:53] creationix: If I were to whip up a simple rails-style crud app using node, what would I use? [19:54] khmer: creationix: express.js [19:54] dshaw_: creationix: Try railways [19:54] tjholowaychuk: rails? [19:54] tjholowaychuk: rails is for being rails [19:54] Xeoncross: haha [19:54] creationix: no, the routing is easy [19:54] Brandon_R has joined the channel [19:54] creationix: tjholowaychuk: right, but that's not node, part of my given requirements [19:54] dshaw_: creationix: Curious to see how it is. [19:54] Brandon_R: hey guys [19:54] dmkbot has joined the channel [19:54] creationix: tjholowaychuk: I do agree though [19:55] Brandon_R: what is the best framework for writing nodejs tests? [19:55] konobi: node-tap! [19:55] konobi: ACTION ducks [19:55] creationix: routes are easy, and my client is fat, so I don't need any html templates [19:55] creationix: the hard part if the database access [19:55] CoverSlide: vows [19:55] dshaw_: creationix: …and don't have a project that I'm interested in using it. [19:55] dshaw_: creationix: yep [19:55] tjholowaychuk: why is database access hard [19:56] creationix: tjholowaychuk: maybe it's just because I haven't done much node web apps with databases [19:56] creationix: but it seems really hard to get started [19:56] creationix: node-sqlite is throwing assert errors [19:56] creationix: I wish I had finished nstore [19:56] jesusabdullah has joined the channel [19:56] tim_smart|away has joined the channel [19:56] Brandon_R: i've been checking out vows [19:56] Lorentz has joined the channel [19:56] Brandon_R: i love how those pages look [19:56] maeldur has joined the channel [19:56] Brandon_R: less and vows [19:56] Pilate has joined the channel [19:57] kflorence has joined the channel [19:57] Brandon_R: were they created by the same designer lol [19:57] AphelionZ has joined the channel [19:57] visnup has joined the channel [19:57] Gregor has joined the channel [19:59] vampi-the-frog has joined the channel [19:59] Brandon_R: how do i properly make a nodejs project? [19:59] tjholowaychuk: that's an extremely vague question [19:59] Brandon_R: i know this question is vague but if you can send me in the right direction i would greatly appreciate it [19:59] creationix: Brandon_R: there isn't a lot of convention and "best practices" here [20:00] dshaw_: tjholowaychuk: "hard" is probably overkill, but getting data out of persistence is the most involved part of build web apps [20:00] Brandon_R: like npm project layout [20:00] Brandon_R: dependancy handling etc [20:00] tjholowaychuk: dshaw_ for sure [20:00] pquerna has joined the channel [20:00] tjholowaychuk: definitely not hard [20:00] dshaw_: tjholowaychuk: right [20:00] creationix: Brandon_R: use npm, create a package.json for you app, even if it's not a library [20:00] tjholowaychuk: Brandon_R https://github.com/visionmedia/ngen [20:00] tjholowaychuk: i wrote that for my personal use [20:00] tjholowaychuk: but you're free to use that to generate project skeletons [20:00] Brandon_R: ill check it out [20:00] dshaw_: tjholowaychuk: The problem with Rails making it "easy" is that it seems to make your app do stupid things. [20:00] bentruyman has joined the channel [20:01] bentruyman has joined the channel [20:01] pquerna has joined the channel [20:01] tjholowaychuk: dshaw_ yeah it goes both ways [20:01] tjholowaychuk: it helps you [20:01] tjholowaychuk: and it hurts you [20:01] mtsl has joined the channel [20:01] elliottcable: well, I forgot who was helping me [20:01] tjholowaychuk: and starting with something smaller like express helps you [20:01] tjholowaychuk: and it hurts you [20:01] elliottcable: but I finally posted the testcase for the `vm` module issues. [20:01] elliottcable: https://github.com/joyent/node/issues/1801 [20:01] tjholowaychuk: very little difference [20:01] elliottcable: anybody see any obvious mistakes that I missed? [20:01] dshaw_: yep, tradeoff [20:01] dshaw_: s [20:01] Casan has joined the channel [20:02] elliottcable: Brandon_R › lol, both are cloudhead [20:02] elliottcable: woah, what, cloudhead isn’t in here? [20:02] elliottcable: bahaha [20:02] mtsl: hi there, is it possible to halt the event loop but for a specific event? I'm writing a module which is going to download a file. While it waits for the request's response, it should halt the execution of the code. I tried with a simple do ... {}, but this halts the whole script. [20:02] Brandon_R: what's that [20:02] elliottcable: Brandon_R › cloudhead, Alexis, is the guy who wrote both LESS and vows. [20:02] dshaw_: I think the slimmer approach that Express offers give your more flexibility in the long run. [20:02] Brandon_R: cool [20:02] elliottcable: he and I are very similar, and good friends; we bounce such ideas off of one another. [20:02] creationix: mtsl: no, node is a singlethreaded reactor loop [20:02] tjholowaychuk: dshaw_ yeah i agree [20:03] Brandon_R: that explains why the layout looks the same lol [20:03] elliottcable: He’s one of the smartest guys, and best developers, that I know. [20:03] creationix: mtsl: technically there are things like fibers, but they shouldn't be used unless you understand the implications [20:03] mtsl: thx [20:03] Brandon_R: by his projects, he seems pretty knowledgable [20:03] elliottcable: Brandon_R › Mmhmm. [20:03] jldbasa has joined the channel [20:03] creationix: mtsl: use a callback [20:04] polotek: mtsl: you don't want to pause execution, you want the file to stream in [20:04] elliottcable: creationix › could you take a look at this? [20:04] polotek: mtsl: and get a callback when it's done [20:04] creationix: elliottcable: sure, but I rarely use the vm module [20:04] elliottcable: creationix › I understand; I just want to have a second pair of eyes [20:04] elliottcable: make sure I didn’t make any glaring, stupid errors that would explain it [20:05] mtsl: there is currently a callback, but the functionality of my module depends on a file which is being downloaded. without this file, there wouldn't be results [20:05] elliottcable: I once spent a day creating a testcase and getting it under review by the devs of a system, only to find I’d made a stupid syntax error ಠ_ಠ [20:05] polotek: tjholowaychuk: my middleware is definitely not being called [20:05] markwubben has joined the channel [20:05] polotek: app.use('/api/1/:func', ....) [20:05] polotek: I tried to throw an error inside and nothing happens [20:05] polotek: not being executed [20:05] polotek: any idea why that would be? [20:05] CrisO has left the channel [20:06] tjholowaychuk: polotek some other middleware could be responding before it [20:06] ckknight has joined the channel [20:06] tjholowaychuk: https://github.com/visionmedia/express-trace [20:06] tjholowaychuk: try that [20:06] tjholowaychuk: works best if you curl a url [20:06] tjholowaychuk: so you dont have stdout flying all over the place [20:06] junkee[] has joined the channel [20:07] creationix: mtsl: right, you're module will need to accept a callback before it does it's stuff if it depends on I/O [20:07] maeldur has joined the channel [20:07] Lorentz has joined the channel [20:07] jesusabdullah has joined the channel [20:07] visnup has joined the channel [20:07] creationix: elliottcable: so what are you trying to show? [20:08] mikeric has joined the channel [20:08] jonrohan has joined the channel [20:08] mtsl: thank you [20:08] nyrb has joined the channel [20:08] polotek: tjholowaychuk: yeah I'm curling [20:08] PPilate has joined the channel [20:08] bentruyman has joined the channel [20:08] luke`_ has joined the channel [20:08] elliottcable: creationix › speaking of the second testcase: [20:08] softdrink: whyyyyy can't i find a good cross-device notebook solution? [20:09] tim_smart|away has joined the channel [20:09] elliottcable: creationix › within `outFunc()`, `inFunc()` is invisible even though it’s already been defined. [20:09] isaacs has joined the channel [20:09] polotek: is there a short circuit somewhere such that if I POST, but I don't have an app.post defined, it'll just return 404? [20:09] jslatts has joined the channel [20:09] necromancer: softdrink: like for actually taking notes in class? [20:09] tjholowaychuk: polotek that's connect's default behaviour if nothing handles it [20:09] konobi: elliottcable: because inFunc wasn't declared in the same scope [20:09] PhilK has joined the channel [20:10] elliottcable: konobi › scope is irrelevant; this is just properties on an object. [20:10] softdrink: like taking notes *and* drawing [20:10] elliottcable: konobi › none of these are variables [20:10] polotek: yep, that was it [20:10] softdrink: available on my desktop and portable devices [20:10] polotek: I would expect that middleware is always executed [20:10] elliottcable: konobi › see the last testcase, which *does* work; it’s only the middle one that fails [20:10] konobi: elliottcable: scope does matter across vm [20:10] tjholowaychuk: polotek it is [20:10] elliottcable: konobi › … yes, but this is *an object*, not a variable in scopes. [20:10] Brandon_R: what is the purpose of an index.js file? is it the same purpose as an index.html file? [20:10] objectiveous has joined the channel [20:10] tjholowaychuk: polotek if the middleware next() through the whole stack [20:10] Brandon_R: when no input file is specified it is automatically called? [20:11] jp323 has joined the channel [20:11] elliottcable: konobi › I’m saying scope, in general, is irrelevant to what is being tested here; not that it’s irrelevant to VMs [20:11] tjholowaychuk: then there's nothing left for connect to do [20:11] necromancer: softdrink: MS OneNote is awesome for that. unfortunately, it's windows only i think :) [20:11] alekhine has joined the channel [20:11] polotek: tjholowaychuk: no, the middleware function wasn't being called at all [20:11] softdrink: yeah i'm not running windows anywhere :) [20:11] micahjohnston has joined the channel [20:11] necromancer: there's also an app for mac that does basically the same thing (lets you draw too) but doesn't carry over on other devices [20:11] tjholowaychuk: there's something else going on then [20:11] tjholowaychuk: misconfiguration or something [20:11] necromancer: softdrink: i'm surprised no one's made a note taking app for iPad that syncs back to your ac [20:11] necromancer: mac* [20:11] elliottcable: OmniOutliner is great for that [20:12] elliottcable: expensive, though. OmniGroup charges arms and legs. [20:12] elliottcable: they’re big on your appendages. [20:12] softdrink: well there are things like evernote… but not what i'm looking for. evernote is buggy. [20:12] DrMcKay has joined the channel [20:12] softdrink: yeah omni needs to drop their prices by at least half. [20:12] isaacs has joined the channel [20:12] pquerna has joined the channel [20:12] elliottcable: lol more than that [20:12] konobi: elliottcable: directly after your runInNewContext, try console logging oo.inFunc [20:12] elliottcable: but it’s their call *shrug* [20:12] elliottcable: konobi › can you tell me a line number? or copy-paste the line you want me to add it after [20:13] elliottcable: or just try it in your `node` REPL [20:13] elliottcable: konobi › oh, I see what you’re saying. Like I said, look at the last testcase, it demonstrates the answer to exactly what you’re asking [20:13] elliottcable: *after* the runInNewContext, it’s definitely defined. It works fine. [20:13] softdrink: i think it's really crappy of them to have 3 separate omnifocus apps with no sort of license sharing. [20:14] necromancer: elliottcable: not if your job pays for it ;) [20:14] elliottcable: OmniFocus is crap anyway [20:14] elliottcable: use Things ^‿^ [20:14] konobi: elliottcable: oh! [20:14] necromancer: i <3 omnifocus [20:14] elliottcable: i <3 things [20:14] fumblnoob has joined the channel [20:14] elliottcable: SO THERE [20:14] necromancer: just for the SSL WebDAV sync... [20:14] necromancer: which definitely needs to be a part of 1Password just sayin [20:14] konobi: elliottcable: o.inFunc is closed over at the point you declare that function... at which point it's nothing [20:14] mikeric has joined the channel [20:14] konobi: try passing oo instead [20:14] softdrink: things has the *exact* same issue [20:15] softdrink: two different apps for iphone and ipad. [20:15] creationix: elliottcable: I don't understand how you expect infunc to be defined [20:15] necromancer: omnifocus would suck if it was the same app [20:15] necromancer: for all devices [20:15] creationix: elliottcable: oh, it's in the callback, so after the fact, nevermind [20:15] necromancer: the mac app is good for certain things like adding a bunch of tasks at once [20:16] elliottcable: creationix › yeah, it’s a little bit of a convoluted example. [20:16] necromancer: softdrink: the issue is that on the iPad, for example, writing with a stylus is not as accurate as it needs to be for a note taking app to really take off [20:16] elliottcable: ACTION is re-writing bits of it right now [20:16] necromancer: i mean, apple already has the handwriting recognition part down (see; newton) [20:16] softdrink: yeah i always feel like i'm drawing with a big fat marker on my ipad [20:17] softdrink: apple is missing a huge feature there… i think they're just being dicks and don't want to license wacom's patents. [20:17] softdrink: or vice versa [20:17] elliottcable: hrm? [20:17] elliottcable: wacom has a pen, Apple doesn’t. yes? [20:17] elliottcable: completely different tech, completely different purposes. [20:17] elliottcable: iPad isn’t *made* for drawing, it’s made for *interaction*. [20:18] creationix: elliottcable: ok, so if you console.log(oo) it doesn't have inFunc, the line right after you set it [20:18] creationix: for some reason, it's not taking changes [20:18] elliottcable: that’s a bit like saying “WELL TERMINAL.APP DOESN’T HAVE ANY OF THE GREAT RICH-TEXT SUPPORT OF PAGES.APP; I BET IT DIDN’T LICENSE PAGES.APP’S PATENTS.” [20:18] softdrink: i'm saying that apple should license wacom's stuff and *add* awesome stylus support with pressure sensitivity and accuracy… in *addition* to the capacitive touch that's already there [20:18] creationix: (had to append console to `oo` to have access to it. [20:18] elliottcable: creationix › yes, but it DOES after it finishes the VM. [20:18] elliottcable: creationix › and, to boot, writes in the *other direction* work immediately [20:18] elliottcable: if, uh, that phrase makes sense [20:19] elliottcable: hard to talk about this stuff; I don’t really have a grammar/jargon for it. [20:19] elliottcable: creationix › I’m writing a few more testcases to show more of how it’s odd, right now [20:19] vguerra has joined the channel [20:20] creationix: elliottcable: I think it has something to do with your object being the global for the context [20:21] mraleph: creationix: elliottcable: just look at the WrappedScript::EvalMachine in node_script.cc [20:21] konobi: creationix: when the function is declared, inFunc is closed over (as undefined) [20:21] konobi: since the variable isn't passed into the function [20:21] micahjohnston: softdrink: if they did that, that'd always be a secondary, not-very-good part of the iPad, and people using tablets for real would always buy a real one anyway [20:21] necromancer: softdrink: nah i bet that's coming in the next iPad. it's one of those "not a market until someone creates it" things. i used a laptop-based note taking app in college and it worked wonders, but that's because i can type faster than i can write. it did, however, pose a number of problems: i had difficulty drawing stuff with the trackpad [20:21] mraleph: it copies first from sandbox object into a new global object, then _after_ execution it copies things back into sandbox [20:22] mraleph: and it handles self-references as well [20:22] necromancer: i don't think the iPad needs to be "made for drawing" for it to be useful as a note taking or even a drawing utensil [20:22] dmkbot has joined the channel [20:22] captain_morgan has joined the channel [20:22] necromancer: the iPad isn't really "meant" for anything, it's just a touch screen with pretty colors inside of it [20:22] necromancer: s/touch/multitouch [20:22] tom_ has joined the channel [20:23] elliottcable: woah, micahjohnston shows his head [20:23] elliottcable: mraleph › that’s basically what I expected it was doing, but I don’t read C++ if I can help it [20:23] davve: it is meant to cut up cocaine on [20:23] elliottcable: I’d rather create the testcase, post it, and let someone else figure out the damn C++ to fix it >,> [20:23] Xeoncross has left the channel [20:23] elliottcable: ACTION shudders [20:23] Brandon_R has joined the channel [20:23] Brandon_R: Hey guys [20:23] Brandon_R: random question [20:24] elliottcable: as opposed to deterministic question? [20:24] mraleph: elliottcable: well. I can say I approve such approach. [20:24] mraleph: I can't [20:24] Brandon_R: Do you think javascript is doomed to follow the object oriented route and become a full oop language in the near or late future? [20:24] stepheneb_ has joined the channel [20:24] elliottcable: mraleph › I can understand that, but what can I do? It’s C++. [20:24] Brandon_R: much like php did [20:24] creationix: elliottcable: learn c++? [20:24] elliottcable: It’d take me fifty times as long as it would take anybody else to solve the issue; I have things to be doing with my time that are much more productive. [20:24] elliottcable: That’s what the separation of concerns is for: do what you’re good at. [20:24] Brandon_R: what problem do you have elliot? [20:24] devaholic: Brandon_R: https://github.com/tblobaum/nodeQuery [20:25] elliottcable: Brandon_R › what do you mean, “fully OOP?” [20:25] elliottcable: creationix › I know it, I just can’t stand it. I’d rather write Java or PHP, and I *really* don’t want to write Java or PHP. [20:25] creationix: mraleph: hey, on your "bare" vs "luvit" test, were you on 32-bit or 64-bit? [20:25] elliottcable: s/write/read/ [20:25] Brandon_R: like private public protected members [20:25] Brandon_R: interfaces and abstract classes [20:25] micahjohnston: if that's what you mean by fully OOP, that makes me very sad [20:25] elliottcable: creationix › (unrelated side-note: Lua/Node looks awesome.) [20:25] mraleph: Brandon_R: OOP is overrated [20:25] mraleph: much like php [20:26] creationix: mraleph: and yes, you're write node is doing a lot more in js than luvit is doing in lua [20:26] creationix: s/write/right/ [20:26] micahjohnston: Brandon_R: somehow, the original Smalltalk, whose creator invented the term OOP, had just about none of those things [20:26] elliottcable: micahjohnston › somehow, you brought language-design arguments *in here with you*. ಠ_ಠ [20:26] devaholic: you can do all of the same things with prototypes [20:26] micahjohnston: elliottcable: I had nothing to do with the start of it ._. [20:26] elliottcable: micahjohnston › I know! That’s what makes it funny :D [20:26] creationix: elliottcable: at least it drove the ipad argument out [20:26] dgathright has joined the channel [20:26] micahjohnston: elliottcable: haha [20:26] elliottcable: creationix › ahahah [20:27] mraleph: creationix: as I said I have a bare implementation which I play with :-) and I also have micro benchmarks for JS->C++, C++->JS transitions. I am going to work on that when I'll have time [20:27] Brandon_R: does that scale? [20:27] Brandon_R: nodeQuery [20:27] Brandon_R: seems kinda like now.js [20:27] devaholic: lol, why not? [20:27] devaholic: its far from now.js [20:27] Brandon_R: and now.js needs a commercial addon for more than 6000 connections [20:27] jhurliman has joined the channel [20:27] micahjohnston: Brandon_R: OOP has to do with treating the design of the types as the fundamental unit of organization, with operations centered around them, with polymoprhism over different kinds of objects that support the same operaetions [20:27] devaholic: now.js still implies you need client side code [20:28] langworthy has joined the channel [20:28] Brandon_R: i understand [20:28] devaholic: you can make realtime apps with nquery without client side code [20:28] poshboytl has joined the channel [20:28] Brandon_R: but that seems to be the route languages are taking [20:28] devaholic: cept the 2 frameworks of course [20:28] creationix: mraleph: right, but in my testing I saw a huge difference between 32bit and 64bit. v8 actually seemed slight slower on 64 while luajit was considerably faster [20:28] micahjohnston: Brandon_R: private, public, and protected are a really gruesomely ugly system for accomplsihing the abstract data type part of that, which is often completely ignored anyway by people who just slap accessors on everything [20:28] elliottcable: mraleph › do you have a line number for what you were talking about? [20:28] creationix: mraleph: though, as your bare vs vanilla node shows, it's the amount of work that really matters, both are really fast vms [20:29] micahjohnston: Brandon_R: and interfaces/abstract classes, especially if you have both, are a really ugly messy way to do they polymoprhsim part [20:29] micahjohnston: :P [20:29] micahjohnston: well, I gtg [20:29] c4milo1 has joined the channel [20:29] eee_c has joined the channel [20:29] Brandon_R: cya [20:29] mraleph: elliottcable: https://github.com/joyent/node/blob/master/src/node_script.cc#L371 [20:29] mraleph: elliottcable: https://github.com/joyent/node/blob/master/src/node_script.cc#L430 [20:29] elliottcable: mraleph › *hat tip( [20:30] devaholic: Brandon_R: fwiw, i set up a nodeQuery app w/cluster and redis pub/sub instead (nquery all going through redis) and it worked fine [20:30] elliottcable: mraleph › how familiar are you with this section of the code? is there a Good Reason™ why it’s done this way? [20:30] JSManiacs has joined the channel [20:30] Brandon_R: that's actually worth checking out [20:30] mraleph: elliottcable: I don't know Ryah's reasoning [20:30] elliottcable: is it impossible to just make the passed “context” argument *the actual sandbox object*, as opposed to copying properties back-and-forth? [20:30] meandi has joined the channel [20:30] elliottcable: mraleph › ah, ryah wrote this part? [20:30] elliottcable: ryah › around? [20:31] ryah: elliottcable: what's up [20:31] creationix: elliottcable: you know git has a blame/praise feature [20:31] elliottcable: ryah › https://github.com/joyent/node/issues/1801 [20:31] Brandon_R: do you have the example devaholic? [20:31] devaholic: Brandon_R: basically it made it so i could subscribe to "jquery streams" more or less, that once you connected they would just do things to your browser window in realtime, and you could have multiple browsers keeping up [20:31] elliottcable: ryah › trying to puzzle out why `vm` *copies properties* onto the `vm`’s sandbox, and then back to the passed context object [20:31] mikedeboer has joined the channel [20:31] ryah: elliottcable: i saw that but then igored it once i got to your coding style :) [20:31] elliottcable: ryah › instead of using the passed context object as the bona fide context *itself* [20:31] devaholic: sort of like a tv channel broadcast [20:31] Brandon_R: cool [20:31] elliottcable: ryah › hahahaha, what’s wrong with it? [20:32] Brandon_R: i'll take a look and see how nodequery does it [20:33] mraleph: creationix: well… no :-) there are certain things in VM that actually matter there, like cheaper bridge between JS and C++ or certain GC heuristics. [20:33] elliottcable: ACTION tries to find documentation on V8’s `Context` type and APIs [20:33] devaholic: binding DOM events to functions that actually execute on the server is sexy [20:33] AvianFlu: ryah++ [20:33] elliottcable: AvianFlu › ಠ_ಠ [20:33] Brandon_R: sweet [20:33] elliottcable: what’s wrong with the coding style in that issue? I tried to make it very clean / standard. [20:33] creationix: mraleph: it would be awesome if you could speed up the bridge in v8, I was hitting it pretty hard in my node-webgl stuff [20:34] elliottcable: please, enlighten me as to what I did wrong? [20:34] AvianFlu: nothing personal, it just made me laugh [20:34] creationix: opengl makes a LOT of calls [20:34] AvianFlu: his comment, not your code [20:34] elliottcable: AvianFlu › no offense meant. I’m just curious what I should change. [20:34] Tobsn has joined the channel [20:34] maccman has joined the channel [20:35] maccman: hi, quick question [20:35] elliottcable: maccman › slow . . . [20:35] maccman: ok, so I have a npm package, that includes a binary [20:35] maccman: it's called hem - http://github.com/maccman/hem [20:35] maccman: you can execute the binary in a dir, and it'll serve it [20:35] maccman: like this: hem server [20:35] Cromulent has joined the channel [20:35] polotek has joined the channel [20:36] maccman: however, hem is installed globally [20:36] Wa has joined the channel [20:36] paulwe has joined the channel [20:36] konobi: maccman: don't upload a binary =0) [20:36] maccman: and when I run 'hem server' - packages in the local dir aren't found [20:36] stepheneb has joined the channel [20:36] elliottcable: maccman › . . . question [20:36] maccman: I'd like to load the local packages [20:37] maushu: 80 is too small. [20:37] elliottcable: ryah › well, you coulda just said that D: [20:37] elliottcable: also, what maushu said. [20:37] konobi: ryah: are you _still_ using that damn WYSE terminal!? [20:37] wankdanker: Hi everyone! I just published my first npm: node-discover; magically discover your node instances with automatic single master and capability advertising: https://github.com/wankdanker/node-discover [20:37] elliottcable: I’ve wrapped at 113 for years [20:37] elliottcable: and recently started changing that to 100 [20:37] maushu: I vote to increase to 160. [20:37] elliottcable: maushu › speaking as a typographer and visual designer, that’s too long. [20:37] TheJH: some core dev here who can answer a question about the crypto core module? this line looks weird to me: https://github.com/joyent/node/blob/master/src/node_crypto.cc#L2827 - it checks the validity of args[0] BEFORE checking the args length? [20:37] Brandon_R: is there a npm command to create a skeleton? [20:38] maushu: ryah, we accept no alternative until you merge the await feature. [20:38] isaacs: Brandon_R: npm init [20:38] elliottcable: TheJH › ah, it was you! [20:38] isaacs: maushu: you're talking about wrapping code? [20:38] T0bsn has joined the channel [20:38] elliottcable: TheJH › just FYI, posted: https://github.com/joyent/node/issues/1801 [20:38] Brandon_R: thank you [20:38] Brandon_R: i love how node.js just works [20:38] Brandon_R: everything about it [20:38] maushu: isaacs, yes, I will only wrap it to 80 when node.js gets the await feature. [20:38] wankdanker: Brandon_R: +1 [20:38] ryah: TheJH: ? [20:38] Brandon_R: except writing my own c++ addons [20:38] siculars: expressjs question. how can i get expressjs to just render html? i get how it is set to parse/build jade but what if i want to just do res.render(test.html) aka have view recognize *.html/*.txt and just pass those through with no magic . [20:38] isaacs: maushu: imo, 80 is almost always too long [20:39] isaacs: 80 is the absolute max. most lines, if they're 80 chars, yor'e doing something wrong. [20:39] maushu: isaacs, not if you go crazy with callbacks. [20:39] tjholowaychuk: siculars html isnt a template engine [20:39] isaacs: i usually try to stay below 60 [20:39] T0bsn: is someone in here who worked with iceberg? [20:39] ryanrolds_w: res.write(); [20:39] alekhine has joined the channel [20:39] tjholowaychuk: siculars just use the middleware [20:39] isaacs: maushu: *especially* if you go crazy with callbacks! [20:39] isaacs: maushu: use named functions! [20:39] TheJH: ryah, ah, no, I think I misread [20:39] elliottcable: isaacs › hard-wrap length ≠ average code-line length. [20:39] elliottcable: isaacs › conflating two *very* different concerns. [20:39] tjholowaychuk: siculars join #express [20:39] maushu: isaacs, what if they are inside a function that is inside a class that is inside a namespace? [20:39] siculars: tjholowaychuk: thanks mate. will do . [20:39] elliottcable: A) you’re an idiot if you write more than 10% of your lines over ~50 characters, [20:40] elliottcable: and B) you’re an idiot if you hard-wrap that 10% at anything under 100 characters. [20:40] maushu: What is the size of your tabs anyway? [20:40] AvianFlu: you can put a named function anywhere, in any scope [20:40] isaacs: elliottcable: your absolutes make you look young. [20:40] elliottcable: isaacs › ’s cause I am! [20:40] stepheneb has joined the channel [20:40] elliottcable: isaacs › also, it’s your absolutes that I’m responding to. [20:40] darinc: wankdanker: interesting project. looking forward to taking a deeper look [20:40] isaacs: elliottcable: like spry and youthful lad, not yet tarnished by the hardships of reality. [20:40] elliottcable: basically, 80 columns is an unnecessary absolute. [20:40] elliottcable: hardwrapping *is good*, but it should be “way out there” beyond the realm of normal code [20:41] Brandon_R: calm down bro [20:41] ryah: elliottcable: nope, necessary [20:41] dmkbot has joined the channel [20:41] elliottcable: shouldn’t have to hard-wrap more than one in a thousand lines of code. [20:41] ryah: ;) [20:41] mraleph: ACTION remembered that he has to pack for trip to Berlin [20:41] elliottcable: ryah › INTERNET RAAAAAAGE [20:41] mjr_: JS.next will only support 80 char lines [20:41] elliottcable: ryah › so, srsly, talk to me: why are you copying properties back and forth by hand in the `vm` module? [20:41] mjr_: The standards bodies have spoken. [20:41] elliottcable: ryah › is there reasoning of yours that I need to know *before* I go start trying to rewrite this to use the passed object in situ? [20:41] zeade has joined the channel [20:42] elliottcable: I don’t want to waste a bunch of time trying to rewrite this if there’s a damn good reason it’s done that way, as painful as it is :x [20:42] ryah: elliottcable: it's also nice to IRC with 8bit clean text [20:42] wankdanker: darinc: thanks! let me know if you have any questions or find any bugs [20:42] isaacs: elliottcable: 80 columns is a necessary absolute for the same reason that wiping after pooping is a necessary absolute. [20:42] isaacs: elliottcable: i mean, dogs and babies don't do it. [20:42] isaacs: elliottcable: so it's not like an *absolute* absolute. [20:42] isaacs: but.. ew. [20:42] elliottcable: isaacs › *shrug* [20:42] devaholic: 8bit text... [20:42] slickplaid: i prefer the 3 shells method [20:42] elliottcable: I gave up on trying to please every opinionated programmer with my source-code half a decade ago. [20:43] isaacs: elliottcable: thankfully, there's only one opinionated programmer you have to please with your own projects :) [20:43] elliottcable: 113 columns hard-wrap, 3-space soft tabs, commas at the start of lines, smart application of semicolon insertion … [20:43] jesusabdullah: text wrapping vastly improves code readability. It's like one of the few things people can actually agree on wrt programming (and text in general) [20:43] elliottcable: isaacs › indeed. [20:43] isaacs: elliottcable: like bathroom behavior, it only becomes an issue when you want to interact with others. [20:43] elliottcable: isaacs › I think the most objective way to put this would be “Know what’s popular, but don’t necessarily follow it.” [20:43] elliottcable: isaacs › mmm exactly. Hence why you have to know. [20:43] Brandon_R: truer words were never spoken [20:44] isaacs: well, i mean, it sends a message [20:44] isaacs: like typos [20:44] elliottcable: I don’t think it remotely sends the same message. [20:44] isaacs: valid or not, people judge programs based on their source code. [20:44] isaacs: just the way it is [20:44] elliottcable: Typos make you look like an idiot; as ds tlkin lk dis [20:44] EyePulp has joined the channel [20:44] dmkbot has joined the channel [20:44] elliottcable: but anybody who thinks *I’m* an idiot because I’ve acutally put hard thought into my own conventions instead of following the herd, well … [20:45] elliottcable: I can’t honestly say I care all that much what they think. [20:45] Brandon_R: should i use coffe or no? [20:45] isaacs: elliottcable: maybe some day you will. or not. [20:45] dmkbot has joined the channel [20:45] isaacs: elliottcable: i'm sure there are people who don't wipe. [20:45] elliottcable: They won’t read my code, because they’re afraid of it, despite the fact that it’s more readable and cleaner than their own; and that will be their loss, because they’ll have passed up the chance to learn something. [20:45] Brandon_R: coffe + jade + stylus have basically the same syntax so it would look the same :) [20:45] isaacs: and they may be great people, but i'm not going to invite them to my house for dinner. [20:45] TheJH: Brandon_R, try coco :D [20:45] slickplaid: Honestly, I'm more interested in what preformats your text to IRC, elliottcable. :) [20:45] elliottcable: Brandon_R › basically, up to personal taste [20:45] dmkbot has joined the channel [20:45] elliottcable: Brandon_R › it’s neat stuff [20:46] elliottcable: slickplaid › hm? [20:46] elliottcable: slickplaid › /CTCP elliottcable VERSION [20:46] Brandon_R: what is the full name of coco? [20:46] elliottcable: Brandon_R › try Coffee; if you like using it, then use it. That simple. [20:46] TheJH: Brandon_R, go to https://github.com/satyr/coco [20:46] elliottcable: Brandon_R › don’t listen to anyone who tells you it’s the One True Way [20:46] elliottcable: Brandon_R › and similarly, don’t listen to anyone who tells you it’s completely pointless and disgusting. [20:47] elliottcable: Brandon_R › decide for yourself which way you prefer to write your code. [20:47] TheJH: elliottcable, true. coco is the one true way, not coffee :P [20:47] tjholowaychuk: Brandon_R but dont use it for open-source [20:47] dmkbot has joined the channel [20:47] mjr_: The bathroom etiquette analogy seems a bit extreme. I think it's more like an offensive odor. Would you hire a plumber if they smelled bad while they were fixing your pipes? You might if they were a fucking awesome plumber. [20:47] elliottcable: I disagree entirely with tjholowaychuk on that, Brandon_R [20:47] Brandon_R: lol @ coco principle - Perl over Ruby. [20:47] elliottcable: but then again, you can feel free to disregard me, given that I was just arguing with isaacs about whether you should remotely care whether others think your code stylization is idiotic. [20:47] TheJH: !coco compile user <<< {password: "new password"} [20:47] jhbot: user.password = "new password"; [20:47] elliottcable: isaacs › on that topic, did you see my tweet a few weeks back re: JavaScript style experiments? [20:47] jhurliman: isaacs, joyent office hours today? [20:48] isaacs: jhurliman: ask ryah, i'm not going to be around [20:48] Brandon_R: brb guys [20:48] jhurliman: ryah? [20:48] isaacs: elliottcable: no [20:48] tjholowaychuk: elliottcable i dont mind it that much, it shows me which libs not to use [20:48] elliottcable: tjholowaychuk › ಠ_ಠ [20:48] tjholowaychuk: so i kinda like it in that regard [20:48] elliottcable: tjholowaychuk › You are an idiot. [20:48] tjholowaychuk: oh yeah? [20:48] slickplaid: wow [20:48] tjholowaychuk: you sound [20:48] ryah: jhurliman: what up? [20:48] tjholowaychuk: super mature [20:48] isaacs: hahahaha [20:48] TheJH: tjholowaychuk, that's what "npm star" is for (finding out which libs are cool) :P [20:48] isaacs: that's funny [20:48] jhurliman: ryah, joyent office hours today? [20:48] ryah: jhurliman: oh office hours were yesterday [20:49] elliottcable: TheJH › I have zero desire to engage with you, bro [20:49] elliottcable: ACTION moves on [20:49] ryah: jhurliman: we do it on wednesday now [20:49] jhurliman: ahh, ok [20:49] isaacs: oh, right, it's thursday today [20:49] elliottcable: found it! [20:49] elliottcable: isaacs › http://ell.io/Lodw [20:49] slickplaid: I thought today was national coffee day. Everyone should have gotten their daily dose of happy. [20:49] jhurliman: so... how bout them facebook changes <_< [20:50] isaacs: elliottcable: what language is this? also, i can't read it. [20:50] elliottcable: isaacs › JavaScript. [20:50] jesusabdullah: Facebook changed? [20:50] elliottcable: isaacs › here, some context: http://ell.io/hCHD [20:50] creationix: elliottcable: https://gist.github.com/1251914 [20:50] elliottcable: creationix › reading [20:50] jesusabdullah: screenshart? D: [20:50] tjholowaychuk: jesus [20:50] isaacs: elliottcable: it's not javascript [20:50] tjholowaychuk: that's some messed up code [20:50] elliottcable: creationix › human language parsing? [20:51] eldios has joined the channel [20:51] creationix: my argument must be true because I parsed it carefully [20:51] creationix: it's highly technical [20:51] elliottcable: creationix › I laughed. [20:51] jesusabdullah: creationix: What's that? [20:51] malkomalko has joined the channel [20:51] elliottcable: creationix › so, you’re against comma-first/semi-first? [20:51] DrMcKay: creationix: :D [20:51] creationix: jesusabdullah: natural language parsing [20:51] creationix: elliottcable: meh [20:51] jesusabdullah: interesting. [20:51] mikedeboer has joined the channel [20:52] elliottcable: creationix › also, is that a library of yours of some sort? something you’re working on for NLP? #curious [20:52] creationix: elliottcable: no, it's a standford project [20:52] elliottcable: isaacs › anyway, I’m just messing with you. [20:52] creationix: though it did help me with one of the best comebacks of all time on the mailing list once [20:52] aron_ has joined the channel [20:52] slickplaid: I consider writing unreadable code like speaking in ebonics. Sure a select few of the population can understand you, but to the rest of the world, you sound like an idiot. [20:52] isaacs: syntax is meaningless. [20:53] isaacs: tautologies are tautological. [20:53] edwardmsmith has joined the channel [20:53] jesusabdullah: I'm hungry. [20:53] slickplaid: What's for dinner? [20:53] AphelionZ has left the channel [20:53] elliottcable: I’m thinkin’ … pasta. [20:53] slickplaid: too heavy [20:53] jesusabdullah: No, def. tuna sammy for lunch [20:53] slickplaid: I might go for sushi [20:54] DrMcKay: that made me hungry [20:54] elliottcable: isaacs › (interestingly enough, it *does* compile and run; it even does what it’s supposed to.) [20:54] slickplaid: Happy hour at our local sushi shop. [20:54] creationix: isaacs: that depends on your definition of "meaningless" and "syntax" [20:54] elliottcable: isaacs › (took so long to write that I gave up on the experiment, though.) [20:54] slickplaid: starts at 5pm :D [20:54] elliottcable: isaacs › (certainly taught me some interesting things that I still apply in my real projects, though) [20:54] creationix: isaacs: but in the case of syntax vs semantics, sure [20:54] elliottcable: slickplaid › had sushi last night [20:54] isaacs: creationix: if it has meaning, it's not syntax, it's semantics. [20:54] elliottcable: slickplaid › in fact, leftovers are sitting beside my keyboard right now; I was snacking on them after lunch [20:55] wilmoore has joined the channel [20:55] isaacs: also, i don't care. [20:55] isaacs: :) [20:55] slickplaid: I honestly can say I've never had sushi leftovers... [20:55] isaacs: so it's both trivially and figuratively true. [20:55] creationix: isaacs: I still think it's a good joke [20:55] isaacs: my two favorite kinds of true. [20:55] grekko has joined the channel [20:55] elliottcable: isaacs › which are your least favourite kinds of true? [20:56] creationix: I'm guessing isaacs least favorites include things like bigotry [20:56] DrMcKay: that's an interesting question [20:56] slickplaid: falsy ones! [20:56] elliottcable: inconvenient truths? [20:56] JSManiacs: slickplaid: Pretty sure sushi isn't meant to be leftovered [20:56] elliottcable: painful truths? [20:56] slickplaid: JSManiacs: I think you're right. :) [20:56] elliottcable: JSManiacs › was that directed at me? [20:56] matjaz has joined the channel [20:56] elliottcable: JSManiacs › and, after having eaten them, I agree. *stomache grumbles nervously* [20:56] DrMcKay: painful truths are good [20:57] DrMcKay: you can learn something about yourself [20:57] creationix: PHP has many bad kinds of truth, like "false" [20:57] elliottcable: DrMcKay › You’re the type who insists on “complete honesty” over happiness in relationships, aren’t you? >:3 [20:57] necrodearia has joined the channel [20:57] elliottcable: oh god, PHP booleans. [20:57] DrMcKay: elliottcable: well, yeah. [20:57] elliottcable: that’s my cue to leave. [20:57] slickplaid: Let's not talk about PHP, I'm having war flashbacks. [20:57] creationix: elliottcable: wait till I tell you about C++ templates and operator overloading [20:58] DrMcKay: even though it made me unhappy, I still insist that this is the way [20:58] isaacs: ok, i gotta run [20:58] isaacs: have fun folks :) [20:58] slickplaid: adios [20:58] elliottcable: creationix › I’m aware, thanks [20:58] DrMcKay: isaacs: see you :) [20:58] elliottcable: isaacs › o7 [20:59] dreamdust has joined the channel [20:59] elliottcable: creationix › as for *individual features* that piss me off, JavaScript actually wins (add together the hated variable hoisting that always bites me in the ass, and the *unbelievably* terribly-designed “classish” `new` keyword and psuedo-classist inheritance) [21:00] inpho has joined the channel [21:00] elliottcable: creationix › but I *like* JavaScript as a whole, despite; I can’t say the same for C++ or PHP, even though their individual failings don’t piss me off as much [21:01] DrMcKay: I prefer C + Glib over C++, because of bloat C++ adds [21:01] tjholowaychuk: DrMcKay++ [21:02] ckknight: There is a subset of C++ that is non-horrible [21:02] elliottcable: I just like my C plain. [21:02] elliottcable: ckknight › yes, true that, [21:02] elliottcable: ckknight › but that doesn’t *get rid of* the horribleness. [21:02] creationix: my motto when writing language bindings is "I write C++ so you don't have to" [21:02] ckknight: true, gotta be vigilant and not use those parts [21:02] elliottcable: A language is designed as a whole; no amount of “well just don’t use the bits you don’t like” will make C++ suck less. [21:02] ckknight: :P [21:02] elliottcable: creationix › can I give you lots of money? [21:02] creationix: sure, but I doubt it will make me write more C++ [21:02] ryah: what about the bloat of glib? [21:02] elliottcable: hahahaha [21:02] kenperkins: who's running multiple node instances in production? what are you using to LB to them? [21:03] ryah: glib is a special kind of hell [21:03] dgathright_ has joined the channel [21:03] elliottcable: ryah ++ [21:03] creationix: ryah: indeed [21:03] elliottcable: is there actually a beerbot in here? [21:03] elliottcable: somebody op me so I can invite purr [21:03] DrMcKay: ryah: why is that? it has it's weirdnesses, but it's generally quite nice [21:04] ank has joined the channel [21:04] ryah: it's heavy handed [21:04] wankdanker: kenperkins: haproxy + multi-node [21:04] creationix: ryah: btw, I've really enjoyed using libuv so far [21:04] creationix: ryah: it's like node, but in C [21:04] DrMcKay: that's a fact, iy could be a bit more modular [21:04] ryah: creationix: that's what it is :) [21:05] ryah: creationix: glad you like it [21:05] elliottcable: ditto, ryah [21:05] TheJH: elliottcable, what do you want the beerbot to do? [21:05] ryah: it could also be much cleaner - and will be - but we have to meet deadlines [21:05] elliottcable: ryah › I respect you *massively* for designing a sane, clean API in C. [21:05] creationix: ryah: could use more docs, but I understand getting it done is higher priority [21:05] elliottcable: that’s pretty rare. [21:06] ryah: thanks but i didn't make it alone. [21:06] creationix: ryah: I've made good progress binding it to lua https://github.com/creationix/luvit/blob/master/src/luv.c [21:06] captain__ has joined the channel [21:06] CoverSlide: yeah what happened to 0.6 dropping 2-3 months after 0.5.0? [21:07] DrMcKay: ryah: when I'm in SF, can I bring you a barrel of bear as a 'thank you'? [21:07] CoverSlide: the bear might not be too happy [21:07] DrMcKay: *beer [21:07] whitman: Bear?! [21:07] DrMcKay: lol [21:07] versicolor_ has joined the channel [21:07] elliottcable: TheJH › already got one, but ’s not in here [21:07] elliottcable: TheJH › also, his bangs conflict with yours [21:08] ryah: CoverSlide: it's taking longer than expected [21:08] creationix: ryah: I see in the headers that a uv_file_t is coming? is that soon? [21:08] DrMcKay: unless ryah likes bears [21:08] ryah: creationix: probably not soon [21:08] creationix: ok, I'll just wrap the uv_fs_* as is for now [21:08] kevwil has joined the channel [21:08] astropirate has joined the channel [21:09] DrMcKay: oh, I just visualized it [21:09] captain_morgan has joined the channel [21:09] dmkbot has joined the channel [21:09] TheJH: elliottcable, which ones does it use? [21:09] DrMcKay: btw, why doesn't my bot report issues? [21:10] CoverSlide: is he on strike? [21:10] DrMcKay: CoverSlide: I would say that he's fucked up [21:10] DrMcKay: but I'm not sure why [21:10] DrMcKay: it worked on my home server [21:10] DrMcKay: and doesn't on a VPS [21:11] darinc: creationix: for future php war reference: check out phpsadness.com [21:11] CoverSlide: sweet [21:11] DrMcKay: I'll look into it, eventually [21:11] CoverSlide: it's better than wtfjs [21:11] AphelionZ has joined the channel [21:11] topaxi has joined the channel [21:12] TheJH: DrMcKay, different timezones shouldn't change anything, right? [21:12] creationix: lol, I think T_PAAMAYIM_NEKUDOTAYIM is my favorite error message of all time [21:12] elliottcable: I’m headed out, but fun talking with you all. [21:13] DrMcKay: TheJH: no, not at all [21:13] cha0s has joined the channel [21:13] cha0s has joined the channel [21:13] creationix: after I had to get a hebrew translation to understand what the error even meant, I was incensed that is didn't support late static bindings [21:13] CoverSlide: yeah, I remember first time I got that, i was like WTF?? [21:13] elliottcable: ryah › if you have time later, I’d seriously appreciate a quick conversation about copying data to-and-from contexts in `Script` [21:13] creationix: at least they finally fixed that in 5.3 [21:13] fly-away has joined the channel [21:13] CoverSlide: awww [21:13] elliottcable: off to the gym. ’ta! [21:13] fermion has joined the channel [21:15] creationix: if someone wants to make sadnodejs.com, the first one should be "node.js:183 throw e; // process.nextTick error, or 'error' event on first tick" [21:15] darinc: lol [21:15] DrMcKay: creationix: I think that AvianFlu wrote something to clear it up a bit [21:15] CoverSlide: dammit, my wife's at home getting a 55" installed, and she unplugged my server [21:15] jesusabdullah: a 55"? What's that? [21:15] softdrink: what, like phpsadness.com? [21:15] CoverSlide: tv [21:15] TheJH: creationix, because the stack trace is unusable? just use a outerFunction+stack+this trace, and everything is fine :D [21:16] baudehlo has joined the channel [21:16] jesusabdullah: creationix++ [21:16] AvianFlu: lol what did I do? [21:16] DrMcKay: AvianFlu: it wasn't you? [21:16] navaru has left the channel [21:16] baudehlo has left the channel [21:16] baudehlo has joined the channel [21:16] TheJH: creationix, look at http://groups.google.com/group/nodejs/browse_thread/thread/81aad71844e1f112/5f3868043aa83e7a :D [21:16] socialhack has joined the channel [21:17] AvianFlu: I definitely haven't done anything about nextTick errors [21:17] DrMcKay: gah, somebody did :/ [21:17] mike5w3c_ has joined the channel [21:18] alekhine has joined the channel [21:19] CoverSlide: it'd be nice if when you called an async function, it pulled the current stack along with it [21:19] JaKWaC_ has joined the channel [21:19] malletjo has joined the channel [21:19] CoverSlide: i wonder if there's a way to do that [21:19] jesusabdullah: Where there's a will there's a way! [21:20] bartt has joined the channel [21:20] CoverSlide: well I'm no C++ dude, and I know too little of the node/v8 internals to even know where to statr [21:21] baudehlo: you'd probably have to add in some sort of keyword... [21:21] RaviJK has joined the channel [21:22] baudehlo: like something.some_async_thingy( param1, param2, callback function (err, results) { ... } ); [21:22] baudehlo: which would pick up the current stack and attach it somehow. [21:22] bradleymeck: Coverslide there are ways to do that, but it slows down node [21:23] mtsl has left the channel [21:23] jesusabdullah: Just get moar megahurtz [21:23] jesusabdullah: it's cool brah [21:23] bradleymeck: there was an old patch something about "long stacktraces" in the mailing list i think [21:23] AvianFlu: there's a module [21:23] AvianFlu: long-stack-trace maybe [21:24] AvianFlu: it's on npm now that I think of it [21:24] CoverSlide: !npm view long-stack-trace [21:24] davidascher has joined the channel [21:24] r04r: Made a remote administration system for machines behind firewalls with the server & client software completely in nodejs. It's great! [21:24] AvianFlu: !npm search stack-trace [21:24] jhbot: package long-stack-traces: Long stacktraces for V8 implemented in user-land JavaScript. [21:24] jhbot: package stack-trace: Get v8 stack traces as an array of CallSite objects. [21:24] AvianFlu: there you go [21:24] AvianFlu: the first one [21:24] AvianFlu: long-stack-traces [21:24] baudehlo: just man-up and get used to coding async :) [21:24] AvianFlu: !npm ownder long-stack-traces [21:24] AvianFlu: baudehlo++ [21:26] zeade has joined the channel [21:26] TheJH: !npm info long-stack-traces [21:26] jhbot: long-stack-traces by Tom Robinson, version 0.1.2: Long stacktraces for V8 implemented in user-land JavaScript. [21:26] colinclark_ has joined the channel [21:27] herbySk has joined the channel [21:29] tilgovi has joined the channel [21:30] tilgovi has joined the channel [21:32] necromancer: userland sounds like a terrible theme park [21:33] bradleymeck: it would be cool if someone made a rollercoaster that rotated nodejs code sideways so it had peaks from all the indents [21:34] creationix: necromancer: but it's a great place to write code [21:34] creationix: I implement all kinds things there [21:34] necromancer: bradleymeck: that would be the most uncomfortable roller coaster... [21:34] creationix: jsgi apps would be fun [21:34] creationix: one huge hump! [21:34] polotek has joined the channel [21:35] CoverSlide: more like a huge dip [21:35] chance- has joined the channel [21:36] devaholic: bradleymeck: like this? http://heatwave.nodejitsu.com/ [21:37] bradleymeck: devaholic kinda [21:37] neilk_ has joined the channel [21:39] kenperkins: has anyone done anything with the collectd modules for node? [21:40] lemonkey has joined the channel [21:45] liar has joined the channel [21:46] captain__ has joined the channel [21:47] pquerna has joined the channel [21:47] dracko has joined the channel [21:47] jonrohan has joined the channel [21:48] dracko: hi all.. soo what you think is the best web framework, socketstream or express..i exclude gedddy because it looks unmanteinted [21:48] BoiseComputer: We are using express. [21:49] vguerra has joined the channel [21:49] lemonkey has left the channel [21:49] devongovett has joined the channel [21:49] dracko: and what modules of express you are using [21:50] dracko: to keep yout code dry [21:51] BoiseComputer: I am not the programmer, but, I know we are using Socket.IO and RedisStore. [21:51] BoiseComputer: I just keep the server running correctly. [21:52] kenperkins: boise: chef or puppet [21:52] bradleymeck: neither! [21:52] BoiseComputer: Neither that I know of. [21:53] DrMcKay: reminds me of http://xkcd.com/898/ [21:54] levi: CoverSlide: Passing the current stack along with a callback that returns to it is essentially what call-with-current-continuation does in Scheme, if I understand you correctly. [21:54] brianc: dracko: figure out where you repeat yourself first, then find a module to fix the problem [21:55] levi: CoverSlide: People got mad the last time I talked about such things here, though, since it requires a change to the language rather than just a library on top of it. [21:55] caolanm has joined the channel [21:55] bradleymeck: levi it would be nice to have at a language level as long as we could turn it off if we wanted to [21:57] ollie has joined the channel [21:58] dominictarr has joined the channel [21:59] levi: If such things are ever introduced officially into Javascript, then we'll get them in node.js, but I don't think the node devs are interested in language-level changes. [22:01] mikeric has joined the channel [22:01] CoverSlide: hmm [22:01] c4milo1 has joined the channel [22:02] bencc has joined the channel [22:02] levi: But, meanwhile, if you wanted to implement something like that for your own use, you could look at how node-fibers does it. But node-fibers, as a language extension, is off-topic here. [22:03] dmkbot has joined the channel [22:03] polotek has joined the channel [22:03] m1k3l has joined the channel [22:06] aron_ has joined the channel [22:07] jakehow has joined the channel [22:07] reid has joined the channel [22:10] alekhine has joined the channel [22:13] Brandon_R has joined the channel [22:13] Brandon_R: Hey guys [22:13] Brandon_R: anyone get an example of how to unit test express app in vows? [22:13] dmkbot has joined the channel [22:13] brianc: Brandon_R: look at "tobi" [22:14] brianc: Brandon_R: https://github.com/visionmedia/tobi [22:14] AvianFlu has joined the channel [22:14] brianc: Brandon_R: it will blow yo mind [22:14] Brandon_R: i get the fail squid [22:14] Brandon_R: 404 not found [22:14] brianc: Brandon_R: https://github.com/learnboost/tobi [22:15] brianc: Brandon_R: sorry 'bout that. learnboost and visionmedia are sometimes one in the same [22:15] Brandon_R: damn [22:15] Brandon_R: nice [22:15] brianc: Brandon_R: I know, right? _BLOWS YO MIND_ [22:15] brianc: WWTD [22:16] Brandon_R: so i should use both? [22:16] Brandon_R: vows for async functional testing and tobi for testing the controllers? [22:16] brianc: Brandon_R: I would say tobi would be for functional testing, but you can use tobi from within vows. I dont' actually use vows myself so I am not sure [22:16] inpho has joined the channel [22:17] Brandon_R: will check [22:17] japerry_cat has joined the channel [22:17] Brandon_R: does it provide percentages? [22:17] Brandon_R: or would you have to make sure you test everything yourself [22:17] brianc: Brandon_R: gotta make sure you test everything yoself [22:18] tjholowaychuk: Brandon_R code cov can be a good hint [22:18] tjholowaychuk: but other than that dont rely on it much [22:18] jsurfer has joined the channel [22:18] Brandon_R: omg [22:18] Brandon_R: you can submit forms and get the response [22:18] Brandon_R: i love this [22:19] brianc: Brandon_R: just remember: wwtd [22:19] Brandon_R: does it have any issues with csrf tokens? [22:19] Brandon_R: what would tyler do? [22:19] brianc: tobi [22:19] brianc: what would tobi do [22:19] Brandon_R: oh [22:19] Brandon_R: :) [22:19] brianc: obviously you haven't read the entire readme yet [22:19] EyePulp: yo ho ho [22:20] EyePulp: tjholowaychuk: got time for a cluster question? [22:20] tjholowaychuk: yeah sure shoot [22:20] Brandon_R: what's in the readme? [22:20] HardPhuck has joined the channel [22:20] EyePulp: if I'm doing var c = cluster('./app'), is there a way to pass a value/arg to the ./app [22:21] c4milo2 has joined the channel [22:21] EyePulp: this is in my server.js where I'm spinning the cluster up. [22:21] EyePulp: (which might be apparent) [22:21] tjholowaychuk: not really other than a global [22:21] tjholowaychuk: since it (currently) expects the module.exports [22:22] HardPhuck has joined the channel [22:22] tjholowaychuk: what are you wanting to pass? [22:22] dmkbot has joined the channel [22:22] Brandon_R: learnboost is a revolutionary [22:22] EyePulp: values from a settings file that's loaded (and used a bit) on the server.js page. I just wanted to explicitly pass them into the app itself [22:23] Brandon_R: first socket.io then tobi. life is good [22:23] TomY has joined the channel [22:23] tjholowaychuk: EyePulp gotcha. i cant think of an amazing solution [22:23] brianc: Brandon_R: not to mention express, jade, stylus, cluster, mongoose, & kue, [22:23] tjholowaychuk: other than re-loading the config [22:24] tjholowaychuk: you would kinda need to anyway [22:24] tjholowaychuk: well [22:24] Brandon_R: learnboost made express? [22:24] Brandon_R: did not know that :) [22:24] tjholowaychuk: not really but it's good to consider the app.js made its own worker [22:24] brianc: Brandon_R: sort of, tjholowaychuk did a big chunk on all of those projects (except not sure how much he worked on socket.io) [22:24] tjholowaychuk: EyePulp or how about having ./config.js export your config stuff? [22:25] tjholowaychuk: that way require() would cache it [22:25] nibblebot has joined the channel [22:25] tjholowaychuk: so if you manipulate anything it's still altered for the app.js [22:25] Brandon_R: node should have widespread adoption in the next couple years [22:25] EyePulp: ah - that's what I was wondering… the settings file is actually an export [22:26] EyePulp: tjholowaychuk: but it's returning an object - and I'm manipulating that - those change aren't propagated back for the next module that imports the settings, are they? [22:26] k1ttty has joined the channel [22:26] tjholowaychuk: EyePulp yup [22:26] tjholowaychuk: require() gives you the same object [22:27] tjholowaychuk: so if you remove props etc [22:27] tjholowaychuk: you'll see those changes for anything require()ing it [22:27] EyePulp: interesting. [22:28] cha0s has joined the channel [22:29] Fuu has joined the channel [22:29] ossareh has joined the channel [22:29] EyePulp: tjholowaychuk: my settings call is actually to a wrapper that checks a __dirname for settings.js, which is a module.exports = {foo:bar}; [22:30] reid_ has joined the channel [22:30] reid_ has joined the channel [22:30] EyePulp: I'm wondering how I make the settings utility aware of when it's been run, and to keep the data in memory rather than re-reading the settings file [22:30] jbrokc has joined the channel [22:31] tjholowaychuk: it'll need to be re-read per worker [22:31] jetienne has joined the channel [22:31] Brandon_R: what is mixins? [22:31] EyePulp: rats [22:32] brianc: Brandon_R: a way to add behavior to an object without inheritance [22:32] EyePulp: no way to pass something to a worker as it's spun up? =) no global context they can all reference? [22:32] Brandon_R: oh i was looking at stylus and thought it was a gradient library [22:32] EyePulp: (other than a file or db) [22:32] Brandon_R: https://github.com/LearnBoost/stylus/blob/master/examples/gradients.styl [22:33] brianc: Brandon_R: stylus is "sass" for node.js, but with a few more features [22:33] Brandon_R: i was just checking it out [22:33] Brandon_R: other than personal preference, which is better less or stylus? [22:33] brianc: stylus [22:33] Brandon_R: any performance benefits, compiler optimizations etc? [22:34] brianc: stylus is way way more powerful [22:34] brianc: as far as what you can do with the mini-language inside of it [22:34] dgathright has joined the channel [22:35] Brandon_R: cool [22:35] Brandon_R: so [22:35] Brandon_R: what projects you working on? [22:35] brianc: https://github.com/brianc/node-postgres [22:35] jetienne_ has joined the channel [22:36] jsurfer_ has joined the channel [22:36] Javier_ has joined the channel [22:36] Javier_: hello [22:36] Brandon_R: hi [22:36] Brandon_R: nice [22:36] Javier_: can someone help me? im having problemins with npm [22:36] Javier_: lol [22:37] ckknight has joined the channel [22:37] Brandon_R: k [22:37] Brandon_R: what problems are you having [22:37] Javier_: when i try to install geddy via npm [22:38] Javier_: it gives me an error [22:38] eldios: guys I once saw a nodejs project which could create URL screenshots.. cannot remind me where [22:38] eldios: any hint? [22:38] Javier_: Error: {"stack":"Error: Command failed: cp: cannot create regular file `/usr/local/bin/geddy-gen' [22:38] eldios: remember* [22:38] Javier_: (im a noob on ubuntu btw) [22:38] brianc: Javier_: do you own your /usr/local directory? [22:40] Brandon_R: brb guy [22:40] Brandon_R: s [22:40] AaronMT_ has joined the channel [22:40] dans has joined the channel [22:40] colinclark has joined the channel [22:43] AvianFlu has joined the channel [22:43] sdwrage has joined the channel [22:44] admc has joined the channel [22:48] shipit has joined the channel [22:48] cha0s has joined the channel [22:49] JSManiacs has left the channel [22:51] AphelionZ has joined the channel [22:51] mikeric has joined the channel [22:52] dmkbot has joined the channel [22:54] nibblebo_ has joined the channel [22:55] zackattack_ has joined the channel [22:56] zeade has joined the channel [22:56] [[zz]] has joined the channel [22:57] spcshpopr8r has joined the channel [22:58] mazen94122 has joined the channel [22:59] tlrobinson_ has joined the channel [23:00] EyePulp: tjholowaychuk: I think I got it - var app = require('./app')(settings); var c = cluster(app); [23:00] EyePulp: seems to work [23:01] EyePulp: anyone have a favorite redis module? [23:01] saikat has joined the channel [23:01] blup has joined the channel [23:02] Javier_: can someone help me out im trying to use geddy [23:02] Javier_: but geddy tries to look for node.js on my local folder [23:02] tjholowaychuk: EyePulp mjr_'s is great [23:02] Javier_: error: /usr/local/bin/geddy: line 78: /usr/local/bin/node: No such file or directory [23:02] tjholowaychuk: "redis" in npm [23:03] anveo has joined the channel [23:03] CoverSlide: install hiredis too, while you're at it [23:04] murilobr has joined the channel [23:04] EyePulp: hiredis? [23:05] EyePulp: hire dis, MOFO! [23:05] mdarnall has joined the channel [23:05] tjholowaychuk: the only problem i've had with it [23:06] tjholowaychuk: is that you either get strings [23:06] tjholowaychuk: or buffers [23:06] tjholowaychuk: per connection i believe [23:06] davidbanham has joined the channel [23:07] mynyml has joined the channel [23:07] kenperkins has joined the channel [23:07] neilk_ has joined the channel [23:09] shanebo has joined the channel [23:10] dguttman has joined the channel [23:11] Javier_: yeahhhhhh [23:11] Wizek-other has joined the channel [23:12] Tuller has joined the channel [23:12] zmbmartin has joined the channel [23:12] briandh has joined the channel [23:13] bnoordhuis has joined the channel [23:15] jellosea has joined the channel [23:16] franciscallo has joined the channel [23:16] EyePulp: tjholowaychuk: if I'm using .use(cluster.cli()) and also want to pass args to the server.js upon running, is there a way to do that without cluster.cli() colliding? [23:17] halcyon918 has joined the channel [23:17] anveo has joined the channel [23:17] jldbasa has joined the channel [23:17] mdarnall: /join #backbone.js [23:17] tjholowaychuk: EyePulp colliding? [23:18] japerry has joined the channel [23:18] grieve has joined the channel [23:18] TooTallNate has joined the channel [23:18] ianl` has joined the channel [23:18] warreng has joined the channel [23:18] a11235 has joined the channel [23:19] halcyon918: hey folks, I need to research distributed (multi-server, not multi-core) processing with node... i've looked at cluster, but that appears to be for clustering a process across multi-core... I suppose I could roll my own, but was kinda hoping to find something erlang-esque that would allow me to distribute processes a bit more transparently with node. Thoughts? [23:20] zmbmartin has joined the channel [23:20] tjholowaychuk: haproxy+cluster [23:20] zmbmartin has joined the channel [23:20] mekwall has joined the channel [23:20] halcyon918: tjholowaychuk: thanks, let me take a look at haproxy [23:20] mekwall has joined the channel [23:20] Murvin: any suggestion for good syslog module? [23:20] Javier_: SFOPAFDOF [23:21] dmkbot has joined the channel [23:21] zackattack_ has joined the channel [23:21] brianc1 has joined the channel [23:21] halcyon918: ah, just running a separate load balancer... I have all the hardware for that already... of course, my boss wanted a "pure node prototype"... hrm... [23:21] ckknight has joined the channel [23:22] Murvin: anyone use syslog? [23:22] tahu has joined the channel [23:22] tjholowaychuk: halcyon918 in that case use node-http-proxy + cluster [23:22] mekwall has joined the channel [23:22] tiglionabbit has joined the channel [23:23] losing has joined the channel [23:23] halcyon918: tjholowaychuk: I can load balance to my hearts content, but that doesn't necessarily provide distributed computing... just load balancing... I'll need to put something in place for inter-server communication [23:23] mekwall has joined the channel [23:23] Acolyte has joined the channel [23:23] tiglionabbit: Hi. I'm trying to dump some json into an EJS template using express's render function and it's getting full of html entities. How do I make it not do this? [23:23] tjholowaychuk: halcyon918 sockets [23:23] tjholowaychuk: haha [23:23] halcyon918: tjholowaychuk: yeah... I know [23:24] tjholowaychuk: complicating the uncomplicated [23:24] tjholowaychuk: tiglionabbit <%- [23:24] tjholowaychuk: <%= escapes html entities [23:24] tiglionabbit: oh [23:24] tjholowaychuk: <%- is the same thing but doesn't escape [23:24] halcyon918: tjholowaychuk: distributed computation isn't "uncomplicated" [23:24] tiglionabbit: thanks [23:24] Guest54714: is there something like pintura for node.js? [23:25] mekwall has joined the channel [23:25] nibblebot has joined the channel [23:25] tjholowaychuk: if you want erlang use erlang [23:25] tjholowaychuk: nothing will do erlang better than erlang [23:25] halcyon918: hah! [23:25] dshaw_: `npm outdated` was what I was looking for this morning. [23:25] halcyon918: that's what I said... [23:25] halcyon918: my boss said "no, use node" [23:26] jslatts has joined the channel [23:26] reid has joined the channel [23:26] halcyon918: he watched a presentation, soooooo... he's in the know, now, apparently [23:26] tim_smart: halcyon918: Was he like "Gimme some node.js mongodb expresso!" [23:26] EyePulp: tjholowaychuk: I mean if I run node server.js -foo bar and server.js is launching a cluster with .use(cluster.cli()) in place, I seem to get a "usage" message from cluster. [23:26] halcyon918: yeah, basically [23:26] EyePulp: just wondering if there's a way to pass args to my server from the command line that cluster ignores [23:27] halcyon918: alright, well, thanks for humoring me :P [23:27] tjholowaychuk: EyePulp ohh, currently I think I have cli() set up to assume any extra args are directed to it [23:28] EyePulp: tjholowaychuk: I see. well… hmm [23:28] dshaw_: halcyon918: *sigh* have we already come to that. [23:28] halcyon918: dshaw_: if we have humor, we have nothing [23:29] dshaw_: halcyon918: Redis pubsub + cluster [23:29] tjholowaychuk: do we have zeromq bindings [23:30] dshaw_: tjholowaychuk: meh [23:30] halcyon918: dshaw_: yeah, I was thinking rabbitmq, but essentially the same idea [23:30] dshaw_: tjholowaychuk: they're kind of out of date and not feature complete [23:31] tjholowaychuk: so many mq$s [23:31] dshaw_: halcyon918: Redis pubsub doesn't provide the robustness of a message queue, but it's a great way to dispatch messages [23:31] admc has joined the channel [23:32] dshaw_: halcyon918: and you can have as many subscribers as you want [23:32] halcyon918: dshaw_: thanks for the input, I'll include it in my research [23:32] dshaw_: halcyon918: Though if ZeroMQ turns you on it's pubsub works pretty well too. [23:33] tjholowaychuk: we have a pretty solid redis client too so that's a + [23:33] halcyon918: tjholowaychuk: yeah, I see a lot of node+redis going around these days [23:33] dshaw_: halcyon918: It's current limitation is that you can only have one publisher, but n subscribers [23:33] dshaw_: It's a great fit [23:34] dshaw_: halcyon918: npm's "redis" [23:34] dshaw_: https://github.com/mranney/node_redis [23:34] halcyon918: dshaw_: ok, definitely another to check out... I think I'll have more than one publisher at some point, but it might be good enough for a prototype [23:34] dshaw_: cool [23:35] warreng1 has joined the channel [23:35] boaz has left the channel [23:37] r04r has joined the channel [23:38] Acolytee: kriszyp: anyone home? [23:39] felixge has joined the channel [23:39] anveo has joined the channel [23:40] CarterL has joined the channel [23:40] spcshpopr8r has joined the channel [23:41] airhorns has joined the channel [23:42] joshkehn has joined the channel [23:42] descipher_ has joined the channel [23:43] mrtazz has joined the channel [23:43] zmbmartin has joined the channel [23:43] secoif has joined the channel [23:43] paul_k has joined the channel [23:44] shanebo has joined the channel [23:44] mandric has joined the channel [23:45] Brandon_R has joined the channel [23:45] japerry has joined the channel [23:46] Brandon_R: hello guys [23:46] joshkehn has left the channel [23:46] mekwall has joined the channel [23:48] mekwall has joined the channel [23:48] mekwall has joined the channel [23:49] stepheneb has joined the channel [23:51] djbell has joined the channel [23:51] jonrohan has joined the channel [23:51] zmbmartin has joined the channel [23:51] mekwall has joined the channel [23:52] Brandon_R: i like ryah node.js [23:52] Brandon_R: it just works [23:52] Brandon_R: very rarely does one find something that just works [23:53] ecin_ has joined the channel [23:55] mekwall has joined the channel [23:56] indexzero has joined the channel [23:56] ron_frown has joined the channel [23:59] navaru has joined the channel [23:59] navaru has left the channel [23:59] materialdesigner has joined the channel