[00:03] k1ttty has joined the channel [00:04] CIA-109: node: 03Ben Noordhuis 07isolates * r91697a2 10/ (src/node.cc src/node_isolate.cc): isolates: add _newIsolate() and _joinIsolate() to process object (+5 more commits...) - http://git.io/n79wkg [00:06] smathy has joined the channel [00:07] cl0udy has joined the channel [00:07] _unary has joined the channel [00:08] rektide: this package, node-flume, definitely is not set up for npm. it'll build flume.node, but it's in a build/Release/ subdir... [00:08] rektide: i think i might just need to skeleton out a package.json and put it in that directory and npm link [00:08] rektide: not sure [00:09] thoolihan has joined the channel [00:09] Metal3d has joined the channel [00:10] grom358 has joined the channel [00:10] marcello3d has joined the channel [00:11] Xano has joined the channel [00:11] Metal3d has joined the channel [00:11] blup has joined the channel [00:12] CiRlE has joined the channel [00:12] nerdy_ has joined the channel [00:15] mikeal has joined the channel [00:16] real_ate has left the channel [00:16] marcello3d: is there a built in way to quote a literal string for use in new Regexp()? [00:17] lmorchard has joined the channel [00:17] Fuu has joined the channel [00:17] StanlySoManly has joined the channel [00:18] marcello3d: other than .replace(/(.)/g,'\\$1') [00:19] marcello3d: or better... /(\W)/g [00:19] Fernandos has left the channel [00:20] josh-k has joined the channel [00:20] simenbrekken has joined the channel [00:20] koo0 has joined the channel [00:20] zmbmartin has joined the channel [00:22] Marak has joined the channel [00:22] tilgovi has joined the channel [00:22] tilgovi has joined the channel [00:23] _unary has joined the channel [00:23] Marak: yo ryah pquerna have you tried: "telnet jitsu.com" or ""nc jitsu.com 23" ? [00:23] Marak: node.js signup form magic! [00:24] tilgovi has joined the channel [00:24] tilgovi has joined the channel [00:24] waterhead has joined the channel [00:24] r1ngzer0 has joined the channel [00:26] marcello3d: Marak: I tried it, but the splash screen animation is so slow D: [00:26] subbyyy has joined the channel [00:26] gut4 has joined the channel [00:26] marcello3d: and the email entering UI doesn't support arrow keys [00:26] ixti has joined the channel [00:26] tilgovi has joined the channel [00:26] tilgovi has joined the channel [00:26] EyePulp: Marak: that's pretty darn cool. [00:26] tazrover has joined the channel [00:27] gtramontina has joined the channel [00:27] rchavik has joined the channel [00:28] Marak has joined the channel [00:29] Marak: oops internet [00:33] tih-ra has joined the channel [00:34] shripadk: Marak: awesome :D [00:35] shiawuen has joined the channel [00:36] shripadk: telnet jitsu.com reminded me of this: telnet towel.blinkenlights.nl [00:37] skm has joined the channel [00:38] eviltwin_ has joined the channel [00:39] average_skier has joined the channel [00:39] Juan77 has joined the channel [00:39] ryah: Marak: fancy [00:39] kmiyashiro_ has joined the channel [00:40] shripadk: gtg! cya :) [00:40] Marak: ryah: :-) kicking it with the web 0.0 signup form [00:40] bingomanatee_ has joined the channel [00:41] cl0udy has joined the channel [00:42] diogogmt has joined the channel [00:43] bingomanatee_: I have a problem in which I have to squeeze timeline notes AS CLOSE TO their actual start plaint as possible, but they must in actuality be locked in a grid. i.e., I have a grid of "snap points" 0, 10, …. 100 and an irregular set of notes to put in them. [00:43] Emmanuel has joined the channel [00:43] bnoordhuis: Marak: pretty neat [00:44] Marak: thanks bnoordhuis ! :-) [00:44] Marak: my next trick will involve SSH and our CLI tool jitsu :-) [00:44] Marak: give me a few weeks [00:44] rektide: i use npm link to install my current module into my global npm repos [00:44] juanlargo has joined the channel [00:44] rektide: it seems to want to pull all its deps from npm central though [00:44] riven has joined the channel [00:44] riven has joined the channel [00:45] rektide: how do i get npm to pull in as many deps as it can from it's global repos, into node_modules, for a given project? [00:47] jskulski has joined the channel [00:55] mandric has joined the channel [00:57] isaacs has joined the channel [00:57] zmbmartin has joined the channel [00:58] zmbmartin has left the channel [00:58] stagas has joined the channel [00:59] nerdy_ has joined the channel [01:00] Leemp has joined the channel [01:01] piscisaureus_ has joined the channel [01:01] nrajlich has joined the channel [01:02] jacobolus has joined the channel [01:04] ekryski has joined the channel [01:05] JasonSmith has joined the channel [01:08] joshfinnie has joined the channel [01:08] chrisvwebdev has joined the channel [01:08] TooTallNate has joined the channel [01:09] codygray has joined the channel [01:09] Xiphias3 has joined the channel [01:10] tih-ra has joined the channel [01:14] erichynds has joined the channel [01:16] TooTallNate has joined the channel [01:17] abraxas has joined the channel [01:20] Ownatik has joined the channel [01:22] xyznc has joined the channel [01:23] jacobolus has joined the channel [01:23] neoesque has joined the channel [01:24] JesusRosso has left the channel [01:24] codygray has joined the channel [01:25] a_suenami has joined the channel [01:25] _dc has joined the channel [01:25] jeromegn has joined the channel [01:29] asoltys has joined the channel [01:29] iainn has joined the channel [01:29] ncb000gt has joined the channel [01:29] chrisvwebdev has left the channel [01:30] mike5w3c_ has joined the channel [01:32] ovaillancourt: Is there some sort of "utility" module in node that implements all sort of general-use streams? Like a Y stream (2 inputs -> 1 output) or a buffered stream (1 input -> buffer -> 1 pausable output), and stuff like that? [01:32] ovaillancourt: talking about a community module here [01:33] harthur has joined the channel [01:34] indutny: isaacs: sorry, just woke up [01:34] isaacs: indutny: no problem :) [01:34] cody-- has joined the channel [01:34] isaacs: indutny: can you see if your publish problem is gone? [01:34] isaacs: i've been working while you sleep :) [01:36] adambeynon has joined the channel [01:36] msch: hi, where do i find the changelog for v8 3.6.6.11? tried looking in branches/3.6/ChangeLog and trunk/ChangeLog and in node's deps/v8/ChangeLog and there's nothing there [01:39] jacobolus has joined the channel [01:39] kenperkins has joined the channel [01:43] indutny: isaacs: haha, sorry, but I can't do it right now [01:43] isaacs: indutny: np [01:43] indutny: isaacs: that was reported by @arikon [01:43] isaacs: indutny: yeah, he's away as well [01:43] indutny: isaacs: I'll reach you as soon as I'll be able to contact him [01:43] isaacs: sure. [01:44] indutny: isaacs: thank you for fixing that :) [01:44] isaacs: np [01:45] isaacs: the issue is that there are some packages with old invalid data, so they can't be updated. i tried to have some code that tried to fix it when you post an update, so i don't have to fix them by hand, but that broke some other stuff. [01:45] zemond has joined the channel [01:45] zemond: wtf is this [01:46] gavin_huang has joined the channel [01:47] indutny: isaacs: oh, couchdb migrations [01:47] indutny: isaacs: we've used version field when I was working on one big couchapp project [01:47] indutny: isaacs: but that produceses a lot of legacy code [01:47] indutny: :( [01:48] indutny: Y U don't have a perfect db [01:48] isaacs: haha [01:50] langworthy has joined the channel [01:51] forzan has joined the channel [01:51] isaacs: mmalecki: you around [01:51] isaacs: ? [01:52] mmalecki: isaacs: yes [01:52] isaacs: mmalecki: hey. so, how would you feel if fstream.DirReader just skipped over sockets? [01:52] isaacs: i'm trying to think of a case where you'd wanna read a dir and see the sockets in it [01:53] mmalecki: isaacs: makes sense to me. recreating them and making them stale is idiotic. [01:53] isaacs: well, you can't recreate them in node [01:53] isaacs: without doing server.listen() and then forcibly terminating it ;) [01:53] isaacs: which is pretty awful [01:53] mmalecki: there goes your answer :) [01:54] isaacs: since the ostensible purpose of fstream is to support piping into and out of tarballs, i think just pretending sockets don't exist is fine. [01:54] isaacs: tar doesn't even have a way to express them [01:54] isaacs: ok, cool. that should fix the issue you found at the source, then [01:54] mikeal has joined the channel [01:55] mmalecki: isaacs: can I write the patch :) ? [01:56] r04r has joined the channel [01:56] isaacs: mmalecki: it's almost done [01:56] mmalecki: isaacs: ok, thanks :) [01:57] isaacs: mmalecki: https://github.com/isaacs/fstream/commits/master [01:58] mmalecki: isaacs: win! [01:58] mmalecki: isaacs: thanks for fixing it :) [02:00] isaacs: np [02:00] isaacs: that was a good find [02:00] r04r has joined the channel [02:00] r04r has joined the channel [02:01] trevorsheridan has joined the channel [02:02] mmalecki: isaacs: can I close https://github.com/isaacs/fstream/pull/3 or has it some special meaning? [02:02] CIA-109: node: 03Bert Belder 07works * r780e124 10/ readme.txt : Placeholder to keep bogus tag from reappearing - http://git.io/1qPMNQ [02:02] CIA-109: node: 03Bert Belder 07all-tests-passed * r780e124 10/ readme.txt : Placeholder to keep bogus tag from reappearing - http://git.io/1qPMNQ [02:03] ChaoWang has joined the channel [02:03] mmalecki: how'd these tags reappear? [02:04] criswell has joined the channel [02:05] ramitos has joined the channel [02:05] jacobolus has joined the channel [02:06] r04r has joined the channel [02:08] larsschenk has joined the channel [02:08] larsschenk has left the channel [02:11] JakeyChan has joined the channel [02:11] r04r has joined the channel [02:12] isaacs: mmalecki: what tags? [02:13] Vertice has joined the channel [02:13] mmalecki: isaacs: latest node commits: node: Bert Belder all-tests-passed * r780e124 / readme.txt : Placeholder to keep bogus tag from reappearing - http://git.io/1qPMNQ [02:13] isaacs: right [02:13] isaacs: i don't get it [02:14] jspiros has joined the channel [02:14] mmalecki: even merging some old branch shouldn't reintroduce these tags, I think [02:15] JCS0 has joined the channel [02:15] JCS0 has left the channel [02:15] JCS0 has joined the channel [02:15] JCS0 has left the channel [02:16] josephg has joined the channel [02:16] Squeese has joined the channel [02:16] r04r has joined the channel [02:16] r04r has joined the channel [02:17] kazupon has joined the channel [02:19] heavysixer has joined the channel [02:21] r04r has joined the channel [02:21] replore_ has joined the channel [02:21] replore has joined the channel [02:22] dshaw_ has joined the channel [02:25] mdaisuke has joined the channel [02:26] r04r has joined the channel [02:26] minerale has joined the channel [02:27] JaKWaC_ has joined the channel [02:27] TN has joined the channel [02:27] grampajoe has joined the channel [02:27] JaKWaC_ has joined the channel [02:28] fearphage has joined the channel [02:28] fearphage has joined the channel [02:28] rachet has joined the channel [02:29] jacobolus has joined the channel [02:30] rwaldron has joined the channel [02:30] r04r has joined the channel [02:31] rick-_ has joined the channel [02:31] JaKWaC has joined the channel [02:32] EyePulp has joined the channel [02:32] ciro_nunes has joined the channel [02:32] JaKWaC has joined the channel [02:32] wbednarski has joined the channel [02:33] grampajoe has joined the channel [02:36] r04r has joined the channel [02:38] JaKWaC_ has joined the channel [02:38] ryanj has joined the channel [02:38] ryanfitz has joined the channel [02:38] neoesque has joined the channel [02:39] piscisaureus_ has joined the channel [02:41] niftylettuce: Node.js easter egg website http://easteregg.in [02:41] alejandromg has joined the channel [02:41] dthompso991 has joined the channel [02:42] jon-_ has joined the channel [02:42] frabcus has joined the channel [02:44] lorfds has joined the channel [02:44] lorfds: anyone have db suggestions for building a web scraping app? [02:44] lorfds: mondodb? [02:44] lorfds: mongo [02:45] noderjs has joined the channel [02:46] isaacs has joined the channel [02:48] edwardw has joined the channel [02:48] edwardw has left the channel [02:48] Ryan___ has joined the channel [02:49] SteveDekorte has joined the channel [02:51] noderjs has joined the channel [02:54] grampajoe has joined the channel [02:55] joshgillies has joined the channel [02:56] jtgiri_ has joined the channel [02:58] boehm has joined the channel [02:59] deedubs: niftylettuce: bwahahaha [02:59] JakeyChan_ has joined the channel [02:59] deedubs: 'nifty' [02:59] niftylettuce: there is another egg on the site, run out of credits much xD? [03:00] baudehlo1 has joined the channel [03:01] wao: lorfds: depends on structure u plan to [03:01] wao: lorfds: for scrapping ill advice couch, because versioning [03:02] maxogden: couch versioning isnt persistent [03:02] criswell has joined the channel [03:03] Ownatik has joined the channel [03:04] maxogden: e.g. the revisions arent supposed to be used for application development. they are there to resolve replication conflicts [03:15] kerang has joined the channel [03:15] perezd has joined the channel [03:16] astropirate has joined the channel [03:16] Leemp: Anyone awake that is familiar with Weld or JSDOM? (https://github.com/hij1nx/weld) [03:21] frabcus has joined the channel [03:24] mdel has joined the channel [03:24] boltR has joined the channel [03:25] prettyrobots has joined the channel [03:27] tazrover has joined the channel [03:29] xeodox has joined the channel [03:30] xeodox: Do I ever need a queue when I'm using node.js? Why/why not? (I can just make it asynchronous..right? So it sorta has a queue built in...) [03:33] criswell has joined the channel [03:33] RobWC has joined the channel [03:34] maxogden: xeodox: async !== queue. the best practice is to write your code using Stream [03:34] xeodox: why does async !== queue? [03:34] xeodox: I can let things run in the background... [03:34] dr0id has joined the channel [03:34] xeodox: whats wrong with that? [03:34] lmorchard has joined the channel [03:34] maxogden: xeodox: if you wanted to make a million http requests and you queued up 1 million all at once your server would run out of memory and fall over [03:35] maxogden: xeodox: you would need to implement a queue that progresses through the requests in chunks that your server can handle [03:35] xeodox: oh [03:36] maxogden: but thats what Stream is good for [03:38] xeodox: node-stream? [03:39] xeodox: maxogden: I just asked a stack overflow question on this haha : http://stackoverflow.com/questions/8440758/how-come-my-node-js-hangs-when-i-hold-down-the-refresh-button [03:39] maxogden: no the Stream API in core [03:39] JaKWaC has joined the channel [03:39] maxogden: http://nodejs.org/docs/v0.6.3/api/streams.html [03:40] joshfinnie has joined the channel [03:40] jsurfer has joined the channel [03:40] xeodox: oh wow…what is "Stream?" is there a tutorial on how to use it? [03:42] maxogden: streams are kind of the whole point of node [03:42] maxogden: xeodox: http://docs.nodejitsu.com/articles/advanced/streams [03:43] xeodox: maxogden: why do i need stream again? [03:43] xeodox: why not just use a queue? [03:43] maxogden: there are probably modules that are easier to use than writing it using stream [03:43] maxogden: i am just letting you know about a fundamental construct that everything in node uses [03:43] xeodox: oh i see [03:44] xeodox: thanks [03:45] dgathright has joined the channel [03:46] zmbmartin has joined the channel [03:47] zmbmartin has left the channel [03:47] Draco_ has joined the channel [03:48] jesusabdullah: Leemp: I am familiar with weld and jsdom. What's up? [03:49] SirFunk has joined the channel [03:50] Leemp: jesusabdullah: Well i am just having some basic.. conceptual problems, with all the examples i've seen thus far heh. A few pointers should go a long way. (Keep in mind, i am a JS noob, which contributes to my lack of understanding) [03:50] Leemp: jesusabdullah: So, in an example like this, http://blog.nodejitsu.com/micro-templates-are-dead/weld-example.js How would you.. "render" the data? [03:50] jesusabdullah: ah [03:51] Leemp: Seems every example i've found uses the 0.2.0 jsdom.env() method, which uses the callback [03:51] jesusabdullah: How I do it is, this: [03:51] jesusabdullah: First, say, create an element to pass around: [03:51] jesusabdullah: var div = window.createElement("DIV") [03:51] jesusabdullah: or some such [03:51] jesusabdullah: and then [03:51] jesusabdullah: div.innerHTML = myTemplate; [03:51] jesusabdullah: where myTemplate is a string of html [03:52] jesusabdullah: Then, weld your stuff [03:52] jesusabdullah: and then, output = div.innerHTML; [03:52] jesusabdullah: and just reuse that div over and over [03:52] Leemp: Ah, so you don't even use jsdom.env() ? [03:52] jesusabdullah: Oh no, you use jsdom.env! [03:53] Leemp: So, what you're talking about is taking place inside the callback? I guess i am still missing something (or everything heh) [03:53] jesusabdullah: jsdom.env("", [ jquerySource /* if you want it */ ], function (err, window) { [03:53] jesusabdullah: So now we're in the callback [03:53] jesusabdullah: If there's an error, we can deal with it like, [03:53] Leemp: I'm just used to "normal" template languages. console.log('My output! '+ my_lang.render(template, data)); [03:54] jesusabdullah: if (err) { throw err; } [03:54] jesusabdullah: Did you say that you've done client-side js much? [03:54] jesusabdullah: Because, now, you have access to a window object, and that's exactly what you get if you're in the browser [03:54] Leemp: Nope, unfortunately. I'm just a purist at heart, and Weld sounds very nice. However, i am having trouble setting up even a basic hello world app with nodejs + weld heh [03:55] jesusabdullah: Here, let's see if I can gist one up. [03:55] fbartho has joined the channel [03:55] Leemp: jesusabdullah: Huge thanks. [03:55] meandi has joined the channel [03:55] kk has joined the channel [03:56] r04r has joined the channel [03:56] Leemp: jesusabdullah: My confusing seems to be two fold. #1, outputting the data (which you are answering), and #2: how the hell to integrate that callback with some app of mine [03:57] ovaillancourt: is there a reason why cluster works only have a stdin but don't have stdout and stderr? [03:57] ovaillancourt: *cluster workers [03:58] clu3 has joined the channel [03:59] lyte_ has joined the channel [03:59] patcito has joined the channel [04:00] ovaillancourt: ok shame on me :| forget my question [04:01] r04r has joined the channel [04:03] jesusabdullah: Leemp: First, that's an old example. Weld no longer uses jquery: https://github.com/hij1nx/weld has better questions [04:06] r04r has joined the channel [04:06] r04r has joined the channel [04:07] isaacs has joined the channel [04:09] towski has joined the channel [04:09] dr0id has joined the channel [04:09] Leemp: jesusabdullah: It has jqeury in every example no? [04:13] zackattack has joined the channel [04:14] jesusabdullah: Leemp: https://gist.github.com/1450133 [04:15] jesusabdullah: Leemp: Yes, the example is old. [04:15] jtsnow has joined the channel [04:15] r04r has joined the channel [04:15] corren has joined the channel [04:16] Leemp: jesusabdullah: Amazing :D. And i'm glad to hear it's sane, normal, etc, to use weld without jquery. I wasn't too fond of the idea of putting client code in my server heh [04:16] jesusabdullah: Leemp: You may want to try https://github.com/flatiron/plates [04:16] jesusabdullah: Leemp: Keep in mind, for more advanced cases you will need to write custom aliases, and jquery is useful there [04:17] BillyBreen has joined the channel [04:17] Leemp: jesusabdullah: Do you use jsdom for any large server projects? [04:17] skm has joined the channel [04:18] jesusabdullah: Leemp: docs.nodejitsu.com is generated using client-side welds [04:18] dr0id has joined the channel [04:18] jesusabdullah: er, server-side welds [04:18] vvcephei has joined the channel [04:18] Leemp: So, it's generally considered "fast enough" these days? [04:18] jesusabdullah: well [04:18] jesusabdullah: not for dynamic loads. [04:19] jesusabdullah: Weld might be *the* slowest template engine on the browser, and jsdom is nowhere near as performant as a webkit dom [04:19] maxogden: its cool i only use node to look cool on github [04:19] jesusabdullah: but if you're smart about it (ie, cache templates, etc.) then it doesn't really matter [04:20] jesusabdullah: Basically, if templates are your bottleneck then you have bigger problems than choosing the fastest template engine [04:20] Marak: Leemp: we use jsdom a bunch, but never in response to HTTP requests [04:20] kriszyp3 has joined the channel [04:21] r04r has joined the channel [04:21] Leemp: Agreed [04:21] jesusabdullah: jsdom does rock. [04:21] AnthonyCat has joined the channel [04:21] jesusabdullah: I can web scrape with it from the command line :) [04:21] Leemp: I was just curious if it was perhaps, not mature enough for real servers. That's all :) [04:21] jesusabdullah: https://github.com/jesusabdullah/jquery-cli [04:23] jesusabdullah: tj has one too [04:23] AnthonyCat: How do I set the NODE_ENV flag? [04:23] jesusabdullah: AnthonyCat: on the command line? [04:23] AnthonyCat: I guess so. I don't know what it is [04:23] joshkehn has joined the channel [04:23] jesusabdullah: josh@onix:~$ NODE_ENV="development" [04:23] jesusabdullah: josh@onix:~$ echo $NODE_ENV [04:23] jesusabdullah: development [04:23] jesusabdullah: josh@onix:~$ [04:24] joshkehn has left the channel [04:24] jesusabdullah: Like-a that [04:24] AnthonyCat: ah ok. Thanks [04:24] jesusabdullah: Yeah, no sweat! [04:24] AnthonyCat: also, what is a good web sockets library? I'm trying out socket.io, is that any good? [04:25] jesusabdullah: Yeah, it's not bad [04:25] jesusabdullah: It's the de facto standard [04:25] AnthonyCat: ko [04:25] jesusabdullah: real-world stuff runs on it [04:25] AnthonyCat: ok. cool. What real world stuff? [04:25] jesusabdullah: learnboost's site, for one [04:26] jesusabdullah: and browserling and nodejitsu both use dnode over socket.io for websocket communication [04:26] r04r has joined the channel [04:26] r04r has joined the channel [04:26] jesusabdullah: there's a new one called sockjs or some such that's supposed to be more lightweight if you're not a fan of some of socket.io's newer extra features [04:26] jesusabdullah: like built-in redis pubsubbery [04:27] jesusabdullah: but yeah, I'd just as soon use socket.io [04:27] jesusabdullah: I'm not very principled. :P [04:28] AnthonyCat: ah cool. I'll stick with socket.io and might give socks a try one day. Thanks. node.js few! [04:28] AnthonyCat: ftw* [04:28] monokrome has joined the channel [04:28] jesusabdullah: *nod* [04:29] pixel13 has joined the channel [04:30] kerang: how should one go about voting for a pull request to be merged to a master? there are many pull requests that are pretty much ignored by project authors (even after the person says it will be merged) [04:30] willwh: slap them [04:31] kerang: if there's a github slap button.. i will :) [04:31] pixel13 has left the channel [04:31] r04r has joined the channel [04:32] kerang: popular projects like vows, cradle, etc.. all have abandoned pull requests [04:35] PyroPete1 has joined the channel [04:35] idefine has joined the channel [04:36] jesusabdullah: kerang: Say @dudesname basically, or fork it yourself [04:36] r04r has joined the channel [04:36] r04r has joined the channel [04:37] kerang: jesusabdullah: that doesn't solve the problem though.. would rather have the master have all the fixes and published to npm registry [04:38] jesusabdullah: kerang: Or, you become friends with the maintainer and get them to add you to the repo [04:38] jesusabdullah: and npm registry [04:39] max_ has joined the channel [04:39] jesusabdullah: For example, nodejitsu has commit and publish access to vows [04:39] jtsnow has joined the channel [04:39] jesusabdullah: Or, at least, our ceo does [04:39] kerang: jesusabdullah: :) .. will try to befriend :p .. github needs "i want to be your friend" button [04:39] jesusabdullah: cause we use vows a lot internally, so it made sense [04:40] tonymilne has joined the channel [04:40] kerang: is there any tool that generates the top 50 node.js modules with the most open pull requests? [04:42] emostar has joined the channel [04:42] emostar: is there a way to get a package.json file to recognize command line arguments? [04:43] perezd has joined the channel [04:43] emostar: i.e. how do i put 'npn install mongodb —mongodb:native in the package.json? [04:43] kerang: i often find someone creating a nifty module then move on to the next exciting thing [04:43] r04r has joined the channel [04:44] adamstantonvan has joined the channel [04:46] boltR has joined the channel [04:46] amigojapan has joined the channel [04:46] jesusabdullah: kerang: You could ping npm to iterate through every module, and then for the ones that had links to github, ping github's api for whatever you can find [04:46] jesusabdullah: kerang: but it would take a long time to run [04:47] kerang: jesusabdullah: won't make any difference if the module maintainers are busy [04:47] jesusabdullah: Well, typically I find that modules are a bimodal deal [04:47] jesusabdullah: that is [04:47] jesusabdullah: some modules are written as experiments, "just to see what it would be like" [04:47] jesusabdullah: and a lot of those end up not being very useful [04:48] jesusabdullah: and so aren't kept updated [04:48] jesusabdullah: Other times, enough people depend on it that (usually) it's kept going long-term [04:48] grom358: is there a way I can block waiting for an event to take place? [04:48] r04r has joined the channel [04:48] r04r has joined the channel [04:48] grom358: http://pastebin.com/Atv9g9Km [04:48] bartt has joined the channel [04:49] broofa has joined the channel [04:49] jesusabdullah: I mean, there are the odd cloudheads and twitter libs, but there are also tons of examples of reliable, continually-maintained node.js libs [04:50] jesusabdullah: I do feel your pain though with the checked-out authors though [04:50] jacobolus has joined the channel [04:50] jesusabdullah: but yeah, in the end, all you can really do is convince the author to cooperate or fork it yourself :/ [04:51] ditesh|cassini has joined the channel [04:53] NoAnyLove has joined the channel [04:53] r04r has joined the channel [04:54] rohitcolinrao has joined the channel [04:54] kerang: jesusabdullah: maybe this should be discussed in the next nodeup [04:54] AnyLov has joined the channel [04:54] rohitcolinrao: sup folks.. .new to node [04:55] hotroot has joined the channel [04:55] rohitcolinrao: anyone here have any actual websites up and running for the world to see all done in node? [04:55] hotroot: express.js has multiple examples on their site [04:55] ryah: rohitcolinrao: klout.com [04:55] ryah: rohitcolinrao: uber.com [04:56] rohitcolinrao: klout.com is all node/js? [04:56] luoluoluo has joined the channel [04:56] dgathright has joined the channel [04:56] rohitcolinrao: crazy [04:56] ryah: klout is all node afaik [04:56] rohitcolinrao: what is afaik? [04:56] grom358: afaik == As far as I know [04:57] dreamdust has joined the channel [04:57] rohitcolinrao: ah gotcha [04:57] hotroot: Anyone know how to fix not being able to run node from the command line on fedora? [04:58] r04r has joined the channel [04:58] hotroot: e.g I can't just "node javascript.js" it says it's not a command [04:58] hotroot: And I'm not sure why because it worked before [04:58] dreamdust: @hotroot: Needs to be in your PATH / .bashrc / ~/.profile [04:59] hotroot: What's the install path? It might have got deleted actually [04:59] jesusabdullah: kerang: Possibly. [04:59] jtsnow has joined the channel [04:59] AnyLov: Your system is Linux or Windows? [05:00] hotroot: Linux [05:00] hotroot: Fedora 16 [05:00] kerang: jesusabdullah: atm we have about a dozen forks of such projects, basically waiting for pull requests to be merged, getting silly really [05:00] satyr has joined the channel [05:00] AnyLov: I'm sorry, I use Windows, and the msi install package is very convenient [05:01] rohitcolinrao: i'm on a mac and homebrew gave me pretty much a one line install [05:01] dreamdust: @hotroot: Find where you installed node [05:01] dreamdust: then do [05:02] dreamdust: export PATH=$PATH:/opt/node/bin [05:02] baudehlo has joined the channel [05:02] cl0udy has joined the channel [05:02] rohitcolinrao: anylov i thought node wasn't ported to windows yet, or are you running a vm? [05:02] kerang: jesusabdullah: btw, is dominictarr a nodejitsu ninja? he has gazillions of node modules right? how does he scale himself to maintain that many projects? [05:02] dreamdust: except make sure it points to where /node/bin is actually on your system [05:02] dnjaramba has joined the channel [05:02] hotroot: Can't remember where I installed node, I just recovered this parition [05:02] r04r has joined the channel [05:03] gerard0 has joined the channel [05:03] hotroot has left the channel [05:04] hotroot has joined the channel [05:05] jtr__ has joined the channel [05:05] rektide: anyone know what needs to be done to properly unpack these values? https://github.com/simplereach/node-flume/blob/master/src/flume.cpp#L121 [05:05] hotroot: I'll just do a fresh install, lol [05:07] ganjahtronic has joined the channel [05:07] r04r has joined the channel [05:07] rohitcolinrao: @rektide, what kind of extension is cpp? [05:08] rohitcolinrao: nvrmind [05:09] rohitcolinrao: guess i've never seen a c++ file before [05:09] dexter_e has joined the channel [05:09] NoAnyLove has joined the channel [05:10] satyr has joined the channel [05:12] willwhite has joined the channel [05:12] patcito has joined the channel [05:12] r04r has joined the channel [05:13] sandy__ has joined the channel [05:15] max_: anyone here use calipso cms [05:17] r04r has joined the channel [05:18] dshaw_ has joined the channel [05:22] rwaldron has joined the channel [05:23] r04r has joined the channel [05:23] rohitcolinrao has joined the channel [05:25] felixge has joined the channel [05:25] felixge has joined the channel [05:26] rohitcolinrao: haven't tried calipso yet [05:27] rauchg has joined the channel [05:27] Draco_ has joined the channel [05:27] cjm has joined the channel [05:28] r04r has joined the channel [05:29] rohitcolinrao: anyone here have a reason to still use RoR or another framework/platform given the possibilities with node? [05:31] ekryski has joined the channel [05:33] r04r has joined the channel [05:33] sh1mmer has joined the channel [05:34] descipher_ has joined the channel [05:35] stonebranch has joined the channel [05:36] isaacs has joined the channel [05:40] dshaw_: Anyone having issues with long running timing issues with setInterval? [05:40] hotroot: How long running? [05:41] hotroot has left the channel [05:41] secoif has joined the channel [05:41] Ryan__ has joined the channel [05:42] dshaw_: constantly, every 15 seconds [05:43] kishoreyekkanti has joined the channel [05:43] davidbanham has joined the channel [05:44] dshaw_: Over time that interval is becoming unreliable. Occasionally reporting fails for a couple cycles. [05:45] skylamer` has joined the channel [05:48] hotroot has joined the channel [05:49] hotroot: I ran into this problem before, can't remember what the fix was. In fedora 16 I ./configure and it says g++ or c++ are not found, icpc is not found, c++ is not found but I have gcc and that stuff installed [05:50] codygray has joined the channel [05:51] hotroot: nvm [05:52] EvRide has joined the channel [05:53] dexter_e has joined the channel [05:54] idefine: is it possible to have winston dump out the json message to the console - instead of it just saying [object Object] [05:55] idefine: hmm, i'll ask in #nodejitsu [05:55] ryanrolds: Wrap it in JSON.stringify()? [05:55] idefine: ryanrolds: it is wrapped in JSON.stringify in the console transport [05:56] Me1000 has joined the channel [05:58] ryanrolds: Odd, something is manhandling it. JSON.stringify({..}) wont return [object Object]. [05:59] secoif has joined the channel [05:59] hotroot: What does an array element contain if it hasn't been defined? undefined I assume, not null? [05:59] brianc has joined the channel [06:00] baudehlo1 has joined the channel [06:01] isaacs has joined the channel [06:01] nadirvardar has joined the channel [06:01] lyte has joined the channel [06:01] lyte has joined the channel [06:02] ryanrolds: v: var a = new Array(10); console.log(a[9]); [06:02] ryanrolds: Ugh [06:03] ryanrolds: v8: var a = new Array(10); console.log(a[9]); [06:03] ryanrolds: I'm too stupid to use the bot. [06:03] ryanrolds: hotroot: Should be undefined. [06:03] hotroot: kk [06:04] hotroot: in which case if (array[5]) should be false, right? [06:04] russfrank: >> true; [06:04] purr: russfrank: (boolean) true [06:04] russfrank: >> var (new Array(10))[4] [06:04] purr: russfrank: SyntaxError: Unexpected token ( [06:04] russfrank: >> var new Array(10)[4] [06:04] purr: russfrank: SyntaxError: Unexpected token new [06:05] russfrank: oh lol. [06:05] russfrank: >> new Array(10)[4] [06:05] purr: russfrank: undefined [06:05] ryanrolds: >> var a = new Array(10); console.log(a[9]); [06:05] purr: ryanrolds: undefined; Console: undefined [06:05] russfrank: >> ~~(new Array(10)[4]) [06:05] purr: russfrank: (number) 0 [06:05] russfrank: >> !!(new Array(10)[4]) [06:05] purr: russfrank: (boolean) false [06:05] russfrank: there we go. [06:06] russfrank: hotroot: yes. [06:06] hotroot: lol, thank you [06:06] ryanrolds: Don't the bot(s) expose a couple interpreters? [06:08] SamuraiJack has joined the channel [06:08] willwhite has joined the channel [06:10] SamuraiJack has joined the channel [06:10] CiRlE has joined the channel [06:11] bosphorus has joined the channel [06:14] satyr has joined the channel [06:14] pixel13 has joined the channel [06:15] pixel13 has left the channel [06:17] garrensmith has joined the channel [06:19] joestein has joined the channel [06:20] saikat has joined the channel [06:23] zackattack has joined the channel [06:24] jldbasa has joined the channel [06:25] amigojapan has joined the channel [06:25] felixge has joined the channel [06:25] felixge has joined the channel [06:25] hotroot: There seem to be 3 SQlite libraries to choose from in node, any recommendations? [06:25] jldbasa has left the channel [06:25] astropirate: hotroot, the one with more github watches ofcourse [06:25] hotroot: lol [06:26] jgautier has joined the channel [06:26] JaKWaC has joined the channel [06:27] anoop has joined the channel [06:27] joshsmith has joined the channel [06:28] lyte_ has joined the channel [06:28] nadirvardar has joined the channel [06:31] maletor has joined the channel [06:31] AndreasMadsen has joined the channel [06:31] jjd has joined the channel [06:34] HT has joined the channel [06:40] tonymilne has left the channel [06:41] descipher has joined the channel [06:42] otakutomo has joined the channel [06:45] CIA-109: node: 03Ryan Dahl 07isolates * r2ba80a0 10/ (6 files): process_title belongs to the process not thread - http://git.io/GlEGsw [06:45] CIA-109: node: 03Ryan Dahl 07isolates * r1311017 10/ (4 files): isolates have globals stored in struct globals - http://git.io/3UJi5w [06:50] corren has joined the channel [06:51] Luffha has joined the channel [06:54] jj0hns0n has joined the channel [06:55] Edy has joined the channel [06:55] Edy has joined the channel [06:57] jacobolus has joined the channel [07:00] baudehlo has joined the channel [07:02] twolfson has joined the channel [07:07] abdel_m has joined the channel [07:08] braoru has joined the channel [07:10] redir has joined the channel [07:10] secoif has joined the channel [07:11] stonebranch has joined the channel [07:11] secoif has joined the channel [07:12] jbpros has joined the channel [07:14] dexter_e_ has joined the channel [07:14] secoif has joined the channel [07:14] secoif has joined the channel [07:15] secoif has joined the channel [07:15] kmiyashiro has joined the channel [07:17] lyte has joined the channel [07:17] lyte has joined the channel [07:19] clu3 has joined the channel [07:20] mandric has joined the channel [07:20] zomg: Oh fun, now I'm getting CPU usage alerts because my node app is going so high on CPU :| Watching top it seems to go to 100'ish every 7-9 seconds. Only if I knew what it's doing when it hits that... [07:23] simenbrekken has joined the channel [07:23] base698 has joined the channel [07:26] zomg: Let's disable the entire express/socket.io portion of my app and see what kind of an impact that has...Should at least give some insight to who is the culprit I hope... [07:26] zomg: Hah, no effect, so it's not that :P [07:26] anildigital has joined the channel [07:27] zomg: I heard socket.io can do stupid shit and make CPU spike but seems that's not it. Not with my handful of users anyway I guess [07:27] bshumate has left the channel [07:28] NetRoY has joined the channel [07:28] martin_sunset has joined the channel [07:29] lunatic has joined the channel [07:31] mike5w3c_ has joined the channel [07:34] neshaug has joined the channel [07:36] martin_sunset: Hi guys,I need to implement an oauth2 server, latest draft if possible. What's the recommended node model for that please? [07:36] towski has joined the channel [07:36] Margle has joined the channel [07:37] Morkel has joined the channel [07:37] jjd has joined the channel [07:39] otakutomo has joined the channel [07:39] triptec has joined the channel [07:43] gut4 has joined the channel [07:44] k1ttty has joined the channel [07:44] lyte_ has joined the channel [07:46] ryan_stevens has joined the channel [07:47] iRoj has joined the channel [07:50] replore_ has joined the channel [07:50] petrjanda has joined the channel [07:50] replore has joined the channel [07:50] ph^ has joined the channel [07:51] groom has joined the channel [07:51] ccare has joined the channel [07:52] skylamer` has joined the channel [07:55] zackattack has joined the channel [07:55] ccare has joined the channel [07:55] secoif has joined the channel [07:56] Luffha has joined the channel [07:57] romanb has joined the channel [07:59] patcito has joined the channel [08:00] loob2 has joined the channel [08:02] hipsters_ has joined the channel [08:03] tdegrunt has joined the channel [08:03] Swizec has joined the channel [08:04] mraleph has joined the channel [08:05] `3rdEden has joined the channel [08:05] Esteb has joined the channel [08:05] simenbrekken has joined the channel [08:05] cedeon has joined the channel [08:05] p1d has joined the channel [08:06] wbednars_ has joined the channel [08:07] fangel has joined the channel [08:07] rendar has joined the channel [08:08] neoesque has joined the channel [08:08] lorfds: how do i force a node script to die [08:08] lorfds: i.e. the equivalent of die; in php [08:08] tshpaper has joined the channel [08:09] VesQ: lorfds: process.exit(); [08:09] lorfds: thx [08:09] VesQ: oh wait, no [08:09] VesQ: I mean yes [08:09] VesQ: never mind :D [08:11] josh-k has joined the channel [08:13] mikeal has joined the channel [08:16] thalll has joined the channel [08:17] gut4 has joined the channel [08:17] bosphorus has joined the channel [08:18] zomg: Well this is interesting... I disabled event receiving from servers (which is like most of what my app does) and it still is spiking to 100%CPU... [08:18] tomyan has joined the channel [08:19] kmox83 has joined the channel [08:19] VesQ: zomg: you sure you don't have any big loops or something like that? [08:20] VesQ: sounds like sometimes your app doesn't get to idle [08:20] zomg: Well since the app is mainly reacting to what the servers are sending, it shouldn't be doing almost anything when the server events are not being received [08:20] VesQ: even though it probably could [08:20] zomg: But yeah could be I wrote something dumb [08:20] zomg: Trying to profile and such but it's not really helping right now so I'm just disabling parts of it to see if it has an effect :P [08:20] VesQ: maybe some for-loop that runs without reason. I've done those. [08:21] reid has joined the channel [08:21] VesQ: but I do agree that disabling parts of the app is a valid debugging solution for analyzing resource consumption [08:21] reid has joined the channel [08:21] frabcus has joined the channel [08:22] zomg: Thankfully I made it modular enough doing that doesn't screw it up :D [08:22] gubarez has joined the channel [08:22] VesQ: yeah :) it's those little decisions that you don't think so much when starting to write a new app but give credit when probelms occur [08:23] raphdg has joined the channel [08:23] cosmincx has joined the channel [08:23] base698 has joined the channel [08:23] VesQ: I found that my app was consuming lots of cpu time because when a client connected, I always gave them a randomized name. Turned out that when the amount of users spiked, the loop I did to ensure there wasn't any duplicate names ran a liiittle too long [08:24] VesQ: but that was just a small project I used to test Nodes capabilities [08:24] nephics has joined the channel [08:24] VesQ: thankfully. [08:26] garrensmith has joined the channel [08:27] zomg: Heh [08:27] zomg: Yeah this is something I'm working for mostly fun but I'd prefer it didn't cause my VPS to send me CPU usage warnings :P [08:28] tomlion has joined the channel [08:28] djcoin has joined the channel [08:29] VesQ: zomg: I tend to grep for while-loops and for-loops when debugging high CPU load. Have you tried yourself? [08:29] VesQ: tried it* [08:30] zomg: Didn't yet [08:31] VesQ: I suggest you do [08:31] VesQ: they've turned out to be the most CPU-consuming things I've encountered [08:32] senorpedro has joined the channel [08:32] zomg: Yeah [08:32] augustl has joined the channel [08:32] zomg: The only problem with that is that in my app the most fors and such are in the protocol parser for the server communications [08:32] zomg: Which I disabled for most part, which had almost no effct [08:32] uchuff has joined the channel [08:32] VesQ: you might be able to replace some of those loops with callbacks or something alike [08:32] frabcus has joined the channel [08:33] zomg: Have you used node --prof ? [08:33] VesQ: nope, didn't even know there was that flag [08:33] jbpros has joined the channel [08:33] zomg: Okay [08:33] zomg: The JS percentages in my profiling report aren't even that high so I have no idea why it's doing this [08:33] [AD]Turbo has joined the channel [08:34] zomg: it's spending about half of its time doing an epoll_wait which is essentially idling [08:34] zomg: but it's still spiking [08:34] zomg: and the JS parts aren't even taking that much in total... [08:34] VesQ: huh. That's weird. [08:34] arcanis has joined the channel [08:34] devaholic has joined the channel [08:35] zomg: I suspect it still might be an issue in the protocol parsing even though I rewrote it once already to utilize native buffer methods [08:35] [AD]Turbo: hi there [08:35] zomg: buffer.toString is pretty high on the list [08:36] VesQ: well it stands to reason [08:37] zomg: Disabling 95% of what the server comms stuff does... Let's see if that has any effect. =) [08:37] VesQ: if that doesn't, theres probably something wrong with node itself :D [08:37] zomg: boom 100% cpu even though it shouldn't be receiving or sending any data at all [08:37] jjd has joined the channel [08:37] VesQ: uhh... [08:38] VesQ: does it happen with any other project? [08:38] zomg: Nope [08:38] zomg: I probably wrote something dumb that I haven't realized yet... [08:38] zomg: =) [08:38] VesQ: that's always the most likely answer [08:38] VesQ: try the debugger and set breakpoints to crucial parts [08:39] VesQ: you'll see when the cpu spikes [08:39] whitman has joined the channel [08:39] zomg: The debugger sort of explodes with 0.6.x :( [08:39] level09 has joined the channel [08:39] AndreasMadsen_ has joined the channel [08:39] VesQ: it does? well I'm happy I haven't needed it yet :D [08:39] zomg: And I don't recall it shows CPU use though? [08:40] VesQ: no I didn't think that [08:40] gut4 has joined the channel [08:40] zomg: Protocol parser is not doing anything right now so it's not that which is spiking... [08:40] VesQ: I mean that you'd use `top` to see when the cpu spikes [08:40] zomg: Time to run another --prof :P [08:40] hotroot: Neat, didn't know about --prof, I'll have to try it [08:41] zomg: You'll need some tool to make sense of the v8.log it generates [08:41] zomg: https://github.com/bnoordhuis/node-profiler/tree/nprof [08:41] zomg: This is what I'm using [08:41] hotroot: I'll check it [08:41] newy6 has joined the channel [08:43] mange has joined the channel [08:43] Margle has joined the channel [08:43] shapeshed has joined the channel [08:43] AAA_awright has joined the channel [08:44] secoif has joined the channel [08:45] hotroot: Grr. I hate opening old code, making a small change, and then a bug pops up =/ [08:45] ciju has joined the channel [08:46] hotroot: Everyone's favorite error "Unexpected token )" [08:47] zomg: T_PAAMAYIM_NEKUDATOYIM [08:47] zomg: =) [08:47] zomg: Might've spelled that wrong but in any case people who have worked with PHP oughta know the feeling [08:47] zomg: :D [08:47] hotroot: 0.o [08:48] hotroot: Bah! I barely even changed anything [08:49] zomg: You get that T_... thing in PHP if you misplace a :: [08:49] zomg: Yeah, try guessing that from the error [08:49] satyr has joined the channel [08:49] zomg: Thankfully by now it's been pretty widely documented if you just do a google [08:49] hotroot: lol [08:49] Druid_ has joined the channel [08:50] hotroot: I need an IDE that does auto-paren matching =/ [08:50] ph^ has joined the channel [08:50] hotroot: If I mouse over one, it says where it ends, but blegh [08:52] herbySk has joined the channel [08:54] VesQ: hotroot: windows + notepad++ :D [08:55] hotroot: I'm sure the feature is here in Geany [08:55] hotroot: I've never been so pissed off at a ) -.- [08:55] hotroot: WHERE ARE YOU? [08:55] hotroot: FIGHT ME [08:56] kejun has joined the channel [08:57] zomg: Hmm [08:57] zomg: Does anyone know what is a CEntryStub [08:58] JaKWaC has joined the channel [08:58] zomg: Something related to v8, just wondering [08:58] mpavel has joined the channel [08:59] stonebranch has joined the channel [08:59] riven has joined the channel [08:59] riven has joined the channel [08:59] ben_ has joined the channel [09:00] daGrevis has joined the channel [09:00] salva has joined the channel [09:00] hotroot: Node liez [09:00] booyaa: hotroot: what os? [09:01] baudehlo1 has joined the channel [09:01] hotroot: Or is at least misleading. I forgot a }, not a ), but I guess it doesn't know better [09:01] hotroot: Fedora 16 XFCE 64bit [09:01] ben_ has joined the channel [09:02] booyaa: sorry eating brekkie [09:03] booyaa: ooo not sure i like that behaviour in vim (parens matching) [09:03] booyaa: are you referring to one that highlights the matching parens? [09:04] zomg: hotroot: unexpected ) doesn't necessarily mean you forgot a ) [09:04] booyaa: or parens completion? i.e. you hit ( and it creates the corresponding ) [09:04] hipsters_ has joined the channel [09:04] hotroot: It was just a } I forgot [09:04] zomg: It means the ) was unexpected, the parser didn't expect that paren pair to end there, but something else [09:04] booyaa: vim matches the paren even if they are crossing another parens i.e. ({)} [09:04] booyaa: <-- uses coda, but i'm on a mac [09:04] freewil has joined the channel [09:04] freewil has joined the channel [09:05] ShotgunKlaus has joined the channel [09:05] booyaa: i wonder if c9's editor is any better? keep meaning to set that up locally to see how it compares to coda [09:05] zomg: I doubt it beats vim [09:05] zomg: =) [09:05] booyaa: they've started using vim bindings [09:06] mpavel has left the channel [09:06] zomg: So they're emulating vim like how many others who are more or less failing [09:06] booyaa: i think as a an ide it's > vim. vim's just an editor [09:06] zomg: Suppose it depends on what you need from an ide [09:06] booyaa: c9 has debugger, deployer and commandline [09:06] booyaa: true [09:06] thalll has joined the channel [09:07] zomg: I'm using PhpStorm at work with vim emulator which is pretty decent =) [09:07] ph^ has joined the channel [09:08] Cromulent has joined the channel [09:08] booyaa: zomg: phpstorm does node and/or js? [09:08] hotroot: Wait, you said you use https://github.com/bnoordhuis/node-profiler/tree/nprof to analyze the log... [09:08] hotroot: That isn't an analyzer, it's a profiling addon [09:09] booyaa: man tgif [09:11] jetienne has joined the channel [09:11] Andeye has joined the channel [09:12] hotroot: How do I process the v8.log? [09:13] zomg: booyaa: It does JS yes [09:13] zomg: Not sure if JetBrains has any node specific features on anything [09:13] zomg: hotroot: using the node-profiler things nprof executable [09:13] EvRide1 has joined the channel [09:14] hotroot: ^^ uhh, what? [09:14] hotroot: nprof v8.log? [09:14] zomg: did you install nprof? [09:14] booyaa: brb [09:14] robhawkes has joined the channel [09:14] hotroot: No? [09:15] hotroot: I did node --prof script.js [09:15] zomg: Yes I said you need the tool from the node-profiler github repo [09:15] hotroot: And now I have a very unreadable v8.log [09:16] hotroot: Alright, I'll get it [09:16] Poetro has joined the channel [09:16] mraleph has joined the channel [09:16] Poetro has joined the channel [09:17] hotroot: Alright, installed it [09:20] MrBenn has joined the channel [09:20] messju has joined the channel [09:20] hotroot: Too tired to figure this out, night all [09:21] piscisaureus_ has joined the channel [09:21] hotroot has left the channel [09:22] neilk_ has joined the channel [09:23] jimt_ has joined the channel [09:23] adambeynon has joined the channel [09:23] shapeshed has joined the channel [09:24] galaxywatcher has joined the channel [09:24] Tprice: whats the ebst way to go from string to function? [09:25] zomg: Huh? [09:25] secoif has joined the channel [09:25] secoif has joined the channel [09:26] Tprice: im kinda doing something like var foo = new Function("someObject", "return function() { }")(someObject); [09:26] zomg: Tprice: ...why? [09:26] zomg: =) [09:27] Tprice: it would be for dependencies injection on a module of mine [09:27] zomg: I don't really understand why you'd need to do something like that but okay [09:29] Tprice: its over the net dependencies injection(code) for "node" in a network im building [09:29] Tprice: do a master process can load code into other nodes [09:30] paulwe has joined the channel [09:30] Tprice: so** [09:31] hkjels has joined the channel [09:32] BrianE has joined the channel [09:32] hkjels: What is the easiest solution for using vhosts with node? [09:33] dannyamey has joined the channel [09:33] aslant has joined the channel [09:33] shedinja has joined the channel [09:34] booyaa: nginx? [09:34] booyaa: or you looking for a npm? [09:34] messju: hkjels: i guess something like switch(req.headers['x-forwarded-host']) { ... [09:34] maxogden: node-http-proxy proxytables do it nice and simply [09:34] mattpardee has joined the channel [09:35] devaholic: Tprice whats wrong with npm [09:35] mattpardee has left the channel [09:36] booyaa: we need a search.npmjs.org bot [09:36] hkjels: node-http-proxy looks ok, thank you maxogden [09:36] SoulRaven has joined the channel [09:37] booyaa: does the tags feature work for anyone in search.npmjs.org? [09:37] booyaa: i can't be sure cause i'm getting websensed at work [09:37] booyaa: http://search.npmjs.org/#/_tags/vhost [09:37] doctorm has joined the channel [09:38] zomg: Hrms [09:38] zomg: as far as I can tell, the reason I'm getting CPU spikes is not in my JS code... [09:38] zomg: Running with --prof, and comparing the JS part of the report and *nothing* changes in it after the app had finished initializing [09:38] petrjanda has joined the channel [09:39] zomg: Yet, it still spikes to 100% CPU [09:39] dr0id has joined the channel [09:40] triptec has joined the channel [09:40] AAA_awright has joined the channel [09:41] Nuck: Guys [09:41] Nuck: Holy shit [09:41] Nuck: Redis was ported to Windows by Microsoft devs using LinUV [09:41] Nuck: *LibUV [09:41] Nuck: Can it be more nerdgasm in one sentence? [09:41] vvo has joined the channel [09:41] Nuck: Redis + LibUV [09:41] shiawuen has joined the channel [09:42] Nuck: Admittedly, the "Windows" and "Microsoft" bits are a bit saddening, but LibUV was used to port Redis haha [09:42] triptec has joined the channel [09:43] zomg: What's the big deal with Redis? [09:43] Nuck: Redis is awesome? [09:43] ShotgunKlaus_ has joined the channel [09:43] Nuck: It's friggin fast and crazy simple [09:44] zomg: For doing what? [09:44] zomg: It seemed like another key-value db or something along those lines to me the last time I checked into it [09:44] zomg: Admittedly not that much [09:45] devaholic: key value and pubsub [09:45] Nuck: It is a key-value store, but it's extremely fast and extremely simple, and will soon have clustering as well [09:45] Nuck: It's probably the most popular of the key-value stores [09:47] stisti has joined the channel [09:47] wereHamster: zomg: it's more than just a key-value store, values can not only be simple objects like strings, but also lists and sets [09:47] lzskiss has joined the channel [09:47] ditesh|cassini has joined the channel [09:47] wereHamster: you can push/pop from the lists, do set intersections etc. [09:47] Nuck: wereHamster: That isn't standard in key-value stores? [09:48] zomg: So it's basically an array that's.. a sort of a database? [09:48] zomg: :P [09:48] lzskiss: yo [09:48] wereHamster: Nuck: no. memcache pretty much only supports set/get where key and value are strings. [09:48] Nuck: zomg: Is it queryable? Not really. [09:48] devaholic: ~.^ [09:48] Nuck: Does it index columns? Nope. [09:48] vguerra has joined the channel [09:48] Nuck: wereHamster: Hrm. Glad I used Redis then. [09:48] zomg: Sounds like memcached [09:49] fooba has joined the channel [09:49] wereHamster: zomg: it has *much* more features than memcached [09:49] Nuck: Also it's persistent [09:49] wereHamster: if you need those features, use redis. if not, then don't. [09:49] Nuck: Data is saved to hard drive [09:50] zomg: It sounds like it sits in the uncomfortable zone between a cache and a database [09:50] zomg: :P [09:50] fooba: are there any libs for node that support transactional behaviour? I need to execute several async, but idempotent operations. [09:50] Nuck: zomg: It is in that zone, but it transforms it from uncomfortable to wonderful [09:50] wereHamster: fooba: use Haskell STM ;) [09:51] fooba: wereHamster: or clojure, or scala/java+ akka [09:51] wereHamster: fooba: there you go :) [09:51] zomg: Nuck: dunno, I generally either need a cache or a database [09:51] zomg: but perhaps it has its uses [09:51] stagas has joined the channel [09:52] Nuck: zomg: I need a high-speed persistent data store [09:52] fooba: wereHamster: in fact, i'm currently comparing their concurrency behaviour. i just wanted to give an example of edge cases for node.js. Two banks, running as separated node.js instances [09:52] Nuck: I don't need anything powerful, but I just need to be able to store basic structures [09:52] wereHamster: zomg: sometimes a cache doesn't provide the features, and a database is just too slow. That's the position redis is in. [09:52] Nuck: That's why I picked Redis [09:52] quijote has joined the channel [09:52] shapeshed has joined the channel [09:53] Nuck: I can query it and get a response in under a millisecond [09:53] fooba: but I don't want to build my own TP monitor in node.js [09:53] fooba: ;)= [09:53] Nuck: Which makes my autosuggester work :D [09:53] devaholic: nuck sometimes ... [09:53] zomg: Does anyone know how to get better output from profiling node than --prof and strace? [09:53] Nuck: I just use socket.io to communicate with the server in realtime, then get KEYS *[string]* [09:53] zomg: bnoordhuis probably does but he isn't around =) [09:54] wereHamster: fooba: async transactional behaviour is really hard to do in pure languages. [09:54] geoKe has joined the channel [09:54] wereHamster: sorry, in impure languages [09:54] booyaa: crikey my first two pull requests have been typo fixes :/ [09:54] Nuck: booyaa: As in people correcting your spelling? [09:55] booyaa: nuck, missing words sometimes rewriting paragraphs if they read badly. [09:55] TomY has joined the channel [09:55] Nuck: MAybe you need to slow down a bit ;) [09:55] booyaa: not the grammar police, just don't like ppl walking away from promising projects because the readme.md's a bit flakey [09:55] booyaa: Nuck: ja i know ;) [09:55] shapeshed has joined the channel [09:56] paera has joined the channel [09:56] Nuck: booyaa: Then shouldn't you be thankful for the pull requests? ;) [09:56] booyaa: hahah just seen a "learning nodejs" and the guys is teaching you how to cause ddos using node [09:56] booyaa: that's my kinda tuts [09:57] hellp has joined the channel [09:57] Poetro1 has joined the channel [09:57] Poetro1 has joined the channel [09:57] shapeshed has joined the channel [09:58] geoKe has joined the channel [09:58] styol has joined the channel [10:01] booyaa: hey guys, what licenses do you tend to release code under? [10:01] booyaa: oh and why [10:01] trupppOFF has joined the channel [10:02] fly-away has joined the channel [10:03] cjroebuck has joined the channel [10:04] maxogden: MIT because america [10:04] booyaa: :) [10:04] nuba has joined the channel [10:04] emattias has joined the channel [10:05] dr0id: LPG [10:06] satyr has joined the channel [10:07] LeMike has joined the channel [10:07] torsd has joined the channel [10:09] Nuck: I release shit under IGAF [10:09] Nuck: The license that says "I don't really give a fuck about my code" [10:09] Nuck: because I don't ;D [10:10] johnnywengluu has left the channel [10:12] markwubben has joined the channel [10:12] SocialDeveloper has joined the channel [10:13] SocialDeveloper: Есть кто из России ? НУ или кто нибудь понимает русский? =) [10:13] dob_ has joined the channel [10:13] meso has joined the channel [10:13] Edy: ya nemnogo ;) [10:13] meso_ has joined the channel [10:14] booyaa: http://stackoverflow.com/questions/8440758/how-come-my-node-js-hangs-when-i-hold-down-the-refresh-button [10:14] booyaa: this question lacks useful code example right? [10:14] booyaa: i think th blocking is happening within insertPost, but they guy's keep his sauce sekrit [10:15] SocialDeveloper: Edy я тут впервые ) Совсем не пойму что к чему. Не могу установить socket.io странные ошибки идут... ( node.js хорошо поставился. система Cent OS [10:15] MUILTRFN has joined the channel [10:16] booyaa: jesus christ [10:16] mzx has joined the channel [10:16] booyaa: is SocialDeveloper's text garbling for everyone else? [10:16] mzx has joined the channel [10:16] Edy: he has troubles with setting up socket.io :) [10:16] booyaa: :P [10:17] mzx has left the channel [10:17] Edy: SocialDeveloper: a kokie oshybki? [10:17] booyaa: <-- irc client ain't like that encodnig yo [10:18] Edy: booyaa: get utf8 [10:18] Edy: brb [10:18] SocialDeveloper: Edy npm ERR! Failed unpacking /tmp/npm-1323429376573/1323429379252-0.2552743465639651/tmp.tgz npm ERR! couldn't unpack /tmp/npm-1323429376573/1323429379252-0.2552743465639651/tmp.tgz to /tmp/npm-1323429376573/1323429379252-0.2552743465639651/contents npm ERR! error installing socket.io-client@0.8.7 Error: `tar "-zmvxpf" "/tmp/npm-1323429376573/1323429379252-0.2552743465639651/tmp.tgz" "-o"` npm ERR! error installing socket.i [10:18] SocialDeveloper: Edy вот такие ошибки ) [10:18] mehtryx has joined the channel [10:18] mehtryx has left the channel [10:19] booyaa: brb..putty has utf-8 will see if a session restart fixes it [10:19] tomlion_ has joined the channel [10:21] SocialDeveloper: help me ))) [10:21] booyaa: AW YEAH! [10:21] booyaa: i can see your cyrillican asses! [10:21] booyaa: prolly mispelt it [10:21] booyaa: <-- proper international like benetton [10:22] booyaa: shit even the hungarian hackspace channel looks fab [10:22] Emmanuel has joined the channel [10:22] lzskiss: fab?:) [10:22] SocialDeveloper: booyaa: You're so happy that you can see Russian letters? [10:23] booyaa: totally man! i haven't a clue what you're saying though [10:23] booyaa: kinda why i like twitter and seeing all the different languages people tweet in [10:24] wereHamster: Nuck: unlicense.org :) [10:24] kejun has left the channel [10:24] Nuck: Nah, I usually just do MIT because IDGAF enough to research licenses [10:24] dharmesh has joined the channel [10:25] booyaa: only russian (probably isn't spell this way), but sounds like "cug-zilla"? [10:25] booyaa: only russian phrase i know... i think it means how are you.. [10:25] booyaa: Как дела? [10:26] booyaa: aw shit look i'm writing in cyrillic too! [10:26] booyaa: sorry i'm easily amused [10:28] dexter_e has joined the channel [10:31] dan111 has joined the channel [10:32] fooba has left the channel [10:34] dexter_e has joined the channel [10:35] sylvinus has joined the channel [10:35] Xano has joined the channel [10:36] larsschenk1 has joined the channel [10:36] beevits has joined the channel [10:37] aaronmcadam has joined the channel [10:39] pgte has joined the channel [10:40] larsschenk1 has left the channel [10:40] level09 has joined the channel [10:41] sindresorhus has joined the channel [10:42] ph^ has joined the channel [10:43] passionke has joined the channel [10:46] josh-k has joined the channel [10:49] jimmysparkle has joined the channel [10:49] SocialDeveloper: There are users from Russia? [10:49] dan111 has joined the channel [10:51] pita has joined the channel [10:51] pita: Hi, is there a way to list all loaded modules? [10:51] lzskiss: SocialDeveloper, hungary [10:52] lzskiss: if this is good for u [10:52] lzskiss: :) [10:52] aliem has joined the channel [10:52] jomoho has joined the channel [10:53] swestcott has joined the channel [10:54] zackattack has joined the channel [10:54] dan111 has left the channel [10:59] sylvinus_ has joined the channel [11:01] stagas has joined the channel [11:02] ccapndave has joined the channel [11:02] Blorb has joined the channel [11:03] _baton_ has joined the channel [11:03] dnjaramba has joined the channel [11:04] diogogmt has joined the channel [11:04] hackband has joined the channel [11:05] fermion has joined the channel [11:06] vvo has joined the channel [11:08] __doc__ has joined the channel [11:09] hkjels has joined the channel [11:09] Epeli has joined the channel [11:11] SoulRaven has joined the channel [11:11] SoulRaven has joined the channel [11:11] SoulRaven has joined the channel [11:11] SoulRaven has joined the channel [11:11] k1ttty has joined the channel [11:12] SoulRaven has joined the channel [11:12] kazupon has joined the channel [11:13] tshpaper has joined the channel [11:13] lorfds has joined the channel [11:15] LeMike has joined the channel [11:18] level09 has left the channel [11:19] SoulRaven has joined the channel [11:20] angerman has joined the channel [11:21] angerman has left the channel [11:21] stagas has joined the channel [11:22] dan111 has joined the channel [11:24] adrianmg has joined the channel [11:24] thalll has joined the channel [11:27] adrianmg has left the channel [11:27] Wizek has joined the channel [11:28] cl0udy_ has joined the channel [11:28] hkjels has joined the channel [11:30] adrianmg has joined the channel [11:30] adrianmg has left the channel [11:32] triptec has joined the channel [11:34] dexter_e has joined the channel [11:34] piscisaureus__ has joined the channel [11:37] hellp has joined the channel [11:42] iceice has joined the channel [11:43] igl1 has joined the channel [11:43] iceice: hi [11:43] iceice: has no method 'trim' [11:43] iceice: from what package can i get trim() ? [11:43] iceice: please advice [11:43] iceice: also i need split [11:44] iceice: i have node-0.4.12 node-devel-0.6.3 [11:44] augustl: iceice: split is typically on String.prototype [11:44] augustl: there's no built-in trim afaik [11:44] iceice: so it should be there by default, right? [11:44] augustl: iceice: yes "w.t.f".split(".") [11:44] satyr has joined the channel [11:45] iceice: :( is not working for me [11:45] iceice: var command = data.split(" "); [11:45] augustl: data isn't a string probably [11:45] iceice: socket.addListener("data", function (data) { [11:45] augustl: right, data is a Buffer unless you set encoding on the socket [11:45] d0k has joined the channel [11:46] paera: /join #creuna [11:47] iceice: socket.setEncoding("utf8"); worked for me [11:47] iceice: 1000 x thanks august [11:51] N0va` has joined the channel [11:52] secoif has joined the channel [11:53] mange has joined the channel [11:54] piscisaureus___ has joined the channel [11:56] i42n has joined the channel [11:58] jetienne has joined the channel [12:00] tuhoojabotti has joined the channel [12:02] denysonique: I built a notifications system in my Rails app [12:02] denysonique: right now I am testing it with one request per second [12:02] denysonique: simple jquery ajax [12:02] denysonique: and that tiny request is choking up my webrick [12:02] denysonique: is NodeJS the best way to go for this particular feature? [12:02] denysonique: s/in/for/ [12:03] skants has joined the channel [12:05] markwubben has joined the channel [12:05] Juan77 has joined the channel [12:05] errordeveloper has joined the channel [12:06] monokrome has joined the channel [12:06] bergie has joined the channel [12:06] martin_sunset has joined the channel [12:07] tuhoojabotti has joined the channel [12:09] lzskiss has joined the channel [12:09] VesQ: denysonique: I don't know whether it's the best but most likely it will fit perfectly for that job [12:11] denysonique: VesQ: heresy [12:11] joshfinnie has joined the channel [12:11] denysonique: you are saying nodejs is not the best for realtime?! [12:11] denysonique: (; [12:11] dubenstein has joined the channel [12:12] michaelhartau has joined the channel [12:12] VesQ: nope, I'm not saying that. I'm saying that I can't tell it with 100% certainty that node.js is the best but for what I've seen and what I've done I can recommend you to use it [12:12] augustl: denysonique: webrick isn't exactly fast [12:12] denysonique: well, same on thin [12:12] augustl: denysonique: in rails the best approach is probably a metal, or rack middleware [12:13] mehtryx has joined the channel [12:13] denysonique: but maybe because I am rendering haml views instead of doing it all JSON [12:13] sineltor has joined the channel [12:14] denysonique: anyway, thank you for your opinions [12:18] erichynds has joined the channel [12:19] tuhoojabotti: lol [12:20] matejv has joined the channel [12:20] iRoj has joined the channel [12:21] stefpb has joined the channel [12:23] traph1 has joined the channel [12:24] apoc has joined the channel [12:24] gut4 has joined the channel [12:26] simenbrekken has left the channel [12:28] Morkel has joined the channel [12:30] Morkel_ has joined the channel [12:32] Neil has joined the channel [12:34] tvw has joined the channel [12:34] robi42 has joined the channel [12:38] fairwinds has joined the channel [12:38] scott_gonzalez has joined the channel [12:38] gtramontina has joined the channel [12:40] erichynds has joined the channel [12:40] JakeyChan has joined the channel [12:40] gtramontina has joined the channel [12:41] AnthonyCat has joined the channel [12:42] JakeyChan has joined the channel [12:42] triptec has joined the channel [12:43] AnthonyCat: What is a good way to store a database of users? mysql, or nosql? [12:43] triptec: is there no documentation of classes/methods etc on socket.io!? [12:44] mmalecki: triptec: there is, it's called code ;) [12:44] triptec: AnthonyCat: depends, is there any relations to other tables [12:44] adrianmg1 has joined the channel [12:44] triptec: oh thanks for a helpful answer! [12:44] shapeshed has joined the channel [12:45] triptec: I guess the whole point of libs are to go through them and read all the code [12:45] AnthonyCat: The will be a table of users, and each user will items in another table, which rows associated to a user. So only a simple relation [12:45] mmalecki: triptec: but really, this should be enough: http://socket.io/#how-to-use [12:45] mmalecki: if you want something more advanced, read the code [12:46] sergiosanche has joined the channel [12:46] sergiosanche: Hi everyone [12:46] triptec: AnthonyCat: then I think u should have a relational db, so u can do joins and stuff [12:47] triptec: mmalecki: well I'd like to know what rooms a socket is in [12:47] AnthonyCat: Thanks triptec. Know any good modules? I don't care whether it is mysql/whatever [12:47] triptec: like socket.broadcast.to(socket.room).emit("message","whatever") [12:48] triptec: I started with node yesterday so I have no clue [12:48] triptec: AnthonyCat: se above [12:48] triptec: but just google node.js mysql u should find something [12:49] shapeshed has joined the channel [12:49] chjj: http://antirez.com/post/redis-win32-msft-patch.html - somehow i think antirez's attitude about how much to support windows is spot on [12:49] msch: does v8 sourceURL work in node? [12:52] adrianmg has joined the channel [12:53] vkareh has joined the channel [12:53] neilk_ has joined the channel [12:53] vvo has joined the channel [12:56] passionke has joined the channel [12:56] prettyrobots has joined the channel [12:56] shapeshed: ignore -channels #node.js * JOINS PARTS QUITS NICKS [12:57] cjm has joined the channel [12:58] AndreasMadsen has joined the channel [12:59] tomlion has joined the channel [12:59] IrishGringo has joined the channel [13:00] zomg: Anyone familiar with node cpu profiling around? [13:00] zomg: App seems to be spiking to 100% CPU even though the JS parts of it are essentially idling [13:01] jwl has joined the channel [13:05] joshkehn has joined the channel [13:05] tomlion_ has joined the channel [13:06] Glenjamin: zomg: seeing the same issues on 0.4? or is it 0.6 compat only? [13:06] Glenjamin: oh, just read that properly [13:06] mehtryx has joined the channel [13:06] trose has joined the channel [13:07] zomg: Yeah 0.6.5 [13:09] lmatteis: hello all [13:09] svnlto_ has joined the channel [13:09] lmatteis: i'm thinking. would it be possible to have a website store its data in flat files? what do you think would be the cons for that? [13:10] lmatteis: would speed be a constraint? [13:10] dexter_e has joined the channel [13:10] subbyyy has joined the channel [13:11] zomg: lmatteis: it depends [13:11] zomg: certain db's are essentially flat file DBs, like sqlite [13:11] lmatteis: zomg: well, imagine a simple app sort of like HN (hacker news) [13:12] zomg: some apps also are so called static site generator which generate the entire markup, store it in a file, and later simply serve the file [13:12] lmatteis: so i would imagine each item (the links posted to HN) as a single file... however then i wouldn't know how to sort this data [13:13] lmatteis: like are there tutorials or references on how to design and query flat-file databases? [13:13] tomlion has joined the channel [13:17] braoru has joined the channel [13:19] josh_k has joined the channel [13:19] lmatteis: zomg: indeed, but the site requires more interaction than that [13:19] shiawuen has joined the channel [13:20] gavin_hu_ has joined the channel [13:22] brianseeders has joined the channel [13:22] lzskiss has joined the channel [13:25] mmhrtn has joined the channel [13:25] mmhrtn: +i [13:27] geoKe has joined the channel [13:28] lmatteis: zomg: here's an interesting discussion http://news.ycombinator.com/item?id=14605 [13:29] lmatteis: i wonder how it can be implemented [13:29] bnoordhuis has joined the channel [13:30] Cromulent has joined the channel [13:31] razvandimescu has joined the channel [13:31] razvandimescu has left the channel [13:31] mike5w3c_ has joined the channel [13:33] jtsnow has joined the channel [13:33] tomlion has joined the channel [13:34] swestcott has joined the channel [13:34] bakso has joined the channel [13:35] Gonzih has joined the channel [13:35] Guest1906 has joined the channel [13:35] alessioalex has joined the channel [13:35] lmatteis: i wonder because with Node you already have the power of using in-memory JSON [13:36] alessioalex: hey guys [13:37] AnthonyCat: that's pretty cool. And I guess you'd have to figure out when you've got too much in ram? [13:38] ccapndave: Its similar to the unit of work design pattern [13:39] lmatteis: what do you mean? [13:39] hellp has joined the channel [13:39] jjd has joined the channel [13:39] ccapndave: The idea of building up data changes in memory and periodically writing them (although UoW is db oriented) [13:40] lmatteis: right [13:40] lmatteis: what's UoW? [13:40] bergie has joined the channel [13:40] ccapndave: http://martinfowler.com/eaaCatalog/unitOfWork.html [13:40] ccapndave: Its used a lot in ORM [13:41] ccapndave: (http://en.wikipedia.org/wiki/Object-relational_mapping) [13:41] ph^ has joined the channel [13:41] jtrudeau has joined the channel [13:42] piscisaureus____ has joined the channel [13:42] kriszyp3 has joined the channel [13:43] tdubellz_ has joined the channel [13:46] alessioalex has joined the channel [13:47] lmatteis: it would be awesome to have some sort of implementation that understands what to keep in memory and what to store on disk [13:47] lmatteis: of course this depends highly on the application [13:47] lmatteis: but maybe a library that would help you do this, would be great [13:47] mc_greeny has joined the channel [13:48] davidsklar has joined the channel [13:48] dexter_e has joined the channel [13:49] vvcephei has joined the channel [13:49] bakso: lmatteis: redis does that with its persistence options, no? [13:50] lmatteis: bakso: no idea, does it? [13:51] tdubellz_ has joined the channel [13:51] ovaillancourt has joined the channel [13:51] bakso: lmatteis: http://redis.io/topics/persistence [13:52] tomlion has joined the channel [13:52] Ownatik has joined the channel [13:52] adrianmg has joined the channel [13:53] lmatteis: right [13:53] hunterloftis has joined the channel [13:53] lmatteis: but i was wondering about the ability to do it using simply the filesystme [13:53] lmatteis: no db installation required [13:54] adrianmg has left the channel [13:56] enmand has joined the channel [13:56] lyte has joined the channel [13:56] lyte has joined the channel [13:56] jmar777 has joined the channel [13:57] AaronMT has joined the channel [13:58] mehtryx has left the channel [14:00] tdubellz_ has joined the channel [14:03] CiRlE has joined the channel [14:03] pigdude: lmatteis, ZODB ^^ [14:06] Venom_X has joined the channel [14:07] hkjels has joined the channel [14:07] ryanfitz has joined the channel [14:07] lmatteis: pigdude: that looks like python [14:08] CiRlE has joined the channel [14:08] Guest5749 has joined the channel [14:09] Rushing[away]: i am getting alot of ERR ENOENT and ENOTEMPTY when i try to npm install an app [14:09] pigdude: lmatteis, it's a joke. it's a database that persists mostly transparently [14:09] pigdude: ACTION muses about a JSODB [14:10] joshkehn has left the channel [14:10] lazyshot has joined the channel [14:11] Rushing: i downloaded the latest node and switched to 0.4.7 with the "n" [14:11] Rushing: module [14:11] Cromulent has joined the channel [14:11] Rushing: does anyone have a docs page on the options for ./configure? [14:12] Glenjamin: ./configure --help [14:12] solhive has joined the channel [14:13] CiRlE has joined the channel [14:13] lmatteis: https://github.com/felixge/node-dirty <-- sweet! [14:14] codygray has joined the channel [14:15] lyte_ has joined the channel [14:16] socialhack has joined the channel [14:17] tdubellz_ has joined the channel [14:17] broofa has joined the channel [14:18] CiRlE has joined the channel [14:18] stagas has joined the channel [14:19] lduros has joined the channel [14:19] thalll has joined the channel [14:22] CrisO has joined the channel [14:23] CiRlE has joined the channel [14:24] tdubellz_ has joined the channel [14:25] mAritz has joined the channel [14:25] jarek has joined the channel [14:25] jarek has joined the channel [14:26] ramitos has joined the channel [14:26] dan111 has joined the channel [14:26] fairwinds has joined the channel [14:27] k1ttty has joined the channel [14:28] mehtryx1 has joined the channel [14:28] CiRlE has joined the channel [14:28] k1ttty has joined the channel [14:29] tdubellz_ has joined the channel [14:30] joshsmith has joined the channel [14:30] crescendo has joined the channel [14:31] diogogmt has joined the channel [14:32] ramitos has joined the channel [14:32] devongovett has joined the channel [14:33] CiRlE has joined the channel [14:33] orkz has joined the channel [14:33] thalll has joined the channel [14:34] ikbenbert_ has joined the channel [14:34] ikbenbert__ has joined the channel [14:35] Phunky has joined the channel [14:35] riven` has joined the channel [14:35] pixel13 has joined the channel [14:35] JasonJS has joined the channel [14:35] plutoniix has joined the channel [14:36] pixel13 has left the channel [14:36] crescendo has joined the channel [14:36] ikbenbert___ has joined the channel [14:36] riven has joined the channel [14:37] tdubellz_ has joined the channel [14:38] CiRlE has joined the channel [14:38] ikbenbert____ has joined the channel [14:38] NoAnyLove has joined the channel [14:41] daglees has joined the channel [14:41] daglees has joined the channel [14:42] leon has joined the channel [14:43] braoru has joined the channel [14:43] springmeyer has joined the channel [14:43] CiRlE has joined the channel [14:45] tdubellz_ has joined the channel [14:45] joshkehn has joined the channel [14:45] gut4 has joined the channel [14:46] joshkehn has left the channel [14:47] shapeshed has joined the channel [14:48] rwaldron has joined the channel [14:48] Rushing: i configured node without-ssl cause of some issues in 0.4.7, but i think i might need it [14:48] CiRlE has joined the channel [14:48] tih-ra has joined the channel [14:49] ikbenbert_____ has joined the channel [14:52] ikbenbert_____ has joined the channel [14:52] tdubellz1 has joined the channel [14:53] CiRlE has joined the channel [14:54] ikbenbert______ has joined the channel [14:55] ikbenbert_______ has joined the channel [14:55] Rushing: can i configure an already-built instance of node, or do i need to "./configure" then "make" every time [14:56] willwhite has joined the channel [14:56] hunterloftis_ has joined the channel [14:58] CiRlE has joined the channel [14:59] dorf has joined the channel [15:00] colinclark has joined the channel [15:01] neurodrone has joined the channel [15:01] ceej has joined the channel [15:01] tdubellz_ has joined the channel [15:01] thomblake has joined the channel [15:01] thomblake has left the channel [15:01] tih-ra has joined the channel [15:03] CiRlE has joined the channel [15:03] tomlion_ has joined the channel [15:04] shapeshed has joined the channel [15:05] Cromulent has joined the channel [15:08] ikbenbert_______ has joined the channel [15:08] tsesame has joined the channel [15:08] CiRlE has joined the channel [15:09] Guest57705 has joined the channel [15:10] stantona has joined the channel [15:11] JmZ: i've got a strange problem. i have a fairly complex app, if i require mongode in it (wrapper to mongodb-native), it never finishes execution [15:11] tvw has joined the channel [15:12] dexter_e has joined the channel [15:12] sergiosanche has joined the channel [15:14] amigojapan has joined the channel [15:16] brianc has joined the channel [15:18] Swizec has joined the channel [15:18] tdubellz_ has joined the channel [15:19] CiRlE has joined the channel [15:19] JJMalina has joined the channel [15:19] davidwalsh has joined the channel [15:19] stantona_ has joined the channel [15:19] thalll has joined the channel [15:20] dan111 has joined the channel [15:20] jsurfer has joined the channel [15:20] charlenopires has joined the channel [15:21] joshkehn has joined the channel [15:21] zemanel has joined the channel [15:21] baudehlo: you mean it never exits? [15:21] tsesame: so... what's the flavor of the week as far as MVC frameworks? [15:21] zomg: bnoordhuis: mind if I bug you a bit regarding CPU profiling again? It seems my app is spiking to 100%, but the JS code is not the culprit. [15:21] joshkehn: tsesame: I didn't know we had flavors. [15:21] JmZ: baudehlo: yeah i've found that it's the connect() call stalling it [15:21] tsesame: apparently, since now they're so many [15:21] realguess has joined the channel [15:22] JmZ: baudehlo: which makes me suspect it's waiting for a connection be made. This makes no sense though, mongode doesn't connect until a query is made [15:22] tazrover has joined the channel [15:22] baudehlo: well it depends if you mean it's hanging, or if you mean it's not exiting once it's done everything you want it to do. [15:22] sbisbee has joined the channel [15:22] JmZ: well i can't tell [15:22] baudehlo: if the latter, just call process.exit() [15:23] baudehlo: you wrote the code, of course you can tell :) [15:23] Rushing: is there a difinitive "best" for the document dbs? ie couch, mango, etc [15:23] JmZ: well of course I could do that, but I should find why it doesn't quit, not force it to [15:23] joshkehn: Rushing: Depends. [15:23] JmZ: baudehlo: no, i cannot [15:23] JmZ: baudehlo: considering its a module not written by me causing it, clearly [15:23] joshkehn: Rushing: What are you storing? [15:23] baudehlo: well node doesn't quit if something is waiting on a file descriptor, or has a timer in place. [15:24] Rushing: anything (conceptualizing for a cms) [15:24] CiRlE has joined the channel [15:24] baudehlo: JmZ: no I mean you can tell if it has done everything you want it to do, surely? [15:24] JmZ: baudehlo: nothing has a timer in place and mongode isn't ever called apart from connect() [15:24] JmZ: baudehlo: well yes, because it exits correctly without mongode [15:24] necromancer has joined the channel [15:24] JmZ: it reaches the end with mongode but never exits [15:24] JmZ: so something mongode is doing, is causing it [15:25] joshkehn: Rushing: Then use MySQL. [15:25] baudehlo: right, so if your code has done everything you want it to do, then just call process.exit() at the end. [15:25] level09 has joined the channel [15:26] joshkehn: If you have no definitive need for the benefits document stores provide, why use them? [15:26] JmZ: baudehlo: yep it is mongode [15:26] JmZ: baudehlo: that isn't a solution, that's a work around [15:26] JmZ: it should be exiting, it has no reason not to [15:26] Rushing: joshkehn, because it's a far superior data model for flexibility and complexity [15:26] baudehlo: JmZ: it's actually best practice, not a work around. [15:26] joshkehn: Blah. Who gave you that line? [15:26] Rushing: i don't want to get into sql vs doc, but doc is better in every way except effeciency [15:26] tsesame: joshkehn: Same could be said of using an RDB [15:27] stantona has joined the channel [15:27] JmZ: baudehlo: it is a work around, forcing it to exit because you don't know why it isn't exiting [15:27] dexter_e has joined the channel [15:27] joshkehn: If you don't know what your storing, I'm not sure how anyone can help you. [15:27] joshkehn: “CMS” isn't a very specific answer. [15:27] Rushing: read/parse efficiency i mean. it's actually more efficient for hierarchical stuff [15:27] tdubellz_ has joined the channel [15:27] CarterL has joined the channel [15:28] hcchien has joined the channel [15:28] baudehlo: JmZ: I told you why it might not. There are too many reasons node might not exit to NOT have process.exit() in place when you expect an app to run and exit. [15:28] Rushing: joshkehn, i'm looking to store data...what do you think the benefits of each are, in general? [15:28] tsesame: Rushing: If you're storing hierarchical data, and aren't super-concerned about performance, mongo isn't a bad choice. Not say mongo can't perform, then it that case you need to consider more carefully [15:28] Morkel has joined the channel [15:28] joshkehn: One sec. [15:28] sbisbee has left the channel [15:28] JmZ: baudehlo: nevermind, you don't understand without knowing the code. thanks anyway [15:29] baudehlo: ok :) [15:29] jetienne: https://github.com/mrdoob/three.js/blob/master/src/core/Matrix4.js#L89 [15:29] CiRlE has joined the channel [15:29] jetienne: wrong channel [15:29] saikat has joined the channel [15:29] baudehlo: "i don't want to get into sql vs doc, but doc is better in every way except effeciency" - most wrong thing I've read all day :) [15:30] triptec: how do I access the value of {'':"value"}? [15:30] triptec: {"":"value"} [15:30] joeytwiddle: obj[''] [15:30] baudehlo: var[''] ? [15:30] joshkehn: Rushing: RDB is best when you know what your going to store, and want to keep a normalized database. [15:30] triptec: huh [15:30] vsync_: baudehlo maybe it's soviet russia [15:31] tsesame: For simple, tabular data that doesn't need to scale too big, MySQL I think is the obvious choice [15:31] joshkehn: If you know ahead of time what you're storing and that isn't going to change, a RDB is generally a good choice. [15:31] tsesame: Often the data isn't simply tabular though [15:31] Kiryaka has joined the channel [15:31] Kiryaka: Hello~ [15:31] joshkehn: Now if you need flexibility in what you're storing, or have no idea what you're storing, then a document style store is better. [15:31] skants has joined the channel [15:32] Kiryaka: I'm beginning with node.js and I'm stuck in some sort of what I'll call a "callback" hell... [15:32] dthompso99 has joined the channel [15:32] Kiryaka: Do you have some tips about this ? [15:32] joshkehn: You have some tradeoff's (field validation, some loss of index support, general lack of features) but you get the flexibility you need. [15:32] baudehlo: it's very VERY rare that you truly don't know what you're storing. [15:33] vsync_: dragons [15:33] dexter_e: Anyone know what could be causing formidable form.parse to just hang silently ? [15:33] Rushing: exactly, i was going the XML route with all this stuff, but am switching gears to JSON, so i'm already generally aware of what i'm sacrificing with a document store [15:33] baudehlo: Kiryaka: make your callbacks real functions not anonymous functions. [15:33] joshkehn: baudehlo: I designed a lead capture system that needed to accept leads from various sources — no idea what they were sending me. Just capture the post and add a unique id for tracking. [15:33] colinclark has joined the channel [15:33] dexter_e: no errors , it just seems to fail silently , formidable.parse [15:34] joshkehn: Rushing: You were thinking about using XML for a CMS system? [15:34] CiRlE has joined the channel [15:34] Kiryaka: baudehlo: http://pastebin.com/vyR7UX5p my thing look likes this [15:34] baudehlo: joshkehn: yeah but without knowing what is in it how could you search? Or do anything in an application with it? Ultimately at some point you have a "schema" even if it's just your application code knowing the structure of your data. [15:34] Rushing: joshkehn, yep. i have worked in many enterprise CMSs and it is a common store type [15:34] baudehlo: storing unstructured data is fine if you never want to do anything with it. [15:34] Kiryaka: I'm coming from PHP so it's kind of hard to really deal with this problem [15:35] joshkehn: baudehlo: All it was suppose to do was keep lead history. [15:35] codygray has joined the channel [15:35] joshkehn: Pull with a unique id, sell it to someone, make a note that we sold it to person X. [15:35] joshkehn: We didn't need to touch the fields at all. [15:35] baudehlo: fair enough. [15:35] ryanfitz has joined the channel [15:36] baudehlo: why not just store as TEXT in a SQL db? [15:36] josh-k has joined the channel [15:36] Rushing: i am trying to build 0.4.7 but keep getting crypto errors. i do have libssl-dev and openssl installed [15:36] tsesame: baudehlo: There are ways to structure data in myqsl even if you don't know the fields ahead of time [15:36] tdubellz_ has joined the channel [15:36] skants has left the channel [15:36] baudehlo: tsesame: yep, and PostgreSQL can actually store fully structured fields, even JSON, and index bits of it. And it won't lose your data randomly. [15:37] Rushing: 0.6.5 seems to build fine. i found some talk about SSL2 having some bugs back then, so i disabled ssl (--without-ssl) and it builds, but then the app i have seems to error out on some shasum crypto stuff [15:37] tsesame: baudehlo: In this case you make the field names part of the data itself rather than the structure [15:37] joshkehn: baudehlo: We thought about it, but doc store was easier for pulling data out of, and it gave us some great integrated sharding / replication that we didn't need to worry about. [15:37] joshkehn: baudehlo: Who says db's lose data “randomly”? [15:37] LeMike has joined the channel [15:37] baudehlo: joshkehn: everyone who has used any of the newer document dbs in a large scale way. [15:38] joshkehn: They are probably doing it wrong™ [15:38] baudehlo: lol [15:38] Rushing: agreed, or we just need a couple more years of polishing in the systems [15:38] Kiryaka: baudehlo: could you just rewrite a little my thing ? I think that I'll understand better with an example ? [15:38] joshkehn: I've used MongoDB in production env's for two years, stored hundreds of millions of records, and never lost a single piece of it. [15:38] codygray has joined the channel [15:39] Rushing: if you interact with js objects you're not going to get "random" results...just coding errors [15:39] CiRlE has joined the channel [15:39] baudehlo: joshkehn: ok so you had a good experience. But plenty of people have lost data with mongodb. [15:39] baudehlo: it's like the MySQL 3 of today. [15:39] strmpnk has joined the channel [15:39] joshkehn: When I hear that, I ask “under what conditions did you lose data” [15:40] joshkehn: More often then not the answer isn't much better then “it just vanished!” [15:40] baudehlo: and that doesn't worry you? [15:40] strmpnk has joined the channel [15:40] joshkehn: Sometimes the box crashed and they ran --repair [15:40] jsurfer has joined the channel [15:40] joshkehn: That's maybe the best case for not running repair. [15:41] baudehlo: I've yet to hear someone say the same sort of thing about posgresql in the last say 5 years. [15:41] joshkehn: It doesn't, because I've never seen that happen and I can't see why shit would “randomly vanish” [15:41] joshkehn: Postgres is what, 25 years old? [15:41] thinkjson has joined the channel [15:41] shapeshed: I still haven't seen a non anecdotal report of 'stuff vanishing' in Mongo [15:41] tsesame: mongodb is web scale, it just scales right up [15:41] thinkjson: here's a wicked cool Node.js dev position if you're interested: http://blog.youversion.com/contract-position-nodejs-developer/ [15:42] JasonJS: Is there an 'offical' way that node programs should use to differentiate between dev and production modes? [15:42] baudehlo: joshkehn: not quite, but yes it's old... Which for a data store is a good thing. [15:42] joshkehn: tsesame: I really hope you're joking. [15:42] thinkjson: I'll be posting it to the job board later, but wanted to get it out there [15:42] tsesame: joshkehn: I'm being facetious, yes [15:42] joshkehn: baudehlo: I absolutely agree. And when I'm doing normal stuff I tend to use either MySQL or Postgres. [15:42] joshkehn: If the needs for MongoDB are there I'll use that. [15:42] Rushing: how do you feel about mongo vs couch? [15:43] joshkehn: Rushing: Custom protocol vs. REST? [15:43] joshkehn: I can't really say. [15:43] joshkehn: There are things each is better at. [15:43] Kiryaka: I'm really becoming mad with this callback shit, it's been more than 3 hours that I'm stuck on the step "send back my data"... [15:43] Rushing: i liek the versioning in couch, but i think i can get away with just requiring a revision property on the system models [15:43] baudehlo: Kiryaka: "send my data back" is almost always the case of "call a callback" [15:44] Rushing: err, app models [15:44] CiRlE has joined the channel [15:44] Kiryaka: baudehlo: i'm missing something about callbacks, I think [15:44] baudehlo: Kiryaka: so "return variable" becomes cb(variable). [15:44] tsesame: couch is only worth it if you're planning to do apps that need a heavy write throughput, am I right? [15:44] joshkehn: Rushing: What do you mean by app models? [15:45] baudehlo: Kiryaka: yeah it's a different way of thinking about things. [15:45] Rushing: MVC models [15:45] joshkehn: tsesame: Lots of things can handle write heavy throughput. ;) [15:45] baudehlo: Kiryaka: I look at it this way, previously you'd do: var foo = some_function(); [15:45] joshkehn: ACTION Is still confused [15:45] tdubellz_ has joined the channel [15:45] tsesame: I know by it seems couchdb is more specialized to solve that sort of problem better than other comparable nosql dbs [15:45] Rushing: the data models i'm going to store. i can just create a base schema that has _id and __id, which can be version and original version [15:45] joshkehn: Do you mean models as in data transfer objects? [15:46] baudehlo: Kiryaka: with callbacks you do: var cb = function (foo) { ... code here that works on foo }; some_function(cb); [15:46] joshkehn: Again, that's not a very specific answer. [15:46] joshkehn: Your models could be doing anything. [15:46] Rushing: or should i just have a history object and attach objects to it before updating? [15:46] joshkehn: You need to version your documents? [15:46] Rushing: yes, optionally for each model [15:47] dexter_e: Any idea why Formidable.parse would hang silently with no errors? [15:47] Kiryaka: baudehlo: right but now, if I modify my lines to add a callback like this, it does not work : http://pastebin.com/1tnN1eFC [15:47] dexter_e: What to do to track down silent hangs [15:47] joshkehn: You could store each version in a history object. [15:47] joshkehn: On each model. [15:47] Kiryaka: baudehlo: in fact I understand when this is not nested... [15:47] Kiryaka: but after that i'm lost [15:47] joshkehn: But depending on space it might be better to just insert a new document with version++ [15:47] Rushing: yeah taht's what i'm thinking...cause keeping them as siblings could kill performance [15:48] eviltwin_ has joined the channel [15:48] baudehlo: Kiryaka: well "doesn't work" is very vague. Put some logging in and trace the execution. [15:49] CiRlE has joined the channel [15:49] Kiryaka: baudehlo: it says "this is not a function" [15:49] joshfinnie has joined the channel [15:50] baudehlo: what isn't? [15:50] fairwinds has joined the channel [15:50] shapeshed has joined the channel [15:50] nbaldwin has joined the channel [15:50] Kiryaka: baudehlo: "callback" [15:50] Kiryaka: it's a string. [15:51] drey has joined the channel [15:51] jakehow has joined the channel [15:51] ph^ has joined the channel [15:51] baudehlo: but that's happening somewhere you didn't paste the code for. [15:51] baudehlo: inside ln() [15:51] baudehlo: presumably [15:52] pizthewiz has joined the channel [15:52] ganjahtronic has joined the channel [15:52] Kiryaka: baudehlo: It's in another part where I call api.getQuotes() [15:53] thinkjson has left the channel [15:53] Kiryaka: baudehlo: I call it like this : api.getQuotes(arg1, arg2, function(data) { console.log(data) }) [15:53] cole_gillespie has joined the channel [15:53] tdubellz_ has joined the channel [15:54] kazupon has joined the channel [15:54] CiRlE has joined the channel [15:54] shapeshed has joined the channel [15:54] eviltwin_ has joined the channel [15:56] lightcap has joined the channel [15:56] dubenstein has joined the channel [15:57] ikbenbert_______ has joined the channel [15:57] mange has joined the channel [15:57] sergiosanche has joined the channel [15:57] Kiryaka: baudehlo: can i query you ? [15:59] Martin_ has joined the channel [15:59] CiRlE has joined the channel [15:59] cosmincx has joined the channel [15:59] corren has joined the channel [16:01] chrisvwebdev has joined the channel [16:01] chrisvwebdev has left the channel [16:01] baudehlo1 has joined the channel [16:01] chia has joined the channel [16:01] jebberjeb has joined the channel [16:02] scttnlsn has joined the channel [16:02] willwhite has joined the channel [16:02] tdubellz_ has joined the channel [16:03] devinus has joined the channel [16:04] sergiosanche has joined the channel [16:04] CiRlE has joined the channel [16:04] eviltwin_ has joined the channel [16:04] devinus: creationix: what do you think about turning nvm aliases into real symlinks? [16:05] JJMalina has joined the channel [16:06] tsesame: Does anyone else find it interesting that MS is backing something built on top of a Google product? [16:06] fatjonny has joined the channel [16:07] baudehlo1: only vaguely. [16:07] joshkehn: Apple's iCloud is built on top of AWS and Azure. [16:07] jtsnow has joined the channel [16:08] tsesame: It just seems more unusual coming from MS, not something I would have seen them doing at all just a few years ago [16:08] baudehlo: they paid for the port of Perl to Windows. [16:09] stantona has joined the channel [16:09] baudehlo: it's not that different. [16:09] CiRlE has joined the channel [16:09] tsesame: No I guess it's not [16:09] stantona has left the channel [16:09] baudehlo: albeit Perl wasn't built by any company. [16:09] tsesame: Except that Google is a direct competitor [16:09] Kiryaka: sorry to annoy you a little more baudehlo ^^ you pinged out [16:10] Guest69570 has joined the channel [16:10] riven has joined the channel [16:10] baudehlo: yeah, stupid fucking rogers. [16:10] riven has joined the channel [16:11] Wizek has joined the channel [16:11] baudehlo: tsesame: yup, which is why I say it's "vaguely" interesting. But it's not like google are profiting from it. [16:12] riven` has joined the channel [16:12] clint_ has joined the channel [16:12] mAritz has joined the channel [16:12] norviller has joined the channel [16:12] Rushing: so i have a module install globally, but npm install -d in a package directory is still trying to install it locally [16:12] jxie has joined the channel [16:13] AD7six has joined the channel [16:13] Rushing: and for whatever reason, i can install globally, but not locally [16:13] Rushing: (i am trying to work in a virtualbox mounted share dir) [16:13] jimmysparkle has joined the channel [16:14] JmZ: ok i just dont get this [16:14] JmZ: anyone take a look at this please: http://pastebin.com/cfVnMum7. it doesn't exit, ever. and err is null, meaning connection must have been successful [16:14] mehtryx has joined the channel [16:14] CiRlE has joined the channel [16:14] tjholowaychuk has joined the channel [16:15] JmZ: that's gotta be the smallest amount of test code possible for the case. and it still never exits [16:15] Bonuspunkt: Rushing npm install -g = install global [16:15] Rushing: right, which works fine [16:15] Rushing: but installing locally doesn't seem to [16:16] Rushing: and when i use -d in a package dir, it still tries to install a package that's already installed globally [16:16] Destos has joined the channel [16:17] socialhack_ has joined the channel [16:17] Ningwa has joined the channel [16:17] dshaw_ has joined the channel [16:17] jebberjeb has left the channel [16:18] riven has joined the channel [16:19] tdubellz_ has joined the channel [16:19] CiRlE has joined the channel [16:20] Bonuspunkt: Rushing whats wrong with that behavior? [16:20] joshkehn: Rushing: It [16:20] joshkehn: 's creating a local version, which is independent of the global version. [16:21] geekbri has joined the channel [16:21] aelien27 has joined the channel [16:21] Ningwa has left the channel [16:21] Rushing: joshkehn, so it doesn't just reference the local version -- it copies it? [16:21] eviltwin_ has joined the channel [16:21] Rushing: global version, i mean [16:21] joshkehn: It's an independent copy of the package. [16:21] joshkehn: If I say [16:21] joshkehn: npm install oldmagic -g [16:21] joshkehn: And then in a package.json I say [16:22] joshkehn: "oldmagic" : "1.0.2" [16:22] joshkehn: It will put a copy of oldmagic at the latest rev in the global scope. [16:22] joshkehn: And then an copy of oldmagic@1.0.2 in a node_modules folder in the project directory. [16:22] joshkehn: If I require('oldmagic') in that project dir it will find oldmagic@1.0.1 [16:22] Rushing: ok, makes sense. [16:23] joshkehn: 1.0.2* [16:23] jocafa has joined the channel [16:23] Rushing: i'm getting a bunch of errors on the local modules...ENOENT type stuff. any idea what that could be? [16:23] Rushing: so global install works fine, then i try to install in my package dir, and i get a bunch of those errors [16:23] joshkehn: What eversion of npm are you using? [16:23] joshkehn: What version of node? [16:24] kmox83_ has joined the channel [16:24] Rushing: node 0.4.12, npm 1.0.106 [16:24] halfhalo has joined the channel [16:24] CiRlE has joined the channel [16:24] Rushing: trying to get an old app running [16:25] joshkehn: It could be that it's installing a version incompatible with that version of node. [16:25] Rushing: nah, they install globally fine [16:25] sineltor has joined the channel [16:25] Rushing: all of my "wrong version" errors seem to be gone. now it's just this damn local modules thing [16:25] hotch has joined the channel [16:25] joshkehn: What are you trying to install? [16:26] Rushing: calipso [16:27] neurodrone has joined the channel [16:27] Rushing: http://calip.so [16:27] frabcus has joined the channel [16:27] hotch: hey guys, anyone using fs.watch / node 0.6.x? i get my change event triggered twice, and stumped on as to why - [16:27] hotch: I'm reading a lot about fs.watch replacing fs.watchFile in node 0.6.x, so .. [16:28] joshkehn: So… it should be a global install, right? [16:28] Rushing: joshkehn, not really. the home page exapmle is kinda like expresso [16:28] tdubellz_ has joined the channel [16:28] Rushing: you can create the app, but it really just generates an app with all the files [16:28] Rushing: see the quick start guide [16:29] CiRlE has joined the channel [16:29] alvaro_o has joined the channel [16:30] codygray has joined the channel [16:30] Rushing: this is driving me nuts lol...i've literally been on it for a couple day snow [16:31] Rushing: started on the windows route...now in an ubuntu vm [16:33] AndreasMadsen_ has joined the channel [16:33] ank has joined the channel [16:34] CiRlE_ has joined the channel [16:34] Rushing: damn >:/ looks like the whole issue is windows lol. can't even use a virtualbox share [16:35] EhevuTov has joined the channel [16:35] tdubellz_ has joined the channel [16:36] tjholowaychuk has joined the channel [16:36] rick-_ has joined the channel [16:36] tkaemming has joined the channel [16:37] EvRide1 has joined the channel [16:38] dexter_e has joined the channel [16:38] jaequery has joined the channel [16:39] stonebranch has joined the channel [16:39] CiRlE has joined the channel [16:39] TheJH has joined the channel [16:39] k1ttty has joined the channel [16:40] AndreasM_ has joined the channel [16:40] hunterloftis has joined the channel [16:41] AndreasM_ has joined the channel [16:43] lazyshot has joined the channel [16:43] redir has joined the channel [16:44] fairwinds has joined the channel [16:44] newy6 has joined the channel [16:44] prettyrobots has joined the channel [16:44] goshakkk has joined the channel [16:45] tdubellz_ has joined the channel [16:45] fairwinds_ has joined the channel [16:45] frabcus has joined the channel [16:46] BillyBreen has joined the channel [16:47] dnjaramba has joined the channel [16:48] dambalah has joined the channel [16:48] johnnywengluu_ has joined the channel [16:50] CiRlE has joined the channel [16:50] smathy has joined the channel [16:50] FIQ has joined the channel [16:53] pita has left the channel [16:53] swestcott has joined the channel [16:53] paq has joined the channel [16:53] tdubellz_ has joined the channel [16:55] CiRlE has joined the channel [16:56] herbySk has joined the channel [16:57] vvo_ has joined the channel [16:57] socialhack has joined the channel [16:57] rwaldron has joined the channel [16:58] wilmoore has joined the channel [16:59] stantona has joined the channel [16:59] diogogmt has joined the channel [17:00] CiRlE has joined the channel [17:00] Poetro_ has joined the channel [17:00] Me1000 has joined the channel [17:01] socialhack_ has joined the channel [17:01] GrizzLyCRO has joined the channel [17:01] bradleyg has joined the channel [17:01] AndreasM_ has joined the channel [17:02] tdubellz_ has joined the channel [17:02] mandric has joined the channel [17:03] AndreasM_ has joined the channel [17:04] shiawuen has joined the channel [17:04] Rushing: is it more standard to do get/set like getProp(), setProp(), or prop() / prop(set) ? [17:04] Steo has joined the channel [17:04] joshkehn: Rushing: get_prop is what I prefer. [17:04] clarkfischer has joined the channel [17:05] ryanfitz has joined the channel [17:05] lmorchard has joined the channel [17:05] pigdude: joshkehn, .. [17:05] CiRlE has joined the channel [17:06] pigdude: Rushing, google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml [17:06] Rushing: joshkehn, with underscores, really? [17:06] pigdude: Rushing, nobody does that [17:06] romanb_ has joined the channel [17:06] pigdude: Rushing, see http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml#Naming [17:07] N0va has joined the channel [17:07] _dc has joined the channel [17:07] pigdude: Rushing, the overloading prop([v..]) style is popular in some libraries like jquery but is generally frowned upon [17:07] Rushing: pigdude, thanks. why is that? [17:08] Rushing: less design clarity? [17:08] joshkehn: Rushing: I use camelCase if I'm writing it. [17:08] pigdude: Rushing, long-standing convention, influenced by Java most likely [17:08] joshkehn: Underscores if someone else started it. [17:08] pigdude: Rushing, exactly, it tends to make for an opaque API (the overloading) [17:08] adamstantonvan has joined the channel [17:09] lduros has left the channel [17:09] caolanm has joined the channel [17:09] langworthy has joined the channel [17:09] lduros has joined the channel [17:09] tdubellz_ has joined the channel [17:10] Rushing: and is it more popular to chain setters or return a value? [17:10] CiRlE has joined the channel [17:10] kenperkins has joined the channel [17:11] pigdude: Rushing, you're referring to a fluent interface. it is generally encouraged to return nothing from a set* method [17:11] deadmau5 has joined the channel [17:11] kenperkins: o/ [17:12] pigdude: Rushing, unless the method may fail, in which case it should return Boolean [17:12] pigdude: Rushing, fluent interfaces are another thing very popular in jquery and other frameworks, and are also generally frowned upon apart from certain specific APIs that benefit from the pattern [17:13] Rushing: gotcha, so just discretionary [17:13] pigdude: Rushing, because a.b().c().d().e() can seem very opaque to a reader of the code [17:13] zomg: Anyone familiar with CPU profiling in node? [17:13] nephics has joined the channel [17:14] Rushing: do the ___defineGetter things work? [17:15] rurufufuss has joined the channel [17:15] pigdude: Rushing, of course [17:15] pigdude: Rushing, see ecma5 spec [17:15] _sorensen_ has joined the channel [17:15] cronopio has joined the channel [17:15] CiRlE has joined the channel [17:16] rauchg has joined the channel [17:16] Rushing: sweet...shy'd away from that for so long cause of IE :P [17:16] pigdude: Rushing, __defineGetter__ itself is not in the standard, note that [17:16] jtrudeau has joined the channel [17:16] pigdude: Rushing, but it is present in mozilla and other implementations, including node [17:16] maletor has joined the channel [17:18] Rushing: ah ok [17:18] broofa has joined the channel [17:18] EyePulp has joined the channel [17:18] blup has joined the channel [17:20] Steo: I just have to ask .. has anyone tried to upload attachments (pictures) to node and on to couchdb. I have managed to get the images to node and can see them in the temp folder, but I understand you have to use base64 format. How do I do that? What format are they in now if you are using formidable? [17:20] CiRlE has joined the channel [17:20] Rushing: any very lightweight jsonpath packages out there that you recommend? [17:21] emilepetrone has joined the channel [17:21] jsurfer has joined the channel [17:22] pigdude: jsonpath [17:22] pigdude: oops, sorry, terminal bugged out [17:23] trco has joined the channel [17:23] pigdude: Rushing, JSONPath looks fine [17:23] jtsnow has joined the channel [17:24] pigdude: Rushing, the dkastner version doesn't use eval() so you might want that [17:24] pigdude: Rushing, http://search.npmjs.org/#/dkastner-JSONPath [17:24] rtgibbons has joined the channel [17:25] Rushing: cool, thanks [17:25] bshumate has joined the channel [17:25] bshumate has joined the channel [17:25] CiRlE has joined the channel [17:25] jaequery: hey guys got a quick question for you [17:26] magnetik has joined the channel [17:26] jhbot has joined the channel [17:26] tjholowaychuk has joined the channel [17:26] jaequery: can I use node.js to scrape sites? [17:27] isaacs has joined the channel [17:27] pigdude: well, yea [17:27] jaequery: i mean better way to question is, do you see it as a more viable method of doing so? as opposed to doing it with other like php/python/etc ? [17:28] vvcephei: jaequery: you might want to take a look at phantom.js http://www.phantomjs.org/ [17:28] pigdude: jaequery, that's up for debate. the number of high-quality DOM libraries in JS make it seem like a good fit, but Python has lxml which itself is of very high quality [17:29] level09 has joined the channel [17:29] springmeyer has joined the channel [17:29] base698 has joined the channel [17:30] CiRlE has joined the channel [17:30] jaequery: hm im taking a quck look [17:30] jaequery: does phantom rasterize means, you can output a screenshot of any webpage to a png? [17:31] tjholowaychuk: jaequery iirc it's basically webkit [17:31] tjholowaychuk: haven't used it personally [17:31] Cromulent has joined the channel [17:31] tjholowaychuk: but it's probably a great choice for that sort of thing im sure [17:31] bosphorus has joined the channel [17:31] jaequery: oh wow [17:31] tjholowaychuk: kinda too bad that it's not a node extension though [17:32] richardr_ has joined the channel [17:32] vvcephei: jaequery: yes. you can rasterize to png or pdf, I believe [17:32] bingomanatee_ has joined the channel [17:33] noobarramba has joined the channel [17:33] _dc has joined the channel [17:34] dob_ has joined the channel [17:35] CiRlE has joined the channel [17:37] level09 has joined the channel [17:37] vvcephei: uh, I guess you don't really "rasterize" to pdfs, but you get the idea. [17:38] adamstantonvan has joined the channel [17:39] Wa has joined the channel [17:40] ryanrolds_w has joined the channel [17:40] CiRlE has joined the channel [17:42] dubenstein has joined the channel [17:43] te-brian has joined the channel [17:43] jetienne_ has joined the channel [17:43] cole_gillespie has joined the channel [17:43] wattz has joined the channel [17:43] wattz: hey hey [17:45] jtgiri_ has joined the channel [17:45] cedeon has joined the channel [17:45] CiRlE has joined the channel [17:46] mikeal has joined the channel [17:47] scooteronce has joined the channel [17:48] ryan_stevens has joined the channel [17:49] criswell has joined the channel [17:49] scooteronce: Hey so I am having some problems getting my images to load to my site (logo, button images) through my server but I am able to get all of my css, html, javascript to work can someone help out a noob? [17:50] joshkehn: Have you checked to make sure the paths are correct? [17:50] CiRlE has joined the channel [17:51] scooteronce: Yeah I have been toying around with that and I still haven't been able to get it to work. [17:51] ph^ has joined the channel [17:51] towski has joined the channel [17:52] AndreasM_ has joined the channel [17:52] scooteronce: I haven't ever been in this chat. Is it improper for me to post some code in here [17:52] dilbert has joined the channel [17:53] diptanuc has joined the channel [17:53] AndreasM_: Have you check that mime-types are are image/* [17:53] diptanuc: Cancer [17:53] scooteronce: }else if (file.indexOf("jpg") != -1){ res.writeHead(200, {"Content-Type": "image/jpg"}); res.write(data, "binary"); res.end(req.method === "HEAD" ? "" : body); [17:53] k1ttty_ has joined the channel [17:53] Guest76755 has joined the channel [17:55] jj0hns0n has joined the channel [17:55] wattz: msch: anyone using/used mscdex's node-imap? [17:55] AndreasM_: scooteronce that do not help, do you have your code on github or can you post a gits? [17:55] breakpoint has joined the channel [17:56] CiRlE has joined the channel [17:56] hipsters_ has joined the channel [17:56] scooteronce: I am going to have to register [17:56] Carter has joined the channel [17:57] ryanrolds_w: scooteronce: I'm curious about the code too. This IS possible. [17:57] AndreasM_: You can use https://gist.github.com/ without a user [17:59] diptanuc has left the channel [17:59] dgathright has joined the channel [17:59] dilvie has joined the channel [17:59] fzzzy has joined the channel [18:00] dgathright_ has joined the channel [18:00] AndreasM_: Scooteronce: you shouldn't use indexOf a string like "hajpgad.html" would also match. [18:00] AndreasM_: Scooteronce: start using: var ext = ("file.jpg").split('.').pop(); if (ext === 'jpg') {} [18:00] StanlySoManly has joined the channel [18:01] CiRlE has joined the channel [18:01] rtgibbons has joined the channel [18:01] markdaws has joined the channel [18:01] Me1000 has joined the channel [18:01] nadirvardar has joined the channel [18:02] newy6 has joined the channel [18:02] sergiosanche has joined the channel [18:03] scooteronce: I hope that this works git clone git://gist.github.com/1452621.git gist-1452621 [18:03] patcito has joined the channel [18:03] AndreasM_: also your first send the image using res.write(data, "binary"); and the send a bonus body too with the line res.end(req.method === "HEAD" ? "" : body); You shouldn't do that last part just type res.end() [18:03] shanebo has joined the channel [18:04] kishoreyekkanti has joined the channel [18:05] ovaillancourt has joined the channel [18:06] CiRlE has joined the channel [18:06] eignerchris has joined the channel [18:06] AndreasM_: why do you use the line: pathname= "." + pathname; [18:06] Fvcker has joined the channel [18:06] jacobolus has joined the channel [18:06] pizthewiz has joined the channel [18:06] scooteronce: I was just trying to make it more generic so that I could pass it to more .js files [18:07] tdubellz_ has joined the channel [18:07] scooteronce: That is the way that I got all of the other things to work [18:07] Wizek has joined the channel [18:07] AndreasM_: Try log the filepath on line 29: console.log('sending file:', file); [18:07] tjfontaine has joined the channel [18:08] hotch has joined the channel [18:08] AndreasM_: scooteronce: are you sure you don't want to use >> pathname= "./" + pathname << then. [18:09] JaKWaC has joined the channel [18:09] AndreasM_: also line 36 should be "Content-Type": 'text/css' [18:10] tkaemming has joined the channel [18:10] colinclark has joined the channel [18:10] AndreasM_: I don't have more time, sorry [18:10] AndreasM_ has left the channel [18:11] CiRlE has joined the channel [18:11] Wizek has joined the channel [18:11] jbrokc has joined the channel [18:12] tjfontaine: I'm trying to write an addon for a 3rd party library, everything is fine in synchronous mode, but when I invoke it through eio I hit an issue where the thread stack is too small, is there an elegant solution to this problem that doesn't require modification to the 3rd party library? [18:12] JaKWaC has joined the channel [18:13] NetRoY has joined the channel [18:14] broofa: How do I figure out why childProcess.exec() is failing with "Command failed" errors? It only _sometimes_ fails, and pasting the command being run into my shell always works. [18:15] broofa: The returned error has no useful info in it, other than possibly(?) "killed:true" [18:16] CiRlE has joined the channel [18:16] Margle_ has joined the channel [18:17] broofa: nevermind. I'm an idiot- "timeout:3e3" -> "timeout:3e30" :P [18:17] joshkehn has left the channel [18:19] Fvcker has left the channel [18:20] paq has joined the channel [18:20] adamstantonvan has joined the channel [18:21] CiRlE has joined the channel [18:21] Guest25605 has joined the channel [18:22] adamstantonvan has left the channel [18:22] dshaw_ has joined the channel [18:23] mcluskydodallas has joined the channel [18:23] jerrysv has joined the channel [18:24] shanebo: Hey guys is this SilkJS project analogous to node? I'm not getting it's intended purpose and where it overlaps or attempts at replacing node. [18:25] jerrysv: shanebo: apparently faster in some circumstances? [18:25] jerrysv: haven't had much time to drill into it myself [18:26] shanebo: jerrysv apparently. Do you know if it's threaded or async? [18:26] CiRlE has joined the channel [18:26] sorensen__ has joined the channel [18:26] ryangs has joined the channel [18:26] jerrysv: shanebo: no idea, but it seems to ship with a host of modules already [18:26] slajax has joined the channel [18:27] __sorensen has joined the channel [18:27] johnnywengluu_ has joined the channel [18:27] fbartho has joined the channel [18:28] reid has joined the channel [18:28] tdubellz_ has joined the channel [18:28] TooTallNate has joined the channel [18:29] shanebo: jerrysv https://github.com/mschwartz/SilkJS/wiki [18:29] langworthy has joined the channel [18:29] shanebo: looks like it's threaded [18:29] `3rdEden has joined the channel [18:29] shanebo: notice: "If you do want a server-side JavaScript solution that uses V8, is very fast, and doesn't require you to write "nested callback hell" style code, then give SilkJS a look." [18:29] shanebo: hahahaha [18:29] jerrysv: if i get time i'll try bricks on it [18:29] eignerchris_ has joined the channel [18:30] jerrysv: the interfaces look fairly similar [18:30] scooteronce: will someone help me out here. I cant get my images to display git clone git://gist.github.com/1452712.git gist [18:30] tjholowaychuk: shanebo coros? [18:30] tjholowaychuk: ACTION looks [18:31] CiRlE has joined the channel [18:31] Morkel has joined the channel [18:32] harthur has joined the channel [18:32] jerrysv: already makes me wary that they've married it to mysql already. [18:33] franciscallo has joined the channel [18:33] tjholowaychuk: looks kinda sloppy [18:33] dambalah has joined the channel [18:34] jerrysv: there are parts of apache that i like, obviously, but the prefork model isn't one of them :/ [18:34] CoverSlide: anyone remember v8cgi? [18:34] mmalecki: I do [18:35] jerrysv: CoverSlide: no, but i wrote one based on spidermonkey a while back [18:35] jerrysv: running on top of apache [18:35] taf2 has joined the channel [18:35] shanebo: CoverSlide yep [18:36] shanebo: i liked it but it has zero community [18:36] CoverSlide: yeah [18:36] CiRlE has joined the channel [18:36] taf2: writing a network app, that needs to send some binary data… want to make sure i'm doing this correctly… to send an integer 32 bit over the wire correctly i'd need to write into a buffer using writeInt32BE and then write that buffer to a socket? [18:37] adrianF has joined the channel [18:37] r04r has joined the channel [18:37] r04r has joined the channel [18:37] taf2: ACTION wonders if something like: https://github.com/billywhizz/node-memcache-parser/blob/master/lib/binary.js is necessary with 0.6 node? [18:38] k1ttty_ has joined the channel [18:38] JanLi has joined the channel [18:38] AndreasM_ has joined the channel [18:38] zeade has joined the channel [18:39] adrianmg has joined the channel [18:39] shanebo: jerrysv is there a better model for sync code? [18:39] adrianmg has left the channel [18:40] jerrysv: shanebo: probably not, my early dev experience came from async and event loops though [18:40] jerrysv: shanebo: muds in the late 80's, early 90's [18:41] devaholic: tanepiper, [18:41] devaholic: ping [18:41] CiRlE has joined the channel [18:42] bartt has joined the channel [18:42] Rushing: is there a better way to create/extend classes in node, or do we still have to do stuff like MyClass.prototype = new OtherClass(); MyClass.prototype.constructor = OtherClass; [18:42] Cromulent has joined the channel [18:43] WarheadsSE: shanebo, SilkJS isn't so much threaded as pre-forked. [18:43] devaholic: Rushing: it's still javascript [18:43] devaholic: if thats what youre asking [18:43] r04r has joined the channel [18:43] devaholic: heh [18:43] WarheadsSE: and shanebo as for "callback hell" .. pfft. [18:44] Poetro has joined the channel [18:44] Poetro has joined the channel [18:44] Rushing: :P yeah, just wasn't sure if there was a more concrete way of creating a library, other than class-creators like with client-side js [18:44] shanebo: Rushing I use mootools pseudo class [18:44] Swimming_Bird has joined the channel [18:46] CiRlE has joined the channel [18:46] jbpros has joined the channel [18:46] Wizek has joined the channel [18:48] CoverSlide: i seriously don't get why people have so much trouble with callbacks [18:48] trotter has joined the channel [18:48] shanebo: Rushing https://github.com/mootools/mootools-core/blob/master/Source/Class/Class.js [18:48] r04r has joined the channel [18:49] jerrysv: CoverSlide: i think of the change from sync to async as one of the major stumbling blocks in changing how development works. it won't always be that way, but it is for now. much like the switch from procedural to OO [18:50] joshfinnie has joined the channel [18:50] bingomanatee_: Callbacks' position in the chain of execution is implicit, not explicit. Creating a mental gap between the initialization of an action and its response is bound to create mental trauma. [18:51] shanebo: CoverSlide, async is considerably more difficult to develop than sync. [18:51] jxson has joined the channel [18:51] bingomanatee_: Its quantum computing. [18:51] CiRlE has joined the channel [18:51] zmbmartin has joined the channel [18:51] zmbmartin has left the channel [18:51] subdeuxed has joined the channel [18:51] Metal3d has joined the channel [18:52] ryanolds has joined the channel [18:53] magnetik has joined the channel [18:53] yenz: heh [18:53] yenz: inverting the 'normal' flow of things is tricky [18:53] patrickgamer has joined the channel [18:54] r04r has joined the channel [18:55] pigdude: eh [18:55] pigdude: async is very straightforward if you're used to building user interfaces with some sort of run loop [18:56] pigdude: whether it's JS in the browser or ncurses [18:56] patrickgamer has left the channel [18:56] dilvie: CoverSlide: Callbacks are not a difficult concept to understand, but if a, b, and c need to happen before d, it becomes tricky to know when to fire d. You either introduce some funky logic inside the functions themselves, or you implement a function to manage your callbacks and what order they fire in. Either way is not that great. [18:56] pigdude: i think event-driven programs are the most comprehensible [18:56] shanebo: dilvie +1 [18:57] dob_ has joined the channel [18:58] dilvie: CoverSlide: if you return promises instead of rely on callbacks, you can do when(a.promise, b.promise, c.promise).done(d); [18:58] k1ttty_ has joined the channel [18:59] r04r has joined the channel [18:59] mmalecki: mikeal: https://github.com/chjj/marked/tree/gfm [18:59] mmalecki: chjj: <3 <3 <3 [18:59] mikeal: oh sweet [18:59] pigdude: oh god promises [18:59] mikeal: does it have github flavored markdown with syntax highlighting? [18:59] mmalecki: mikeal: indeed. btw, I think I'll just branch of isaacs' master [19:00] mikeal: he didn't merge the new site work yet [19:00] mmalecki: mikeal: you checked in node_modules, that feels unclean ;) [19:00] mikeal: you're wrong :) [19:00] mikeal: checking in node_modules is the best [19:00] mikeal: everyone i know that is doing production stuff does this now [19:00] mikeal: it's way way way better [19:00] mmalecki: mikeal: we use submodules, actually [19:01] mikeal: you can't audit the lines or do a git bisect w/ submodules [19:01] baudehlo1 has joined the channel [19:01] mikeal: what you want is to see all the changes that actually effect your application, with diffs, in source control [19:01] tjholowaychuk: checking in node_modules is all good if it's not a dev branch [19:01] mmalecki: why'd I audit lines on production anyway? [19:01] tjholowaychuk: that's a pita [19:02] pigdude: the right answer is to have a manager object which fires an event when all three dependencies are finished [19:02] dilvie: pigdude: promises are great because it's not your function's job to manage what happens next. Promises let you separate the concern of control flow from the concern of executing the job that the function performs. [19:02] mikeal: yeah, i don't do this open source modules i'm writing, just things i'm going to run in production [19:02] pigdude: maybe that's how people are using promises, but i prefer this to be encapsulated in a more specific object [19:02] jergason has joined the channel [19:02] Rushing: where is the line between creating server side and client side js? ... not sure where to put some of my files, or if there's a certain way to approach that [19:02] mikeal: mmalecki: are you asking why would you want to know all the changes you make between production pushes? [19:02] mikeal: have you ever had a bug in production :) [19:02] Jippi has joined the channel [19:03] mmalecki: mikeal: oh my so many of them [19:03] pigdude: Rushing, client-side are served by a static file server [19:03] jergason: Rushing: "it depends" [19:03] mikeal: having one audit trail is great [19:03] pigdude: Rushing, server-side are run on the server itself [19:03] mikeal: even version locking in package.json doesn't work [19:03] dilvie: pigdude: sure, an event-based task manager is totally legit. [19:03] mikeal: because you version lock express, but express didn't version lock Connect, and you setup a new sever and it's a new Connect version with some slick header difference that exposes some crazy new bug [19:03] shanebo: dilvie, pigdude, don't you guys agree though that those are all attempts to make it function like sync code? [19:03] Rushing: right, i understand that...but for instance, i'm thinking about sketching up a "Loader" class, for loading files based on a path stack and category (standard php loader model) [19:04] mikeal: and you're like, wtf, i didn't change any code [19:04] pigdude: shanebo, no .. [19:04] dilvie: shanebo: no. [19:04] Rushing: and i'm not sure if there's a way to create this thing so that it can be used server side and client side [19:04] jergason: Rushing: loading, as in requiring the files that you need in your app? [19:04] dilvie: shanebo: they're attempts to let your functions do their job, instead of managing control flow. [19:04] tjholowaychuk: mikeal++ [19:04] Rushing: jergason, yes [19:04] pigdude: shanebo, it's just an event hierarchy. if i need three things done to do one thing, then i should have some higher-level object fire an event when all are done [19:04] jergason: there are a few different solutions for that on client [19:04] ovaillancourt has joined the channel [19:04] pigdude: shanebo, a good event-driven application shouldn't be shy about events and listeners [19:04] tih-ra_ has joined the channel [19:05] jergason: server you use `require('path to file')` [19:05] jergason: client you can use something like Ender.js [19:05] ccare has joined the channel [19:05] jergason: or pakmanager [19:05] mikeal: like, everyone that i've told about checking all of node_modules in to git [19:05] jergason: and use the same require syntax [19:05] jergason: as on the server [19:05] mmalecki: mikeal: well, these are rare cases, I think [19:05] mikeal: said "that's crazy" and then a week later said "ok, you're right, this is way better" [19:05] tjholowaychuk: ACTION remembers when we didn't peg versions either [19:06] mikeal: this is what Yammer does now, used to run their own registry, this solved so many problems [19:06] jergason: mikeal: "dependencies": { "foo": "*", "bar": "*" } [19:06] mikeal: this is what iriscouch does now, i think this is what voxer does [19:06] jergason: arghhhhh [19:06] mikeal: it's definitely what rackspace does because pquerna is the one that told me about it :) [19:06] shanebo: pigdude, what do you use as your mediator? [19:07] mikeal: i use dependencies in package.json for any module i write for other people to consume [19:07] pigdude: shanebo, it depends on what i'm writing [19:07] jergason: Rushing: does that answer your question? [19:07] mikeal: but for applications, fuck that noise [19:07] pigdude: shanebo, but custom code [19:07] tih-ra has joined the channel [19:07] mikeal: also [19:07] mikeal: and let this creep you out [19:08] mikeal: you can totally replace the tarball for an old version [19:08] mmalecki: I know [19:08] mikeal: if you own the package [19:08] rrjamie has joined the channel [19:08] mikeal: so there really is no safety in relying on dep definitions for an application [19:08] idefine has joined the channel [19:08] rrjamie: Is there some documentation on how to write package.json files? In particular, can you specify dependencies that aren't publicly available (e.g., in a private git repo somewhere?) [19:09] mikeal: yes [19:09] mikeal: npm has detailed man files [19:09] tih-ra has joined the channel [19:09] mikeal: it's like the terminator [19:09] wattz: eh, getting angry [19:09] Rushing: wow, that Ender.js thing looks interesting [19:09] wattz: hey mikeal, long time no see [19:09] mikeal: hiya [19:10] wattz: read (imap) unread email w/ attachment from gmail, then post to a webservice [19:10] wattz: SO CLOSE [19:10] wattz: :D [19:10] pigdude: shanebo, i don't like things like promises off-hand because they encourage skipping that crucial manager layer in your application, and reproducing its responsibilites in objects which are not suited to the task [19:11] k1ttty has joined the channel [19:11] Rushing: jergason, is this Ender.js actually interacting with server-side modules or is this basically grouping and minifying your client-side js into "modules" [19:12] isaacs has joined the channel [19:12] clarkfischer_ has joined the channel [19:12] jergason: yeah [19:12] jergason: it just lets you [19:12] jergason: use modules [19:12] jergason: on the client side [19:12] pigdude: shanebo, i can see their value if used to handle synthesizing events, so to speak, as in the when(a, b, c) example, but honstely that code is so easy to write on my own and i don't see the benefit of adding another dependency for it. and no function outside of top-level manager that others are based upon should ever deal with them. this is why i find the notion of everyday application code returning promises abominable [19:12] rsterner has joined the channel [19:12] jergason: like you do on the server side [19:12] jergason: which is nice [19:12] Rushing: how are these "modules" created? [19:12] eignerchris has joined the channel [19:12] jergason: so then you can use the same require syntax [19:12] jtgiri_ has joined the channel [19:13] tih-ra_ has joined the channel [19:13] cl0udy has joined the channel [19:13] shanebo: pigdude I guess I'd need to see how you handle it in a simple scenario. My experience is that it always feels like a hack [19:13] perezd has joined the channel [19:13] jergason: Rushing: same way as on the server [19:14] jergason: Rushing: you create your object, and at the bottom of the file, assign it to module.exports [19:14] pigdude: shanebo, mgr = new MyManager(). mgr.listen('whateverLoadEvent', fn). [19:14] nephics has joined the channel [19:14] pigdude: shanebo, where whateverLoadEvent is fired when x, y, z are done [19:14] jergason: http://dailyjs.com/2011/07/21/framework-72/ [19:14] Rushing: but there is so much not available client-side that is done in the server-side js, so i'm just not getting how this works [19:15] larsschenk has joined the channel [19:15] pigdude: shanebo, if that event is so specific, it should be up to MyManager to specify and manage the dependencies [19:15] freewil has joined the channel [19:15] freewil has joined the channel [19:15] shanebo: pigdude this all assumes you're in the same module? [19:15] larsschenk has left the channel [19:15] pigdude: shanebo, that way we're dealing with descriptive message names. so important in event-driven app, and message-passing in general [19:15] pigdude: *descriptive event names [19:15] taf2 has joined the channel [19:15] Hamms has joined the channel [19:15] sylvinus has joined the channel [19:15] pigdude: on(db, screen, ...) is practically an antipattern except in the lowest-level of code [19:16] rrjamie has left the channel [19:16] shanebo: pigdude agreed, but it starts to get very tricky when your code are in separate files [19:16] pigdude: as opposed to on(xServicesInit) [19:16] pigdude: why is that? [19:16] shanebo: pigdude hence, my asking what you use as a mediator [19:16] pigdude: shanebo, custom code [19:16] mcluskyd_ has joined the channel [19:16] reid has joined the channel [19:16] shanebo: pigdude, so you have a module that's required in each file? [19:17] CIA-109: node: 03Ben Noordhuis 07isolates * refdf274 10/ (src/node.cc src/node_vars.cc src/node_vars.h): Remove per-process globals from per-thread context. - http://git.io/Lty0SA [19:17] CIA-109: node: 03Ben Noordhuis 07isolates * r19640de 10/ src/node.cc : Separate per-process and per-thread init logic. - http://git.io/E-yJQg [19:17] pigdude: shanebo, well yea, that's certainly better than repeating the low-level events in each file [19:17] jerrysv: mikeal: i still think that's insane for 2 reasons: 1) a lot of modules also have .gitignore, which means their dependencies don't get committed, and 2) some modules still get compiled, which is havok when going between platforms with one git repository [19:17] pigdude: and not in each file -- [19:17] jtgiri_ has joined the channel [19:17] pigdude: different objects manage different things [19:17] pigdude: not one big god-object to compose all events :^) [19:17] maushu has joined the channel [19:17] mikeal: jerrysv: that .gitignore is a huge mistake, copied from habits of rub programmers [19:17] pigdude: if you provide a concrete example, i can go on [19:18] shanebo: pigdude I much prefer one mediator, like window on the front end [19:18] NoAnyLove has joined the channel [19:18] mikeal: jerrysv: yes, some get compiled, that is fine [19:18] mikeal: the code to be compiled should still be checked in [19:18] mikeal: and deployment should include an npm build call [19:18] pigdude: shanebo, oh god [19:19] pigdude: shanebo, browser code can't just rely on window except in the simplest of cases [19:19] mikeal: ahha, rub programmers, meant ruby, obviously [19:19] jbrokc has joined the channel [19:19] pigdude: shanebo, dom events should be private to more descriptive events with widgets, etc [19:19] jerrysv: mikeal: may be a mistake, still a reality, sometimes 5+ turtles, er, modules down [19:19] shanebo: pigdude I completely disagree :D [19:19] pigdude: shanebo, take a look at how google closure, extjs do it [19:19] pigdude: that's pretty much best practice [19:19] mikeal: remove that .gitignore [19:19] mikeal: problem solved [19:20] shanebo: pigdude take a look at how mootools handles delegation [19:20] pigdude: shanebo, this isn't a library question, it's an application question [19:20] wattz: mikeal: you around? [19:20] pigdude: shanebo, unless your library provides a component layer etc [19:20] mikeal: yes [19:20] wattz: nice lib with request :) [19:20] pigdude: shanebo, which closure and ext provide. but i've written similar things in mootools from scratch using its Implements: [Events] [19:20] mikeal: thanks [19:20] shanebo: pigdude, but I'm referring more to mediated events. Where two different classes need to talk to each other somehow. [19:21] wattz: would i use multipart if i wanted to post multiple files to a service? [19:21] pigdude: shanebo, yea, that's where you use a manager object [19:21] shanebo: pigdude right and that's where I prefer the window [19:21] pigdude: shanebo, which handles things not specific to either, such as their communication [19:21] shanebo: yep [19:21] pigdude: shanebo, what do you do with window to express that the user has gone to the next slide in a gallery? [19:22] shanebo: pigdude I use classes [19:22] brianc1 has joined the channel [19:22] pigdude: ? [19:22] Kunda has joined the channel [19:22] gf3_ has joined the channel [19:22] pigdude: css classes? [19:22] pigdude: if not, that's like saying 'i use functions' [19:22] shanebo: pigdude no mootools pseudo classes [19:23] pigdude: so you do this through the DOM? [19:23] wattz: mikeal: you can't chain the pipe to read, can you? [19:23] mikeal: what do you mean? [19:23] shanebo: pigdude no, I track it in a class instance [19:23] stantona has joined the channel [19:23] pigdude: exactly [19:23] wattz: mikeal: i have a post web service [19:23] wattz: i want to be able to post multiple images too at one time [19:23] pigdude: so what does that have to do with window [19:24] shanebo: pigdude well of course :D. But we were talking about mediating events [19:24] mikeal: how would you do that? [19:24] pigdude: shanebo, i am, i'm not sure that you are [19:24] mikeal: in one HTTP request you can only send images serialy [19:25] mikeal: if you want to send concurrently you need to use multple requests [19:25] wattz: so, someone sends an email to an address with 3 images attached, and subject and some text [19:25] wattz: i want to take that email, parse it and post it to a service [19:25] wattz: with all the images associated with it [19:25] mikeal: ok, and you want to stream that? [19:25] shanebo: pigdude, for example, let's say you have a very heavy one page app. And you keep your code clean and have several "controllers" in different js files. And let's say when a happens you need to notify the other controllers so they can act on that. I add events on window and fire window events when I need to communicate to other controllers. [19:26] wattz: mikeal: just trying to figure out the best way [19:26] mikeal: there isn't a great way to do that yet [19:26] pigdude: shanebo, so, you prefer god object [19:26] mikeal: it's still kind of a PITA [19:26] shanebo: pigdude absolutely in those cases. [19:26] hipsters_ has joined the channel [19:26] pigdude: ick [19:26] wattz: yeah, and for now the backend is django [19:26] mikeal: but, isaacs is doing some work on fstream [19:26] grampajoe has joined the channel [19:26] wattz: that im posting too [19:26] postwait has joined the channel [19:26] mikeal: which should define an interface for a single stream that represents multiple files [19:26] isaacs: mikeal: what with the whatnow? [19:26] shanebo: pigdude, here's an elaborate article on exactly what I'm referring to http://keetology.com/blog/2010/10/01/modules-and-callbacks-going-hollywood-with-mootools [19:27] wattz: hey isaacs [19:27] isaacs: hiya [19:27] zmbmartin has joined the channel [19:27] wattz: ltns as well [19:27] shanebo: pigdude what I'm advocated is much cleaner and much more decoupled code [19:27] shanebo: advocated = advocating [19:28] isaacs: ACTION scrolls back [19:28] wattz: isaacs: im trying to post 3 post vars + multiple images (to, from, subject and attachments) from an email to a webservice [19:28] isaacs: wattz: i think the fstream-style approach could work well there. i'm using it for node-tar [19:28] mikeal: yeah, it's more just about what a consistent multi-file interface looks like [19:28] isaacs: right [19:28] issackelly_ has joined the channel [19:28] pigdude: shanebo, that is awful code [19:28] wattz: yeah, im a scoche lost on approach with node [19:28] mikeal: then we can add support to request and integrate it in to some kind of multi-part post [19:28] isaacs: what would be really nice would be a multipart lib in the style of node-tar [19:29] isaacs: i mean, the problem set is almost identical, just trading insane headers for insane nestability [19:29] wattz: and basically im using gmail/imap to do what mailgun does [19:29] mikeal: request could have multi-part support [19:29] pigdude: shanebo, i would have no choice but to rewrite code i inherited like window.addEvent('list.click', this.requestNote.bind(this)); [19:29] wattz: in django, it comes over as request.FILES [19:29] shanebo: pigdude he explores different ways to handle it. His last example is what he lands on. [19:29] mikeal: i've been trying to fit a parser in for a while [19:29] isaacs: since, with email at least, you can have a setup like: MP[ MP-alternate[ text, html ], img, img ] [19:30] mikeal: i tried felix's [19:30] mikeal: could get it integrated well [19:30] wattz: right now im using, node-imap, mailparser and requests [19:30] wattz: oh and temp [19:30] p1d has joined the channel [19:30] pigdude: "The brittleness of a directly referential style comes from the fact that one component knows too much about other components in the system. An object A that calls method X of object B directly, for example, has to know that that object B has method X.The brittleness of a directly referential style comes from the fact that one component knows too much about other components in the system. An object A that calls method X of object B directly, f [19:30] wattz: to create temp files like pythons mkstemp [19:30] zmbmartin: What are peoples frontend js framework of choice (Backbone, Spine, Sproutcore, Roll your own, etc.) Looking for suggestions. [19:30] pigdude: that's such bullshit i don't even know what to say [19:31] mike5w3c_ has joined the channel [19:31] pigdude: this is better than everything knowing about everything else, but it's barely better and it's basically trying to hack your way around good component design [19:31] AvianFlu has joined the channel [19:31] pigdude: in no circumstance should you ever be talking to window unless it's for a host object like window.location, or to use its load event [19:31] ovaillancourt has joined the channel [19:31] shapeshed has joined the channel [19:31] pigdude: binding random events to window is the antipattern to end all antipatterns [19:32] shanebo: pigdude yeah keeto is a tool. He knows nothing. He wrote a book about all the stuff he doesn't know. :D http://www.amazon.com/Pro-JavaScript-MooTools-Mark-Obcena/dp/1430230541/ [19:32] saikat has joined the channel [19:32] jbrokc_ has joined the channel [19:32] jetienne_ has joined the channel [19:32] ryanolds has joined the channel [19:32] pigdude: shanebo, i'm not some rube, i've had code accepted into the mootools project. and no matter what book deal this guy got, that blog post is utter shite [19:33] CarterL has joined the channel [19:33] isaacs: mikeal, wattz: so, the fstream pattern is basically this: emit "entry" for each child thing, which is a readable stream. writable parent streams have an "add" method that adds a new child (possibly pausing and queueing it, if it's already got a current entry), and then fstream's pipe method wires up entry -> add if there's an add method. [19:33] pigdude: shanebo, if that's how this guy thinks, i wouldn't want him designing my software [19:33] shanebo: pigdude if you prefer a pattern where you have tightly coupled code across objects, enjoy yourself. [19:33] wattz: when you get a request with files, what do the files look like? [19:33] isaacs: it does get kind of hairy, since (with a file system) there are cases where a child has children, whereas with something like tar, everything is a child of the tarball. [19:34] pigdude: shanebo, it's a cool proof of concept, but i hope it's not much more [19:34] wattz: I mean, the data itself [19:34] isaacs: wattz: it's a multipart internet message [19:34] deedubs has joined the channel [19:34] mikeal: it still emits substreams, it does continue to emit data for each file in one stream? [19:34] pigdude: shanebo, and an application that is event-driven is by nature decoupled. the whole thing is built on lightweight pub/sub [19:34] isaacs: mikeal: i think i do proxy data events, yes [19:34] wattz: yeah, im foggy on how http/post/put handles multiple files [19:35] wattz: ACTION has a slow moment [19:35] mikeal: so it does both? [19:35] isaacs: mikeal: but i don't use data events, since DirWriter's .write() method is a no-op [19:35] isaacs: mikeal: yes, it does both [19:35] mikeal: ok [19:35] cole_gillespie: isaacs, what do you think about the idea of having a cli tool to clean up unused files in npm installs. i am not sure if this already is available but last night i noticed that we are really at the mercy of whatever author includes inside of his npm package. this could be files that never get used and just take up space. sometimes it is a very large amount. [19:35] mikeal: so….. what does fstream('directory').pipe(stream) do? [19:35] isaacs: and pausing the parent pauses the current child, if there is one [19:36] petrjanda has joined the channel [19:36] isaacs: mikeal: well, it'd cat all the files together, if stream doesn't ahve an "add" method [19:36] orospakr has joined the channel [19:36] gsmcwhirter has joined the channel [19:37] isaacs: mikeal: if typeof stream.add === "function", then it'll call it for each new entry. [19:37] isaacs: mikeal: oh, also, you'll have to do fstream.Reader('directory') [19:37] wattz: i could just zip them together and stream and have python unzip on the post request [19:37] gsmcwhirter has joined the channel [19:37] isaacs: you have to explicitly name whether it's reader or a writer [19:37] shanebo: pigdude an app that's event driven is NOT decoupled by nature. Talk about shite. If you are directly spaghetti code calling all other object events from within each object, you call that decoupled? Decoupled is when object A doesn't need to know anything about object B. [19:37] mikeal: ok, that' answers that question [19:38] pigdude: shanebo, hence a manager object. but i prefer many to one [19:38] kevwil has joined the channel [19:38] mikeal: not an issue for me, i will just listen for the "pipe" event [19:38] isaacs: mikeal: i really need to document it. [19:38] mikeal: then noop the write() method [19:38] pigdude: shanebo, one manager object for a whole application is like some college project [19:38] pigdude: shanebo, hence my strong disdain for the window example [19:38] timbl has joined the channel [19:39] isaacs: just been spending all my time making it work. i'm drowning in pull reqs lately. [19:39] wattz: so mutli file posting in request! [19:39] gsmcwhirter has joined the channel [19:39] wattz: multi-part [19:39] micheil has joined the channel [19:39] pigdude: shanebo, and if i have that much resting on one object, i'd rather it not be a modified host object [19:39] isaacs: mikeal: it would be really nice if there was a way to have request take some files (or streams) as post parts. [19:39] shanebo: pigdude, many managers is more code and I'd argue for ill gain. [19:39] mikeal: yup [19:39] mikeal: going to add as soon as you're done [19:39] innociv_ has joined the channel [19:39] isaacs: mikeal: whether that uses fstream, or something smaller, doesn't really matter much [19:40] jedigras has joined the channel [19:40] isaacs: mikeal: i think fstream might be overkill for that use case [19:40] diminoten has joined the channel [19:40] IrishGringo has joined the channel [19:40] joshfinnie has joined the channel [19:40] micheil: morning chaps' [19:40] strmpnk has joined the channel [19:40] mikeal: i'm also going to either use fstream in filed or copy the api in filed [19:40] wattz: mikeal: and going to test and debug for you as soon as you're done [19:40] wattz: :) [19:40] jedigras: hi guys, i've seen ther are bunch of different DB drivers out there.. what do you guys recommend for MySQL and node? [19:40] strmpnk has joined the channel [19:41] isaacs: mikeal: i mean, all you really need is filename, mime-type, and contents. fstream is designed to do *everything* that node can do with the filesystem. you can write links with it, it preserves hardlinks, etc. it's the file system abstraction necessary for a compliant tar protocol. [19:41] eviltwin_ has joined the channel [19:41] isaacs: mikeal: if your use case is http, it's doing *much* more than you need. [19:41] CiRlE has joined the channel [19:41] shanebo: pigdude in other words, if you don't store anything on the mediator, but rather only use it to attach/fire events, how is that less elegant than a bunch of mediators doing the exact same thing? [19:41] isaacs: mikeal: otoh, if you want to make sure that files uploaded get a specific mode/owner/etc., then fstream could provide handy tools for that. [19:42] jbrokc_ has joined the channel [19:42] corren has joined the channel [19:42] wattz: mikeal: anything i can do to help out as well? [19:42] shanebo: pigdude (and we're not talking class/object/instance code, we're talking only communicating events to decoupled objects) [19:42] wattz: thanx isaacs [19:42] wattz: and mikeal [19:42] pigdude: shanebo, i only know objects [19:42] timbl: ACTION can'r find a one-line example of how to access a npm module from node -- the FAQ https://github.com/joyent/node/wiki/FAQ is pretty short  [19:42] pigdude: shanebo, anywho, [19:43] pigdude: shanebo, let's say down the road i want to change the behavior when the list item is clicked [19:43] isaacs: timbl: on the command line: npm install request. then, in your javascript; var request = require("request") [19:43] mikeal: not yet [19:43] mikeal: i'm waiting for fstream and node-tar to finish out [19:43] pigdude: shanebo, let's say there's something else that needs to happen to fire this event, or some step that should be taken before my listeners are called [19:43] mikeal: then i'll add support for them to request [19:43] mikeal: and then i'll improve filed [19:43] timbl: isaacs tx [19:43] pigdude: shanebo, now i have code everywhere talking about 'link.click' and not the more descriptive event [19:43] isaacs: mikeal: "finish out" = "has docs:"? [19:43] isaacs: mikeal: if you'er referring to code or feature completion, they're pretty well there now. [19:44] mikeal: has docs, and you're using it yourself in npm [19:44] isaacs: mikeal: k. gtk. [19:44] pigdude: shanebo, i can't just drop in my code and add custom behavior to the _composed_ event [19:44] mikeal: i know that you'll find all kinds of shit when you integrate with npm [19:44] mikeal: :) [19:44] isaacs: mikeal: the issue right now with tar is that it's not yet able to do everything that system tar can do [19:44] mikeal: and i'm crazy busy [19:44] isaacs: mikeal: but node-tar IS in npm today. [19:44] mikeal: i know [19:44] tjfontaine: I'm trying to write an addon for a 3rd party library, everything is fine in synchronous mode, but when I invoke it through eio I hit an issue where the thread stack is too small, is there an elegant solution to this problem that doesn't require modification to the 3rd party library? [19:44] pigdude: shanebo, i can go and modify at the link object, but now i might have serious spaghetti going on if the stuff that needs to happen doesn't concern it [19:44] isaacs: mikeal: the npm that's bundled with node uses it. [19:45] isaacs: so, that part of it is there, at least :) [19:45] shanebo: pigdude, you would handle whatever you need to handle before list.click and fire it when ready. [19:45] isaacs: what i need to do is use it *more* [19:45] shanebo: pigdude with a tightly coupled pattern you'd be editing all over the place. [19:45] pigdude: .. [19:45] pigdude: shanebo, sadly you don't even understand what i'm talking about [19:46] isaacs: cole_gillespie: hey [19:46] isaacs: cole_gillespie: so, the package author can set up an .npmignore file [19:46] CiRlE has joined the channel [19:46] pigdude: shanebo, i'm not sure what sort of large-scale js app dev you've done on the frontend, but this is an essential concept [19:46] isaacs: cole_gillespie: but, there's no way to limit what gets installed from the *user* point of view [19:46] pigdude: shanebo, and it really boils down to good OO design [19:46] cole_gillespie: right, but can we always trust the author? [19:46] isaacs: cole_gillespie: at least, not very reasonably [19:46] isaacs: cole_gillespie: if you write a ~/.npmignore that'll actually affect all packages you install on your system [19:47] pigdude: shanebo, by starting out binding all listeners to window and firing events at window, you've backed yourself into a corner [19:47] pigdude: shanebo, and for no good reason [19:47] isaacs: cole_gillespie: but it's not per-package, so if they have a huge file called "foo.js", and you add that to ~/.npmignore, then no package anywhere can ever ahve a file named that [19:47] isaacs: cole_gillespie: so it's a bit aggressive. [19:47] shanebo: pigdude, you're advocating many mediators. I'm advocating one. Same basic pattern. But your gotcha example presents the exact same problem for you as it would for me. [19:47] cole_gillespie: i reduce exactly, the biggest problem i see here is inside of test dirs [19:47] RORgasm has joined the channel [19:47] isaacs: cole_gillespie: yes. [19:47] tjholowaychuk has joined the channel [19:47] isaacs: cole_gillespie: this is a huge problem for npm right now. [19:47] cole_gillespie: i reduces my node_modules file size by 85% last night [19:48] cole_gillespie: areduced* [19:48] isaacs: cole_gillespie: exactly. [19:48] cole_gillespie: reduced* [19:48] tjholowaychuk has joined the channel [19:48] cole_gillespie: I just started building my idea for a solution [19:48] isaacs: cole_gillespie: in npm, for example, it bundles all its deps, and that includes node-tar, which has ridiculous tests [19:48] uptownben has joined the channel [19:48] shanebo: pigdude, anyway man, time to quiet the spam. It's okay that we vehemently disagree :) [19:48] isaacs: cole_gillespie: just unpaking the tarball fails on windows, because of a stupidly long filename (which is 100% required to properly test that it's generating tarballs correctly) [19:49] uptownben: I should be able to use .indexOf in node, correct? [19:49] cole_gillespie: right, so find a way to weed out what is not needed while at the same time keeping the important files (README, LISCENSE etc) [19:49] joshsmith: anyone want to help me build a Factual module using signed OAuth 2 requests? [19:49] mmalecki: isaacs: last time I checked this filename broke github layout :) [19:49] pkrumins: isaacs: what was the URL to the page that showed the dependency count for node.js modules [19:49] joshsmith: err 2-legged Oauth... [19:49] eviltwin_ has joined the channel [19:50] pkrumins: isaacs: i want to pick a popular node.js module to blog about today. :) [19:50] bnoordhuis: http://lwn.net/Articles/471501 <- HP to open-source webOS [19:50] cole_gillespie: pkrumins, blog about ntwitter [19:50] cole_gillespie: it is badass [19:50] cole_gillespie: it took me 10 minutes to connect to the firehose and spit tweets out in real time [19:50] pigdude: shanebo, ok, but i suggest you read down to the comment by ROLF-NL. it is spot-on and describes the problem succintly with this approach. unfortunately i can't link to it because the blog doesn't have named anchors on the comments, and you can't even search for it because it's using canvas where it should be using html. anyway it's about the tenth comment from the bottom [19:51] mmalecki: ntwitter++ [19:51] CiRlE has joined the channel [19:51] pkrumins: awesome sauce [19:51] pkrumins: blogging about ntwitter [19:52] mmalecki: AvianFlu: ^ [19:52] cole_gillespie: isaacs, i spent a lot of time thinking about a solution last night as i was realizing the massive amount of overhead that can potentially come down the pipe if the author is not smart about their .npmignore [19:52] pkrumins: AvianFlu: :D [19:52] AvianFlu: pkrumins, ++ [19:52] AvianFlu: :D [19:52] pigdude: shanebo, that being said i disagree with the guy's proposed alternative, but he says himself that coding is not his strong suit [19:52] pkrumins: AvianFlu: i'll send you a draft in about 20 mins ok? [19:52] AndreasBotsikas has joined the channel [19:52] p1d has joined the channel [19:52] cole_gillespie: pkrumins, have you ever used ntwitter? [19:52] AndreasBotsikas: Hello everybody [19:53] chilts: ah cool, I was just about to look for such a thing :) [19:53] AvianFlu: pkrumins, sounds cool [19:53] chilts: ACTION has an idea [19:53] AndreasBotsikas: I am working on the webinos team which is build around node [19:53] pkrumins: cole_gillespie: i just did :) [19:53] cole_gillespie: go register a api key on twitter and follow the instructions for how to lock on to a bounding box [19:53] AndreasBotsikas: and I have just finished writing the visual studios instructions on how to create a native node module on windows [19:53] cole_gillespie: it is really amazing to see how much data you get [19:54] pigdude: shanebo, anyway thanks for the link, always good to see another way people are approaching these sorts of things [19:54] AndreasBotsikas: I have posted about that in http://botsikas.blogspot.com/2011/12/building-native-modules-for-nodejs-06.html [19:54] pkrumins: cole_gillespie: doing it! [19:54] pigdude: shanebo, especially so i know what's going on when i encounter this code some day :^) [19:54] AndreasBotsikas: should it in the mailing list? [19:54] cole_gillespie: AvianFlu, i actually was invited by the nytimes to hack at their latest hackfest and used ntwitter to place second [19:54] cole_gillespie: http://open.blogs.nytimes.com/ [19:54] AvianFlu: sweet! [19:54] cole_gillespie: the post on the home page is the one about the hackfest [19:54] pkrumins: cole_gillespie: how do you apply for an API key? [19:55] cole_gillespie: pkrumins, start here https://dev.twitter.com/ [19:55] pkrumins: thanks [19:56] AvianFlu: pkrumins, you should check out the commit history on that lib, it's a fork of a fork at this point and I'm the 3rd generation maintainer :D [19:56] AvianFlu: open source FTW [19:56] CiRlE has joined the channel [19:56] pkrumins: AvianFlu: +5 (insightful) [19:59] kenbolton has joined the channel [19:59] mmalecki: cole_gillespie: http://happystance.s3-website-us-east-1.amazonaws.com/ ? awesome! [20:00] Me1000 has joined the channel [20:00] jinside has joined the channel [20:00] eviltwin_ has joined the channel [20:00] cole_gillespie: ya, pretty awesome eh? [20:00] MrNko has joined the channel [20:01] cole_gillespie: if you drill down on the circles you can actually see the happiness of new yorkers for each stop [20:01] baudehlo1 has joined the channel [20:01] CiRlE has joined the channel [20:02] bradleyg has joined the channel [20:03] mcluskydodallas has joined the channel [20:05] r1ngzer0 has joined the channel [20:05] eviltwin_ has joined the channel [20:05] stantona has joined the channel [20:06] CiRlE has joined the channel [20:07] jinside: not to side track the discussion: i'm getting into node, but i need someone much more experienced than me to pay for hourly consultation/coding help. if you're interested and you have a blog or twitter account that you can link me to that conveys a tiny bit of your coding credibility, i'd love for you to shoot me a message so we can work out a price and i can tell you who i am and what i'm trying to do. once again, sorry for hija [20:09] marienz_ has joined the channel [20:10] frabcus has joined the channel [20:11] cole_gillespie: jinside you do not need to pay anyone. there is so much free info out there. [20:11] CiRlE has joined the channel [20:11] chilts: sounds like he needs someone to do something, rather than do it alone :) [20:11] pkrumins: AvianFlu: idea as I was writing the article and examples [20:12] pkrumins: AvianFlu: every time you have to do var twit = new twitter({...}) [20:12] cole_gillespie: jinside, what os are you running? [20:12] pkrumins: AvianFlu: how about you make those args available to when you require? [20:12] jinside: cole_gillespie: win7 :) [20:12] pkrumins: AvianFlu: like var twitter = require('twitter')({ key: 'a', access_token: 'b' }); [20:12] pkrumins: AvianFlu: and that can be optional! [20:12] pkrumins: or maybe you already support taht [20:13] pkrumins: havent looked at src [20:13] kenbolton has joined the channel [20:13] kenbolton has left the channel [20:13] cole_gillespie: jinside, get virtual box and a copy of linux( debian or ubuntu ) i recommend ubuntu 10.04 lucid linux for beginners because it has ALOT of tutorials on how to get things going. [20:13] base698 has joined the channel [20:14] AvianFlu: pkrumins, it's not a bad idea [20:14] AvianFlu: it's set up to be used with `new` though [20:14] AvianFlu: you could do `new require('ntwitter')()` maybe, but that's kinda ugly [20:15] pkrumins: you should also do the trick of `if (!(this instanceof twitter)) { return new twitter(...) }` [20:15] pkrumins: so you can use it without new. [20:15] pkrumins: AvianFlu: let me patch that in for you! [20:15] pkrumins: also i am done with the article [20:15] pkrumins: i'll PMit to you [20:15] AvianFlu: cool [20:15] AvianFlu: also, that sounds like a sweet patch [20:16] jinside: cole_gillespie: much appreciated, but what i'm looking for is actually consultation on implementing a particular architecture for audio streaming... it's not a matter of me not knowing how to code basic javascript and get node running, but rather a matter of me not being knowledgeable about certain best practices, protocols, etc. [20:16] pkrumins: AvianFlu: yeah [20:16] CiRlE has joined the channel [20:17] cole_gillespie: jinside, this should help you get your feet wet [20:17] cole_gillespie: https://gist.github.com/1453116 [20:19] AndreasBotsikas has joined the channel [20:20] AndreasBotsikas: jinside: node v0.6 runs on windows too but linux is much better documented atm [20:20] cole_gillespie: jinside, trust me. you want to learn on linux [20:20] cole_gillespie: unless you like being frustrated [20:21] AndreasBotsikas: plus you will get the node-waf which doesn't run on windows [20:21] CiRlE has joined the channel [20:21] cole_gillespie: plus virtualbox is awesome. really fast, makes switching between operating systems really seemless [20:21] jinside: i do in fact need node-waf, so linux it is [20:21] cole_gillespie: plus you will have a dedicated env [20:21] AndreasBotsikas: node-waf will be replaced by gyp which does work on windows (but still is not well documented atm) [20:21] tjholowaychuk: i remember programming on windows, and i remember when i stopped i actually started to enjoy writing code [20:21] tjholowaychuk: haha [20:22] AndreasBotsikas: well some people have to do the dirty windows work [20:22] cole_gillespie: tjholowaychuk, i remember when my text editor was dreamweaver. i am so embarassed to say that now. [20:22] tjholowaychuk: frontpage! [20:22] tjholowaychuk: hell yeah [20:22] AndreasBotsikas: hehe [20:22] chrisdickinson: ACTION thinks back fondly to the days of MSVC++6 [20:23] chrisdickinson: with "intellisense". [20:23] tjholowaychuk: or homestead anyone? [20:23] AndreasBotsikas: nodepad++ will do just fine [20:23] cole_gillespie: miscrosoft visual studio [20:24] cole_gillespie: microsoft* [20:24] cole_gillespie: ew [20:24] AndreasBotsikas: but the msbuild is quite nice. I will be documenting the process of generating the vsproj with gyp [20:24] AndreasBotsikas: I have done this for webinos [20:24] stonebranch has joined the channel [20:24] pkrumins: Just published the 7th part in "Node.js modules you should know about" [20:24] pkrumins: This time it's the ntwitter! http://www.catonmat.net/blog/nodejs-modules-ntwitter/ [20:24] pkrumins: Anyone wants to submit this to hacker news for great karma? ;) [20:24] cole_gillespie: pkrumins, awesome dude. glad i could recommend it [20:25] pkrumins: cole_gillespie: yeah, thanks for recommending! [20:26] cole_gillespie: pkrumins, you should add a geo example those are the best [20:26] pkrumins: i was thinking about it, didnt seem useful [20:26] pkrumins: let me look at it again [20:26] CiRlE has joined the channel [20:27] uptownben: quick way to have node log to a file? [20:27] pkrumins: cole_gillespie: the thing was that is it a single point or how big is the radius of location? [20:27] p1d has joined the channel [20:27] pkrumins: oh you can do bounding boxes [20:27] cole_gillespie: pkrumins, http://bit.ly/vxGe7u line 37 - 48 [20:28] pkrumins: cole_gillespie: so what does that mean? [20:28] pkrumins: cole_gillespie: the -74,40,-73,41 [20:28] cole_gillespie: that is me defining a bounding box and then sending all of the tweets to the client to be processed based on the areas in new york the user selected [20:28] cole_gillespie: northeast and southwest corners [20:28] pkrumins: ah! [20:28] cole_gillespie: of bounding box [20:28] pkrumins: so it's a bounding rectangle [20:28] jbrokc has joined the channel [20:28] pkrumins: gotcha [20:29] cole_gillespie: yes, but then if on the client i added a way for the user to create any area they want and then do some math to calculate if the lat,lng is within the regions the user created [20:30] cole_gillespie: pkrumins, here is a photo. it might help you visualize http://farm8.staticflickr.com/7006/6467111553_d29c5aa71c.jpg [20:30] pkrumins: oic! [20:30] pkrumins: really awesome feature [20:30] pkrumins: adding it to blog post right away [20:30] cole_gillespie: @theCole on twitter [20:30] pkrumins: cole_gillespie: do you know what software it is in the pic? [20:31] cole_gillespie: yes, it is called finden ( german for find ) i created it [20:31] CiRlE has joined the channel [20:31] Nahual has joined the channel [20:31] pkrumins: cole_gillespie: oh haha. :) [20:31] cole_gillespie: it also processes the tweets in real time via a nltk api i created for natural language crunching [20:32] Nahual has left the channel [20:32] newy6 has joined the channel [20:32] cole_gillespie: pkrumins, it is still a work in progress though [20:33] pkrumins: gonna link to it [20:33] pkrumins: with the screenshot [20:33] cole_gillespie: sure thing [20:33] triptec has joined the channel [20:33] cole_gillespie: i was in the middle of updating my repo this morning. i need to put my package.json back in there so people can npm install [20:33] pkrumins: and it's on github, right? https://github.com/coleGillespie/node-finden [20:33] cole_gillespie: yes [20:34] pkrumins: cool [20:34] cole_gillespie: pkrumins, i need to update the README tonight. been really lazy [20:34] vguerra has joined the channel [20:34] louissmit has joined the channel [20:35] pkrumins: gogogo before the article has been read by 10k people [20:35] dubenstein has joined the channel [20:35] whitman has joined the channel [20:36] heavysixer has joined the channel [20:36] CiRlE has joined the channel [20:37] cole_gillespie: about to leave the lab and go home and get it in NPM right now [20:37] TheJH: heh, what do you guys think? https://gist.github.com/1453198 [20:38] localhost has joined the channel [20:39] stephank has joined the channel [20:39] juanlargo has joined the channel [20:40] jergason has joined the channel [20:40] TheJH: ryah, isaacs, what do you think about using eval() for cool REPL magic? https://github.com/joyent/node/issues/2297 [20:41] TheJH: ACTION hides before he gets hit by some flying object [20:41] rick-_ has joined the channel [20:41] mmalecki: ACTION throws a mug at TheJH  [20:41] hotch has joined the channel [20:41] TheJH: ACTION saw that coming and didn't get hit :) [20:41] CiRlE has joined the channel [20:41] mmalecki: ACTION tries again with a LCD [20:42] TheJH: uaaargh [20:42] gtramontina has joined the channel [20:42] natebeck has joined the channel [20:42] TheJH_phone has joined the channel [20:43] tjholowaychuk has joined the channel [20:43] tjholowaychuk has joined the channel [20:44] cole_gillespie: pkrumins, if you want to save whatever you have as a draft i can ping you with a DM on twitter when i have the README and package.json ready [20:44] cole_gillespie: should not be too long [20:44] cole_gillespie: a few hours [20:45] pkrumins: cole_gillespie: well it's already on hackeer news front page [20:45] cole_gillespie: lawl [20:45] cole_gillespie: i just do not have access so github on the IBM network [20:46] cole_gillespie: so i cannot push my changes till i get back to the condo [20:46] cole_gillespie: to* [20:46] cole_gillespie: i am heading out now though. [20:46] CiRlE has joined the channel [20:47] insin has joined the channel [20:48] sh1mmer has joined the channel [20:48] pkrumins: cole_gillespie: still here? [20:48] pkrumins: cole_gillespie: ping me when you're back [20:51] djcoin has joined the channel [20:51] wbednarski has joined the channel [20:51] CiRlE has joined the channel [20:53] tvw has joined the channel [20:53] markwubben has joined the channel [20:54] chrisvwebdev1 has joined the channel [20:55] ryanfitz has joined the channel [20:55] jhurliman has joined the channel [20:56] CiRlE has joined the channel [20:58] ryanj has joined the channel [20:58] adambeynon has joined the channel [20:58] mmalecki: ahahahahaha [20:59] mmalecki: https://github.com/repositories [20:59] sansmischevia has joined the channel [20:59] mmalecki: notice how there's no node in Interesting tab [20:59] chrisvwebdev has joined the channel [20:59] sansmischevia_ has joined the channel [21:00] polotek has joined the channel [21:01] baudehlo has joined the channel [21:01] polotek: rauchg: you there? [21:01] CiRlE has joined the channel [21:02] StanlySoManly has joined the channel [21:03] deedubs: mmalecki: I think those repos are from thechangelog [21:03] mcluskydodallas has joined the channel [21:03] chrisvwebdev has left the channel [21:03] fotoverite has joined the channel [21:03] trepan has joined the channel [21:04] mehtryx has left the channel [21:04] mmalecki: deedubs: ah, highly possible. so now: why didn't node get changelog'd? [21:05] tjholowaychuk: i think the node crew picked those [21:05] tjholowaychuk: they dont seem to change [21:05] tjholowaychuk: node -> github [21:05] carlosro_ec has joined the channel [21:06] carlosro_ec: hi everyone [21:06] bnoordhuis: https://github.com/WindowsAzure <- msft's on github [21:06] mmalecki: actually, how the fuck did I end up browsing github. [21:07] carlosro_ec: I develop a tcp server in nodejs and a client in java, but when a send a string from the client the server dind't receive all the string only the first letter [21:08] cody-- has joined the channel [21:10] TheJH: carlosro_ec, your code, please [21:11] TheJH: bnoordhuis, you're there? As a node core guy, what's your opinion on https://github.com/joyent/node/issues/2297 ? :D [21:12] carlosro_ec: http://pastebin.com/ujjJy9AR [21:12] carlosro_ec: that's the server code [21:13] bnoordhuis: TheJH: you should ask isaacs, he likes REPLs and eval [21:13] TheJH: isaacs, you there? [21:13] isaacs: bnoordhuis: i actually think that thejh's proposal is kind of nice. [21:13] isaacs: i'm torn, of course. [21:13] isaacs: because eval IS pretty freaking evi. [21:13] jbrokc_ has joined the channel [21:13] isaacs: *evil [21:13] carlosro_ec: and there's the java code http://pastebin.com/k7r1ZUQz [21:13] TheJH: isaacs, welcome on the dark side :D [21:13] isaacs: but it might be a lighter-weight approach than running in a debugger. [21:14] isaacs: the other huge negative is that it'd involve adding some hooks to the module system. [21:14] gregpascale has joined the channel [21:15] markwubb_ has joined the channel [21:15] isaacs: but… i guess… not huge hooks. [21:15] isaacs: ryah: you around? [21:16] carlosro_ec: any idea TheJH? [21:16] isaacs: the other aspect of this would be the security issues. you'd want to make damn well sure that only the regular node repl had this feature, and in that case, might as well just have it on by default. (sort of like how it has useGlobal on by default) [21:16] TheJH: isaacs, I already did that in my patch [21:17] CiRlE has joined the channel [21:17] seebees has joined the channel [21:18] ryah: isaacs: yes [21:18] ryah: isaacs: what's up? [21:18] isaacs: ryah: thoughts on an "enter" command in repl to work in the context of a given module? [21:18] TheJH: carlosro_ec, I think that the problem is that you don't handle chunking stuff right on the node side [21:18] isaacs: it's kind of a handy idea. [21:18] isaacs: ryah: https://github.com/joyent/node/issues/2297 [21:19] isaacs: ryah: downsides: non-zero modification to module system, uses "eval". upsides: it's pretty awesome, and only for the node-repl anyhow. [21:20] shapeshed has joined the channel [21:20] GrizzLyCRO has joined the channel [21:20] pkrumins: AvianFlu: i was about to patch in what we talked about, and it turns out that is already supported! [21:20] carlosro_ec: how node can control that? [21:20] pkrumins: AvianFlu: -> if (!(this instanceof Twitter)) return new Twitter(options); <- already in there [21:20] pkrumins: AvianFlu: options too! [21:21] AvianFlu: hilarious! [21:21] carlosro_ec: maybe at the 'end' event of stream? [21:21] wankdanker has joined the channel [21:22] TheJH: carlosro_ec, you have to collect data events until you get a character that tells you that the message has ended, usually a newline [21:23] jbrokc_ has joined the channel [21:23] magnetik: If someone has some jquery and node.js skills : http://stackoverflow.com/questions/8451468/node-js-jquery-plugin-loading [21:23] magnetik: Thanks :) [21:23] ryah: isaacs: *shrug* [21:24] isaacs: i think some emacs/slime folks were asking about how to do this a while back, and we were like, "um… you can't" and then they went away [21:24] isaacs: slimey emacsers... [21:24] krill has left the channel [21:25] carlosro_ec: thank's TheJH i'm going to try some code. [21:25] HT has joined the channel [21:27] insin has joined the channel [21:27] Carter has joined the channel [21:29] tiglionabbit has joined the channel [21:30] uzman_cavus has joined the channel [21:30] uzman_cavus has left the channel [21:30] isaacs: bnoordhuis: yay/nay? [21:30] CIA-109: node: 03Ben Noordhuis 07isolates * r7597cad 10/ (src/node_isolate.cc src/node_isolate.h): isolates: rename node::Isolate member isolate_ to v8_isolate_ - http://git.io/e3IAoQ [21:30] CIA-109: node: 03Ben Noordhuis 07isolates * r2821c8b 10/ (src/node_isolate.cc src/node_isolate.h): isolates: have node::Isolate manage the v8::Context - http://git.io/3TM6nA [21:30] CIA-109: node: 03Ben Noordhuis 07isolates * r372540c 10/ src/node.cc : isolates: add process.tid property, pass args to isolate - http://git.io/lngBPA [21:30] isaacs: bnoordhuis: regarding eval module-context thingie [21:30] bnoordhuis: isaacs: if you think it's fine [21:31] isaacs: ok. i'll review the code then, seems like there's no strong objection to the concept. [21:31] TheJH: isaacs, :) [21:33] blueadept: anyone know a good example of a mustache.js conditional? [21:34] JaKWaC has joined the channel [21:35] arcanis has joined the channel [21:36] blueadept: hm wait i think i got it [21:38] lorfds has joined the channel [21:38] jomoho2 has joined the channel [21:38] magnetik_ has joined the channel [21:39] fotoverite has joined the channel [21:40] scooteronce has joined the channel [21:41] kriszyp4 has joined the channel [21:43] jomoho has joined the channel [21:45] r1ngzer0 has joined the channel [21:46] blueadept: is there a way to test for a false condition in mustache.js? [21:46] tuhoojabotti: lool [21:46] tuhoojabotti: Github send me email that they have shipped my swag [21:46] blueadept: like if i do {{#condition}} it'll show, but what if its false? [21:46] tuhoojabotti: The tracking code shows me that the delivery was attempted at 12:54 pm on July 05, 2010. [21:46] tuhoojabotti: :D [21:46] tuhoojabotti: Perhaps it's not my package [21:47] tjholowaychuk: blueadept isn't there an else? [21:47] blueadept: i dont see it in any of the examples, but let me try [21:47] StanlySoManly has joined the channel [21:48] tjholowaychuk: not literally "else", im curious, taking a look [21:48] blueadept: btw whatup tj, hows it going? [21:48] tjholowaychuk: not bad [21:48] tjholowaychuk: damn i dont see an else [21:48] tjfontaine: oh man, I wonder if I can turn the hilight off for this channel [21:48] tjholowaychuk: http://mustache.github.com/mustache.5.html [21:49] blueadept: yeah its just straight up if it's true, then render, no else [21:49] tjholowaychuk: i guess you have to supply the invert in the object [21:49] tjholowaychuk: lame [21:49] blueadept: wait [21:49] blueadept: inverted sections [21:49] JaKWaC has joined the channel [21:49] blueadept: yeah [21:50] blueadept: tj, you still in canada or are you living in the bay area? [21:50] nodetest has joined the channel [21:50] tjholowaychuk: canada [21:50] blueadept: you going to the node summit? [21:51] tjholowaychuk: probably not [21:51] blueadept: aye [21:52] tomyan has joined the channel [21:54] lduros has left the channel [21:54] pkrumins: Does anyone remember the site that had a list of most linked npm modules? [21:55] jocafa: http://search.npmjs.org/ ? [21:55] pkrumins: :D [21:55] pkrumins: that's it! [21:55] pkrumins: most depended on! [21:56] CoverSlide: holy fuck ... 379 packages depend on underscore [21:56] tjholowaychuk: 379 people have no clue [21:56] tjholowaychuk: what they're doing [21:56] jerrysv: tjholowaychuk: you mean that node has some sort of magical map and reduce and each functionality hiding somewhere? [21:57] jerrysv: shanebo: following up on silk, i don't think i like their include functionality [21:57] CoverSlide: oh i guess anyone using backbone is using it too [21:57] tjholowaychuk: jerrysv haha yeah, unfortunately no-one seems to notice that [21:57] shanebo: jerrysv, being that it's global? [21:57] jerrysv: tjholowaychuk: well, it's not like there's some sort of documentation on the language or anything [21:57] jerrysv: shanebo: exactly [21:58] jerrysv: tjholowaychuk: only thing i can think of is people coming from an ie-centric world? [21:58] shanebo: jerrysv, how is that different than other ss languages? [21:58] tjholowaychuk: i think it's the same crowd as the jquery people [21:58] ragnis has joined the channel [21:58] tjholowaychuk: they just accept that things work [21:58] tjholowaychuk: and dont really search beyond that [21:58] jerrysv: and underscore is a common library on the client [21:59] jerrysv: shanebo: it isn't, was just commenting [21:59] shanebo: tjholowaychuk, jerrysv, but isn't the whole module paradigm mainly because js doesn't have classes? [21:59] tjholowaychuk: not really no [22:00] hotroot has joined the channel [22:00] springmeyer: I'm on windows 7 with node v0.6.5 and noticed that __dirname returns an absolve path like "c:\foo" and not "c:\\foo". Shouldn't it return \\ ? it appears that path.resolve needs that to work right: https://img.skitch.com/20111209-n73fwkc82y8y363uuuxw9gwr9u.jpg [22:00] hotroot: Why are you so good node? [22:00] jerrysv: but the modules do a great job of separating concerns [22:00] jerrysv: by force [22:00] Vennril has joined the channel [22:01] baudehlo1 has joined the channel [22:02] Magnars has joined the channel [22:03] CoverSlide: springmeyer: a string doesn't need to escape itself. only a string literal in code or a command line needs to be escaped [22:04] springmeyer: CoverSlide: I think \\ is not escaping but rather signifying the root on windows [22:05] CoverSlide: well it shouldn't have \\ [22:05] springmeyer: CoverSlide: do you see how path.resolve doubles up the directory incorrectly in the image? [22:05] springmeyer: https://img.skitch.com/20111209-n73fwkc82y8y363uuuxw9gwr9u.jpg [22:05] CoverSlide: seems to be a bug in the windows version [22:05] springmeyer: okay, so maybe its path.resolve that is buggy? [22:06] BobbyB has joined the channel [22:06] CoverSlide: ACTION shrugs [22:07] jerrysv: seems to work better in windows than it does in reactos [22:07] larsschenk1 has joined the channel [22:07] jerrysv: so that's a plus [22:07] larsschenk1 has left the channel [22:07] BobbyB: Hello People, I'm new to Node.js. Is there a quick-start-video that will visually help me getting up and running? [22:08] CoverSlide: who the hell uses reactos? [22:08] hotroot: Bobby: I'd just read a few examples, and then read the node API [22:08] BobbyB: thanks hotroot [22:08] jerrysv: CoverSlide: i did, for about 15 minutes that it took to see if node worked [22:08] hotroot: It's essentially like a server library for JavaScript in a way. You still use pure javascript, but you have handy functions you need to learn to use [22:09] FireBomb has joined the channel [22:09] hotroot: At least that's how I think of it [22:09] johnnywengluu has joined the channel [22:09] ragnis has left the channel [22:09] BobbyB: I followed the installation and it appears to be successful, I'm just think on how to interact with it now... [22:09] hotroot: Find a hello world example and screw with it [22:09] BobbyB: cool thanks [22:10] hotroot: My code probably isn't the most elegant, but I can put my telnet chat server on pastebin and link it to you if you want, it's pretty clear what's going on [22:10] hotroot: Lol [22:10] hotroot: He left xD [22:12] imarcusthis has joined the channel [22:13] jl_hki has joined the channel [22:14] zomg: If my node app spikes to 100% CPU for apparently no reason every 7'ish seconds, should I be worried? =) [22:14] zomg: Apparently no reason = ran profiling and JS code isn't using any ticks at all while it's still spiking [22:14] V1 has joined the channel [22:15] hotroot: Using more CPU technically isn't a bad thing. Idealistically a computer should always be using 100% CPU all the time to be efficient [22:15] hotroot: That's sort of, pseudo thought though, no actual backing, but I hope you get the idea [22:15] zomg: Yeah I just want to understand why it's doing that spiking when it's apparently happening in native code [22:15] zomg: And yeah I get what you mean :) [22:16] zomg: I was running strace too and it didn't really seem to indicate anything in particular [22:16] hotroot: Maybe it's your anti-virus or something? [22:16] zomg: Antivirus on my linux VPS? :P [22:17] hotroot: lol [22:17] hotroot: What VPS are you using? I'm considering getting a cheap one [22:17] hotroot: Going to get a seedbox in a few weeks, but they aren't really meant for hosting a server [22:17] zomg: Linode [22:18] zomg: I'm not a linux guru but I know my way around in a shell and I was perfectly capable of setting up their VPS and so far been quite trouble-free [22:18] malkomalko has joined the channel [22:18] `3rdEden has joined the channel [22:18] hotroot: Hmm, storage and transfer is pretty low, but then again I'm in seedbox mode, lol [22:18] zomg: Hehe [22:18] hotroot: What's the connection speed? [22:18] zomg: No idea, seems pretty good [22:19] hotroot: Weird that they don't say [22:19] zomg: I was transfering at 5000 kB/s the other day [22:19] hotroot: 5 Meg down? [22:19] jl_hki has joined the channel [22:19] hotroot: Is that your home internet limitation? [22:19] zomg: I have 100/100 at home but it usually doesn't go even close to that when transfering to outside scandinavia [22:20] zomg: My VPS is in London [22:20] `3rdEden has joined the channel [22:20] hotroot: Holy shit, 100/100 0.o [22:20] hotroot: I'm at 3Mbps here in Los Angeles =( [22:20] zomg: Well that's not entirely bad [22:20] zomg: Finland and sweden just happen to have pretty high speed broadband :) [22:20] `3rdEden: ._. [22:20] zomg: Not everyone has these of course [22:20] hotroot: Ah [22:20] jomoho has joined the channel [22:21] bnoordhuis: one more reason not to emigrate to the US of A [22:21] hotroot: Seedbox I'm looking at is $18 a month, 2.5TB traffic limit, and 300Mbps up [22:21] hotroot: Hard for me to ignore that when looking at this VPS for $20 [22:21] zomg: bnoordhuis: any ideas regarding the cpu spiking? every 7 seconds or so, watching from `top` [22:21] zomg: strace and --prof / nprof didn't really give anything useful [22:22] hotroot: bnoodhuis: Well speedtest.net says I'm slower then 70% of America, so not all of America is nearly this bad [22:22] zomg: I disabled everything else in my code except the initial connecting to 10 servers, so all it had was 10 sockets open and then it was idling [22:22] hotroot: Connecting to 10 servers? What are you writing? [22:22] bnoordhuis: zomg: if you run `time node app.js`, how much cpu time do you spend in user and kernel mode? [22:22] zomg: Am I just worrying about the spiking for no reason? Since it doesn't seem to spike much more when it actually isn't completely disabled [22:22] zomg: hotroot: www.bf3web.com [22:23] hotroot: Nice [22:23] bnoordhuis: hotroot: well... i take it 100/100 is pretty exceptional over there but it's fast becoming the default here [22:23] orkz has joined the channel [22:23] bnoordhuis: i can actually get 125/125 on my home address, i think [22:23] moepigal1234h has joined the channel [22:23] hotroot: I can only speak for this section of Los Angeles though [22:23] zomg: bnoordhuis: I'll give it a shot [22:23] hotroot: It's pretty rural, so I'm not surprised [22:24] michaelhartau has joined the channel [22:24] moepigal1234h: hello [22:24] moepigal1234h: http://bit.ly/uPBolO [22:24] hotroot: Hi [22:24] hotroot: google.com [22:24] context: self promotion ? [22:25] TheJH: moepigal1234h, what's this supposed to be? spam? [22:25] cognominal_ has joined the channel [22:25] zeade has joined the channel [22:26] context: moepigal1234h: watch your stocks man !!! [22:26] bnoordhuis: moepigal1234h: what's the deal? [22:26] zomg: bnoordhuis: 46.75s user 1.13s system 51% cpu 1:32.75 total [22:26] zomg: This was with it first connecting, and then I let it run (basically at that point it just idles) for a while [22:27] jomoho has joined the channel [22:27] scott_gonzalez has joined the channel [22:27] bnoordhuis: zomg: okay, so the issue is in your code [22:27] hotroot: Sadface [22:27] hotroot: "Build failed: -> task failed (err #1): [22:27] hotroot: {task: cxx sqlite3_bindings.cc -> sqlite3_bindings_2.o}" [22:28] pyparadigm has joined the channel [22:28] zomg: bnoordhuis: well, I ran using --prof, and I first ran v8.og thru nprof after it had connected. Then, I let it idle for a while, and ran the log again thru nprof. The JS code showed no more ticks than the initial nprof run [22:28] hotroot: Any idea why that failed? [22:28] zomg: bnoordhuis: doesn't that indicate that my code isn't doing anything at all? [22:29] bnoordhuis: zomg: can you link me to the nprof output again? [22:29] zomg: Moment [22:30] zanefactory has joined the channel [22:30] zomg: bnoordhuis: this is after it had connected http://jjh.fi/~jani/nprof/start.log and this is after I let it sit for a while after the first snapshot http://jjh.fi/~jani/nprof/next.log [22:30] mez_ has joined the channel [22:31] cp42 has joined the channel [22:31] cp42: hey guys [22:31] bnoordhuis: line 12380: unknown code state: 0x3aec3b98 [22:31] bnoordhuis: Code move event for unknown code: 0x45bd8520 [22:31] bnoordhuis: ^ kind of odd [22:31] mcluskydodallas has joined the channel [22:32] cp42: how do i find out which callback throws an exception when i just get a "node.js:201 throw e; // process.nextTick error, or 'error' event on first tick"? [22:32] hotroot: Fack, why won't this stupid sql module install [22:32] cp42: i mean, this is not helpful at all, the stack trace neither [22:32] level09 has joined the channel [22:32] polotek: cp42 name your callbacks [22:32] zomg: bnoordhuis: I was wondering about those as well, I have no idea what that could be though [22:32] polotek: the name will be in the stacktrace [22:32] hotroot: And I'm a dumbass, guessing this build is failing because I don't have sqlite installed... [22:33] hotroot: Or not, I guess I do have it... [22:34] zomg: hotroot: did you ever figure out how to get nprof going btw? [22:34] hotroot: Sort of, yeah [22:34] hotroot: Doesn't really matter right now, I don't need to profile anything atm, it's still in alpha [22:34] zomg: Ok :) Just recall you said last night you were too tired to figure it out now :D [22:34] hotroot: Nice memory, haha [22:34] hotroot: More concerned with getting sqlite working atm [22:34] bnoordhuis: zomg: 10921 32.0% 0.0% f57fe000-f57ff000 <- that's the vdso [22:35] bnoordhuis: zomg: i suspect your code is indirectly doing a lot of gettimeofday() syscalls or something [22:35] luckysmack has joined the channel [22:35] joshsmith has joined the channel [22:35] zomg: bnoordhuis: yes, it actually had a ton of those now for some reason, and munmap and mmap2 or something like that as well [22:35] michaelhartau has joined the channel [22:36] zomg: I'm not entirely sure why it would be doing lot of gettimeofday() though [22:36] zomg: Well, why it *is* doing it a lot [22:36] bnoordhuis: zomg: did you try `strace -c`? [22:37] bnoordhuis: that gives you a syscall tally at exit [22:37] zomg: Yes, that's where I saw gettimeofday(), munmap and mmap2 (those latter two were something like that, forgot) [22:37] cp42: polotek: i just named all callback and i still do not have anything usefull in the stack trace [22:37] zomg: those were the top 3 [22:37] zomg: gettimeofday was like hundreds of thousands I think... [22:38] zomg: Any ideas what could be causing the gettimeofday calls? [22:40] JaKWaC has joined the channel [22:41] bnoordhuis: zomg: biab, hungry baby to feed here [22:41] mmalecki: hahahaha https://github.com/hpwebos/webos/issues/1 [22:41] zomg: bnoordhuis: ok, thanks for your time :) [22:42] tjholowaychuk: mmalecki ahahaha [22:42] tjholowaychuk: that's awesome [22:42] brianseeders has joined the channel [22:43] tbranyen has joined the channel [22:43] tbranyen: hey mikeal, i know what you're saying about version locking. i just don't see a compelling reason *to* VCS node_modules [22:44] teadict: holy shit http://amber-lang.net/ this is glorious [22:44] tbranyen: never done it with python, never see it done with ruby, dependencies are even more easily fetched now that the package manager is bundled [22:44] mikeal: in python and rub you do global insalls [22:44] tbranyen: seems like the days of needing to bundle are gone [22:44] mikeal: so it doesn't help you [22:44] mehtryx has joined the channel [22:44] mikeal: with local installs we have new opportunities [22:44] mikeal: it's definitely better [22:45] tbranyen: for sure [22:45] tbranyen: don't really need to make fake virtual environments [22:45] tbranyen: i just don't see why you'd recommend it without some solid reason backing it [22:47] TheJH: can I set breakpoints from within node? like, there's an error, I spawn an isolate, the isolate freezes its caller, grabs a box of breakpoint needles, puts them into the caller isolate and then slowly lets it crash on? [22:47] polotek: tbranyen: everyone says that until they have problems with dep management [22:48] polotek: if you never run into them, good for you [22:48] TheJH: and can I also do the eval stuff the debugger can do? [22:48] polotek: cp42: gist some code so we can take a look [22:48] tbranyen: polotek: i don't get how you could run into an issue unless you're modifying some package's source [22:48] tbranyen: or not being specific in your package.json [22:48] `3rdEden has joined the channel [22:48] polotek: cp42: I would recommend https://github.com/tlrobinson/long-stack-traces [22:48] TheJH: I know it'd work with a loopback connection over TCP, but something internal would look much better to me [22:48] polotek: cp42: but I don't know if it's been updated for 0.6.x [22:48] tbranyen: its gonna pull the same stuff, it doesn't just change on you, unless someone unpublishes and then publishes something different under the same version [22:49] polotek: tbranyen: it's not just your package.json, it's the deps of all your deps as well [22:49] polotek: for instance we include express and it's pegged to a version [22:49] polotek: but express's package.json uses version ranges for it's deps [22:50] polotek: so every time you run npm install you could potentially get new code [22:50] fotoverite has joined the channel [22:50] polotek: and even though npm is great and the node community is following convention for the most part [22:50] hotroot: So many databases, such little time [22:50] hotroot: Going to try sqlite, although it is for a small server [22:50] polotek: not everyone sticks to strict semver processes [22:50] polotek: you could get some backwards incompatible change in a patch release and you're hosed [22:50] isaacs: polotek: "strict semver processes" <--- EUNDEFINED [22:51] isaacs: polotek: the definition of "doing semver properly" is "doing semver like i do" [22:51] mikeal: tbranyen: it's about having a clear list of changes [22:51] mikeal: between each deploy [22:51] polotek: isaacs: I think the outline on http://semver.org/ are pretty straight forward [22:51] mikeal: and knowing that doing the same source deploy to a new machine will still be identical [22:51] isaacs: polotek: but, actually, worse than that, because it really means, "doing semver like i *imagine* i do, in a perfect world, where my code is bug free" [22:51] polotek: there's definitely room for interpretation. but there's definitely a "wrong way" [22:51] cp42: damn, now even the zlib interface in 0.6.x is callback-only [22:51] isaacs: polotek: everyone does, and yet everyone disagrees about it. that, to me, is evidence of non-straight-forwardness [22:52] isaacs: polotek: the "wrong way" is "anything other than the way i do it" [22:52] mikeal: let's be honest, most people don't know what semver is [22:52] isaacs: you need to know and trust the author. [22:52] tbranyen: mikeal: yeah i guess if you could guarentee that npm would never have ambiguity it'd be fine [22:52] isaacs: i have been around the block on this one a few times, trust me. [22:52] tbranyen: npm packages* [22:52] mikeal: tbranyen: it's not even abiguity [22:52] polotek: isaacs: fair enough. all the more reason to check in deps :) [22:52] isaacs: sure, if yor'e deploying something. [22:52] mikeal: most people do ">=1.8" [22:52] isaacs: if you'er building a lib or a cli util, then checking in deps is kinda dickish [22:53] mikeal: or whatever [22:53] isaacs: imo [22:53] mikeal: you depend on a package that does that [22:53] mikeal: without knowing it, you deploy the same code to a new machine [22:53] tbranyen: mikeal: right, non-ambiguity in my mind means 1.8 nothing more or less [22:53] polotek: isaacs: yes, we're only talking about your project that you control and will not be distributed [22:53] mikeal: and it grabs a new version of that library with a breaking change [22:53] isaacs: there is no escape. you simply must have trust in the authors of the module you are using [22:53] polotek: or at least I'm only talking about that [22:53] isaacs: that trust is a tradeoff. it increases some risks, but decreases others. [22:53] tbranyen: i guess this makes a lot of sense, i've just been lucky and never experienced dep issues that would result from this [22:53] mikeal: this is what i think [22:53] isaacs: for instance, i use request in npm. mikeal can break my shit. [22:53] isaacs: i trust him, because i know where he lives. [22:54] mikeal: you write a module for release on the npm registry [22:54] mikeal: you should just use package.json deps [22:54] mikeal: in fact, you should not even version lock [22:54] isaacs: ACTION is going to write a blog post for blog.nodejs.org on this. [22:54] mikeal: let new people use new versions of deps and find failures [22:54] hotroot: I used NPM to install sqlite3, but node still cant find it. Glorious. [22:54] mikeal: and report bugs [22:54] polotek: isaacs: it's not about trusting the author or not [22:54] mikeal: we actually really really need that [22:55] polotek: it's about knowing when you need to *renew* your trust in the author [22:55] mikeal: but that is VERY different than the case of "i built this application that i'm deploying" [22:55] polotek: once you check in the dep, it's locked for you. you don't ever have to worry about that guy again, until you choose to upgrade [22:55] mikeal: i can't be finding bugs in other peoples shit without *knowing* that I'm running new code [22:55] polotek: he doesn't make that decision for you [22:55] isaacs: polotek: exactly [22:55] isaacs: ACTION smells violent agreement [22:55] mikeal: to get in the middle of polotek and isaacs real quick [22:55] mikeal: other peoples code with have bugs [22:56] cp42: why seems to be not a single api function anymore which just returns its result instead of calling a callback? [22:56] isaacs: it's best to assume that all code everywhere has bugs. [22:56] mikeal: all you can really control is when and where new code shows up that might have bugs [22:56] isaacs: you'll be right more often than you'er wrong [22:56] mikeal: right [22:56] tih-ra has joined the channel [22:56] OneOfOne: anyone have pointers on where to start for callbacks from different threads in c++? (mainly trying to work on node qt4) [22:56] mikeal: but when there is a bug, i want the line that breaks in something i can git bisect [22:56] jomoho2 has joined the channel [22:56] isaacs: you can establish that it doesn't have certain specific bugs, and then deploy, but you can't have that thing changing out from under you in production. [22:56] isaacs: npm !== git. [22:56] isaacs: no bisect, no shas, etc. [22:57] mikeal: exactly [22:57] isaacs: otoh, using git for package management is super freaking painful. [22:57] mikeal: you want to update a dep [22:57] mikeal: update it with npm, check it in, re-deploy [22:57] isaacs: yep [22:57] polotek: that's what I did all day Wednesday [22:57] polotek: along with write tests [22:57] mikeal: don't have the production deploy environment dynamically resolve dependencies [22:57] polotek: as a workflow, it's kind of a pain [22:58] mez_ has left the channel [22:58] polotek: and you have to worry about things like not checking in built files [22:58] polotek: but it saves you much greater headache, possibly in production. so get used to it ;) [22:58] mikeal: is there a way to force npm to make clean && rebuild any compiled deps? [22:58] isaacs: mikeal: npm rebuild [22:58] mikeal: there you go [22:59] mikeal: use that on-deploy [22:59] isaacs: mikeal: it won't necessarily do make clean exactly, but it will run whatever pre/post/install scripts the package has [22:59] mikeal: that way checking in a compiled dep just adds some noise to source control but doesn't break anything [22:59] polotek: we do clean clones on deploy [23:00] mikeal: yeah, i'm saying for that time that you accidentally check in a compiled dep [23:00] tbranyen: mikeal: so you're saying check everything in, and hten when you're on the system just run npm build? i guess thats reasonable [23:00] mraleph has joined the channel [23:00] mikeal: npm rebuild [23:00] polotek: then npm rebuild [23:00] mikeal: which i just learned about :) [23:00] isaacs: polotek: echo 'node_modules/*/{build,out}' >> .gitignore [23:00] isaacs: polotek: or, even 'node_modules/**/{build,out}' >> .gitignore [23:01] ryan_stevens has joined the channel [23:01] polotek: isaacs: yeah that's what I'm going now [23:02] polotek: ohI know what I wanted to ask here [23:02] polotek: does anybody else run a repl in production systems [23:02] polotek: for easier inspection if there are problems? [23:02] eignerchris_ has joined the channel [23:03] TheJH: category crazy long-term ideas: https://github.com/joyent/node/issues/2310 - isaacs, ryah, what do you think? :) [23:03] bnoordhuis: polotek: i'm pretty sure voxer does [23:03] gde33 has joined the channel [23:03] polotek: bnoordhuis: that's where I got the idea. mranney [23:03] polotek: looking for reasons not to do it at this point [23:04] polotek: rauchg: did you every show up? [23:04] polotek: also looking for potential pitfalls. [23:04] bnoordhuis: polotek: a `db.query("DELETE * FROM invoices")` typo? [23:04] polotek: right now the repl always reloads modules [23:04] TheJH: basically, my idea is to shim into "Error" events from a different isolate via the v8 debugger protocol and collect status from the stack and callback scopes and stuff [23:04] polotek: which is no bueno [23:04] heavysixer has joined the channel [23:05] polotek: bnoordhuis: it'll only be listening on a local unix socket [23:05] polotek: if you have access to the machine, you're a trusted employee [23:05] rauchg: polotek [23:06] rauchg: where [23:06] hotroot: I wish there were more node jobs in this area. Maybe I'll just work for myself [23:06] chrisvwebdev has joined the channel [23:06] jarek has joined the channel [23:06] jarek has joined the channel [23:06] polotek: rauchg: here :) I know you've had a lot going on lately [23:06] polotek: but wanted to know if you had anyone looking at pull requests for socket.io [23:06] polotek: https://github.com/LearnBoost/socket.io-client/pull/347 [23:07] d_c has joined the channel [23:07] d_c has left the channel [23:08] shapeshed has joined the channel [23:09] rauchg: polotek [23:09] rauchg: i did see that [23:10] rauchg: but i don't understand why you don't simply initialize the socket upon load [23:10] polotek: rauchg: because I'm not really sure what that means [23:10] polotek: if there is a supported alternative for what we're doing, I would love to see it [23:10] polotek: we were under the gun and I had to learn a lot in a short time [23:10] polotek: it looks like the defer always waits until window load before you get a "connection" event [23:11] CIA-109: node: 03Ben Noordhuis 07isolates * r274ea91 10/ src/node.cc : isolates: add process.tid property, pass args to isolate - http://git.io/voEJPA [23:11] eignerchris has joined the channel [23:11] rauchg: polotek: i mean window.onload = function () { io.connect() }; [23:11] rauchg: the defer is there because sometimes we _must_ [23:11] rauchg: do things on load [23:12] TheJH: bnoordhuis, you're working on isolates? :) what do you think about https://github.com/joyent/node/issues/2310 ? [23:12] rauchg: even if we don't want to [23:12] polotek: rauchg: no we're trying to avoid waiting until window load [23:12] rauchg: OH [23:12] hotroot: Yay, sqlite3 working [23:12] rauchg: sorry i misunderstood [23:12] rauchg: why is that so ? [23:12] polotek: the comments in the code say it's mostly to avoid the "infinite load" spinner in some browsers [23:12] eignerchris_ has joined the channel [23:12] rauchg: yep [23:12] polotek: but that's not as big a concern for us [23:13] TheJH: bnoordhuis, like, imagine that your prod server goes down and instead of one stacktrace, you get lists with all parent scope variables and variables from callback parent scopes and everything :) [23:13] polotek: the page we deployed had a ton of stuff being loaded and window load was much delayed [23:13] rauchg: i see… [23:13] polotek: but we need socket.io connected and running asap because the first thing it does is send down initialization data [23:13] rauchg: have you considered [23:13] rauchg: deferring the loading of assets to load ? [23:13] rauchg: like, make the page run asap, make load trigger asap, connect socket.io, load assets [23:14] `3rdEden: polotek it's not only for the loading spinners [23:14] eignerchris has joined the channel [23:14] rauchg: but if you really want to avoid defer [23:14] cl0udy has joined the channel [23:14] `3rdEden: but also for the flashsocket [23:14] `3rdEden: or it will break [23:14] polotek: `3rdEden: we're not using flash socket [23:14] rauchg: yeah I'm concerned about an option like this [23:14] polotek: only xhr-polling and jsonp-polling [23:14] rauchg: i see [23:14] polotek: that's also a limitation of our environment [23:14] rauchg: in that case [23:15] rauchg: have you considered [23:15] rauchg: overloading [23:15] rauchg: io.util.defer ? [23:15] polotek: that's why my patch only adds it for those transports [23:15] bnoordhuis: TheJH: maybe in 0.9 - for now i'm glad https://gist.github.com/7708f2a42c0f1272b1cd works :) [23:15] rauchg: and io.util.load [23:15] polotek: Yeah we could do that [23:15] rauchg: i need to think a little more about this, i think we had one more implication [23:15] polotek: if you're dooming me to perpetual patch maintenance ;) [23:15] rauchg: for mobile devices [23:15] TheJH: bnoordhuis, tid? like "task id"? [23:15] bnoordhuis: TheJH: yes [23:16] bnoordhuis: or thread id [23:16] rauchg: no, totally not that [23:16] polotek: also to answer your earlier question [23:16] polotek: we can definitely do some work on deferring asset load [23:16] chrisvwebdev has joined the channel [23:16] polotek: but it's not trivial [23:16] polotek: Yammer has a lot going on [23:16] polotek: and this page in particular has a lot more [23:16] TheJH: bnoordhuis, that gist says "if I'm master, spawn, else cheer", right? [23:17] `3rdEden: rauchg mobile was also for the infinit loading spinners on webkit browsers [23:17] polotek: we got immediate bang for our buck with this small change [23:17] `3rdEden: as far as I can remember [23:17] jomoho has joined the channel [23:17] jacobolus has joined the channel [23:18] polotek: also regarding the flash transport, does it also include the flash server? when we tried it, it seemed to be telling us we needed a flash server [23:18] romanb has joined the channel [23:19] polotek: rauchg: I definitely want you to consider the best way to provide a solution [23:19] polotek: that pull request is just for illustration [23:19] polotek: but I think there's definitely a case where the pros of doing this outweigh the cons [23:20] rauchg: polotek [23:20] rauchg: re:flash server [23:20] rauchg: its simply a dummy daemon that responds some xml [23:21] rauchg: its built in with socket.io [23:21] rauchg: re: solution [23:21] rauchg: definitely [23:21] rauchg: i understand where you're coming from [23:21] rauchg: i'm gonna test iOS again with xhr-polling before onload [23:21] rauchg: i seem to recall it was something else other than spinner [23:22] rauchg: but if its just spinner again [23:22] rauchg: we can definitely add it as an option [23:22] polotek: sweet [23:22] rauchg: and we explain the tradeoffs in the readme [23:22] polotek: ACTION <3 open source [23:22] EyePulp has joined the channel [23:22] hotroot: ^^ [23:22] chrisvwebdev has joined the channel [23:23] boltR has joined the channel [23:23] polotek: rauchg: I also don't like passing around the "deferConnection" flag like that [23:24] polotek: but could figure out the right way to access options properly [23:24] wiwillia has joined the channel [23:24] polotek: again, feel free to discard the pull request [23:24] wiwillia: anyone give me quick feedback on a t-shirt design? [23:24] polotek: or if you have a better approach and want me to work up the patch, I'd be happy to [23:24] bnoordhuis: TheJH: yes, that's correct [23:24] polotek: wiwillia: only if it's highly offensive [23:24] TheJH: bnoordhuis, :) [23:25] wiwillia: polotek: doing it for a node.js enthusiast - http://imgur.com/OLHfZ [23:25] Swizec has joined the channel [23:25] jimt has joined the channel [23:26] jomoho2 has joined the channel [23:26] tjholowaychuk: wiwillia ahahaha! [23:26] polotek: wiwillia: whoa dude. why throw away @substack's awesome scribble? [23:26] tjholowaychuk: awesome [23:26] TheJH: wiwillia, :D [23:26] JasonJS has joined the channel [23:26] `3rdEden: it misses a V8 on the rocket ;( [23:26] wiwillia: haha [23:26] TheJH: SubStack, ^ :D [23:27] wiwillia: polotek: I'm but a designer [23:27] wiwillia: :) [23:27] springmeyer: isaacs: I notice there is a windows savvy mkdir-p impl in npm - is this something reasonable to hook into in normal node usage, or no? [23:27] maxogden: wiwillia: +1 on keeping substacks full drawing, it rules [23:27] wiwillia: can you link me? [23:27] wiwillia: I've never seen it maxogden [23:28] maxogden: http://substack.net/images/node_turtle.png [23:28] polotek: wiwillia: really? I thought yours was a "re-imagining" [23:28] TheJH: wiwillia, :D [23:28] maxogden: thought that was where the turtle came from [23:28] TheJH: me too [23:29] polotek: the only thing this drawing needs is to have the turtle standing on top of the world [23:29] TheJH: I want a t-shirt with one of them on front and one of them on the back :D [23:29] wiwillia: tpolotek: nope, I'm doing this at request - just got told to do a turtle with rocket on the back! I think it's for Node.js. That original turtle is awesome though [23:29] wiwillia: gimmie one seck [23:29] wiwillia: I'll put it on a shirt [23:30] Riton: Hi everybody. For a beginner, what sqlite3 lib would you recommend ? [23:30] Riton: there are so many [23:30] tazrover has joined the channel [23:30] OneOfOne: C++ question, how to make sure eio_custom doesn't exit unless given a "signal", kinda of how the http module works [23:31] Tprice: Riton: you might be better with mongodb then sqlite [23:31] polotek: Riton: npm info sqlite3 [23:32] polotek: OneOfOne: eio_custom isn't a server, it's a one time job dispatch [23:32] Riton: thks [23:32] polotek: OneOfOne: you can run a server that controls the lifecycle of your jobs [23:32] OneOfOne: polotek: any reading material i should read? basicly I got qt4 to work but i'm not sure how to keep the app alive until isingal it from the gui [23:32] polotek: I suppose, I don't know if that makes sense for your use case [23:32] OneOfOne: hmm [23:33] jomoho has joined the channel [23:34] polotek: OneOfOne: a server that uses a local socket would be the first thing I did. [23:34] wiwillia: http://i.imgur.com/R64tG.jpg [23:34] polotek: I haven't take a survey of node.js documentation in a while so don't know where to point you [23:35] jinside: i can't believe i'm almost considering buying a node.js shirt [23:35] polotek: wiwillia: cool [23:35] polotek: It would also be cool to have a little more understated [23:35] polotek: like node.js on the front [23:36] polotek: and then on back near the nape of the neck a small image of the rocket turtle [23:36] polotek: subversive [23:36] wiwillia: polotek: I'm not selling them, but I'm pretty sure the guy who asked me to design it is doing it for the community [23:36] wiwillia: not that I have to do anything anymore [23:36] wiwillia: since someone already did a sweet ass turtle with a rocket on its back [23:36] wiwillia: that's an amazing sketch [23:37] jomoho2 has joined the channel [23:37] Tprice: whats the best way to go from string to function? [23:37] TheJH: wiwillia, that guy is SubStack [23:38] TheJH: Tprice, like, you want to compile the code? [23:38] kickingvegas has joined the channel [23:38] Tprice: i need to do net dependencies injection(code) for "nodes" in a network im building [23:38] TheJH: Tprice, should it have access to your local scopes variables? [23:38] wiwillia: Last one, but here's a little more understated version: http://imgur.com/ysCtS [23:38] reid has joined the channel [23:39] Tprice: thehj: no [23:39] polotek: wiwillia: I was talking about the opposite of that [23:39] polotek: node.js on the front [23:39] polotek: small turtle on the back [23:39] TheJH: Tprice, in that case, use the "vm" core module [23:39] polotek: just to mess with people's heads [23:39] devaholic has left the channel [23:39] Tprice: and not done throught the vm module [23:39] polotek: but it was just a suggestion [23:39] devaholic has joined the channel [23:39] Tprice: has to be pure js [23:39] wiwillia: devaholic [23:40] devaholic: evening sir [23:40] joshfinnie has joined the channel [23:40] polotek: OneOfOne: I just thought about your problem [23:40] polotek: and realized you should probably use dnode [23:40] OneOfOne: dnode? [23:40] polotek: https://github.com/substack/dnode [23:41] OneOfOne: hmm [23:41] polotek: from the artist behind the rocket turtle [23:41] Tprice: im doing something like new Function('rpc', funcString) [23:41] OneOfOne: the problem is qt4's event loop [23:41] polotek: basically this is a super simple but powerful way to have a messaging server [23:42] polotek: when you get messages you can do whatever you want, like fire native methods or whatever [23:42] polotek: I don't know much about qt4, but if you can run a dnode client in it, then you should be good [23:44] jarek__ has joined the channel [23:45] tommyvyo has joined the channel [23:45] srid has joined the channel [23:45] diogogmt has joined the channel [23:46] Destos has joined the channel [23:46] TheJH: Tprice, then you need "new Function(code)" [23:48] mikeal has joined the channel [23:49] rwaldron has joined the channel [23:49] Tprice: TheJH: Function(code) and eval(code) they are kind of the same right? [23:49] SubStack: isaacs: tap seems to treat order as significant in t.deepEqual? [23:50] SubStack: on objects [23:50] SubStack: seems quite wrong [23:50] tjholowaychuk: Tprice eval is worse [23:50] isaacs: SubStack: yes, there is an issue on this. [23:50] isaacs: SubStack: patch welcome. [23:50] devaholic: isaacs: get approval for this please http://twitter.com/#!/tomblobaum/status/145289134997643264/photo/1 [23:50] Tprice: tjholowaychuk: yeah i thought so [23:51] devaholic: PLEASE [23:51] isaacs: devaholic: i think you just need to ask substack [23:51] devaholic: really? [23:51] frabcus has joined the channel [23:51] devaholic: nice [23:53] polotek: isaacs: dont you need permission to use node.js? [23:54] Swizec_ has joined the channel [23:55] towski has joined the channel [23:56] tek has joined the channel [23:56] zeade has joined the channel [23:57] polotek: gotta run. take it light guys [23:58] dan111 has joined the channel [23:59] hotroot: This is an amazingly simple and well written SQL tutorial. sql-tutorial.net. So glad I found it =)