[00:00] mara has left the channel [00:00] saesh_ has joined the channel [00:01] avih has joined the channel [00:01] JaKWaC has joined the channel [00:01] ChrisPartridge: erichocean: take a look at the top npm contributor's code [00:02] fairwinds has joined the channel [00:02] RobWC has joined the channel [00:02] isaacs: erichocean: idioms in node programs vary widely [00:02] isaacs: erichocean: the "unix philosophy" is pretty common, though [00:03] isaacs: ie, small programs that do one thing well, with simple interfaces [00:03] isaacs: but that's all software design, not just node [00:04] Fuu has joined the channel [00:07] jbpros has joined the channel [00:08] petrjanda has joined the channel [00:08] wingie: erichocean: i think vows covers a lot [00:08] wingie: simple and clean structure [00:08] erichocean: wingie: sweet, that's what I've been using so far [00:09] wingie: even with a Makefile [00:09] _baton_ has joined the channel [00:10] SubStack: eww vows [00:10] ovaillancourt: lol [00:10] ovaillancourt: you don't like vows? [00:11] ovaillancourt: (I'm curious actually, not using it) [00:11] wingie: ovaillancourt: the only disadvantage is that its lack browser support [00:11] SubStack: "Vows is an experiment in making this possible, while adding a minimum of overhead." [00:11] SubStack: HAHAHAHAHAHA [00:11] replore has joined the channel [00:11] replore_ has joined the channel [00:11] ryah: erichocean: ldap.js [00:11] avih has joined the channel [00:11] wingie: i don't get why it doesn't support browser .. bad architectured? [00:12] wingie: SubStack: what testing framework are you suggesting? [00:12] erichocean: wingie: I use Vow.js with in-browser testing of SC apps [00:12] erichocean: works great [00:12] SubStack: wingie: tap is great for testing [00:12] erichocean: I just wrote a near-trivial Now.js shim to shuttle stuff between the two [00:12] wingie: erichocean: but you created your own framework with nowjs [00:13] SubStack: vows has a really confusing api [00:13] SubStack: batches? topics? [00:13] SubStack: what [00:13] erichocean: "framework" is overstating things [00:13] ovaillancourt: I love mocha for tests... [00:13] erichocean: SubStack: what's awesome is how easy Vows is to customize [00:13] erichocean: great for complicated test harnesses [00:13] SubStack: erichocean: customization is not a good thing [00:13] wingie: erichocean: it would be good to be able to use vows directly in browser without having to wire it with nowjs though [00:13] erichocean: ACTION disagrees [00:14] Heisenmink has joined the channel [00:14] SubStack: erichocean: here is why: http://substack.net/posts/b96642 [00:14] SubStack: wingie: you can pretty much run your tap tests on testling [00:14] SubStack: because the testling api is a superset of the tap api [00:15] SubStack: and we have all these browsers already running for you http://testling.com/browsers/ [00:15] SubStack: and you can use it for free go go [00:15] wingie: SubStack: where is the TAP documentation? [00:15] erichocean: SubStack: I'm using Browserling :) [00:15] isaacs: erichocean: not only can you customize tap like crazy, you can use it to write your own harnesses, test runners, and test outputters, that work with all the existing test harness and CI tools in every language. [00:15] isaacs: because every language has some tap implementation, especially perl [00:15] isaacs: :) [00:16] SubStack: erichocean: that works too but testling is nicer for unit tests [00:16] avih has joined the channel [00:16] isaacs: wingie: https://github.com/isaacs/node-tap [00:16] isaacs: wingie: or http://testanything.org/ [00:16] isaacs: (for more on the protocol) [00:16] lz: another protocol to learn :( [00:17] wingie: isaacs: oh i was watching your lib already :) [00:17] wingie: its using Yaml? i love yaml [00:19] mrtazz has joined the channel [00:19] sechrist has joined the channel [00:20] josephg has joined the channel [00:21] shinuza has joined the channel [00:21] hij1nx has joined the channel [00:23] harthur has joined the channel [00:25] blaenk has joined the channel [00:25] blaenk has joined the channel [00:25] bergie_ has joined the channel [00:27] erichocean: thanks ryah, ldap.js looks great [00:28] [[zz]] has joined the channel [00:28] wingie: SubStack: will testling work with mobile phones/tablets also in the future? [00:28] SubStack: wingie: yep [00:28] SubStack: android first [00:28] wingie: SubStack: you are kinda replacing Selenium arent you [00:28] SubStack: since I have a plan of attack for that [00:29] Fuu has joined the channel [00:29] SubStack: wingie: I don't think anybody will miss it. [00:30] caolanm has joined the channel [00:30] xicubed has left the channel [00:32] [[zz]] has joined the channel [00:33] CarterL has joined the channel [00:33] chrisvwebdev has joined the channel [00:34] boltR has joined the channel [00:34] wingie: SubStack: does testling support coffee files? [00:35] admc has joined the channel [00:35] SubStack: wingie: not natively [00:35] SubStack: you can compile them to javascript on your end [00:35] maxogden: npm install coffee should work though [00:35] SubStack: then it should work [00:35] maxogden: or that [00:35] wingie: SubStack: but i don't wanna do that ... [00:36] wingie: will it be a feature worth adding? [00:36] raz has joined the channel [00:36] wingie: i don't have to compile them using mocha/vows or other libaries supporting coffee [00:37] SubStack: coffee -pc test.coffee | curl -sSNT- testling.com [00:37] SubStack: what's so hard about that [00:37] wingie: whats so hard supporting it and i don't have to do that? =) [00:38] SubStack: wingie: because lines of code are spent [00:39] StanlySoManly1 has joined the channel [00:39] zezikaro: https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager [00:39] zezikaro: why does that install a really old version of nodejs [00:39] zezikaro: v0.4.12 [00:39] jesusabdullah: 0.4.12 isn't old [00:39] jesusabdullah: I mean, it's not the latest but it isn't really old either [00:39] wingie: really that much LOC huh? [00:40] jesusabdullah: It's the last released version of the 0.4 branch, which was the previous stable branch [00:40] zezikaro: what differences are there? i can't install the current one as it keeps giving Waf: Leaving directory `/node-v0.6.6/out' [00:40] zezikaro: Build failed: -> task failed (err #2): [00:40] zezikaro: possibly because of my low ram [00:40] zezikaro: which causes g++: internal compiler error: Killed (program cc1plus) [00:40] jesusabdullah: 0.6 is now the stable branch, but a lot of people haven't switched yet for various reasons [00:40] zezikaro: but i can install that one fine [00:40] jesusabdullah: as far as your build problems? I don't know. [00:40] jesusabdullah: The most obvious difference is that 0.4 does not run on windows [00:41] jesusabdullah: but there are others [00:41] zezikaro: would there be any differences that would affect me by staying with 0.4, since i can't do 0.6 [00:41] brianseeders has joined the channel [00:41] jesusabdullah: yes [00:41] jesusabdullah: but not major ones [00:41] zezikaro: :( [00:41] zezikaro: like what? [00:41] jesusabdullah: minor bugs in .pipe, I believe, some minor api changes, a few things got deprecated [00:42] maxogden: zezikaro: if you are on a computer without enough to ram build 0.6 you probably won't be able to appreciate the 0.6 changes anyway (i would guess) [00:43] jesusabdullah: Mostly, what you'll see is that there are still a lot of libraries that won't successfully run on 0.6 [00:46] diogogmt has joined the channel [00:46] jerrysv: also some libraries deprecating support for 0.4, but most seem to be working on both for now [00:47] zezikaro: okay thanks [00:47] Fuu has joined the channel [00:51] gtramontina has joined the channel [00:51] jerrysv: zezikaro: how much ram do you have? and what os? [00:51] jerrysv: zezikaro: i run several vm's at 128 and 256mb [00:52] jerrysv: zezikaro: and compiled node on the same vm's [00:52] igl has joined the channel [00:53] fairwinds has joined the channel [00:53] mbrevoort has joined the channel [00:55] chrisvwebdev has joined the channel [00:55] RobWC has left the channel [00:55] topaxi has joined the channel [00:56] k1ttty has joined the channel [00:56] sorensen__ has joined the channel [00:57] githogori has joined the channel [01:00] tokuzfunpi has joined the channel [01:01] mike5w3c_ has joined the channel [01:02] josephg has joined the channel [01:03] neurodrone has joined the channel [01:05] chrisvwebdev has joined the channel [01:06] Juan77 has joined the channel [01:06] dthompso99 has joined the channel [01:06] subbyyy has joined the channel [01:10] aaditya has joined the channel [01:12] AaronMT has joined the channel [01:13] jimubao_ has joined the channel [01:13] bfishe200 has joined the channel [01:13] bfishe200: hey [01:13] bfishe200: anyone use node-mysql-pool [01:13] bfishe200: im pooling connections [01:13] bfishe200: my boss wants to know how many connects per pool [01:13] bfishe200: how do i know [01:14] ChrisPartridge: bfishe200: pool size? [01:14] bfishe200: pool size is number of connections though [01:14] gareth__ has joined the channel [01:14] bfishe200: so 4 would be for pools [01:17] bfishe200: im talking about how many ppl on those connections [01:17] satyr has joined the channel [01:18] bfishe200: how many users [01:19] bfishe200: come on [01:19] subbyyy has joined the channel [01:19] markbao has joined the channel [01:19] TooTallNate has joined the channel [01:19] markbao: node.js seems to not send my headers (I'm setting a cookie) [01:19] markbao: in the res object: _headerSent: false [01:20] diogogmt has joined the channel [01:21] BonusWare has joined the channel [01:21] rwaldron has joined the channel [01:24] chrisvwebdev has joined the channel [01:24] bfishe200: how many users!!! [01:25] ovaillancourt has joined the channel [01:27] xjiujiu has joined the channel [01:29] sorensen__ has joined the channel [01:30] EhevuTov has joined the channel [01:30] bfishe200: come on u sons of a bitch [01:30] bfishe200: how many users!!!!!! [01:30] heavysixer has joined the channel [01:31] apoc: hmm i have a weird problem, a file with iso8859 in a filename. node is unable to open it: var fs=require('fs');fs.openSync(fs.readdirSync('.')[0], 'r'); throws ENOENT [01:31] bfishe200: whats the rest of the file [01:31] bfishe200: name [01:32] neoesque has joined the channel [01:32] apoc: touch test$'\337' is the file [01:32] islon has joined the channel [01:33] ditesh|cassini has joined the channel [01:33] xjiujiu has joined the channel [01:33] bfishe200: wow [01:33] bfishe200: do u know mysql pools? [01:33] bfishe200: how many connections? [01:33] apoc: (thats german sz, small sharp s) [01:34] bfishe200: whats german? [01:35] yalper has joined the channel [01:35] ChrisMatthieu has joined the channel [01:36] jimubao has joined the channel [01:37] MooGoo: the language of Pure Evil [01:38] mikeal has joined the channel [01:38] clifton has joined the channel [01:39] bfishe200: moogoo do u know anything about connection pooling?? [01:39] ianl` has joined the channel [01:40] MooGoo: I...well [01:40] MooGoo: I guess [01:40] MooGoo: it's a pretty basic concept [01:40] bfishe200: if i have a pool size of 4 [01:41] bfishe200: i know [01:41] bfishe200: but in node-mysql-pool [01:41] bfishe200: i have 4 pools [01:41] bfishe200: pool size of 4 [01:41] bfishe200: so if i have 10,000 users what does this mean [01:41] flip_digits has joined the channel [01:41] bfishe200: like my boss is asking me what the fuck does it mean to have a pool size of 4 [01:41] MooGoo: 10,000 users simultaniously? [01:41] MooGoo: it means you should hire someone else to code [01:42] MooGoo: heh [01:42] MooGoo: explain to me [01:42] bfishe200: what do u mena [01:42] MooGoo: exactly what mysql-pool is [01:42] bfishe200: was that an insult [01:43] MooGoo: cause mysql is capable of handling concurrency itself [01:43] MooGoo: no [01:43] MooGoo: is that a module? [01:43] diogogmt has joined the channel [01:43] enmand has joined the channel [01:43] bfishe200: yeah [01:43] bfishe200: it creates pools [01:43] bfishe200: so open connections to the database [01:43] jerrysv: i like to swim [01:43] bfishe200: when a user comes, the connection to the database is already establishd [01:43] MooGoo: I see [01:43] mantooth has joined the channel [01:43] bfishe200: so he can use that route [01:43] bfishe200: its for scale [01:43] bfishe200: so i have 4 of these running [01:44] ryan_stevens: jerrysv: swimming rules [01:44] MooGoo: and each pool can handle X number of users I take it [01:44] bfishe200: so im just wondering, u know, what this means exactly, does that mean 4 people get their own connection [01:44] MooGoo: I would hope not [01:44] bfishe200: right so im wondering what that x number of users is because [01:44] MooGoo: sounds like a terribly inefficent method then [01:44] bfishe200: i dont see that anywhere [01:44] jerrysv: bfishe200: you know what this is supposed to do, right? what pooling does? [01:44] bfishe200: where that is defined [01:44] avih has joined the channel [01:44] bfishe200: jerrsv, yeah, i think, what are you going to say [01:44] MooGoo: not sure even why... [01:44] MooGoo: each node process would have its own connection to the DB [01:44] MooGoo: natraully persistent [01:44] jerrysv: bfishe200: and it's defined on line 26 of pool.js [01:45] jerrysv: MooGoo: it's supposed to speed up a lot of fast queries, by keeping a connection open [01:45] bfishe200: right [01:45] bfishe200: jerrsv are u serious [01:45] MooGoo: keeping the client connection open [01:45] MooGoo: not sure what that has to do with mysql [01:45] hotroot1 has joined the channel [01:45] jerrysv: bfishe200: looks like the "4" you are referring to is just for the demo. do you have a handle on how many connections you handle per second already? [01:46] MooGoo: besides... [01:46] MooGoo: there's a huge differnce between a few users and 10,000 [01:46] jerrysv: bfishe200: and according to line 46, it connects as many clients as poolSize is defined [01:46] MooGoo: when you reach 10,000, you will need to optimize [01:46] bfishe200: there will be 10,000 users [01:46] hotroot1: I'm a little confused. I socket.setTimout(20000, code) then when the user logs in it does self.socket.setTimout(0); yet it still times them out after they login [01:46] bfishe200: at once [01:46] bfishe200: this is a massive site [01:46] MooGoo: there's no one size fits all solution that can handle 1-1,000,000 connections without any performance degradation [01:46] bfishe200: at least [01:46] bfishe200: i know [01:46] bfishe200: this is just my part [01:47] jcap has joined the channel [01:47] jerrysv: bfishe200: 10k concurrent db connections? [01:47] jcap: is there an easy way to mirror the NPM repo without settting up couchdb locally, etc? [01:47] bfishe200: no 10k users hitting the site needing the db connections [01:47] jcap: I just want the files and such available for a flight [01:47] jerrysv: bfishe200: we have 12 million that need db connections, that's not the same as 12 million concurrent [01:47] MooGoo: so the point is....it's irrelvant to ask "what will happen when X" when X is not anywhere close to happening [01:47] MooGoo: and cannot be tested [01:48] jerrysv: bfishe200: i'd look at concurrent connections and then back out what the true pool connection number would be -- more with trial and error [01:48] bfishe200: jerrysv: your right, but back to my original question, if pool size is 4 [01:48] jerrysv: or, respond to your boss: 10,000 [01:48] bfishe200: it means there are 4 connections [01:48] jerrysv: bfishe200: yes [01:48] bfishe200: how many users fit into those 4 connections [01:48] MooGoo: 4 [01:48] jerrysv: bfishe200: 4 [01:48] bfishe200: if i have 10,000 users where do they go [01:48] jerrysv: concurrently [01:48] MooGoo: 10,000 pools? [01:48] jerrysv: they wait [01:48] ChrisPartridge: ACTION sighs [01:48] bfishe200: so i need to increase pool size to 10,000? [01:48] jerrysv: or something sane [01:49] bfishe200: poolsize is connections though [01:49] bfishe200: this is not right [01:49] jerrysv: depending on how many actual concurrent connections you need to satisfy your load [01:49] bfishe200: multiple ppl can be on one connections [01:49] mrryanjohnston has joined the channel [01:49] jerrysv: it doesn't multiplex them, they are serial [01:49] hotroot1: Satisfy your load? Eww [01:49] bfishe200: 4 connections [01:50] jerrysv: so, if you have a pool size of 4, and 10,000 connections you need to satisfy, you satisfy 4 of them at a time [01:50] bfishe200: oh [01:50] jerrysv: and on that note ... back later! [01:50] bfishe200: no!!!!1 [01:50] ChrisMatthieu has joined the channel [01:51] bfishe200: so can it handle 10,000 users then? [01:51] jocafa has joined the channel [01:52] fbartho has joined the channel [01:52] jcap: is there a more npm specific channel? [01:53] djbell has joined the channel [01:53] bfishe200: yeah try #shutit [01:53] jcap: :\ [01:54] SubStack: jcap: you can probably just ask in here [01:54] jcap: SubStack, thanks [01:54] SubStack: isaacs is around even [01:54] jcap: Just trying to figure out if there's an easy way to mirror the entire npm repo locally [01:54] SubStack: sure is [01:54] jcap: without having to setup couchdb, etc. [01:54] SubStack: npm is just a couchapp [01:55] jcap: ha [01:55] jcap: aha [01:55] jcap: ok, I didn't realize that [01:55] SubStack: check out this http://shadow-npm.net/ [01:55] apoc has left the channel [01:55] jcap: ok, then I'll assume the doc I foud is the best course, and see if it's not a big deal to do tonight before my flight in the morning [01:55] jcap: SubStack, ah, nice, thanks [01:56] jcap: that's perfect! [01:56] jesusabdullah: Neat. [01:56] dragon has joined the channel [01:57] jacobolus has joined the channel [01:57] willwhite has joined the channel [01:57] avih has joined the channel [01:59] Wa has joined the channel [02:02] hostsamurai has joined the channel [02:05] tk has joined the channel [02:05] tonymilne has joined the channel [02:05] zmbmartin has joined the channel [02:05] skunkape has joined the channel [02:06] elliottcable has joined the channel [02:06] marcello3d has joined the channel [02:06] zmbmartin has left the channel [02:07] CIA-109: node: 03Ryan Dahl 07master * rb603578 10/ tools/installer.js : [02:07] CIA-109: node: Fix 'make install' [02:07] CIA-109: node: Broken in 45605c because configure does not spit out proper JavaScript. [02:07] CIA-109: node: Needed to change single quotes to double. - http://git.io/5s5VTg [02:07] xjiujiu has joined the channel [02:09] avih has joined the channel [02:10] sechrist has joined the channel [02:11] _dc has joined the channel [02:13] sechrist_ has joined the channel [02:14] ChrisMatthieu has joined the channel [02:15] icewhite has joined the channel [02:15] JakeyChan has joined the channel [02:16] ericmuyser has joined the channel [02:17] JasonSmith: isaacs: YT? Thanks a lot for tips and wisdom about Kanso NPM support [02:17] JasonSmith: It is almost done and I think they will cut a release soon [02:18] caolanm has joined the channel [02:18] JakeyChan has joined the channel [02:19] JasonSmith: I am working on Bash autocompletion. There is a Node script that prints whatever bash wants on stdout. Trying to run it without looking at `which node` or other stuff. Top candidate is `npm script kanso autocomplete`. It works, however there is some extraneous output at the beginning [02:19] mikeal has joined the channel [02:19] JasonSmith: isaacs: Thoughts? Thanks! [02:20] sh1mmer has joined the channel [02:21] bshumate has joined the channel [02:21] bshumate has joined the channel [02:21] JasonJS has joined the channel [02:21] cmr: jesusabdullah: Thanks for recommending node-tap, it seems to be a lot closer to what I was expecting from a test framework, nodeunit too. I still haven't quite wrapped my head around TAP itself but it makes a lot more sense than vows. [02:22] jesusabdullah: haha! [02:22] jesusabdullah: Yeah, I hear you there [02:22] Ownatik has joined the channel [02:22] davidbanham has joined the channel [02:23] franciscallo has joined the channel [02:23] codygray has joined the channel [02:23] shiawuen has joined the channel [02:23] bfishe200: what is unit testing? [02:24] cmr: bfishe200: Testing individual units of code (generally functions) to make sure they work as expected, in an automated and easy-to-run format. [02:24] thalll has joined the channel [02:24] bfishe200: cmr how much money do u make in your job? [02:25] CarlosC has joined the channel [02:25] cmr: bfishe200: None, I am a high school student. [02:25] cmr: Well, minimum wage. [02:25] cmr: But that's unrelated to programming. [02:25] bfishe200: so ur a good coder [02:25] bfishe200: there are high school students better than me [02:26] cmr: I'm headed in that direction, I hope. [02:26] maxogden: bfishe200: can you abstain from trolling with comments like 'yeah try #shutit' please? [02:26] bfishe200: yeah i'll try [02:26] maxogden: thanks [02:27] bfishe200: how much do u think speed is related to being a good coder [02:27] chrisvwebdev has joined the channel [02:27] jcap: speed is only a factor if you are very fast or very slow [02:28] boltR has joined the channel [02:28] CarlosC: ryah: I loaded up smartos in a VM on my lappy, the default node (0.4.9) does not have '--enable-dtrace' by default in the iso, does it? [02:28] jcap: any screencasts / videos you guys might suggest I download that would be useful to watch while in transit? [02:28] cmr: bfishe200: A 'good coder' makes good code, speed is irrelevant unless it takes youw eeks.. [02:28] bfishe200: some code takes weeds [02:28] bfishe200: wees [02:28] bfishe200: weeks [02:29] jcap: to clarify, specific to node.js intro, etc? [02:29] ryah: CarlosC: try this [02:29] ryah: CarlosC: elfdump `which node` | grep dof > /dev/null && echo Yes || echo "No" [02:29] bfishe200: how much do u guys make at ur engineering jobs [02:30] jcap: bfishe200, that's typically considered an inappropriate question [02:30] hydrogenesis has joined the channel [02:30] bfishe200: im just curious [02:30] chilts: jcap: also, bfishe200 is being pretty rude to everyone, so I think most people are ignoring him anyway [02:30] acuster has joined the channel [02:30] bfishe200: im not being rude to anyone [02:31] bfishe200: im asking seriously [02:31] ryah: CarlosC: if there's a dof sectin then it has dtrace probes [02:32] CarlosC: ryah: stnd by, booting my image now, you can't just use 'ldd' and see if the binary is linked to libdtrace.so? [02:32] ryah: CarlosC: oh - that might also work [02:35] nodecoder123: how much cash do u guys make at ur engineering jobs [02:35] issackelly_ has joined the channel [02:35] kazupon has joined the channel [02:35] CarlosC: ryah: interesting, your method shows the dtrace symbols in the binary but the ldd method doesn't show the link to the library, staticly linked? [02:36] CarlosC: ryah: also, I guessing the default version of node is 0.4.9 because of CM reasons with SDC and other supporting scripts that it relies on, correct? [02:37] ryah: CarlosC: im not sure if dtrace needs to be linked [02:37] CarlosC: ryah: ok [02:38] Fuu has joined the channel [02:38] ryah: CarlosC: yeah, the OS guys are slowly upgrading to v0.6 [02:38] ryah: i think it should be in the next version [02:38] tonymilne has joined the channel [02:38] CarlosC: ryah: the latest release (0.6.6) or some previous stable release? [02:39] nodecoder123: how can I make an operating system [02:39] ryah: the latest one [02:39] nodecoder123: how old [02:39] ryah: which might end up being 0.6.7 - im not sure how far along they are [02:40] CarlosC: do you have an idea on when the next release (smartos) may be? [02:40] Gruni has joined the channel [02:40] jcap: wish I had a need for smartos atm. really impressed with what I've read [02:41] nodecoder123: anyone have a job paying over 71k? [02:42] xer0x has joined the channel [02:42] ryah: CarlosC: i just asked - it'll happen at some point - they don't have a date yet [02:42] ryah: CarlosC: you can of course just compile node yourself [02:42] ryah: or use the pkgsrc [02:42] ryah: pkgin search node [02:42] CarlosC: I believe pkgsrc only had 0.4.12, which repo will have 0.6.x? [02:43] CarlosC: I'll prob. just compile it myself [02:43] ryah: CarlosC: oh - okay - well build it yourself :) [02:43] a_suenami has joined the channel [02:43] ryah: CarlosC: remember configure --with-dtrace [02:43] wingie has joined the channel [02:44] CarlosC: ryah: along with a diff. prefix to not stomp on anything and be persistent [02:44] ag4ve_ has joined the channel [02:44] mikeal has joined the channel [02:45] kawaz_air has joined the channel [02:48] shinuza has joined the channel [02:48] nodecoder123: anyone [02:48] StanlySoManly has joined the channel [02:49] aar0ntw has joined the channel [02:49] mikeal has joined the channel [02:53] ericncode has joined the channel [02:55] willwhite has joined the channel [02:57] xjiujiu has joined the channel [02:57] Aria has joined the channel [02:58] rwaldron has joined the channel [02:58] boltR has joined the channel [02:58] theycallmeswift has joined the channel [03:00] JaKWaC has joined the channel [03:01] cmr has joined the channel [03:01] perezd has joined the channel [03:01] syoyo has joined the channel [03:01] thinkjson has joined the channel [03:02] thinkjson: Is there a way to selectively apply the bodyParser in Express? [03:03] thinkjson: do you do var bodyParser = express.bodyParser(); and then app.get('/', bodyParser, function (req, res) { ... } ); ? [03:03] sh1mmer: actually [03:03] sh1mmer: that is the selective way [03:03] sh1mmer: the global way is app.use(bodyParser) [03:04] thinkjson: right, I want to do it selectively [03:04] flamboz has joined the channel [03:04] sh1mmer: bodyParser is only going to be applied to routes that you include it in [03:04] thinkjson: I'm writing a telemetry server, and the SendGrid API wants to send application/json with an invalid JSON body :-/ [03:04] jrogers has joined the channel [03:05] thinkjson: I have to split on newline and parse manually [03:05] context: sendgrid is sending you invalid json? [03:05] thinkjson: yep! :-) [03:05] sh1mmer: so write a route that checks for the header and then deals with it [03:05] sh1mmer: otherwise calls next() [03:05] context: thinkjson: talk to them and be like wtf! [03:05] sh1mmer: to bounce to the generic route [03:05] tekky has joined the channel [03:06] context: are you sure its invalid json ? [03:06] thinkjson: they have millions of customers now. it's a little late to change. :-P [03:06] context: 24 billion emails and their api is sending invalid json.... hard to beleive :x [03:06] thinkjson: context: it's a bunch of JSON documents separated by newlines [03:06] Aria: .oO(Versioned APIS) [03:06] SubStack: YES [03:06] thinkjson: http://docs.sendgrid.com/documentation/api/event-api/ [03:06] thinkjson: see "batched events" [03:07] SubStack: I need to hack testling to support semvers as the api evolves [03:07] nodecoder123: thinkjson how much money do u make [03:07] thinkjson: nodecoder123: why do you ask? [03:07] context: oh wow. thats scary [03:07] context: sendgrid fail ! [03:07] avih has joined the channel [03:07] nodecoder123: thinkjson i heard you make over 100,000 [03:07] issackelly_ has joined the channel [03:07] ^robertj has joined the channel [03:07] thinkjson: nodecoder123: ? [03:08] nodecoder123: what? [03:08] thinkjson: nodecoder123: I hear you're a Turing-complete bot [03:08] thinkjson: nodecoder123: do you think I work at SendGrid? [03:08] nodecoder123: hah yeah [03:09] nodecoder123: how did u know [03:09] thinkjson: oh. that makes more sense. [03:09] context: wait [03:09] context: express and sendgrid [03:09] thinkjson: I don't work at SendGrid. We're a client. [03:09] context: isnt the batched gonna be something you call [03:09] context: https://github.com/scopely/node-sendgrid ? [03:09] thinkjson: context: no, they hit your API [03:09] nodecoder123: wtf is sendgrid [03:09] nodecoder123: just some smtp server? [03:09] nodecoder123: with analytics? [03:09] thinkjson: nodecoder123: best E-mail sending platform ever [03:09] context: thinkjson: gotcha [03:10] context: thinkjson: thats more sad on their part. [03:10] thinkjson: meh. whatever. [03:10] sh1mmer: thinkjson: did you understand my answer? [03:10] sh1mmer: re: fixing your problem [03:10] DTrejo has joined the channel [03:11] theycallmeswift has left the channel [03:11] mbrevoort has joined the channel [03:11] nodecoder123: thinkjson [03:11] thinkjson: sh1mmer: not at all. all I need to do is selectively apply bodyParser based on route. [03:11] nodecoder123: how much do u make [03:11] thinkjson: nodecoder123: kind of rude to ask [03:11] nodecoder123: who cares tho [03:11] nodecoder123: its america [03:11] nodecoder123: its all about money [03:11] sh1mmer: nodecoder123: don't be a jerk [03:11] nodecoder123: im not [03:11] Aria: It's particularly rude in America. [03:11] nodecoder123: only old people think its rude to ask [03:11] nodecoder123: the young generation openly shares [03:11] thinkjson: I must be old then [03:12] sh1mmer: or people who don't know you [03:12] Aria: ACTION sits on the old couch next to thinkjson [03:12] sh1mmer: my friends mostly know how much I make, but most strangers don't [03:12] nodecoder123: right [03:12] nodecoder123: look by telling me we become friends [03:12] nodecoder123: and u help me with my salary negotiations [03:12] sh1mmer: nodecoder123: that's a different question. [03:12] sh1mmer: nodecoder123: because that is based on your experience not ours [03:12] thinkjson: so if bodyParser is not applied, then req.body is not populated, correct? where do I get the raw body? [03:13] nodecoder123: yeah but we have similar experience [03:13] sh1mmer: thinkjson: So if you do app.get('/foo', middleware, fn) then middleware will be applied only to that route [03:13] dudeinthemirror has joined the channel [03:13] sh1mmer: thinkjson: app.use(middleware) applies globally [03:13] thinkjson: sh1mmer: yep. exactly what I want to do. [03:13] gavin_huang has joined the channel [03:13] thinkjson: I *don't* want it to be global [03:13] sh1mmer: thinkjson: app.use('/fooroute', middleware) is another way to specify middleware on a route [03:14] isaacs: you guys see that "mess that is npm" blog post? [03:14] sh1mmer: but that is verb agnostic [03:14] sh1mmer: isaacs: haha [03:14] sh1mmer: I'm waiting for you to respond [03:14] sh1mmer: so I can laugh [03:14] sh1mmer: although, search is annoying still :P [03:14] nodecoder123: npm was genius [03:14] nodecoder123: how did tht guy make that [03:14] isaacs: i mean, i actually agree with almost everything he says, except that i think that what he calls "messiness" is actually intentional. [03:14] sh1mmer: I really hate that if I click through to a result it loses my state [03:15] thinkjson: isaacs: I tend to ignore anyone in the Node.js community that doesn't embrace V8, npm, and express... [03:15] issackelly_ has joined the channel [03:15] isaacs: thinkjson: but, this guy does. [03:15] Aria: I missed it. [03:15] jesusabdullah: Well, I get the argument that it's hard to find a canonical solution, or "the best" solution, but that's entirely cultural [03:15] isaacs: thinkjson: i mean, everything he's saying in the article is pretty spot-on [03:15] sh1mmer: isaacs: <3 easy to publish modules [03:15] thinkjson: link? [03:15] isaacs: but the title is crazy inflammatory [03:15] isaacs: http://mikkel.hoegh.org/blog/2011/12/20/trouble-in-node-dot-js-paradise-the-mess-that-is-npm/ [03:15] sh1mmer: isaacs: dude it's totally HN link bait [03:15] isaacs: (mostly) [03:15] isaacs: yeah [03:15] Aria: Whoa. Totally inflammatory. Yeesh. [03:15] akujin has joined the channel [03:16] jesusabdullah: I'm going to be the crazy one and suggest that it comes off much stronger than the author intended [03:16] isaacs: basically, it's like, "there are a bunch of kinda so-so modules that aren't very well maintained, and a lot of duplication" [03:16] jesusabdullah: I mean, that's an "English paper" title right there [03:16] Aria: Hm. Totally. [03:16] jesusabdullah: NPM: But At What Cost? [03:16] Aria: I wish rating systems weren't so painfully difficult. [03:16] isaacs: jesusabdullah: hahaha [03:17] isaacs: ACTION is a "thousand flowers bloom" sort, not a "planned garden" sort [03:17] isaacs: npm's philosophy is all bazaar, minimal cathedral [03:17] isaacs: you do get a lot of crap. [03:17] isaacs: but you get good stuff way cheaper. [03:17] thinkjson: ah yeah. if you find too many modules when Googling, it means you didn't prepend your search with "tj". [03:17] davidbanham has joined the channel [03:18] isaacs: to be fair, the website sucks (we're working on that) [03:18] Aria: Hehe [03:18] sh1mmer: thinkjson: I dunno, I'm finding that an increasingly large number of not the usual suspects are doing great stuff [03:18] uptownben has joined the channel [03:18] sh1mmer: isaacs: npm publish means you win in my book [03:18] sh1mmer: sharing distributable code in insanely hard on almost every other platform [03:18] sh1mmer: so people don't bother [03:19] chilts: yeah, I like how easy it is [03:19] scott_gonzalez has joined the channel [03:19] chilts: (to publish I mean) [03:19] Juan77 has joined the channel [03:19] kei has joined the channel [03:19] chilts: I used Perl for 10 years and published like 2 modules, in npm I'm up to 5 already) [03:20] thinkjson: 100% of the code I'll be publishing over the next 12 months are end-user applications, not libraries [03:20] thinkjson: completely different beast [03:20] nodecoder123: how do i just dump a json object in javascript [03:21] nodecoder123: like i just want to see the whole thing on consoel.log [03:21] cmr: nodecoder123: console.dir(obj) [03:21] tonymilne has joined the channel [03:21] nodecoder123: console.dir? [03:21] cmr: Not perfect but good enough most of the time. [03:21] thinkjson: I just console.log(theobject) [03:22] avih has joined the channel [03:22] thinkjson: so no one ever answered me. If you don't use bodyParser, where do you get the raw body? [03:22] nodecoder123: when i console.log(results) [03:22] nodecoder123: in a database.query [03:22] nodecoder123: i just get object object object object [03:22] jesusabdullah: There are lots of good modules by lots of people [03:23] thinkjson: yeah - you'll have to iterate and log [03:23] cmr: console.dir does it for you! [03:23] jesusabdullah: tj has written probably 1 in 100 of them, if that [03:23] thinkjson: 9/10 problems I've run into have been solved by a TJ module, though [03:24] thinkjson: the other 10% are completely random [03:25] thinkjson: like I've recently fallen in love with this gem: https://github.com/dscape/nano [03:25] nicholasf has joined the channel [03:25] nodecoder123: what if i did [03:25] nodecoder123: json.stringify(results) [03:25] jesusabdullah: You should branch out, man. There are a lot of gems out there [03:25] thinkjson: so TJ or Nodejitsu :-P [03:25] nodecoder123: turned the whole object object into just string [03:26] cmr: nodecoder123: not all objects are serializable as json, but if that works for your usecase go for it. [03:26] harthur has joined the channel [03:26] thinkjson: nodecoder123: yeah, no. It's an array, right? you'll need to iterate before doing console.log [03:26] joshthecoder has joined the channel [03:27] jesusabdullah: thinkjson: and browserling, the rest of learnboost, and all kinds of other places [03:27] dwhittle has joined the channel [03:27] hij1nx has joined the channel [03:27] thinkjson: jesusabdullah: if something is really worthwhile, it usually ends up in my Twitter feed. ;-) [03:29] jesusabdullah: *sexy* things hit your twitter feed, sure, but what about the nitty gritty? [03:29] jesusabdullah: There's some weird ones out there [03:29] jesusabdullah: but yeah, twitter's good [03:29] jesusabdullah: so's search.npmjs.org [03:30] SubStack: isaacs: beautiful chaos [03:30] thinkjson: I've not come across too many weird problems [03:30] jesusabdullah: Why not? XD [03:30] thinkjson: so yeah, can anyone tell me how to get the raw body when not using bodyParser? [03:31] jesusabdullah: req.on("data", bufferRequestBody); [03:31] jesusabdullah: where bufferRequestBody is some function that takes the data and appends it to some object or array or string or something [03:32] jesusabdullah: Then, req.on("end", handler); [03:32] nodecoder123: has anyone ever heard of a script adding +0000 (UTC) [03:32] nodecoder123: im parsing from a json object [03:32] nodecoder123: and somehow that gets added [03:32] jesusabdullah: and in the handler, use the querystring parser to parse it [03:32] nodecoder123: the json object doesnt have it but the line where it occurs ends with GMT [03:33] thinkjson: oh sorry. you weren't here for the first part of the conversation. in an express view. [03:33] satyr has joined the channel [03:33] jesusabdullah: nodecoder123: It sounds like it's stringifying a javascript date object. [03:33] thinkjson: does the same still apply? [03:33] windsurf_ has joined the channel [03:33] jesusabdullah: I don't remember how express views work [03:34] jesusabdullah: It would apply in a middleware, definitely---that's how the body decoder works [03:34] windsurf_: anyone use nodester? Just wondering how to deploy to EC2 or Rackspace and what the limitations of nodester's own hosting are [03:34] jesusabdullah: No comment [03:35] thinkjson: I don't know what it is. We just use a Debian instance and install Node.js manually. [03:35] clifton has joined the channel [03:35] thinkjson: for EC2, that is [03:35] jesusabdullah: nodester is a competitor to heroku, joyent's no.de machines and nodejitsu [03:35] dilvie has joined the channel [03:35] jesusabdullah: and anyone else in that market [03:35] thinkjson: gotcha [03:35] tonymilne has joined the channel [03:35] JakeyChan has joined the channel [03:35] justicefries: I like nodester. [03:35] nodecoder123: jesusabdullah: im looping through a json obect, how can i get rid of this?? [03:35] justicefries: fwiw [03:36] thinkjson: we already has heavy investment in AWS, so that's why we went that route [03:36] thinkjson: it's worked out well so far for us [03:36] jesusabdullah: I work for nodejitsu, so I'm biased. [03:36] thinkjson: *had [03:36] justicefries: I also like nodejitsu [03:36] justicefries: and I also like Heroku [03:36] jesusabdullah: no.de was rock solid last time I used them, and that was a year ago [03:37] tkaemming has joined the channel [03:37] justicefries: that's good, too. you really can't go wrong. [03:37] jesusabdullah: nodecoder123: Depends on how you're looping through it. [03:37] justicefries: what I do like about Heroku is the solid addon infrastructure. [03:37] justicefries: I also don't like it. [03:37] jesusabdullah: Don't like it? Why come? [03:38] justicefries: If you're maintaining multiple apps, it may make more sense to just have the accounts to the services you need, rather than add them as a Heroku addon and maintain the config manually across all apps except for the one you added it to. [03:38] justicefries: might as well just maintain all the configs. [03:39] jesusabdullah: Hah! Sure [03:39] jesusabdullah: square peg, round hole, all that [03:39] justicefries: That's basically why. ;) [03:39] justicefries: Maybe it'd be kind of cool to have a generic "SaaS store" that any provider, nodejitsu, heroku, etc. could all just be compatible with. [03:40] maxogden: justicefries: its called the open web [03:40] avih has joined the channel [03:40] jrogers has joined the channel [03:40] justicefries: maxogden: sure, once nice thing about Heroku is the config keys are auto added as environment variables [03:40] JaKWaC has joined the channel [03:40] lwille has joined the channel [03:41] justicefries: nothing's stopping me from going and signing up to the 5-6 things I need, sure. [03:42] maxogden: justicefries: no i mean the thing you just described is a goal of the "Open Web" [03:42] justicefries: oh, yes. [03:43] justicefries: i'm with you. [03:43] maxogden: githubs post commit hook api is pretty awesome for instance [03:43] thinkjson: jesusabdullah: yeah, what you wrote will work. thanks! [03:43] Vennril2 has joined the channel [03:44] isaacs: nodecoder123: http://nodejs.org/docs/latest/api/util.html#util.inspect [03:44] windsurf_: thanks! [03:44] justicefries: it is. [03:44] isaacs: nodecoder123: is your goal to inspect the object? if so, that's the thing you want. [03:44] nodecoder123: thanks Isaacs [03:46] justicefries: though, am I wrong in thinking the open web would be against "facilitators" of information? it's more about the source of the information being open to begin with? [03:46] shedinja: Is there a way to recover a module on the npm registry? I lost my .npmrc file [03:46] kawaz_air has joined the channel [03:47] issackelly_ has left the channel [03:47] jesusabdullah: TheNumb: word [03:47] m00p has joined the channel [03:53] jesusabdullah: wat [03:53] jesusabdullah: I don't remember saying that! [03:53] r04r has joined the channel [03:53] r04r has joined the channel [03:53] jesusabdullah: TheNumb: Sorry? >_< [03:54] k1ttty has joined the channel [03:58] wilmoore has joined the channel [03:58] r04r has joined the channel [03:58] jesusabdullah: shedinja: recover a module? What do you mean? [03:58] brianseeders has joined the channel [03:59] jesusabdullah: Oh [03:59] jesusabdullah: You mean, if you made a new account? [03:59] xjiujiu has joined the channel [04:00] sdwrage has joined the channel [04:00] Brian` has joined the channel [04:00] RobWC has joined the channel [04:01] RobWC has left the channel [04:01] kenperkins has joined the channel [04:01] shedinja: jesusabdullah: i used a different email before when I made the module. When I try to update the module it says "Error: forbidden _npmUser must be a current maintainer" [04:02] jesusabdullah: ah [04:02] xjiujiu has joined the channel [04:03] r04r has joined the channel [04:03] r04r has joined the channel [04:04] jesusabdullah: I'd suggest setting up your creds as your old email, then adding yourself as a maintainer, then switching the creds back [04:04] Cerales has joined the channel [04:05] Cerales: Hi all. I'm trying to send a 1x1 gif in a response, and it seems that since 0.6.X it seems it with the wrong encoding or something; it used to Just Work when i did res.end(pixel); Anyone know what this might be? [04:05] joshfinnie has joined the channel [04:05] Cerales: it seems to be doing some of the decoding itself - if i do console.log(pixel), it says "GIF87etc etc", rather than showing the escaped base64 string [04:05] shedinja: jesusabdullah: I'll try that [04:06] isaacs: shedinja: just run `npm adduser` again [04:06] isaacs: shedinja: you can reset your password on http://admin.npmjs.org/reset [04:06] marcello3d: anyone here using mongolian deadbeef? [04:08] r04r has joined the channel [04:10] shedinja: isaacs: cool thanks [04:10] postwait has joined the channel [04:11] ChrisPartridge: Cerales: tried setting the encoding to 'base64' ? [04:12] r04r_ has joined the channel [04:17] r04r has joined the channel [04:17] r04r has joined the channel [04:17] jeromegn has joined the channel [04:18] rauchg has joined the channel [04:19] nodecoder123: anyone here using node nitro? [04:20] Cerales: ChrisPartridge: tried that, it didn't work. oddly, it worked by loading it from file as a binary buffer, storing it after doing .toString() to it, but then sending it as binary [04:22] r04r has joined the channel [04:22] r04r has joined the channel [04:23] jacksonrkj has joined the channel [04:26] kazupon has joined the channel [04:27] r04r has joined the channel [04:27] r04r has joined the channel [04:29] p1d has joined the channel [04:31] r04r has joined the channel [04:31] r04r has joined the channel [04:35] bluebit has joined the channel [04:36] Me1000 has joined the channel [04:36] lz has joined the channel [04:36] r04r has joined the channel [04:39] replore has joined the channel [04:39] replore_ has joined the channel [04:41] r04r has joined the channel [04:41] maletor has joined the channel [04:44] chrisvwebdev has joined the channel [04:46] r04r has joined the channel [04:50] cjm has joined the channel [04:50] r04r has joined the channel [04:50] r04r has joined the channel [04:52] jyp: what is net_uv.js? [04:52] secoif has joined the channel [04:52] bartt has joined the channel [04:54] faced has joined the channel [04:55] r04r has joined the channel [04:55] mikeal has joined the channel [04:56] lulzilla has joined the channel [04:56] chrisvwebdev has joined the channel [04:56] lulzilla: anyone else notice Forevere is failing to list processes for Node 0.6.6? [04:57] cjm has joined the channel [04:57] OmidRaha has joined the channel [04:57] jesusabdullah: I don't think forever is 0.6 compatible..? [04:57] AvianFlu: lulzilla, it's a known issue and it's being worked on [04:58] AvianFlu: we should see an 0.6 compatible release this week [04:58] kyonsalt has joined the channel [04:58] marcello3d: how important do you think it is to support 0.4 on a library vs using 0.6 features? [04:59] jesusabdullah: Depends [04:59] jesusabdullah: but my feeling is that you would want to have a maintenence branch for 0.4 (bugfixes only) if it came to that [04:59] jesusabdullah: cause, I mean, 0.4 has been out for a while [04:59] r04r has joined the channel [05:00] rwaldron has joined the channel [05:01] tilgovi has joined the channel [05:01] tilgovi has joined the channel [05:01] chrisvwebdev has joined the channel [05:02] Corey has joined the channel [05:03] tonymilne has joined the channel [05:04] r04r has joined the channel [05:04] merlin83 has joined the channel [05:06] dr0id has joined the channel [05:09] r04r has joined the channel [05:11] kazupon has joined the channel [05:12] ix_ has joined the channel [05:12] xjiujiu has joined the channel [05:13] shiawuen has joined the channel [05:14] r04r has joined the channel [05:14] r04r has joined the channel [05:17] pyparadigm has joined the channel [05:19] r04r has joined the channel [05:19] windsurf_ has joined the channel [05:20] thepumpkin has joined the channel [05:20] willwhite has joined the channel [05:20] dilvie has joined the channel [05:21] lulzilla: Thanks Mr Flu [05:22] windsurf_: I need help choosing between nodester, nodejitsu, no.de and the like. I don't have a server where I can run node and will be running a fairly low traffic app though it would be nice to know that IF it needs to it can scale up. I want to pay proportionally to what I use, ideally free at first [05:24] r04r has joined the channel [05:28] pauls1 has joined the channel [05:28] r04r has joined the channel [05:28] r04r has joined the channel [05:29] codora has joined the channel [05:30] hatch has joined the channel [05:30] JakeyChan has joined the channel [05:31] hatch: I have 0.4.9 installed, I just tried to make/ make install but its still saying 0.4.9 when I node --version [05:31] hatch: I'm guessing a missed a step to make it upgrade [05:33] gigafied has joined the channel [05:33] boehm has joined the channel [05:33] r04r has joined the channel [05:33] r04r has joined the channel [05:34] buttface has joined the channel [05:35] k1ttty has joined the channel [05:35] SubStack has joined the channel [05:35] mattgifford has joined the channel [05:37] madhums has joined the channel [05:37] MrMaksimize has joined the channel [05:38] r04r has joined the channel [05:38] clifton has left the channel [05:40] towski has joined the channel [05:40] N0va` has joined the channel [05:41] michaelhartau has joined the channel [05:43] joshkehn has joined the channel [05:43] joshkehn has left the channel [05:45] drewolson has joined the channel [05:46] r04r has joined the channel [05:50] fangel has joined the channel [05:52] jerrysv has joined the channel [05:52] r04r has joined the channel [05:55] jyp: when do i receive socket.on('error') event? [05:55] hatch has left the channel [05:56] te-brian2 has joined the channel [05:56] r04r has joined the channel [05:56] r04r has joined the channel [05:59] satyr has joined the channel [06:01] maxogden: errors mostly [06:01] r04r has joined the channel [06:01] r04r has joined the channel [06:01] mikeal has joined the channel [06:03] josh9: what should i use for a new website, flatiron or express? [06:04] shiawuen has joined the channel [06:04] josh9: or what is the core differences between those frameworks? [06:05] fbartho has joined the channel [06:05] maxogden: what are you trying to achieve with this website of yours [06:06] r04r has joined the channel [06:06] josh9: maxogden: 'hot or not' style website. you upload some images and people rate them with some comments. [06:07] hatch has joined the channel [06:07] maxogden: josh9: what parts of node are required for your product to exist? [06:08] hatch: I was able to get 0.6.6 running but now I am unable to upgrade my npm as it says it wont run in 0.6.6 and the curl link is successful but now just spits out a bunch of C looking code on npm --version [06:08] josh9: maxogden: i am new to node. i am going to follow this tutorial - http://www.nodebeginner.org/ which create a simple site without any framework. i am a ruby guy. [06:09] hatch: can I just delete node_modules/npm ? [06:09] maxogden: josh9: gotcha. node is good at solving specific problems is why im asking. for everything else theres rails+django etc. unless you really wanna write npm modules in which case node is great [06:09] josh9: maxogden: and when i finish the tutorial i think i should pick a framework to make things easy. i am familiar with sinatra so i think express might be nice but just heard about flatiron. [06:10] jesusabdullah: Any middlewares you use with express should be portable to flatiron's middleware stack [06:10] maxogden: josh9: flatiron is a buncha separate modules and is a little bit more DIY, express is a more traditional monolothic web framework [06:10] josh9: maxogden: and i prefer sinatra over rails. [06:10] jacobolus has joined the channel [06:10] jesusabdullah: flatiron's not like either of those things, really [06:10] aaditya has joined the channel [06:10] josh9: maxogden: gotcha. seems like express will be easier for a node beginner. [06:10] jesusabdullah: It has neat parts but you'll have an easier time getting going with express, at least for now [06:11] r04r has joined the channel [06:11] jesusabdullah: I suspect given time flatiron will become more approachable [06:11] josh9: jesusabdullah: nice. it's good to know that i'll be able to reuse some code if i'll choose flatiron later on. [06:11] jesusabdullah: Yeah! [06:15] r04r has joined the channel [06:15] r04r has joined the channel [06:16] satyr has joined the channel [06:18] JaKWaC has joined the channel [06:19] JaKWaC_ has joined the channel [06:20] chrisdickinson: sort of off topic, but anyone care to give http://chrisdickinson.github.com/fpsjs/ a read? i'm working on a building an in-browser multiplayer fps, and i'm trying to build up a sort of e-novella describing how to use webgl / webworkers / socket.io and node in tandem to that end. [06:21] r04r has joined the channel [06:21] _dc has joined the channel [06:22] chrisdickinson: (the fps, such as it is, lives at http://neversaw.us:8001/ for now. networking works, but is occasionally laggy.) [06:23] jeromegn has joined the channel [06:26] r04r has joined the channel [06:26] ChrisPartridge: Looks good chrisdickinson [06:27] chrisdickinson: ChrisPartridge: thanks! [06:27] isaacs has joined the channel [06:28] chrisdickinson: i'm hoping to document the entire process. [06:29] hatch has left the channel [06:30] r04r has joined the channel [06:30] r04r has joined the channel [06:31] JaKWaC has joined the channel [06:36] r04r has joined the channel [06:37] maxogden: chrisdickinson: very awesome [06:38] socketio\test\90 has joined the channel [06:38] chrisdickinson: maxogden: thanks :) [06:38] SamuraiJack has joined the channel [06:39] chrisdickinson: definitely a work in progress -- both the fps itself and the documentation. [06:40] maxogden: chrisdickinson: have you seen https://github.com/boazsender/Abacus [06:40] maxogden: err https://github.com/Abacus/Abacus [06:41] maxogden: also WIP [06:41] r04r has joined the channel [06:41] chrisdickinson: i hadn't seen that, very cool [06:42] TooTallNate has joined the channel [06:42] socketio\test\27 has joined the channel [06:43] merb|muffins has joined the channel [06:46] chrisdickinson: this basically started as an experiment to see if it was possible to have a fairly lag-free experience in a browser multiplayer fps. there's still a lot of room for improvement with how i'm dealing with websockets at the moment, but thus far the results look promising. [06:46] r04r has joined the channel [06:46] chrisdickinson: (for instance, while on the one hand, i'm doing slim object updates between the server, client worker thread, and client renderer, i'm still stupidly sending all of the new data about all of the new objects in the world down to the client.) [06:46] r04r has joined the channel [06:47] ccare has joined the channel [06:48] chrisdickinson: (and i'd love to see if adding a CRC of the world state to the player's input stream would allow me to skip sending updates for players.) [06:48] mattgifford has joined the channel [06:48] liar has joined the channel [06:51] r04r has joined the channel [06:53] Margle has joined the channel [06:55] r04r has joined the channel [06:55] r04r has joined the channel [06:56] p1d has joined the channel [06:56] NetRoY has joined the channel [06:57] paul____ has joined the channel [06:58] Cerales has joined the channel [06:58] Cerales: How do I set the headers on a HTTP client request? [06:59] Cerales: When I'm using Node.js as a HTTP client, I mean. [07:00] braoru has joined the channel [07:00] r04r has joined the channel [07:04] pity has joined the channel [07:05] r04r has joined the channel [07:08] tmm1: is there any way to force process.stdout to be unbuffered? [07:09] mike5w3c has joined the channel [07:10] braoru: sad that people are so lazy :/ http://nosql.mypopescu.com/post/14453905385/attacking-nosql-and-node-js-server-side-javascript [07:11] gausby has joined the channel [07:12] skylamer` has joined the channel [07:13] jesusabdullah: braoru: If only that post was preaching to the choir, eh? [07:14] romanb has joined the channel [07:15] ditesh|cassini has joined the channel [07:18] neshaug has joined the channel [07:20] garrensmith has joined the channel [07:22] kenperkins has joined the channel [07:23] butu5 has joined the channel [07:24] dgathright has joined the channel [07:24] medikoo has joined the channel [07:26] koder has joined the channel [07:26] maletor has joined the channel [07:27] dannyamey has joined the channel [07:28] jetienne_ has joined the channel [07:29] pauls1 has joined the channel [07:29] mattgifford has joined the channel [07:32] sylvinus has joined the channel [07:33] ljackson has joined the channel [07:33] augustl: braoru, jesusabdullah: according to the internet, everything sucks [07:34] ph^ has joined the channel [07:34] tomlion has joined the channel [07:37] saikat has joined the channel [07:37] fangel has joined the channel [07:37] uchuff has joined the channel [07:40] coderzach has joined the channel [07:40] groom has joined the channel [07:40] kejun has joined the channel [07:42] nicholasf has joined the channel [07:43] Emmanuel has joined the channel [07:43] braoru: augustl, its sad because I realy belive in nosql, nodjs, and somme new web technologies.. [07:44] braoru: augustl, but why people forget the past :/ its not beceause a tools is greate and help you that you have to stop thinking [07:45] augustl: "Playing with MongoDB lately, I’m getting scared. Because I’m seeing some really bad practices out there. Seeing it in live code. In tutorials." [07:45] augustl: killer argment. I've never seen anyone rape a relational database [07:47] brianloveswords has joined the channel [07:47] Renegade001 has joined the channel [07:51] buttface has joined the channel [07:51] raphdg has joined the channel [07:53] ditesh|cassini has joined the channel [07:53] ditesh has joined the channel [07:54] Morkel has joined the channel [07:55] skm has joined the channel [07:55] __doc__ has joined the channel [07:58] saesh has joined the channel [07:58] hipsters_ has joined the channel [07:58] rendar has joined the channel [07:59] slaskis has joined the channel [08:00] jimt has joined the channel [08:02] HT has joined the channel [08:04] gripir has joined the channel [08:05] jimt has joined the channel [08:06] LeMike has joined the channel [08:07] petrjanda has joined the channel [08:08] emattias has joined the channel [08:11] braoru: augustl, ;-) [08:11] braoru: augustl, still need to spread good practices .. :) [08:12] braoru: augustl, and tell people sans top10 and owasp top10 still exist with mongo+node :D [08:14] tmm1: do i really need to write a node extension to call fflush(stdout) [08:14] djcoin has joined the channel [08:14] hotroot1: Not sure I read the full context, but remember, EVERY new technology has lots of hater [08:14] hotroot1: *haters [08:15] hotroot1: According to some people C++ is shit. Well, can't be that bad, every good game engine is written in it, and they perform quite well. [08:16] kuebk has joined the channel [08:16] braoru: Personally I realy like node.js and im more and oldtech hater than a new tech hater [08:17] romanb has joined the channel [08:17] braoru: but still sad that people forget classical good practice when they use new tech :/ on github you can find many time some kind of ugly practice ./ [08:17] cjroebuck has joined the channel [08:18] hotroot1: I don't think new tech has that much to do with bad practices [08:19] hotroot1: By the way, I'm having a huge problem with setTimeout if anyone can offer some quick help? [08:20] hotroot1: https://gist.github.com/1500768 [08:20] TimTim has joined the channel [08:20] hotroot1: Line 35 I set the 20 second non-logged in idle timeout [08:21] hotroot1: Line 145 when the user logs in I clear this timeout [08:21] hotroot1: But the user still times out in 20 seconds =/ [08:24] hipsters_ has joined the channel [08:25] ablomen has joined the channel [08:26] kuebk1 has joined the channel [08:29] superjudge has joined the channel [08:30] mitc0185 has joined the channel [08:30] JakeyChan has joined the channel [08:32] [AD]Turbo has joined the channel [08:33] jlaire has joined the channel [08:33] [AD]Turbo: hola [08:34] ppcano has joined the channel [08:34] admc has joined the channel [08:35] pvorb has joined the channel [08:35] AD7six has joined the channel [08:35] mange has joined the channel [08:36] kuebk has joined the channel [08:38] pvorb has left the channel [08:38] pvorb has joined the channel [08:39] braoru: hotroot1, are you sure in function at 29 the this realy refers to the server ? [08:39] hotroot1: 1 sec [08:40] astropirate has joined the channel [08:40] slaskis_ has joined the channel [08:40] hotroot1: At 29? [08:40] braoru: 35 ;/ [08:41] hotroot1: Yeah, it goes off [08:41] braoru: because at 30 you setting self=this an this is the "client" but does it is realy set to client ? [08:41] wilmoore has joined the channel [08:41] braoru: in js I ofter get surprise with the particular meaning of this .. compared to other language.. [08:42] hotroot1: The self shit is for the DB calls where "this" doesn't refer to the socket [08:43] braoru: but at the moment of the self=this are you sure the this realy referring to the "client" ? [08:44] hotroot1: Sry ,one sec [08:45] hotroot1: So [08:45] braoru: Actually I'm am playing with backbone.js and I often get some bad shit with callbacks [08:45] clu3 has joined the channel [08:46] hotroot1: OMG [08:46] hotroot1: Why the hell did I do that? [08:46] mange has joined the channel [08:46] braoru: ? [08:46] hotroot1: I must have been really tired. Self was supposed to be a clone of this [08:47] hotroot1: it should be var self = socket; [08:47] hotroot1: tyvm [08:47] Emmanuel` has joined the channel [08:49] braoru has left the channel [08:49] braoru has joined the channel [08:50] braoru: shity wifi.. [08:50] hotroot1: No, wait, it shouldn't have, but I found my problem =) [08:50] loob2 has joined the channel [08:50] tomasztomczyk has joined the channel [08:50] JakeyChan has joined the channel [08:51] jaket has joined the channel [08:51] hotroot1: Now I wait 20 seconds and see if this worked [08:53] hotroot1: Erm, more problems [08:53] hotroot1: -.- [08:53] hotroot1: w/e I'll get it later [08:53] braoru: :D [08:53] braoru: its all time more problems :D [08:54] braoru: cup of tee + chocolate fix everything in web development [08:55] hotroot1: True that [08:55] hotroot1: I have loose leaf oolong I make here [08:55] Vertice has joined the channel [08:55] hotroot1: The self / this thing is confusing [08:55] hotroot1: Tank game to blow off stress =P [08:56] vvo has joined the channel [08:57] braoru: :D [08:57] braoru: cupe of tea + super meat boy [08:57] braoru: on my side [08:58] tshpaper has joined the channel [08:59] salva has joined the channel [09:01] mpavel has joined the channel [09:01] whitman has joined the channel [09:01] aliem has joined the channel [09:01] mara has joined the channel [09:02] dantalizing has joined the channel [09:03] jbpros has joined the channel [09:04] mpavel has left the channel [09:09] nicholasf has joined the channel [09:10] slaskis has joined the channel [09:11] choi0hun_ has joined the channel [09:11] _baton_ has joined the channel [09:12] jimt_ has joined the channel [09:14] maritz has joined the channel [09:16] stonebranch has joined the channel [09:17] hackband has joined the channel [09:17] hellp has joined the channel [09:17] hipsters_ has joined the channel [09:18] skunkape has joined the channel [09:18] neilk_ has joined the channel [09:19] Squeese has joined the channel [09:21] towski has joined the channel [09:26] cosmincx has joined the channel [09:26] pvorb has left the channel [09:28] Heisenmink has joined the channel [09:29] bosphorus has joined the channel [09:29] arcanin has joined the channel [09:29] Me1000 has joined the channel [09:30] meso has joined the channel [09:30] d0k has joined the channel [09:33] herbySk has joined the channel [09:34] shapeshed has joined the channel [09:34] tshpaper has joined the channel [09:35] HardPhuck: how can I test the net.socket data i get from the server against a REGEX? [09:35] HardPhuck: I mean what's the best ay [09:35] HardPhuck: socket = new net.Socket(); [09:36] HardPhuck: socket.on('data', function(data) { ... }); [09:37] HardPhuck: I would like to test that data for a word ' ... login ... ' where I'm interested in login and what comes after [09:38] lzskiss has joined the channel [09:39] robhawkes has joined the channel [09:44] MrBenn has joined the channel [09:45] larssmit has joined the channel [09:47] baudehlo has joined the channel [09:47] Vertice: so npm is running on couch [09:47] Vertice: lovely [09:47] piscisaureus_ has joined the channel [09:51] dallas20 has joined the channel [09:51] woeye has joined the channel [09:54] sylvinus has joined the channel [09:54] maletor_ has joined the channel [09:54] nicholasf has joined the channel [09:56] bergie_ has joined the channel [09:56] eldios has joined the channel [10:00] mc_greeny has joined the channel [10:00] aaronmcadam has joined the channel [10:01] cosmincx has joined the channel [10:01] thalll has joined the channel [10:02] zodiak has joined the channel [10:03] TomY has joined the channel [10:03] zodiak: hey guys and gals, if I have a function that uses sqlite and inside the results callback, I have to then call sqlite inside the callback to update another table.. but.. no joy [10:04] zodiak: does node-sqlite3 allow the same db handle to be used in it's own callback ? [10:05] deoxxa: db.query("select herp from derp", function(err, rows) { console.log([err,rows]); db.query("update derp set herp = 'zodiak'", function(err, rows) { console.log([err,rows]); }); }); [10:05] icebox has joined the channel [10:05] k1ttty has joined the channel [10:06] zodiak: hrm, in the external query I am using db.all .. wonder if changing that may have some magick [10:06] deoxxa: zodiak: that's a yes - but your description of the problem is so vague it's almost impossible to tell what the actual issue is [10:06] jetienne_ has joined the channel [10:07] Cromulent has joined the channel [10:07] Esteb has joined the channel [10:08] zodiak: deoxxa, I don't see the query call in the API; https://github.com/developmentseed/node-sqlite3/wiki/API [10:09] zodiak: is that not the 'proper' sqlite3 interface ? [10:09] deoxxa: sorry, .all [10:09] deoxxa: but anyway, post some code [10:09] deoxxa: until then everything will be speculation [10:09] zodiak: sure [10:10] zodiak: deoxxa, http://pastie.org/3045539 [10:11] zodiak: query was obviously changed from all ;) [10:11] deoxxa: where's db defined? [10:12] deoxxa: also wut [10:12] deoxxa: how is that meant to work - f2 doesn't return anything directly [10:12] zodiak: http://pastie.org/3045539 [10:12] deoxxa: f2(uid, pageSize, page) == undefined [10:12] zodiak: deoxxa, well, f2 returns from it's callback the list of ids [10:13] deoxxa: no, it doesn't [10:13] deoxxa: the anonymous function inside the db call does [10:13] deoxxa: but it doesn't work that way [10:14] zodiak: alrighty [10:14] zodiak: so, it's not like a promise then ? [10:14] deoxxa: nope, not at all [10:14] deoxxa: it's continuation passing [10:14] deoxxa: so you write a function like [10:14] zodiak: it doesn't stop until it unravels the value.. well.. fudge. [10:15] adambeynon has joined the channel [10:15] deoxxa: function add(a, b, callback) { callback(null, a+b); } [10:16] deoxxa: (the "null" is just convention - usually the first parameter of a callback is an error object) [10:16] deoxxa: then you do [10:16] deoxxa: add(1, 2, function(err, result) { console.log([err,result]); }); [10:17] astropirate: I support the war against CoffeScript! [10:17] deoxxa: so basically you're saying "hey, add, here's a couple of numbers. i want you to do you thing with them. call me back on when you're done! kthx!" [10:18] deoxxa: the "add" example is a bit silly, but it demonstrates the point clearly enough [10:18] zodiak: deoxxa, so, I am literally coming at this from the opposite angle [10:18] tanepiper: A war against CoffeeScript is like a war against Atheism, pointless wars against silly gods [10:18] tanepiper: *for [10:19] zodiak: good show. [10:19] deoxxa: zodiak: yep! don't worry, i'm pretty sure everyone does at the start [10:20] deoxxa: the way i do things (which is the result of working with node for about 6 months) is that anything that will result in IO-related blocking returns the result via a callback, but anything that doesn't is returned from the function [10:20] deoxxa: keep that CPU working for its bread! [10:21] `3rdEden has joined the channel [10:22] deoxxa: so back to your code - what you want is to return the results of f2 and f3 via callbacks [10:25] markwubben has joined the channel [10:25] zodiak: deoxxa, gotcha.. I am trying to tinker away with it :) [10:25] deoxxa: i'm just doing up a paste now to demonstrate how it might look [10:26] tomasztomczyk has joined the channel [10:28] zodiak: deoxxa, danke.. I am going to try this here, but another solution is always good to learn from .. muchly appreciated [10:29] xy has joined the channel [10:30] deoxxa: https://gist.github.com/1501106 [10:30] deoxxa: that kind of thing [10:31] X99 has joined the channel [10:31] deoxxa: now, unless those functions are going to be used in a bunch of difference places, it'd probably be neater to inline them all into the .get callback [10:33] Glenjamin: eugh [10:33] Glenjamin: separation on concerns! [10:34] deoxxa: Glenjamin: that'd be a bit overkill for this [10:34] Glenjamin: controller methods = call one model method, then render view [10:34] Glenjamin: clean code is never overkill [10:34] robi42 has joined the channel [10:35] deoxxa: there's clean, then there's "mvc for mvc's sake" [10:35] deoxxa: if it, in general, makes the code harder to follow, it's not clean as far as i'm concerned [10:37] snearch has joined the channel [10:37] deoxxa: if it's a function that is used in one place, and will probably never change (notwithstanding a substantial rewrite of the application), what's the point of putting it somewhere else? would it not be beneficial to have it right there, where it's used? [10:39] garrensmith has joined the channel [10:45] V1 has joined the channel [10:45] zodiak: deoxxa, I have to hit the hay.. it's 3am here.. but I think I have something that works.. and thank you deeply for the shakabooko (swift spiritual kick to the head that alters one's perceptions :) [10:45] deoxxa: \o/ [10:45] deoxxa: no problem, good luck! [10:46] deoxxa: oh, one more thing [10:46] deoxxa: https://gist.github.com/1501106 [10:46] deoxxa: that's it inlined into .get [10:46] deoxxa: :) [10:46] zodiak: danke :) [10:47] josh-k has joined the channel [10:50] swestcott has joined the channel [10:51] fermion has joined the channel [10:52] TimTim: well that is just weird [10:52] TimTim: anyone know why i can't use req.end with app.post? [10:53] logicalparadox has joined the channel [10:53] TimTim: *res.end [10:53] TimTim: even though on express's site it gives an example using res.end to return req.body [10:53] TimTim: i have to use res.send instead [10:53] eldios has joined the channel [10:56] cosmincx has joined the channel [11:00] nicholasf has joined the channel [11:06] yyy has joined the channel [11:06] cjroebuck has joined the channel [11:07] fly-away has joined the channel [11:08] eldios: http://nosql.mypopescu.com/post/14453905385/attacking-nosql-and-node-js-server-side-javascript [11:08] eldios: guys... if you use eval or don't parse user input then you deserve to blow up [11:09] eldios: really [11:09] hotroot1: Who uses eval? [11:09] eldios: in that article it's advised to not use eval or use userinput to concatenate and create custom methods [11:10] hotroot1: Again, who does that? [11:10] eldios: well if one does such tricks then (s)he actually deserves to be exploited [11:10] hotroot1: Exactly [11:10] hotroot1: That's nearly as bad as GOTO [11:10] eldios: I hope anyone [11:10] eldios: it's worst [11:10] eldios: IMO it far worse than goto [11:10] hotroot1: Yeah [11:11] eldios: because it's dangerous.. GOTO is only plain horrible to read/use/understand [11:11] hotroot1: Well I'm off to bed, cya later [11:11] hotroot1 has left the channel [11:12] spolu has joined the channel [11:12] eldios: have a good rest [11:14] logicalparadox has left the channel [11:17] EvRide1 has joined the channel [11:17] maletor has joined the channel [11:17] Joypad has joined the channel [11:19] tomaszto_ has joined the channel [11:20] woeye has joined the channel [11:24] otakutomo has joined the channel [11:25] Glenjamin: GOTO is fine if its fairly local [11:25] ianyo has joined the channel [11:25] stefpb has joined the channel [11:28] bfishe200 has joined the channel [11:29] JakeyChan_ has joined the channel [11:31] AD7six has joined the channel [11:32] TimTim has joined the channel [11:36] AD7six has joined the channel [11:39] bfishe200 has joined the channel [11:40] level09 has joined the channel [11:40] boltR has joined the channel [11:41] joshfinnie has joined the channel [11:41] ovaillancourt has joined the channel [11:43] swestcott has joined the channel [11:46] Juan77 has joined the channel [11:56] AD7six has joined the channel [11:56] amigojapan has joined the channel [12:01] stagas has joined the channel [12:03] michaelhartau has joined the channel [12:05] boehm has joined the channel [12:07] logicalparadox has joined the channel [12:09] pandeiro has joined the channel [12:09] ccare has joined the channel [12:10] shinuza has joined the channel [12:12] __doc__ has joined the channel [12:13] appr has joined the channel [12:14] jimt has joined the channel [12:15] paera has joined the channel [12:15] Glenjamin: TimTim: req.end doesn't seem to send the headers you've specified [12:16] Glenjamin: lazy-header sending only works with send() [12:16] node has joined the channel [12:23] CrisO has joined the channel [12:24] stagas has joined the channel [12:24] TimTim: Glenjamin thanks [12:25] JakeyChan has joined the channel [12:26] grubb has joined the channel [12:27] lzskiss has joined the channel [12:28] broofa has joined the channel [12:30] kulor-uk has joined the channel [12:34] hij1nx has joined the channel [12:34] heineken has joined the channel [12:34] Cromulent has joined the channel [12:36] EvRide has joined the channel [12:38] dharmesh has joined the channel [12:38] Morkel has joined the channel [12:39] xetorthio has joined the channel [12:41] niko has left the channel [12:42] garrensmith has joined the channel [12:42] AD7six has joined the channel [12:43] kazupon has joined the channel [12:44] gtramontina has joined the channel [12:45] enmand has joined the channel [12:45] neurodrone has joined the channel [12:47] Druid_ has joined the channel [12:48] jomoho has joined the channel [12:48] paera has left the channel [12:48] eldios: Glenjamin, is a clear sign that you just LOST [12:48] nullie has joined the channel [12:48] Glenjamin: which bit? [12:49] eldios: and gave up using the quick&dirty trick [12:49] eldios: it's like cheating in games [12:49] eldios: GOTO was only meaningful in FORTAN, ASM and PROLOG [12:49] eldios: maybe [12:49] nullie: hello. What is correct way to wait for all streams to flush before invoking process.exit ? [12:49] Glenjamin: what's the cleanest way to break out of the inner of a triple-nested loop? [12:49] nullie: Glenjamin, break label [12:49] Glenjamin: break label === goto [12:49] eldios: Glenjamin, break + checking condition? [12:50] eldios: actually no it is not [12:50] nullie: Glenjamin, return is goto to [12:50] nullie: Glenjamin, where's no way to get out of loop without goto [12:50] Glenjamin: GOTOs can be used for good [12:50] eldios: let's say that it can.. but it's so tempting to use it for VERY BAD things that it should deserve to burn in hell all the same [12:51] Glenjamin: eldios: people say the same thing about eval [12:51] socketio\test\75 has joined the channel [12:51] nullie: eval is more evil, imo [12:51] eldios: one thing I agree with Crockford is that many bad parts of languages derives from the use you can do of those features themself [12:51] Glenjamin: yet most modern programming languages are essentially an eval [12:51] eldios: eval is EVEN MOOOOAR EVIL [12:51] blup has joined the channel [12:51] Glenjamin: interpreter === eval [12:51] insin has joined the channel [12:51] Glenjamin: my point is that these things aren't as black and white as people often like to make out [12:51] jimt_ has joined the channel [12:52] eldios: ok.. but using an eval...inside a "standard eval" (interpreter) is bad [12:52] Glenjamin: not always [12:52] eldios: 99% [12:52] Lingerance: ACTION uses it with an admin-only command for an IRC bot [12:52] Glenjamin: exactly [12:52] eldios: Lingerance you win :3 [12:53] Brandon_R has joined the channel [12:53] Brandon_R: hey guys [12:53] Glenjamin: i know of a PHP-based testing tool which has a zombie driver that writes a JS file, run its with node, then injects code to run via eval [12:53] Lingerance: ... [12:53] Lingerance: That sounds horrible [12:53] eldios: and you judge that as good? [12:54] Glenjamin: it is [12:54] Glenjamin: but its the simplest path to something that works [12:54] Glenjamin: and it does work [12:54] Lingerance: ... [12:54] eldios: the simplest path is not always the best path evidently [12:54] Glenjamin: its a hell of a lot simpler than designing and implementing a custom protocol to drive a zombie browser from an external process [12:54] Lingerance: I fail to see how that's the *simplest* path [12:54] eldios: and indeed I often loose myself trying to do a perfect thing to the point I can't create anything usable [12:55] Glenjamin: Lingerance: familiar with zombie? i haven't come up with another way to do it [12:56] eldios: brb [12:56] pyparadigm has joined the channel [12:56] Lingerance: Ah no, you didn't capitalize it so I assumed it was some kind of design pattern. [12:58] Glenjamin: it's a headless browser implemented in node [12:59] Lingerance: Aye [13:00] tvw has joined the channel [13:02] scott_gonzalez has joined the channel [13:02] buttface has joined the channel [13:02] V1 has joined the channel [13:03] grubb has left the channel [13:03] Brandon_R: what is a headless browser [13:03] Lingerance: It's for testing stuff with the DOM [13:04] toabi: or scraping stuff [13:04] mc_greeny has joined the channel [13:06] trose has joined the channel [13:06] hackband_ has joined the channel [13:06] Brandon_R: oh [13:06] Brandon_R: like a crawler [13:06] fairwinds has joined the channel [13:07] dob_ has joined the channel [13:08] tomasztomczyk has joined the channel [13:09] adrianF has joined the channel [13:10] mike5w3c has joined the channel [13:12] erichynds has joined the channel [13:13] dodo has joined the channel [13:13] Blorb has joined the channel [13:14] ditesh|cassini has joined the channel [13:14] ditesh has joined the channel [13:16] kyonsalt has joined the channel [13:16] Brandon_R: how does node.js actually work? [13:16] Brandon_R: under the hood [13:16] zivester has joined the channel [13:16] benvie: in what way [13:16] rurufufuss has joined the channel [13:17] joestein has joined the channel [13:18] Brandon_R: the event loop [13:18] Brandon_R: is there an article where it explains all this? [13:18] benvie: probably, I found the node source approachable [13:18] Brandon_R: v8 3.8.1 came out [13:19] janne has joined the channel [13:19] jscheel has joined the channel [13:19] jscheel has joined the channel [13:19] benvie: basically [13:19] VesQ has joined the channel [13:20] benvie: an event loop is just a processing queue [13:20] benvie: libuv registers listerers/watchers/callbacks with the system to do stuff [13:20] benvie: the system pings back when its done the work, that response goes into the queue [13:21] zomg: Hum [13:21] benvie: so it goes through requests in the queue before turning to the next cycle [13:21] zomg: I just somehow managed to make my node app output ejs code without processing it.. [13:21] enmand has joined the channel [13:21] zomg: Even though the commit didn't even touch anything ejs-related... [13:21] benvie: if nothing is happening then it goes to sleep basically [13:21] zomg: Fun. =) [13:21] Brandon_R: thanks [13:21] Brandon_R: i think i get it [13:22] benvie: it's pretty elegant and simple at like a organizational level [13:22] benvie: event loops are intuitive because they're similar to how people work [13:22] benvie: only one thing at a time pretty much, but the ability yo switch back and forth [13:23] benvie: and to put stuff on the back burner for a bit [13:23] benvie: not really a ton of complexity into organization [13:24] justmoon has joined the channel [13:25] garrensmith has joined the channel [13:25] ph^ has joined the channel [13:26] N0va` has joined the channel [13:26] shinuza has joined the channel [13:28] avih_ has joined the channel [13:29] NetRoY has joined the channel [13:29] Brandon_R: cool [13:29] Brandon_R: so working on anything ground breaking guys? [13:31] subbyyy has joined the channel [13:32] benvie: my brain is falling out after working on this all night https://github.com/Benvie/meta-objects/blob/master/lib/PartialsProxy.js [13:32] chrisvwebdev has joined the channel [13:32] Poetro has joined the channel [13:33] brianseeders has joined the channel [13:34] benvie: and https://github.com/Benvie/meta-objects/blob/master/lib/utils.js [13:34] benvie: but it's finally doing what I wanted it to do [13:34] shinuza has joined the channel [13:35] benvie: it takes the idea of partial application and combines it with proxies so you can have fluent control over all the bits, and even have it generate genuine source for the generated functions [13:35] fumanchu182 has joined the channel [13:35] dscape: guys anyone knows any hack to load json files in a script tag? [13:36] X99 has joined the channel [13:37] matejv has joined the channel [13:37] neshaug has joined the channel [13:38] Brandon_R: what do you guys think ? http://mikkel.hoegh.org/blog/2011/12/20/trouble-in-node-dot-js-paradise-the-mess-that-is-npm/ [13:38] thalll has joined the channel [13:40] dscape: Brandon_R: why would anyone read anything with that tittle? [13:40] dscape: if the author was serious he probably wouldnt be trying to get attention is such a title [13:40] dscape: and would write a proper and resoanable article [13:40] dscape: but that doesnt sell [13:40] dscape: so that's what i think :) wont read fud [13:40] dscape: life's too short [13:41] swestcott has joined the channel [13:43] kyonsalt_zsKSi has joined the channel [13:43] dambalah has joined the channel [13:48] Brandon_R: corejs is awesome [13:48] Brandon_R: too bad it's written in coffeescript [13:48] toabi: what's bad about that^^ [13:48] jetienne_: js is standard [13:49] stagas has joined the channel [13:49] blup has joined the channel [13:51] astropirate: toabi, its unholy [13:51] toabi: unholy. sure. [13:51] ppcano has joined the channel [13:52] astropirate: and it has an uber ugly syntax :p [13:52] jetienne_: and it isnt standard :) [13:52] astropirate: unless you are a ruby/mac fan [13:52] astropirate: *shrugs* [13:53] OmidRaha has left the channel [13:53] gwoo has joined the channel [13:53] gwoo has joined the channel [13:54] Brandon_R: any of you guys getting the transformer prime? [13:54] Brandon_R: quad core :P [13:55] jjd has joined the channel [13:56] Ownatik_ has joined the channel [13:56] Drakonite2 has joined the channel [13:56] MrMaksimize has joined the channel [13:56] RashFael has joined the channel [13:57] Drakonite has joined the channel [13:57] elliottcable: Hm. Wasn't there, previously, a convenience function for copying all properties from one object onto another, or something like that? [13:57] TimTim has joined the channel [13:57] ovaillancourt has joined the channel [13:58] benvie: in what? node? [13:58] windsurf_ has joined the channel [13:58] benvie: there's util.inherits but that's for constructoring [13:59] windsurf_: Which free dev host do you recommend for socket.io? I've heard of nodejitsu, no.de and nodester [13:59] jscheel has joined the channel [13:59] jscheel has joined the channel [13:59] benvie: Object.getOwnPropertyNames(obj).reduce(function(r,s){Object.defineProperty(r, s, Object.getOwnPropertyDescriptor(obj, s); return r; }, Object.create(Object.getPrototypeOf(obj)) [14:00] AaronMT has joined the channel [14:00] benvie: missing some parenthesis [14:01] elliottcable: benvie: yes, in Node [14:01] elliottcable: benvie: and last time I saw it was a *long* time ago. I suppose it's just entirely gone, then? [14:02] benvie: I don't know of any clone so if it existed it was long ago [14:02] benvie: clone in what way, like recursive property type thing, or shallow, or in c++ land? [14:02] elliottcable: benvie: last time I was using Node prior to my current project(s) was ~v0.1.16 [14:02] benvie: lol [14:02] elliottcable: maybe as late as ~0.1.16 [14:02] benvie: yeah before my time [14:02] elliottcable: er, .18* [14:03] Brandon_R: hey elliottcable [14:03] elliottcable: yeah, probably gone then, I suppose. *sighs* [14:03] elliottcable: o7 Brandon_R [14:03] Brandon_R: what are your thoughts on the node.js cluster? [14:03] elliottcable: on the what what? [14:03] elliottcable: anybody know of a quick/simple idiom to import all properties from a module into this module's global namespace? [14:03] elliottcable: I was hoping for something like `require('util').clone(require('myModule', globals)` [14:03] elliottcable: but no such luck, apparently [14:04] elliottcable: er, missed a closing paren in there. http://xkcd.com/859 [14:04] windsurf_: CoffeeScript has something like that [14:04] elliottcable: windsurf_: not particularly helpful, as I don't use CoffeeScript. [14:04] windsurf_: K [14:05] elliottcable: at least, not until https://github.com/jashkenas/coffee-script/issues/1378#issuecomment-3218073 [14:05] Venom_X has joined the channel [14:05] elliottcable: ;D [14:05] benvie: function osmosis(source, target){ [14:05] benvie: Object.getOwnPropertyNames(source).reduce(function(r,s){ [14:05] benvie: return Object.defineProperty(r, s, Object.getOwnPropertyDescriptor(source, s)), r; [14:05] benvie: }, target); [14:05] benvie: } [14:05] benvie: osmosis(module, this || global) [14:05] benvie: oops [14:05] benvie: sec [14:06] benvie: https://gist.github.com/1501667 [14:06] Cromulent has joined the channel [14:08] lazyshot has joined the channel [14:09] apoc has joined the channel [14:10] pkrumins has joined the channel [14:11] maletor has joined the channel [14:11] apoc: can anyone help me with this?: https://github.com/joyent/node/issues/1971#issuecomment-3213017 [14:11] icebox has joined the channel [14:12] lduros has joined the channel [14:13] joshsmith has joined the channel [14:14] mange_ has joined the channel [14:17] jscheel has joined the channel [14:17] jscheel has joined the channel [14:18] sylvinus has joined the channel [14:20] TimTim: newbie question: how do use sendmail (ubuntu) with node? [14:21] TimTim: will i need a module for that or no? [14:21] TimTim: i have node_mailer installed (https://github.com/marak/node_mailer) but i'm wondering if i can just dump stuff to sendmail [14:22] TimTim: or would omitting the "auth", "user" and "pass" keys while using 127.0.0.1 as host/domain be enough [14:25] owenb has joined the channel [14:25] plutoniix has joined the channel [14:25] paera has joined the channel [14:25] JasonJS has joined the channel [14:26] LeMike has joined the channel [14:27] bshumate has joined the channel [14:27] bshumate has joined the channel [14:29] ablomen: TimTim, did you try google? the first page gives you more the enough info [14:29] TimTim: lol yes ablomen i was just looking for some experienced advice :) [14:29] _unary has joined the channel [14:30] jpdery has joined the channel [14:30] jstash has joined the channel [14:30] EriksLV has joined the channel [14:30] doki_pen: what's the most popular templating library? [14:31] TimTim: kinda hoping someone would come along and say "oh no this is a much better way to do it" [14:31] ken-ignite has joined the channel [14:32] emattias_ has joined the channel [14:32] doki_pen: looks like jade, would that be a good guess? [14:33] logicalparadox has left the channel [14:33] bnoordhuis has joined the channel [14:34] guidocalvano has joined the channel [14:36] LuckySmack has joined the channel [14:37] swaj: doki_pen: if I had to venture a wild-ass guess that has no bearing on any actual statstics, I'd say Jade and Mustache are probably the most common. [14:37] romanb has joined the channel [14:37] jetienne_ has joined the channel [14:40] doki_pen: less.js has a ton of followers on github, 2x that of jade. [14:40] mange has joined the channel [14:40] RORgasm_ has joined the channel [14:40] Heisenmink_ has joined the channel [14:41] doki_pen: ah, that's just for css I guess [14:41] gregmore_ has joined the channel [14:41] kwmiebach_ has joined the channel [14:41] dennisjbell has joined the channel [14:41] Glenjamin: followers is meaningless. [14:41] doki_pen: so less+jade seems to be popular [14:41] Glenjamin: the feature doesn't do anything [14:42] Aikar: nova! nova! nova! [14:42] doki_pen: ok, more forks too [14:42] doki_pen: I guess I could use googles search results.. [14:42] Glenjamin: your best bet is to read the intro docs for each one you're considering [14:43] Aikar: i guess i really need to update nova to use fn(err,res) callback style then publicly release it :P then maybe someone can help improve docs to be easier to understand ._. [14:43] Glenjamin: or see if linkedin published their choice grid yet [14:43] doki_pen: Glenjamin: I really just want the most popular [14:43] Glenjamin: doki_pen: not the best? [14:43] doki_pen: no [14:43] deoxxa: anyone using dust.js server-side? i seem to be hitting some odd bugs that present under node, but not in the browser (same templates running in both) [14:43] SamuraiJack_ has joined the channel [14:43] doki_pen: I mean, if it's close, then yes [14:43] level09_ has joined the channel [14:43] doki_pen: but popular is far more important then good in this case [14:44] hatch has joined the channel [14:44] level09_ has left the channel [14:44] ditesh|cassini has joined the channel [14:44] ditesh has joined the channel [14:44] matjas_ has joined the channel [14:44] mde_ has joined the channel [14:44] SubStack_ has joined the channel [14:45] DRMacIver has joined the channel [14:45] kriskrop1 has joined the channel [14:45] dodo_ has joined the channel [14:45] keyvan_ has joined the channel [14:46] slaskis: is there a jade channel? i tried #jade but it was empty... [14:46] rwaldron has joined the channel [14:47] slaskis: or does anyone here know any trick to make jade extend a layout from a variable instead of a hardcoded path? [14:47] lduros has joined the channel [14:47] tanepiper: nope, and nope sorry [14:47] nphase has joined the channel [14:48] niftylettuce_: if I have two paths, e.g. __dirname and '/public/myfile.js' and I want the absolute path for myfile.js, how might I best achieve this? some sort of recursive search? I couldn't find anything in the fs or path modules that would help so far [14:48] erichocean_ has joined the channel [14:49] jimt has joined the channel [14:49] shiawuen has joined the channel [14:49] niftylettuce_: if for instance there is a /assets/ folder separating __dirname and /public/myfile.js [14:49] slaskis: maybe a symlink could work? [14:49] malletjo has joined the channel [14:49] slaskis: does the readFileSync follow symlinks? [14:50] chasefarmer has joined the channel [14:50] willwhite has joined the channel [14:50] niftylettuce_: nah the way i wanted to do it would make it super easy for the user [14:50] p1d has joined the channel [14:50] esmevane has joined the channel [14:50] sechrist has joined the channel [14:50] TimTim has joined the channel [14:50] gwoo has joined the channel [14:50] stagas has joined the channel [14:50] thalll has joined the channel [14:50] jomoho has joined the channel [14:50] boehm has joined the channel [14:50] josh-k has joined the channel [14:50] _baton_ has joined the channel [14:50] braoru has joined the channel [14:50] merb|muffins has joined the channel [14:50] Corey has joined the channel [14:50] tek has joined the channel [14:50] zezikaro has joined the channel [14:50] doffm has joined the channel [14:50] eventualbuddha has joined the channel [14:50] augustl has joined the channel [14:50] pct1 has joined the channel [14:50] caioketo has joined the channel [14:50] binaryjohn has joined the channel [14:50] pusewicz_ has joined the channel [14:50] garann has joined the channel [14:50] remysharp has joined the channel [14:50] trodrigues has joined the channel [14:50] Dreamer3 has joined the channel [14:50] jperras has joined the channel [14:50] eddict has joined the channel [14:50] vl4kn0 has joined the channel [14:50] toabi has joined the channel [14:50] JHartig|away has joined the channel [14:50] jvolkman has joined the channel [14:50] pagameba has joined the channel [14:50] Industrial has joined the channel [14:51] willwhite has joined the channel [14:52] slaskis: niftylettuce_: haha, sorry it wasn't a reply to you but a question… regarding your question though how about using path.resolve('/',__dirnam+'/public/file.js') ? [14:52] zezikaro: wb [14:52] cjlicata has joined the channel [14:53] niftylettuce_: slaskis: no that won't work because '/public/' can change based on how the user wants to set it up [14:53] acuster has joined the channel [14:53] baudehlo has joined the channel [14:53] niftylettuce_: slaskis: I guess I could assume that the user default is 'public' and then if they want, they can pass an extra arg to the function to override public [14:53] niftylettuce_: BOOM DONE. slaskis :D [14:53] slaskis: haha [14:53] lduros has joined the channel [14:53] niftylettuce_: KA POW [14:54] heavysixer_ has joined the channel [14:55] raincole has joined the channel [14:55] Swizec has joined the channel [14:56] robb1e_ has joined the channel [14:56] JasonSmith has joined the channel [14:56] Slashbunny has joined the channel [14:57] xerox has joined the channel [14:57] c4milo has joined the channel [14:57] maru_cc has joined the channel [14:58] heavysixer has joined the channel [15:01] arcanin has joined the channel [15:01] ag4ve has joined the channel [15:02] shedinja_ has joined the channel [15:04] stagas has joined the channel [15:04] heavysixer_ has joined the channel [15:05] IrishGringo has joined the channel [15:05] vvo has joined the channel [15:05] socketio\test\36 has joined the channel [15:07] boltR has joined the channel [15:07] CarterL has joined the channel [15:07] davidsklar has joined the channel [15:08] jerrysv has joined the channel [15:08] marcello3d has joined the channel [15:10] alejandromg has joined the channel [15:11] TheJH has joined the channel [15:14] cypherblue has joined the channel [15:14] xicubed has joined the channel [15:16] alexis has joined the channel [15:16] alexis: hi [15:16] gausby has left the channel [15:16] tuhoojabotti: mo [15:16] alexis: I just went through this http://mikkel.hoegh.org/blog/2011/12/20/trouble-in-node-dot-js-paradise-the-mess-that-is-npm/ [15:16] alexis: and I'm wondering if there is a place where those "metrics" are being discussed [15:17] alexis: anyone got an idea? [15:17] metadaddy has joined the channel [15:17] emattias has joined the channel [15:18] thomblake has joined the channel [15:18] niftylettuce_: does something like this already exist? nodejs.org/search/$version%20$module [15:18] niftylettuce_: and would then search the docs? [15:18] niftylettuce_: ryah: ^ [15:19] brianc1 has joined the channel [15:19] thomblake has left the channel [15:19] niftylettuce_: i mean, it wouldn't be hard to write [15:20] bnoordhuis: https://github.com/popular/watched <- exactly 12K watchers [15:21] joshkehn has joined the channel [15:21] slaskis has left the channel [15:21] slaskis has joined the channel [15:22] realguess has joined the channel [15:23] TimTim: i can't seem to find the solution on google so i'll ask here... [15:25] TimTim: i keep getting "unexpected token o" for JSON.parse when i try this: [15:25] joshkehn has left the channel [15:25] TimTim: try { Contents = fs.readFileSync(File, 'utf-8'); } catch(e) { Contents = {}; } return JSON.parse(Contents); [15:25] TimTim: ohhhh wait [15:25] TimTim: i'm a dumbass [15:25] TimTim: never mind [15:25] kyonsalt has joined the channel [15:25] TimTim: jesus [15:26] TimTim: >:( [15:26] toabi: it's often that one recognizes the error the second he posts his thing in public -.- had this a few times. [15:26] TimTim: hahaha yeah i'll noticed that too [15:26] TimTim: *i've [15:27] aelien27 has joined the channel [15:29] deoxxa: turns out my bug with dust was actually a bug with express-dust (which is a wrapper) [15:31] cjm has joined the channel [15:32] gdusbabek has joined the channel [15:33] triptec has joined the channel [15:33] gdusbabek has left the channel [15:34] kevwil has joined the channel [15:35] zivester has joined the channel [15:35] tomlion has joined the channel [15:36] isaacs has joined the channel [15:36] NetRoY has joined the channel [15:40] zooli has joined the channel [15:40] zooli: hi [15:40] zooli: anyone could help with cross-compile? [15:40] windsurf_ has joined the channel [15:40] brianc1: deoxxa: I didn't think dust was still actively developed [15:41] hipsters_ has joined the channel [15:41] zooli: i have the same problem described here: http://www.synology-forum.de/showthread.html?25165-Node.js-auf-einer-DS1511 [15:41] deoxxa: maybe not, but it seems to do everything i want in its current state [15:41] TheJH: zooli, was für eine Linux-Distribution? [15:42] deoxxa: and i'm not even particularly tied to it, none of my templates actually rely on dust-specific behaviour [15:42] jaitaiwan has joined the channel [15:42] guidocalvano: anyone know where you can find very good html info? [15:42] zooli: i have a debian in a virtualpc [15:42] windsurf_: Which service do you guys recommend for free socket.io app hosting? (at least for dev) No.de, nodester? Other? [15:42] zooli: and the target is arm [15:42] brianc1: deoxxa: yeah I used to use it. switched to mustache.js once I realized it was dead in the water [15:42] guidocalvano: and I don't mean google [15:42] zooli: v5t [15:42] mmalecki: windsurf_: nodejitsu! but I'm biased [15:42] brianc1: deoxxa: mustache.js is really simplistic though. my biggest requirement is working both server and client-side. everything else it can do is secondary to that [15:42] TheJH: zooli, you can't directly compile it on your target device? [15:43] deoxxa: yeah, that's one of the big things for me as well [15:43] zooli: no, that's why i tried to cross compile [15:43] TheJH: zooli, cross-compiling afaik is kinda hard with node/v8 [15:43] zooli: compiling on the arm device fails at the last step [15:43] zooli: when it tries to link together all the files [15:43] windsurf_: Mmalecki, I looked at that briefly and really liked the site but it looked more complicated to use than nodester and couldn't see if there's a free tier [15:43] TheJH: zooli, what kind of error? [15:44] zooli: and on my fried's arm, it compiles, but when we run it says illegal operation [15:44] swaj: windsurf_: heroku works, too, though they're still on node 0.4.x I think. You can get around that with a build package though. [15:44] deoxxa: brianc1: i suppose i should resume work on my jinja-ish template thing, ha [15:44] mmalecki: windsurf_: of course it's free! and you only need one command to deploy :) (`jitsu deploy`) [15:44] mmalecki: windsurf_: we can hook you up in a second, if you want to [15:45] windsurf_: Mmalecki. Really? Cool. Yes please. I wasn't clear between jitsu and the other dev one [15:45] zooli: TheJH: at cxx_link it fails [15:45] mmalecki: windsurf_: awesome :). mind joining #nodejitsu? [15:45] windsurf_: K :) [15:45] zooli: opt/lib/gcc/arm-none-linux-gnueabi/4.2.3/../../../../arm-none-linux-gnueabi/lib/libpthread.so: undefined reference to `errno@GLIBC_PRIVATE' [15:46] zooli: and error msgs like this [15:46] zooli: but it's said that there are some errors with my gcc, so i think thats the problem [15:46] zooli: i have a busybox on a wd mybook world [15:48] Aikar: zooli: your hdd runs a linux distro? lol [15:48] Morkel has joined the channel [15:49] boltR: what's the best way to move the node_modules directory? [15:49] Aikar: boltR: mv [15:49] boltR: that's it? [15:49] MrBenn has joined the channel [15:49] Aikar: well, git mv [15:49] zooli: Aikar: most NASes run linux [15:49] Glenjamin: does git mv even do anything? [15:49] Glenjamin: mv && git add -A . [15:49] Aikar: zooli: oh i didnt know mybook had a NAS, was thinking external HD :P [15:50] MrBenn has joined the channel [15:50] MrBenn has joined the channel [15:51] Aikar: i need to break down and get a NAS so i can turn my damn desktop off [15:51] kyonsalt has joined the channel [15:51] booyaa: Aikar: what you planning on going for? [15:51] codygray has joined the channel [15:53] lmorchard has left the channel [15:53] jocafa has joined the channel [15:54] colinclark has joined the channel [15:54] kevwil has joined the channel [15:55] jakehow has joined the channel [15:55] hunterloftis has joined the channel [15:55] mnutt has joined the channel [15:57] d_low_ has joined the channel [15:58] shinuza has joined the channel [15:58] MrWarGames has joined the channel [15:58] CrisO has left the channel [15:58] guidocalvano: anyone know a good javascript library for creating a gui in the browser? [15:59] _Steve_: jquery ui? [15:59] sorensen__ has joined the channel [16:00] joshfinnie has joined the channel [16:00] springmeyer has joined the channel [16:01] grampajoe has joined the channel [16:01] MrWarGames has joined the channel [16:01] d_low__ has joined the channel [16:01] kevwil has joined the channel [16:02] deedubs has joined the channel [16:02] MrBenn has joined the channel [16:02] lwille has joined the channel [16:04] AvianFlu has joined the channel [16:04] MrWarGames has joined the channel [16:05] MrWarGames has joined the channel [16:05] bradleymeck has joined the channel [16:05] AvianFlu has joined the channel [16:05] bradleymeck: anyone have a shebang checker lying about? [16:05] d_low__ has joined the channel [16:05] jarek has joined the channel [16:06] alejandromg: bradleymeck: for what? For internal process? or text editor? [16:06] context: shebang checker ? [16:06] OtherJakeSays_ has joined the channel [16:06] bradleymeck: to test if something is coffee or node [16:06] bradleymeck: spawner [16:06] toabi: guidocalvano: I think it depends on what you want to do. website with nice widgets or "simulation" of desktop app. I think jQ UI is goes more towards the first way. And then there's stuff whichwants to draw in the full window. [16:07] alejandromg: mmm in vim https://github.com/mmalecki/vim-node.js [16:07] mmalecki: lol [16:07] heavysixer has joined the channel [16:07] mmalecki: it just detects one type XD [16:08] socialhack has joined the channel [16:08] alejandromg: mmalecki: but that is a start ;) [16:08] mmalecki: right XD [16:09] socketio\test\33 has joined the channel [16:09] tjholowaychuk has joined the channel [16:09] neurodrone has joined the channel [16:10] uchuff has joined the channel [16:10] MrWarGames has joined the channel [16:11] dodo has joined the channel [16:11] _dc has joined the channel [16:12] metalball2 has joined the channel [16:15] mandric has joined the channel [16:16] pickels_ has joined the channel [16:16] Destos has joined the channel [16:17] fangel has joined the channel [16:18] TimTim: anyone familar with bcrypt know why this works? bcrypt.encrypt_sync(d.Password, bcrypt.gen_salt_sync(1)) ...but this doesn't? bcrypt.encrypt_sync(d.Password, bcrypt.gen_salt_sync(1000)) [16:18] TimTim: the only difference is the number of rounds (1 vs 1000) [16:19] tjfontaine: what do you mean by "doesn't work" [16:19] murugaratham has joined the channel [16:20] davidsklar has joined the channel [16:20] TimTim: gives the error: Error: Invalid salt. Salt must be in the form of: $Vers$log2(NumRounds)$saltvalue [16:21] guidocalvano: toabi: my problem is that I am getting fed up with interacting with html directly [16:21] OtherJakeSays has joined the channel [16:22] guidocalvano: what I want is to be able to have a decent layout system that doesn't make an exception out of everything that happens [16:22] TimTim: docs say [16:22] TimTim: "gen_salt_sync(rounds, seed_length)" and "rounds - [OPTIONAL] - the number of rounds to process the data for. (default - 10)" [16:22] murugaratham has left the channel [16:22] guidocalvano: I want to be able to say: var verticalLayoutNode = new VerticalLayout() ; [16:22] murugaratham has joined the channel [16:22] lwille has joined the channel [16:23] toabi: guidocalvano: well the layouting™ on the web is CSS^^ there are css frameworks which take the pain out a bit. [16:23] guidocalvano: verticalLayoutNode.setParent( myHtmlNode ) ; [16:23] tbranyen: mmalecki: can you swap that pull req to master now? [16:23] toabi: don't you want to do a Java Swing app? ^^ [16:23] tbranyen: i deleted 0.0.6 [16:23] cjm has joined the channel [16:23] mmalecki: tbranyen: sure [16:24] toabi: guidocalvano: maybe dojo is one of the js frameworks which does a bit what you want http://dojotoolkit.org/reference-guide/dijit/layout.html [16:25] lzskiss has joined the channel [16:25] enmand has joined the channel [16:26] enmand_ has joined the channel [16:26] aheckmann has joined the channel [16:27] tjfontaine: TimTim: compare the outputs, but in my testing there's no issue [16:28] matejv has joined the channel [16:28] guidocalvano: toabi: looks nice [16:28] Cromulent has joined the channel [16:29] DaveW has joined the channel [16:30] DaveW has left the channel [16:30] mmalecki: tbranyen: https://github.com/tbranyen/nodegit/pull/37 [16:30] tbranyen: mmalecki: awesome thanks [16:30] tbranyen: gonna merge that and then start on the rewrite branch [16:30] heavysixer has joined the channel [16:30] dr0id has left the channel [16:30] mmalecki: tbranyen: cool! ping me if I can help [16:31] tbranyen: mmalecki: sweet :D [16:31] eldios: anyone has a link on how to design (architectur) a low level network server/service with nodejs? [16:31] eldios: architecture* [16:31] nphase has joined the channel [16:31] tbranyen: mmalecki: the biggest blocker i'm facing right now is determining how to handle sync/async methods in the native code [16:31] eldios: I'm going nuts with the design of the app *_* [16:32] SubStack: eldios: why would you /want/ a low-level thing [16:32] eldios: SubStack, for fun&profit :P [16:32] mmalecki: tbranyen: I think that people write two versions [16:32] tbranyen: mmalecki: yeah i hate that tho [16:32] malletjo has joined the channel [16:32] eldios: but you can take the "low level" part out.. and the concept will remain the same [16:32] tbranyen: its not DRY at all [16:32] mmalecki: yeah [16:32] eldios: how would you design a network service/server app in nodejs? [16:32] bosphorus has joined the channel [16:33] SubStack: eldios: what problem are you trying to solve? [16:33] Renegade001 has joined the channel [16:33] tbranyen: mmalecki: also i need better assurances that thread safety is accounted for [16:33] mmalecki: tbranyen: this is a problem, but why'd you do that? node has one thread, doesn't it? [16:33] eldios: I find hard to decide how to split objects/functions/files where to put calls/methods if something needs to be an async object or a linear function and so on [16:33] tbranyen: mmalecki: not under the hood [16:34] mmalecki: tbranyen: ah, that's what you're talking about [16:34] tbranyen: yea [16:34] mmalecki: I think that libgit2 is thread safe [16:34] tbranyen: "thread-safe" [16:34] mmalecki: so you only have to check your code XD [16:34] tjfontaine: "safe-ish" [16:34] tbranyen: yeah exactly [16:34] jarek has joined the channel [16:34] jarek has joined the channel [16:34] tbranyen: i think its getting there [16:35] mmalecki: thread-ish safe-ish [16:35] tbranyen: ha [16:35] tbranyen: i'd love to never see a segfault again [16:35] eldios: SubStack, I probably got you question wrong.. if you mean that is the final purpose of my app.. let's say that it will accept connection, do some work and answer after a bit of backend work [16:35] kenperkins has joined the channel [16:35] mmalecki: tbranyen: oh yes. no segfauls! ever! [16:35] mmalecki: they are so 80s' [16:35] SubStack: eldios: asynchronously? [16:35] pizthewiz has joined the channel [16:35] SubStack: eldios: check out https://github.com/substack/dnode [16:35] eldios: actually the client will remain there waiting [16:36] grampajoe has joined the channel [16:36] SubStack: or you could just build an http service [16:36] guidocalvano: toabi: is there a jquery equivalent of dijit? [16:36] gkatsev: jquery ui? [16:37] guidocalvano: does that do layout as well? [16:37] eldios: no wait.. I know how to accomplish what I need to do.. I simply cannot decide *how to design* the nodejs code XD [16:37] eldios: I mean I can't decide where to put classes, objects and so on.. [16:37] wilmoore has joined the channel [16:37] gkatsev: there are plugins that do, but no, jquery ui isn't a complete framework [16:37] SubStack: eldios: you don't need to decide that stuff right away [16:37] eldios: I'm not that expert in JS dev so that's probably why I can't get it.. [16:38] eldios: mm [16:38] tjfontaine: eldios: just start working, refactor it as you go, you learn by experience [16:38] SubStack: just build a prototype that does a tiny piece of what you want [16:38] EvRide has joined the channel [16:38] SubStack: and you probably don't need to bust out classes/prototypical constructors [16:38] Planet_EN has joined the channel [16:38] EyePulp has joined the channel [16:39] pvorb has joined the channel [16:39] hij1nx has joined the channel [16:40] langworthy has joined the channel [16:40] pvorb has left the channel [16:40] Juan77 has joined the channel [16:40] heavysixer has joined the channel [16:40] mbrevoort has joined the channel [16:41] eldios: like making every little step in a different file and test/require 'em as needed? [16:43] Planet_EN has left the channel [16:43] RushPL has joined the channel [16:44] alvaro_o has joined the channel [16:45] secoif has joined the channel [16:45] perezd has joined the channel [16:45] secoif has joined the channel [16:47] diversario has joined the channel [16:47] EhevuTov has joined the channel [16:48] geekbri has joined the channel [16:48] fatjonny has joined the channel [16:49] Vennril has joined the channel [16:49] diversario: Is there a way to debug a script that is being spawned by child_process.fork at some point in the main node process? [16:49] hipsters_ has joined the channel [16:50] _dc has joined the channel [16:51] terite has joined the channel [16:52] rauchg has joined the channel [16:53] deedubs: any good docs on using crypto.createCredentials and friends for doing client certification auth outside of a http connection? [16:54] RashFael has left the channel [16:54] AndreasMadsen has joined the channel [16:55] herbySk has joined the channel [16:55] JaKWaC has joined the channel [16:55] raincole has joined the channel [16:55] mrryanjohnston has joined the channel [16:56] JaKWaC has joined the channel [16:56] Tidwell_ has joined the channel [16:56] donald_cook has joined the channel [16:56] perezd: are there any useful docs on how to utilize the RedisStore effectively in socket.io v0.8 ? /cc rauchg [16:57] shiawuen has joined the channel [16:57] keks has joined the channel [16:57] GrizzLyCRO has joined the channel [16:59] kitt has joined the channel [16:59] pauls1 has joined the channel [16:59] malkomalko has joined the channel [17:01] halfhalo has joined the channel [17:01] vvo has joined the channel [17:01] markdaws has joined the channel [17:01] secoif: best practice for missing callbacks? throw? do nothing and let errors happen? auto replace with noop function? [17:02] mmalecki: secoif: I'd go with noop [17:02] secoif: mmalecki missing callback possibly useful, but -probably- an error [17:03] AndreasMadsen: The cluster 2.0 - step 4 pull request is uploaded please checkout and comment on it: https://github.com/joyent/node/pull/2388 [17:03] secoif: thinking forcing users to supply noop themselves would cover likely usecases better [17:03] rauchg: perezd: #socket.io [17:03] colinclark has joined the channel [17:05] felixge has joined the channel [17:05] felixge has joined the channel [17:05] fzzzy has joined the channel [17:08] mcluskydodallas has joined the channel [17:08] colinclark has joined the channel [17:09] toabi: guidocalvano: I don't know. I never used one of those 'can-do-layouting' frameworks myself. I kind of like my CSS ^^ and equally hate it sometimes. [17:10] guidocalvano: toabi: I f*ck1ng h8 html [17:10] level09 has joined the channel [17:10] criswell has joined the channel [17:11] otakutomo has joined the channel [17:12] terite: What's the purpose of the 0.6 branch in github? [17:12] toabi: so maybe you shouldn't do web development? >_> [17:13] bnoordhuis: terite: it's the stable branch, it gets bug fixes only (almost only) [17:14] terite: So the next 0.6 release will come from that branch [17:14] churp has joined the channel [17:14] bnoordhuis: yes [17:15] Morkel has joined the channel [17:15] mmalecki: real man use master [17:16] terite: A bugfix important to me was pulled into 0.6, but is not in master. [17:16] jarek__ has joined the channel [17:16] CIA-109: node: 03Bert Belder 07v0.6 * rf4e34f1 10/ lib/path.js : Remove unnecessary statement - http://git.io/AgS5cA [17:16] mmalecki: terite: 0.6 often gets merged into master [17:16] terite: But not yet [17:17] alexis: just trying to ask again, the same question [17:17] alexis: http://mikkel.hoegh.org/blog/2011/12/20/trouble-in-node-dot-js-paradise-the-mess-that-is-npm/ [17:17] alexis: 16:16 < alexis> and I'm wondering if there is a place where those "metrics" are being discussed [17:17] braoru has joined the channel [17:18] dgathright has joined the channel [17:21] devongovett has joined the channel [17:21] context: mmm why done homebrew install without npm [17:21] hij1nx has joined the channel [17:21] RobWC has joined the channel [17:23] context: meh whatever i got it [17:23] RobWC has joined the channel [17:25] shinuza_ has joined the channel [17:25] lduros has joined the channel [17:26] pandora17 has joined the channel [17:28] xer0x has joined the channel [17:28] ph^ has joined the channel [17:30] SamuraiJack has joined the channel [17:32] dilvie has joined the channel [17:32] nym has joined the channel [17:32] heavysixer has joined the channel [17:32] k1ttty has joined the channel [17:34] redir_ has joined the channel [17:35] socketio\test\16 has joined the channel [17:36] deoxxa: i think i may have found a format string bug [17:36] colinclark has joined the channel [17:37] deoxxa: yep [17:37] broofa has joined the channel [17:37] Swimming_Bird has joined the channel [17:37] deoxxa: console.log(['%d'].join()) [17:37] deoxxa: results in NaN [17:38] broofa has joined the channel [17:38] AvianFlu: why would you expect that to output anything? [17:39] aaronmcadam has joined the channel [17:39] AvianFlu: you're not passing it anything to replace with [17:39] deoxxa: replace? [17:39] indexzero has joined the channel [17:39] wadey: what do you expect that to print? [17:39] deoxxa: "%d", i would presume? [17:39] AvianFlu: yeah, you'd ordinarily pass in a parameter that the %d gets replaced with (i.e. a number in a variable) [17:39] deoxxa: is that not correct..? [17:39] AvianFlu: console.log('I am %d years old.', age) [17:40] deoxxa: oh, well i feel silly [17:40] deoxxa: i didn't know about that behaviour of console.log [17:40] deoxxa: ACTION is significantly less worried now [17:40] thax has joined the channel [17:40] anildigital has left the channel [17:41] gtramontina has joined the channel [17:41] deoxxa: does that mean it's not possible to print "%d" to the console? [17:41] tablackmore has joined the channel [17:42] CarlosC has joined the channel [17:42] deoxxa: can't seem to escape the % as one would with printf() [17:42] Poetro has joined the channel [17:43] jtrudeau has joined the channel [17:44] deoxxa: maybe this is because i'm still on 0.4.x [17:44] deoxxa: ACTION :( [17:44] hunterloftis has joined the channel [17:44] augustl: if it prints NaN it probably works though? [17:44] toddysm has joined the channel [17:45] augustl: console.log(['%d'].join()) logs NaN, what does console.log(['%d'].join(), 10) log? [17:45] deoxxa: oh, yes, that works fine [17:45] augustl: console.log("%d", 5) too? [17:45] augustl: ah right you want it to print %d. Tried escaping it with backslash? [17:46] deoxxa: it's apparently fixed in 0.5.x/0.6.x [17:46] augustl: hmm that probably doesn't work, the runtime never sees it. Tried double percentages? [17:46] r1ngzer0 has joined the channel [17:46] deoxxa: yeah, it's meant to be %% [17:46] deoxxa: but that doesn't work in 0.4.x - but anyway, this isn't so much of a big deal [17:46] DennisRasmussen has joined the channel [17:46] deoxxa: i was worried there was a format string bug is all [17:47] Aikar: anyone know why the /s flag in regex was removed from V8? /s is "dot matches all (newlines)" [17:47] Aikar: .6 throws an error now [17:48] augustl: is the /s flag part of the ecma standard? never seen it before [17:48] fatjonny has joined the channel [17:49] nphase_ has joined the channel [17:49] nphase_ has joined the channel [17:49] Aikar: well .4 didnt throw errors [17:49] Aikar: not to say it worked [17:49] flip_digits has joined the channel [17:49] maletor has joined the channel [17:49] Aikar: but i got use to typing 'msi' for loose matching regexes [17:49] sylvinus has joined the channel [17:50] redir_ has joined the channel [17:50] confoocious has joined the channel [17:52] Knifed has joined the channel [17:53] mbrevoort has joined the channel [17:54] diversario has joined the channel [17:54] towski has joined the channel [17:55] diversario: Anyone had any issues with cradle#saveAttachment? I'm getting intermittent hangups when trying to save a file into CouchDB. [17:56] hipsters_ has joined the channel [17:57] te-brian has joined the channel [17:57] yenz_: diversario: how intermittent? [17:58] enmand has joined the channel [17:58] diversario: i'd say ~1 in 4 times it goes through, other times it just stops where I call it. Then, after ~2 minutes I get "socket hang up" [17:59] yenz_: weird [17:59] yenz_: any relation to file size? [18:00] diversario: same file [18:00] yenz_: (i've not seen any such issues) [18:00] yenz_: hrm [18:00] springmeyer has joined the channel [18:00] yenz_: wondering if you have disappearing data events? [18:00] yenz_: are you sending a stream from disk? [18:00] diversario: if I hardcode "text/plain" and "text" it works always (instead of file stream) [18:00] diversario: yes, from disk [18:00] diversario: I don't even handle events, cradle does [18:01] diversario: db.saveAttachment(id, rev, attName, mime, stream, function(err, result){}) [18:01] diversario: this supposed to call callback when done [18:01] diversario: and it never does [18:01] yenz_: weird [18:01] yenz_: what's in the couchdb log? [18:01] yenz_: may wanna ask in #couchdb as well [18:02] tjholowaychuk has joined the channel [18:02] diversario: hmm, it didn't occur to me to check those logs [18:02] isaacs has joined the channel [18:02] diversario: good idea, i'll do that right now [18:02] yenz_: :) [18:02] diversario: thanks :) [18:02] yenz_: report back! :) [18:03] lz has joined the channel [18:03] lz has joined the channel [18:03] diversario: yup : [18:03] diversario: ) [18:04] trotter has joined the channel [18:05] appinsanity-mike has joined the channel [18:06] Me1000 has joined the channel [18:08] socketio\test\50 has joined the channel [18:09] lazyshot has joined the channel [18:09] caolanm has joined the channel [18:12] kitt has joined the channel [18:12] kitt has joined the channel [18:13] captain_morgan has joined the channel [18:13] diversario: yenz_: well, there's nothing (debug log level) about any attachments or anything [18:13] yenz_: weird [18:14] yenz_: you could look into the lower layers of couch [18:14] diversario: as if request is never made [18:14] yenz_: iirc saveattachment just does a raw request [18:14] stisti has joined the channel [18:14] diversario: yes [18:14] yenz_: so you could start poking around down there? [18:14] yenz_: not really sure of what else you could try atm... [18:14] diversario: yeah, i should, nothing else I can thing about [18:14] diversario: sigh [18:15] diversario: weird that it only does this with file stream [18:16] yenz_: yar :/ [18:16] lzskiss has joined the channel [18:17] ericmuyser has joined the channel [18:18] jocafa: here's a good laugh: https://media.blackhat.com/bh-us-11/Sullivan/BH_US_11_Sullivan_Server_Side_WP.pdf [18:19] mbrevoort has joined the channel [18:20] podo has joined the channel [18:20] dudeinthemirror has joined the channel [18:20] sh1mmer has joined the channel [18:20] RobWC: Nice [18:20] EhevuTov_ has joined the channel [18:21] TooTallNate has joined the channel [18:21] RobWC: I am now going to add evals to all my node data processing [18:21] Joana has joined the channel [18:21] jocafa: eval all the things! [18:21] RobWC: LOL [18:22] yenz_: lolol [18:22] RobWC: there was a similar preso about the OSPF routing protocol [18:22] yenz_: everyone blindly evals everything at all times, right? [18:22] mmalecki: req.on('data', eval); [18:22] mmalecki: I do this all the time. [18:22] RobWC: where they made a similar claim [18:22] kevincennis has joined the channel [18:23] diversario: mmalecki: i'm putting this into production asap [18:23] heavysixer has joined the channel [18:23] jocafa: JSON.parse() doesn't exist *waves hand* [18:23] RobWC: that if you had X, Y, Z access and the sun was bouncing off the moon you could exploit it [18:23] mmalecki: diversario: I'm pull requesting that into the core [18:23] diversario: yes! [18:24] shinuza_: jocafa: I read that I thought to myself: "Is this guy supposed to be some kind of expert?" [18:25] mmalecki: shinuza_: he wrote a paper. he has to be an expert. [18:25] bluebit has joined the channel [18:25] mmalecki: QED, bitches! [18:25] CarterL has joined the channel [18:25] shinuza_: that's what one would think in the first place [18:25] pandora17 has joined the channel [18:25] jocafa: tl;dr: "Crap, I owe my boss a paper!" [18:26] mmalecki: lol [18:26] cole_gillespie has joined the channel [18:26] shinuza_: then you realize you learned nothing [18:26] kenperkins: `3rdEden: around? [18:27] `3rdEden: most of the time kenperkins [18:27] zz_shykes has joined the channel [18:27] shinuza_: he's piping into "node freenode.js" [18:28] jocafa: he also eval()s everything you say [18:28] kenperkins: `3rdEden: did you see my newly opened issue (#21) on node-memcached which might be a dupe of #10 [18:28] perezd_ has joined the channel [18:28] apoc: the ultimate test" + process.exit() + "... ;) [18:29] jocafa: haha [18:29] `3rdEden: kenperkins: I saw it, but I don't have a clue where it comes from [18:29] kenperkins: lol :) [18:29] kenperkins: at least that makes 2 of us [18:30] `3rdEden: kenperkins i'm also not sure if it's related to my driver [18:30] `3rdEden: because that's a private node.js thing [18:30] `3rdEden: and none of my code has any interaction with it [18:30] gr-eg has joined the channel [18:30] kenperkins: oh that's good to know [18:31] Morkel has joined the channel [18:32] medikoo has joined the channel [18:32] localhost has joined the channel [18:34] `3rdEden: kenperkins i also grepped through my code to see If I could find anything related to it, but nothing ;9 [18:34] devdazed has joined the channel [18:34] kenperkins: great thanks [18:35] lduros has joined the channel [18:36] diversario: yenz_: this is so weird! It looks like data.on('data') doesn't always fire. [18:36] diversario: even though data is always a file read stream and has ".on" [18:36] franciscallo has joined the channel [18:36] diversario: cradle.js, lines 163-175 [18:38] Renegade001 has joined the channel [18:39] malkomalko has joined the channel [18:40] dexter_e has joined the channel [18:41] yenz_: are you doing anything async-y between that read and listening? [18:41] EhevuTov__ has joined the channel [18:41] kevincennis has joined the channel [18:41] diversario: let me show you the code [18:41] yenz_: shore [18:42] megalomix has joined the channel [18:42] megalomix: hello [18:42] megalomix: guys, one thing.....i'm installing 0.6.6 [18:42] megalomix: when the next versions will be released [18:42] megalomix: how can i remove it ? [18:42] megalomix: i install it doing configure make [18:42] patcito has joined the channel [18:43] TheJH: megalomix, just install the new version [18:43] diversario: yenz_: http://pastebin.com/DZNzffgm [18:43] TheJH: megalomix, as it'll use the same filenames, it'll completely overwrite the old version [18:43] megalomix: TheJH, ah perfect! [18:44] ryah: megalomix: ./configure --prefix=$HOME/node && make install [18:44] megalomix: i don't have to remove the previous versions [18:44] TimTim: man i can't for the life of me figure out why express+connect-redis isn't working... doesn't keep track of sessions when i hit refresh [18:44] ryah: megalomix: later you can just rm -rf $HOME/node [18:44] TimTim: i'll pastebin my code [18:44] megalomix: ryah, oh....yes perfect [18:44] yenz_: diversario: mkay [18:44] TimTim: if anyone would be kind enough to give it a look [18:44] yenz_: you're dropping events from stream [18:44] ryah: megalomix: just make sure to put this in your .bashrc PATH=$HOME/node/bin:$PATH [18:44] ly- has joined the channel [18:44] yenz_: because the cb for db.get is happening later [18:45] yenz_: so basically it's just luck right now that 3/4 of your reqs work :) [18:45] megalomix: ryah, if i dont use prefix it will be automatically put? [18:45] yenz_: either bind listeners to the stream's data events immediately... [18:45] megalomix: *it will put automatically [18:45] diversario: yenz_: are you saying there shouldn't be anything between stream creation and db.saveAtt? [18:45] yenz_: or maybe try readFile? [18:45] yenz_: http://stackoverflow.com/questions/4589732/what-are-the-pros-and-cons-of-fs-createreadstream-vs-fs-readfile-in-node-js [18:46] yenz_: diversario: i could be wrong, but from looking [18:46] yenz_: it seems that createReadStream will start immediately [18:46] yenz_: so because you're not binding it until after the db.get function calls back [18:46] TimTim: http://pastebin.com/0atXYpPu [18:46] diversario: lemme move it and see [18:46] yenz_: there's a gap where if a data event occurs, no one's there to listen to it [18:46] yenz_: yeah, you should be able to jam it in after the db.get callback happens... i think [18:47] logicalparadox has joined the channel [18:48] TimTim: this "connect-redis" issue seems to be the only thing holding me back from completing the whole conversion to node process :| [18:48] heavysixer has joined the channel [18:48] isaacs: maxogden: hey. you guys cfb-ing around oakland today? [18:48] diversario: yenz_: yes, I'm an idiot [18:48] yenz_: diversario: not at all! [18:48] yenz_: everyone trips over that one :) [18:49] diversario: yenz_: I was just copying that from tests for cradle and added that .get call and didn't realize that was the culprit [18:49] diversario: yenz_: anyway, thank you!!! [18:49] zodiak has joined the channel [18:50] megalomix: guys, i don't understand one this. Ryan told me that I can use prefix to set the dir where to install node....ok perfect....and then set the command in .bashrc but why I didn't the same for "normal" installation? I mean that i can write "node" command in every shell without saving the command on .bashrc does node will set it automatically? [18:50] ryah: megalomix: /usr/local [18:50] megalomix: ooh [18:50] megalomix: ok [18:50] megalomix: right! [18:50] megalomix: thank you Ryan! [18:50] salva has joined the channel [18:50] TimTim: if i don't use redis for sessions, it works fine... [18:51] TimTim: but i want to use redis -_- [18:51] dodo_ has joined the channel [18:51] jxson has joined the channel [18:51] TimTim: tried everything i've read online... i can even nc into redis and see that commands have been processed by node [18:52] jbpros has joined the channel [18:52] yenz_: diversario: np :) [18:52] doki_pen: I started working on a tool, built on express, to help with creating api endpoints. It allows you to define an endpoint as a data structure and gives you parameter validation and documentation. I'd love some feedback: https://github.com/dokipen/express-endpoint [18:53] spolu has left the channel [18:53] Kluny has joined the channel [18:53] TimTim: doki_pen: neat! [18:54] mattgifford has joined the channel [18:54] doki_pen: trying to deploy an example now [18:55] lazyshot_ has joined the channel [18:55] perezd has joined the channel [18:55] TimTim: well i gotta go pick up a car part... so hopefully by the time i get back i'll develop some psychic ability to fix this redis session problem i'm having >:| [18:56] emattias has joined the channel [18:56] lazyshot has joined the channel [18:56] rodrigovieira has joined the channel [18:59] i42n has joined the channel [18:59] tkaemming has joined the channel [19:00] ixti has joined the channel [19:01] omenar has joined the channel [19:03] dudeinthemirror has joined the channel [19:03] maushu has joined the channel [19:05] dano1 has joined the channel [19:06] mattgifford has joined the channel [19:08] dexter_e has joined the channel [19:09] CIA-109: libuv: 03Daisuke Murase 07master * r3cbe7c3 10/ (AUTHORS src/unix/darwin.c): [19:09] CIA-109: libuv: Fixes for iOS [19:09] CIA-109: libuv: replace AbsoluteToNanoseconds to alternate implementation in uv_hrtime when [19:09] CIA-109: libuv: target OS is iOS which does not have CoreServices.framework [19:09] CIA-109: libuv: Fixes #243 - http://git.io/poYE0A [19:11] mike5w3c has joined the channel [19:12] tomlion has joined the channel [19:13] stelleg has joined the channel [19:16] dano1 has left the channel [19:16] gFosco has joined the channel [19:17] gFosco: created a dead-simple Active Directory authentication module (windows only): https://github.com/gfosco/ADAuthFTW [19:17] jimt_ has joined the channel [19:17] gFosco: taking requests for windows-only modules, able to expose any .NET functionality to Node.. gfosco@gmail.com [19:18] colinclark has joined the channel [19:18] neilk_ has joined the channel [19:19] stagas has joined the channel [19:20] joshfinnie has joined the channel [19:20] redir_ has joined the channel [19:21] zodiak: question) what's the 'best way' to res.send a large json array ? is there a design pattern for doing it in an async fashion ? does that make sense ? [19:22] agnat_ has joined the channel [19:23] caolanm has joined the channel [19:24] malletjo has joined the channel [19:25] btipling: in /win 4 [19:25] Sharas has joined the channel [19:25] Sharas: hi [19:25] Sharas: could somebody please answer this question [19:25] Sharas: http://stackoverflow.com/questions/8575442/internals-of-node-js-how-does-it-actually-work [19:26] maxogden: magnets: how do they work [19:26] Sharas: very, very smart [19:26] TheJH: "total ......................... 2302/2302" - each AST node as one test is cool :) [19:27] deoxxa: zodiak: generally if you want to stream JSON, you'll do it one-per-line. that's how most APIs in the wild work, anyway. [19:28] zodiak: deoxxa, gotcha. I have a loop that does a res.write .. jst wondering if I am missing the 'better' way ;) [19:29] deoxxa: well, there's advantages to doing an object on each line - it means the consumer can start processing the response before it's finished, and it doesn't have to hold the whole thing in memory [19:29] maxogden: deoxxa: there are plenty of sax style streaming json parsers that dont depend on line breaks FWIW [19:29] deoxxa: i was about to get to that [19:30] deoxxa: heh [19:30] jaequery has joined the channel [19:31] deoxxa: i think i used clarinet at one point [19:33] jesusabdullah: clarinet's pretty new, if you're talking about dscape's json parser thing [19:33] jesusabdullah: idk if it works yet [19:33] whitman has joined the channel [19:33] mbl has joined the channel [19:33] deoxxa: hm, maybe i'm thinking of something else [19:34] CIA-109: libuv: 03Ryan Dahl 07master * ra993329 10/ (4 files in 3 dirs): add uv_thread_self - http://git.io/z6C-Og [19:35] malkomalko: what's the best way to take a binary string and pipe that to a file? [19:35] zodiak: deoxxa, danke once again :) [19:35] deoxxa: ACTION \o/ [19:35] zodiak: let me know if you have a tipjar ;P [19:36] deoxxa: malkomalko: fs.writeFile()? [19:36] malkomalko: think I just figured it out lol [19:36] metellus has joined the channel [19:37] whitman has joined the channel [19:37] deoxxa: oh hello, morning [19:37] deoxxa: suppose it's time for bed [19:39] fbartho has joined the channel [19:39] jimt has joined the channel [19:40] k1ttty has joined the channel [19:42] jacobolu_ has joined the channel [19:42] zemanel has joined the channel [19:42] dinesh_ has joined the channel [19:45] jrogers has joined the channel [19:45] brl0 has joined the channel [19:46] fly-away has joined the channel [19:47] brl0: i'm playing around with a redis/node/juggernaut/socket.io setup. i would like to have jugg/socket.io select a specific database via client.select().. does anyone know if this is already supported? [19:47] toabi has left the channel [19:48] slajax has joined the channel [19:49] diamonds has joined the channel [19:49] diamonds: hey [19:49] shedinja_ has joined the channel [19:49] diamonds: so I have this https://github.com/Sequoia/FTWin/blob/master/FTWin.n.js [19:49] diamonds: but I'd like to generalize the URL opening to "default browser" [19:49] mattgifford has joined the channel [19:50] diamonds: hmmm... i think this is a #windows question [19:50] diamonds: but I don't know if I can still use child_process [19:50] diamonds: perhaps cp.exec [19:50] CIA-109: libuv: 03Ben Noordhuis 07master * r69ce014 10/ (5 files in 4 dirs): Wrap platform "thread-safe run once" APIs. - http://git.io/lsef-w [19:50] CIA-109: libuv: 03Ben Noordhuis 07master * r6a9cb90 10/ include/uv-private/ngx-queue.h : Add ngx_queue_foreach() macro. - http://git.io/Re2Lkg [19:50] CIA-109: libuv: 03Ben Noordhuis 07master * r10de090 10/ src/unix/core.c : [19:50] CIA-109: libuv: unix: centralize loop init logic [19:50] CIA-109: libuv: Also fixes a bug where loops other than the main loop didn't pick the kqueue [19:50] CIA-109: libuv: backend, which broke the fs event watcher on Darwin and the BSDs. - http://git.io/KdfNYQ [19:50] Aikar: execSync didnt land in .6 did it? [19:51] bnoordhuis: Aikar: no [19:51] Aikar: not that i need it, just reminded me it was goin to come [19:52] braoru has joined the channel [19:52] dscape: jesusabdullah: clarinet works [19:52] dscape: wonder how people found out about it though [19:52] JulioBarros has joined the channel [19:54] petrjanda has joined the channel [19:56] keks: hi, i'm on node 0.6.6 and try using readline. the docs say there is rl=require('readline');rl.on(ev,cb), my installation doesn't know method 'on' though [19:57] keks: i figured maybe the interface emits the events, but it doesn't either [19:58] defunctzombie has joined the channel [19:58] githogori has joined the channel [19:58] aaditya: When was module sys renamed to util? [19:59] bnoordhuis: aaditya: yes, a long long time ago [19:59] zomg: I made a mess of timeouts and event handlers [19:59] zomg: I wonder how bad a mess I would've made with threads [19:59] aaditya: bnoordhuis: I was having issues with it in the latest, but it works just fine with node v0.4.12 [19:59] zomg: =) [19:59] jesusabdullah: dscape: Does it? Awesome :D [20:00] bnoordhuis: keks: rl.createInterface(...).on(...) [20:00] aaditya: So I was wondering when it was changed, and more importantly, why isn't node.js backwards compatible. :( [20:00] aaditya: I wouldn't have minded a deprecation warning. [20:00] bnoordhuis: oh god... [20:00] patcito has joined the channel [20:01] bnoordhuis: you realize that the sys module has been deprecated for over a year? and it's been printing a deprecation warning for most of that time? [20:01] mmalecki: bnoordhuis: please remove it. [20:01] aaditya: No, I didn't realize that. My bad. [20:01] mmalecki: bnoordhuis: (really, please) [20:02] bnoordhuis: sorry, i get emotional sometimes *snif* [20:02] bnoordhuis: mmalecki: i will in 0.8 [20:02] bnoordhuis: on account of dropping sys altogether [20:02] aaditya: Just started working on a project where they were using 0.4.12. And for some reason, Ubuntu provides packages for 0.2.6. [20:02] mmalecki: bnoordhuis: now! :D [20:02] aaditya: ACTION upgrades everything. [20:02] bnoordhuis: aaditya: there are ppas out there with newer versions [20:03] bnoordhuis: google for 'chris lea ppa' [20:03] aaditya: yes, but it's hard to trust. [20:03] bnoordhuis: or compile it yourself [20:03] aaditya: `./configure && make install` did the job. [20:03] aaditya: :) [20:05] EhevuTov has joined the channel [20:06] socketio\test\31 has joined the channel [20:07] jrogers has joined the channel [20:07] socketio\test\53 has joined the channel [20:07] whitman has joined the channel [20:08] Sharas has left the channel [20:09] malkomalko: anybody used the grid.fs storage with mongo before? [20:09] salva has joined the channel [20:10] colinclark has joined the channel [20:10] mesuutt` has joined the channel [20:10] jxson has joined the channel [20:13] ceej has joined the channel [20:13] jimt has joined the channel [20:16] mange has joined the channel [20:16] dshaw_ has joined the channel [20:16] EhevuTov_ has joined the channel [20:17] zomg: Nice, I add some code to clean up an array which was not really related to my mess of timers/events, and that fixed the mess [20:17] zomg: That's good I guess... [20:17] zomg: =) [20:18] TimTim has joined the channel [20:18] shinuza has joined the channel [20:18] arturadi_ has joined the channel [20:19] StanlySoManly has joined the channel [20:19] mcluskydodallas has joined the channel [20:19] galaxywatcher has joined the channel [20:19] acuster has joined the channel [20:20] arturadi_ has joined the channel [20:20] medikoo: is mmalecki or any other forever expert around ? ;-) [20:21] mmalecki: hi [20:21] mmalecki: medikoo: let me guess, node v0.6 ? [20:21] medikoo: yeah [20:21] medikoo: is it still not working well there ? [20:21] mmalecki: medikoo: there's a pull request for that, you may want to use that branch [20:22] petrjanda has joined the channel [20:22] mmalecki: medikoo: let me find a link [20:22] medikoo: ok [20:22] mmalecki: medikoo: https://github.com/nodejitsu/forever/pull/163 [20:22] EhevuTov__ has joined the channel [20:22] jxson_ has joined the channel [20:22] mmalecki: medikoo: git clone https://github.com/mmalecki/forever.git && cd forever && git checkout refactor [20:22] npa has joined the channel [20:23] medikoo: I wanted to use it programatically.. but even in v0.4.12 there was no plain way to do so.. best solution I found.. was to start process calling forever from console.. and stopping programmatically [20:23] medikoo: thanks :) [20:23] andreasbotsikas has joined the channel [20:23] medikoo: I'll try that [20:24] edwardmsmith has joined the channel [20:24] mmalecki: medikoo: the API is pretty much the same, but forever.startDaemon will ignore some options [20:24] andreasbotsikas: Hello, I have been coding the node-gyp tool to build node modules and it seems that I cannot load modules in v0.7.0-pre. Is this a know issue? [20:24] medikoo: Do you know how can I start process with forever programatically.. so it will daemonize it and yet it still will be found by calling forver.list later ? [20:24] robi42 has joined the channel [20:24] andreasbotsikas: Can someone help me debug it? [20:25] medikoo: calling forever.start makes node process from which I called hang.. and calling with startDaemon made process impossible to stop (not found in forever processes list) [20:25] mmalecki: medikoo: you should call forever.startServer [20:25] mmalecki: (if you want it to appear in forever list) [20:26] medikoo: I think I've tried that as well.. but let me try it on your branch [20:26] TimTim: would anyone here be so kind as to tell me why sessions aren't persisting with redis http://pastebin.com/0atXYpPu [20:27] hij1nx has joined the channel [20:27] medikoo: mmalecki are there any plans for windows support ? [20:27] mmalecki: medikoo: pull requests man :) [20:28] admc has joined the channel [20:28] mmalecki: medikoo: we're not planning to support it, if you want it, please pull request it [20:28] medikoo: just asking, I'm currently working on osx.. I'm just wondering will it work there [20:28] mmalecki: medikoo: ok :) [20:28] mmalecki: medikoo: good to know you're sane [20:28] medikoo: ;-) [20:30] Cromulent has joined the channel [20:30] brianthecoder has joined the channel [20:31] socketio\test\51 has joined the channel [20:31] medikoo: mmalecki.. I've got your branch working.. and forever.startSever() && forever.startDeamon() hangs my process… I would like to be able to start process from js script (programatically) and have that script quit.. is that possible ? [20:31] mmalecki: medikoo: it hangs your process? it should quit it... [20:32] brianthecoder: is there some trick to getting multipart requests working in express? I copied the example, but when I run it the body and files of the request are empty, but the headers look right. I'm using a test I ran against my ruby back, so I know it should work [20:32] mmalecki: medikoo: or wait [20:32] mmalecki: medikoo: you want to just spawn it and forget about it? [20:32] tjholowaychuk: brianthecoder req.files? [20:32] tjholowaychuk: is empty? [20:32] wtfizzle has joined the channel [20:32] slaskis has joined the channel [20:33] medikoo: yes [20:33] apoc: TimTim: that looks weird: "ses = new (require('connect-redis')(express))," in my code I had something like RedisStore = require('connect-redis')(express); and then store: new RedisStore({socket: 'redis/redis.sock', host: null, pass: 'PASS', db: 3}) [20:34] medikoo: let's say I have js file, that has 2 calls forever.startServer() && forever.startDaemon() [20:34] medikoo: when I run it, it doesn't exit [20:34] brianthecoder: tjholowaychuk: it's returning undefined and my test suite crashes with "/Users/wbsmith83/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/protocol.rb:199:in `write': Broken pipe (Errno::EPIPE)" [20:34] medikoo: I want it to exit [20:34] postwait has joined the channel [20:34] mmalecki: medikoo: well, it's kind of a problem. node v0.6 is retarded. we can't fork it in a regular way (fork(2) syscall), so we're doing some crazy hacks around child_process.fork [20:35] tjholowaychuk: brianthecoder can you nc -l / gist that [20:35] mmalecki: medikoo: it's possible that your process hangs there :( [20:35] tjholowaychuk: whatever the request is [20:35] medikoo: no.. it isn't :) [20:35] bnoordhuis: mmalecki: >:( [20:35] mmalecki: medikoo: hah :) [20:35] mmalecki: bnoordhuis: don't be mad at me, we all know it's your fault! [20:35] TimTim: apoc: i instantiated the redisStore like that so i could use the same "ses" variable in socket connections [20:36] brianthecoder: tjholowaychuk: gist what? [20:36] tjholowaychuk: the request body [20:36] tjholowaychuk: / header [20:36] thalll has joined the channel [20:36] mmalecki: bnoordhuis: it's a conspiracy and I know it. [20:36] TimTim: i'll try something similar to what you said though apoc [20:36] brianthecoder: tjholowaychuk: I just paste the whole request [20:37] brianthecoder: tjholowaychuk: and the request works fine when I remove the image [20:37] devaholic has joined the channel [20:37] tjholowaychuk: brianthecoder yeah it wouldn't be multipart then [20:37] mmalecki: medikoo: ANYWAYS, that *is* a problem. does forever.startDaemon alone work? [20:37] brianthecoder: tjholowaychuk: yeah, just making sure that was the issue [20:38] brianthecoder: tjholowaychuk: he's the dump of the request https://gist.github.com/58fa57f11c892ea6682e [20:38] medikoo: mmalecki yes it works.. but process is then not found in forever list so I need to quit it with kill [20:38] mmalecki: I feel like bnoordhuis is going to close all my pull requests now [20:38] tjholowaychuk: brianthecoder does it work if u submit via the browser? i think formidable messes up with a preamble [20:39] medikoo: mmalecki basically it looks as startServer has no effect [20:39] mmalecki: medikoo: hm, it should be visible... [20:39] tjholowaychuk: maybe ruby is sending that [20:39] mmalecki: oh, wait... [20:39] mmalecki: I fixed one issue by fucking up another one, I think [20:39] mmalecki: shit. [20:39] medikoo: :) [20:39] brianthecoder: tjholowaychuk: well I need it work via the command since this will mostly be an api, I can try using curl [20:39] tjholowaychuk: gotcha [20:39] tjholowaychuk: yeah curl should be fine too [20:40] tjholowaychuk: anything i can reproduce [20:40] medikoo: but anyway I had same issues on v0.4 with npm versions of forever.. what's worse with v0.6 that now no matter what I do processes are not found in list.. I'll check it on your version now [20:40] mmalecki: medikoo: I'm considering making startDaemon an internal API. we can't do it well. [20:41] salva|away has left the channel [20:41] rodrigovieira has joined the channel [20:42] guidocalvano has joined the channel [20:42] mmalecki: medikoo: I'll show you how it's implemented, actually [20:43] pizthewiz has joined the channel [20:43] mandric has joined the channel [20:43] medikoo: and also with new version of forever pidfile option stopped working (at least for me) :/ [20:43] mmalecki: wtf. [20:44] medikoo: it always creates process with it's random pid file name.. and it makes it difficult to find it programatically [20:44] Metal3d has joined the channel [20:45] mmalecki: medikoo: hm, I think you should try forever --pid mypidfile start script.js [20:45] insin has joined the channel [20:45] mmalecki: but again, it's not going to work on my branch >.< [20:45] zmbmartin has joined the channel [20:45] zmbmartin has left the channel [20:45] medikoo: on side note I'm using locally installed version of forever.. not sure if it makes difference [20:45] skylamer` has joined the channel [20:45] mmalecki: medikoo: no, it shouldn't [20:46] mmalecki: medikoo: we'll try making forever.startDaemon sane. [20:46] mmalecki: but it's had [20:46] mmalecki: *hard [20:46] Morkel has joined the channel [20:46] TimTim: apoc: nothing i try seems to work :( [20:47] medikoo: mmalecki I can imagine [20:47] apoc: TimTim: how do you set session variables? [20:47] devongovett has joined the channel [20:47] izepstan has joined the channel [20:48] TimTim: express's req.body.whatever = 'something'; [20:48] TimTim: err sorry [20:48] TimTim: req.session lol [20:48] medikoo: mmalecki your branch unfortunatelly behaves same for me as one in npm (starts process, but process is not found then via 'forever list' - and I mean console usage now) [20:49] TimTim: everything is default with the redis-server's settings [20:49] medikoo: mmalencki hold on.. it's found now, so for some reason it took it while to be there [20:49] medikoo: *mmalecki :) [20:50] TimTim: according to a few tutorials i read, i shouldn't have a problem getting sessions to work with redis if i leave everything default [20:50] mmalecki: medikoo: yeah, it takes a while. it spawns second forever [20:51] brl0 has joined the channel [20:52] brianthecoder: tjholowaychuk: any idea why using --data and/or --form would not populate the request body? [20:52] tjholowaychuk: brianthecoder nope, works for me [20:52] brianthecoder: tjholowaychuk: nm, I had a typo [20:52] Renegade001 has joined the channel [20:52] medikoo: mmalecki I found the secret behind pidfile not working, it appears now forever understands only js name version 'pidFile' (uppercase 'F') in documentation it's 'pidfile'.. [20:53] mmalecki: medikoo: oh! yeah, sorry, I should change it [20:53] medikoo: mmalecki yeah :) [20:54] theycallmeswift has joined the channel [20:55] Me1000 has joined the channel [20:55] theycallmeswift: Anyone know if there's a timecop style library for node? I found timecop.js, but it doesn't support node at this point [20:55] zilch_ has joined the channel [20:56] brianthecoder: tjholowaychuk: it seems to work fine with -d but when I try using -F (for the multipart), body is empty and files are undefined [20:56] brianthecoder: tjholowaychuk: just using this curl -F "blurtt[image]=@brian.jpg" -F "blurtt[text]=test" http://localhost:5000/blurtts [20:57] arcanin has joined the channel [20:57] mmalecki: medikoo: https://github.com/nodejitsu/forever/commit/ee9f98bc6fa06c1f0f31f5783e4eb36b1186cf45 [20:58] medikoo: mmalecki thanks :) [20:58] mmalecki: medikoo: np. sorry for this problem [20:59] luxigo has joined the channel [20:59] brianthecoder: tjholowaychuk: do you still have to use connect-form? the repo says its changes have been merged in to bodyParser [20:59] tjholowaychuk: brianthecoder nope [20:59] `3rdEden has joined the channel [20:59] brianthecoder: tjholowaychuk: any curl attempt with -F doesn't seem to be getting handled right, empty body, no files [21:00] sebastianedwards has joined the channel [21:00] okCPU has joined the channel [21:00] joshthecoder has joined the channel [21:00] JaKWaC has joined the channel [21:00] tjholowaychuk: brianthecoder just tried, works for me [21:00] monokrome has joined the channel [21:01] shapeshed has joined the channel [21:01] tjholowaychuk: curl -F foo[bar]=@nohup.out http://local [21:01] tjholowaychuk: gives me [21:01] okCPU: tjholowaychuk, is node-canvas in active dev? [21:01] medikoo: mmalecki there's one weird thing with your branch.. when I call 'forever start' from console.. it behaves ok.. however when I call it from node script using childe_process.exec it hangs: exec('forever start …') hangs and I see 3 node processes in console [21:01] tjholowaychuk: { foo: [21:01] tjholowaychuk: { bar: [21:01] tjholowaychuk: { size: 50, [21:01] tjholowaychuk: path: '/tmp/15d0a96112aa4ddbfae297f41917b963', [21:01] tjholowaychuk: name: 'nohup.out', [21:01] tjholowaychuk: okCPU: yeah [21:01] level09 has joined the channel [21:01] brianthecoder: can you gist your test app and the curl command you used? might help me track down the issue? [21:01] JaKWaC has joined the channel [21:02] okCPU: tjholowaychuk, would you suggest it for simple photo resample and crop? [21:02] medikoo: mmalecki it's node v0.6.6 and it's no issue with forever from npm, but that one doesn't attach process to the list [21:02] chakrit has joined the channel [21:02] tjholowaychuk: okCPU yeah sure, i would do that in a worker though [21:02] tjholowaychuk: job queue or zmq [21:02] tjholowaychuk: depending on your needs [21:02] brianthecoder: tjholowaychuk: and the multipart express sample still uses connect form [21:03] tjholowaychuk: brianthecoder yeah i know i need to update all the examples [21:03] mmalecki: medikoo: hmm... it *could* behave in such way if process.send was defined [21:03] medikoo: mmalecki just to let you know, that there might be some issue.. I'm not strong in *nix processes, spawns stuff [21:03] blup has joined the channel [21:03] mmalecki: medikoo: I'll investigate it [21:04] brianthecoder: tjholowaychuk: can you gist your sample app? [21:04] tjholowaychuk: brianthecoder https://gist.github.com/1503264 [21:04] brianthecoder: tjholowaychuk: thanks :D [21:04] arlolra has joined the channel [21:04] jhurliman has joined the channel [21:05] spasquali has joined the channel [21:05] tjholowaychuk: brianthecoder someone else just said they had this same issue [21:05] tjholowaychuk: but [21:05] tjholowaychuk: npm was not updating the modules [21:05] tjholowaychuk: he rm -fr ./node_modules [21:05] tjholowaychuk: and updated and things were fine [21:05] ChrisMatthieu has joined the channel [21:06] okCPU: tjholowaychuk, thanks! [21:06] EhevuTov has joined the channel [21:07] andreasbotsikas: has anyone loaded a native module in node v.0.7.0-pre? [21:07] IrishGringo has joined the channel [21:08] andreasbotsikas: I get segmentation fault when I call require('./helloworld.node') [21:08] skm has joined the channel [21:08] andreasbotsikas: the same module works on windows with node v.0.7.0-pre just fine [21:09] decaf has joined the channel [21:10] tvw has joined the channel [21:10] slaskis: tjholowaychuk, brianthecoder theres a bunch of updated examples in my fork: https://github.com/slaskis/express/tree/examples [21:10] tjholowaychuk: slaskis nice! thanks man, I really appreciate it [21:10] brianthecoder: sweet thanks :D [21:10] tjholowaychuk: it will be nice having test coverage [21:10] tjholowaychuk: for those finally [21:10] slaskis: not done yet though [21:11] tjholowaychuk: looks great though thanks man [21:11] cmr: andreasbotsikas: Let me go and test it. [21:11] slaskis: and some won't be able to be converted easily, like the ones using partials/layouts and req.flash() [21:11] tjholowaychuk: slaskis yeah that's fine, dont worry about the weird ones [21:12] lduros has joined the channel [21:12] andreasbotsikas: @cmr Thanks for your time~ [21:12] slaskis: glad to help :) [21:13] nealstewart has joined the channel [21:13] nealstewart: any recommendations for a stubbing library that makes cleaning up easy? [21:13] joshfinnie has joined the channel [21:13] dgathright has joined the channel [21:13] nealstewart: i was looking at horaa. [21:14] nealstewart: sinon seems to be the most popular. [21:14] slaskis: tjholowaychuk: is there any way to use a variable to define what to extend in jade? [21:14] nealstewart: i want to stop doing it manually. ;) [21:14] slaskis: didn't look like it in the source [21:14] RushPL has joined the channel [21:14] tjholowaychuk: slaskis nope it's compile-time [21:14] tjholowaychuk: it would be too slow to do it per render [21:15] iRoj has joined the channel [21:15] trotter has joined the channel [21:15] slaskis: tjholowaychuk: hmm, figured something like that…i worked around it now using symlinks :P [21:15] cmr: andreasbotsikas: Is v0.7.0-pre in git somewhere other than github.com/joyent/node or is it distributed as a binary or what? [21:15] andreasbotsikas: cmr: The code of the simple helloworld is at https://github.com/andreasbotsikas/node/blob/node-gyp-addon/test/cctest/sampleGypModule/HelloWorld.cpp [21:16] andreasbotsikas: the v0.7.0-pre is from the main branch of node [21:17] andreasbotsikas: I have also forked it into https://github.com/andreasbotsikas/node/ where I have added the node-gyp addon. The problem is that it doesn't run even if I build it with node-waf [21:18] lzskiss has joined the channel [21:18] nibblebot has joined the channel [21:18] ranza_ has joined the channel [21:19] appinsanity-mike has joined the channel [21:19] ranza_: what would be the best way to read a directory recursivly and get all .mp3 and .m4a files as an array? [21:20] ranza_: i used to use a glob module but it doesnt seem to build on newer versions of node [21:20] bogomips has joined the channel [21:21] alejandromg: tjholowaychuk: Using res.sendFile() how can I set the content-type header? I tried using as params and res.writeHeader() doesn't work. [21:21] cmr: I recall seeing a module that clones python's os.walk [21:21] boltR has joined the channel [21:21] user101 has joined the channel [21:21] tjholowaychuk: alejandromg res.header('Content-Type', 'whatever') [21:21] tjholowaychuk: or [21:21] tjholowaychuk: res.contentType('json') etc [21:21] AAA_awright has joined the channel [21:21] alejandromg: ok! Thanks [21:22] tjholowaychuk: sendfile should respect when it's present already [21:22] Wa has joined the channel [21:22] alejandromg: Yep! But when I send a json file send 'text/plain' [21:22] tjholowaychuk: does it have a .json extension? [21:22] jxson has joined the channel [21:23] alejandromg: tjholowaychuk: yes [21:23] EhevuTov_ has joined the channel [21:24] pauls1 has joined the channel [21:24] rhdoenges has joined the channel [21:24] nibblebot has joined the channel [21:25] user101: hi all, where could I find a tut/examples using connect? Thanks [21:26] stisti has joined the channel [21:26] tjholowaychuk: user101 https://github.com/senchalabs/connect/tree/master/examples [21:26] jerrysv has joined the channel [21:27] tjholowaychuk: there are some examples, hopefully up to date haha [21:27] TimTim: i've figured out why redis isn't working for sessions, but i'm not sure what to do to fix it [21:27] user101: thanks :-) Iĺl see if itś up to date.... this node.js is an impressive piece of software... [21:27] bshumate has joined the channel [21:27] user101: discovered it yesterday, i used to work with ajax last time i needed to write some web stuff (a year ago) [21:27] TimTim: every header that node/express sends has a new "connect.sid" cookie [21:28] TimTim: how do i stop this :| [21:28] tjholowaychuk: TimTim it shouldn't regenerate if it's able to grab the session data from redis [21:28] user101: and I see things are going very quickly forward... keep up the good work all. [21:28] tjholowaychuk: TimTim can i see your middleware setup? [21:29] TimTim: http://pastebin.com/0atXYpPu [21:29] Sorella has joined the channel [21:29] decaf has left the channel [21:29] tjholowaychuk: TimTim hmm yeah that does look fine [21:30] TimTim: i can netcat to redis and it shows that commands have been performed when i modify session [21:31] TimTim: but no data is ever added [21:31] alejandromg: tjholowaychuk: No one works... res.contentType or res.Header. Still 'text/plain' [21:31] JaKWaC has joined the channel [21:31] tjholowaychuk: TimTim maybe use the monitor command, do a few requests in the browser and gist that [21:31] tjholowaychuk: alejandromg hmm let me verify [21:31] andreasbotsikas: crm: Thanks for your time. The module loads on v0.6.6 but not on v0.7.0-pre... something must have changed and it seems to be bricked... I will try to debug node 2morrow [21:32] JustinCampbell has joined the channel [21:32] broofa_ has joined the channel [21:32] cmr: andreasbotsikas: v0.7.0-pre is compiling [21:32] andreasbotsikas: ls [21:32] JustinCampbell: is there a way i can avoid doing this? http://cl.ly/Cloi [21:33] JustinCampbell: setting caller to this and then using caller in a callback [21:33] JustinCampbell: or is that the right way to do it [21:33] tilgovi has joined the channel [21:33] tilgovi has joined the channel [21:33] andreasbotsikas: cmr: ah, ok. I will wait to hear from your side too (just in case I have an environment problem). Thanks! [21:33] lz: JustinCampbell, that's how I do it [21:34] TimTim: tjholowaychuk here's what was monitored when i logged in (via ajax post) and refreshed the page [21:34] JustinCampbell: lz: thanks! i feel validated [21:34] TimTim: http://pastebin.com/j4KyNZis [21:34] Cromulent has joined the channel [21:35] TimTim: the first 2 gets were the log in... the rest was the refresh [21:36] tjholowaychuk: alejandromg: works https://github.com/visionmedia/express/commit/8e3cb6174d91d4605a0256159a3d75f07c704c29 [21:36] EhevuTov has joined the channel [21:36] tjholowaychuk: TimTim weird, so it is persising the session id but not the data? [21:37] lzskiss has joined the channel [21:37] tjholowaychuk: or was that all for one? and it's switching? (very weird) [21:37] rhdoenges: JustinCampbell use the fat arrow => instead [21:38] JustinCampbell: for the function? [21:38] rhdoenges: http://jashkenas.github.com/coffee-script/#fat_arrow [21:38] JustinCampbell: that preserves this? rhdoenges [21:38] JustinCampbell: rhdoenges: thanks! [21:38] rhdoenges: JustinCampbell no prob [21:39] alejandromg: tjholowaychuk: Yeah! By default it send it like 'text/plain' but what about sending that like 'text/html' or 'application/x-web-app-manifest+json' in my case? [21:39] user101: in case anyone is interested in reading a bit :-) http://stephensugden.com/middleware_guide/ [21:40] tjholowaychuk: alejandromg by default it maps based on the extension [21:40] tjholowaychuk: so if you have files .html, .json etc they work [21:40] tjholowaychuk: if json is just saved as "/uploads/foo" it wont know [21:40] TimTim: tjholowaychuk that's what it looks like :| i've been trying to figure this out since before lunch (5 hrs ago) [21:40] liar has joined the channel [21:41] TimTim: i've reinstalled both redis-server and the redis node modules [21:41] tjholowaychuk: TimTim yeah the weirdest part is that it looks semi-persisted :s some kind of race condition [21:41] tjholowaychuk: i've heard of similar a few times but we can never reproduce it [21:41] tjholowaychuk: even with our own app it's fine [21:42] jbpros_ has joined the channel [21:42] ranza_: is there no way to get the absolut path to a file when using readFile() [21:42] TimTim: maybe i can figure out some cheap hack where i manually set the cookie but i would much rather not [21:43] wethermaker has joined the channel [21:43] jbpros_ has joined the channel [21:44] pandeiro has joined the channel [21:44] mattrobenolt has joined the channel [21:44] mattrobenolt: Anyone come across an error with "implicitHeader" when trying to proxy a request? [21:44] wethermaker: Is iamben not a little poor humorless asshole? [21:44] JaKWaC has joined the channel [21:44] mattrobenolt: This is my full error: https://gist.github.com/2657c658e0a7694cc3ea [21:44] ranza_: is there no way to get the absolut path to a file when using readFile() [21:44] mattrobenolt: Node 0.6.6 [21:44] ranza_: wops, worry [21:45] ph^ has joined the channel [21:45] itayneeman has joined the channel [21:45] OtherJakeSays has joined the channel [21:46] cmr: ranza_: Do you just want to canonicalize a relative path? [21:46] alejandromg: tjholowaychuk: yeah, i know what I really mean it's rigth now *at least for me* it's sending like 'text/plain' [21:46] abraxas has joined the channel [21:46] alejandromg: tjholowaychuk: this is all the code that I'm using: https://gist.github.com/1503436 [21:47] tjholowaychuk: alejandromg res.sendfile [21:47] mikeal has joined the channel [21:48] RORgasm has joined the channel [21:48] ranza_: cmr: when using the walk module you mentioned it seems like the only way to know what directory im currently at is by setting it as a variable outside [21:48] ranza_: cmr: https://gist.github.com/1503443 [21:48] itayneeman_ has joined the channel [21:48] alejandromg: tjholowaychuk: still [21:48] tjholowaychuk: alejandromg wrong method name [21:49] ranza_: cmr: i had kind of hoped that readfile would return both the filename but also the path to it [21:49] cmr: ranza_: readFile doesn't return anything. [21:50] cmr: Assuming you're talking about fs.readFile [21:51] alejandromg: tjholowaychuk: sorry but what you actually mean: The app.get (?) or res.sendfile (?). [21:51] Raynos: Does anyone know where global npm modules go in windows? Like what folder? [21:51] dephex has joined the channel [21:51] tjholowaychuk: alejandromg you're calling res.sendFile() it's res.sendfile() [21:51] ranza_: cmr: sorry, im talking about fs.Stats [21:51] spasquali has left the channel [21:52] alejandromg: tjholowaychuk: I changed already, but doesn't work either. [21:52] tjholowaychuk: alejandromg hmmmm [21:52] tjholowaychuk: wth [21:53] alejandromg: look again at the gist, I put the manifest.json, It's valid json and everything [21:53] brianthecoder: what's the best package for interacting with s3? [21:53] chilts: brianthecoder: what do you mean best practice? what are you trying to do? [21:53] chilts: ACTION presumes you mean Amazon S3 [21:54] brianthecoder: chilts: best package, just seeing what the recommended library is [21:54] cmr: sente: filename isn't part of the stat struct. [21:54] cmr: Er, @ranza_ [21:54] brianthecoder: tjholowaychuk: updating fixed the problem :D [21:55] saesh has joined the channel [21:56] jxson has joined the channel [21:56] chilts: brianthecoder: I'm biased, I wrote awssum (npm show awssum) [21:56] adrianmg has joined the channel [21:56] chilts: but there seems to be a few out there [21:56] adrianmg has left the channel [21:56] user101 has joined the channel [21:56] chilts: I haven't tried them as much though since I wanted to complete _all_ of the Amazon Web Services rather than just one or two [21:56] joshgillies has joined the channel [21:56] chilts: I think I'm 60% through it :) [21:57] chilts: plus with my new refactor, it'll get higher quicker [21:57] brianthecoder: chilts: cool, I'll give it a look [21:57] chilts: :) [21:57] chilts: there should be a newer and better release out in the next week or so, but it shouldn't change the API much :) [21:58] OtherJakeSays has joined the channel [21:58] zilch_ has joined the channel [21:58] domtron has joined the channel [21:59] skm has joined the channel [22:00] megalomix has joined the channel [22:00] megalomix: hello [22:01] megalomix: hey guys i have installed openssl and libssl-dev [22:01] megalomix: but during the .configure i see NOT found there [22:01] megalomix: how can i force the path of openssl ? [22:01] megalomix: (i'm using ubuntu) [22:01] willwhit_ has joined the channel [22:03] skoom has joined the channel [22:03] ambroff has joined the channel [22:03] willwhite has joined the channel [22:03] andreasbotsikas: megalomix: what are you trying to compile? [22:03] willwhite has joined the channel [22:04] jerrysv: megalomix: ./configure --help [22:04] megalomix: andreasbotsikas, node [22:04] megalomix: :) [22:04] jerrysv: there are specific configurations for ssl you can override [22:05] megalomix: not it finished but at the beginning i saw not found at openssl line [22:05] itayneeman: chilts: does awssum work better than knox for s3? [22:05] megalomix: so i think i have to do it again [22:05] TimTim: what a load of horse doo doo [22:05] TimTim: i can't believe i can't get this to work >:( [22:06] cmr: TimTim: you have too much faith in yourself ;) [22:06] chilts: itayneeman: don't know, never tried knox [22:06] malkomalko has joined the channel [22:06] andreasbotsikas: I thought that openssl was bundles in the deps folder [22:06] jimubao has joined the channel [22:06] rickharrison has joined the channel [22:06] itayneeman: chilts: one issue I've found with knox (and I haven't spent too much time digging into it) is that it is significantly slower than the s3cmd command line tool [22:07] chilts: ok [22:07] itayneeman: from ec2 -> s3 using s3cmd is <1s for a 7MB fie, with knox it is easily 10s [22:07] itayneeman: I'll have to try awssum [22:07] astropirate: megalomix, i have ran into this a couple of times [22:07] itayneeman: Thanks for the pointer :) [22:07] chilts: one thing I do notice from the docs is that you have to check the status code yourself, whereas awssum doesn't that for you before giving you an err/result [22:07] megalomix: astropirate, how did you solve ? :) [22:07] megalomix: pkg-config ? [22:07] astropirate: megalomix, hmm.. it was the openssl-dev with the libcurl package [22:07] chilts: itayneeman: one thing blatently missing from awssum is the ability to stream a file (I know, I _must_ do it) :) [22:08] jocafa: tjholowaychuk: do you have any good examples of dox output? [22:08] small has left the channel [22:08] itayneeman: chilts :) [22:08] itayneeman: good things come to those who wait [22:08] tjholowaychuk: jocafa not much right now, commander is using it but i didnt finish haha [22:08] grampajoe: How can I open a new pts in Node? [22:08] chilts: too true :) [22:08] itayneeman: jocafa: I have sample output for a modified version of dox [22:08] tjholowaychuk: but it's pretty easy to just pass the json to a template [22:08] itayneeman: jocafa: and it should work reasonably well for an unmodified version [22:08] jaha has joined the channel [22:08] jocafa: itayneeman: linky? :) [22:09] itayneeman: jocafa: http://splunk.github.com/splunk-sdk-javascript/docs/0.1.0/index.html [22:09] megalomix: hmmm [22:09] megalomix: i have installted libssl-devb [22:09] megalomix: libssl-dev [22:09] jocafa: gracias [22:09] itayneeman: jocafa: kudos go to olivernn, whom I modified this from: [22:09] itayneeman: jocafa: https://github.com/olivernn/davis.js [22:09] itayneeman: You can use his original version [22:10] itayneeman: it'll be more applicable to you [22:10] jocafa: are there any other good documentation generators out there for just plain js? [22:10] itayneeman: There is updoc, but it's default template is so horrendous I can't even look at it (though the module itself is good) [22:10] tjholowaychuk: yeah i got sick of staring at the gross docco-like thing [22:10] tjholowaychuk: templates are more flexible obviously [22:10] itayneeman: After TJ added custom tags to dox [22:10] itayneeman: It's nearly perfect [22:11] itayneeman: I got two issues with it [22:11] jscheel has joined the channel [22:11] jocafa: oh yes… updoc… needs less eye bleeding by default. [22:11] itayneeman: But I should stop complaining and submit a pull request :) [22:11] Agos has joined the channel [22:11] michaelhartau has joined the channel [22:11] itayneeman: 1. Parameter descriptions can only span one line. [22:11] jocafa: this is just for internal developer documentation for a new project [22:11] megalomix: guys i solved using "pkg-config" tool [22:11] itayneeman: 2. The code/context extraction is fairly specific [22:12] itayneeman: I would say go ahead and use dox [22:12] chilts: ACTION must try dox [22:12] itayneeman: http://usejsdoc.org/ -> use these tags for things which dox doesn't implement out of the box [22:12] tjholowaychuk: itayneeman descriptions should be short IMO [22:12] itayneeman: and that way you'll stay jsdoc compatible [22:12] tjholowaychuk: use the comment body to be verbose [22:12] jocafa: i do like groc's output [22:13] itayneeman: tjholowaychuk: for the most part I agree, the only exception is for cases where the parameter takes in a "dictionary", and I want to describe the options [22:13] tjholowaychuk: the best annotated source [22:13] tjholowaychuk: is [22:13] tjholowaychuk: source [22:13] jocafa: this is true [22:14] itayneeman: It's a fine line. I nearly completely agree with you, with that one exception :) [22:14] tjholowaychuk: IF the source is not ugly as fuck that is [22:15] tjholowaychuk: but people like webpages [22:15] tjholowaychuk: for some reason [22:15] itayneeman: they're easier to navigate [22:15] cmr: There is a documentation generator somewhere that basically takes the source and displays it side-by-side with the comments. [22:15] itayneeman: especially when you're just trying to figure out what function to call [22:15] cmr: I wish I could find it, I was just looking at it last week [22:15] itayneeman: cmr: docco [22:15] cmr: Yep! [22:15] megalomix: guys, what is wrong to add: PATH=/home/node/0.6.6/bin:$PATH in /root/.bashrc ? [22:15] tjholowaychuk: cmr yeah those make me laugh a bit [22:15] tjholowaychuk: it's the same as [22:15] megalomix: if i print $PATH I dont see that PATH [22:15] tjholowaychuk: reading the source on github [22:15] tjholowaychuk: except github looks better [22:15] bnoordhuis: megalomix: export PATH=foo:bar:baz:$PATH [22:16] alejandromg: tjholowaychuk: looks like res.sendfile doesn't support 'application/x-web-app-manifest+json': https://gist.github.com/1503531 [22:16] incon_ has joined the channel [22:16] megalomix: bnoordhuis, in /root/.bashrc right ? [22:16] bnoordhuis: megalomix: yes [22:16] chrisdickinson: ACTION frowns whenever he sees docco-generated docs as the sole documentation for a project. [22:16] isaacs has joined the channel [22:16] megalomix: i try [22:16] mattrobenolt has left the channel [22:17] tjholowaychuk: alejandromg that's with res.header('content-type...? [22:17] itayneeman: for the Splunk JS SDK, where it was important for us to give API level visibility, we wanted to generate real reference docs [22:17] itayneeman: dox was up to the job [22:17] megalomix: bnoordhuis, hmmm export PATH=/home/node/0.6.6/bin:$PATH but there is not on $PATH [22:17] megalomix: $PATH [22:17] megalomix: -bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games: No such file or directory [22:17] chrisdickinson: the problem with inline docs is that it's targeted (whether intentionally or not) at people hacking on the project. [22:17] cmr: I really like Sphinx, from python, but it's not in-source documentation. Not sure if there is any node/javascript support, it's a python thing. [22:17] chrisdickinson: not people trying to use the project. [22:18] tjholowaychuk: chrisdickinson yeah [22:18] tjholowaychuk: still important though [22:18] alejandromg: tjholowaychuk: yes [22:18] tjholowaychuk: as an api reference they're fine i think [22:18] tjholowaychuk: not as a guide obviously [22:18] itayneeman: I think that docco-style docs are important to make sure you have proper comments [22:18] chrisdickinson: definitely. i just weight high-level api docs higher than inline docs. [22:18] jesusabdullah: I personally do not like sphinx at all :( [22:18] jesusabdullah: Like, the idea's good but I just wasn't diggin' it [22:18] dob_ has joined the channel [22:18] jesusabdullah: probably due to things that shuldn't matter, like rst v. md [22:19] itayneeman: jesusabdullah: couldn't agree more [22:19] chrisdickinson: the best situation is to have really well written high level docs and well written docco docs, but in a pinch i can live with just the high level docs. [22:19] itayneeman: chrisdickinson: what's your gold standard for high level docs? [22:19] cmr: I really like java's documentation. [22:19] chrisdickinson: in the node world? i'm a fan of express's docs. or mocha. [22:19] cmr: It is a great API reference. [22:19] tjholowaychuk: can docco use /* yet? or still the ugly // // // // /// [22:19] jesusabdullah: I do like python's docstrings [22:20] cmr: I love docstrings. [22:20] megalomix: bnoordhuis, ? [22:20] jesusabdullah: tjholowaychuk: I'm with you there. I'm not throwing // in front of EVERY line -_-; XD [22:20] chrisdickinson: otherwise? i love pretty much anything that toastdriven comes up with. [22:20] user101 has joined the channel [22:20] mmalecki: docstrings <3 [22:20] mmalecki: I wrote JS implementation [22:20] cmr: mmalecki: Do tell! [22:20] jesusabdullah: I kinda want to fake it with .usage as in jitsu [22:20] jesusabdullah: like, I think that would work [22:20] mmalecki: cmr: hah, didn't even publish it [22:20] chrisdickinson: cmr: you can write a regex parser that yanks noop strings. [22:20] chrisdickinson: it doesn't work in firefox. [22:20] mmalecki: I can if you want it, tho [22:20] jesusabdullah: noop? [22:21] chrisdickinson: (no-operation) [22:21] jesusabdullah: ah [22:21] jesusabdullah: possibly! [22:21] snearch has joined the channel [22:21] chrisdickinson: (https://github.com/chrisdickinson/platoon/blob/master/lib/platoon.js#L234) [22:21] jesusabdullah: chrisdickinson: and that works? [22:21] cmr: Ahhh I forgot about no-op strings. [22:22] jocafa: maybe i'll just stick with a readme.md and move on [22:22] malkomalko: I'm trying to manually put together the body of a multipart request and everything looks fine, but when I go to add the data with data.toString('binary') .. data being the read file's data, it seems to be corrupting the file [22:22] jesusabdullah: chrisdickinson: You got an example docced function to go with it? [22:22] cmr: chrisdickinson: I might just do that, thanks for the recommendation [22:22] malkomalko: anybody got any tips? [22:22] JmZ_ has joined the channel [22:22] chrisdickinson: jesusabdullah: https://github.com/chrisdickinson/platoon/blob/master/tests/tests.js [22:22] chrisdickinson: it'd be even better to implement it using node-burrito. [22:22] jesusabdullah: I see. Clever! [22:22] chrisdickinson: thanks :) [22:23] isaacs: maxogden: i find it interesting that you sometimes call yourself a socialist, and i sometimes call myself a libertarian, and yet we have virtually identical political views. [22:23] isaacs: maxogden: i too plan on voting for the IFR party [22:23] lupomontero has joined the channel [22:23] chrisdickinson: jesusabdullah: the downside is that firefox strips noop statements from the function. [22:23] jesusabdullah: Well, no reason to drag in a full ast parser if you don't need it, but I'd imagine it would simplify pairing noop strings with their associated constructs [22:23] bnoordhuis: megalomix: else run it from the command line [22:23] chrisdickinson: so, it won't work there. [22:23] jesusabdullah: firefoooox [22:23] megalomix: guys I added: export PATH=/home/node/0.6.6/bin:$PATH in /root/.bashrc but if I print $PATH i don't see that path....... what is wrong ? [22:23] megalomix: bnoordhuis, ok [22:23] chrisdickinson: (which makes sense, it also strips comments.) [22:24] hipsters_ has joined the channel [22:24] megalomix: bnoordhuis, added! [22:24] itayneeman: I've sent this to two people here (TJ and chris), but I forked chris' runforcover to add some features and other niceties, and would love some comments before I release it publicly. In short, it's a native JS code coverage utility (built on substack's bunker). Let me know if you want to try it out [22:24] joestein has joined the channel [22:24] chrisdickinson: which is too bad, because i love being able to write shaders and templates like so: https://gist.github.com/7de3d651ef669ed52eca [22:24] bnoordhuis: megalomix: if adding it to .bashrc doesn't work, you probably need to add it to .bash_profile [22:25] chrisdickinson: itayneeman: what all did you add? [22:25] megalomix: where it saved that path ? [22:25] megalomix: ah ok [22:25] itayneeman: chrisdickinson: nicer HTML reporting, global executable, block level reporting, fixed some issues around multi-line statements [22:25] itayneeman: most of it was just engineering [22:26] chrisdickinson: ah [22:26] chrisdickinson: cool, i'll have to take a look. [22:26] itayneeman: the core of runforcover is still there [22:26] megalomix: bnoordhuis, btw doing it from shell worked [22:26] tjholowaychuk: itayneeman i have to take a second look at that too [22:26] chrisdickinson: i was having trouble getting the original pull request to pass tests. [22:26] itayneeman: chrisdickinson: yes, I need to write more tests :) [22:26] bnoordhuis: megalomix: i forgot to ask the very obvious, did you log in again after adding it to .bashrc? [22:26] chrisdickinson: itayneeman: once you've got tests, i'd love to merge back into runforcover if possible. [22:27] itayneeman: chrisdickinson: at some point I decided what I wanted was out of scope for what you could reasonably accept, so I decided to modify it altogether [22:27] itayneeman: chrisdickinson: we can definitely look into it [22:27] megalomix: bnoordhuis, i didn't add to bashrc [22:27] megalomix: i run the comman on shell [22:28] itayneeman: itayneeman: I've unfortunately run into at least one issue where bunker generates incorrect code, which is sad. Need to dig into it more. [22:28] itayneeman: chrisdickinson: above was meant for you, not me :) [22:28] tjholowaychuk: itayneeman i found uglify's ast really bad to work with [22:28] cmr: SubStack: Your readmes on github rock. [22:28] itayneeman: tjholowaychuk: yeah, everytime I look at the raw AST, I'm not too pleased [22:28] chrisdickinson: itayneeman: lemme know where that is. i've run into similar situations. [22:29] megalomix: bnoordhuis, nothig..if i log in again I can run "node" command :( [22:29] chrisdickinson: (patched one, actually.) [22:29] megalomix: *can't [22:29] chrisdickinson: cmr: ah yeah, that's my other favorite for high-level api docs in node. [22:29] tjholowaychuk: itayneeman i added linenos to esprima but he wants it to match [22:29] tjholowaychuk: spidermonkey [22:29] tjholowaychuk: or something [22:29] itayneeman: chrisdickinson: https://github.com/substack/node-bunker/issues/4 [22:29] tjholowaychuk: so im waiting for that [22:29] ChrisPartridge has joined the channel [22:29] RORgasm has joined the channel [22:29] itayneeman: tjholowaychuk: yeah, the fact that uglify also parses out comments is unfortunate [22:29] itayneeman: because that woudl be great for doc generation [22:29] itayneeman: rather than regex parsing [22:30] tjholowaychuk: yeah [22:30] tjholowaychuk: its a really sloppy lib [22:30] itayneeman: but it works for now, so we play with what we got [22:30] cmr: chrisdickinson: I'm not really a fan of in-source docs, feels like lots of trouble for little gain. [22:30] tjholowaychuk: cmr they're important if you want contribution [22:30] chrisdickinson: cmr: yeah. i like substack's readme api docs approach. [22:30] jesusabdullah: in-source docs are handy but not the be-all [22:30] jesusabdullah: you want both [22:31] mikeal has joined the channel [22:31] jesusabdullah: in-source docs *really* shine when combined with a repl, imo [22:31] jesusabdullah: like ipython [22:31] itayneeman: chrisdickinson: another issue I ran into is that with the process.stdin bug in node, your onexit listener won't get called unless you explicitly close it [22:31] jesusabdullah: you can do, function? and it'll show you the docstring [22:31] wrea has joined the channel [22:31] jesusabdullah: imagine if in the node repl you could do .help EventEmitter and get docs ^__^ [22:31] jesusabdullah: for example [22:31] isaacs: Raynos: npm bin -g <-- run that, it will tell you the answer to your question [22:31] chrisdickinson: jesusabdullah: +1. [22:32] TheFuzzball has joined the channel [22:32] tjholowaychuk: jesusabdullah yeah that would be sweet [22:32] tjholowaychuk: or [22:32] eldios has joined the channel [22:32] tjholowaychuk: npm help express.bodyParser [22:32] jesusabdullah: I'm not suggesting that core should implement docstrings of course! [22:32] tjholowaychuk: some shit like that [22:32] cmr: jesusabdullah: Well, depends on how extensive the docstring is. I dislike describing everything in a comment/docstring as the case may be, but a little "This is what I am, this is how you use me" I don't really consider docs, just good commenting. [22:32] jesusabdullah: I'm just saying that this is where I've appreciated docstrings [22:32] isaacs: tjholowaychuk: that's intriguing [22:32] jesusabdullah: cmr: Exactly, but it's comments you can access [22:32] jesusabdullah: eaily [22:32] cmr: Yep [22:32] jesusabdullah: easily* [22:32] isaacs: tjholowaychuk: what would the part after the dot be? [22:32] tjholowaychuk: dunno [22:32] tjholowaychuk: haha [22:32] isaacs: tjholowaychuk: also, would it be acceptable to be a space rather than a .? [22:32] tjholowaychuk: not sure how you could unify such a thing [22:32] tjholowaychuk: reasonably [22:33] isaacs: since express.foo is a valid package name [22:33] isaacs: (eg, socket.io) [22:33] jesusabdullah: hook.io as well [22:33] isaacs: yep [22:33] isaacs: that too [22:33] jesusabdullah: also: I find docstrings most helpful in "large" packages [22:34] jesusabdullah: for example, I used it a lot with scipy, which is kind of a scientific "grab-bag"/toolbox [22:34] jesusabdullah: node has fewer grab-bags due to cultural reasons, so maybe it applies less [22:34] jesusabdullah: idk dude [22:34] chrisdickinson: hm [22:35] wtfizzle has left the channel [22:35] chrisdickinson: was about to suggest `npm help socket.io#Socket`, but '#' is a comment. [22:35] mc_greeny has joined the channel [22:35] isaacs_ has joined the channel [22:35] chrisdickinson: maybe ':'? `npm help socket.io:Socket` [22:35] itayneeman: I've seen :: used before [22:35] isaacs_: chrisdickinson: don't see why a space is not feasible. that's how npm view works, for instance [22:35] isaacs_: . [22:35] chrisdickinson: (possibly qualified after that point, so i could do something like `npm help socket.io:Socket.prototype.connect`? [22:35] isaacs_: chrisdickinson: `npm view express dist.tarball` etc. [22:35] jerrysv: or npm help 'socket.io:Socket' [22:35] jerrysv: er [22:35] jerrysv: no [22:36] isaacs_: the . in the last arg separates fields. [22:36] isaacs_: so it makes sense [22:36] jerrysv: or npm help 'socket.io#Socket' [22:36] isaacs_: jerrysv: # is a comment on the cli [22:36] isaacs_: npm help socket.io Socket [22:36] jerrysv: isaacs_: i know, but the use of ' should escape that [22:36] isaacs_: but what IS that? [22:36] isaacs_: a hash? [22:36] isaacs_: an anchor on the page? [22:36] isaacs_: how does it turn that into a url? [22:36] jerrysv: a section [22:37] isaacs: jerrysv: what's a section? [22:37] isaacs: oh, we're talking about local stuff? [22:37] isaacs: not like the `npm docs` command? [22:37] JaKWaC has joined the channel [22:37] jerrysv: isaacs: obviously tbd, but i'd see it as a major identifiable section in the documentation [22:37] jaitaiwan has joined the channel [22:37] itayneeman: chrisdickinson: this is the output Cover generates for mocha and its tests: http://neeman.net/mocha/ [22:37] jerrysv: i was just chiming up about the hash inside of single quotes [22:38] igl1 has joined the channel [22:38] chrisdickinson: itayneeman: oo. [22:38] isaacs: jerrysv: that sounds like it belongs in the category of "problems which only appear obvious to abstract general intelligence, but are nearly impossible to codify" [22:38] chrisdickinson: isaacs: is there a sanctioned way to add plugins to npm? [22:38] tjholowaychuk: itayneeman ooo i can see it now [22:38] tjholowaychuk: haha [22:38] mattgifford has joined the channel [22:38] tjholowaychuk: no more malware [22:39] itayneeman: tjholowaychuk: the internet hates me, like I said :) [22:39] isaacs: itayneeman: !!! that looks awesome. [22:39] itayneeman: isaacs: the Python coverage.py module was my inspiration. I spent many hours brute forcing the style :D [22:39] jerrysv: isaacs: which is why it would need to be codified, eg either in a more standard doc format, or as an anchor on some sort of document page (whether generated or static) [22:39] tjholowaychuk: cool man [22:39] tjholowaychuk: good stuff [22:39] itayneeman: because CSS and me do not get along [22:39] isaacs: jerrysv: yeah… the other impossible problem: cat-herding. [22:40] jerrysv: isaacs: contributor contributer? [22:40] chrisdickinson: ACTION would love to see a `npm stats ` command. [22:40] isaacs: chrisdickinson: so, write it ;) [22:41] ec|IRCCloud has joined the channel [22:41] isaacs: chrisdickinson: there's not really a concept of a "plugin" in the npm client. [22:41] itayneeman: anyway, in the case of the above coverage stats, I should have added node_modules to .coverignore, but forgot :) [22:41] jerrysv: isaacs: this problem has already been solved at large scale in other languages -- perl/cpan is a good example [22:41] isaacs: jerrysv: cpan is a continual inspiration. [22:41] isaacs: yes. [22:41] isaacs: both in positive and negative ways. [22:41] jerrysv: yeah, well ... i can see that :) [22:42] isaacs: itayneeman: where is the code for this thing? [22:42] itayneeman: isaacs: http://github.com/itay/node-cover [22:42] jerrysv: but, on the positive side, there's a consistent test environment (npm test and travis-ci are getting closer to that goal), and very consistent documentation due to a doc standard [22:42] itayneeman: but proper disclaimer: substack and chrisdickinson did all the hard work [22:42] jesusabdullah: itayneeman: That's pretty sweet [22:42] itayneeman: This is just some engineering on my part [22:42] hatch has left the channel [22:42] chrisdickinson: aw, thanks. [22:42] avih has joined the channel [22:42] itayneeman: hey, credit where credit is due :) [22:42] jesusabdullah: itayneeman: Maybe I missed it, but do you have a link to the project? [22:42] itayneeman: jesusabdullah: http://github.com/itay/node-cover [22:43] itayneeman: Im trying to get some more usage by people before I put it on npm [22:43] isaacs: itayneeman: noooooo!!! [22:43] chrisdickinson: i'd really like to see what i can merge into runforcover. [22:43] isaacs: itayneeman: you have that backwards. publish it today. [22:43] jesusabdullah: itayneeman: Just put it on npm firest [22:43] isaacs: make the version 0.0.0 if you like [22:43] jesusabdullah: first* [22:43] jesusabdullah: THEN people can use it [22:43] isaacs: right now. [22:43] jesusabdullah: even if it sucks [22:43] itayneeman: OK OK, give me a minute [22:43] isaacs: why is it not published yet? i'm trying to check it out and it's failing!! [22:43] jimubao_ has joined the channel [22:43] isaacs: oh noooooo!!!! [22:43] isaacs: ACTION :D [22:44] isaacs: $ npm view cover [22:44] isaacs: npm http GET https://registry.npmjs.org/cover [22:44] isaacs: npm http 404 https://registry.npmjs.org/cover [22:44] isaacs: npm ERR! 404 'cover' is not in the npm registry. [22:44] isaacs: npm ERR! 404 You could maybe bug the author to publish it [22:44] isaacs: npm ERR! 404 Note that you can also install from a tarball or folder. [22:44] jesusabdullah: itayneeman: So it'll work with other test frameworks like vows? [22:44] itayneeman: I cant type that fast :D [22:44] itayneeman: it should [22:44] jesusabdullah: Cool! [22:44] isaacs: itayneeman: what does it use for .coverignore? [22:44] itayneeman: I wrote my own for now - minimathc seems to be brokenf or windows [22:45] itayneeman: I need to report the bug [22:45] itayneeman: I was hammered with getting the Splunk release out the door, so it was "make it work, then file bugs" [22:45] itayneeman: jesusabdullah: vows has a specific bug that I mention in the README [22:45] isaacs: itayneeman: i'm rewriting minimatch now. [22:45] jesusabdullah: Yeah, I saw that. [22:45] jesusabdullah: mmalecki: fixitfixitfixitfixit [22:46] itayneeman: but it should be easy to work around [22:46] isaacs: itayneeman: it started as just fixing a few known bugs, but it's turned into a full-on rewrite. [22:46] itayneeman: isaacs: I'll switch over to minimatch in a heartbeat [22:46] isaacs: i hope to have a new native glob in a few weeks [22:46] itayneeman: this is not the code I want to be writing [22:46] isaacs: yeah, me neither, sadly :) [22:46] isaacs: ACTION has a problem [22:46] wink_ has joined the channel [22:47] itayneeman: isaacs: OK, I'm retarded. How do I log out of one npm account and create a new one? [22:47] jesusabdullah: ACTION has a fever and the only cure is more cowbell [22:47] isaacs: itayneeman: npm adduser [22:47] isaacs: itayneeman: or you can manually edit your .npmrc file. it's just base64(username:password) [22:48] itayneeman: isaacs: do I first need to logout of my previous account? [22:48] isaacs: nope [22:48] isaacs: just run `npm adduser`, enter the username and password and email of the other acct. [22:48] isaacs: same to switch back, or to auht a new machine, etc. [22:48] avih has joined the channel [22:48] andreasbotsikas: privmsg cmr: Thanks for your help but I have to sleep. It seems that it works on the v0.6 branch but not v0.7 I will start hardcore native debuging 2morrow with a fresh head... [22:48] isaacs: i should alias it to `login` or something [22:48] isaacs: :) [22:48] andreasbotsikas: privmsg cmr Thanks for your help but I have to sleep. It seems that it works on the v0.6 branch but not v0.7 I will start hardcore native debuging 2morrow with a fresh head... [22:48] itayneeman: isaacs: OK, battling npm over here. Probably doing something wrong :) [22:48] andreasbotsikas: privmsg cmr :Thanks for your help but I have to sleep. It seems that it works on the v0.6 branch but not v0.7 I will start hardcore native debuging 2morrow with a fresh head... [22:49] diogogmt has joined the channel [22:49] andreasbotsikas: it doesn't work, the privmsg :p [22:49] isaacs: itayneeman: gist? [22:49] JmZ_ has joined the channel [22:49] chrisdickinson: ACTION quietly digs a grave for runforcover [22:49] JmZ_ has joined the channel [22:49] svnlto has joined the channel [22:49] itayneeman: isaacs: I think it is user error, giving me an "unauthorized name or password is incorrect" error on adduser [22:49] itayneeman: not sure if I registered before and forgot [22:49] itayneeman: or someone else has the name [22:49] isaacs: itayneeman: http://admin.npmjs.org/reset [22:49] andreasbotsikas: cmr: thanks for your interest! good night everybody [22:50] itayneeman: isaacs: yeah, that's where I am. Excruciatingly slow thoguh [22:50] isaacs: itayneeman: assuming that you have the email still. [22:50] isaacs: yeah [22:50] isaacs: those messages have to go through the pipe [22:50] itayneeman: isaacs: OK, well, publishing cover is blocked on your server responding to me :) [22:51] itayneeman: chrisdickinson: regarding what can be merged - most likely nearly everything. I made some styling changes, but other than that, it should be possible. Depends if you think it is in the scope of runforcover [22:51] Raynos: Isaacs: thanks, ill try to remember in the future :) [22:51] isaacs: itayneeman: what was the username you're trying to reset? [22:51] itayneeman: itay [22:51] itayneeman: should be at itay@neeman.net [22:51] itayneeman: but I can believe someone else might have it [22:51] Raynos: There is a nifty library for unpacking function parameters [22:51] Raynos: what is it called? [22:51] chrisdickinson: itayneeman: i'm not sure; it might be cool if node-cover was the frontend for runforcover -- adding formatters, commands, etc. [22:51] Cromulent has joined the channel [22:52] itayneeman: chrisdickinson: yes, these are all options [22:52] itayneeman: the two things are actually separated [22:52] isaacs: itayneeman: hm. there appears to be no email associated with that name. [22:52] isaacs: itayneeman: and it's only 5 days old. [22:52] itayneeman: yeah, that's me [22:52] itayneeman: I was registering for the splunk account [22:52] chrisdickinson: that way i could just reduce runforcover down to a really simple core of functionality that node-cover could transform into something useful [22:52] itayneeman: and aborted the registration half way in [22:52] itayneeman: chrisdickinson: yes, this should be very possible. you could take just the changes in index.js [22:52] duncanbeevers has joined the channel [22:53] itayneeman: and then everything in bin/cover would be in Cover [22:53] isaacs: that's weird, it shouldn't allow you to create an accoutn without an email. [22:53] itayneeman: Even if you hit ctrl+c in the middle? :D [22:53] isaacs: itayneeman: how'd you create it? manually hitting the couchdb, or through npm? [22:53] itayneeman: isaacs: through npm [22:53] isaacs: extra weird. [22:54] lupomont_ has joined the channel [22:54] chrisdickinson: itayneeman: interesting. yeah, i might do that; depends on if you're interested in just adding runforcover as a dep and turning cover into the set of `bin` commands and formatters that talk to runforcover. [22:54] itayneeman: Yeah, I'd be fine with that, I don't see why it'd be a problem. [22:54] lupomontero_ has joined the channel [22:54] harthur has joined the channel [22:55] isaacs: itayneeman: run npm adduser. provide "itay" as the name, a unique password, and a valid email address. [22:55] chrisdickinson: (of course, since it works as-is now, by no means should you feel compelled to do this.) [22:55] JmZ_ has joined the channel [22:55] itayneeman: ah, success [22:55] shapeshed has joined the channel [22:55] itayneeman: chrisdickinson: hey, you did the hard work on making it work in general, happy to keep the core in runforcover, and add the engineering in cover [22:55] itayneeman: the only reason I forked was because you stopped responding to my emails :D [22:56] chrisdickinson: itayneeman: sorry, i dropped out of the world for a bit. [22:56] itayneeman: isaacs: success! [22:56] isaacs: great [22:56] itayneeman: chrisdickinson: no worries, we all have more important things to do [22:56] chrisdickinson: ACTION got caught up in making an in browser first person shooter :P [22:56] chrisdickinson: i'll see what i can merge tonight, re: runforcover/cover. [22:57] itayneeman: I made a big style change, so it'll be hectic. I'd look at it at a function level [22:57] kenperkins: so, is there a way to automatically enable node-inspector debugging for cluster.forked threads [22:57] chrisdickinson: yeah, i'll be reading through :) [22:57] dosequis has joined the channel [22:57] dosequis: hey all [22:58] itayneeman: npm install cover -g [22:58] itayneeman: works now [22:58] itayneeman: :) [22:58] dosequis: quick question: what do you guys recommend for running node in production? [22:58] isaacs: itayneeman: that's awesome [22:59] itayneeman: isaacs: quick question, want your opinion: one issue with Cover is that it can't follow forked processes, since it hooks into requires. Has there been any talk about providing a startup hook? [22:59] tjholowaychuk: itayneeman i'll add it as --cov [22:59] tjholowaychuk: if possible, should be fine [22:59] itayneeman: yeah, sounds fine [22:59] tjholowaychuk: is it easy to configure from the js api though? [22:59] isaacs: itayneeman: no, there hasn't. [23:00] itayneeman: The CLI eis exported too [23:00] itayneeman: so yes [23:00] wankdanker has joined the channel [23:00] devaholic has joined the channel [23:00] itayneeman: you should be able to do something like require('cover').cli.run(...) [23:00] itayneeman: and .report(...) [23:00] isaacs: itayneeman: this is part of the problem with doing coverage in node-tap. pedro (kusor) did this by rewriting each test file out to a new filename, which attaches the hook at the start, then has a final test which writes the data out. [23:01] kenperkins: dosequis: what do you mean exactly? [23:01] itayneeman: isaacs: yeah, that's an option, but it is intrusive [23:01] isaacs: itayneeman: it's very important to be able to run tests as separate processes. [23:01] isaacs: otherwise you can't kill runaway loops etc. [23:01] itayneeman: isaacs: I agree [23:01] isaacs: automatic cleanup, all kinds of benefits [23:02] carlyle has joined the channel [23:02] isaacs: itayneeman: but your output is so gorgeous. [23:02] itayneeman: isaacs: I like the coverage.py/python way: http://nedbatchelder.com/code/coverage/subprocess.html [23:02] itayneeman: isaacs: the coverage is separate from the running. In theory, if someone writes identical output, they could use the formatter [23:03] itayneeman: isaacs: the reason I'd like to see a startup hook is that is useful for other things. For example, cluster management, etc [23:03] dosequis: kenperkins: thanks for answering. i have been looking for a solution that will take care of logging/monitoring my server and rebooting it when it crashes [23:03] dosequis: kenperkins: a couple projects seem interesting but they all seem to be broken with node 0.6 [23:04] kenperkins: I'm happy to share the upstart script I use [23:04] torm3nt has joined the channel [23:04] kenperkins: if you'd like [23:04] itayneeman: What I meant to say before: the reporting is separate from the running, not the coverage :) [23:05] isaacs: itayneeman: what if you just had it run something other than bare node? [23:05] itayneeman: e.g. a shell script that execs node? [23:05] JaKWaC has joined the channel [23:06] isaacs: itayneeman: like, i run `cover tap blah/*`, right? then tap gets run in an environment where the first "node" in the PATH is actually *your* "node" thing [23:06] itayneeman: yes [23:06] itayneeman: and then if tap execs each file [23:06] itayneeman: then its the end of the world :D [23:06] itayneeman: Currently, it assumes a "require" based world [23:06] isaacs: right [23:07] isaacs: but you could just create that world [23:07] itayneeman: If I knew a priori what the test files are [23:07] itayneeman: For example, when I do: [23:07] itayneeman: cover run mocha [23:07] isaacs: itayneeman: even if you don't. just set the PATH env to point to your thing [23:07] itayneeman: Oh! [23:08] itayneeman: isaacs: sneaky [23:08] isaacs: so, node-tap or mocha or whoever does "node blah.js" [23:08] isaacs: and that hits your thing, and then IT does something like "/full/path/to/actual/node coverage-cli-thingie.js blah.js" [23:08] isaacs: coverage-cli-thingie.js then sets up the require hook, and calls require(blah.js) [23:08] itayneeman: Yes, I see [23:08] isaacs: lotta path juggling [23:09] itayneeman: Yeah, but I already do a lot of path juggling [23:09] itayneeman: to make 'cover run foo' work properly [23:09] d_low_ has joined the channel [23:09] itayneeman: isaacs: that's a great idea [23:09] dgathright has joined the channel [23:09] itayneeman: the only issue is merging coverage data [23:09] itayneeman: but I need to solve that anyway [23:10] isaacs: yeah [23:10] neilk_ has joined the channel [23:10] itayneeman: isaacs: I will think about this some more [23:10] isaacs: awesome :) [23:11] itayneeman: all you people write some terse JS code, it makes merging coverage data to be difficult, to make sure you're not double counting [23:11] TheFuzzb_ has joined the channel [23:12] itayneeman: anyway, I would love feedback on the module. If you try and use it and it doesn't work, or you think it could be improved, just let me know [23:12] stefpb has joined the channel [23:13] itayneeman: now that y'all made me put it on npm [23:13] zilch_ has joined the channel [23:13] felixge has joined the channel [23:13] felixge has joined the channel [23:14] Phaaze has joined the channel [23:16] kenperkins has joined the channel [23:16] aaaaaa has joined the channel [23:17] thalll has joined the channel [23:17] kenperkins: dosequis: sorry I disc, did you reply [23:17] itayneeman: kenperkins: I didn't see any reply [23:17] kenperkins: ty [23:18] CarterL has joined the channel [23:20] kenperkins: dosequis: http://www.clipboard.com/clip/LQumh41J7ntTwvEexqxl3HIGo1SVvHdCJwae [23:20] loob2 has joined the channel [23:20] kenperkins: as you can see, it's pretty simple [23:21] polo has joined the channel [23:21] itayneeman: kenperkins: I didn't realize it was you until you sent that clipboard link [23:21] srid has left the channel [23:21] polo: hi [23:21] kenperkins: eh? :) [23:21] kenperkins: oh duh [23:21] itayneeman: :) [23:22] eeemsi_: is there a possibility to let npmjs.org show packages with a specific age or packages that are not older than n days? [23:22] karboh has joined the channel [23:23] AAA_awright_ has joined the channel [23:23] WarheadsSE_ has joined the channel [23:23] Cromulen_ has joined the channel [23:24] jbpros_ has joined the channel [23:24] jlank_ has joined the channel [23:24] willwhite has joined the channel [23:24] tdubellz_ has joined the channel [23:25] delnaught has joined the channel [23:25] admc_ has joined the channel [23:25] AaronMT_ has joined the channel [23:25] brl0 has joined the channel [23:26] tilgovi has joined the channel [23:26] tilgovi has joined the channel [23:26] jaha has left the channel [23:27] aaronmcadam has joined the channel [23:27] DJBouche has joined the channel [23:28] mnutt has joined the channel [23:28] Gekz has joined the channel [23:28] Gekz has joined the channel [23:29] joeytwiddle has joined the channel [23:29] mc_greeny1 has joined the channel [23:30] mikegerwitz has joined the channel [23:30] JaKWaC has joined the channel [23:31] RushPL has joined the channel [23:36] subbyyy has joined the channel [23:36] subbyyy has joined the channel [23:38] tlrobinson_ has joined the channel [23:38] JaKWaC has joined the channel [23:39] pauls1 has joined the channel [23:40] shapeshed has joined the channel [23:40] neilk_ has joined the channel [23:41] aaronmcadam has joined the channel [23:41] Dulak has joined the channel [23:43] Renegade001 has joined the channel [23:45] brianseeders has joined the channel [23:45] bogomips has joined the channel [23:46] joshfinnie has joined the channel [23:47] jaitaiwan has joined the channel [23:48] skm has joined the channel [23:48] jacobolus has joined the channel [23:49] mattgifford has joined the channel [23:49] dob_ has joined the channel [23:51] joestein has joined the channel [23:51] lzskiss has joined the channel [23:51] appinsanity-mike has joined the channel [23:51] trotter has joined the channel [23:51] dudeinthemirror has joined the channel [23:51] EvRide has joined the channel [23:51] ag4ve has joined the channel [23:51] wink_ has joined the channel [23:51] edwardmsmith has left the channel [23:53] tonymilne has joined the channel [23:55] smailq has joined the channel [23:56] nicholasf has joined the channel [23:56] smailq has joined the channel [23:56] davidbanham has joined the channel [23:58] smailq has joined the channel [23:58] towski has joined the channel [23:59] bluebit has joined the channel