[00:02] mackry: Looking to hire a node.js guru! Message if interested. [00:03] kristsk: short order gurus are hard to find these days. [00:04] mackry: Understandable [00:07] flasomm has joined the channel [00:07] flasomm: hello all, how can i use node-mysql with mamp ? [00:08] flasomm: i always get "Error: ECONNREFUSED, Connection refused" [00:09] xandrews has joined the channel [00:09] kristsk: um, does mamp-ished mysql listen on tcp/ip ? [00:10] galaxywatcher has joined the channel [00:10] kristsk: wait, mamp - thats mac. tcp/ip defaults there. [00:11] breccan has joined the channel [00:11] jiveB has joined the channel [00:12] jimt has joined the channel [00:12] sugardave has joined the channel [00:13] pyrony has joined the channel [00:13] jeff_horton has joined the channel [00:19] jimt_ has joined the channel [00:20] ringomanatee: If anyone's curious I updated my MVC example - works now with latest Mongoose buils and mongodb v. 1.8, as well as node v0.4.0 [00:20] sudoer has joined the channel [00:21] kawaz_air has joined the channel [00:22] hij1nx has joined the channel [00:24] dgathright has joined the channel [00:25] gazumps has joined the channel [00:25] seivan has joined the channel [00:27] dgathright has joined the channel [00:27] mjr_ has joined the channel [00:29] AlgisJ has joined the channel [00:31] dgathright has joined the channel [00:34] blueadept2 has left the channel [00:34] xandrews has joined the channel [00:35] blueadept has joined the channel [00:35] brianloveswords has joined the channel [00:36] unomi has joined the channel [00:36] daveluke has joined the channel [00:38] dgathright has joined the channel [00:39] mynyml has joined the channel [00:39] jimt has joined the channel [00:40] xandrews has joined the channel [00:41] kevinSJ has joined the channel [00:43] kevinSJ: Hi Guys, I need some help to figure something out. I've just started with Node.js and want to try something out. I've created a http request to my rails server. Is it possible to write data back to the rails server after making the GET? [00:44] kevinSJ: At the oment I have this: https://gist.github.com/856887. Which just fetch the status and headers of my request. [00:44] kevinSJ: Is it possible to send something back? [00:44] doubletap has joined the channel [00:44] kevinSJ: The actual request is a writeable stream right? [00:45] jimt_ has joined the channel [00:45] brianmario has joined the channel [00:48] NuckingFuts: I assume this is horrible practice? 'sock.on('data', console.log.bind(console) );' [00:48] NuckingFuts: lol [00:48] NuckingFuts: I should probably just pipe to console [00:48] wilmoore has joined the channel [00:49] mlncn has joined the channel [00:50] NuckingFuts: GAH! [00:50] NuckingFuts: Why does my socket keep closing!? [00:51] kawaz_air has joined the channel [00:51] redmind: speaking of pipes... what is the use case for util.pump that pipes can't accomplish? maybe im reading the docs wrong... [00:52] doubletap: I have a "this" scope question in comparison to the "this" scope in the browser. How do they differ? I have found that .call(this) creates a different scope in node than it does in a browser. [00:53] doubletap: I have an example here: http://jsfiddle.net/doubleTap/fHgsQ/ [00:57] kevinSJ: Can some explain to me what write actually do? Let's say I make a HTTP-request to my webserver. At the moment I have this : https://gist.github.com/856887. What will write() do if I call it with a string as parameter before req.end() ? [00:58] stagas has joined the channel [00:59] jacobolus has joined the channel [01:00] _richardJ has joined the channel [01:01] jimt has joined the channel [01:01] davidascher has joined the channel [01:02] DrStrange has joined the channel [01:02] redmind: as far as i am aware the http request emitter is not a writable stream, could be wrong though [01:05] kevinSJ: redmine, I think you are right. But here I'm wondering what happend if I call res.write("Hello"); for an example. [01:05] kevinSJ: Look at my previous posted gist to see what req is. [01:05] kevinSJ: ClientRequest [01:05] kevinSJ: object [01:06] jimt has joined the channel [01:07] sveimac has joined the channel [01:07] redmind: oh i see, yeah in that case you can do req.write, each write will send the data out using chunked encoding, req.end finishes the request [01:08] kevinSJ: redmind, Exactly that was what I thought. But where will the data be written to more specifically? [01:08] kevinSJ: My first guess was back to the server, but I can't see any changes there [01:11] timmywil has joined the channel [01:11] redmind: it should yeah... maybe try with a path in options? [01:12] heavysixer_ has joined the channel [01:13] redmind: path: '/', method: 'POST' [01:15] galaxywatcher has joined the channel [01:16] [[zz]] has joined the channel [01:19] dthompson has joined the channel [01:21] jacobolus has joined the channel [01:22] paul_k has joined the channel [01:22] aklt has joined the channel [01:25] arnorhs_ has joined the channel [01:28] zab has joined the channel [01:29] Ori_P_ has joined the channel [01:29] micheil_mbp has joined the channel [01:29] Ori_P_ has joined the channel [01:33] NuckingFuts: I assume V8 doesn't automatically optimize a for loop where there's only one iteration? [01:35] micheil has joined the channel [01:36] perezd_ has joined the channel [01:37] kawaz_air has joined the channel [01:39] riven has joined the channel [01:40] heavysixer_ has joined the channel [01:53] dnyy has joined the channel [01:53] Me1000 has joined the channel [01:53] aguynamedben has joined the channel [01:53] eschaton has joined the channel [01:54] dgathright has joined the channel [01:54] eschaton: What's the best XML parser for node.js? I'm looking for one that is preferably pure Javascript [01:54] davidascher has joined the channel [01:55] okuryu has joined the channel [01:55] heavysixer_ has joined the channel [01:57] SubStack: eschaton: indexzero says https://github.com/maqr/node-xml2js [01:57] dgathright_ has joined the channel [01:57] SubStack: in this article: http://blog.nodejitsu.com/6-must-have-nodejs-modules [01:58] jetheredge has joined the channel [01:59] pascalopitz: arghhh [01:59] sveimac_ has joined the channel [01:59] heavysixer__ has joined the channel [01:59] pascalopitz: SubStack: why didn't I know this [01:59] kawaz_air has joined the channel [01:59] pascalopitz: findit is what I need! [02:00] heavysixer has joined the channel [02:00] Wizek_ has joined the channel [02:00] SubStack: pascalopitz: I just wrote it because the existing file walk modules were annoying to use [02:01] pascalopitz: well ... guess what I just wrote ... bloody recursive function [02:01] pascalopitz: grmppffff [02:01] pascalopitz: all that wasted time [02:02] pascalopitz: oh well, too late ... [02:03] pascalopitz: next time :p [02:04] SubStack: `npm ls` is your friend! [02:04] SubStack: and search.npmjs.org [02:04] pascalopitz: I know, I know [02:04] guybrush: and http://blago.dachev.com:8000/modules/ ! [02:04] eschaton: Thanks. I'll take a look at that [02:05] pascalopitz: anyway, here is what I have hacked on ... yet another static site generator: https://github.com/pascalopitz/genstatic [02:06] pascalopitz: very basic [02:06] Croms has joined the channel [02:06] mattikus has joined the channel [02:06] pascalopitz has left the channel [02:06] wdperson has joined the channel [02:07] pascalopitz has joined the channel [02:08] dominic__ has joined the channel [02:08] galaxywatcher has joined the channel [02:09] jashkenas has joined the channel [02:09] zilt has joined the channel [02:12] sely_ has joined the channel [02:12] heavysixer_ has joined the channel [02:13] maushu has joined the channel [02:13] heavysixer has joined the channel [02:14] dominic__ has joined the channel [02:15] micheil has joined the channel [02:16] Neil has joined the channel [02:16] kawaz_air has joined the channel [02:17] pHcF has joined the channel [02:18] Neil: Hi all, i'm trying to run an expressjs form data exmaple @ https://github.com/visionmedia/express/blob/master/examples/form/app.js but i get an error TypeError: Object # has no method 'bodyParser' [02:18] Neil: running on node 0.4.0, latest express, connect 0.5.10 [02:19] xandrews has joined the channel [02:19] guybrush: Neil try it with v0.4.2 [02:20] guybrush: what says `npm ls installed express` ? [02:20] guybrush: i think the latest express (2.0.0beta) only works with v0.4.2 [02:20] Neil: express 1.0.7 [02:20] guybrush: right [02:20] guybrush: thats the old one [02:21] FunkyFortune has joined the channel [02:21] guybrush: bodyParser was bodyDecoder in 1.0.7 [02:23] Neil: guybrush, thanks heaps. Changed my code to use bodyDecoder and it seems to work. [02:23] guybrush: i recommend to install nvm or nave to be able to switch node-versions easy [02:24] guybrush: this is very usefull since node changes a lot :) [02:24] heavysixer_ has joined the channel [02:24] Neil: yeah i was using nvm recently, but couldn't get cloud9 to run (although i think now that i know how to do it i might switch back to nvm again) [02:25] guybrush: it is very handy [02:25] guybrush: also there is a new version of nvm [02:25] gazumps has joined the channel [02:25] guybrush: i like it [02:25] therrg has joined the channel [02:26] heavysixer has joined the channel [02:26] Neil: sure, i'll check it out [02:26] mmattozzi has left the channel [02:27] pascalopitz: node is really one of the fastest evolving things out there [02:27] samcday: Nail: Do you use Cloud9 as your main IDE? [02:27] samcday: ... [02:27] pascalopitz: hard o keep up [02:27] samcday: Neil: ^^^ [02:27] danfo has joined the channel [02:27] jcorneli has joined the channel [02:27] guybrush: pascalopitz: using the right tools makes it easy though to keep up [02:28] Neil: samcday, i'm trying to move over to it [02:28] samcday: Neil: Do you run a copy of the repo yourself or are you using their site? [02:28] pascalopitz: guybrush: well, I meant that in a good way ... libraries are mushrooming for sure ... I'm loving it [02:28] unomi has joined the channel [02:29] guybrush: pascalopitz: totally agree [02:29] Neil: samcday, local copy. I find the cloud9ide site too limiting. if you're interested i posted some setup instructions @ http://gratdevel.blogspot.com/2011/03/setting-up-cloud9-on-ubuntu-1010-32-bit.html [02:29] SubStack: I like how most node modules limit their own scope [02:29] samcday: Ooh, sexy. Cheers! :D [02:29] bartt has joined the channel [02:29] pascalopitz: guybrush: I am notoriously late to the party ... only started using coffeescript yesterday, for example ... [02:29] Neil: i'm gonna redo it with nvm in a minute, so i may add a followup post [02:30] guybrush: i dont like coffeescript :p [02:30] pascalopitz: I do now ... [02:30] guybrush: hihi [02:30] guybrush: well maybe 1 day [02:30] guybrush: i will also switch [02:30] pascalopitz: I was sceptical, but didn't wanna not try ... [02:30] Neil: haven't used it too much yet, but i really like the syntax [02:30] kawaz_air has joined the channel [02:31] pascalopitz: think I might use it for everything now, client stuff as well [02:31] DrStrange has joined the channel [02:31] Neil: i'm also doing a post on running coffeescript thorugh my local cloud9 [02:31] pascalopitz: what's cloud9? [02:31] Neil: http://cloud9ide.com/ [02:31] pascalopitz: ACTION is late to the party yet again [02:32] Neil: its a web based ide running on node [02:32] Neil: it's pretty nice, debugging support, etc [02:32] guybrush: and it can webdav [02:32] pascalopitz: interesting ... [02:32] pascalopitz: textmate here [02:33] Neil: what guybrush said ;) [02:33] SetupLy has joined the channel [02:34] pascalopitz: meh ... I am just getting used to github ... which is amazing [02:34] Neil: guybrush, when seting up node parts I would often get the "node path : not found" message. Is it an issue? everything seems to work regardless [02:34] pascalopitz: anyone used custom domain cnames for author pages? [02:35] aklt has joined the channel [02:36] guybrush: Neil: hm what do you mean with setting up node parts? [02:36] Neil: sorry, i meant when installing npm etc [02:37] guybrush: hm sorry I dont know [02:37] Neil: i'm trying to find an actual printout of the message [02:37] guybrush: never had that message [02:37] Neil: gimme a sec [02:37] Neil: it's the usual dependency check thingy when compiling (i think, i'm not very up-to-date with linux) [02:38] guybrush: hm i guess it should be fine [02:38] pascalopitz: right, very late nighttime here ... cya guys [02:38] guybrush: cu pascalopitz [02:39] Neil: not my exact issue, but here's a similar problem [02:39] Neil: http://groups.google.com/group/ajaxim/browse_thread/thread/26dd278e6c6b2695 [02:39] mackry has joined the channel [02:39] zakabird has joined the channel [02:39] admc has joined the channel [02:39] Neil: i get the same "Checking for node path : not found " line, but everything seems ok [02:39] guybrush: ah ok [02:39] guybrush: i think it just says [02:39] guybrush: that you didnt pass a node path install-option [02:39] guybrush: not sure though [02:40] heavysixer_ has joined the channel [02:40] Neil: ok, it drove me nuts, because i thought that the missing node path was causing o3 not to compile (turns out i didn't have libxml2-dev installed) [02:45] marcello3d: guybrush: are you THE guybrush? [02:45] AphelionZ has joined the channel [02:45] guybrush: marcello3d: yes i am THE mighty pirate :) [02:46] AphelionZ: Anybody have experience with local testing with http://sodajs.com? [02:46] AphelionZ: by that I mean without the Sauce integration, just a local Selenium RC connection [02:47] marcello3d: that's cool [02:47] marcello3d: can't wait for the rest of monkey island to be ported to ipad [02:47] micheil: wow. Just worked out a really sweet way to architect my express.js app [02:47] eventi has joined the channel [02:47] kawaz_air has joined the channel [02:47] guybrush: micheil: tell us! [02:48] AphelionZ: yeah, do tell [02:48] darshanshankar has joined the channel [02:48] triel has joined the channel [02:49] micheil: https://gist.github.com/856982 [02:49] micheil: actually, I'll update that.. [02:49] guybrush: right [02:50] guybrush: i have 1 node-module which I can pass a config-json, it will setup the express-app with all the tools like oauth staticprovider and stuff [02:50] micheil: https://gist.github.com/856982 [02:51] micheil: essentially it'll load up an entire tree of files [02:51] eventi has left the channel [02:51] perezd has joined the channel [02:52] micheil: so controllers/index.js exists, as would controllers/api/user.js [02:52] marcello3d: micheil: why not do app.get('/', require('./controllers/index').get) [02:52] Neil: thanks for your help guybrush! [02:52] micheil: because, it'd be slower [02:52] guybrush: Neil: glad i could help [02:52] micheil: this way I'm loading everything up that I know that I'll need, so I don't actually have to hit the FS at request time [02:53] AphelionZ: neat [02:53] micheil: require() is a synchronous operation, and the only way node.js can be asynchronous is by having callbacks return as fast as possible [02:54] micheil: so, require() would actually block your callback from returning [02:54] marcello3d: it only requires once, though, at load time? [02:54] marcello3d: app.get('/', require('./controllers/index').get) <- does the require once, not per request [02:54] guybrush: right, you dont want to require() inside a route :) [02:54] dgathright has joined the channel [02:55] guybrush: marcello3d: hmmm didnt know that [02:55] micheil: marcello3d: also, less typing ftw. [02:55] marcello3d: if you wanted to clean it up a bit, you could write something like function addRoute(route, controller) { ... } [02:56] dgathright_ has joined the channel [02:56] marcello3d: let me write something up [02:58] dgathright__ has joined the channel [02:58] mbrochh has joined the channel [02:58] arnorhs_ has joined the channel [03:00] AphelionZ: !seen tjholowaychuk [03:00] pastak has joined the channel [03:00] AphelionZ: guess that doesn't work here :p [03:01] marcello3d: https://gist.github.com/856985 [03:01] davidascher has joined the channel [03:02] marcello3d: used like: addRoute(app, "/", "/index"); addRoute(app, "/api/user"); [03:02] pHcF has joined the channel [03:02] marcello3d: you could add intelligence to handle the 'index' case more naturally, too [03:03] marcello3d: AphelionZ: grep nodeljs.debuggable? [03:03] kawaz_air has joined the channel [03:03] dgathright_ has joined the channel [03:04] AphelionZ: marcello3d: hmm? [03:05] marcello3d: see topic [03:05] AphelionZ: haha ahh [03:05] AphelionZ: thanks, I just want to ask him a question about soda [03:06] marcello3d: soda's bad for you ;D [03:06] SetupLy: Hello, Is it possible to do something like this: http://pastebin.com/fULk0iHL with javascript? [03:06] AphelionZ: tell me about it - I'm trying to make heads or tails of the API docs and I can't tell if it's describing the code that exists in the API or if it's meant t describe usage exampels: http://sodajs.com/api.html [03:07] dgathright has joined the channel [03:07] AphelionZ: SetupLy: just use json obects [03:07] marcello3d: did you paste the right thing? [03:09] AphelionZ: me? or SetupLy? [03:10] dgathright_ has joined the channel [03:13] micheil has joined the channel [03:16] dguttman has joined the channel [03:16] jlecker has joined the channel [03:16] aguynamedben has joined the channel [03:16] Iszak has joined the channel [03:16] Iszak has joined the channel [03:19] asimismo has joined the channel [03:20] pastak_ has joined the channel [03:20] warz has joined the channel [03:21] kawaz_air has joined the channel [03:23] micheil has joined the channel [03:24] marcello3d has joined the channel [03:25] marcello3d_ has joined the channel [03:26] jetheredge has joined the channel [03:28] paul_k has joined the channel [03:28] pastak has joined the channel [03:30] pastak_ has joined the channel [03:31] AphelionZ: gf3: you around? [03:36] g3funk has joined the channel [03:36] pastak has joined the channel [03:38] nilyt has joined the channel [03:41] warz has joined the channel [03:42] kawaz_air has joined the channel [03:43] McMAGIC-- has joined the channel [03:43] siculars has joined the channel [03:48] c4milo1 has joined the channel [03:48] galaxywatcher has joined the channel [03:51] KRBssa has joined the channel [03:51] mlncn has joined the channel [03:53] mattikus has joined the channel [03:56] ngs has joined the channel [03:57] kawaz_air has joined the channel [03:58] galaxywatcher has joined the channel [03:58] rfay has joined the channel [04:00] galaxywatcher has joined the channel [04:02] huge_ has joined the channel [04:02] galaxywatcher has joined the channel [04:03] extrastring has joined the channel [04:05] pastak_ has joined the channel [04:08] huge has joined the channel [04:08] huang47 has left the channel [04:12] jimt_ has joined the channel [04:13] doubletap has left the channel [04:14] zab has joined the channel [04:15] galaxywatcher has joined the channel [04:15] pastak has joined the channel [04:16] swaj has joined the channel [04:16] mlncn-agaric has joined the channel [04:16] swaj: what's the best proxy for web applications running node that need to support HTTP 1.1 keep-alive? I thought nginx might be nice, but I noticed that proxy_pass communicates with the node app over HTTP 1.0 [04:16] Emmanuel__ has joined the channel [04:18] gkatsev: node? [04:18] bubbafat has joined the channel [04:18] Croms has joined the channel [04:19] swaj: I can't use node standalone.. I want to run on port 80, but I have several other sites running through nginx... [04:19] gkatsev: ah, iptables? [04:19] swaj: eh? [04:19] gkatsev: or just run node as root? [04:19] kriszyp has joined the channel [04:19] asimismo has joined the channel [04:19] gkatsev: you can have iptables forward port 80 to port 8080 [04:19] swaj: that's not the problem [04:20] swaj: I have 5 websites, all running under nginx using virtual hosts [04:20] swaj: I can't just kill nginx so node can run standalone on port 80 [04:20] swaj: or all my other sites die [04:20] gkatsev: lol [04:20] gkatsev: ok [04:21] swaj: so I was just curious of there was another decent proxying webserver (like nginx) that supported HTTP 1.1 to the backend [04:21] gkatsev: one option is definitely running node as root. [04:21] swaj: because nginx will serve HTTP 1.1 to the browser, but not to the backend [04:22] kawaz_air has joined the channel [04:22] gkatsev: lighttpd? tinyproxy? polipo? [04:23] gkatsev: of course there's always apache [04:23] swaj: god no [04:23] gkatsev: :) [04:24] mackry has joined the channel [04:24] hornairs has joined the channel [04:27] konobi: varnish or pound? [04:27] swaj: does varnish do http 1.1? [04:27] swaj: on the backend I mean [04:29] thisgeek has joined the channel [04:31] swaj: I guess for the time being I can run the stuff that requires HTTP 1.1 on another port... oh well. I love nginx too much to give it up. [04:31] mlncn has joined the channel [04:35] falconair has joined the channel [04:36] falconair: is there a way to subscribe to ALL events of an object (for debugging), rather than .on('name',...)? [04:38] AphelionZ has joined the channel [04:38] tk has joined the channel [04:42] markc has joined the channel [04:42] Emmanuel__ has joined the channel [04:44] mariano_iglesias has joined the channel [04:45] sirkitree has joined the channel [04:46] falconair: is there an even when a tcp server correctly starts listening (but before any client actually connects)? I don't see anything in 0.4.2 docs [04:47] falconair: I want to start a server, when it listening, start a client...all within the same test. [04:47] jtsnow has joined the channel [04:47] mikegerwitz: falconair: I know that the the listen() method on http server has a callback as the 2nd parameter. Others may be the same. [04:48] mikegerwitz: falconair: I just used that to do exactly what you're trying to do (test when listening) for an integration test for an http service a couple days ago [04:49] falconair: mikegerwitz...yup, i should have been looking at the listen method rather than looking for events in 'net'...thanks! [04:49] Sami_ZzZ_ has joined the channel [04:50] xevin has joined the channel [04:52] kawaz_air has joined the channel [04:55] mikeal has joined the channel [05:02] JaMeSiTeGeN has joined the channel [05:04] KindOne has joined the channel [05:06] KindOne has left the channel [05:07] jimt has joined the channel [05:07] warz: are there any template engines for expressjs similar to jinja? [05:10] micheil_mbp has joined the channel [05:11] kawaz_air has joined the channel [05:15] mikeal has joined the channel [05:18] micheil: mikeal: you wouldn't happen to know of any connect middleware for authentication that isn't connect-auth, by any chance? [05:21] hornairs has joined the channel [05:25] csanz has joined the channel [05:26] fungi has joined the channel [05:26] xevin has joined the channel [05:27] micheil has joined the channel [05:29] soulofpeace has joined the channel [05:30] davidascher has left the channel [05:31] JaMeSiTeGeN: What is the bot used to log this channel? [05:31] SubStack: ircretary [05:31] ircretary: SubStack: I'm not sure what to do with that command. Ask for help in PM. [05:32] JaMeSiTeGeN: ?? [05:33] hij1nx has joined the channel [05:36] kawaz_air has joined the channel [05:36] mikeal: i've never used connect :) [05:39] wav1 has joined the channel [05:43] wilmoore has joined the channel [05:44] breccan has joined the channel [05:45] micheil has joined the channel [05:46] skm has joined the channel [05:46] Croms has joined the channel [05:47] xla has joined the channel [05:48] Aria has joined the channel [05:48] micheil_mbp has joined the channel [05:51] Croms_ has joined the channel [05:52] kawaz_air has joined the channel [05:53] jimt_ has joined the channel [05:57] micheil has joined the channel [05:59] JaMeSiTeGeN has left the channel [05:59] JaMeSiTeGeN has joined the channel [06:00] admc has joined the channel [06:00] sleeplessinc has joined the channel [06:00] JaMeSiTeGeN: Who was I talking to yesterday about a js linux os? [06:02] Aria: Everyone who'd listen? [06:03] SubStack: sounds pointless [06:03] SubStack: but then again so do most of my projects [06:03] SubStack: but at least they're tiny [06:04] jesusabdullah: ^__^ [06:04] JaMeSiTeGeN: SubStack: join #js-linux for more info. [06:04] jesusabdullah: I was thinking about doing that email upload server thing [06:04] jesusabdullah: I think I'd need to make a pop3 or imap implementation for node [06:05] jesusabdullah: OPE [06:05] jesusabdullah: one already exists! [06:05] jesusabdullah: awesomesauce [06:05] jesusabdullah: Open source is great! [06:05] jesusabdullah: ow8 [06:05] jesusabdullah: "Maybe it'll work one day." FFFFF [06:05] mscdex: yeah node-imap :D [06:05] andrewfff has joined the channel [06:05] Aria: Probably not far from. POP3 is easy ;- [06:05] SubStack: node-email-server [06:06] jesusabdullah: Yeah, just found node-imap [06:06] jesusabdullah: :D [06:06] jesusabdullah: watching! [06:07] mikeputnam: just tweeted by jeresig... [06:07] mikeputnam: 00:02 < jeresig> Sitting by a roaring fireplace, watching Venture Bros with friends, installing an app I'm working on into the new No.de service. Yes. [06:08] SubStack: fuck yeah venture bros [06:08] jesusabdullah: gurl y u tweeting jeresig [06:08] mikeputnam: i bet the signups for joyent just took a healthy spike [06:08] JaMeSiTeGeN: Anyone want to help me make an OS from nothing but The-Linux-Kernel, Google's-V8 and openGL [06:08] SubStack: I've been meaning to get into superscience one of these days [06:08] jesusabdullah: Oh, HE tweeted! [06:08] jesusabdullah: Superscience is great! [06:08] mikeputnam: chya [06:08] SubStack: build some walking eyes, you know [06:09] JaMeSiTeGeN: and there dependencies [06:09] SubStack: node-superscience, etc [06:09] jesusabdullah: "...all the way to Phoenix!" "What's in Phoenix?" "Why, YO MOMMA STEVE" [06:09] JaMeSiTeGeN: this is not #defocus [06:10] jesusabdullah: wat [06:10] JaMeSiTeGeN: this is not #defocus [06:10] jesusabdullah: If you're sassing us for not being on-topic, you can gtfo [06:10] SubStack: I'm actually hacking this node-ssh-server stuff [06:10] SubStack: which is being very tricky [06:10] JaMeSiTeGeN: node-ssh-server, I WANT! [06:10] jesusabdullah: it's pretty SUPER as far as SCIENCE is concerned! [06:10] SubStack: if you want it, you'll have to tolerate my random brain dump! [06:11] jesusabdullah: SPEAKING OF, I'm working on science these days! I just made a wood box with foam in it. [06:11] jesusabdullah: It's for my thesis. [06:11] mikeputnam: sciencey [06:11] SubStack: jesusabdullah: that sounds like such win [06:11] JaMeSiTeGeN: Does anyone want to work with me make a javascript linux OS? [06:11] SubStack: 'and for my thesis, I made... this box... with foam in it' [06:11] SubStack: you know, for science... [06:11] jesusabdullah: Hahaha [06:11] jesusabdullah: Yeah :D [06:11] JaMeSiTeGeN: jesusabdullah: Do you want to join? [06:11] jesusabdullah: Oh, it's so bad too. I used a small skilsaw to cut these small panels so the tolerances are all outta whack [06:12] jesusabdullah: JaMeSiTeGeN: What, js-linux? Naw, I like my lennox's as-is [06:12] mikeputnam: annie? [06:12] SubStack: jesusabdullah: you should've seen the abominations I kludged together for the underwater ROV [06:12] jesusabdullah: Don't get me wrong, I love js, but I believe in a world where things are written in all kinds of crazy things all the time [06:12] SubStack: I mean, I was using green threads [06:12] jesusabdullah: :S [06:13] jesusabdullah: Remember that green thread based networking lib for python? [06:13] SubStack: That was a dig at threads, come on people. [06:13] jesusabdullah: It confused the crap out of me [06:13] jesusabdullah: and that's what I think of when I hear "green threads." [06:13] jesusabdullah: is "really irritating python lib" [06:13] JaMeSiTeGeN: jesusabdullah: JS-Linux is my little project (only draft right now) were it loads the linux kernel and boots into nothing but Googles V8 JS Engine and an OpenGL interface. [06:13] SubStack: on that note, http://lesswrong.com/lw/jb/applause_lights/ [06:14] jesusabdullah: Hmm [06:14] JaMeSiTeGeN: hmm === "yes" ?? [06:14] SubStack: I fear that my hatred of threads is becoming a cached thought :/ [06:14] mikeputnam: JaMeSiTeGeN: so... Googles Chrome OS? [06:14] jesusabdullah: I'm afraid I don't see the utility, JaMeSiTeGeN, but if that's what interests you then go for it. It may be more better than I think it will be. [06:14] jesusabdullah: but I have thesis-ing, small side-projects and stackvm-ing that all take precedence [06:15] JaMeSiTeGeN: mikeputnam: No not chromiumOS instead just a linux kernel and a javascript openGL interface [06:15] SubStack: but then old people who I encounter have all of these similarly antiquated-sounding opinions [06:15] unomi has joined the channel [06:15] unomi has joined the channel [06:15] SubStack: like one of my professors thought node.js sounded silly because he worked on a big evented project in C in the 1980s [06:15] jesusabdullah: Another side project: A rudimentary game in node that I can run off my linode, so I can justify the cost [06:15] jesusabdullah: It costs more than WoW! [06:15] JaMeSiTeGeN: poweron -> coreboot -> payload (linuxkernel) -> Google's V8 JS Engine -> OpenGL interface -> Login in either a text-only /ui or the openGL GUI. [06:16] SubStack: jesusabdullah: you should hack on hexhack for me! [06:16] jesusabdullah: Indeed [06:16] jesusabdullah: I need to fuck with the source again [06:16] jesusabdullah: or, that is [06:16] SubStack: since you know, I can't be bothered [06:16] jesusabdullah: read into it [06:16] JaMeSiTeGeN: jesusabdullah: How more info on my draft please goto http://typewith.me/RCUIqvqR7s [06:16] SubStack: and hexhack will be a doubly powerful node.js demonstration since it will teach you node.js and javascript in the process of playing it! [06:17] tmpvar: just got a rough hack working which is the glue between cluster and socket.io : https://github.com/tmpvar/cluster-socket.io/blob/master/index.js [06:17] JaMeSiTeGeN: jesusabdullah: You left? [06:18] jesusabdullah: Yeah JaMeSiTeGeN, it doesn't interest me. [06:18] JaMeSiTeGeN: Can you atleast have a look, it does seem quite good after you look through it [06:19] jesusabdullah: I'm not saying it's bad or anything, I'm just saying it doesn't light my fire. [06:19] atiti has joined the channel [06:19] jesusabdullah: It could be good for VMs [06:19] jesusabdullah: make them more faster or something [06:19] JaMeSiTeGeN: try instant [06:20] jesusabdullah: I'll wait for the benchmarks, brah. [06:20] JaMeSiTeGeN: somewhat as long as it takes to start a nodejs opengl canvas and draw to it [06:20] zakabird: substack: (or whoever) im doing something with node running arbitary code (js, python) [06:20] zakabird: any thought on security / sandboxing? googling doesnt turn up much for node [06:21] Aria: Look at the vm module. [06:21] marcello3d: chroot? [06:21] SubStack: process.binding('evals').Script [06:21] zakabird: seems it might be an issue for hexhack too... [06:21] JaMeSiTeGeN: AAA_awright: Hello, Was I talking to you yesterday about a JavaScript desktop? [06:21] Aria: But consider forking, setting ulimits, and using separate processes and unix permissions to lock things down [06:21] SubStack: yeah I haven't written the vm code for hexhack yet [06:21] SubStack: since you know I have this startup I'm building and all [06:22] SubStack: incidentally I want to integrate hexhack with our backend [06:22] SubStack: so we can have a control room in-game [06:22] AAA_awright: JaMeSiTeGeN: I forget the exact conversation what else? [06:22] SubStack: like the irc bot works now [06:22] AAA_awright: Something about [06:22] jesusabdullah: zakabird: There's a node-sandbox somewhere [06:22] zakabird: thanks for suggestions. new to unix, so lots to learn. ex windows game dev... [06:22] jesusabdullah: zakabird: I think maybe at github.com/gf3 ? [06:22] jesusabdullah: oh snap [06:22] AAA_awright: JaMeSiTeGeN: About a Javascript deskop? I don't think so [06:22] jesusabdullah: zakabird: You should make sweet video games in node then! [06:22] SubStack: goodness I am full of ideas tonight [06:22] JaMeSiTeGeN: AAA_awright: Can you goto http://typewith.me/RCUIqvqR7s for the draft so we can continue [06:23] jesusabdullah: zakabird: Make a game I can run on my linode to justify the cost. ;) [06:23] marcello3d: jesusabdullah: this? http://nodejs.org/docs/v0.4.1/api/vm.html [06:23] AAA_awright: JaMeSiTeGeN: No not anything like that [06:23] JaMeSiTeGeN: Yes it was I remember, but it was less for the desktop [06:23] AAA_awright: Is that what it was for? What were we talking about? [06:23] JaMeSiTeGeN: more for a JS-Linux OS [06:23] jesusabdullah: marcello3d: Oh Nelly! I haven't been following the add-ons too well [06:23] jesusabdullah: zakabird: Did you see that? node 0.4 has a vm apparently [06:24] zakabird: yeah, that'd be fun. first step web app->node->blender etc [06:24] JaMeSiTeGeN: AAA_awright: Pritty much [06:24] AAA_awright: JaMeSiTeGeN: Something about V8 embedding [06:24] JaMeSiTeGeN: yea [06:24] AAA_awright: Ah hm. [06:24] SubStack: oh nice you can just require('vm') now [06:24] jesusabdullah: aww yea [06:24] SubStack: back in the before-time you'd have to process.binding('evals') [06:24] Aria: Woot! I've got my node embedding actually running a script and calling back into the API around node. [06:25] zakabird: yeah, im gonna reasearch it. right now I want full fs and exec on my local machine anyway so not a pressing issue [06:25] JaMeSiTeGeN: AAA_awright: So what do you think of this idea? http://typewith.me/RCUIqvqR7s [06:25] jesusabdullah: I never really did windows dev. Is it as painful as I imagine? [06:26] Aria: Depends on what parts. the older Windows APIs are hell -- handles and such. But the new stuff is much nicer. Not what I'd call awesome, but tolerable. [06:26] JaMeSiTeGeN: You can type in the document, it is editable, and I will see it live :) [06:26] jesusabdullah: I see. [06:26] AAA_awright: JaMeSiTeGeN: Is this a kernel mod? [06:27] AAA_awright: V8 in the kernel is... Interesting? [06:27] JaMeSiTeGeN: AAA_awright: You can type in the document its self [06:27] JaMeSiTeGeN: and there is a chat on the right [06:27] AAA_awright: Yeah [06:27] JaMeSiTeGeN: talking there in the chat [06:28] zakabird: windows dev is so outside the coolness now, imho [06:29] AAA_awright: JaMeSiTeGeN: This is looking a bit like Chrome OS [06:29] zakabird: hopefully it dies at some point, but I guess not anytime soon [06:30] zakabird: JaMeSiTeGeN: opengl ui from scratch is huge project by itself isn't it? [06:30] JaMeSiTeGeN: AAA_awright: not quite. This is aimed at instant boot, and the whole project being written in pure javascript. (Node-like/based) and chromiumOS isn't using javascript for chromium-browser it is in C [06:31] AAA_awright: JaMeSiTeGeN: What difference does language make if the features are there? [06:31] JaMeSiTeGeN: zakabird: Yes that is acturally the main part of the project. [06:31] AAA_awright: So... A Javascript window manager... [06:31] JaMeSiTeGeN: AAA_awright: Simple, if it is all written in one language it is far easer to manage and deal with when compiling (Yes compiling js to binary) [06:32] JaMeSiTeGeN: AAA_awright: More or less. :) [06:32] zakabird: then perhaps target webgl, i.e. node+js powered ui [06:32] AAA_awright: You don't really compile js to binary [06:32] AAA_awright: That sounds more reasonable [06:32] zakabird: that something I'm thinking about [06:32] tmpvar: linux + gallium + wayland + node + node-canvas (glitz backend) [06:33] JaMeSiTeGeN: Please read my draft for the idea at the link http://typewith.me/RCUIqvqR7s [06:33] shaver: wow, this conversation is still going [06:34] tmpvar: looks rough [06:34] csanz has joined the channel [06:35] JaMeSiTeGeN: tmpvar: What is rough about it? [06:35] JaMeSiTeGeN: It is a draft so it is rough [06:36] JaMeSiTeGeN: 110 lines [06:36] JaMeSiTeGeN: shaver: Yes all from yesterday :p [06:36] kawaz_air has joined the channel [06:37] JaMeSiTeGeN: why is no one talking? [06:38] JaMeSiTeGeN: And anyone who is interested in my little project please join #jslinux or #JS-Linux as it redirects you [06:38] SubStack: s/talk/typ/ [06:39] JaMeSiTeGeN: Anyone interested? [06:40] JaMeSiTeGeN: AAA_awright: So what do you think of the idea? [06:40] jesusabdullah: Well, first, because probably nobody is that interested in your idea (no offense). [06:41] marcello3d: sounds like a lot of work for small gain? [06:41] AAA_awright: It's big, and not particularly innovative [06:41] jesusabdullah: mscdex: node-poormansmysql makes me laugh [06:41] AAA_awright: Lots of cool features that other projects have been working on already [06:41] malkomalko has joined the channel [06:41] marcello3d: so I'm somehow creating some mongodb data that freezes mongohub, mongo shell, and my own code [06:42] mscdex: jesusabdullah: :-D [06:42] jesusabdullah: :D [06:42] marcello3d: spikes the cpu to 100% on any of those 3 [06:42] marcello3d: (mongod is not spiked) [06:42] seivan has joined the channel [06:42] mscdex: the first async mysql module! [06:42] mscdex: :p [06:42] zakabird: anybody have any good book/site recommendations for learning 'higher order programming' with a javascript focus? I'm loving 'higher order perl' [06:42] AAA_awright: JaMeSiTeGeN: It looks like your making a window manager like Gnome or whatnot [06:42] zakabird: but perhaps should just knuckle down and learn some lisp [06:43] Aria: gnome is not a window manager [06:43] marcello3d: effing gnome [06:43] JaMeSiTeGeN: More, yes somewhat like gnome but also to replace Xserver and also the ttys [06:43] marcello3d: always so ugly [06:44] JaMeSiTeGeN: humm, gnome can be ugly, thats why you add a theme, google LMDE for a really good theme, more really LM-10 theme [06:45] marcello3d: sure [06:45] marcello3d: *continues to not using linux* [06:45] AAA_awright: Aria: ...What is it then? [06:46] JaMeSiTeGeN: ACTION Continues to use LMDE [06:46] Aria: A desktop environment? A user environment? [06:46] AAA_awright: What do you think is providing the fancy themes, menu bars, etc [06:46] AAA_awright: Fine, desktop enviornment [06:46] Aria: Metacity and Compiz are window managers. [06:46] Aria: And Metacity at least is a relatively tiny program ;-) [06:47] AAA_awright: Those are visual effects for your Gnome I thought [06:47] JaMeSiTeGeN: And I want OpenGL to be the window manager and the desktop env and even Everything you see. [06:47] AAA_awright: In any case that's what JaMeSiTeGeN appears to be doing [06:47] JaMeSiTeGeN: The whole thing being a canvas [06:47] Aria: No, those are window managers. Though compiz is happy to manage them into wobbly visual spectacles. [06:47] mikeal has joined the channel [06:47] razvandimescu has joined the channel [06:47] JaMeSiTeGeN: Just wondering how exactly can I have an OpenGL canvas without Xserver? What in JS can I do? [06:48] Aria: (And Metacity manages compositing, too, though not with much fanfare.) [06:48] JaMeSiTeGeN: can OpenGL do it? with a little hack I hope? [06:48] Aria: JaMeSiTeGeN: OpenGL is just an API. There are implementations that draw to other things than X windows. Look up Wayland. [06:48] Aria: Also, OpenGL is not optimal for two dimensional drawing. [06:49] Aria: .oO(How do you think most of those fancy new phones draw on screen? Not via X...) [06:49] JaMeSiTeGeN: So a list of what I need is, Linux kernel, V8/JS, OpenGL and What? [06:49] possibilities has joined the channel [06:49] McMAGIC-- has joined the channel [06:49] Aria: OpenGL is just an API, dude. It's not a thing you install. [06:50] JaMeSiTeGeN: So V8 has that API ?? [06:50] josha has joined the channel [06:51] jimt has joined the channel [06:52] JaMeSiTeGeN: Aria: So V8 has that API ?? [06:52] JaMeSiTeGeN: bb guys [06:52] JaMeSiTeGeN: brb guys* [06:52] Aria: No . . . v8 is a javascript interpreter. [06:52] Aria: Though there are webgl implementations for it. [06:52] malkomalko has joined the channel [06:54] jesusabdullah: Someone wrote some opengl bindings for v8 [06:54] jesusabdullah: I will find them [06:54] eventi|represent has joined the channel [06:55] jesusabdullah: JaMeSiTeGeN: https://github.com/philogb/v8-gl [06:56] jimt has joined the channel [06:56] marcello3d: how new is Buffer in node.js? [06:56] gkatsev: been there for a while [06:56] marcello3d: it seems like mongodb-native doesn't understand Buffer... and it's using strings everywhere for binary data? [06:57] brapse has joined the channel [06:57] anno^da has joined the channel [06:57] seivan: Load balancing between servers [06:57] seivan: any guides that specifies node.js? [06:58] extrastring has joined the channel [06:59] anno^das: Hello. Could someone point me to a module that allows me to change the charset for given strings? (At the moment I got the problem that jsdom produces some invalid strings when creating the dom for webpages that include german "umlaut" chars) [06:59] rakeshpai has joined the channel [07:00] anno^das: (the complete problem including screenshots and more explanation can be found here - https://github.com/stagas/jjw/issues#issue/1 ) [07:01] AAA_awright: seivan: Like any other reverse proxy. Nginx is good at load balancing with a reverse proxy [07:01] seivan: We are using sockets [07:01] seivan: not webserver [07:01] seivan: need > 200k users [07:01] seivan: real-time data [07:01] marcello3d: got it working :D [07:01] tmpvar: jesusabdullah, i also have some old bindings for gl: node-ogl [07:02] abraham has joined the channel [07:03] asdf9876asdf9876 has joined the channel [07:04] asdf9876asdf9876: any suggestions for facebook connect? [07:05] asdf9876asdf9876: i'm trying node-facebook by dominiek, but i'm getting an error of "ReferenceError: Class is not defined" [07:06] Iszak_ has joined the channel [07:07] Iszak has joined the channel [07:07] marcello3d: anyone seen "TypeError: HashUpdate fail" on a hash.update() ? (md5) [07:08] mikeal has joined the channel [07:09] seivan: Anyone got any clues on how to load balance node with sockets? [07:09] Iszak has left the channel [07:12] kawaz_air has joined the channel [07:12] incon has joined the channel [07:13] jbueza has joined the channel [07:13] jimt has joined the channel [07:17] josh_a_stl: anyone have suggestions for facebook connect & node.js? [07:25] dwww has joined the channel [07:25] warz has joined the channel [07:27] jbueza has joined the channel [07:28] axeljohnsson has joined the channel [07:34] JaMeSiTeGeN has joined the channel [07:34] kal-EL_ has joined the channel [07:35] eMyller has joined the channel [07:35] eMyller: hellos [07:36] JaMeSiTeGeN: eMyller: Hi [07:36] eMyller: i'm trying to install npm since some hours ago [07:36] eMyller: i've compiled and installed node successfully [07:36] JaMeSiTeGeN: What method are you using, What commands? [07:36] JaMeSiTeGeN: What version of node? [07:36] eMyller: master @ github [07:37] JaMeSiTeGeN: What does `which node` give you? [07:37] eMyller: but running node ./cli.js install on npm dir gives me a traceback-less "segmentation fault" [07:37] JaMeSiTeGeN: What does `node --version` return? [07:37] eMyller: /usr/local/bin/node [07:37] eMyller: v0.5.0-pre [07:37] JaMeSiTeGeN: kk and `node --version` [07:37] JaMeSiTeGeN: good [07:38] JaMeSiTeGeN: And what command are you using to attempt to install npm? [07:38] sechrist has joined the channel [07:38] eMyller: i just cloned the npm repo, cd'ed into the dir and ran $ node ./cli.js install npm [07:38] eMyller: also tried $ make install [07:39] eMyller: any of the choices listed at the readme leads me to a segmentation fault [07:39] JaMeSiTeGeN: eMyller: Have you done. `curl http://npmjs.org/install.sh | sh` [07:39] eMyller: yea [07:39] JaMeSiTeGeN: What did it do? [07:39] eMyller: lemme try it again an get the output. [07:39] JaMeSiTeGeN: kk [07:39] sechrist: I hope nobody hacks npmjs.org [07:39] JaMeSiTeGeN: paste [07:39] JaMeSiTeGeN: !paste [07:39] JaMeSiTeGeN: humm. [07:40] JaMeSiTeGeN: sechrist: Me too. [07:40] JaMeSiTeGeN: Wait too late, I did. :) [07:40] sechrist: cracks rather* [07:40] sechrist: has anybody found and reported any security vulnerabilities in node? [07:40] JaMeSiTeGeN: Yes [07:40] eMyller: JaMeSiTeGeN: http://wstaw.org/m/2011/03/06/plasma-desktopKA1641.jpg [07:40] eMyller: just the same thing. :( [07:41] sechrist: JaMeSiTeGeN: What were their nature? Code execution? [07:41] JaMeSiTeGeN: Can I have the rest of the screenshot? [07:41] JaMeSiTeGeN: sechrist: rm -rf / and yes [07:41] JaMeSiTeGeN: eMyller: Can I have the rest of the screenshot? [07:41] eMyller: sec [07:42] JaMeSiTeGeN: The whole screen would help [07:42] csanz has joined the channel [07:42] eMyller: JaMeSiTeGeN: http://wstaw.org/m/2011/03/06/plasma-desktopHf1641.jpg [07:42] sechrist: JaMeSiTeGeN: I can't find anything related via Google. Did this go through the mailing list or any of the security alert channels? [07:43] JaMeSiTeGeN: humm, KDE sure is wierd [07:43] jollyroger_ has joined the channel [07:43] sechrist: Who uses KDE? ew [07:43] JaMeSiTeGeN: eMyller: [07:43] sechrist: I saw the ss [07:43] sechrist: ew [07:43] eMyller: sechrist: i do. proudly. [07:43] jollyroger_: hi guys [07:43] eMyller: my kde may be weird, but it works just like i set it to. :) [07:44] JaMeSiTeGeN: humm, eMyller: How about we .. humm. [07:44] jollyroger_: first time in here [07:44] jollyroger_: amazing so much people [07:44] jollyroger_: i couldn't image node.js had so many fans [07:44] JaMeSiTeGeN: eMyller: How did you bold my? [07:44] JaMeSiTeGeN: **test**+ [07:44] JaMeSiTeGeN: humm [07:44] eMyller: JaMeSiTeGeN: my irc client allows text formatting. [07:44] JaMeSiTeGeN: ller: my kde And my is bolded [07:45] JaMeSiTeGeN: cool and it sends it to us [07:45] eMyller: yep :) [07:45] mscdex: heh [07:45] jollyroger_ has joined the channel [07:45] JaMeSiTeGeN: eMyller: Did you get a line? [07:45] jollyroger_: 123 [07:45] eMyller: JaMeSiTeGeN: sorry? [07:45] JaMeSiTeGeN: Do you see lines below? [07:45] mscdex: seivan: web workers? [07:46] jollyroger_ has joined the channel [07:46] eMyller: JaMeSiTeGeN: i see no lines. [07:46] jollyroger_ has left the channel [07:46] JaMeSiTeGeN: humm. [07:46] JaMeSiTeGeN: meh [07:47] JaMeSiTeGeN: eMyller: Run this as root: `sync;echo 3>/proc/sys/vm/drop_caches;sync` [07:48] JaMeSiTeGeN: Then try the `curl http://npmjs.org/install.sh | sh` [07:48] eMyller: JaMeSiTeGeN: still as root? [07:48] JaMeSiTeGeN: yes [07:49] eMyller: (my user doesn't own /usr/local) [07:49] JaMeSiTeGeN: Node and npm should be installed as root I say [07:49] JaMeSiTeGeN: does not matter [07:49] JaMeSiTeGeN: /usr/local is for everyone [07:50] JaMeSiTeGeN: Your user does not own bash and you can run bash, correct.. [07:50] JaMeSiTeGeN: root ownes /bin and anyone can run anything from /bin [07:50] eMyller: yep; i just read something on isaac's blog and he says i should own it [07:50] eMyller: whatever, doesn't matter [07:50] JaMeSiTeGeN: Assuming that the perms give execute to others [07:51] eMyller: JaMeSiTeGeN: http://wstaw.org/m/2011/03/06/plasma-desktopgz1641.jpg [07:51] JaMeSiTeGeN: eMyller: strange [07:51] eMyller: yeah. [07:52] JaMeSiTeGeN: eMyller: Humm, Can you please uninstall node and reinstall node as root? [07:52] eMyller: sechrist: btw, actually i hated kde before. [07:52] JaMeSiTeGeN: its far cleaner [07:52] eMyller: k [07:52] sechrist: I use osx, I hardly care what window manager people use :) [07:53] JaMeSiTeGeN: ACTION kicks sechrist [07:53] sechrist: macs rule [07:53] JaMeSiTeGeN: ACTION eats an apple [07:53] sechrist: I don't use textmate and crap though [07:53] sechrist: split view vim [07:53] JaMeSiTeGeN: ACTION sews apple because it tasted wrong [07:53] eMyller: ACTION throws an apple at the trash bin [07:54] sechrist: haters gonna hate, osx rocks [07:54] JaMeSiTeGeN: ACTION and eMyller are happy with the Free and open source [07:54] eMyller: :D [07:54] sechrist: I use foss, I'm just not a nut about having to run foss [07:54] eMyller: JaMeSiTeGeN: ran make uninstall then install. tried the install.sh again and got the same problem. [07:54] JaMeSiTeGeN: But gnome far beats kde, FOR MY LIKINGS [07:54] mattikus has joined the channel [07:55] JaMeSiTeGeN: make uninstall as user, make install as root, install.sh as root. [07:55] eMyller: JaMeSiTeGeN: i'm sure you don't know kde that deep. at least not nowadays' kde. i was a gnome power user before. :) [07:55] eMyller: well [07:56] eMyller: JaMeSiTeGeN: but the install was ran previously by root, so user couldn't uninstall [07:56] JaMeSiTeGeN: I have used kde and know its quite powerful but I just don't like the feel [07:56] JaMeSiTeGeN: instead I use lmde [07:56] tperkis has joined the channel [07:56] JaMeSiTeGeN: It is perfect for programmers. [07:56] sechrist: xfce [07:56] sechrist: fluxbox [07:56] JaMeSiTeGeN: lmde has gnopme and a very nice theme [07:57] stride: sechrist++ [07:57] JaMeSiTeGeN: ACTION feeds an apple to sechrist [07:57] kawaz_air has joined the channel [07:57] eMyller: kde can be very beautiful; and i know its interface was quite unstable in some hardwares. [07:57] sechrist: Do people actually run compiz-fusion or whatever [07:57] SubStack: ACTION rocks the xmonad [07:57] JaMeSiTeGeN: Then sechrist relised it is poison [07:58] eMyller: but it runs perfect at my hardware, and it supports more hardwares now, anyway [07:58] sechrist: OSX is fine.. I'm dreading the day when Apple discontinues this operating system [07:58] boogyman has joined the channel [07:58] sechrist: in favor of locked down IOS on macbooks [07:58] mjr_: I thought compiz fusion was just to take screenshots of impossible to use or read THEORETICAL desktop configs. [07:58] sechrist: exactly [07:58] SubStack: quick somebody write a window manager in node [07:58] eMyller: ACTION hates compiz-fusion :\\ [07:58] ttpva has joined the channel [07:58] mjr_: Kind of like the 3D file manager in Jurassic Park. [07:58] rchavik has joined the channel [07:58] rchavik has joined the channel [07:58] sechrist: mjr_: that is real [07:58] mjr_: Of course, that is a real thing [07:58] JaMeSiTeGeN: I'm working on my own Linux OS from the ground up and when/if done would be extreamly powerful and written in pure javascript :) [07:58] sechrist: however it sucks [07:59] sechrist: it pre-generates the world [07:59] sechrist: it's not live >:( [07:59] JaMeSiTeGeN: ACTION does not use special effects, [07:59] mjr_: The fact that SGI turned the filesystem into something 3D, back then, was pretty neat. [07:59] JaMeSiTeGeN: ACTION makes his own in javascript and opengl [07:59] sechrist: As much as I love javascript, an operating system is something that doesn't need to be written in one [07:59] sechrist: write an operating system in erlang that uses OTP plz [07:59] eMyller: actually i dislike the way the gnome apps configs and interfaces are organized and integrated. (are they integrated at all? :P) [07:59] sechrist: scale one operating system over a cluster [07:59] JaMeSiTeGeN: sechrist: Javascript for the whole UI and Terminals. [07:59] sechrist: with an intelligent scheduler [08:00] sveimac has joined the channel [08:00] JaMeSiTeGeN: see my draft http://typewith.me/RCUIqvqR7s [08:00] sechrist: are there node webkit bindings yet? [08:00] sechrist: I want to render a browser in node and take snapshots [08:00] sechrist: kind of like phantom but with node [08:01] SubStack: http://browserling.com/ ! [08:01] SubStack: that is pretty much what it does! [08:01] sechrist: wrong usecase :) [08:01] csanz has joined the channel [08:01] JaMeSiTeGeN: eMyller: So what do you think of my little/huge project? [08:02] sechrist: My use case is rendering UIs that will be transmitted over video streams [08:03] eMyller: JaMeSiTeGeN: you have courage. :) [08:04] JaMeSiTeGeN: eMyller: Where? How? [08:04] eMyller: JaMeSiTeGeN: the last 3 items at the first list. [08:05] eMyller: i wanna see that if it happens. [08:08] wav1 has joined the channel [08:12] kawaz_air has joined the channel [08:12] insin has joined the channel [08:13] eMyller: ACTION quits npm [08:14] eMyller: gonna test it again when i get my new pc. [08:14] eMyller: and maybe on this pc when i have a fresh install. been facing hd issues lately, anyway. [08:15] seivan: mscdex: no [08:15] seivan: I was thinking load balancing between machines [08:15] seivan: anything for node.js [08:16] sechrist: man [08:16] sechrist: cloudkick is awesome [08:16] sechrist: are there any competing services I should look into? [08:17] Druid_ has joined the channel [08:18] seivan: What do use for mongoDB (with geospatial stuff)? [08:24] shinmei has joined the channel [08:27] kawaz_air has joined the channel [08:29] unomi has joined the channel [08:29] mike5w3c has joined the channel [08:29] nmtmason has joined the channel [08:30] asmartgoat has joined the channel [08:31] asmartgoat: ?? [08:31] asmartgoat: (woops wrong channel o_O) [08:34] Spion__ has joined the channel [08:40] msucan has joined the channel [08:40] kawaz_air has joined the channel [08:41] insin: is there a simple way to check if an object is a module, the result of having called require(...)? [08:41] seivan: I got an array with arrays with geolocatiojs [[24,34], [55,33]] anyone know how to find the "center" or the "middle" point, the algorithm for that? [08:45] asmartgoat has left the channel [08:45] aabt has joined the channel [08:47] NancyStills has joined the channel [08:47] eventi_ has joined the channel [08:47] stride: insin: module.parent iirc [08:48] d_ch|away has joined the channel [08:49] stride: seivan: http://en.wikipedia.org/wiki/Linear_equation#Linear_equations_in_two_variables -> two point form w/ x=0.5 [08:49] eventi_ has joined the channel [08:52] JaMeSiTeGeN has left the channel [08:56] mattikus has joined the channel [08:57] kawaz_air has joined the channel [09:09] jetienne_ has joined the channel [09:11] eventi has joined the channel [09:11] abraham has joined the channel [09:13] nook has joined the channel [09:13] kawaz_air has joined the channel [09:15] sechrist: jade is helping me write better html [09:15] sechrist: by guilting me into making it as efficient as possible [09:18] nivoc has joined the channel [09:18] pau|c has joined the channel [09:19] Ori_P has joined the channel [09:21] insin: is Object.keys supposed to be a subset of Object.getOwnPropertyNames? [09:22] adrian_berg has joined the channel [09:24] SubStack: insin: yep [09:24] SubStack: Object.keys() only shows the enumerable properties [09:24] SubStack: Object.getOwnPropertyNames() shows all properties [09:24] pkrumins has joined the channel [09:24] pkrumins: pow [09:24] SubStack: oh look, a pkritter! [09:25] pkrumins: ha [09:27] kawaz_air has joined the channel [09:28] insin: Then where the dickens is console coming from here :/ http://dpaste.com/478375/ [09:29] tahu has joined the channel [09:29] russell_h: is process.env something other than a normal Object? [09:29] russell_h: trying to call hasOwnProperty on it doesn't end well [09:30] FND has joined the channel [09:30] russell_h: TypeError: Property 'hasOwnProperty' of object # is not a function [09:30] __tosh has joined the channel [09:30] FND: can I modify the default require.paths? on my local machine, ~/lib/node is not being considered, but that's where npm installs packages [09:35] AAA_awright: FND: Change where npm installs packages, don't use npm, set NODE_PATH, symlink ~/.node_libraries -> ~/lib/node [09:35] AAA_awright: I use all four :> [09:35] FND: AAA_awright: thanks - why "don't use npm"? [09:36] AAA_awright: git and a handful of bash scripts is a far _superior_ way to keep packages up to date [09:37] FND: good to know, thanks! (I'm also a bit uncomfortable with all the magic happening in npm, but ... well, it's convenient) [09:37] AAA_awright: FND: As for option #1 I think npm checks ~/.npmrc, set it with file contents "root=/home/whatever/.node_libraries" [09:38] FND: I'll read up on that [09:38] AAA_awright: It's woefully underdocumented, at least a few months ago [09:39] sechrist_ has joined the channel [09:41] DrStrange has joined the channel [09:41] mzee has joined the channel [09:46] darshanshankar has joined the channel [09:48] Ori_P has joined the channel [09:48] mzee has joined the channel [09:50] swistak has joined the channel [09:54] ttpva has joined the channel [09:55] Ori_P has joined the channel [09:55] thermal: has anyone had any experience using sem_acquire in PHP for long polling? [09:56] astropirate has joined the channel [09:58] JohnnyL has joined the channel [10:00] Wizek_: Hi! Does anyone use the new Mongoose 1.0? I have troubles with it's .update() functionality. Have you had success? [10:07] aconran has joined the channel [10:09] adambeynon has joined the channel [10:10] kawaz_air has joined the channel [10:10] saikat has joined the channel [10:15] kal-EL_ has joined the channel [10:15] jetienne: thermal: you may be offtopic for this channel :) [10:16] Benn has joined the channel [10:16] jesusabdullah: haha [10:16] jesusabdullah: :D [10:20] hoodoos: is there any way to profile nodejs process memory? i'm currently looking at v8-profiler output in my chrome browser and it shows just most general information, would be nice to dig into categoeries to see what kind of objects are actually being kept in memory atm [10:22] mscdex: node.js rules! [10:23] jimt_ has joined the channel [10:25] AphelionZ has joined the channel [10:26] aconran has joined the channel [10:28] SubStack: ACTION wrangles with hmacs [10:28] jimt has joined the channel [10:31] hellp has joined the channel [10:33] d_ch|awa_ has joined the channel [10:35] liar has joined the channel [10:39] herbySk has joined the channel [10:40] theasta has joined the channel [10:41] floby has joined the channel [10:42] theasta has left the channel [10:46] abraham has joined the channel [10:51] SvenDowideit has joined the channel [10:52] Ori_P has joined the channel [10:56] unomi has joined the channel [11:00] mhausenblas has joined the channel [11:04] Sebmaster has joined the channel [11:08] floby1 has joined the channel [11:08] floby has joined the channel [11:12] saikat has joined the channel [11:14] pascalopitz has joined the channel [11:15] pascalopitz: morning [11:16] thalll has joined the channel [11:17] SvenDowideit has joined the channel [11:20] aklt has joined the channel [11:27] stephank has joined the channel [11:28] Muon has joined the channel [11:28] Muon has joined the channel [11:33] saikat_ has joined the channel [11:34] Wizek_: Hi! Does anyone use the new Mongoose 1.0? (mongoosejs.com) I have troubles with it's .update() functionality. Have you had success? [11:42] Sorella has joined the channel [11:43] devrim has joined the channel [11:45] mhausenblas has joined the channel [11:45] muhqu has joined the channel [11:46] Max-Might has joined the channel [11:46] Max-Might has left the channel [11:47] d0k has joined the channel [11:47] markwubben has joined the channel [11:51] kevinSJ has joined the channel [11:54] kevinSJ: I've got a guestion. I have this code. At the end I have req.end("Data\n"); which I thought would write data back to the server. But how to I handle this so I get displayed? [11:55] kevinSJ: Here is the gist to the code: https://gist.github.com/857229 [11:57] stride: kevinSJ: displayed where and when? [12:00] FireFly has joined the channel [12:01] kevinSJ: stride, that what I haven' figured out yet. will it write data back to the server I did the request to? Or what will actually happend when I cann req.write() ? [12:02] fly-away has joined the channel [12:02] stride: kevinSJ: well, that gist doesn't really look right. here's a POST example in the docs http://nodejs.org/docs/v0.4.2/api/http.html#http.request [12:03] stride: that will send a request to the server, along with the data you specify and call the callback (the function(res)) once the server answers to that request [12:03] kevinSJ: Well the only think that's different there is that they make a POST-request to www.google.com right? [12:04] stride: yeah, but that's essential, you don't send body data with a GET request (which is what your gist does) [12:04] dguttman has joined the channel [12:05] seivan has joined the channel [12:05] kevinSJ: Oh my bad. That's actually right. I'll make another try hold on [12:05] ph^ has joined the channel [12:06] mbrochh has joined the channel [12:06] mbrochh has joined the channel [12:06] broofa has joined the channel [12:06] kevinSJ: stride, Okey I now changed it a bit and it make a POST-request. [12:07] stride: that should work than, and where do you want to display something? on the http server that receives the request you're doing there? [12:07] seivan_ has joined the channel [12:07] kevinSJ: stride, exactly. That's what Im looking for [12:07] stride: http://blog.frankgrimm.net/2010/11/howto-access-http-message-body-post-data-in-node-js/ [12:07] stride: essentially you get a request on the server side that has data and end events you can process to get that data block [12:09] DrStrange has joined the channel [12:10] kevinSJ: stride, Okey I'll look into it. Does it matter that my http-server isn't created by node.js. It's an Rails application [12:11] stride: oh, only in the sense that the blog post won't help you then :) [12:12] stride: but the technique should be similar in ruby [12:14] kevinSJ: stride, Okey. So I actually need to fetch the request with Ruby after I write something back. [12:15] kevinSJ: If I understood the blog post correctly [12:15] stride: sure, your gist sends something to your ruby/rails/whatever http server and you'd have to process that there [12:19] xla has joined the channel [12:22] kevinSJ: stride, it actually works :) [12:22] stride: \o/ [12:23] AphelionZ has joined the channel [12:24] davidc_ has joined the channel [12:24] kevinSJ: stride, I was thinking of something. When node.js is make the request to my rails app. Will it be a javascript request or a normal one? [12:25] stride: it's just a regular http request [12:25] kevinSJ: Okey [12:26] unomi has joined the channel [12:27] gozala has joined the channel [12:28] malkomalko has joined the channel [12:30] swistak has joined the channel [12:31] seivan has joined the channel [12:33] kevinSJ: stride, is it possible to make a remote call so I can handle it with my Rails application? [12:36] jetienne: is there like a standard API for map/reduce kindof thing ? [12:36] stride: kevinSJ: you might want to look if DNode has a ruby implementation, otherwise I don't think so [12:36] SubStack: it does [12:37] stride: :) [12:37] SubStack: also perl [12:37] SubStack: the ruby one is even on rubygems [12:38] stride: you're such a hipster.. :p [12:38] SubStack: outside of getting some basic use-cases working I haven't put much work into it though [12:38] SubStack: I figure people who actually use it can do that :p [12:39] SubStack: it's all part of my plan to be speculatively language agnostic with my backend systems [12:39] SubStack: just in case I see a shiny library that I want to use [12:39] stride: yeah, I like it :) [12:40] gozala has joined the channel [12:42] Country has joined the channel [12:42] mape: Hmm has express started to act up lately? [12:43] ryanfitz has joined the channel [12:44] kristsk has joined the channel [12:47] malkomalko: yah, I'm having some problems I'm working through while upgrading to 2.0.x/1.0.x (express/connect) [12:48] mape: Seems like connect has removed a ton of middleware [12:48] mape: And all around moved things around [12:48] theasta has joined the channel [12:48] AphelionZ: gf3: you around? :) [12:49] malkomalko: some middleware has been renamed [12:52] davidc_ has joined the channel [12:55] omarkj has joined the channel [12:56] omarkj has left the channel [12:56] kwik101 has joined the channel [12:58] broofa has joined the channel [12:59] sveimac has joined the channel [13:00] malkomalko has joined the channel [13:04] Remoun has joined the channel [13:06] ChrisPartridge has joined the channel [13:06] chapel: kevinSJ: you there? [13:07] bingomanateeIpho has joined the channel [13:10] Wizek_: Hi! Does anyone use the new Mongoose 1.0? (mongoosejs.com) I have troubles with it's .update() functionality. Have one had success with it? [13:11] __tosh has joined the channel [13:11] hwinkel has joined the channel [13:16] maushu has joined the channel [13:16] davidc_ has joined the channel [13:16] eventi has joined the channel [13:17] dyremahl has joined the channel [13:18] dyremahl: anyone here using socket.io? [13:19] liquidproof has joined the channel [13:19] maushu: dyremahl, me and tons of people that are currently sleeping. [13:21] AphelionZ: dyremahl: I am, whats up? [13:24] mhausenblas has joined the channel [13:25] eyesUnclouded has joined the channel [13:26] Ori_P has joined the channel [13:28] AphelionZ: haha ok, well [13:28] AphelionZ: bye [13:28] dguttman has joined the channel [13:30] AphelionZ has joined the channel [13:30] eventi: problem with npmjs.org - can't connect [13:31] SubStack: confirmed! [13:31] eventi: now what [13:31] SubStack: now... we wait [13:31] SubStack: for isaacs to fix it [13:32] unomi has joined the channel [13:32] SubStack: or more likely, couch admins to work their magic [13:32] eventi: lol - man how we've come to depend on that beautiful thing [13:32] eventi: it's always the db [13:32] daveluke has joined the channel [13:32] pascalopitz: hello [13:33] eventi: luckily the tivo has a few idiot abroad episodes [13:34] eventi: morning [13:34] jashkenas has joined the channel [13:35] jimt_ has joined the channel [13:35] eventi: are there examples of irc bots written in node.js ? [13:36] SubStack: http://github.com/substack/rowbit [13:36] mlncn has joined the channel [13:36] SubStack: https://github.com/isaacs/ircretary [13:36] pascalopitz: arg, npm down and no mirrors? [13:37] eventi: yes [13:37] aphelion has joined the channel [13:37] eb4890 has joined the channel [13:37] davidc_ has joined the channel [13:38] pascalopitz: whow ... maybe time to organize some mirrors, in case it fails? [13:39] eventi: seconded [13:39] chapel: shouldn't be too hard tbh [13:39] AnimaSana has joined the channel [13:39] chapel: because with couchdb its super easy to clone [13:40] eventi: SubStack: DNode pluggable? [13:40] jimt has joined the channel [13:40] SubStack: eventi: in what way? [13:41] eventi: I''m curious about rowbit - looks cool [13:41] SubStack: oh that [13:41] eventi: DNode is your project too? [13:41] SubStack: yes [13:41] gwoo has joined the channel [13:41] gwoo has joined the channel [13:42] SubStack: dnode pluggable in that you write processes that connect to the rowbit over dnode to register listeners and producers [13:42] eventi: nice - looking for something that'll be easily configuratble to add new pattern/response pairs [13:42] SubStack: so you can hot-swap the code without join/part spamming [13:42] SubStack: and if your plugins crash they don't bring down the bot [13:43] eventi: like someone in channel should be able to add something like "when someone says beer, i saw cheers" [13:43] eventi: ACTION fingers not awake yet [13:43] thisgeek has joined the channel [13:43] eventi: this looks perfect - thks [13:44] SubStack: I don't have an example yet of listening for text events but it should be pretty possible since the irc handle is just exposed over dnode [13:44] daveluke has joined the channel [13:45] eventi: ok cool [13:49] gozala has joined the channel [13:49] eventi: npmjs.org is back [13:49] SubStack: \o/ [13:54] abraham has joined the channel [13:55] demet8 has joined the channel [13:55] Nomon has joined the channel [13:55] mtn360 has joined the channel [13:57] pascalopitz has joined the channel [13:58] rchavik has joined the channel [13:58] secoif_ has joined the channel [13:59] kriszyp has joined the channel [13:59] skohorn has joined the channel [14:00] rchavik has joined the channel [14:02] cainus has joined the channel [14:05] zentoooo has joined the channel [14:06] possibilities has joined the channel [14:07] xla has joined the channel [14:08] incon has joined the channel [14:09] mtn360: Hello :-) [14:13] pascalopitz: hello [14:14] bwinton has joined the channel [14:14] daglees has joined the channel [14:14] daglees has joined the channel [14:17] garrensmith has joined the channel [14:17] raidfive has joined the channel [14:18] insin| has joined the channel [14:18] garrensmith: morning all [14:19] eventi: and down [14:20] aklt has joined the channel [14:21] ximo has joined the channel [14:22] jimt_ has joined the channel [14:23] jcardoso has joined the channel [14:23] jcardoso has left the channel [14:23] jcardoso has joined the channel [14:23] jcardoso has left the channel [14:25] SetupLy has joined the channel [14:25] garrensmith: I have some files hosted on s3 and I want to expose them through my express server. What would be the best way of doing this? [14:26] eventi: and up [14:27] xandrews has joined the channel [14:29] eventi: garrensmith: this looks promissing - can't vouch for it, but TJ's no joke: https://github.com/learnboost/knox [14:29] garrensmith: eventi: cool thanks will take a look. Else seeing if I can use this proxy https://github.com/nodejitsu/node-http-proxy [14:30] eventi: you want to not use the s3 URLS? [14:30] nmtmason has joined the channel [14:34] thisgeek_ has joined the channel [14:34] jashkenas has joined the channel [14:35] mscdex: hooray for bug squashing [14:35] mscdex: ! [14:38] marcello3d has joined the channel [14:39] prof-freud has joined the channel [14:39] jimt has joined the channel [14:41] razvandimescu has joined the channel [14:42] garrensmith: eventi: yes, I need to embed some s3 files in an iframe within a page (not my choice, but only way it works) [14:43] maushu has joined the channel [14:43] garrensmith: eventi: but I done want to get any cross domain issues [14:43] eventi: for what? [14:44] eventi: trying the dumbest express on no.de and failing [14:44] insin|: hmm, think I'm about to hit my first async pain, will need to introduce callbacks to an API which only performs I/O in specific circumstances [14:45] dguttman has joined the channel [14:45] dnolen has joined the channel [14:45] sveimac has joined the channel [14:46] msch has joined the channel [14:47] markwubben has joined the channel [14:47] froak_ has joined the channel [14:49] eventi: insin: what API? [14:49] malkomalko has joined the channel [14:50] Hello71 has joined the channel [14:50] Hello71 has joined the channel [14:50] wav1 has joined the channel [14:51] xandrews has joined the channel [14:51] insin|: form validation - I have an isClean() method that ultimately calls .clean() on each form field - a couple of fields will need to either try a HEAD request to validate a URL or validate the contents of an uploaded file [14:51] mtn3601 has joined the channel [14:55] Ori_P has joined the channel [14:55] tktiddle has joined the channel [14:55] marcello3d: good morning! [14:55] marcello3d: anyone seen "TypeError: HashUpdate fail" on a hash.update() ? (md5) [14:56] marcello3d: is there a limit to the size of the buffer you pass to update or something [14:57] dguttman has joined the channel [14:57] kriszyp has joined the channel [14:57] cleanah has joined the channel [14:58] perlmonkey2 has joined the channel [14:59] matschaffer has joined the channel [14:59] dguttman has joined the channel [15:00] mscdex: marcello3d: what size buffer are you passing in? [15:01] marcello3d: I do a 100 byte then 1000 [15:01] marcello3d: stream.write(new Buffer(100)) [15:01] marcello3d: stream.write(new Buffer(1000)) [15:01] edude03 has joined the channel [15:01] marcello3d: (the stream does the hashing) [15:02] marcello3d: gonna update to 0.4.2 to verify [15:02] xandrews has joined the channel [15:02] marcello3d: (was still on 0.4.1) [15:02] SubStack: does 0.4.2 fix anything in the crypto interface? [15:02] marcello3d: I don't think so [15:02] SubStack: I find it annoying how you can't do rolling hash updates [15:02] marcello3d: what's that mean? [15:02] SubStack: interspersing digest()s and update()s [15:03] marcello3d: oh [15:03] marcello3d: that's my problem then [15:03] marcello3d: I'm doing just that :) [15:03] pHcF has joined the channel [15:03] marcello3d: is there a github issue for it? [15:04] SubStack: not sure! [15:04] marcello3d: doesn't look like it [15:04] SubStack: I'm a bit weary of github issue tracking on projects with lots of noise [15:04] marcello3d: at the very least the error should be improved [15:05] skohorn has joined the channel [15:05] marcello3d: aha, you're right, that's the problem [15:06] marcello3d: it doesn't let you update after you've called digest [15:08] mbrochh has joined the channel [15:08] mbrochh has joined the channel [15:10] marcello3d: https://github.com/joyent/node/issues/749 [15:10] marcello3d: go vote for it, SubStack :) [15:10] marcello3d: (renames #1 and #2 to remove stupid urls in code) [15:10] mikegerwitz: ACTION votes [15:13] marcello3d: now how the hell do I work around this... :( [15:14] gorakhargosh has joined the channel [15:14] malkomalko: anybody having problems with connect-redis with new express/connect? memory store works but connect-redis is no-bueno [15:15] marcello3d: there we go, I'm now nickserved :D [15:16] brianloveswords has joined the channel [15:20] jacobolus has joined the channel [15:24] matschaffer has joined the channel [15:26] McMAGIC-- has joined the channel [15:26] marcello3d: SubStack: looks like a limitation of http://www.openssl.org/docs/crypto/EVP_DigestInit.html [15:27] marcello3d: doesn't seem to be a way to get the digest without finalizing it? [15:27] marcello3d: "After calling EVP_DigestFinal_ex() no additional calls to EVP_DigestUpdate() can be made, but EVP_DigestInit_ex() can be called to initialize a new digest operation." [15:30] torgeir has joined the channel [15:31] wav1 has joined the channel [15:31] boaz has joined the channel [15:31] torgeir: anyone up for a quick express question ? [15:32] broofa has joined the channel [15:35] torgeir: did app.configure('development', function () { app.use(express.logger()); }); stop working ? [15:35] olegp has joined the channel [15:39] Stan____ has joined the channel [15:39] eMyller: 'lo [15:40] eMyller: i'm taking a "segmentation fault" threw at my face when i try to install npm. does it sound familiar to anyone here? [15:42] bingomanatee has joined the channel [15:42] marcello3d: saweet, gridfs working on mongolian deadbeef now :D [15:42] possibilities has joined the channel [15:42] bingomanatee: Inspired by SubStack's "There ought to be a childrens's book about Node.js" -- http://i52.tinypic.com/15x3lom.jpg [15:42] marcello3d: all Readable/Writable Stream based, which makes it pretty easy to use [15:43] marcello3d: and now it doesn't generate data that crashes mongod :D [15:43] bruse: how do i figure out which redis client library "npm install redis" installs? [15:43] bingomanatee: awwww. [15:43] marcello3d: bruse: it probably only installs the one named exactly that [15:44] marcello3d: it's a bug in mongodb-native, really [15:44] bruse: marcello3d: but how do i find it's project website, or github repository, or whatever? :) [15:44] hij1nx has joined the channel [15:44] marcello3d: bruse: hah! [15:44] bingomanatee: ACTION has went toe to toe with mongodb-native [15:45] bingomanatee: really makes you feel like an orphan in a Dickens novel. [15:45] unomi has joined the channel [15:45] marcello3d: bingomanatee: have you tried out monoglian deadbeef yet? [15:45] bingomanatee: no - is that a real module? [15:45] marcello3d: I'm getting pretty close to the point of removing my dependency on mongodb-native completely. or at least forking their BSON code [15:46] marcello3d: should probably push my latest tohugh [15:46] marcello3d: lots of new changes [15:46] bingomanatee: what do you use in its stead? [15:47] bingomanatee: I've had a lot of people steer me towards c libraries for Mongo that simply don't work - this was during 0.2/3x though. [15:47] marcello3d: what do you mean? [15:47] aklt has joined the channel [15:47] bingomanatee: if you don't depend on native do you write your own c bindings to Mongo? [15:47] marcello3d: I do depend on it [15:47] marcello3d: but there are a lot of random bugs in it...the code isn't really well written [15:48] marcello3d: I probably only use 15% of mongodb-native now [15:48] marcello3d: the bson encoding/decoding and the command serializing [15:49] bingomanatee: I'm giving mongoose a shot. So far so good. [15:49] marcello3d: mongoose is too high level for me, though [15:49] marcello3d: I want raw access to the mongodb structures [15:50] bingomanatee: I already started with native - I'm glad I did - as you said I wouldn't want to depend on a high level interpreter - but its good for quick "sketchouts". [15:50] marcello3d: well [15:50] cjavapro has joined the channel [15:50] bingomanatee: Also I do in general like to have the OPTION of schemas to document my work. It does seem tough that mongoose gives you no option of NOT using schemas [15:51] bingomanatee: and that kind of flies in the face with the heterogeneous storage options that mongo allows you to create. [15:52] marcello3d: yea [15:52] marcello3d: ok [15:52] marcello3d: just pushed/published my new version of mongolian deadbeef [15:52] marcello3d: https://github.com/marcello3d/node-mongolian [15:52] marcello3d: go check it out :) [15:53] jtsnow has joined the channel [15:53] marcello3d: hmm [15:53] marcello3d: need to fix the Readme formatting [15:53] marcello3d: freaking markdown [15:54] bingomanatee: Looks nice - I'm writing a game with lots of sprites. looks like a good choice for sprite-bit storage. [15:54] bingomanatee: Any good libraries in node for GIF creation? [15:54] marcello3d: gif? D: [15:54] marcello3d: maybe imagemagick [15:55] bingomanatee: the classic [15:55] seivan has joined the channel [15:56] possibilities has joined the channel [15:56] marcello3d: how do I make lists in markdown [15:56] mscdex: asterisks [15:57] mscdex: * item 1 [15:57] marcello3d: ah, I need a newline before the list [15:57] mikegerwitz: marcello3d: http://daringfireball.net/projects/markdown/syntax [15:57] marcello3d: after the previous paragraph [15:57] mscdex: yep [15:58] marcello3d: silly markdown [15:58] mscdex: oh no, the javascript markdown parser site is dead :O [15:59] mscdex: showdown [15:59] marcello3d: I'm using this http://daringfireball.net/projects/markdown/dingus [15:59] marcello3d: oh weird [15:59] marcello3d: github renders it differently [15:59] marcello3d: it's not handling the sublists [15:59] mscdex: yeah i know, that's why i started using the showdown site to preview my markdown [16:00] mscdex: but the domain name expired several days ago it looks like [16:00] mscdex: :( [16:00] floby has joined the channel [16:00] liar has joined the channel [16:00] sleeplessinc has joined the channel [16:01] marcello3d: is there a way to test markdown on github without pushing each time I change something? [16:02] marcello3d: aha [16:02] marcello3d: http://github.github.com/github-flavored-markdown/preview.html [16:02] mscdex: that preview is borked [16:03] mscdex: i stopped using it long ago [16:03] Stan____ has left the channel [16:03] SamuraiJack has joined the channel [16:03] mscdex: it doesn't always agree with what's rendered by the github in the repo [16:03] marcello3d: yea, I just noticed [16:04] eMyller: HECK YEAH [16:04] eMyller: i just figured out why i'm having this segmentation fault issue [16:04] marcello3d: oh man. seg faults. [16:04] marcello3d: #thisiswhyIlikejava [16:05] eMyller: lol [16:05] eMyller: well, i just spent some minutes now looking for the exact place where the code dies [16:05] eMyller: i get no traceback, so i had to do it by hand :\ [16:06] eMyller: it dies at the require('https') [16:06] marcello3d: sweet, got markdown to conform! [16:06] _richardJ has joined the channel [16:06] eMyller: because i have compiled node with --without-ssl [16:06] mscdex: this is madness! [16:06] eMyller: but heck, if there's an option to compile without ssl, why does it fail here? [16:07] eMyller: should i file a bug? [16:07] mscdex: usually tls/ssl-enabled modules warn you if tls/ssl support isn't compiled in [16:07] narf_: hmm the multipart support in mikeals request module seems to be broken [16:07] mscdex: so yeah, i'd file an issue [16:07] narf_: the boundary field is set to an invalid value [16:08] markstory has joined the channel [16:08] eMyller: mscdex: yeah, but it just crashes with no feedback :\ [16:08] marcello3d: bingomanatee: so whacha think? [16:10] stride: narf_: invalid? [16:10] dve has joined the channel [16:10] narf_: stride: yup, boundary is set to "frontier" and should be "--frontier" afaik [16:10] narf_: stride: (content-type header) [16:11] stride: nah, the -- stuff is implicit [16:11] stride: iirc [16:12] stride: heh, he used the multipart example wikipedia offers.. :D [16:12] narf_: stride: hm.. formidable fails to parse a request I do using this module [16:12] narf_: stride: and it fails after the first two bytes in the body which are "--" [16:12] stride: hm. I don't know formidables code. might be that it only supports multipart/mixed or something [16:13] stride: that sounds odd, let me check the code [16:13] broofa has joined the channel [16:13] stride: felixge is still the maintainer, right? [16:14] kriszyp has joined the channel [16:14] narf_: y [16:14] MattDiPasquale has joined the channel [16:15] Chunk has joined the channel [16:16] Yuffster has joined the channel [16:17] KRBssa has joined the channel [16:17] tktiddle has joined the channel [16:17] narf_: stride: im probably blind :D [16:17] mynyml has joined the channel [16:18] stride: hm. don't see why that would fail. you might want to file an issue or something [16:19] narf_: stride: yup i probably should put together a minimal example [16:20] eMyller: but spotted: https://github.com/isaacs/npm/issues/674 [16:20] Chunk: anyone aware of a node module for communicating with activemq? [16:20] eMyller: * bug [16:20] eMyller: haha [16:22] stride: Chunk: ryah's amqp module maybe? [16:23] bingomanatee: marcello: I like it. [16:23] bingomanatee: marcello3d: are you in the bay area? [16:24] bingomanatee: Chunk: there are rabbitmq bindings for node, that I know [16:24] mscdex: marcello3d: here's a site that is running showdown that you can use for live preview: http://omar84.com/docs/rtlsd/showdown-gui.html [16:24] Chunk: stride: I don't think amqp is supported in activemq, but I'll check it out [16:24] mscdex: marcello3d: or you can grab the source and view the previewer locally: https://github.com/coreyti/showdown/ [16:24] stride: bingomanatee: that's ryahs stuff, needs a little tweaking though [16:24] stride: Chunk: the website says so, I use it with rabbitmq though [16:25] Chunk: oh cool [16:25] bingomanatee: Everyone's stuff needs tweaking. [16:25] stride: yeah, it's just a bit dated, that's what I meant :) [16:26] gozala1 has joined the channel [16:26] marcello3d: bingomanatee: nope [16:27] marcello3d: mscdex: that seems a bit overkill [16:27] marcello3d: are those related to zeromq? [16:27] bingomanatee: too bad - can you put together a youTube video on mongolian? We're doing a cross-noSQL preso later this month - seems to me that Mongoose already gets enough press :D [16:28] mscdex: overkill? [16:28] marcello3d: bingomanatee: probably not, it's too early stage, I'm still pretty new to mongodb so I don't want to make it out to be more than it is [16:28] bingomanatee: less is more. [16:28] bingomanatee: Can you do time trials neck to neck with Mongoose just to show the point of it all? [16:29] marcello3d: I'm not super familiar with mongoose, either, so it'd be an unfair comparison [16:29] bingomanatee: Mongoose is pretty much a blunt instrument. If you fallow the howTo on the front page you'll be giving it a fair shot. [16:30] bingomanatee: It's an ORM, after all. [16:30] marcello3d: right [16:30] marcello3d: well, I imagine mongoose could be implemented on top of mongolian, if one so desired [16:30] bingomanatee: I could re-engineer your tests in mongoose if you like but I'm just 15 minutes ahead of you myself. [16:30] erabuj has joined the channel [16:30] marcello3d: so it's kind of apples and oranges? [16:30] bingomanatee: That would be an interesting test. Fork and re-engineer the core of Mongolian. [16:31] marcello3d: a better comparison would be mongodb-native to mongolian [16:31] bingomanatee: Thats what I was going to say. [16:31] bingomanatee: That would be an intersting proof of concept. [16:31] marcello3d: but I haven't profiled or optimized any of the code, so any speed gains would be purely due to mongolian having less code [16:31] bingomanatee: After all, Mongoose is a superset of native, so it can't by definition be faster than native. [16:31] bingomanatee: That is kind of the point isn't it? [16:32] marcello3d: I don't think superset is the right word, but I get the idea [16:32] marcello3d: well, no, the point is a better API for developers [16:32] bingomanatee: ah. [16:32] bingomanatee: Well if better is faster, no reason to be ashamed :D [16:32] p0ns has joined the channel [16:32] marcello3d: I don't know if it's faster. it's probably the same [16:33] bingomanatee: Thats what I tell my women. "No, honey, I'm better BECAUSE I'm faster!" [16:33] marcello3d: ;D [16:33] bingomanatee: Anyway - if you want me to mini-present mongolian, just give me a cheat sheet and I will. [16:33] sugardave has joined the channel [16:34] markwubben has joined the channel [16:34] bingomanatee: or white paper your git. [16:34] marcello3d: alright, sounds good :) [16:34] marcello3d: I need to figure out how to document and test it [16:34] marcello3d: I'm using rough jsdocs, but those don't seem to be super popular in the node.js world [16:35] bingomanatee: I've had the doc compiler f**k up on me. [16:35] bingomanatee: If you can just put up a statement of purpose etc. on the git that would help. [16:35] marcello3d: doc compiler? [16:36] bingomanatee: why you did it, status quo v. mongolian, that sort of thing. [16:36] marcello3d: the statement of purpose is more or less in the Readme.md, if you think it's unclear, let me know which parts [16:37] marcello3d: right [16:37] mikegerwitz: marcello3d: To be honest, the documentation strategy I've seen in the node.js community is very, very poor, so don't be afraid to explore. [16:37] marcello3d: hah. agreed [16:37] bingomanatee: actually your readme is pretty good. [16:37] robotarmy has joined the channel [16:37] bingomanatee: I'm doing an annotated superset of the node.js documentation - have not realesed it (have been getting slammed). [16:39] marcello3d: I'm also experimenting with no-semi-colon.js, which I'm sure a bunch of people will disagree with :) [16:39] bingomanatee: Are you working at the moment? [16:39] mikegerwitz: marcello3d: Well, does it remove semicolons? [16:40] marcello3d: mikegerwitz: it's not a thing, it's just js without semicolons [16:41] marcello3d: the only reason I've seen not to use them is http://stackoverflow.com/questions/444080/do-you-recommend-using-semicolons-after-every-statement-in-javascript/1169596#1169596 [16:41] bingomanatee: My last boss got into a wrong-thinging bitch fight with his system administrator over the definition of the semicolon. [16:41] Chunk: after reading more it seems stomp is the best method for connecting to activemq from node [16:41] mikegerwitz: marcello3d: JS's semicolon insertion can be the cause of some nasty bugs [16:41] marcello3d: well [16:42] marcello3d: my excuse is most libraries I've seen forget semi colons occasionally, so I don't think using semicolons everywhere helps prevent those bugs [16:42] gozala has joined the channel [16:42] marcello3d: and coming from java/scala, there's something 'freeing' about not using them :) [16:42] marcello3d: (java requires, scala doesn't) [16:43] marcello3d: here's an argument against semicolons, imo: http://stackoverflow.com/questions/444080/do-you-recommend-using-semicolons-after-every-statement-in-javascript/444200#444200 [16:43] marcello3d: if you write return (newline) 5 [16:43] bbttxu has joined the channel [16:44] mikegerwitz: marcello3d: That's going to happen regardless of whether or not you use semicolons. That's one example of how JS's semicolon insertion mechanism mangles code that is otherwise perfeclty fine [16:44] marcello3d: exactly [16:44] mikegerwitz: er, wait, are you referring o the return statement? [16:44] marcello3d: yes [16:44] mikegerwitz: ok [16:45] marcello3d: that's an example where adding semi colons everywhere will lull you into a false sense of security ;) [16:45] mtn360 has joined the channel [16:45] jiveB has joined the channel [16:45] cainus: hey all... anyone know if there's a way to remotely restart a node process? [16:45] davidc_ has joined the channel [16:45] marcello3d: whereas if you never use them, and are aware of the one (extremely rare in practical code) case where it does the unexpected, you're better off? [16:46] marcello3d: cainus: ssh? [16:46] mtn3601 has joined the channel [16:46] cainus: ssh doesn't do that ;) [16:46] eyesUnclouded has joined the channel [16:46] cainus: i'm aware that I can ssh in and stop the process and start it though ;) [16:47] garrensmith: is there a way to return a 404 with express is the requested route doesn't exist [16:47] marcello3d: that's basically your only option [16:47] cainus: hard to believe [16:47] marcello3d: unless you use another layer to manage the node js process [16:47] cainus: right...that's what I'm getting at [16:47] marcello3d: oh, well there's thousands of ways to do that :) [16:47] mhausenblas has joined the channel [16:47] cainus: excellent :) [16:47] marcello3d: what kind of remote are you thinking [16:47] marcello3d: like a rest call? [16:48] cainus: i've seen 'forever' ... not sure if that covers the restart story though [16:48] marcello3d: in what context are you trying to restart the process, is it an automated system? [16:48] cainus: yeah I'd write a script to ssh in mayble [16:49] robotarmy has joined the channel [16:49] cainus: but I don't want it to have to grep ps to find the process, for example [16:49] marcello3d: you could look at this: https://github.com/LearnBoost/cluster [16:49] prof-freud has joined the channel [16:49] drudge: garrensmith: yeah - check the examples [16:49] marcello3d: it has a repl you can telnet into and restart [16:49] garrensmith: drudge: thanks just found it, should have done that before asking the question :-\ [16:50] mikegerwitz: cainus: I just use upstart and have a script SSH in and do $ service mynodeservice restart [16:50] marcello3d: yea, you probably want your node running as a service [16:50] marcello3d: then you can use init.d or whatever to reload/restart it [16:51] cainus: mikegerwitz: upstart > forever? [16:51] marcello3d: I think they're different classes [16:51] marcello3d: forever is a node.js module type deal, right? [16:51] marcello3d: whereas upstart is a *nix service manager [16:51] cainus: yeah upstart seems more general purpose [16:51] mikegerwitz: cainus: I'm unfamiliar with 'forver' [16:52] cainus: http://blog.nodejitsu.com/keep-a-nodejs-server-up-with-forever [16:52] marcello3d: no point in reinventing the wheel though, I'd go for the unix solution over a node.js solution [16:52] mikegerwitz: marcello3d: I agree [16:52] cainus: yeah I think I do too [16:52] marcello3d: as amazing as node.js is :) [16:52] cainus: alright thanks guys... good info [16:52] marcello3d: fewer pieces to maintain the better [16:52] mikegerwitz: cainus: If your box doesn't come with upstart, you can use start-stop-daemon [16:52] davidascher has joined the channel [16:53] cainus: I can install it anyway [16:54] msch_ has joined the channel [16:54] cyraxx has joined the channel [16:56] possibilities has joined the channel [16:56] bingomanatee: ACTION 's wheel is awesome.  [16:57] bingomanatee: its based on the dyson ball. Imagine a big giant sphere under your car with a gyroscope. [16:58] cyraxx has joined the channel [16:58] bingomanatee: And its bouncy, because the whole car is also a dirigible. [16:59] bingomanatee: The Mangible will make your stupid 20th century cars obsolete! [17:00] bingomanatee: It has the speed and maneuverability of a manatee and the power and precision of a superball. [17:01] nook has joined the channel [17:03] bingomanatee: By the way, while I'm sure that upstart / forever are better solutions, I keep my node stuff rolling by just putting the launch stuff in crontab. [17:03] bingomanatee: Not exactly a "production ready" solution but it does the job. [17:04] q_no has joined the channel [17:05] andrewfff has joined the channel [17:06] augustl: what's the best way to provide require("mylib/subthingie")? [17:06] augustl: npm style node_modules can't do that, right? [17:07] kingdutch has joined the channel [17:08] narf_: augustl: why not? [17:08] augustl: because that's how require works, from what I've gathered [17:08] rfay has joined the channel [17:09] isaacs has joined the channel [17:09] bengl has joined the channel [17:09] kingdutch: Meh I [17:09] prof-freud has joined the channel [17:09] davida has joined the channel [17:09] kingdutch: I'll be back later this week if I can find a proper IRC client for this crappy old PC :' ) [17:09] kingdutch: byebye [17:10] hornairs has joined the channel [17:11] augustl: narf_: am I wrong? [17:11] razvandimescu has joined the channel [17:12] asimismo has joined the channel [17:12] mikegerwitz: augustl: http://nodejs.org/docs/v0.4.2/api/modules.html node_modules is part of node, not npm [17:12] mikegerwitz: rather, npm just takes advantage of it [17:12] augustl: mikegerwitz: well, it's originally npm style isn't it? [17:12] augustl: I realize it's something node core supports though [17:12] mikegerwitz: augustl: Oh, I'm unsure. I only began using npm about a month ago [17:13] isaacs: augustl: what's the questions? [17:13] augustl: if I have node_modules/mylib, require("mylib/foo") will load node_modules/mylib/foo.js [17:13] bengl has joined the channel [17:13] augustl: so that could work I guess [17:14] malkomalko has joined the channel [17:14] augustl: but having a bunch of files in the projec root is dirty [17:14] dubbe has joined the channel [17:14] augustl: isaacs: I want to provide require("mylib/subthing") [17:15] isaacs: augustl: ok. that's possible. [17:15] isaacs: as long as "subthing" is right in th eroot of "mylib" [17:15] augustl: another way would be to have to require("mylib") first, which could modify require.paths [17:15] isaacs: if it's in the "lib" folder, then do require("mylib/lib/subthing") [17:15] isaacs: NOO!OOO!O!O!!!!! [17:15] augustl: why not? [17:15] malkomalko: lol [17:15] isaacs: do not modify or depend upon require.paths mutations. [17:15] mikegerwitz: augustl: If you don't want to dirty up the root, provide an index.js and then do require( 'mylib' ).foo [17:15] augustl: I refuse to comply! [17:15] isaacs: augustl: http://nodejs.org/docs/v0.4.2/api/modules.html [17:15] sveimac has joined the channel [17:16] isaacs: augustl: in 0.5 that will be deprecated. [17:16] isaacs: augustl: it's also a terrible antipattern that makes horrible problems. [17:16] augustl: the problem with require("mylib").foo is that I would have to set the foo property when mylib is required. [17:16] marcello3d: how would one do the equivalent of Math.ceil( a / b ) if a and b are longs? [17:16] augustl: isaacs: I see [17:16] marcello3d: isaacs: did you see my nithub stuff from the other day? :D [17:16] augustl: isaacs: mylib/lib/subthing is the best so far :) [17:17] dubbe: Hello, i have some problems with node and couch. why does it do the res.forEach after console.log("save")... (code: http://pastebin.com/TJHpfBwg) [17:17] mikegerwitz: isaacs: Well I wouldn't say it's an "antipattern" if used correctly..include path is used in plenty of successful cases, including $PATH :) So I don't agree with deprecating it, because someone may have all their libraries in a single path for their system, but I do think node_modules is the best route. [17:17] bingomanatee: ACTION requires his libraries with absolute pathing if he can't rely on the node_modules folder [17:17] augustl: agreed on antipattern - ruby does this all the time [17:17] bingomanatee: and there's nothing you can do to stop me! [17:18] isaacs: mikegerwitz: that'd be like modifying the NODE_PATH environment var [17:18] augustl: doesn't npm support this in package.json? I.e. providing "mylib/foo"? [17:18] mikegerwitz: isaacs: d'oh, forgot about that [17:18] augustl: would be great if node itself supported that, it's very useful [17:18] mikegerwitz: isaacs: Okay, I'm in agreement with you then :) [17:18] isaacs: mikegerwitz: modifying the qrequire.paths modifies it for ALL modules, and makes your program not composible as easily [17:18] isaacs: it's also a run-time modification vs a start-time modification [17:19] mikegerwitz: isaacs: Yeah, NODE_PATH slipped my mind [17:19] isaacs: augustl: it used to. as of 0.3 it no longer maps the lib dir modules. [17:19] isaacs: augustl: it just maps the package folder as-is [17:19] augustl: isaacs: you can't set it up by hand either? [17:19] isaacs: augustl: as i said, if you want mylib/submod to work, then put submod in mylib [17:19] augustl: iirc you could do something like "mylib/foo": "./lib/foo" [17:20] isaacs: augustl: yeah, that's the layer of indirection/complication that was removed. [17:20] isaacs: augustl: it caused hard problems,and only solved trivial ones. [17:20] marcello3d: top githubbed npms (from a few days ago): https://gist.github.com/854199 [17:20] isaacs: that's a bad trade-offi [17:20] marcello3d: and keyword deathmatch: https://gist.github.com/854219 [17:20] augustl: so are you saying there's no way in node to provide mylib/foo, other than cluttering the root of the project? [17:20] isaacs: marcello3d: oh, yeah, i saw that. that'd rad :) [17:21] isaacs: augustl: if you want clutter, then *you* have to manage it, yes. [17:21] augustl: isaacs: I would gladly manage it via package.json [17:21] isaacs: augustl: if you want order, then you must use it when you require() the module. [17:21] isaacs: augustl: but you see, that clutters up npm. [17:21] augustl: I'd argue it's worth it [17:21] isaacs: and people who use your module have a harder time finding the code that they're loading. [17:21] vuliev: dubbe: I think that it just executes asynchronously. If you want that to run after your res.forEach, put it inside that callback. [17:21] augustl: "multiple main's" makes a lot of sense for some libraries [17:21] isaacs: augustl: ok. you won't be the first to argue that. but the case is kinda settled. [17:22] augustl: regardless, this is about node, not npm [17:22] eventi has joined the channel [17:22] augustl: mylib/lib/thing still seems like the best option [17:22] dubbe: vuliev: yeah, i figured... i solved it by returning the id from the function instead [17:22] isaacs: augustl: if you want your package's contents to be accessible, well, they are. [17:22] augustl: another option wold be to have mylib.subthing be a getter that required. But that smells a bit too imo [17:22] isaacs: augustl: but adding a layer of indirection and a bunch of extra shims and symlinks, just so that you can cut 4 characters out of your require() statements, that's not hte right trade-off. [17:23] augustl: isaacs: exposing the lib dir seems a bit leaky imo [17:23] augustl: it's an internal thing you might want to change [17:23] isaacs: require.resolve should tell you exactly where the actual code lives. in npm 0.3, it does. [17:23] augustl: package.json's "main" property doesn't assume a lib dir [17:23] augustl: you might want to change it in the future [17:23] augustl: etc. [17:23] d0k has joined the channel [17:23] pcardune has joined the channel [17:23] isaacs: augustl: so split the things up into separate modules, if you want multiple mains. [17:24] augustl: perhaps most node libraries are rather small [17:24] isaacs: require("foo-bar") vs require("foo-baz") [17:24] augustl: that is, not small, but have only one entry point, or whatever [17:24] isaacs: augustl: or just require("foo/bar") and require("foo/baz") where bar.js and baz.js are in the root of your repo [17:24] augustl: for the library I'm currently working on, it would be great to provide a metapackage, for example [17:24] isaacs: it *should* feel cluttered to have a jillion entry points for your lib. [17:24] isaacs: because that *is* cluttered [17:25] marcello3d: isaacs: how would you suggest the goog module be done? [17:25] augustl: I disagree that it's cluttered [17:25] augustl: large, or voluminous, maybe ;) [17:26] bingomanatee: ACTION semantically seperates his modules into organizational units that assert themselves into the core library on require.  [17:26] augustl: say you're writing a test runner, for example. It have X number of output modules [17:26] augustl: providing "my-test-runner/output-module-a" makes sense [17:27] augustl: and you might have ten of these [17:27] augustl: bingomanatee: I don't want to force users to load all the test runners into memory, though [17:27] augustl: if I understand you correctly [17:27] augustl: s/it have/it has/ [17:27] bingomanatee: then subsume the loading til you need them. [17:27] bingomanatee: one sec I will gist [17:28] augustl: perhaps I could write a myTestRunner.loadOutputModule("a") kind of thing [17:28] isaacs: augustl: sure. [17:29] isaacs: augustl: there are still a lot of ways to write programs. [17:29] bingomanatee: check out https://github.com/bignomanatee/noogle/blob/master/models/pages.js [17:29] augustl: that feels a lot like circumventing missing core functionality [17:29] augustl: perhaps I'm too used to ruby gems ;) [17:29] isaacs: these problems are very solveable without auto-symlinking into the depths of your package folder [17:29] bingomanatee: the reindex method is a facade for _reindex which is loaded from a submodule when it is needed. [17:29] pborenstein has joined the channel [17:29] mscdex: ACTION shakes a fist at character encodings [17:29] bingomanatee: However if your app is persistent then event driven inclusion of resources is an overcomplicaiton [17:29] augustl: you keep mentioning symlinks - that's a implementation detail, no? [17:29] mscdex: why can't everyone just use utf-8! [17:29] bingomanatee: The pages code is verbose. [17:29] mscdex: :) [17:30] isaacs: augustl: what *other* implementation would you propose? [17:30] bingomanatee: ACTION uses utf9.  [17:30] isaacs: augustl: node silently and invisibly gives you x when you require y? [17:30] isaacs: no. [17:30] p0ns_ has joined the channel [17:30] augustl: isaacs: require() could read package.json and traverse the file system manually? [17:30] isaacs: shim modules that make you have to read the file contents to see what it points at? [17:30] isaacs: no. [17:30] isaacs: augustl: no, that's not a good idea. the nodey solution here is to simplify the spec, and remove the bits that are unnecessary [17:31] isaacs: we tried it. it's a pita. movign on. [17:31] augustl: an easy getaway argument. "it's nodey!" [17:31] isaacs: the nice thing about the current solution is that you get compartmentalized dependencies, with a require() algorithm that fits nicely in a few paragraphs. [17:31] marcello3d: isaacs: how would I go about integrating nithub into search.npmjs.org ? is the search page source somewhere? [17:32] augustl: but if this is something that isn't interesting to have in node, I'll just write it myself [17:32] isaacs: marcello3d: search.npmjs.org is a couchapp [17:32] isaacs: marcello3d: it's source code is at http://github.com/isaacs/npmjs.org [17:32] marcello3d: I don't know any couch [17:32] isaacs: augustl: that's another reason it shouldn't be in node-core. putting something that fancy in node-core prevents people from doing it on their onw. [17:32] marcello3d: do I need to run a couch server to test mods? [17:32] isaacs: augustl: i cherish your enterprising spirit!! [17:32] isaacs: :) [17:33] isaacs: marcello3d: yeah. it's not very hard. [17:33] augustl: isaacs: it's a thing people aren't interested in doing on their own [17:33] isaacs: marcello3d: the trickiest bit is breaking your brain to map-reduce and view logic that is a thin js wrapper around erlangs insanity [17:33] augustl: but again, I might be too influenced by ruby gems [17:33] augustl: there we just add lib/ to the load path ;) [17:33] marcello3d: is couchapp a node.js thing? [17:34] isaacs: marcello3d: npm install couchapp [17:34] svenlito has joined the channel [17:34] marcello3d: maybe it makes more sense to do it separately as a proof of concept, too many new things to learn otherwise :) [17:36] augustl: I think I'll do require("mylib/lib/thing") [17:36] marcello3d: does registry.npmjs.org support not modified/if-modified-since etc? [17:36] isaacs: marcello3d: no, it just does etag caching [17:36] marcello3d: if I wanted to keep an up to date local copy [17:36] marcello3d: ok [17:36] marcello3d: that also works [17:36] isaacs: marcello3d: if you set up a couchdb, you can just replicate from it, and it'll do all that for you smartly, compare hashes etc. [17:37] isaacs: since the etag is deterministically generated from the data, you don't end up fetching anything that is already there. [17:37] marcello3d: right [17:37] aphelion has joined the channel [17:37] aphelion has joined the channel [17:38] augustl: isaacs: what about supporting "main" as a directory? [17:38] isaacs: augustl: if it's got an index.js in it, then it'll work [17:38] isaacs: as of 0.4.2, i think [17:38] dans has joined the channel [17:39] augustl: so if main is "lib", require("mything/foo") will load lib/foo.js? [17:39] augustl: or does it just apply to require("mything")? [17:40] mikegerwitz: augustl: If mything/index.js exists, require( "mything" ) loads index.js [17:40] augustl: hmm no, it doesn't [17:41] augustl: mikegerwitz: yeah, I was hoping require("mything/foo") would then also require lib/foo.js (given "main" is set to lib) [17:41] augustl: isaacs: does that make sense to you? [17:41] isaacs: augustl: no, that's not how it works. [17:41] isaacs: main is a module. [17:41] isaacs: not a stem [17:42] augustl: I'm talking about how it might work, not how it works now [17:42] isaacs: it's specifically designed to prevent the ruby insanity [17:42] augustl: if you want to provide a bunch of modules with your project, set "main" to a folder, done. [17:42] pauls has joined the channel [17:43] augustl: not sure how clean the implementation would be, though. (Since that seems to be an important argument) [17:43] isaacs: if you want to do something that doesn't make sense as having a single-module entry point, then structure your package the way you want require() to work. [17:43] isaacs: the real issue is: i do require("foo/bar"). i didn't write foo. i want to see that code. which file do I open? [17:43] isaacs: vim ./node_modules/foo/bar [17:43] augustl: open package.json, find the directory, have lunch [17:44] augustl: it's either bar.js or whatever-main/was-set/to/bar.js [17:44] augustl: not that hard, really [17:44] isaacs: it adds an additional level of indirection. [17:44] augustl: require is magical already ;) [17:44] augustl: require("foo") is also ambigous [17:44] isaacs: yeah, and that's not great. [17:44] augustl: could be index.js, or main in package.json [17:45] isaacs: that's a compromise already [17:46] augustl: compare the use cases, though [17:47] dve has joined the channel [17:47] augustl: require is used a lot. Opening/editing the files you required not so much. [17:47] jimt_ has joined the channel [17:47] augustl: hence I'd argue that making require awesome should get priority [17:48] augustl: and when you have require("mylib/x"), where x can be 10 different things, the project directory for mylib will look retarded. [17:49] stagas has joined the channel [17:49] augustl: ..the way things are currently [17:49] augustl: so, let people set "main" to a directory, problem solved. [17:49] augustl: and the problem it causes - ambiguity of actual file location - is minor in comparison, imo [17:49] augustl: mailing list time, I suppose. [17:49] mikegerwitz: Honestly I'd argue that require should only look at node_modules, index.js and NODE_PATH. Why was package.json considered for require()? There's too much going on. [17:50] augustl: mikegerwitz: because specifying the location of t he actual file you require is damn convenient :) [17:50] augustl: I have a feeling 99% of node libraries have "./lib/libraryname" as main, though [17:50] augustl: kind of broken [17:51] mikegerwitz: I think s/node_modules/lib/ would have been a better option too, but oh well [17:51] augustl: wait.. What was that? Was that the sound of "require should always look in 'lib' of the module"? [17:51] augustl: mikegerwitz: node_modules is for dependencies, not library code [17:51] mikegerwitz: Ahh. [17:52] augustl: isaacs: what do you think about the idea of require("foo") looking in node_modules/foo/lib? [17:52] augustl: then you could have foo/lib/index.js, foo/lib/subthing.js, etc [17:52] isaacs: augustl: if node_modules/foo/package.json says that the main module is "lib" then that's where it will look, yes [17:52] markc has joined the channel [17:52] augustl: isaacs: not for foo/lib/subthing.js, though [17:52] ceej has joined the channel [17:53] isaacs: augustl: so, here's the problem with that: [17:53] isaacs: require("a/b/c/d/e") [17:53] isaacs: right" [17:53] isaacs: assume that a/b/c/package.json specifies main:lib [17:53] isaacs: not you have to load a/b/c/lib/d/e [17:53] isaacs: but, more importantly: you have to search every portion of the path every time for a package.json file. [17:53] isaacs: and that sucks. [17:53] augustl: sounds like an edge case [17:53] augustl: most requires don't go two levels [17:53] isaacs: augustl: easy for you to say [17:54] augustl: you seem to be talking about require("some_library/a_dependency/foo") [17:54] augustl: I'm sure you can find something bad with every approaceh [17:54] isaacs: augustl: i'm talking about what's required for basic correctness, and how to avoid pathological behavior. [17:54] augustl: approach* [17:54] jelveh has joined the channel [17:54] dthompson has joined the channel [17:54] isaacs: everything that you'er suggesting is an enhancement on what's already in 0.4, right? builds upon it. [17:55] isaacs: let's roll back to 0.4, get everything working there, and then start talking about the way forward, if it's actually necessary. [17:55] isaacs: remember, not very long ago, there simply was no way to do any of this wihtout a lot of machinations and brittle bs in npm. [17:55] nichdiekuh has joined the channel [17:55] isaacs: qv: npm 0.2.x [17:56] augustl: isaacs: in practice, I did this before node 0.4 [17:56] augustl: with npm [17:56] isaacs: augustl: right, but there were quite a few edge cases, more common than you probably realize, that led to subtle and awful breakage. [17:56] augustl: that's interesting [17:57] augustl: require("mylib/subthing") is impossible to implement because of unforseen edge cases? [17:57] isaacs: but worse than any of that was the computer-rage that was caused when someone did "vim redis/index.js" and saw a bunch of generated code [17:57] augustl: why didn't you just say that :) [17:57] isaacs: augustl: come on, i'm not saying that. [17:57] augustl: I thought you were [17:57] isaacs: i'm saying that there are *actual* edge cases in the pre-0.4 npm-based implementation which you were using. [17:57] augustl: subtle and awful breakage is pretty much the same as impossible to implement no? [17:57] augustl: ok, not unforsseen, actual [17:58] isaacs: augustl: unforeseen by the authors [17:58] arnorhs has joined the channel [17:58] isaacs: and not always easy to detect, either. [17:58] isaacs: all the shims and symlinks are bad design. [17:58] augustl: node doesn't use symlinks, though? [17:58] matschaffer has joined the channel [17:58] isaacs: npm [17:58] augustl: ah, right [17:58] isaacs: so we decided to look at what's actually necessary, and then design the simplest system possible to meet the greatest swath of use-cases. [17:59] isaacs: and then put most of the require() logic in node itself [17:59] mhausenblas has joined the channel [17:59] augustl: I'll just finish the project as is, get famous and rich, and post on the mailing list with grand authority ;) [17:59] isaacs: require("foo/bar") rather than require("foo/lib/bar") just didn't make the cut. it's a minor use-case that's easy to do [18:00] augustl: ..or settling with the current state of affairs, for all I know it's not that big of a problem to expose lib in the requires. [18:00] razvandimescu has joined the channel [18:00] isaacs: i guarantee you, writing a module loader is probably a lot more fun, but a lot more work, than altering your aesthetic reaction to "lib/" in your require() calls :) [18:01] augustl: it's not as much about aesthetics as it is about API breakage [18:01] extrastring has joined the channel [18:01] augustl: but it's just another level of care - if you move stuff in lib/ in a ruby gem, you're doing API breakage [18:01] augustl: in node.js, it's just one directory up - the project root. [18:02] Croms has joined the channel [18:02] eventi has joined the channel [18:03] augustl: the fact that project root is available is kind of interesting though [18:03] prof-freud has joined the channel [18:03] augustl: require("mylib/test/some-test-case") would actually work :) [18:03] V1 has joined the channel [18:04] sirkitree has joined the channel [18:05] pomodoro has joined the channel [18:05] Jamool has joined the channel [18:07] isaacs: augustl: exactly :) [18:07] eventi: isaacs: hey so http://registry.npmjs.org/ was down a few times this morning [18:07] isaacs: augustl: we (that is, ryan, me, and a few others) saw ourselves heading for the kind of stuff we disliked about ruby. [18:07] isaacs: eventi: yeah, i saw some murmers about that [18:08] eventi: how hard would it be to mirror? I'd like to offer some bits and cycles [18:08] isaacs: i gotta get it on real hardware one of these days. i DO work for a hosting company, after all... [18:08] marcello3d has joined the channel [18:08] eventi: maybe hack together mirror.js [18:08] isaacs: eventi: not hard at all. set up a couchdb and continuously replicate from the db's at http://isaacs.couchone.com [18:08] tktiddle has joined the channel [18:08] isaacs: eventi: http://github.com/isaacs/npmjs.org [18:08] isaacs: ok, gotta run. have fun, noders :) [18:08] eventi: then we'd need to CNAME mirrors.npmjs.org [18:09] SetupLy has left the channel [18:09] extrastring_ has joined the channel [18:09] pascalopitz: ah, you guys sorting out mirrors? [18:09] pascalopitz: good idea!\ [18:09] eventi: looks like isaac's blessed it, but IDK diddly abt couch [18:10] pascalopitz: LOL [18:10] pascalopitz: how is npm working, is it just a couch instance? [18:10] eventi: ACTION adds to ever growing TODO list [18:10] dthompson has joined the channel [18:11] pascalopitz: though it was tarballs? [18:11] marcello3d: I think it's couch [18:12] Me1000 has joined the channel [18:13] elliottcable has joined the channel [18:13] pascalopitz: ACTION browses the source [18:13] pborenstein has left the channel [18:14] pborenstein has joined the channel [18:14] rfay has joined the channel [18:14] jiveB_ has joined the channel [18:15] pborenstein has left the channel [18:15] jeromegn has joined the channel [18:15] pascalopitz: yep, couch [18:15] pborenstein has joined the channel [18:16] muk_mb has joined the channel [18:16] marcello3d: does anyone use a logger that colors error/info/warn differently? [18:18] patcito has joined the channel [18:19] sonnym has joined the channel [18:20] pascalopitz: eventi: well, there are tarballs as well, if I read that correctly? [18:20] eventi: yeah - that's what I'm confused about - but I don't know if couch supports blobs mapped to files... [18:20] eventi: ACTION STILL knows nothing about blobs [18:21] pascalopitz: well, the upload process tarballs it [18:21] steffkes has joined the channel [18:21] pascalopitz: and then uploads it [18:21] ceej has joined the channel [18:21] pascalopitz: in couch there's just a ref I think [18:21] eb4890 has joined the channel [18:21] BrianTheCoder has joined the channel [18:22] erabuj has joined the channel [18:22] eventi: I once was a sysadmin for a comapny that sold rigtones and wallpapers... kept every asset in mysql blobs [18:22] pascalopitz: https://github.com/isaacs/npm/blob/master/lib/utils/registry/publish.js#L36 [18:23] pascalopitz: so to create a true mirror one should mirror all tarballs as well ... that could just be an rsync cron or so, no? [18:23] marcello3d: I feel like db and download mirrors should be independent [18:23] marcello3d: many-to-many [18:23] eventi: no - i think that PUT could be putting it into couch directly as a BLOB (in SQL parlance) which could live in couch [18:24] pascalopitz: you think so? ... lemme have a closer look [18:24] pascalopitz: ACTION is a lazy source browser [18:24] warz has joined the channel [18:24] eventi: ACTION REALLY REALLY has to do something else [18:24] eventi: :) [18:24] marcello3d: how do I push local git tags to github? [18:25] eventi: but if you get anywhere, lmk - I can get the couch replica running later [18:26] mikegerwitz: marcello3d: git push --tags [18:26] marcello3d: brilliant :D [18:26] marcello3d: thanks [18:27] emorins has joined the channel [18:27] marcello3d: https://github.com/marcello3d/node-mongolian v0.1.2 up [18:27] marcello3d: weird. super outdated: http://search.npmjs.org/#/mongolian [18:27] marcello3d: doesn't list v0.1.1 or v0.1.2 [18:28] pascalopitz: eventi: yep, BLOBS by the look ot it [18:28] pascalopitz: s/ot/of/ [18:28] eventi: so that might really be it [18:29] eventi: i like hos isaacs can will things into existance [18:29] eventi: s/hos/how [18:29] pascalopitz: :) [18:30] pascalopitz: shame I can't run exciting stuff on my crappy cpanel vhost [18:30] pascalopitz: otherwise i'd offer to mirror [18:30] pascalopitz: I am booting the clients though [18:30] marcello3d: does it bother anyone how the npm background (tan/grey border) just kinda stops? [18:30] pascalopitz: told them all to f off by Q3 [18:31] pascalopitz: marcello3d: what??? [18:31] pascalopitz: ACTION doesn't know what border [18:31] pascalopitz: ? [18:31] marcello3d: hold on [18:32] marcello3d: http://min.us/ljz8jq [18:32] marcello3d: see how it just kinda stops? [18:32] pascalopitz: ahhhh [18:33] pascalopitz: that's what you mean [18:33] marcello3d: it's also kinda weird how the homepage isn't a link [18:33] marcello3d: yet the git one is (but doesn't work in my browser) [18:34] rfay has joined the channel [18:35] tim_smart has joined the channel [18:35] ngs has joined the channel [18:36] pascalopitz: fix it ... it's just got border-top-left-radius and border-top-right-radius, and no margin-bottom ... who maintains that page? [18:37] snafuz has joined the channel [18:38] marcello3d: isaacs [18:38] V1: Just fork npm.org : https://github.com/isaacs/npmjs.org [18:38] marcello3d: yep [18:38] marcello3d: was just about to link :D [18:38] yorick has joined the channel [18:38] SamuraiJack has joined the channel [18:39] yorick: how do I specify where my node build is at when using waf-light? [18:39] dguttman has joined the channel [18:39] marcello3d: migrated my app completely to mongolian [18:39] Sorella has joined the channel [18:39] marcello3d: so much less code :D [18:40] pascalopitz: right, I'll fix the layout for you ... [18:41] tmpvar has joined the channel [18:42] yorick: it can't find node :( [18:43] beawesomeinstead has joined the channel [18:47] matschaffer has joined the channel [18:48] therealmatt has joined the channel [18:49] rfay has joined the channel [18:51] NuckingFuts has joined the channel [18:52] MattDiPasquale has joined the channel [18:56] bingomanatee: The Mongo people are going to hate you for grabbing that namespace first :D [18:57] marcello3d: bingomanatee: why? [18:58] cagdas has joined the channel [18:58] cagdas: hi guys [18:58] skm has joined the channel [18:59] cagdas: npm says it can't find node [18:59] cagdas: although which node returns /usr/local/bin/node [18:59] bingomanatee: its super cool. [18:59] cagdas: node -v is 0.4.2 [18:59] eaton has joined the channel [18:59] bingomanatee: They really should have been playing off of that in their marketing [19:00] marcello3d: I'm not sure how positive an image mongolian deadbeef portrays. apparently mongolian means moron in french ;D [19:00] cagdas: I'm trying to install node + npm on AWS (Amazon Linux Distro) [19:00] marcello3d: but on the flip side, few people it live beef these days [19:00] Apes has joined the channel [19:00] cagdas: i've tried both install.sh by curl and also git clone and make install for npm [19:00] cagdas: what is wrong? [19:01] bingomanatee: I was referring to the Mongolian part - Where did you get deadbeef from? [19:01] sveimac has joined the channel [19:01] bingomanatee: though that is cool in its own way [19:01] pascalopitz: what is mongolian [19:01] bingomanatee: in a kind of super meat boy kind of thing [19:01] bingomanatee: * [19:01] pascalopitz: I found mongolia in the modules list [19:01] pascalopitz: same? [19:01] marcello3d: (Mongo)lian (D)ead(B)eef [19:01] boaz has joined the channel [19:01] marcello3d: pascalopitz: nope [19:01] bingomanatee: Mongolia is a county [19:01] bingomanatee: Ah .... [19:02] marcello3d: play off of mongolian beef [19:02] bingomanatee: There you go. [19:02] bingomanatee: It works on so many levels. [19:02] marcello3d: and 0xDEADBEEF [19:02] pascalopitz: git url? [19:02] marcello3d: used as default memory allocation by some systems [19:02] q_no has joined the channel [19:02] marcello3d: https://github.com/marcello3d/node-mongolian [19:02] pascalopitz: ahh [19:02] bingomanatee: Really? That is awesome. [19:02] saschagehlich has joined the channel [19:03] Egbert9e9 has joined the channel [19:03] marcello3d: https://encrypted.google.com/search?hl=en&q=0xDEADBEEF [19:03] pascalopitz: neat ... [19:04] sirkitree has joined the channel [19:04] wav1 has joined the channel [19:05] marcello3d: pascalopitz: check it out and tell me what you think, I just started the project a few days ago [19:05] pascalopitz has left the channel [19:05] marcello3d: or just leave. fine [19:05] marcello3d: :D [19:05] eventi: ACTION has cotdc keychain [19:05] erabuj_ has joined the channel [19:06] warz: marcello3d, ill try it out over the next few days. [19:06] eventi: marcello3d: my company uses mongodb heavily, node lightly - I'll talk to the dev working on that [19:07] marcello3d: it's definitely not production ready [19:07] marcello3d: but "just started the project a few days ago" should clue that in ;D [19:07] DrStrange has joined the channel [19:07] dthompson has joined the channel [19:08] dthompson has joined the channel [19:08] eventi: marcello3d: how similar is it to the PHP mongo drivers? [19:09] marcello3d: not a clue, haven't used those [19:09] eventi: :) [19:09] marcello3d: it's MOST similar to the mongo db shell [19:09] eventi: ACTION is an admin [19:09] marcello3d: except for being asynchronous [19:09] maushu: I'm not happy. [19:09] marcello3d: so rather than find() returning, it returns a cursor [19:09] maushu: This api is getting crazy. [19:09] eventi: so I'll curse you out if it breaks at 3AM, but not if it's hard to use :) [19:09] marcello3d: eventi: I'm sure it'll break :D [19:10] marcello3d: but honestly, the mongodb-native driver has been just as bad for me [19:10] eventi: yeah - but I know where you hang out ;) [19:11] jmwinn21 has joined the channel [19:11] marcello3d: ok. I'm so over console.log. what do people use? [19:12] eventi: marcello3d: not db.posts.findOne() ? [19:13] eventi: that's how pymongo does it, but I don't know how to make a setter getter for db.posts [19:13] sleeplessinc has joined the channel [19:13] marcello3d: there's no generic getter in js [19:13] marcello3d: so I can't do that [19:13] Druid_ has joined the channel [19:13] eventi: well... you could get the output from show dbs, assign it to members of db... [19:14] bartt has joined the channel [19:14] blueadept has joined the channel [19:14] eventi: so it'd be just what you have in the shell [19:14] marcello3d: but that's an async op [19:14] marcello3d: so I can't fill it out until too late [19:14] eventi: yeah [19:15] eventi: shame async usually means not lazy... [19:15] AnimaSana has joined the channel [19:16] eventi: ACTION wishes he could override [ [19:16] jimt has joined the channel [19:17] wav1 has joined the channel [19:17] ftf has joined the channel [19:18] falconair has joined the channel [19:19] omygawshkenas has joined the channel [19:19] AnimaSana has joined the channel [19:21] jimt_ has joined the channel [19:22] wav1 has joined the channel [19:23] marcello3d: eventi: I considered supporting server("db")("collection") [19:23] marcello3d: but that felt a little hacky [19:24] marcello3d: in my current project I just exports.posts = db.collection("posts") [19:24] marcello3d: so it's not a big deal [19:24] marcello3d: unlike mongodb-native, none of that's async and you can store it once somewhere and just use it [19:25] q_no: anyone got a min for a beta test? http://dashed.com is an endless canvas using socket.io and mongodb in background :) [19:25] yorick: how do I convert a Blob to a Buffer? [19:25] marcello3d: q_no: badass [19:25] q_no: ? ;) [19:25] marcello3d: I lost the toolbox somehow [19:26] marcello3d: and it's randomly selecting "text" [19:26] marcello3d: when I drag around [19:26] q_no: what browser? [19:26] nmtmason has joined the channel [19:26] marcello3d: chrome 10 [19:26] seivan has joined the channel [19:26] marcello3d: are you using server-side canvas? [19:27] q_no: yep, client&server ;) [19:27] nivoc has joined the channel [19:27] stride: sweet q_no [19:27] jimt has joined the channel [19:27] marcello3d: would be awesome if multitouch scrolling worked [19:27] vuliev: q_no: Pro. [19:27] marcello3d: which server-side canvas lib are you using? [19:28] q_no: guess it's the one from learnboost ;) first one listed in google...hehe [19:28] matschaffer has joined the channel [19:28] marcello3d: the drawing code is a little rough :) [19:29] marcello3d: needs some joining... [19:29] q_no: it's still a bit experimental ;) but I need more data to see if the idea works... [19:30] q_no: so, spread the link and draw ;) [19:30] marcello3d: maybe zoom? :) [19:30] q_no: zooming is one my to do list ;) [19:30] AnimaSana: what do you use to auto-restart node.js ? [19:31] AnimaSana: node-supervisor? [19:31] mikegerwitz: AnimaSana: upstart, if you have a GNU/Linux box and root privileges [19:31] mikegerwitz: or init; whatever your system has [19:31] mtn3601: AnimaSana: i'm still using spark2 … but you should you cluster ... [19:31] AnimaSana: I am using MacOS X [19:31] marcello3d: AnimaSana: rolled my own ;D [19:31] mtn3601: oh, thought you were asking for auto-restart on source modification? [19:32] oninoshiko: probibly depends on what you're running on. On OSol, I would just write a smf manifest [19:32] jimt has joined the channel [19:32] AnimaSana: there are two modules on github, node-supervisor and nodejs-autorestart [19:32] pborenstein has joined the channel [19:32] extrastring has joined the channel [19:33] AnimaSana: mtn3601: this is what I am asking [19:34] marcello3d: think I'm gonna go with this: https://github.com/indexzero/winston [19:34] marcello3d: http://vowsjs.org/ <- opinions? [19:34] stride: q_no: what's your twitter handle? [19:35] mtn3601: AnimaSana: then you are good to go with github.com/LearnBoost/cluster … it has a "reload" module which reloads node when your source files change. [19:35] AnimaSana: github.com/LearnBoost/cluster [19:35] shinmei has joined the channel [19:35] q_no: stride, haven't got twitter ;) [19:35] AnimaSana: mtn3601: thanks I will check that [19:35] stride: q_no: hmkay :) [19:36] marcello3d: q_no: I run a drawing site, you might try posting a link there: 2draw.net [19:36] stride: meh.. somebody put that on HN, I can't remember my login.. again :/ [19:39] eventi: wow q_no - took like 5 seconds to get a picture of a penis on there [19:40] q_no: lol [19:40] omygawshkenas has joined the channel [19:40] q_no: it's just in your mind.... [19:41] eventi: lol [19:43] pkrumins: in your mouth [19:43] hellp has joined the channel [19:43] Zil has joined the channel [19:44] asdfsafdsa: has anyone used the forms module? [19:45] Nexxy has joined the channel [19:45] Nexxy has joined the channel [19:46] eventi: marcello3d: - i just started a shitstorm in #javascript asking about "Proxies" which would do the db.collection.findOne() thing [19:47] eventi: but db(collection).findOne() would be much more like the shell [19:47] jimt_ has joined the channel [19:48] tahu has joined the channel [19:48] marcello3d: shitstorm? [19:48] ph^ has joined the channel [19:48] eventi: it's dying down :) [19:48] eventi: maybe exagerating [19:48] marcello3d: :) [19:49] marcello3d: does v8 support proxy? [19:49] eventi: but 2 people called me an idiot, then 3 people fought over whether it can be done [19:49] eventi: not yet - apparently soon [19:49] SubStack: hoxies? [19:49] SubStack: (harmony proxies) [19:49] daveluke has joined the channel [19:49] eventi: yessir [19:49] insin: welcom to the internet :) [19:49] eMyller: why is there process.nextTick? [19:49] insin: ACTION stabs his E key in the foot [19:49] SubStack: eMyller: because it's MOAR FASTAR [19:49] SubStack: than setTimeout(fn, 0) [19:50] SubStack: actually setTimeout(fn, 0) doesn't even work in node :/ [19:50] marcello3d: why isn't setTimeout(fn,0) implemented as nextTick ? [19:50] eventi: 1st rule of IRC is the first to reply is just to tell you how dum you r [19:50] eMyller: SubStack: and why would i use setTimeout(fn, 0)? [19:50] marcello3d: execute code on the next event loop [19:50] eventi: ACTION kid eating mac power cable [19:50] SubStack: eMyller: if you want something to execute something on the next tick of the event system of course [19:50] eMyller: is it some kind of calback queuing? [19:50] marcello3d: for example, on mongolian dead beef, I use it after I create a readable stream [19:51] marcello3d: to give the caller enough time to call foo.on("data", ... ) [19:51] marcello3d: before I start actually reading data [19:51] Bonuspunkt: ex: starting http-server setTimeout(/* make a request to http-server */, 0) [19:52] eMyller: so, if i create an event, i should bind all listeners to it inside a nextTick callback? [19:52] jimt has joined the channel [19:52] marcello3d: very bizarre, I can't figure out what the default levels available on winston are..! [19:53] eMyller: marcello3d: then you do nextTick(startStreaming)? [19:53] marcello3d: eMyller: yep [19:53] marcello3d: er, no to your first question [19:54] marcello3d: you should bind the listeners as soon as possible [19:54] eMyller: an event should have a .start() thing [19:54] eventi: marcello3d: what's winston? [19:54] marcello3d: basically the problem is this: if my streaming method is somehow magically synchronous, rather than asynchronous [19:54] softdrink has joined the channel [19:54] admc has joined the channel [19:54] marcello3d: then I will send a 'data' event before you even get to listen for it [19:54] marcello3d: and it will be lost [19:55] marcello3d: eventi: http://blog.nodejitsu.com/put-your-logs-anywhere-with-winston [19:55] mjr_ has joined the channel [19:55] eventi: o i remember [19:55] eventi: i kinda think logs should be out of band [19:56] marcello3d: silly, verbose, info, warn, debug, error [19:56] marcello3d: for what it's worth [19:56] adrian_berg has joined the channel [19:56] marcello3d: are the default levels [19:56] marcello3d: the order is a bit strange though [19:56] eventi: but that's convenient [19:56] marcello3d: I usually see silly, verbose, debug, info, warn, error, fatal [19:56] eventi: yeah - syslog does it right, why not use that? [19:56] cloudhead has joined the channel [19:56] unfo- has joined the channel [19:56] marcello3d: winston is neat because it supports arbitrary transports [19:57] marcello3d: so if I want to hook up my logging to mongodb [19:57] marcello3d: no problem [19:57] marcello3d: or if I want to make a socket.io viewer, no problem [19:58] eventi: not that I don't see the benefit, but i think you should log with something other than node... How will you log things that prevent it from logging? [19:58] saikat has joined the channel [19:58] johndahlstrom has joined the channel [19:59] eventi: but once again, I'm a sysadmin - I'm in the business of saying no to cool stuff [19:59] Zilee has joined the channel [19:59] marcello3d: this isn't for fatal errors [19:59] _rain has joined the channel [19:59] marcello3d: this is for logging stuff my code is doing [19:59] marcello3d: and debugging [19:59] eventi: yeah - event logging and the like - i get it [19:59] eventi: it's cool [19:59] marcello3d: and pretty colors :D [20:00] marcello3d: plus if you have a cluster of node instances [20:00] eventi: nodejitsu === pretty colors [20:00] marcello3d: regular sys logging is complicated [20:00] eventi: no - tons of tools for that [20:00] marcello3d: that's ironic, considering their site is all grey [20:00] eventi: yr not the first people to have these problems :) [20:00] marcello3d: I use log4j in java land, fwiw [20:00] marcello3d: what logging system do you suggest? [20:01] eventi: ACTION has managed to stay employed for the past 15 yrs and never set foot in javaland [20:01] piscisaureus has joined the channel [20:01] eMyller: marcello3d: ty [20:01] gkatsev: eventi: good man, lol. What lands have you set foot in? Though, JVM land is pretty nice, it has scala and clojure and jython and jruby [20:02] eventi: I don't know of a node specific one, but if you're wrapping the node process in daemon or something, you can log to syslog [20:02] eventi: tons and tons of rock hard tools for syslog [20:02] marcello3d: eventi: how do I distinguish between debug, info, warn, etc? [20:03] kriszyp has joined the channel [20:03] eventi: i'd have to dig [20:03] gkatsev: marcello3d: search.npmjs.org and search for log. There's a bunch. [20:03] skohorn has joined the channel [20:03] marcello3d: gkatsev: I did, I'm trying out winston right now [20:03] eventi: not sure if there's a syslog logger for node - it's so un-sexy [20:04] eventi: gkatsev: yr totally stalking me now [20:04] gkatsev: no, I've been here for a while :) [20:04] eventi: jk of course [20:05] eventi: java was a 1 credit language course when I was graduating - i wasted tons of time getting swing apps together [20:05] eventi: never forgave them for the switch to AWT [20:05] marcello3d: swing is actually decent now :) [20:05] marcello3d: I use intellij for all my development (including node.js) [20:06] eventi: or did i get that backwards [20:06] marcello3d: does sweet javascript refactoring [20:06] eventi: the point is i dont care - leave the java to the $2/hr code farms overseas [20:06] gkatsev: intellij is the best [20:06] eventi: and keep me (as a sysadmin) as far away from trying to get it to run as possible [20:06] gkatsev: marcello3d: have you used webstorm at all? [20:07] marcello3d: naw [20:07] marcello3d: it's the same thing, isn't it? [20:07] gkatsev: well, it's supposed to be targeted at dynamic languages like js and python. [20:07] Hello71 has joined the channel [20:07] Hello71 has joined the channel [20:07] marcello3d: yea, Intellij ultimate has all those plugins [20:07] gkatsev: though, it isn't free :/ [20:07] marcello3d: webstorm ruby/whatever are just variants [20:08] marcello3d: kind of like aptana being a branded eclipse [20:08] marcello3d: ok. winston is less cool now, it's not coloring stuff how I want [20:08] eventi: lol [20:08] csanz has joined the channel [20:08] DrStrange has joined the channel [20:08] marcello3d: rather [20:08] gkatsev: well, that's why I ask. I wonder if it is just seperate with only the js/python/ruby stuff minus java stuff or if they added some other things. [20:08] marcello3d: not coloring stuff at all [20:08] marcello3d: gkatsev: no clue, they probably have a trial though, right? [20:08] sechrist has joined the channel [20:09] gkatsev: yeah [20:09] gkatsev: I just also haven't used intellij for js dev. I've only used it for java and scala [20:09] marcello3d: yep [20:09] binarypie has joined the channel [20:09] gkatsev: marcello3d: if you try it out, let me know :) [20:09] marcello3d: ACTION switched from scala to node.js [20:10] marcello3d: just got fed up with scala's slowness [20:11] insin has joined the channel [20:11] gkatsev: but scala is awesome :). But I hear you about the slowness. I probably had the slowest ray tracer at my CG course [20:11] davemo has joined the channel [20:12] marcello3d: the runtime speed doesn't bother [20:12] marcello3d: but the compile/develop loop is so slow [20:12] marcello3d: and despite being the best out there, the scala plugin for intellij is still shitty [20:12] marcello3d: and the language is so thick... [20:12] gkatsev: I've done it from the CLI a bunch [20:13] marcello3d: need me some autocomplete and live syntax checking :) [20:13] gkatsev: vim :) [20:13] marcello3d: that's what makes java great to dev in [20:13] marcello3d: vim has scala syntax checking? [20:13] marcello3d: (not coloring) [20:14] gkatsev: highlighting, which is good enough for me [20:14] marcello3d: :) [20:14] gkatsev: though, I did do most of my scala dev in intellij, vim was mostly for fixing up stuff during testing. [20:14] abraham has joined the channel [20:15] Me1000 has joined the channel [20:15] eventi-lunch: vim++ [20:15] mikegerwitz: compiler does the syntax checking. Unnecessary to have it in an IDE. [20:17] gkatsev: yeah, that too [20:17] marcello3d: mikegerwitz: I think the only people who would say that are the people who don't have it :) [20:17] Zilee: Hey guys [20:18] mikegerwitz: marcello3d: Been programming for 11 years, most of it usign vim, and I've never needed it :) Besides, it forces you to remember the syntax [20:18] AAA_awright: mikegerwitz: Isn't that kind of the whole point of an IDE? An IDE is supposed to know the syntax you're typing, whereas a plain text editor doesn't [20:18] AAA_awright: The very name of IDE implies it includes the compiler, syntax parser, etc [20:19] marcello3d: AAA_awright: not so sure, I feel like that's a pretty modern concept [20:19] gkatsev: marcello3d: it's nice to have when you are new to the language. But afterwards, it's uneeded. In fact, it can make people stupider programmers because they rely on the IDE too much. [20:19] marcello3d: mikegerwitz: my point is satisfied by your statement :) [20:19] marcello3d: gkatsev: I say it's quite the opposite [20:19] marcello3d: it's terrible if you're new to the language, great if you're not [20:19] clevrmunke has joined the channel [20:20] mikegerwitz: marcello3d: I guess you're right, heh. Don't use ides [20:20] gkatsev: marcello3d: well, it can. [20:20] jakehow has joined the channel [20:20] marcello3d: intellij goes several steps further in java land, and it'll even automatically suggest variables and methods based on type [20:20] marcello3d: like if I write String foo = bar. [20:20] marcello3d: it'll bring methods on bar that return String up to the top of the list [20:21] marcello3d: and if there's a String getFoo() it'll suggest that one first (based on name) [20:21] marcello3d: makes coding amazingly fast [20:22] marcello3d: another good one: component.addActionListener(new -> component.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { ... } }); [20:22] clevrmunke: can anyone give me a hand with https://github.com/hij1nx/weld? I'm stuck on the demo [20:22] marcello3d: (with proper whitespace, of course) [20:22] marcello3d: it's not just special cased for library methods, that'll work with any interface/abstract class in that situation [20:23] marcello3d: it will also do things like grey out public methods/variables that are never used/called anywhere [20:23] marcello3d: and let you safely remove them [20:23] mekazu has joined the channel [20:23] marcello3d: these are things you just can't replicate without an IDE [20:24] mikegerwitz: you can do those with vim plugins :) [20:24] marcello3d: refactoring is the big one. I never worry about bad variable/method/property names. I just write my code and once I'm satisfied, rename them to what makes sense [20:25] erabuj has joined the channel [20:26] marcello3d: mikegerwitz: awesome. not familiar with vim plugins, I just use the raw version and can only be bothered to remember approximately 5 commands in it [20:27] davidascher has joined the channel [20:27] jimt_ has joined the channel [20:27] marcello3d: is there a way to optionally load a module in node.js, if it exists? [20:29] stagas: marcello3d: try { var mod = require('mod_path') } catch(e) {} [20:30] asdfsafdsa: doesnt that only have scope inside the try block? [20:31] marcello3d: that's fine [20:31] stagas: var mod before the try [20:31] marcello3d: asdfsafdsa: it should be the same scope [20:31] marcello3d: such an original screenname [20:31] aklt has joined the channel [20:32] ximo has joined the channel [20:32] asdfsafdsa: ty. every other nick i tried was taken [20:32] jimt has joined the channel [20:33] MattJ has joined the channel [20:35] mhausenblas has joined the channel [20:36] nmtmason has joined the channel [20:36] zum has joined the channel [20:36] pHcF has joined the channel [20:37] jimt_ has joined the channel [20:37] Spion__ has joined the channel [20:38] dwww has joined the channel [20:38] gkatsev: marcello3d: vim is great. I use it a lot. My vim stuff is available bitbucket.com/gkatsev/dotfiles if you want to take a look at it. [20:39] gkatsev: asdfsafdsa: javascript has function scope. [20:39] gkatsev: not block scope [20:40] rhdoenges has joined the channel [20:41] dve has joined the channel [20:43] frankcox has joined the channel [20:43] Nexxy has joined the channel [20:43] Nexxy has joined the channel [20:44] zum has joined the channel [20:47] therealmatt has left the channel [20:47] hij1nx has joined the channel [20:48] sechrist has joined the channel [20:51] mlncn has joined the channel [20:54] rhdoenges has joined the channel [20:55] razvandimescu has joined the channel [20:55] rhdoenges has joined the channel [20:57] cloudhead: any reason why request.client.remoteAddress would be undefined on some requests? [20:57] AphelionZ has joined the channel [20:59] rhdoenges has joined the channel [20:59] kristsk: you check it after the stream is ended ? [21:00] stagas: cloudhead: on a http server? [21:01] cloudhead: stagas: yes [21:01] cloudhead: kristsk: well, it's on GET requests [21:01] cloudhead: stagas: actually https [21:01] asdfsafdsa: oh i didnt know [21:02] msch has joined the channel [21:02] zilt has joined the channel [21:02] cloudhead: actually thinking about it, it might be because of https [21:02] saikat has joined the channel [21:03] stagas: cloudhead: well https is new so it may be a bug or something [21:03] mjr_: yeah [21:03] cloudhead: stagas: yea that's what I'm thinking [21:03] mjr_: It's req.socket.socket.remoteAddress [21:03] cloudhead: O_o [21:04] cloudhead: mjr_: does that work for http too though? [21:04] mjr_: This does though [21:04] mjr_: this.remote_address = req.socket.remoteAddress || req.socket.socket.remoteAddress; [21:04] daveluke has left the channel [21:04] cloudhead: hehe [21:04] cloudhead: ok, I'll go for that for now [21:04] cloudhead: ty [21:04] mjr_: That's what I put in my "framework" [21:04] JimBastard has joined the channel [21:04] mjr_: But yeah, it's surprising. [21:05] kristsk: i head you like sockets, so i put a socket inside your socket! [21:06] unomi has joined the channel [21:07] xandrews has joined the channel [21:08] dylang has joined the channel [21:08] [[zz]] has joined the channel [21:08] Aria has joined the channel [21:09] hooman has joined the channel [21:09] hooman has left the channel [21:11] eventi has joined the channel [21:12] pau|c has joined the channel [21:16] mjr_: cloudhead: are you pushing much traffic through node's http server? [21:17] mjr_: er, https server [21:17] Qix has joined the channel [21:18] Qix: hey [21:18] Qix: been playing with node and hit a particularly confusing bug; would appreciate any tips on how to debug it :/ [21:18] augustl: try the other one [21:18] Qix: "/home/josh/www/athena-master/server/lib/db.js:68; cb(info); TypeError: undefined is not a function" [21:19] Qix: the other one? [21:19] augustl: what's in db.js on line 68? [21:19] Qix: but the code that calls cb is really simple [21:19] Qix: console.log(cb); [21:19] Qix: self.query(sql, function(info) { [21:19] Qix: console.log(cb); [21:19] Qix: cb(info); [21:19] mjr_: need link to code [21:19] augustl: cb is probably undefined :) [21:19] Aria: ... What's 'cb' there? [21:19] Qix: but it isn't undefined before the call [21:19] Qix: callback [21:19] augustl: Qix: it must be [21:19] Qix: it isn't [21:19] augustl: it is [21:19] Qix: it is in the function(info) callback though [21:19] Aria: Is it? [21:19] augustl: that's why you get that error [21:20] mtn360 has joined the channel [21:20] Aria: Where's it come from? [21:20] Qix: the two logs there, the first one prints [Function] and second prints undefined [21:20] augustl: Qix: there's a number of things that can undefine it [21:20] Iszak has joined the channel [21:20] Qix: but i cant figure out how it gets undefined [21:20] Iszak has joined the channel [21:20] Qix: is there a list somewhere? [21:20] augustl: Qix: something sets it to undefined :) [21:20] augustl: Qix: look at all assingments of cb in it's scope [21:20] Qix: its initially a parameter to a db.update function [21:20] Qix: with no other assignments [21:20] Iszak has left the channel [21:20] augustl: can't be moe specific without code [21:21] malkomalko has joined the channel [21:21] mjr_: Something set s it to undefined before the db query finishes. Need full code. [21:21] Qix: 1sec [21:21] augustl: but it's not useful to say it's not undefined [21:21] augustl: because it is [21:21] augustl: debugging 101 [21:21] Qix: http://pastebin.com/EVrHfzZr [21:21] Qix: no [21:21] Qix: my problem is that its not undefined before the self.query call [21:21] Qix: and that it gets undefined during that [21:21] Qix: but i have no idea how [21:22] mjr_: Surely there is more to this program [21:22] marcello3d: what's err_cb? [21:22] Qix: the cb is a parameter to the self.update function, how does it suddenly disappear with no other assignments? [21:22] travyo has joined the channel [21:22] eventi: hey - anyone use either nave or n or nvm? Have a preference [21:22] Qix: marcello3d: old parameter, sorry - can drop that bit [21:23] Qix: mjr_: i'm not sure if posting the whole program will help [21:23] Qix: afaik its not possible for cb to be defined at the first console.log, and undefined at the second [21:23] mjr_: Qix: whoever called self.update could change cb [21:23] marcello3d: the only way to make cb go away in that case is to mess with the arguments object [21:23] Qix: josh@dave:~/www/athena-master/server$ grep -r arguments . [21:23] Qix: josh@dave:~/www/athena-master/server$ [21:24] marcello3d: so my guess is either the wrong code is being loaded [21:24] marcello3d: or the error is actually elsewhere [21:24] Qix: what does wrong code being loaded mean? [21:24] marcello3d: like you're somehow running different code than you're editing [21:24] johans_ has joined the channel [21:24] tfe_ has joined the channel [21:24] tfe_ has joined the channel [21:25] augustl: Qix: how is the function you pass to self.query called? [21:25] cagdas has joined the channel [21:25] marcello3d: on an unrelated note [21:25] marcello3d: generating sql like that is terrible [21:25] sechrist: Any south bay node meetups soon? [21:25] p0ns has joined the channel [21:25] marcello3d: is there no prepared statements support in node/mysql? [21:25] Qix: marcello3d: what would you recommend? [21:26] Qix: yeah there is [21:26] marcello3d: those. :) [21:26] Qix: but the prepared statements use basically the same code as i'm using [21:26] Aria: Except they quote things. [21:26] Qix: this way i get to use a neat db.update(table, {x: 'five'} [21:26] Qix: Aria: implodePairs does that [21:26] Aria: Aaah. [21:26] travyo has joined the channel [21:27] augustl: so, how is the function called? [21:27] augustl: also, I assume line 9 in your paste is line 68 in your actual file? [21:27] bartt has joined the channel [21:27] Qix: just gimme a second, i might have mis-read and about to hit my head on the desk :( [21:28] eventi: i'm sure you validate the living poo out of the members, too right? bc you have lots of room for SQL insertion [21:28] mjr_: sechrist: Tuesday [21:28] augustl: oh you don't say. So it was actually undefined? :) [21:28] augustl: rule of thumb: it's never a bug [21:28] Qix: augustl: i know, except when the console.log prints that it is and confuses me [21:28] johans_ has left the channel [21:28] Qix: and then i notice the function was called twice [21:28] AphelionZ has joined the channel [21:28] johans_ has joined the channel [21:28] Qix: with the first one during a bunch of output :( [21:29] eee_c has joined the channel [21:29] augustl: when you're confused by your own code, it's peanut butter jelly time [21:30] frankcox has left the channel [21:30] softdrink has joined the channel [21:30] sechrist: mjr_: where?! [21:30] possibilities has joined the channel [21:30] apoc has joined the channel [21:30] mjr_: sechrist: http://meetup.creationix.com/ [21:31] mjr_: Request Granted [21:31] gkatsev: :( it's 3000 miles away [21:31] sechrist: bom [21:31] sechrist: boom [21:31] mjr_: 200 OK [21:31] Qix: yeah sorry guys, thanks for the help anyway :( [21:32] augustl: np [21:32] sechrist: going in my calendar [21:32] Qix: assumed because i'm using something "quite" new there was potential for something unexpected [21:32] frankcox has joined the channel [21:33] gazumps has joined the channel [21:33] mjr_: Normally Sunnyvale is 3,000 miles away, but this time I'll be there. [21:33] sechrist: mjr_: Where is your normal residence? [21:33] sechrist: east coast? [21:33] mjr_: sechrist: a month ago, my family and I moved from Oakland to Hawaii. [21:33] sechrist: oh wow [21:33] gkatsev: no thats a move [21:33] mjr_: water in Santa Cruz: too cold [21:33] sechrist: Do you miss Oakland? :) [21:33] gkatsev: s/no/now/ [21:34] gkatsev: I'm in Boston [21:34] herenowcoder has joined the channel [21:34] mjr_: I miss the tech scene, but other than that, everything else is better there. [21:35] mjr_: When I first moved to silicon valley, I thought I would never leave. After 12 years, I left. I now think the same thing about Kauai. [21:35] KRBssa has joined the channel [21:35] mzee has left the channel [21:35] dthompson has joined the channel [21:36] mkrecny has joined the channel [21:36] mkrecny: how would you make a HTTP HEAD request (ie headers only) with node [21:37] mjr_: mkrecny: http.request({method: "HEAD"}, callback); [21:37] mkrecny: method: A string specifying the HTTP request method. Possible values: 'GET' (default), 'POST', 'PUT', and 'DELETE' [21:37] mkrecny: from the docs [21:37] peol has joined the channel [21:37] mjr_: oh shit [21:37] mjr_: really? [21:38] mkrecny: depends on how we interpret 'Possible' [21:38] maushu: HEAD should work. [21:38] mkrecny: cool [21:38] mkrecny: also i don't wanna have to specify host and port separately [21:38] sechrist: SubStack: you going to the sunnyvale thing? [21:39] mkrecny: sorry i mean host and path [21:39] admc has joined the channel [21:39] mjr_: yeah, it works. Just a documentation oversight. [21:40] mjr_: mkrecny: many people use "npm install request" to hide the low level API details. [21:40] mjr_: you can just feed it a URL [21:40] mkrecny: rather than the options object? [21:41] mkrecny: liek http.request('HEAD example.com?foo=bar', callback); ?? [21:42] davemo has joined the channel [21:42] Stan____ has joined the channel [21:42] Nevtus_ has joined the channel [21:42] Stan____ has left the channel [21:44] tiemonster has joined the channel [21:45] mischief has joined the channel [21:45] abraham has joined the channel [21:45] cloudhead: does node keep a hash of mime -> extension pairs? [21:45] tiemonster: node, or express? [21:45] jimt has joined the channel [21:45] eMyller has left the channel [21:46] cloudhead: tiemonster: node [21:46] Me1000 has joined the channel [21:46] tiemonster: for what? [21:47] breccan has joined the channel [21:48] johndahlstrom|2 has joined the channel [21:48] cloudhead: tiemonster: .. to determine adequate file extension from a given mime [21:48] stephen_mcd has joined the channel [21:48] tiemonster: in what context? [21:49] cce_ has joined the channel [21:49] temp02 has joined the channel [21:49] kal-EL__ has joined the channel [21:49] mscdex_ has joined the channel [21:49] xandrews has joined the channel [21:49] zemanel has joined the channel [21:49] Nacho has joined the channel [21:50] cloudhead: tiemonster: I'm downloading an image [21:50] framlin_ has joined the channel [21:50] AnimaSana has joined the channel [21:51] tiemonster: server to client or vice versa? [21:51] forzan_ has joined the channel [21:51] mattijs_ has joined the channel [21:51] Astro has joined the channel [21:51] sstephenson_ has joined the channel [21:51] rajab has joined the channel [21:51] cloudhead: tiemonster: client to server [21:51] benatkin has joined the channel [21:51] tiemonster: so uploading [21:51] ajpiano_ has joined the channel [21:51] Sembianc1 has joined the channel [21:51] [tm]_ has joined the channel [21:51] gkatsev_ has joined the channel [21:52] cloudhead: tiemonster: no downloading with a client, from a server [21:52] pkrumins_ has joined the channel [21:52] mrkurt_ has joined the channel [21:52] Crshman_ has joined the channel [21:52] wang_ has joined the channel [21:52] MiiCode2_ has joined the channel [21:52] grncdr_ has joined the channel [21:52] russell_1 has joined the channel [21:52] elliottc1ble has joined the channel [21:52] chilts_ has joined the channel [21:52] aakour_ has joined the channel [21:52] adrian_b1rg has joined the channel [21:52] BHSPitMo1kay has joined the channel [21:52] Nevtus has joined the channel [21:52] Nevtus has joined the channel [21:52] apoc_ has joined the channel [21:52] persson_ has joined the channel [21:52] davidc__ has joined the channel [21:52] tiemonster: I give up [21:52] vuliev_ has joined the channel [21:52] wilmoore_ has joined the channel [21:52] ekes has joined the channel [21:52] Martz has joined the channel [21:52] adamholt has joined the channel [21:52] ekes has joined the channel [21:53] Martz has joined the channel [21:53] mikeputnam has joined the channel [21:53] sadiq_ has joined the channel [21:53] devinus_ has joined the channel [21:53] zmack has joined the channel [21:53] robarnold has joined the channel [21:53] ryah has joined the channel [21:53] mikegerwitz has joined the channel [21:53] mikegerwitz has joined the channel [21:53] hobs has joined the channel [21:53] vuliev_: sadiq_: Oh hey sadiq [21:53] ruxpin has joined the channel [21:53] cloudhead: tiemonster: lol it's not complicated [21:53] throughnothing_ has joined the channel [21:54] cloudhead: tiemonster: just gonna have to have a set of mime -> extention bindings [21:54] freeformz has joined the channel [21:54] tiemonster: for what purpose? [21:54] kloeri has joined the channel [21:55] q_no has joined the channel [21:55] cloudhead: tiemonster: to figure out the file extension [21:56] TheCowboy has joined the channel [21:56] tiemonster: but if you're doing a file upload, wouldn't it already have an extension? [21:56] jimt has joined the channel [21:56] tiemonster: or download [21:56] tiemonster: I still haven't figured out that bit [21:56] cloudhead: I'm downloading [21:57] cloudhead: well, it might, but it might not [21:57] cloudhead: what it will have for sure is a content-type [21:59] piscisaureus has joined the channel [22:00] marcello3d: there's really only one way to do it, you need a map [22:00] marcello3d: of mime types <-> file extensions [22:00] Stan____ has joined the channel [22:00] narph has joined the channel [22:01] cloudhead: indeed [22:02] Locke23rus has joined the channel [22:05] muk_mb has joined the channel [22:07] possibilities has joined the channel [22:10] omni5cience has joined the channel [22:11] jimt_ has joined the channel [22:12] kriszyp has joined the channel [22:12] russell_h has joined the channel [22:12] Me1000 has joined the channel [22:15] dve_ has joined the channel [22:16] BrianTheCoder has joined the channel [22:18] xandrews has joined the channel [22:18] travyo has left the channel [22:19] noamsml has joined the channel [22:20] Ond has joined the channel [22:20] noamsml: Hm, I'm having odd trouble with npm. I updated express.js and now when I require("express") it just returns an empty object [22:20] Ond: Odd [22:20] Ond: Is it the beta version of express by chance? [22:20] warz has joined the channel [22:21] noamsml: Ond: 1.0.7, so no [22:21] noamsml: I don't think [22:22] noamsml: Hm, is express 1.0 incompatible with node 0.4.0? [22:22] drudge: yeah you gotta use 2.0beta [22:23] noamsml: Oh, OK [22:24] noamsml: I guess for that I'd have to fork it directly from the master branch, right? [22:24] Aikar: wow ruby takes forever to compile... all for a freaking git commit emailer [22:25] mkrecny: Any way to make a http HEAD request with the http module? Right now I'm using curl -I via child_process.spawn then have to parse...? [22:25] ryanfitz has joined the channel [22:26] Ond: Why not ues npm, noamsml [22:26] marcello3d: is there a clean way to deal with function overloading in JS? [22:27] hornairs has joined the channel [22:28] Aikar: mkrecny: http.request() [22:29] noamsml: marcello3d: Not really. Depending on how you want to use it you can use default arguments and sentinel values to achieve the same thing [22:29] Aikar: mkrecny: http.request({method:'HEAD', host:'', port: 80, path: '/'}, function(err, res) {}); [22:29] noamsml: Er, not default arguments [22:29] dylang has joined the channel [22:29] noamsml: I meant to say that you can pass a variable number of arguments and those not passed will be set to undefined [22:29] noamsml: ACTION language confusion :P [22:30] noamsml: Ond: It's not in the npm repositories [22:30] noamsml: Or so it seems [22:30] Ond: Express? Of course it is [22:30] Ond: npm view express [22:30] noamsml: Ond: Not v2.0beta [22:31] marcello3d: the main problem is dealing with callbacks being the last argument [22:31] marcello3d: with optional parameters in the middle [22:31] Ond: The beta version is listed when you go "npm view express" [22:31] aho has joined the channel [22:31] Ond: It's the last version [22:31] Ond: It's the version that would install by default [22:31] Ond: And I would advise against doing so [22:31] noamsml: Ond: Oh, it's possible it just didn't show that because I needed 0.4.1 rather than 0.4.0 [22:32] Ond: Maybe so [22:32] softdrink has joined the channel [22:32] noamsml: Ond: Advise against using the beta version? [22:33] Ond: Yeah you'd have to modify some names [22:36] jimt has joined the channel [22:40] jeromegn has joined the channel [22:41] AAA_awright: Node.js appears to be terminating before process.stdout.write has finished writing [22:41] AAA_awright: This didn't happen previously, as of 2-3 months ago [22:42] jimt_ has joined the channel [22:43] kristsk: yeah it happens. [22:43] Stan____ has left the channel [22:44] Aria: [citation needed] [22:44] Aria: It shouldn't. [22:45] AAA_awright: console.log too [22:45] secoif_ has left the channel [22:46] AAA_awright: console.error works presumably because that's a sync function [22:47] abraham has joined the channel [22:48] AAA_awright: I don't know how to output everything I need to to stdout, anyone know what this is about? [22:50] secoif_ has joined the channel [22:52] mikegerwitz: AAA_awright: version & OS? I'm unlikely to know the naswer, but I'm curious [22:52] mikegerwitz: answer* [22:52] AAA_awright: Yeah I should mention I'm using master on Gentoo Linux [22:52] jimt has joined the channel [22:52] mikegerwitz: AAA_awright: have you tried using one of the recent tags rather than master? [22:53] mikegerwitz: AAA_awright: I haven't had any problems lately using Gentoo.. [22:53] AAA_awright: If it's a bug in master I think it should be fixed :) [22:54] noamsml has left the channel [22:54] mikegerwitz: AAA_awright: Yeah, I'm just curious if it's new :) If you have enough cores (so as not to drive you crazy), you could export JOBS=5 (or whatever you use for CFLAGS) and use git bisect [22:55] mikegerwitz: AAA_awright: er, MAKEOPTS* [22:56] AAA_awright: Compiling 0.4.2... [22:57] jimt has joined the channel [22:59] AAA_awright: 0.4.2 does it too [23:01] sonnym has joined the channel [23:01] malkomal_ has joined the channel [23:01] AAA_awright: Wait no, ./node reports 0.5.0-pre, huh [23:02] AAA_awright: What's going on the source code reports 0.4.2 [23:02] hassox has joined the channel [23:03] mikegerwitz: AAA_awright: did you `git checkout v0.4.2`? [23:04] AAA_awright: Yaeh [23:04] mikegerwitz: huh. [23:04] mikegerwitz: AAA_awright: I wonder if something didn't recompile [23:04] mikegerwitz: AAA_awright: did you do make clean? [23:05] AAA_awright: ...I shouldn't have to git touches the changed files [23:05] AAA_awright: ...Seriously [23:05] mikegerwitz: AAA_awright: You're right you shouldn't have to [23:05] mikegerwitz: AAA_awright: never know. [23:05] AAA_awright: You're probably right [23:06] jimt_ has joined the channel [23:06] messju has left the channel [23:06] AAA_awright: make clean didn't do anything either [23:06] AAA_awright: I had to make distclean [23:07] AAA_awright: Not it's compiling [23:07] AAA_awright: *Now it's compiling [23:07] mikegerwitz: AAA_awright: heh, jesus. Yeah I've had that problem [23:07] AAA_awright: Epic fail [23:07] mikegerwitz: AAA_awright: But I never tried make distclean. I ended up recloning ._. [23:07] AAA_awright: mikegerwitz: There's git commands for that [23:08] AAA_awright: At worst just rm * and git checkout master [23:08] AAA_awright: What is the one you're supposed to use, not git reset [23:08] devrim: hey guys - how to downgrade nodejs 0.4 to 0.2.5 ? [23:08] mikegerwitz: AAA_awright: Yeah, it was just me being lazy [23:08] AAA_awright: git clean [23:08] mikegerwitz: AAA_awright: I normally do git clean, but I had my own changes in the repo too [23:10] mlncn-agaric has joined the channel [23:10] piscisaureus: ryah: here? [23:11] piscisaureus: (healthy again?) [23:12] mlncn has joined the channel [23:13] Me1000 has joined the channel [23:13] xandrews has joined the channel [23:15] swaj has left the channel [23:16] marcello3d: laaaaame [23:16] marcello3d: winston doesn't support console.log(foo,bar,buh) [23:16] sveimac has joined the channel [23:17] eaton has joined the channel [23:17] eaton has joined the channel [23:17] davidc_ has joined the channel [23:20] heavysixer has joined the channel [23:20] mlncn has joined the channel [23:21] zakabird has joined the channel [23:24] mlncn-agaric has joined the channel [23:25] elliottcable has joined the channel [23:25] floby has joined the channel [23:28] eyesUnclouded has joined the channel [23:28] abraham has joined the channel [23:32] AphelionZ has joined the channel [23:32] AAA_awright: I have to be doing something wrong, v0.3.8 isn't working either [23:32] AAA_awright: and it does report v0.3.8 now [23:33] mikegerwitz: AAA_awright: echo "console.log( 'Foo' );" > test.js && node test.js -- does that work? Or does the output need to be sufficiently large? [23:33] mikegerwitz: (to produce the bug) [23:34] AAA_awright: mikegerwitz: It has to be pretty large [23:34] mikegerwitz: AAA_awright: perhaps that's why I haven't seen it.. [23:34] AAA_awright: When I output to the console it does output the first 1k bytes or so [23:34] hassox has joined the channel [23:34] AAA_awright: When I output to a file it outputs nothing [23:34] mikegerwitz: AAA_awright: hm. Let me try a larget strng [23:34] mikegerwitz: larger* [23:35] AAA_awright: I'm compiling v0.3.0 now... [23:36] sivy has joined the channel [23:36] liar has joined the channel [23:37] mikegerwitz: AAA_awright: hm...with process.stdout.write and console.log, both finish outputting all 50,000 bytes I tried before exiting.. [23:37] mikegerwitz: AAA_awright: Including to a file [23:37] mikegerwitz: I'm on 0.4.0 atm [23:37] mikegerwitz: AAA_awright: GNU/Linux, but on a Debian machine atm, not Gentoo. Though I can't imagine that matters. [23:37] AAA_awright: What version did I just check out actually I think it wasv 0.4.0... I'm checking [23:38] AAA_awright: mikegerwitz: I don't think I actually used this program since maybe v0.4.5-pre or something like that [23:38] AAA_awright: So it's likely after that, but I'm just making sure it's not some OS bug [23:39] AAA_awright: I'm very sure it was after 0.4.0 [23:39] robotarmy has joined the channel [23:40] mikegerwitz: AAA_awright: console.log() should also be syncrhonous.. [23:40] AAA_awright: As I understand console.log is not, it's just a wrapper for process.stdout.write(line+"\n") [23:40] AAA_awright: console.error() is [23:41] AAA_awright: And console.error does output all the text, it takes about 2 seconds on gnome terminal [23:41] mikegerwitz: AAA_awright: Maybe I was thinking of error, hm [23:42] mikegerwitz: AAA_awright: That was my next question..where the output was going [23:42] AAA_awright: mikegerwitz: And redirecting to a file, nothing gets output. Appending appends nothing, writing to a new file creates an empty file [23:43] mikegerwitz: AAA_awright: If I put enough vertical splits in gnu screen, the output is slow as shit. Let me try that and see [23:43] xandrews has joined the channel [23:43] mikegerwitz: AAA_awright: ..yeah took about 5 seconds to output it all and it did output everything [23:43] mikegerwitz: Odd.. [23:43] mikegerwitz: (console.log) [23:44] AAA_awright: mikegerwitz: Try process.stdout.write that's what I'm using [23:44] AAA_awright: Console.log should be using that anyways [23:44] AAA_awright: mikegerwitz: Also again, I'm pretty sure 0.4.0 didn't have the problem [23:44] mikegerwitz: Oh, excuse me. that was using stdout.write [23:44] AAA_awright: Still waiting to test that [23:44] mikegerwitz: AAA_awright: I'll build master [23:44] mikegerwitz: AAA_awright: been putting off upgrading anyway [23:45] gozala1 has joined the channel [23:45] whaka has joined the channel [23:45] AAA_awright: I'm compiling at least twice a week :) [23:46] [[zz]] has joined the channel [23:48] mikegerwitz: AAA_awright: Still outputs everything in v0.5.0-pre [23:48] AAA_awright: Huh [23:48] mikegerwitz: AAA_awright: What shell are you using? I'm not sure if that matters [23:48] AAA_awright: bash? [23:48] mikegerwitz: AAA_awright: yeah, same [23:48] mikegerwitz: AAA_awright: I've exhausted my ideas : / [23:48] markwubben has joined the channel [23:48] AAA_awright: 0.3.0 does it too, I wonder what's going on here [23:49] mikegerwitz: AAA_awright: Do you have any other distros installed? [23:50] AAA_awright: Actually yeah, I haven't run this on this system before, lemme try the other Gentoo and my Ubuntu (which I also compile Node.js on) [23:50] AAA_awright: (I forgot about that) [23:50] malkomal_: aaa, can't get this connect-redis to work with new version of express.. sessions don't seem to work [23:51] abraham has joined the channel [23:51] AAA_awright: Yeah it works on the original system I tried it on [23:51] mikegerwitz: AAA_awright: I'm trying to think of anything else besides node that you could test that output with..but most things I know are blocking [23:52] marcello3d: woah, express 2.0 is very different [23:52] ryah: piscisaureus: hi [23:52] marcello3d: apparently 'static' is a reserved keyword they're using? D: [23:52] marcello3d: and by express I mean connect [23:52] AAA_awright: Argh [23:53] AAA_awright: I just recompiled it and now it's doing it again [23:53] whaka: i can't get https://github.com/davglass/nodejs-yui3 to work :( [23:53] marcello3d: and they got rid of gzip...what should I use? D: [23:53] mikegerwitz: AAA_awright: :O [23:53] AAA_awright: Or on this system, newly doing it [23:54] AAA_awright: Ubuntu seems to be doing it too [23:54] AAA_awright: No compile needed [23:54] mikegerwitz: AAA_awright: I wonder why I can't reproduce [23:54] piscisaureus: ryah: pm [23:54] mikegerwitz: AAA_awright: Honestly, your symptoms make more sense. [23:55] mikegerwitz: AAA_awright: Unless all of it's being buffered (all 50k bytes) and still output after node exits [23:55] AAA_awright: Ubuntu is outputting to files it looks like, but terminating early for console? [23:55] AAA_awright: What is going on here [23:55] whaka: i have node 0.5.0-pre and express 2.0.0beeta [23:56] whaka: i think all i need is installed [23:56] mikegerwitz: AAA_awright: Just to make sure it's a buffering issue / something like that, what happens if you add setTimeout( function() {}, 2000 ); at the end of your code, just to give node a reason to keep running for a couple seconds [23:56] AAA_awright: My other Gentoo is outputting to files... [23:56] mikegerwitz: AAA_awright: Does it all output? [23:56] AAA_awright: Yeah [23:56] fisted_ has joined the channel [23:56] mikegerwitz: AAA_awright: O wpm [23:56] warz has joined the channel [23:56] mikegerwitz: oops. completely misplaced my hands. [23:56] whaka: have used debugger and can see that it bombs when server.js is trying stuff like express.bodyDecoder() [23:57] mikegerwitz: AAA_awright: I don't know how the OS determines how much text to buffer...so idk if memory plays a factor [23:57] broofa has joined the channel [23:57] AAA_awright: mikegerwitz: https://github.com/Acubed/sparql-spin-js3 The file in question is lib/parse.js, and on this system "make" isn't outputting the return of that command to the file I want [23:57] AAA_awright: mikegerwitz: What command is that [23:57] mikegerwitz: AAA_awright: hmm? [23:58] mikegerwitz: AAA_awright: Oh you're calling process.exit.. [23:58] mikegerwitz: lemme try that [23:58] AAA_awright: mikegerwitz: I'm outputting about 450k of data [23:58] mikegerwitz: oh [23:58] AAA_awright: Ohhh [23:58] AAA_awright: That could affect things perhaps [23:58] AAA_awright: mikegerwitz: You're totally right I wouldn't expect Node.js to wait for all to output if I've called process.exit [23:58] AAA_awright: I need to send the 0 status though [23:58] AAA_awright: (Though I guess it does that by default) [23:59] AAA_awright: mikegerwitz: What command checks/sets the output buffer size, I thought there was one that did that