[00:00] springmeyer_ has joined the channel [00:01] ollie has joined the channel [00:02] cincinnatus has joined the channel [00:04] spcshpopr8r: jerrysv: I'm sorry I can't stick around...I've got to catch a bus...I'll try to get back on later and refer to the gist I posted...thanks [00:04] spcshpopr8r has left the channel [00:05] arpegius has joined the channel [00:06] flubba has joined the channel [00:06] ewdafa has joined the channel [00:08] brraaains has left the channel [00:09] ceej has joined the channel [00:15] gazumps856 has joined the channel [00:15] hij1nx has joined the channel [00:17] Opaque has joined the channel [00:18] johnnywengluu: is there a good json <-> xml converter for node.js? [00:20] patrickarlt has joined the channel [00:23] incon has joined the channel [00:23] gtramont1na has joined the channel [00:24] Treffynnon has joined the channel [00:25] F1LT3R has joined the channel [00:25] johnnywengluu: sometimes being a node.js dev sucks =) [00:25] tonymilne: I could imagine parsing / out-puting xml would get you close to json <-> xml, wouldn't it? [00:25] tonymilne: So, try o3-xml [00:26] Dinosaurus has joined the channel [00:26] Dinosaurus has left the channel [00:29] sonnym has joined the channel [00:29] brownies has joined the channel [00:30] brimster has joined the channel [00:30] stepheneb has joined the channel [00:30] Xano has joined the channel [00:31] mikegerwitz has joined the channel [00:31] mikegerwitz has joined the channel [00:31] rfay has joined the channel [00:31] gavin_huang has joined the channel [00:31] mikeal has joined the channel [00:31] niftylettuce_ has joined the channel [00:32] johnnywengluu: https://github.com/ajaxorg/node-o3-xml ? [00:32] johnnywengluu: says "segmentation fault" [00:32] tonymilne: It needs compiling against your version of node. [00:32] johnnywengluu: ah [00:32] tonymilne: (and OS, etc) [00:33] johnnywengluu: why actually [00:33] tonymilne: It also has a dep on the c based LibXML2. [00:33] johnnywengluu: okay [00:33] tonymilne: The version you downloaded is pre-compiled against node 0.2.2 stable. [00:34] tonymilne: (which is probs way older than what you're using!) [00:34] tonymilne: go here: https://github.com/ajaxorg/o3 [00:34] johnnywengluu: i guess they use a C lib just to not having to code a new XML parsing algorithm? [00:34] tonymilne: No, it's way faster, too. [00:34] johnnywengluu: ok [00:35] brownies has joined the channel [00:35] catshirt has joined the channel [00:36] dguttman has joined the channel [00:37] johnnywengluu: ive downloaded that repo [00:37] johnnywengluu: should i configure && make && make install module/xml [00:37] johnnywengluu: dont get how its getting built [00:40] duckspeaker has joined the channel [00:42] jacobolus has joined the channel [00:42] hybsch has joined the channel [00:43] baudehlo_ has joined the channel [00:44] ExsysTech has joined the channel [00:44] tonymilne: from memory, in the /tools there is a node_modules_build that you can use. [00:44] tonymilne: but, it boils down to node-waf configure and node-waf [00:45] tonymilne: out of curiosity, which way are you going JSON to XML or XML to JSON? [00:45] cafesofie has joined the channel [00:46] niftylettuce has joined the channel [00:46] brettgoulder has joined the channel [00:48] ack: tonymilne, do you know about xml2js? [00:48] johnnywengluu: both =) [00:49] devdazed has joined the channel [00:49] incon_ has joined the channel [00:50] tonymilne: ack: Haven't used it, is it good? [00:50] johnnywengluu: ack: that one doesn't work for js to xml? [00:50] johnnywengluu: npm install xml2js [00:51] ji0n has joined the channel [00:52] ReshadN has joined the channel [00:53] ReshadN: Hello [00:53] ReshadN: just have a short simple question that I couldn't find a quick answer to online [00:53] dhasenan has joined the channel [00:53] ReshadN: I know Node.js has stable and unstable versions [00:53] ReshadN: Can anyone provide more information on what stable versions should be used? [00:53] ReshadN: Thanks. [00:54] Aria has joined the channel [00:54] _jgr has joined the channel [00:55] context: reshadn: the latest release. 0.4.8, only 'unstable' version im aware of would be compiling HEAD manually [00:55] ReshadN: Wonderful. Thanks for your help. [00:56] dgathright_ has joined the channel [00:56] brownies has joined the channel [00:57] zcopley has joined the channel [00:59] AAA_awright: I'm trying to extend an object to replace a single function it has [00:59] AAA_awright: Keep the same constructor [01:00] themiddleman_itv has joined the channel [01:02] xandrews has joined the channel [01:04] patrickarlt has joined the channel [01:06] bartt has joined the channel [01:07] Skipants has left the channel [01:10] fakewaffle has joined the channel [01:10] fakewaffle: hi [01:10] emuyser has joined the channel [01:10] emuyser has left the channel [01:12] fakewaffle: tonymilne: you there? [01:14] fakewaffle: mscdex: can i get some feedback from you? [01:14] cummingscm has joined the channel [01:16] tcurdt has joined the channel [01:16] killfill has joined the channel [01:16] justinTNT has joined the channel [01:16] zeade has joined the channel [01:16] Maximosis has joined the channel [01:17] Emmanuel__ has joined the channel [01:18] tonymilne: fakewaffle: yeap. [01:18] fakewaffle: you happen to get your framework out there? [01:18] JoshC1 has joined the channel [01:19] tonymilne: not yet. ;( [01:19] fakewaffle: :( [01:19] tonymilne: im trying to get our project ready for production, [01:19] tonymilne: once i do that i will package stuff up, refine it, write some docs, and release it. [01:19] fakewaffle: nice. ive come a long way on mine so far [01:19] tonymilne: awesome! [01:19] tonymilne: url? [01:20] fakewaffle: http://fakewaffle.com/blog/posts/ https://github.com/fakewaffle/piejs [01:20] fakewaffle: still a long way to go though too, omg lol [01:20] tonymilne: Yessss.... :) [01:21] tonymilne: did you use migrations / fixtures with CakePHP? [01:21] ChrisPartridge: fakewaffle: Looking good [01:21] fakewaffle: tonymilne: not sure what you mean [01:22] fakewaffle: ChrisPartridge: thanks! i have a beforeSave, and afterSave working with models too [01:22] tonymilne: well, migrations are a way to declare your database schema, and migrate up / down through them, in a version controllable way. [01:22] eee_c has joined the channel [01:22] tonymilne: fixtures are a way to define data that can be loaded. [01:22] tonymilne: so they were shells, and you'd write cake migrate all [01:22] fakewaffle: ahh, yeah, i tried a bit with migrations [01:22] tonymilne: and cake fixtures [01:22] tonymilne: and you'd have the latest database and data. [01:23] JoshC1 has joined the channel [01:23] fakewaffle: there is so much to do with pie, im trying to chip away at little pieces at a time, to get the big picture in place [01:24] fakewaffle: im just happy with my helpers this week :D [01:24] tonymilne: awesome man. it's coming along well! [01:24] jsulak has joined the channel [01:25] fakewaffle: thanks tonymilne [01:25] fakewaffle: im thinking of working on auth next [01:26] fakewaffle: you mentioned you did it for yoursL [01:26] fakewaffle: yours?* [01:27] abraxas has joined the channel [01:28] ditesh|cassini has joined the channel [01:28] miccolis has joined the channel [01:28] samsonjs has joined the channel [01:29] tonymilne: Um, ya, i am using connect-auth. [01:30] tonymilne: I've done some weird stuff... ;) But, i've got a setup that has a beforeFilter [01:30] tonymilne: and allowedActions too. [01:30] fakewaffle: any acl [01:30] fakewaffle: ah cool [01:30] fakewaffle: nice [01:30] mynyml has joined the channel [01:31] tonymilne: So, i set my user on my controller. [01:31] tonymilne: so i can say controller.user [01:31] tonymilne: as well as put it in the locals. [01:31] tonymilne: (i need to run a restrict on my model though) [01:31] pkarl has joined the channel [01:31] tonymilne: because sometimes i send the locals as JSON. [01:31] tonymilne: and you can see the user's hash / salt / etc on the client side. [01:32] fakewaffle: oh cool [01:33] tonymilne: Oh, i got extensions working too, so i can say .json -> uses json view. [01:33] fakewaffle: thats awesome [01:33] tonymilne: so, im building a website+iphone api. [01:33] tonymilne: and it's got some socket.io routing for all of my express routes. [01:33] tonymilne: has been a heap of fun working on this stuff. [01:33] fakewaffle: i have been thinking about an extension type setup too [01:33] tonymilne: <3 node. [01:33] fakewaffle: it has! [01:34] christophsturm has joined the channel [01:34] fakewaffle: as nice as cakephp is, i cant say i really enjoy programming in php lol [01:34] tonymilne: yeah. ;) [01:34] tbranyen: please help popop [01:34] tonymilne: My latest fun thing was emitting an event on model save, and socket.io it to the client. [01:35] tonymilne: realtime updates on new data... ;) [01:35] mbrevoor_ has joined the channel [01:35] fakewaffle: nice [01:35] levi501d has joined the channel [01:36] tonymilne: there is a lot of RL events coming up that are forcing the timeline of this project. [01:36] tonymilne: so hopefully, i'll finish up and get the framework happening!! :) [01:36] ack: tonymilne, which orm are you using? [01:36] tonymilne: mongoose [01:38] tonymilne: i'm using npm, express, ejs, connect with connect-auth, mongodb with mongoose, socket.io and need to put cluster back into the mix. [01:38] tonymilne: and stylus ;) [01:39] cjm: tony, what is this for? [01:39] tikva has joined the channel [01:40] patcito has joined the channel [01:41] arthur_kalm has joined the channel [01:43] k1ttty has joined the channel [01:43] tonymilne: Um, a start-up project called MiiBrand. It lets users subscribe to brands and receive offers. Using location, etc. Effectively a marketing platform for brands too. [01:43] ebryn has joined the channel [01:43] cjm: ah cool [01:44] tonymilne: Has a website aspect, and a mobile phone api. Lots of realtime goodness. [01:44] tonymilne: (Australian based though) [01:44] avalanche123 has joined the channel [01:47] killfill has joined the channel [01:48] SuMarDi has joined the channel [01:49] fr0stbyte has joined the channel [01:52] _jgr has joined the channel [01:52] eyesUnclouded has joined the channel [01:52] bentruyman has joined the channel [01:53] boaz has joined the channel [01:53] jvduf has joined the channel [01:54] chadsmith has joined the channel [01:54] fr0stbyte has joined the channel [01:57] jamescarr_ has joined the channel [01:57] simenbrekken has joined the channel [01:57] brownies has joined the channel [01:57] killfill has joined the channel [01:59] themiddleman has joined the channel [02:01] ceej has joined the channel [02:03] ithildin has joined the channel [02:04] tikva has joined the channel [02:05] zmbmartin has joined the channel [02:06] ngs has joined the channel [02:07] charlesjolley- has joined the channel [02:07] justinTNT: ACTION is also australian based [02:07] dyer has joined the channel [02:08] Lorentz has joined the channel [02:08] dyer has joined the channel [02:08] amid_hasan has joined the channel [02:08] amid_hasan: hello [02:09] rauchg has joined the channel [02:09] amid_hasan: new to node, want to set it up to work as simple chat program. using php/mysql html/js css. any guidance? [02:09] amid_hasan: remote server is linux apache [02:09] mike5w3c_ has joined the channel [02:09] konobi: https://github.com/ry/node_chat [02:11] kelvin has joined the channel [02:11] amid_hasan: Wow. Quick reponse. Thank you!! [02:12] amid_hasan: getting "Long poll error. trying again..." on the demo [02:13] pifantastic has joined the channel [02:14] samyak has joined the channel [02:14] flubba has joined the channel [02:14] addisonj_ has joined the channel [02:15] igl: amid_hasan: node has no php [02:17] InTech[RU]: and has no python, ruby etc =)))))) [02:17] igl: amid_hasan: node is not using apache, its replacing apache [02:17] amid_hasan: interesting [02:17] igl: we use connect or express to setup servers [02:18] igl: ejs or jade to do templating [02:18] amid_hasan: i am hosting on godaddy, can i install node there? [02:18] igl: there are a few sql modules [02:18] MikhX has joined the channel [02:18] igl: if you got shell access sure [02:19] igl: amid_hasan: http://howtonode.org/ [02:19] amid_hasan: igl: thank you [02:19] amid_hasan: i am sort of a noob, but eager to learn [02:20] igl: :) [02:20] amid_hasan: if nodejs replaces apache, if i point to a program running node from a remote mobile device, like a blackberry playbook, will it work? [02:20] igl: sure [02:21] CrabDude has joined the channel [02:21] amid_hasan: how do you store data on node? [02:21] amid_hasan: for a chat program, as an example [02:21] igl: mongodb or mysql [02:21] igl: whatever you like [02:21] ack: with files/in-memory data/databases [02:21] amid_hasan: and you said templating is done via ejs or jade? [02:21] igl: or others [02:21] amid_hasan: the look of the application right? [02:22] igl: you should build node [02:22] igl: do the hello world http server [02:22] igl: and then learn about what modules can do for you > https://github.com/joyent/node/wiki/modules [02:22] igl: you do know javascript aight? [02:22] amid_hasan: sorry to ask such dumb questions, but how do i build node? [02:23] blkcat: amid_hasan: i suggest you go look at some of the documentation out there :) [02:23] spcshpopr8r has joined the channel [02:23] blkcat: amid_hasan: all of your questions and more have been answered ;) [02:23] amid_hasan: im learning how to use javascript logic. my skills are basic web dev using php/mysql html/css and jquery animations [02:23] amid_hasan: ok [02:23] fakewaffle: amid_hasan: http://www.nodebeginner.org/ is pretty good too [02:23] bad_at_math has joined the channel [02:24] amid_hasan: i want to create an application that spits out winning lottery numbers [02:24] amid_hasan: tell me this is possible with node [02:25] igl: amid_hasan: sure [02:25] spcshpopr8r: hello all...a couple hours ago I posted a dilemma I encountered after cloning howtonode.org and "nmp install wheat" here: https://gist.github.com/1003634 [02:26] spcshpopr8r: after noodling with it on the bus, I ended up with something of a workaround: https://gist.github.com/1003808 [02:26] amid_hasan: igl: know of any good how to videos for node? [02:27] spcshpopr8r: leads me to think that perhaps wheat is not listing connect properly as a dep...or...something else? [02:27] gsmcwhirter has joined the channel [02:27] brainproxy: amid_hasan: one of the most important things is to 1) solidify your knowledge of the JS language; Flanagan's book and javascriptgarden.info are helpful there; 2) read through the node.js API a couple of times [02:28] spcshpopr8r: if this find might be useful to others, I'd like to share but don't know a better place than this (again, I'm brand-spankin' new to node.js) [02:28] amid_hasan: brainproxy: thank you. [02:28] spcshpopr8r: pointers? [02:28] brainproxy: re: 2) not only read through it, but write some test scripts to experiment w/ what's defined in the node.js API to make sure you understand what those things do [02:28] brainproxy: amid_hasan: http://nodejs.org/docs/v0.4.8/api/ [02:29] brainproxy: also, if you're looking for a quick and easy way to install node and npm, try creationix's nvm [02:29] igl: amid_hasan: http://www.youtube.com/watch?v=jo_B4LTHi3I [02:30] igl: ryan is the king of nerds [02:30] igl: "i like c" [02:30] brainproxy: amid_hasan: https://github.com/creationix/nvm [02:30] tbranyen: sounds like a c programmer [02:30] cha0s has joined the channel [02:30] JoshC1 has joined the channel [02:31] cjm has joined the channel [02:32] wookiehangover has joined the channel [02:32] amid_hasan: What text editor is ryan using? [02:32] brainproxy: vim, i think :) [02:33] halfhalo: thats your problem [02:36] d_js has joined the channel [02:37] dguttman has joined the channel [02:39] amerine has joined the channel [02:39] harth has joined the channel [02:40] amid_hasan: This is a good start. Thank you all for your help. [02:40] mscdex: fakewaffle: pong [02:40] amid_hasan: need to learn how to use vim now... [02:41] cjm has joined the channel [02:41] tbranyen: amid_hasan: glwt [02:41] fakewaffle: mscdex: can you gimme some feedback on PieJS? [02:41] tbranyen: learning vim often isn't a simple undertaking [02:42] dgathright has joined the channel [02:43] mscdex: fakewaffle: sure why not, i haven't had dessert yet [02:43] fakewaffle: mscdex: chuckle duckle [02:44] mscdex: is there something in particular or ? [02:44] amid_hasan: thanks [02:45] amid_hasan has left the channel [02:45] raidfive has joined the channel [02:47] blueadept: what happend to the referer tag in req.headers? [02:47] mscdex: blueadept: what do you mean? [02:48] blueadept: i've been using req.headers.referer for fb connect in one of my projects, now it doesn't show up anymore [02:48] mscdex: blueadept: not all browsers necessarily send a referrer header [02:48] blueadept: hm [02:48] mscdex: it's optional [02:49] boaz has joined the channel [02:50] tikva has joined the channel [02:50] Me1000 has joined the channel [02:51] jacter has joined the channel [02:55] mgkimsal has joined the channel [02:55] htoothrot has joined the channel [02:56] dguttman has left the channel [02:56] nannto has joined the channel [03:00] mykul has joined the channel [03:00] dipser_ has joined the channel [03:01] Hamms has joined the channel [03:02] cloudhea1 has joined the channel [03:04] Corren has joined the channel [03:04] Sami_ZzZ has joined the channel [03:06] cloudhead_ has joined the channel [03:06] materialdesigner has joined the channel [03:11] blueadept: mscdex: just spent 20 minutes debugging my code, figured out fb changed their api callbacks, i think i found a workaround [03:11] flubba has joined the channel [03:11] blueadept: jesus h though [03:11] mscdex: blueadept: ah, yeah i hear using fb's api isn't the best experience [03:12] jtsnow has joined the channel [03:13] stepheneb has joined the channel [03:15] _jdalton has joined the channel [03:15] rfay has joined the channel [03:16] ryanmcgrath has joined the channel [03:16] brownies has joined the channel [03:16] nexxy has joined the channel [03:17] brraaains has joined the channel [03:17] blueadept: actually this was a good update [03:17] blueadept: it forced me to rewrite my fb connect code correctly for all browsers [03:18] blueadept: any fb connect peeps in here, gg [03:18] chin has joined the channel [03:18] technoweenie has joined the channel [03:18] technoweenie has joined the channel [03:19] yhahn has left the channel [03:20] kriszyp has joined the channel [03:24] sreeix has joined the channel [03:25] _jdalton has left the channel [03:25] pplante has joined the channel [03:26] tim_smart has joined the channel [03:26] wbw72 has joined the channel [03:28] timmywil has joined the channel [03:28] yozgrahame has joined the channel [03:29] davidascher has joined the channel [03:30] cha0s has joined the channel [03:30] cha0s has joined the channel [03:33] cafesofie has joined the channel [03:37] tikva has joined the channel [03:37] softdrink has joined the channel [03:37] isaacs has joined the channel [03:39] ryanmcgrath has joined the channel [03:40] brettgoulder has joined the channel [03:41] dgathright has joined the channel [03:42] sebbie has joined the channel [03:43] jslatts has joined the channel [03:44] Emmanuel__ has joined the channel [03:44] mbrevoort has joined the channel [03:44] McMAGIC--Copy has joined the channel [03:45] tikva has joined the channel [03:48] kriszyp has joined the channel [03:49] fakewaffle: nexxy !!! [03:49] nexxy: fakewaffle, !!! [03:49] fakewaffle: nexxy++ [03:49] v8bot: fakewaffle has given a beer to nexxy. nexxy now has 2 beers. [03:49] nexxy: !! [03:49] nexxy: Nexxy has moar [03:49] fakewaffle: missed you [03:50] nexxy: I keep forgetting about that ;< [03:50] Nexxy: aww thanks! <3 lol [03:50] Nexxy: I uhm... I was gone? [03:50] Nexxy: or were you? [03:50] fakewaffle: i was [03:50] Nexxy: obviously I didn't miss you as much ._. [03:50] fakewaffle: :( [03:50] Nexxy: ACTION busy [03:50] Nexxy: ;P jk lol [03:50] fakewaffle: its ok, i understand [03:50] Nexxy: I was drafted... [03:50] Nexxy: as a DJ [03:51] Nexxy: I know nothing about DJing [03:51] Nexxy: and now I'm a DJ ;S [03:51] fakewaffle: i was raptured, but a came back [03:51] fakewaffle: i* [03:53] TheDahv has joined the channel [03:53] tikva has joined the channel [03:54] dguttman has joined the channel [03:54] TheDahv: I have a question about working with mongo embedded documents within embedded documents. Appropriate channel? [03:54] sub_pop has joined the channel [03:55] killfill has joined the channel [03:56] caolanm has joined the channel [03:57] pplante: i ate dinner [03:58] ChrisPartridge: TheDahv: using mongoose? [03:58] dhasenan: TheDahv, it's more productive to ask and get snipped at than to ask if you can ask, oddly enough. [03:59] kristsk has joined the channel [03:59] cagdas has joined the channel [03:59] chin has joined the channel [04:01] TheDahv: dhasenan: forgive me, I still consider myself an irc noob [04:01] TheDahv: ChrisPartridge: yes, using mongoose [04:01] sudhirjonathan has joined the channel [04:01] TheDahv: And I find myself using a schema that is a little more involved that what I've seen in demo's [04:01] TheDahv: and tuts [04:02] dhasenan: TheDahv, just an observation about nerd communication habits. Asking questions on the wrong channel can get somewhat angry responses which will often include information on how to find the right one. [04:02] TheDahv: Um, if it helps, code so far is at http://github.com/TheDahv/whatsfordinner [04:02] dhasenan: But asking if you can ask a question, or if it's appropriate, gets you nothing most of the time. [04:02] TheDahv: dhasenan: :) [04:02] jslatts has joined the channel [04:03] TheDahv: dhasenan: I got it. I'm moving on with the question part now. Shall we? [04:03] dhasenan: ^_^ [04:03] TheDahv: So, in a given request, we're dealing with a document that contains embedded documents [04:03] TheDahv: It's a meal planning app [04:03] TheDahv: where a given 'plan' contains an embedded document array of 'meals' [04:03] pplante: what about axing a question? [04:03] TheDahv: i'm getting there [04:04] TheDahv: meals have an embedded document array of ingredients [04:04] TheDahv: i'd like to update the ingredients on a request by 1) clearing the ingredients on each meal 2) updating the ingredients on each meal with what is in the request params [04:05] mundanity has joined the channel [04:05] TheDahv: I'm finding that no amount of schema.save() is getting mongoose to cooperate [04:05] TheDahv: I was initially concerned that I was just not programming with async in mind [04:05] TheDahv: I pulled in the async library from npm, but that hasn't helped so far [04:06] TheDahv: So, the question is: is there an existing 'good idea' strategy for dealing with embedded documents within embedded documents when updating? [04:09] tonymilne: Hey TheDahv, there actually might be a bug with saving embedded documents with Mongoose at the moment. Are you using Mongoose? [04:09] dhasenan: Your usage looks pretty much like the canonical way of doing it. [04:10] tonymilne: scratch that. :) you said you were... I'm looking at what I did in my code. [04:10] TheDahv: Yeah, you know I've been looking around and finding all kinds of issues in the google groups about embedded documents bugs in mongoose [04:10] tonymilne: Until someone fixes Mongoose, try dropping into the MongoDB collection. [04:10] tonymilne: E.g. [04:11] tonymilne: collection.update({ _id: model._id }, updates, function(err, results) { [04:11] tonymilne: // snip... [04:11] tonymilne: }); [04:11] TheDahv: I have access to the mongo api from mongoose? [04:11] tonymilne: Ya, you can see it on their website. [04:11] tonymilne: or read their code. [04:12] TheDahv: huh, I hadn't thought of that [04:12] tonymilne: Er, it was meant to be: [04:12] tonymilne: model.collection.update( [04:12] MikhX has joined the channel [04:12] tonymilne: you can use all of the MongoDB query / update code from teh MongoDB website. [04:12] tonymilne: gimme a holla if you dont follow what im saying. [04:13] TheDahv: Where model is the (usually capitalized) Schema object I've created with Model = new Schema(...) ? [04:13] TheDahv: tonymilne: I'm getting more and more familiar with mongodb proper [04:13] TheDahv: I just didn't know if the mongoose abstraction would prevent me from writing mongo queries [04:14] tonymilne: Mongoose is good, just has some parts that are a bit spiky :) [04:14] azeroth_ has left the channel [04:14] TheDahv: Yeah, I've really enjoyed it so far [04:14] niftylettuce: whats up with spidermonkey [04:14] niftylettuce: is it a threat? [04:14] tonymilne: Im putting an example of how my models are done, atm [04:14] TheDahv: but then I ran into more complex relationships and it started being mean [04:15] tonymilne: will pastie in a sec. [04:15] _warlock_ has joined the channel [04:15] TheDahv: it worked great when I just made a blog [04:15] TheDahv: wih one model [04:15] TheDahv: *with [04:15] Corren has joined the channel [04:16] TheDahv: different question, what do people use to host node apps? I tried heroku when it came out yesterday, and I got my no.de smartmachine today [04:16] TheDahv: I haven't touched it yet [04:16] brainproxy: VPS is a no-brainer you don't mind admin'ing your own server [04:17] brainproxy: *if you.. [04:17] TheDahv: Yeah, I don't think I would mind [04:17] TheDahv: I tend to explore options that involve FREE first :) [04:17] brainproxy: hehe [04:17] TheDahv: But that's because I'm a bum. If I set up my own server, I likely wouldn't be here [04:17] TheDahv: Well, that's not entirely true [04:18] TheDahv: But I do like the idea of exploring the community aspect of node.js [04:18] brainproxy: if you're experimenting it's really nice to be able to fire up a script in a tmux/screen session, then go bang against it from another session, etc. [04:18] olalonde has joined the channel [04:18] niftylettuce: sums it up http://blog.zpao.com/post/5641702863/spidernode-at-nodeconf-2011 [04:18] niftylettuce: maybe... [04:20] TheDahv: I'm currently at a beer && code event and am probably not in a state to actually read that [04:21] cjm has joined the channel [04:22] CiRlE has joined the channel [04:23] dgathright has joined the channel [04:24] beawesomeinstead has joined the channel [04:24] beawesomeinstead has joined the channel [04:27] tonymilne: Just pastied an example of how im using Mongoose... [04:27] tonymilne: http://pastie.org/2006821 [04:27] tonymilne: It's a mish-mash of some stuff to give you an idea. [04:27] tonymilne: The static and methods are really really useful! [04:29] sebbie has joined the channel [04:29] tonymilne: Note: there are a couple of things wrong with that, after re-reading it... but you get the drift. [04:30] TheDahv: tonymilne: reading... [04:31] tonymilne: so, in your case: because i know that the mongoose embedded object stuff doesnt update well. [04:31] tonymilne: I'd create a strong function for updating a meal. [04:31] sivy has joined the channel [04:32] TheDahv: hmm, interesting [04:32] sechrist has joined the channel [04:32] tonymilne: So, you could find a meal in your controller (by mealId)... if it doesnt exist return an error. [04:32] TheDahv: in the latter case, i'd want to create a new meal [04:32] tonymilne: With that meal, you have a function updateIngredients on the meal model (a method NOT static) [04:33] TheDahv: newly created plan doesn't necessarily have a full array (ie, 7 items) [04:33] tonymilne: sure. well to create new instances of model objects its easy. [04:33] TheDahv: upon creation [04:33] TheDahv: yeah [04:33] tonymilne: var mealModel = mongoose('meal'); [04:33] TheDahv: so, you're kind of saying I shouls write all these methods and attach them to the Plan schema and work from there [04:33] TheDahv: ? [04:33] tonymilne: var meal = new mealModel({ data }); [04:34] TheDahv: Yeah, I had that set up at one point, but the mongoose docs seemed to state that I wouldn't actually be saving those schemas into models and working with those models [04:34] mscdex: meal.on('omnomnom', function() { self.full(); }); [04:34] mscdex: :-D [04:34] TheDahv: As i'm sure you are aware, setting methods on schemas that are embedded documents don't work out so well [04:34] TheDahv: mscdex: omg you solved it. project finished :) [04:35] tonymilne: Yeah, so sometimes you might add the methods to the top level schema and i guess have them operate on the embedded docs. [04:35] TheDahv: So like, trying to set meal.method('clearIngredients', function () { this.doStuff(); }); fails [04:35] TheDahv: Yeah. I didn't learn that embedded documents aren't treated as first class objects until like...yesterday [04:35] tonymilne: yeah, see thats where i think you might be trying to add a method to the wrong thing. [04:36] tonymilne: you add methods and statics to schemas that become models. [04:36] TheDahv: Yeah, it feels a little weird to do everything from the top, but I'm new to this document database stuff so I'm willing to bend my mind [04:37] tonymilne: Its also hard because i dont really know exactly what you're doing. [04:37] tonymilne: LOL. ;) [04:37] TheDahv: you and me both ;)' [04:37] tonymilne: but ya, definately be wary that trying to update embedded documents was failing for me [04:37] tonymilne: and also incrementing a number as well from memory. [04:39] TheDahv: I take some solace in that this is new stuff [04:39] TheDahv: I'm ok with minor defeat for now. It may be a battle, but there is still a war to be wno [04:39] TheDahv: *won [04:39] TheDahv: NEW TOPIC [04:40] TheDahv: has anybody worked with no.de yet? Did I already ask this? [04:40] hij1nx has joined the channel [04:41] langworthy has joined the channel [04:42] mynyml has joined the channel [04:42] Bradleymeck has joined the channel [04:44] Corren: new topic? we're launching our first alpha next week :P [04:45] TheDahv: eh? [04:45] davidban_ has joined the channel [04:46] Corren: exciting isn't it [04:47] davidban_: I'm having massive issues trying to get Winston working. I think it's an issue with npm. It didn't build the mongodb driver correctly the first time and now it seems to be using a cached version rather than building it correctly. [04:47] davidban_: Does anyone know how to force npm to build everything from scratch and not use whatever cached version it's got? npm cache clean didn't help. [04:50] TheDahv: I'm out. Thanks for the help folk. [04:50] davidban_: Is this expected behaviour for npm? Is there a command I'm missing? [04:50] davidban_: http://pastebin.com/pV09VCdW [04:53] keikubo has joined the channel [04:54] akshatj has joined the channel [04:56] ezl- has joined the channel [05:00] AhtiK has joined the channel [05:01] brownies has joined the channel [05:02] jerrysv has joined the channel [05:03] __tosh has joined the channel [05:04] springmeyer has joined the channel [05:05] christopherbull has joined the channel [05:06] christopherbull: hey guys, i'm having heaps of trouble installing Haraka from npm, has anyone else experienced this? [05:09] ChrisPartridge: christopherbull: I installed it a couple days ago without issue [05:10] christopherbull: hmm, ok, must be something weird at my end, what version of npm are you on? [05:11] ChrisPartridge: 1.0.something [05:11] SamuraiJack has joined the channel [05:12] darshanshankar has joined the channel [05:14] robinhoode has joined the channel [05:14] mykul has joined the channel [05:17] dgathright has joined the channel [05:17] darshanshankar: SubStack: you free? http://groups.google.com/group/nodejs/browse_thread/thread/c9a8de9dd247a6d9 [05:18] rchavik has joined the channel [05:18] darshanshankar: \ [05:18] CrabDude has left the channel [05:18] darshan-mobile has joined the channel [05:20] boehm has joined the channel [05:21] MikhX has joined the channel [05:23] christopherbull: ChrisPartridge: solved it....turns out i'm a muppet and didn't use the Capitalisation of Haraka [05:24] fakewaffle has joined the channel [05:24] patrickarlt has joined the channel [05:25] bad_at_math has joined the channel [05:25] dyer has joined the channel [05:25] brainproxy: speaking of muppets ... node.js could use a mascot.. [05:27] christopherbull: lol [05:27] dgathright has joined the channel [05:28] jgautier has joined the channel [05:28] jgautier: hey when i run npm init it should create a package.json file right? when i do it, it prompts for project name and description then exits and doesnt write a file [05:30] mscdex: the mascot for node.js should be a cowbell [05:30] mscdex: ! [05:31] Aria: Or the dancing cloud characters from Rejected [05:31] ChrisPartridge: christopherbull: lol, bet you won't make that mistake again :-) [05:32] ChrisPartridge: node.js mascot should be that "callbacks fuck yeah" image SubStack created! [05:32] mykul has joined the channel [05:33] jerrysv: wow, creating custom web scraping in node.js and jsdom is super easy [05:34] pifantastic has joined the channel [05:36] liar has joined the channel [05:37] jerrysv: anyone here have good experience with node::Buffer and going between c++ and javascript? [05:37] jmoyers has joined the channel [05:37] jerrysv: jmoyers: you just missed my standard question [05:37] jmoyers: oh ;-)? [05:38] jerrysv: node::Buffer [05:38] jmoyers: sorry i was too busy playing TRAMPOLINE DODGEBALL [05:38] jerrysv: i think i ask it every 6 hours or so, just in case :) [05:38] jerrysv: jmoyers: i hate you (actually, i'm jealous, being up here i miss all of those) [05:38] niftylettuce: when we have 1k users in node.js we should celebrate [05:38] jmoyers: there are 600 people _in this irc_ [05:39] jmoyers: i imagine theres quite a bit more than 1k [05:39] niftylettuce: 556 [05:39] jerrysv: 55 [05:39] jerrysv: 555 [05:39] jmoyers: oh, you mean in the channel [05:39] niftylettuce: shfifty five [05:39] niftylettuce: jmoyers: yea ofc there > 1k node.js'erz [05:39] jmoyers: ;-) [05:39] niftylettuce: jmoyer: <3 [05:39] niftylettuce: *ehem* back to work [05:40] darshan-mobile: There's >1K noders in just SF [05:40] niftylettuce: ACTION spots a WILD __proto__ [05:40] niftylettuce: but theres only 1 darshan-mobile on his mobile [05:40] jmoyers: ACTION is in a nodejistsu sponsored pizza coma [05:40] darshan-mobile: Lol [05:41] niftylettuce: Tasque isn't bad [05:41] niftylettuce has left the channel [05:41] darshan-mobile: Man I wish I went to trampoline dodgeball [05:41] niftylettuce has joined the channel [05:41] jerrysv: i wish i could hit nodecamp in september [05:41] jerrysv: and i kind of want to throw a jsbbq up here [05:41] niftylettuce: I'd love to build task.js with someone [05:41] niftylettuce: throw together task list management with payroll etc [05:41] niftylettuce: dang that would help so much [05:42] niftylettuce: sucks for us east coast folk [05:42] niftylettuce: no node.js enthusiasm over here, yet [05:43] jerrysv: niftylettuce: lots of you east coasters show up here [05:43] tk has joined the channel [05:43] niftylettuce: jerrysv: I should host a meetup [05:44] niftylettuce: maybe a conf, and fly out ryah [05:44] davidban_ has joined the channel [05:44] jerrysv: heh, a bbq conf [05:44] niftylettuce: well not conf, a seminar [05:44] niftylettuce: bbq conf at my conference center/hotel I have access to [05:44] jerrysv: ACTION really wants to do a jsbbq, but doesn't want to open up his house [05:44] mraleph has joined the channel [05:45] niftylettuce: http://www.pshs.psu.edu/PennStater/pshome.asp [05:45] niftylettuce: if I hosted, would any of you fly out / attend? [05:45] niftylettuce: I could probably get president room A for a decent rate [05:45] niftylettuce: i guess now isn't time to ask the east coasters [05:46] niftylettuce: 145am [05:46] elliottcable: I heard superfuntimes! [05:46] elliottcable: ACTION wants in [05:47] jslatts has joined the channel [05:47] itissid has joined the channel [05:48] itissid: I posted this when i heard it after a good laugh http://news.ycombinator.com/item?id=2610862 [05:48] marksweiss has joined the channel [05:48] tekky has joined the channel [05:48] jerrysv: niftylettuce: sorry, was just in pa right before node/js confs [05:50] marksweiss: hello. i have a question about type conversion between query string args from journey being passed into query to mongo using mongodb-native [05:51] niftylettuce: elliottcable: NC? Nice, I was just in Raleigh for 2 weeks [05:51] akshatj_ has joined the channel [05:53] niftylettuce: elliottcable: very sweet site btw [05:53] madsleejensen has joined the channel [05:55] fakewaffle has joined the channel [05:56] cha0s has joined the channel [05:57] jerrysv: oh, heck yeah, 56 lines of code to login and index a site. in the "old days" this was 1000+ lines of code. [05:58] igl: ^^ [05:58] elliottcable: niftylettuce: hm? [05:58] elliottcable: niftylettuce: http://elliottcable.name/? Most people tell me it’s absolutely fugly. Which is kinda true, it needs a redesign. [05:58] elliottcable: niftylettuce: where do you live? [05:59] tk has joined the channel [05:59] JakeyChan has joined the channel [05:59] isaacs has joined the channel [06:00] secoif has joined the channel [06:00] pifantastic_ has joined the channel [06:01] isaacs: davidban_: what's in server.js? [06:03] jgautier: hey when im doing npm adduser it prompts for username then password but when i press enter after the password it skips over the email then just says it failed [06:03] jgautier: any ideas? [06:04] isaacs: jgautier: what version of npm? [06:04] elliottcable: God, it’s after ſ 250. I should really get to sleep. [06:04] elliottcable: #fuckinsomnia [06:04] jgautier: 0.2.6-alpha1 [06:04] isaacs: jgautier: then it's because you're using a verison of npm that is waaaaayayyyyyy out of date [06:05] jgautier: hmmm [06:05] niftylettuce: elliottcable: all over the place, I travel down I-95/77 all the time, working remote clear down to FL coast [06:05] simenbrekken has joined the channel [06:05] niftylettuce: elliottcable: but my uni is in center of PA [06:05] jgautier: cant i just do npm update? [06:05] isaacs: jgautier: nope. [06:05] isaacs: jgautier: curl http://npmjs.org/install.sh | sh [06:06] isaacs: jgautier: too much has changed. this is a massive update [06:06] isaacs: jgautier: more info in the readme [06:06] elliottcable: niftylettuce: interesting. What do you travel for? [06:06] elliottcable: niftylettuce: stop through Wilmington sometime. Great costal town, very laid-back. ’s why I just moved here. [06:06] jgautier: k updating now [06:06] niftylettuce: elliottcable: wilmington is awesome [06:07] elliottcable: niftylettuce: I can’t really stand privmsgs; lurk ##Paws if you want to talk to me on a regular basis. :3 [06:07] niftylettuce: elliottcable: i travel for family/work [06:07] niftylettuce: elliottcable: no problem :) [06:07] jgautier: i was having issues with npm init also, no wonder :P [06:07] isaacs: yep [06:07] niftylettuce: is it I can't really or I really can't? [06:07] niftylettuce: :P [06:11] steffan has joined the channel [06:11] __jgr has joined the channel [06:11] jerrysv: why must government agencies (that should really have an api to begin with) try to obfuscate everything? [06:12] elliottcable: You know, Vim is a pile of awesome. [06:14] k1ttty has joined the channel [06:14] Vladimir_ has joined the channel [06:14] sebbie has joined the channel [06:14] _jgr has joined the channel [06:19] ezmobius has joined the channel [06:20] TomY has joined the channel [06:21] JakeyChan: hi, does some guy find job in shanghai ?? [06:22] desdur has joined the channel [06:22] Lorentz: By asking. [06:22] temp01 has joined the channel [06:23] ParadoxQuine has joined the channel [06:23] gkmngrgn has joined the channel [06:24] gkatsev: elliottcable: it's more than just a pile, even. [06:26] elliottcable: gkatsev: heh [06:27] Adman65 has joined the channel [06:31] amerine has joined the channel [06:31] gozala has joined the channel [06:33] F1LT3R has joined the channel [06:33] marksweiss has left the channel [06:33] tahu has joined the channel [06:36] nornagon_ has joined the channel [06:37] sgimeno has joined the channel [06:39] juster3 has joined the channel [06:43] DTrejo has joined the channel [06:44] tikva has joined the channel [06:46] Aria has joined the channel [06:46] brownies has joined the channel [06:48] pigmej has joined the channel [06:50] aosteraa has joined the channel [06:51] yozgrahame has joined the channel [06:57] jacobolus has joined the channel [06:58] pplante has joined the channel [07:00] ttpva has joined the channel [07:04] nerdfunk has joined the channel [07:05] nerdfunk: hey champs [07:09] niftylettuce: nerdfunk: \o sup chief [07:09] nerdfunk: not much [07:10] nerdfunk: slogging through a rails project :/ [07:10] jhurliman: how can i set a connection timeout using the request (http) library? [07:11] mscdex: there isn't a way currently [07:11] mscdex: i think there is a default timeout of 2 minutes or something though [07:12] pplante has joined the channel [07:13] vjvjftft has joined the channel [07:13] MikhX has joined the channel [07:15] jhurliman: mscdex, yeah, that's what i'm seeing is around two minutes [07:15] jhurliman: i'm trying to hack in support for it into request.js but can't see an obvious way [07:15] mscdex: jhurliman: the problem is node uses agents now for requests [07:17] gozala has joined the channel [07:19] pandark_: Hi [07:20] pandark_: jan____: Did you see this? https://github.com/leeoniya/handlebar.js [07:20] jhurliman: mscdex, what i did as a hack for now is add "if (options.timeout) options.req.socket.setTimeout(options.timeout);" inside the check for options.pool === false, so it will set a connection timeout in the simple case of pooling disabled at least [07:22] Druide_ has joined the channel [07:23] systemfault has joined the channel [07:27] aliem has joined the channel [07:28] Bj_o_rn has joined the channel [07:28] __sorin__ has joined the channel [07:30] sgimeno has joined the channel [07:31] k1ttty has joined the channel [07:34] __jgr has joined the channel [07:36] Rodtusker has joined the channel [07:39] markwubben has joined the channel [07:39] TomY_ has joined the channel [07:40] _jgr has joined the channel [07:40] jan____: pandark_: the official repo is here https://github.com/wycats/handlebars.js [07:42] petrjanda has joined the channel [07:43] pandark_: jan____: No, this is not the same… handlebar.js != handlebars.js [07:43] lackac has joined the channel [07:43] mobius- has joined the channel [07:45] jan____: oh then it is a very unfortunate name [07:45] msucan has joined the channel [07:45] davidban_ has joined the channel [07:46] rputikar has joined the channel [07:46] pandark_: I totally agree. I was confused too :) [07:46] abraxas: Does anybody know what the policy of the NodeJS maintainers is with regards to what V8 releases they consider stable enough for inclusion? [07:47] mobius-: morning everyone. :) I've been playing recently with cluster, and I am trying to use long-polling to pass down events on listeners. However, each listener binds on a seperate worker and I need to share the events between the workers. Is this possible? (without resorting to redis or mongo) [07:50] mobius-: noone? [07:52] eldios has joined the channel [07:52] neaf has joined the channel [07:52] Slashbunny has joined the channel [07:52] beawesomeinstead has joined the channel [07:52] beawesomeinstead has joined the channel [07:55] herbySk has joined the channel [07:56] Rodtusker has joined the channel [08:02] tonymilne: In cluster, the workers are communicating with the master using sockets. [08:02] tonymilne: you might be able to hook into those socks to communicate. [08:02] sebbie has joined the channel [08:03] tonymilne: don't have time to really think about what you're doing - but maybe that is enough inspiration to keep you moving in the right direction. [08:03] JakeyChan: how many modules I should now when start develop web with node.js ?? what are they ? [08:06] neaf: JakeyChan, express, mognoose, some template engine [08:06] JakeyChan: neaf: what about socket.io. connect etc. [08:07] neaf: JakeyChan, express will probably lead you to connect (it's built on top of that), socket.io for 'love' communication, don't know if you need it. [08:07] neaf: JakeyChan: But that's exactly my stack for my current project [08:08] JakeyChan: neaf: thanks ! [08:08] neaf: I'm building a card game [08:08] JakeyChan: neaf: card game ? [08:08] JakeyChan: neaf: can i play now ? [08:09] neaf: socket.io handles events of the game itself and I use express to deliver 'static' pages. [08:09] bad_at_math has joined the channel [08:09] neaf: Persistent data is stored in MongoDB with mongoose [08:09] mike5w3c_ has joined the channel [08:09] neaf: JakeyChan, nope, it's a project for client and won't be out in months. [08:10] JakeyChan: neaf: hope your successful! [08:11] akshatj_ has joined the channel [08:11] neaf: JakeyChan, thanks, same on my side. it's my first encounter with 'real time' applications. Came from Rails background. [08:11] keikubo has joined the channel [08:11] incon has joined the channel [08:12] JakeyChan: neaf: :D :D [08:13] mobius-: tonymilne: thanks, i'll look into it [08:14] zitchie has joined the channel [08:14] d0k has joined the channel [08:15] robhawkes has joined the channel [08:17] ryankirkman has joined the channel [08:17] uchuff has joined the channel [08:19] josephboyle has joined the channel [08:20] __main__ has joined the channel [08:24] brettgoulder has joined the channel [08:25] thalll has joined the channel [08:28] jbpros has joined the channel [08:28] markwubben has joined the channel [08:29] stephank has joined the channel [08:32] qFox has joined the channel [08:34] margle has joined the channel [08:36] iFire has joined the channel [08:37] Schmallon has joined the channel [08:38] slickplaid: Quick question... How do I pass a variable or object back to a require()'d script from the main script? And is it the same object or a cloned object? [08:39] asabil has joined the channel [08:39] tdegrunt has joined the channel [08:42] daglees has joined the channel [08:45] bzinger has joined the channel [08:45] chjj: slickplaid: it will be the same object [08:45] chjj: slickplaid: im not exactly sure what youre asking, but it sounds like youd want to expose a function from the required module, and pass it an argument, e.g.... [08:46] chjj: module.exports = function(data) {}; [08:46] chjj: require('mymodule')(data) [08:47] slickplaid: Basically I want to be able to use a required module (like redis) in another script that is require()'d later in the same file... if that makes sense [08:47] slickplaid: let me gist it [08:47] bb_ has joined the channel [08:48] chjj: slickplaid, theres a number of ways you could do that [08:48] chjj: one way would be to instantiate your redis object in a separate file entirely and require it by both [08:49] asabil_ has joined the channel [08:50] slickplaid: chjj: https://gist.github.com/1004131 [08:50] k1ttty has joined the channel [08:51] Xano has joined the channel [08:51] petrjanda: Hello guys, pls does anyone know how to deal with "(libev) kevent: Bad file descriptor" error on OSX, after node.js process fork()? [08:51] slickplaid: I suppose require()'ing it in both files will work fine but it kinda bugs me to see that happen. [08:52] slickplaid: I need to be able to use it in both and they don't need to be the same object so I guess that'd work. [08:52] slickplaid: Just that all the configuration would have to be repeated and that seems kinda repetitive. [08:52] jonaslund has joined the channel [08:53] adnam: slickplaid: if you require twice the module is not loaded into memory twice afaik [08:53] adnam: but if you want to add settings to it, make your own module and require that instead [08:54] slickplaid: Not really worried about the memory usage. It's the duplication of the configuration for that require()'d module that is the issue. [08:54] slickplaid: Yeah, that might be the best option. Just pass the object back to the main script [08:55] slickplaid: Somewhat annoying to have the direction of information only working one way though unless I'm missing something. [08:55] adnam: hmm, what do you mean? [08:55] slickplaid: But, I suppose there is a very good reason for it. :D [08:56] slickplaid: module.exports is one way, only to the calling script... unless there's something big I'm missing to do the reverse. [08:56] adnam: and no, modules are not loaded twice, just confirmed, makes sense because of potential side effects [08:57] stonebranch has joined the channel [08:57] slickplaid: I suppose I could module.exports = function(data){ return newObjectWithData; } like chjj had said earlier. [08:57] adnam: slickplaid: file a and b needs to use your settings in file c, make c export itself, and a and b both require them [08:57] jbpros has joined the channel [08:58] adnam: that works [08:58] slickplaid: I suppose I could abuse the event system to .on('updateScript', data) and use that to work back and forth in the event loop :D [08:59] adnam: T_T [08:59] ph^ has joined the channel [09:02] AvianFlu has joined the channel [09:02] sveimac has joined the channel [09:03] neaf: slickplaid: fact worth nothing is that when you do module.exports = new ModuleClass(); when you require it in two files, you get the same instance. [09:03] neaf: noting* [09:03] slickplaid: Interesting... thanks neaf :) [09:04] harsu has joined the channel [09:04] neaf: slickplaid, so when you build your modules to be fairy independent and want to share some data I think this is the way to go. [09:05] torgeir has joined the channel [09:06] Rodtusker has joined the channel [09:06] blup has joined the channel [09:06] slickplaid: Yeah, I'm completely splitting up the require() for each module and configuring them there and passing the configuration and configured object back to the main script to be used. Works best in my head that way, I think. [09:06] neaf: slickplaid, I've got my socket connection manager, which stores my connections, ties them to a game objects and does some other things, i need the connections in my SocketMessageHandler, and GameManager so I require the ConnectionManager in those 2 [09:07] jbpros has joined the channel [09:08] slickplaid: Nice. Yeah I think I'll split it up and require() them separately for user registration/login/passhash/etc and then just pass all the objects back to the main script so they can be used and/or edited and remade if needed. [09:08] slickplaid: module.exports = { mail: configuredNodemailer, db: configuredRedisObject, redis: rawRedisObject, etc: [09:09] __doc__ has joined the channel [09:10] neaf: slickplaid, hmm, if you want your main script to be 'requireable'. [09:10] neaf: my main.js 'splits' to ExpressApp and Socket, and then I require db separately in those two and so on. [09:12] neaf: This way I can require and run every module outside my 'main' as those never refer to main object, always require what they need. [09:18] riven has joined the channel [09:18] riven has joined the channel [09:20] thalll has joined the channel [09:24] steffkes has joined the channel [09:28] Renegade001 has joined the channel [09:30] zendfan has joined the channel [09:32] sebbie has joined the channel [09:33] TheJH has joined the channel [09:33] blankly has joined the channel [09:38] TheJH: what's the best way to do this? I have a huge xml file (a few GB) and want to process every element of a certain type in it (those elements are all direct children of the root object). I would like to be able to access the children of the element I'm currently looking at. [09:41] AAA_awright: DOM is going to fail you [09:42] TheJH: I was thinking about using node-xml or sax-js [09:42] TheJH: but I'd like to have the child elements collected automatically for me [09:42] TheJH: if that doesn't exist yet, I guess I'm going to write a module for it [09:43] ryankirkman has joined the channel [09:44] ewdafa has joined the channel [09:44] ewdafa has joined the channel [09:47] Country has joined the channel [09:51] pdelgallego has joined the channel [09:52] riven has joined the channel [09:52] riven has joined the channel [09:56] gozala has joined the channel [09:59] TheJH: gonna write it. [09:59] sveimac_ has joined the channel [10:04] pigmej: hmm [10:04] pigmej: router will be removed from newest connect? [10:04] pigmej: or am I wrong? [10:07] riven has joined the channel [10:07] riven has joined the channel [10:07] TomY_ has joined the channel [10:08] incon has joined the channel [10:08] FireFly has joined the channel [10:09] tanepiper: pigmej: from what i read yes, it's moving to express [10:12] flubba has joined the channel [10:14] pigmej: hmm [10:14] pigmej: so there will be no 'lightweight router for node....' [10:14] pigmej: sucky ;/ [10:15] pigmej: because I suppose that escort will not work also then? [10:16] torgeir_ has joined the channel [10:16] riven has joined the channel [10:17] tdegrunt has joined the channel [10:22] blup has joined the channel [10:31] davidcoallier has joined the channel [10:32] blup has joined the channel [10:34] herbySk has joined the channel [10:37] thalll has joined the channel [10:38] mgkimsal has joined the channel [10:39] thalll_ has joined the channel [10:39] ryankirkman has joined the channel [10:41] adrianmg has joined the channel [10:42] okuryu has joined the channel [10:42] thalll has joined the channel [10:45] hellp has joined the channel [10:46] pigmej: anyone using winston? [10:49] thalll has joined the channel [10:49] zendfan has joined the channel [10:50] migimunz has joined the channel [10:50] akshatj has joined the channel [10:50] sreeix has joined the channel [10:55] jacter has joined the channel [10:58] azeroth_ has joined the channel [11:01] boehm has joined the channel [11:02] JakeyChan: is there has Chinese guy here ? [11:08] rputikar has joined the channel [11:12] razvandme has joined the channel [11:12] razvandme: hello, using the mongodb native driver, can I find an item by id? [11:12] ardcore has joined the channel [11:13] razvandme: collection.find {_id : "4de6438cab7671cf15000001" } [11:13] ardcore has left the channel [11:15] jsulak has joined the channel [11:16] aliem has joined the channel [11:16] eee_c has joined the channel [11:16] davidban_ has joined the channel [11:18] mahna has joined the channel [11:20] Twelve-60` has joined the channel [11:22] margle has joined the channel [11:23] Twelve-60 has joined the channel [11:24] TomY_ has joined the channel [11:24] hybsch has joined the channel [11:24] bkozal has joined the channel [11:25] jtrudeau has joined the channel [11:27] mc_greeny has joined the channel [11:29] weezle has joined the channel [11:30] prettyrobots has joined the channel [11:30] mobius-: how is it possible that the mongodb driver when i do a collection.findOne({'name': 'mobius'}, function(err, result) { }); in result to return two objects? [11:31] mobius-: and there is only one in the collection. [11:31] stephank has joined the channel [11:32] mahna_ has joined the channel [11:33] mobius-: ok, i am stupid... [11:33] mobius-: nevermind everyone :) [11:36] zendfan_ has joined the channel [11:38] rchavik has joined the channel [11:39] Opaque has joined the channel [11:40] christophsturm has joined the channel [11:41] Bradleymeck has joined the channel [11:41] eldar has joined the channel [11:43] sgimeno has joined the channel [11:49] __jgr has joined the channel [11:52] sreeix has joined the channel [11:52] tiagoa has joined the channel [11:54] Shrink has joined the channel [11:54] Shrink has joined the channel [11:58] TheJH: what do you think about this? look at test.coffee for an example https://github.com/thejh/node-halfstreamxml [11:58] sebbie has joined the channel [11:59] heavysixer has joined the channel [12:00] GriffenJBS has left the channel [12:00] mahna has joined the channel [12:01] no has joined the channel [12:03] kriszyp has joined the channel [12:03] jsulak has joined the channel [12:03] temp01 has joined the channel [12:05] TomY has joined the channel [12:06] _jgr has joined the channel [12:07] Charuru has joined the channel [12:09] Yoric has joined the channel [12:09] flubba has joined the channel [12:11] thoolihan has joined the channel [12:13] ph^ has joined the channel [12:14] FireFly has joined the channel [12:14] razvandme has left the channel [12:16] aliem has joined the channel [12:17] stepheneb has joined the channel [12:18] sharkbone has joined the channel [12:19] broofa has joined the channel [12:23] lukstr: delicious coffee [12:24] flubba has joined the channel [12:27] samyak has joined the channel [12:28] ExsysTech has joined the channel [12:29] eee_c has joined the channel [12:32] brolin has joined the channel [12:33] weezle has joined the channel [12:34] Poetro has joined the channel [12:34] Poetro has joined the channel [12:34] user__ has joined the channel [12:37] devdazed has joined the channel [12:37] user__: hello, i could need some help with jade template engine, is there a way to expand a tag attribut over multiple lines? [12:37] aheckmann has joined the channel [12:39] daglees has joined the channel [12:40] Cheery has joined the channel [12:42] Cheery: once I've done a daemon with that module in npm. is there some way I could communicate with my daemon? [12:43] Cheery: well 'kill' is one very crude way to do it.. :) [12:45] Wizek has joined the channel [12:46] rauchg has joined the channel [12:46] Wizek: Hi there! I've installed a package with npm, which inside says `require('npm'), and hence cannot run not finding that package. What may it look for? [12:47] _jdalton has joined the channel [12:47] jtsnow has joined the channel [12:47] timmywil has joined the channel [12:47] bshumate has joined the channel [12:48] jakehow has joined the channel [12:48] unomi has joined the channel [12:49] kelvin has joined the channel [12:51] JoshC1 has joined the channel [12:51] Shrink has joined the channel [12:51] Shrink has joined the channel [12:51] ezl- has joined the channel [12:52] sledge has joined the channel [12:52] arpegius has joined the channel [12:52] Shrink has joined the channel [12:52] Shrink has joined the channel [12:52] lukstr: user__: what do you mean? have attributes for a tag over multiple lines? [12:53] weezle has joined the channel [12:53] TheJH: Cheery, what about unix sockets? [12:53] TheJH: Cheery, see http://nodejs.org/docs/v0.4.8/api/dgram.html [12:53] user__: i whant to asigne a value for an attribute like meta(content='... \n ... \n') over muliple lines [12:54] TheJH: Wizek, which module is it? [12:54] lukstr: user__: yes it looks like escaping the newline works [12:54] Wizek: TheJH, browser-require [12:55] zivester has joined the channel [12:56] user__: but i don't want to escape the string because it's hard to read. i want to split the assignment. [12:57] lukstr: you could do it in a javascript block [12:57] TheJH: Wizek, well, 'require("npm")' works for me, but maybe it's just because of my ancient npm version (0.2.16). Which one are you using? [12:57] kelvin: or javascript array and then join it [12:57] jomoho has joined the channel [12:58] lukstr: but to be honest I don't see anything wrong with a \ at the end of the line, it's pretty standard practice [12:58] Wizek: TheJH, 1.0.6 [12:58] lukstr: (in other languages, at least) [12:58] adrianmg has joined the channel [12:59] davidsklar has joined the channel [13:00] xandrews has joined the channel [13:00] TheJH: Wizek, well, many things changed in 1.0.0, so I don't know whether it's because of that recent npm version [13:01] AaronMT has joined the channel [13:02] user__: @lukstr thx, the \ works just fine [13:03] lukstr: user__ no problem [13:03] ianward has joined the channel [13:05] niles|iPod has joined the channel [13:05] lukstr: I lol'd @ the douche module: A SOAP client based off savon [13:06] justinTNT has joined the channel [13:08] markwubben has joined the channel [13:09] random123 has joined the channel [13:10] random123: What OS do you guys develop on? I am thinking of switcing to Linux but I am wondering if its any better besides not having to run Node.js in a VM? [13:10] random123: Are there really any advantages? [13:11] davidban_: I use OS X because I need photoshop and excel, but I'd prefer to switch back to Linux. [13:11] secoif has joined the channel [13:11] davidban_: It makes interacting with remote unix servers simpler, and running things in a VM sounds like a pain in the bum. [13:12] jetienne: i look for source code, examples or documentation on mongoose promises, any hint ? [13:12] drudge: express-mongoose - check that out [13:12] random123: I tried getting a Mac before but I don't like having to use their expensive hardware they force you to buy [13:13] lukstr: random123: I mostly do all my development in a terminal, so I like linux [13:13] drudge: i use Mac and love it ;) [13:13] lukstr: random123: I thought you could install it on some regular PCs [13:13] davidban_: random123: Yeah it's not ideal, but it's a price I was willing to pay for a unix-ish system that still had mainstream application support. Also their expensive hardware is pretty. [13:13] random123: It is pretty but over priced [13:14] davidban_: Yep, I agree with you. [13:15] lukstr: random123: if you have any old hardware sitting around, through a linux server distro on it [13:15] Vertice has joined the channel [13:15] miccolis has joined the channel [13:15] random123: If they would just unlock their OS I would def switch [13:17] davidban_: I am starting to wonder whether I'll need to develop in a VM, though. NPM seems to have completely freaked out on me. Even completely eradicating every single npm file then reinstalling hasn't helped. [13:17] random123: I have used Linux quite a bit, people make Windows feel dirty now all within communities when I think OS X is even less free [13:18] lukstr: davidban_: what version? [13:18] davidban_: lukstr: 1.0.8 [13:19] mape: random123: don't think the dirtyness is comes from freedom, just from using it [13:19] lukstr: random123: I prefer Windows over OS X and a good linux distro over both :) [13:19] lukstr: davidban_: what's happening? [13:19] davidban_: No matter how much I clean the cache, it seems to have a cached version of Winston somewhere that it installs from. It won't build it fresh, and the first time it tried to build it it failed. [13:19] thomblake has joined the channel [13:20] Wizek: Is there a way I can make browser-require suitable for development by disabling cache or enabling file watching? [13:20] random123: Well, I'm going to try to develop on Fedora LXDE and hopefully won't have to boot into Windows for any Flash dev [13:20] lukstr: davidban_: what does npm ls return? [13:21] davidban_: lukstr: npm cache ls? [13:22] davidban_: lukstr: It returns a whole heap of stuff, then nothing once I clean it, but it still doesn't build the package fresh. [13:22] gaius65 has joined the channel [13:23] catshirt has joined the channel [13:24] gaius65: I'm trying to install nodejs on my mac, when I execute: ./configure --prefix=$HOME/local/node [13:24] davidban_: lukstr: http://pastebin.com/3J0gUA8q [13:24] lukstr: did you try nuking .npm? davidban_ [13:24] gaius65: I get an error: Checking for program g++ or c++ : not found [13:24] pigmej: hmm [13:24] pigmej: guys... [13:24] davidban_: lukstr: Yep. Even nuked everything that popped up in "locate npm". Failed. [13:24] pigmej: there is bug [13:24] pigmej: in HTTP DELETE [13:24] pigmej: method... [13:24] pigmej: lukstr: all problems went gone [13:24] pigmej: when I changed DELETE to GET [13:24] pigmej: OR removed keep-alive from DELETE [13:25] pigmej: keep-alive in delete method is not working at all [13:25] hassox has joined the channel [13:25] pigmej: (for me at least) [13:25] Bradleymeck has joined the channel [13:25] lukstr: pigmej: isn't that the server's problem? [13:25] blup has joined the channel [13:25] pigmej: lukstr: node is closing always [13:26] pigmej: the connection [13:26] davidban_: gaius65: My guess would be you haven't installed the Apple Developer Tools. http://developer.apple.com/ [13:26] pigmej: when using DELETE method... [13:26] pigmej: at least for me... [13:26] sreeix has joined the channel [13:26] sivy has joined the channel [13:26] gaius65: davidban_: oh, that's an requirement :-/ [13:26] pigmej: and it generally happens with more than one server.. [13:26] gaius65: :-/ [13:26] gaius65: :-/ [13:26] gaius65: :-/ [13:26] gaius65: :-/ [13:27] gaius65: :-/ [13:27] gaius65: -/ [13:27] gaius65: o-/ [13:27] gaius65: y-/ [13:27] gaius65: -/ [13:27] gaius65: to-/ [13:27] gaius65: is an r-/ [13:27] gaius65: ue-/ [13:27] gaius65: -/ [13:27] gaius65: what was that? [13:27] mape: gaius65: It is called the internet [13:27] adelgado: weiner hack? [13:28] davidban_: gaius65: So nuking .npm is what's screwed me up? I've reinstalled from scratch since then. Is there a way to recover from it? [13:28] gaius65: mape: no, my irc client seems to have send about 10 msg, which wasn't what I typed [13:28] TheJH: gaius: maybe you can send emoticons by holding some key and pressing letters? [13:28] jamey-uk has joined the channel [13:29] lukstr: what is happening... brb standup [13:29] gaius65: davidban_: what do you mean? I don't get it, sry [13:29] Twelve-60` has joined the channel [13:30] davidban_: gaius65: Sorry, it's quite late in my timezone. Got confused between two conversations. [13:30] timmywil has joined the channel [13:30] flubba has joined the channel [13:30] Swizec has joined the channel [13:31] gaius65: So is there a requirement for the dev tools, or can I get it running some way else [13:32] tcurdt has joined the channel [13:32] davidban_: gaius65: The tools are free, all you need to do is download them. This is the specific link you're after. [13:32] davidban_: http://developer.apple.com/technologies/tools/whats-new.html [13:33] davidban_: If you'd really prefer not to, there's a Mac installation package linked from the nodejs site that doesn't need to be built. [13:33] jamey-uk: I'm trying to use this module for the first time https://github.com/nodejitsu/node-cloudfiles. I can connect (first sample) but get an odd error when I try to create a container: http://pastebin.com/kB2XWNnX [13:33] davidban_: gaius65: https://sites.google.com/site/nodejsmacosx/ [13:36] rpj8 has joined the channel [13:37] rfay has joined the channel [13:37] avalanche123 has joined the channel [13:39] rpj8: If I'm trying to avoid blocking, how could I re-write this: http://jsfiddle.net/HJKnY/ [13:40] rpj8: i know it has something to do with for(var i=0; i data (just a few inputs)? [14:23] nibblebot has joined the channel [14:23] mattstevens has joined the channel [14:24] kraftwer1 has joined the channel [14:24] jtrally has joined the channel [14:24] catshirt has joined the channel [14:24] Nic_ has joined the channel [14:25] jslatts has joined the channel [14:25] kraftwer1: OSX node-waf configure build: ImportError: No module named js2c - any idea? [14:25] catshirt has joined the channel [14:25] pzich_ has joined the channel [14:25] yhahn has joined the channel [14:26] lukstr: Cheery, __doc__ : google is your friend :) [14:26] davidban_: lukstr: No good. http://pastebin.com/Rfq6kzGk [14:26] vipaca has joined the channel [14:26] lukstr: petrjanda: what exactly is going wrong? [14:26] geisbruch has joined the channel [14:26] lukstr: davidban_: lol wut [14:26] Cheery: lukstr: I've googled it for few minutes now. :P [14:26] __doc__: lukstr: I just did and I only find various hacks manually operating the socket, reading from it, parsing the data, and throwing in modules like "multipart" which apparently hasn't been updated in 2 years... [14:27] bfuster has joined the channel [14:27] geisbruch: hi everybody, i have a big problem, in ubuntu in my pc I can do as http.request as I like, but in redhat, I only can do 10 req/s, do you know why? [14:27] __doc__: lukstr: 3 years old hack http://debuggable.com/posts/parsing-a-form-in-node-js-1:4b0bff13-4244-4ebc-8455-4975cbdd56cb [14:28] niles|iPod has joined the channel [14:28] __doc__: lukstr: 1 year old hack http://www.toxiccoma.com/random/nodejs-0195-http-post-handling-of-form-data [14:28] petrjanda: lukstr: well problem is only on OSX, if there is not the ev_default_fork() call, then I get Getting (libev) kevent: Bad file descriptor. If i put the call there (which is also recommended in libev docs), then something else got wrong. Perhaps the reinit call corrupted some event watchers or so [14:28] __doc__: lukstr: nothing in the documentation http://nodejs.org/docs/v0.4.8/api/ [14:29] LowValueTarget has joined the channel [14:29] pzich_ has joined the channel [14:29] geisbruch: do you know if are there same lmit in concurrent http.request that i can do simultaniously? [14:29] lukstr: __doc__: are you using express or connect or something? [14:29] __doc__: lukstr: nope [14:29] lukstr: __doc__: why not? :P [14:29] kelvin: interesting article about http post [14:29] trotter has joined the channel [14:29] __doc__: lukstr: because I like to do stuff without any framework [14:30] davidban_: lukstr: I can't make any sense of it at all. Thanks heaps for all your help, but it's late here in GMT+10 need to hit the hay. I'll keep plugging away at it tomorrow. [14:30] lukstr: __doc__: look at how they do it then, and connect-forms [14:30] lukstr: davidban_: I will bug isaacs when he shows up [14:30] Cheery: __doc__: does this help? https://github.com/felixge/node-formidable [14:30] davidban_: lukstr: Thanks mate, much appreciated. [14:30] Cheery: I nosed up on that while ago then. [14:31] lukstr: davidban_: no problem [14:31] geisbruch has left the channel [14:31] __doc__: Cheery: I guess, I'm just kinda surprised that a server framework *does still* not automatically handle parsing a bunch of content mimes and providing the data on the request object... [14:31] geisbruch has joined the channel [14:31] __doc__: Cheery: it's the first time everytime and each time I write a server in whatever language [14:31] __doc__: add that [14:31] lukstr: __doc__: you just said you weren't using a framework? [14:31] __doc__: lukstr: node.js qualifies as server framework for me [14:32] Cheery: http. -thing is a sort of server framework in node.js :) [14:32] __doc__: lukstr: as in I don't have to manually operate sockets and select :) [14:32] lukstr: __doc__: but you expect it to know what a form is? [14:32] __doc__: lukstr: form-data, yes. I always add that when I write async servers. [14:33] __doc__: lukstr: usually throw in a parser for multipart messages, json and base64 octett binary data [14:34] stride: aren't there a gazillion modules on npm that handle multipart decoding and mime stuff? [14:34] lukstr: __doc__: I think that is exactly what all the form modules were created for [14:34] lukstr: stride: yes :P [14:34] __doc__: lukstr: apparently [14:34] devdazed has joined the channel [14:36] chadsmith has joined the channel [14:36] JJMalina has joined the channel [14:38] lukstr: __doc__: implementing HTTP doesn't include handling misc. MIME types, node.js is not specifically designed to be used as a webserver [14:39] drudge: __doc__: are you using express? [14:39] sub_pop has joined the channel [14:40] __doc__: drudge: 2. no [14:41] drudge: there is your web framework ;) [14:41] drudge: __doc__: express + connect-form (which uses node-formidable) gives you req.form [14:43] __doc__: drudge: don't want to use the framework [14:43] __doc__: ACTION (¬_¬) [14:43] NetRoY has joined the channel [14:43] lukstr: __doc__: but you want form support built in? [14:43] niftylettuce has joined the channel [14:44] pamorf has joined the channel [14:44] __doc__: nm, it's hacked done [14:45] __doc__: consider that *if* you're writing a http server that it *may* as well just parse content of known mime-type instead of making everybody jump trough the hoops of writing a bunch of lines to make it happen [14:45] Wizek has joined the channel [14:45] jtrally: __doc__: Every time I've wanted to do something in node related to web apps, I've found express already did it. [14:45] pixel13 has joined the channel [14:45] __doc__: after all, multipart messages are just another RFC like, say http [14:45] lukstr: __doc__: yes but node.js is not an http server [14:45] lukstr: it can be [14:45] jtrally: it can also be a udp server [14:46] __doc__: lukstr: node.js http is a http server [14:46] drudge: or an irc server [14:46] cjm_ has joined the channel [14:46] itissid has joined the channel [14:46] cjm_: is JSON.stringify() -> eval("(" + data + ")") the best way to send objects back and fourth over a socket? [14:47] lukstr: __doc__: "In order to support the full spectrum of possible HTTP applications, Node's HTTP API is very low-level. It deals with stream handling and message parsing only." [14:47] madsleejensen has joined the channel [14:47] __doc__: lukstr: http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7.2 --> "MIME provides for a number of "multipart" types -- encapsulations of one or more entities within a single message-body. All multipart types share a common syntax, as defined in section 5.1.1 of RFC 2046" --> http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.1.1 [14:47] pixel13 has left the channel [14:48] lukstr: __doc__: I am aware of the rfc [14:48] mikegerwitz: cjm_: eval is never a good solution. From the context of your message, I assume you're workgin with JSON. Why not use JSON.parse? [14:48] __doc__: lukstr: oh good [14:49] cjm_: do I need json2.js on the client to use JSON.parse? [14:49] mikegerwitz: cjm_: For older browsers, yes [14:50] cjm_: ok, sounds good, are there better options not using JSON?/ [14:50] ddollar: is it possible to declare git or tarball-based dependencies in a package.json ? [14:51] mikegerwitz: cjm_: JSON is meant for serializing data, whichi t seems you're doing. So JSON is your best bet. [14:51] cjm_: ok, thanks very much mike [14:52] mikegerwitz: cjm_: np [14:52] samsonjs has joined the channel [14:52] lukstr: __doc__: I still the node.js http is complete, insofar that it supports http [14:52] unomi has joined the channel [14:53] mikegerwitz: ddollar: `npm help json` [14:53] davidban_: lukstr: Brainwave after cleaning my teeth! If I remove winston from the local node_modules folder in my project and install it with the -g flag it works. I'm guessing it was a difference in the way it's built between Linux and OSX. Obvious in hindsight but I hadn't run into it before with other modules. [14:53] mikegerwitz: ddollar: (yes, see "dependencies" section) [14:53] ddollar: mikegerwitz: thanks [14:53] leonh has joined the channel [14:53] lukstr: davidban_: wuah [14:54] lukstr: davidban_: you still shouldn't have to do that... [14:54] sandropadin has joined the channel [14:54] __doc__: lukstr: socket.send('200 OK HTTP/1.1\nContent-Type: text/plain\n\nReally?') is also complete http 1.1 by my reckoning. Why do you even got request/response objects? [14:54] lukstr: davidban_: perhaps it is a package issue [14:54] davidban_: lukstr: True, but it runs! [14:55] davidban_: lukstr: It could be. The issue is with the mongodb driver. [14:55] davidban_: lukstr: It's a dep of Winston. [14:55] lukstr: davidban_: interesting [14:56] davidban_: lukstr: I'm guessing that OSX didn't like the binary I compiled on a Linux machine, but when I reinstalled it on OSX it wasn't overwriting that binary. [14:57] baoist has joined the channel [14:57] niles|iPod has joined the channel [14:57] lukstr: davidban_: the package.json doesn't run make, maybe that's the issue? [14:58] eldios has joined the channel [14:58] lukstr: __doc__: okay so if you were to wrap the socket library to handle http, you'd include MIME types in there? [14:58] davidban_: lukstr: Yeah that sounds plausible. TBH I'm not familiar enough with the innarts of npm to make a judgement. [14:59] davidban_: lukstr: Actually logging off now or I'll get nothing done tomorrow. Thanks again for your help. If you want me to test anything to produce a proper bug report, you can grab me at david@oiminc.com.au [14:59] __doc__: lukstr: if I where to wrap the socket library to parse http I'd add commonly used features such as header parsing, header setting, mime parsing, content-type/encoding matching, cookie parsing and such. [14:59] __doc__: lukstr: in fact that's just what I do usually [14:59] stride: __doc__: that's what express is for [15:00] beawesomeinstead has joined the channel [15:00] beawesomeinstead has joined the channel [15:00] simenbrekken has joined the channel [15:00] cafesofie has joined the channel [15:00] __doc__: stride: every webframework/webhandling whatever implements this everytime again, that the core idea? [15:01] themiddleman_itv has joined the channel [15:01] jamescarr__ has joined the channel [15:01] neaf: cjm_: If you use socket.io you don't have to stringify the data [15:01] drudge: no, you use the modules you need [15:01] __doc__: stride: for instance in the python stdlib (before they cleaned it up) there where like 4 different implementations of RFC2616... [15:01] blup has joined the channel [15:01] cjm_: oh really neaf? from either side? [15:01] __doc__: stride: each with its particular bugs [15:01] Rodtusker has joined the channel [15:01] neaf: cjm_: Yup [15:02] neaf: You can even send an array of json objects [15:02] stride: seriously? you care about fragmentation? node has breaking api changes almost every 0.x release.. [15:03] cjm_: oh awesome [15:03] materialdesigner has joined the channel [15:03] __doc__: stride: I care about fragmentation yeah. it helps squishing bugs once instead of wading in endless regressions. [15:04] sonnym has joined the channel [15:04] lukstr: __doc__: in my opinion, http isn't even something that belongs in core [15:05] Rodtusker has joined the channel [15:06] __doc__: ACTION  [15:06] stride: what regressions? even with multiple implementations node is pretty quick at deciding on stacks for how things should be done (as seen with connect, express, ...) [15:06] caolanm has joined the channel [15:06] dipser has joined the channel [15:06] cjm_: @ neaf: I still need the parse the data tho, right? [15:06] stride: for body parsing, formidable still seems to be the de facto standard [15:07] gsmcwhirter has joined the channel [15:07] jakehow has joined the channel [15:07] stride: if you want a monolithic monster use .Net or something.. :> [15:07] stride: ACTION ducks [15:07] briznad has joined the channel [15:07] Rodtusker has joined the channel [15:08] neaf: cjm_: nope, you can do client.send([ { a: "foo", b: [ "bar", "baz" ] }, { c: "hello world" } ]) and this is exactly what you'll get in io.on('message', function(data) {} ) [15:08] Nic- has joined the channel [15:08] lukstr: ACTION hands stride some Java [15:08] Corren has joined the channel [15:08] masm has joined the channel [15:08] TomY has joined the channel [15:09] niles|iPod has joined the channel [15:09] neaf: cjm_, the only gotcha I found is that if you pass one element in 'root' array, I'll strip the array, so you have to make sure, data = _.isArray(data) ? data : [data]; [15:09] TheJH: would you consider it to be mean to put node in a long chain of commands in the shell? "cat dewiki-20110601-pages-articles.xml.bz2 | bunzip2 | coffee printwords.coffee | sort -u | bzip2 > wordlist.bz2" [15:09] lukstr: TheJH: no [15:10] lukstr: TheJH: would you consider it to be mean to put python in a long chain of commands in the shell? : [15:10] lukstr: :P damnit, [15:10] gf3: neaf: Array.isArray is in node [15:11] Rodtusker has joined the channel [15:11] neaf: gf3, thanks [15:11] TheJH: humm, by the way, is there some way to read/write bzip2-compressed stuff and something as good as the "sort" command in node? [15:11] cjm_: hrrm, yea i was sending an array and it was coming out fragmented on the client [15:11] snooks has joined the channel [15:12] mikegerwitz: TheJH: I would consider it mean to deny a budding script the chance to aspire to such expectations. [15:12] masm: I'm trying to update npm to version 1.0.8 from 0.3.18. I have it installed in my home directory. When I run make install it tries to install in /usr. What should I do to install it in the same location as the old version? [15:12] TheJH: masm: that would be a downgrade [15:12] arpegius has joined the channel [15:12] TheJH: oops, never mind [15:12] TheJH: read it in the wrong direction [15:13] mikegerwitz: TheJH: If you are using node in that manner, you may as well use the tools that are available to you. The UNIX philosophy is to make a tool that does one thing and does it well [15:14] TomY has joined the channel [15:15] bfuster has left the channel [15:15] lukstr: masm: it's recommended to install npm as root [15:16] drudge: it is? [15:17] niles|iPod has joined the channel [15:17] TheJH: I still have an old npm version that loves to say: "npm ERR! sudon't! Running npm as root is not recommended!" [15:17] lukstr: drudge: er, no [15:17] lukstr: TheJH: that changed [15:18] Corren: how can I inspect the server name from a node.js script? [15:18] RORgasm has joined the channel [15:18] TheJH: Corren, I'd read "/etc/hostname" [15:18] lukstr: masm: you should be able to specify a prefix for the install [15:18] Corren: so, no builtin in api [15:18] mape: Corren: require('os').hostname() [15:18] ddollar: i'm getting an error like https://gist.github.com/081ac28596ceeb52454a from npm, is there any way to get the output of the failure? [15:18] Corren: is os an npm module? [15:18] mape: no core [15:18] Corren: or is it there by default [15:19] snearch has joined the channel [15:19] TheJH: Corren, just saw it, too, it belongs to the core API [15:19] TheJH: Corren, it's there by default [15:20] Corren: i see, looking [15:20] lukstr: drudge: I need more coffee. You either install with permissions (root) or use a prefix to put it somewhere you can [15:21] softdrink has joined the channel [15:21] cincinnatus has joined the channel [15:21] lukstr: masm, drudge: by default the installer expects root-esque permissions, afaik [15:21] gf3: eh [15:21] drudge: lukstr: yeah, i just wouldn't say it's recommended to install as root [15:21] gf3: you just need to own the right things [15:22] TomY has joined the channel [15:22] lukstr: gf3: "root-esque" [15:22] drudge: lukstr: recommended would be chown /usr/local :) [15:22] lukstr: drudge: D: [15:22] gf3: :D [15:22] gf3: if you use homebrew, you've already done this [15:22] lukstr: gf3: ? [15:23] gf3: chown'd /usr/local [15:23] lukstr: why [15:23] Swizec has joined the channel [15:23] gf3: because [15:23] stepheneb has joined the channel [15:23] masm: Has the configuration file changed? I have ~/.npmrc with the root = ... etc. lines but it is being ignored, it seems. [15:23] lukstr: gf3: I'm not following, you shouldn't chown /usr/local [15:24] cjm_: Are there any good resource about "watching" objects in node.js? [15:24] gf3: lukstr: sure you should [15:24] Corren: anyone here able to assist on an express question [15:24] lukstr: gf3: and why is that [15:24] drudge: Corren: sure, plenty [15:24] gf3: lukstr: because it's convenient [15:24] lukstr: gf3: that's dumb [15:24] cjm_: backbone.js on the server perhaps for object watching? [15:24] gf3: no way [15:25] lukstr: gf3: chown / then [15:25] TheJH: cjm_: look at the rpc modules [15:25] jetienne has joined the channel [15:25] gf3: it's already in the $PATH, many software packages expect things to be there, and it's relatively safe [15:25] Corren: ok, so we have a root "app" express module that does all the configures, and then (where app is express.createServer) does lots of app.post/put/get/etc [15:25] Corren: what I'm unsure of is how to set a response header for every request [15:25] lukstr: gf3: I have never remotely needed to chown /usr/local, convenience or otherwise [15:25] Corren: without having to wire it into every method that I bind [15:25] yhahn has left the channel [15:26] edgarallanpoe has joined the channel [15:26] gf3: lukstr: I guess you're a computer god then [15:26] lukstr: gf3: I just don't understand what convenience you are getting [15:26] gsmcwhirter: Corren, i think you can do that in a middleware [15:26] gf3: it's a huge PITA to work with ruby and gems, especially ones that require native extensions, from non-standard locations [15:26] cjm_: ok, thankt TheJH [15:26] cjm_: thanks* [15:26] lukstr: lol ruby [15:26] gf3: and it's already in your $PATH [15:27] gf3: and it's safe [15:27] gf3: what are the downsides? [15:27] BillyBreen has joined the channel [15:27] sirkitree has joined the channel [15:27] kraftwer1: OSX node-waf configure build: ImportError: No module named js2c - any idea? [15:27] lukstr: gf3: security? sanity? [15:27] Corren: gsmcwhirter: I think you might be right! [15:27] Corren: thanks for the pointer [15:27] TheJH: cjm_, look at this (nowJS, an rpc module uses it): https://github.com/samshull/node-proxy [15:28] gf3: lukstr: go on [15:28] gsmcwhirter: Corren, something like https://gist.github.com/1004640, inserting that function as a middleware w/ app.use in the appropriate place [15:28] tjholowaychuk has joined the channel [15:28] Corren: that's exactly what I'm looking at [15:28] lukstr: if ruby and gems require dumb things, good for them. Still a pretty poor excuse to open yourself up for malicious activity [15:28] harth has joined the channel [15:29] gf3: lukstr: I've never had an problems [15:29] cjm_: thanks TheJH [15:29] gf3: less configuration++ [15:30] drudge: it all depends on your environment [15:30] lukstr: gf3: that's a poor argument, that's like running as root and saying you've never had any problems. Sure, but it's still generally bad practice [15:30] pzich_ has joined the channel [15:31] Corren: right, so long as it's my first method in my middleware block, it'll get handled on every request [15:31] Corren: perfect, ty [15:31] gf3: lukstr: it is not bad practice, it is recommended by several prominent software packages [15:31] lukstr: gf3: name them? [15:31] MikhX has joined the channel [15:31] gf3: Homebrew for one, THE "package manager" for OS X [15:31] |RicharD| has joined the channel [15:31] |RicharD|: hi yo all [15:31] mscdex: hiyo [15:31] systemfault: gf3: It's not macport anymore? [15:32] gf3: systemfault: no [15:32] |RicharD|: anyone use node.js with cakephp ? [15:32] systemfault: (I'm a bit outdated on OSX package managers) [15:32] gf3: systemfault: http://mxcl.github.com/homebrew/ [15:33] lukstr: gf3: that's strange, I've never seen any other package manager ever recommend anything remotely similar. Also I've never heard of Homebrew ( I don't use OS X ). Wouldn't exactly call that a wide-spread practice [15:33] easternbloc: guys [15:33] NetRoY has left the channel [15:33] mscdex: |RicharD|: what are you looking to do? [15:33] easternbloc: I've gotten to a point in my code where I think I need dependency injection to properly test it [15:33] |RicharD|: i want know how i can use node.js for do some things [15:34] |RicharD|: in my web app based on cakephp [15:34] |RicharD|: i'm new [15:34] mscdex: |RicharD|: ok, like what? [15:34] gf3: lukstr: well my sanity is still intact, and I haven't experience any security issues [15:34] easternbloc: how are people doing dependency injection [15:34] pandeiro has joined the channel [15:34] easternbloc: and if not what are you doing instead? [15:34] gf3: lukstr: so for the moment, I will prefer the convenience over the configuration [15:34] |RicharD|: for example i want do a live player board with match [15:34] raz has left the channel [15:35] mscdex: |RicharD|: i'd take a look at socket.io for realtime stuff [15:35] lukstr: gf3: that's great, but please don't go around recommending people do insecure things... [15:35] chadsmith has left the channel [15:35] gf3: oh please [15:35] gf3: it's fine [15:35] lukstr: no, it's not [15:35] jtsnow has joined the channel [15:35] |RicharD|: oki thx [15:36] stride: sudo npm install readmailreallyfast [15:36] easternbloc: are people using something like node-gently? [15:36] mscdex: stride: that module doesn't exist! do it. [15:36] yhahn has joined the channel [15:37] stride: can't do it, no serious work on official holidays. :> [15:37] |RicharD|: anyone here use node.js also for frontend ? [15:37] Corren: negative, nginx [15:37] mscdex: |RicharD|: node.js is a backend thing [15:37] mscdex: :S [15:38] uchuff: front end js, no node required [15:38] |RicharD|: yes but [15:38] uchuff: no but [15:38] |RicharD|: i read about [15:38] mscdex: |RicharD|: you can do rpc with dnode though [15:38] |RicharD|: about http://geddyjs.org/ for example [15:39] stagas: you can have require and some node stuff in the browser [15:39] mscdex: |RicharD|: oh, you mean replacing apache ? [15:39] easternbloc: is anyone in here mocking their requires? [15:39] easternbloc: :( [15:39] tauren has joined the channel [15:39] |RicharD|: no i mean a webframework in js [15:39] philtor has joined the channel [15:39] drudge: |RicharD|: expressjs.org is pretty popular [15:39] lukstr: gf3: it appears you are correct in that it is safe, but SOLELY on OS X as it's not used for much else. A lot of other OSs use /usr/local so I would avoid recommending that [15:40] drudge: er http://expressjs.com/ [15:40] gsmcwhirter: easternbloc, I am confused about what you are trying to do. That being said, I am far from an expert, so it may be a valid question that I just don't know the context for. [15:40] gf3: lukstr: sure, and if you're setting up a server, it's a totally different story as well [15:40] mscdex: yeah you could use expressjs and if you need sql orm there's modules like sequelize [15:40] Poetro has joined the channel [15:40] easternbloc: gsmcwhirter: I have a piece of code that requires say, several other modules [15:40] |RicharD|: umh but is better use a webframework as expressjs or better php/ror ecc... ? [15:41] gf3: lukstr: for me, as a developer, I just want to get to the coding [15:41] |RicharD|: (i want reply based on working experience) [15:41] easternbloc: but I don't want the actual functionality behind those modules to happen [15:41] easternbloc: so I need to mock them [15:41] easternbloc: but, in my tests, I have blah.test.js which imports the file I wanna test [15:41] easternbloc: problem is, by default all those modules are auto loaded [15:42] mscdex: also on a side note, fakewaffle is working on a framework that is essentially cakephp for javascript called piejs [15:42] easternbloc: so I have no opportunity to mock them [15:42] mscdex: :) [15:42] gsmcwhirter: easternbloc, ah. that is indeed something I have never run into, sorry =( [15:42] easternbloc: I sorta don't get why people arn't having that issue though [15:42] lukstr: gf3: so do I, but on most systems regardless of if they are a server or not that's a bad idea :P and your case aside, it would hardly buy you anything anyways [15:42] easternbloc: I mean to fully test a module you have to mock it's dependencies right? [15:43] timmywil has joined the channel [15:43] gsmcwhirter: easternbloc, maybe people aren't writing modules with dependencies that would need mocking? [15:44] sjbreen has joined the channel [15:44] brraaains has joined the channel [15:44] easternbloc: maybe not I guess [15:44] easternbloc: but I'd have though it was more common than not [15:44] easternbloc: https://github.com/felixge/node-gently seems to offer the ability to hijack requires... [15:45] brettgoulder has joined the channel [15:46] eyesUnclouded has joined the channel [15:46] niles|iPod has joined the channel [15:47] pandeiro: does expresso need to be compiled?? [15:47] pandeiro: or is it the jscoverage dep? [15:48] pandeiro: nm it's the latter... whew [15:48] Yuffster_work has joined the channel [15:49] EyePulp has joined the channel [15:49] gsmcwhirter: easternbloc, there is always the option to look at how gently is doing it and write something that meets your needs with that as an example [15:49] easternbloc: gsmcwhirter: aye, I just honestly thought this would be something people are doing more often [15:50] easternbloc: all I'm trying to ask I guess is, am I missing something [15:51] thalll has joined the channel [15:51] dransfim has joined the channel [15:52] neaf has joined the channel [15:52] gsmcwhirter: easternbloc, a quick google also turned up https://github.com/arunoda/nodemock [15:53] easternbloc: gsmcwhirter: yeah, that's good, but I sorta need to ability to hijack requires more [15:53] easternbloc: I want to be able to mock a require on the fly [15:54] tjholowaychuk has joined the channel [15:55] andi5 has joined the channel [15:56] hunterloftis has joined the channel [15:56] hunterloftis: Anybody know of a testing framework that outputs sexy HTML? (for the client... they love sexy HTML) [15:56] jtrally: Charge them for it then opensource it :) [15:56] Richardh has joined the channel [15:57] mape: hunterloftis: I heard powerpoint is awsome, perhaps use something like that [15:57] mape: Customers use that all the time and they seem to love it :P [15:57] hunterloftis: mape: I should say, 'automatically' outputs ;) [15:57] niles|iPod has joined the channel [15:57] mape: hehe [15:57] halfhalo: I make sexy html like this: [15:58] mscdex: i bet that doesn't work in links [15:58] ryanfitz has joined the channel [15:58] halfhalo: [15:58] Richardh: elinks maybe [15:58] mape: mscdex: you can add sexy attrs if you want, just to spice things up [15:58] patrickjst has joined the channel [15:59] mscdex: node-tpsreport.js [15:59] mscdex: ! [15:59] CoverSlide: keynote > powerpoint [15:59] CoverSlide: ! [15:59] lukstr: mscdex: I like it [16:00] mscdex: node-tpsreport also generates a cover sheet [16:00] halfhalo: sweet [16:00] halfhalo: I totally have that bluray in my computer right now as well [16:00] halfhalo: mmmm.... 36gigabits of officespace [16:01] lukstr: halfhalo: damn I don't have that in HD [16:01] isaacs has joined the channel [16:01] lukstr: I do have it somewhere to fit in 80-character wide ascii [16:01] halfhalo: I have 4 1TB drives in a raid 5 array... soon to be switched to two 1TB raid 1 arrays since the raid 5 keeps dying [16:03] hunterloftis: Looks like what I might need is vowsJS + a custom 'reporter' [16:03] eresair has joined the channel [16:03] lukstr: isaacs: A fellow was in here earlier and his npm would not build winston (no matter which version) but it would "succeed" in installing, could this be an issue with a dependency not building properly? [16:04] psi0nik has joined the channel [16:04] isaacs: lukstr: did he paste a gist of the output? [16:04] dmcquay has joined the channel [16:04] lukstr: isaacs: yeah I have it all, let me grep [16:04] niftylettuce has joined the channel [16:07] easternbloc: isaacs: maybe you can help, is there a node 'way' for dependency injection? [16:07] isaacs: easternbloc: just the normal "way" :) [16:07] easternbloc: haha [16:07] isaacs: easternbloc: fuction doSomething (fs, path) { if (!fs) fs = require("fs"); if (!path) path = require("path") ... [16:08] easternbloc: thought that might be the norm [16:08] easternbloc: I'm trying to mock requires for testing [16:09] easternbloc: I'm thinking felixge's node-gently might be the way forward then [16:09] niftylettuce has joined the channel [16:09] lukstr: isaacs: is a grep'd log with a bunch of pastebin's in it okay with you? [16:10] context: dear lord i dont want to read anything about 'calipso' for a whole year [16:10] lukstr: isaacs: http://c32.ca/davidban [16:10] isaacs: easternbloc: yeah, node-gently is definitely a more thorough approach [16:11] easternbloc: cool and thanks you have no idea how much this has been rattling my brain [16:11] pietern has joined the channel [16:12] CoverSlide: calipso would be nice if it gave you options [16:12] CoverSlide: instead of some pre-packaged bs [16:13] ibolmo has joined the channel [16:13] CoverSlide: oh [16:13] omni5cience_ has joined the channel [16:13] ibolmo: i guess outputting on process.on('exit'.. is a bad idea? [16:13] ibolmo: i've noticed that not all of the output is echoed [16:13] CoverSlide: cliftonc worked on drupal [16:13] CoverSlide: i get it now [16:13] CoverSlide: Drupal on Node!!! Yay!!! [16:14] jerrysv has joined the channel [16:14] jerrysv: good morning node.js! [16:14] CoverSlide: good morrow fair maiden [16:14] eb4890 has joined the channel [16:15] dransfim has joined the channel [16:16] estrathmeyer has joined the channel [16:17] samsonjs has joined the channel [16:18] lukstr: isaacs: I ran some sed for you http://c32.ca/davidban.html [16:18] isaacs: lukstr: no, this is fine [16:18] lukstr: :) [16:18] estrathmeyer has left the channel [16:19] gazumps has joined the channel [16:20] TooTallNate has joined the channel [16:20] dransfim has left the channel [16:20] lukstr: isaacs: what I don't get is when he installs older versions [16:20] Me1000 has joined the channel [16:21] aliem has joined the channel [16:22] isaacs: so, it looks like mongodb doesn't quite play nice with the bindist stuff. good to know, i suppose. [16:22] simenbrekken has joined the channel [16:22] hij1nx has joined the channel [16:23] mape: isaacs: I have a question about npm link, how is that suppose to work? If I do npm link I get errors about global usage being crazy town [16:23] isaacs: lukstr: for future reference and your added help as a fellow npm support tech (thanks!!!), he could have worked around the issue by specifying --no-bindist on the command. [16:23] steph021 has joined the channel [16:23] isaacs: lukstr: but i'll dig into why mongo fails in this way. it's a popular lib, and a pita to compile, so it's a good one to make work with the bindist install. [16:24] arpegius has joined the channel [16:24] lukstr: isaacs: np I figured it was mongodb once I looked through the package.json, does there need to be a "build" action? because the only one currently is for cygwin only... i.e. make it never invoked [16:24] lukstr: isaacs: can I read up on --no-bindist somewhere? [16:24] isaacs: lukstr: in npm 1.0.8, you can do `npm help bindist` and it'll search ;) [16:25] carlocci has joined the channel [16:26] mape: isaacs: "npm ERR! Error: link should never be --global." seems like a strange message for 'npm link' when it did neat things before [16:26] isaacs: lukstr: then need to probably search in your man pager, though [16:26] isaacs: mape: yeah, don't do link with -g [16:26] isaacs: mape: did you do `npm config set global true` or something? [16:26] amerine has joined the channel [16:26] mape: > npm link [16:26] mape: npm ERR! Error: link should never be --global. [16:26] mape: > npm -version [16:26] mape: 1.0.1rc7 [16:26] isaacs: mape: the reason is that link does this kinda back-and-forth thing between local and global. (also, wow, update.) [16:27] pquerna: 3rd-Eden around? [16:27] mape: isaacs: I'm even older on some systems because of the -g issue :P But I'll do the root system curl update and try [16:27] isaacs: mape: yeah, we're on 1.0.8 now :) [16:27] CoverSlide: isaacs: do you keep stats on how many times a package gets installed? like directly instead of as a dependency? [16:27] isaacs: CoverSlide: nope. [16:28] mape: isaacs: btw using npm to update npm seems to fail most of the time, npm ERR! Could not get uid/gid npm ERR! Error: Cannot find module '/usr/local/lib/node_modules/npm/bin/npm-get-uid-gid.js' [16:28] isaacs: mape: yeah, known bug. haven't fixed it yet. [16:28] mape: had some people I got into nodejs have some issues with it [16:28] mape: ok [16:28] isaacs: mape: i need to work out the timing of when it does that, so it's before it deletes itself. [16:29] chrislorenz has joined the channel [16:29] ddombrow has joined the channel [16:29] lukstr: isaacs: thanks [16:29] isaacs: mape: the issue is that you *have* to do that as a child proc, since it does a setuid [16:29] mape: isaacs: ie node core issue? [16:29] lukstr: isaacs, mape : I upgraded from 1.0.6 to 1.0.8 a few hours ago and it indeed removed itself with that error. It was funny [16:30] edgarallanpoe has joined the channel [16:30] mape: isaacs: btw what was the core reason to move to -g? Had some people I introduced to node that questioned if that was a good move. Was it more or less "good to have deps coupled to projects" ? [16:31] avalanche123 has joined the channel [16:33] CoverSlide: good for versioning as well [16:34] tiagoa has joined the channel [16:34] CoverSlide: if a later revision of a package changes its api, older packages wont get affected [16:34] mape: jup, guess it is more an issue of ease of use [16:35] Dinosaurus has joined the channel [16:35] mape: and old docs saying one thing when npm does another [16:35] lukstr: mape: modules aren't really meant to be system level dependencies, but project-level, so encouraging you to keep them tight to your project pretty much reduces conflicts to zero [16:35] isaacs: mape: sharing deps within a project is great. [16:35] Dinosaurus has left the channel [16:35] CoverSlide: im guilty of doing npm -g install for every new package I find [16:35] isaacs: mape: but there was a lot of situations I and others ran into where isolation was a good thing [16:36] dgathright has joined the channel [16:36] isaacs: mape: which old docs? [16:36] mape: lukstr: well it wasen't like that back in the days [16:36] isaacs: mape: the paradigm use case: i do npm install redis. i do require("redis"). it all works. then, one day, it doesn't work. i want to debug it. where is "redis"? [16:36] isaacs: like, the actual code, not a symlink. [16:36] isaacs: it's a pain [16:37] mape: isaacs: well mostly modules on github [16:37] sh1mmer has joined the channel [16:37] isaacs: mape: i mean, where is the actual code being loaded by my program? [16:37] isaacs: i want to edit it [16:37] isaacs: add logging, etc. [16:37] CoverSlide: node scripts tend to be pretty tiny [16:37] isaacs: in its quest to be full featured, npm 0.2 made this unnecessarily hard. [16:37] CoverSlide: biggest one in global right now is dnode at 9M [16:38] CoverSlide: npm is 1.3 [16:38] mape: isaacs: well earlier it was just a matter of finding the latest version symlinked, but yeah, I get the idea [16:38] isaacs: so we cut away the features that were in the way. that was 0.3. then we moved things local, so that it was easier to answer this question. [16:38] arnau_ has joined the channel [16:39] arnau_: Hi, is anybody there? [16:39] isaacs: done in two big stages so that it was not quite as traumatic. 0.3 broke packages and authors hated it. 1.0 changed install semantics and (some) users hated it. but we're in a good place, now, i think. [16:39] CoverSlide: nobod here but us bots [16:39] drudge: i definitely prefer the local installation method [16:39] mape: That is the strange thing about this channel [16:40] CoverSlide: even the bots have typos [16:40] mape: 637 people in here but not a single person [16:40] arnau_: I'm trying to compile the latest version of nodejs on debian squeeze and I get the followin error when I do make -f Makefile.cmake package /root/node/src/node.h:25:16: error: uv.h: No such file or directory [16:40] mape: scary almost [16:40] addisonj: hrm, so I am not smart today, trying to think of how to populate a jade template with the currently set option in a select without client side js, any novel solutions? [16:40] beriberikix_ has joined the channel [16:40] isaacs: arnau_: does it work when you don't use cmake [16:40] arnau_: anybody know how to fix this? [16:40] isaacs: ? [16:40] arnau_: I'm trying to create a .deb package [16:40] mape: arnau_: debian isn't having the best of times with node lately [16:40] lukstr: isaacs: though to be fair there is something be desired from a system where you automatically benefit from library upgrades (i.e. you can choose between "libX2" and "libX2.0" and "libX2.3" [16:41] isaacs: lukstr: you can still do that. [16:41] isaacs: lukstr: `npm update` still works [16:41] mape: Seems there is no support from joyent on debian lately [16:41] isaacs: mape: lately? [16:41] isaacs: mape: was there ever? [16:41] mape: isaacs: Hehe perhaps not, just that it broke some versions ago [16:41] addisonj: isaacs, imho, npm is in a wonderful location, thanks for the hard work [16:41] lukstr: isaacs: I mean more like the way you do dynamic linking in linux [16:41] isaacs: mape: we're a solaris shop, dude. [16:41] addisonj: isaacs++ [16:41] v8bot: addisonj has given a beer to isaacs. isaacs now has 22 beers. [16:41] CoverSlide: node only supports OSX and Solaris [16:41] isaacs: thanks, addisonj [16:42] isaacs: lukstr: imo, the way you do dynamic linking in linux is a problematic solution to this problem. [16:42] mape: isaacs: Yep, thought this whole open source magic fixed them issues [16:42] arnau_: I tried make -f Makefile.cmake [16:42] arnau_: and also the same error [16:42] arnau_: what do you suggest? [16:42] isaacs: arnau_: does this work? `./configure && make`? [16:43] arnau_: yes [16:43] isaacs: arnau_: i'm trying to see if it's an issue with the code, or with cmake [16:43] isaacs: ok, then it seems like there's a bug in Makefile.cmake [16:43] arnau_: but that does not create a deb file [16:43] isaacs: right [16:43] lukstr: isaacs: I guess it is difficult given the nature of node modules [16:43] arnau_: and I'd need it to install on production servers [16:43] isaacs: but the cmake file doesn't set the include path properly, it seem [16:43] isaacs: s [16:43] arnau_: where there is no option to compile [16:43] mape: isaacs: Think you still end up with ssl2 issues if building on debian. There are issues(and patches) for this on github, not merged [16:43] broofa has joined the channel [16:44] zeade has joined the channel [16:44] arnau_: let me try again with ./configure && make [16:44] drudge: addisonj: boolean values will only output in jade if they evaluate to true [16:45] arnau_: compiling.... it will take a bit on my VM [16:45] arnau_: 'build' finished successfully (46.136s) [16:45] Bradleymeck has joined the channel [16:45] arnau_: so I guess, it's something related with cmake, what do you think? [16:45] mape: isaacs: And is that the offical take on things? To have things work one should use solaris? Or them new forks for it? [16:46] isaacs: mape: nono [16:46] isaacs: mape: node should work on solaris, linux, bsd, and darwin [16:46] isaacs: and, occasionally, when the stars align, cygwin [16:46] isaacs: and, soon, windows [16:46] arnau_: comparing deps/uv with deps/c-ares [16:46] arnau_: I see there is no CMakeLists.txt in deps/uv [16:47] arnau_: could be this the problem? [16:47] isaacs: but as far as the cmake build script, or cross-compiling, or making .deb packages, those aren't super high priority issues [16:47] isaacs: arnau_: i know zero about the cmake script [16:47] isaacs: arnau_: ask the list, maybe? [16:47] arnau_: me too [16:47] addisonj: drudge, hrm, well that is helpful, but does that mean I need to have an inline js function for each option? still struggling to make in not have lots of cruft [16:47] isaacs: arnau_: i guarantee that the problem is in the cmake system, though [16:47] mape: ie making things work on debian isn't high priority? [16:47] isaacs: arnau_: probably a recent change didn't get merged into it [16:47] aguynamedben has joined the channel [16:47] arnau_: ok [16:48] lukstr: mape: things don't work on debian? [16:48] mape: lukstr: nope [16:48] isaacs: mape: making things compile and run properly on debian is a high priority. making deb packages that are blessed by debian-stable is not. [16:48] isaacs: mape: what doens't work on debian? [16:48] CoverSlide: debian only runs stuff 2 years old or older [16:48] mape: isaacs: https://github.com/joyent/node/issues/676 [16:48] isaacs: i compile node there all the time [16:48] CoverSlide: the debian motto is it's not stable unless it's obsolete [16:48] mape: isaacs: and https://github.com/joyent/node/issues/880 [16:48] drudge: addisonj: yeah, that is the best i've seen so far [16:49] mape: I'm still stuck at v0.4.5 because of it [16:49] mape: If there is an easy fix I would love to hear it [16:49] CoverSlide: Archlinux FTW!!!! [16:49] isaacs: mape: ah, hm. [16:49] mscdex: archlinux: the official linux distribution of st. louis [16:49] isaacs: mape: does that patch fix it for you? just checked, and my ubuntu box is 0.4.4, so that's actually not as often as i thought :) [16:50] lukstr: mape: super weird I'm at latest [16:50] CoverSlide: and mcdonald's [16:50] mape: isaacs: To be honest I didn't try it, I try to stick to vanilla, easier that way [16:50] masm has left the channel [16:50] isaacs: fair enough [16:50] mape: Seems like something that would be merged soon enough [16:50] isaacs: i'll look into this. [16:50] isaacs: yeah, it's not very controversial on teh face of it [16:50] arnau_: one question, is nodejs stable enough on debian to be run on production servers? [16:50] addisonj: drudge, if i had an array of the options I could do a for each and just add selected = true, if the values match, that is probably what I will do [16:51] isaacs: just an ifdef [16:51] mape: jup [16:51] sharkbone has joined the channel [16:51] mape: isaacs: Well if you make it do magic I owe you some beer [16:51] lukstr: ACTION checks his openssl version [16:51] mscdex: arnau_: yeah [16:52] mape: isaacs: btw mention me some more on twitter, got me some new followers ;) [16:52] mscdex: heh [16:52] isaacs: :) [16:52] `3rdEden has joined the channel [16:53] arnau_: I'll try to download an older version of nodejs [16:53] mscdex: arnau_: what for? [16:53] arnau_: and I'll try to compile it [16:53] CoverSlide: can anyone tell me the major differences between n, nvm, and nave? [16:53] arnau_: to be able to create a .deb package [16:53] mscdex: arnau_: you can create a deb of the latest version [16:53] EyePulp: number of vowels? [16:53] arnau_: with the latest version it doesn't compile [16:53] arnau_: how? [16:53] mscdex: arnau_: SSL errors or what? [16:53] mape: isaacs: <3 [16:54] wookiehangover has joined the channel [16:54] arnau_: cmake -f Makefile.cmake package [16:54] arnau_: no [16:54] pifantastic has joined the channel [16:54] mscdex: why use cmake? just curious [16:54] mape: isaacs: I just hope beers are a ok for the shipping peeps in the US [16:54] CoverSlide: nodejs 4.7 is in sid [16:54] bpierre has joined the channel [16:54] lukstr: mape: I doubt it, they'll show up empty [16:54] mape: the aussies are strange about foreign liquids [16:55] arnau_: when I execute cmake -f Makefile.cmake package I get an error :/root/node/src/node.h:25:16: error: uv.h: No such file or directory [16:55] rfay has joined the channel [16:55] mscdex: arnau_: don't use the master branch [16:55] mscdex: arnau_: use 0.4.8 [16:55] mape: isaacs: if anything I could send you some snus, probly easier for customs [16:55] arnau_: mscdex: which one I should use? [16:55] arnau_: the first time I use git [16:55] arnau_: do you have the git url? [16:55] mscdex: arnau_: git checkout v0.4.8 [16:56] tiagoa has joined the channel [16:56] mscdex: arnau_: or just download the tarball from the nodejs.org website [16:56] mscdex: either way [16:56] arnau_: ok, I'll try [16:57] mscdex: the master branch is undergoing some major changes [16:57] apejens has joined the channel [16:57] jslatts has joined the channel [16:57] pen has joined the channel [16:57] sharkbone has joined the channel [16:58] arnau_: recompiling [16:58] col3: mape: you should try beer from the brewery fullsteam in north carolina [16:58] perlmonkey2 has joined the channel [16:59] mscdex: arnau_: as a side note, you can speed up compilation by using extra cores [16:59] mape: isaacs: btw, in the search for @nodejs, are there any plans for doing something fun with it? I'd love to get something like ajaxian for node on it. Just to keep me up to date. Things are getting wild nowadays [16:59] sonnym has joined the channel [17:00] mape: col3: True, but them office hours at joyent are beer free [17:00] arnau_: I'm compiling on my MBP using a VM in VMWare fusion runing debian [17:00] charlesjolley- has joined the channel [17:00] sgimeno_ has joined the channel [17:00] arnau_: I don't matter to wait a bit more if it works :) [17:00] mscdex: arnau_: ah ok, so you're limited to your vm settings then i guess :) [17:00] col3: mape: im talking after hours d^_^b [17:00] Adman65 has joined the channel [17:00] arnau_: yes [17:01] mape: col3: true, but the american at my office says most of the beer in the us is crazy overprices if it isn't "party beer". miller/light lager kinda deal [17:01] mape: easier to ship it and bring some surstr�mming along [17:02] lukstr: mape: not as expensive as it is here ( Ontario ) [17:02] col3: col3: then that american does not enjoy the taste of craft brew and i feel sorry for him. [17:02] col3: shit [17:02] col3: mape: * [17:02] sharkbone: who is a nodejs proxy server expert here? [17:02] col3: where do you live, i will ship you brew [17:02] col3: msg me in twitter [17:02] col3: theCole [17:03] arnau_: Error while compiling 0.4.8 [17:03] arnau_: CPack Error: Problem creating temporary directory: /root/node/build/_CPack_Packages/Linux/TGZ/node- [17:03] lukstr: isaacs: I don't get that ssl error [17:03] CoverSlide: just ask your question [17:03] arnau_: CPack Error: Error when generating package: node [17:04] arnau_: :( [17:04] mape: col3: well, that wasen't the issue, he enjoyed great beer, just said that most americans didn't drink micro*more or less micro(4-6 states wide beer) [17:04] arnau_: mscdex: any idea? [17:05] CoverSlide: that's because it isn't reaching americans in 44-46 whole states! [17:05] isaacs: lukstr: i guess your openssl has v3, then? [17:05] CoverSlide: that's a huge market to be missing out on [17:05] col3: it is true, but micro is the only way to go, "party beer" is gross and watered down. it may be over priced but with a software developers salary i can afford it =) [17:07] perezd has joined the channel [17:08] mape: That is what I told him [17:08] lukstr: isaacs: I guess? not sure how to check, I'll scan the header [17:08] mape: Beer is for drinking [17:08] sechrist has joined the channel [17:08] mape: Liquor is for getting drunk [17:08] halfhalo: and tequila is for those nights you don't want to remember [17:08] mape: And you guys don't have the crazy taxes we have here so that should be a good path for them peeps [17:08] lukstr: isaacs: yup I have v3 [17:09] lukstr: isaacs: can I nuke those logs from earlier? [17:10] harth has joined the channel [17:10] ExsysTech has joined the channel [17:10] isaacs: lukstr: sure [17:10] isaacs: lukstr: thanks for that [17:11] lukstr: no worries, it was a bizarre sounding issue and I had nothing more interesting to do :P [17:11] mape: hehe [17:12] MrWarGames has joined the channel [17:12] jdalton has left the channel [17:13] pen has joined the channel [17:13] tjholowaychuk has joined the channel [17:14] lukstr: isaacs: I don't see the --no-bindist flag anywhere [17:14] lukstr: in the docs, that is [17:14] springmeyer has joined the channel [17:14] mape: CoverSlide: well he was from pittsburgh and talked about some semi wide state beer that was neat [17:14] isaacs: lukstr: it's just the "bindist" command. [17:14] isaacs: *config [17:14] snearch_ has joined the channel [17:14] isaacs: lukstr: you can falsey any config option by doing --no-blah [17:14] lukstr: ah alright [17:15] mscdex: arnau_: i dunno, i don't use cmake. i just use the standard `./configure && make` and then use checkinstall to generate .debs [17:15] mape: Guess we are lucky from our monoploy getting great beer, at a steep price.. [17:15] simenbrekken has joined the channel [17:15] MrWarGames has joined the channel [17:15] mischievious has joined the channel [17:15] arnau_: ups [17:15] arnau_: I didn't know that checkinstall trick [17:15] arnau_: mscdex: any link about how to use checkinstall? [17:16] lukstr: isaacs: yeah that makse sense, thanks. It should be interesting to see how bindist pans out [17:16] lukstr: when was it introduced? [17:16] mscdex: arnau_: http://www.asic-linux.com.mx/~izto/checkinstall/ [17:16] mscdex: arnau_: it may be available by apt-get as well [17:16] mape: isaacs: btw still get "npm ERR! Error: link should never be --global." when I do "npm link" @ 1.0.8 [17:16] arnau_: ok, I'll try that option [17:16] arnau_: thanks [17:17] eee_c has joined the channel [17:17] coleGillespie: mape: i spent 30 US dollars and filled my kegorator with a craft brew from a brewery 5 minutes from my house...it really is no that expensive [17:17] isaacs: mape: yeah, because you have the --global config set [17:17] jameson has joined the channel [17:17] mape: isaacs: ah k [17:17] isaacs: mape: you can run it with --no-global to override that [17:17] tayy has joined the channel [17:17] lukstr: coleGillespie: I hate you [17:17] isaacs: mape: or --local, i think that works as a shorthand [17:18] mape: coleGillespie: Well, seems that isn't common knowledge then :P [17:18] mape: isaacs: jup that seemed to to magic, thanks [17:18] juanmaia has joined the channel [17:19] coleGillespie: mape: lukstr: it is this really heavy wheat ale that has been infused with basil, you can actually taste the basil. it is amazing [17:19] coleGillespie: it is called summer basil [17:19] coleGillespie: from fullstream brewery in durham north carolina [17:19] coleGillespie: amazing [17:20] mape: coleGillespie: hmm never heard of basil beer, sounds like it could be neat, earthy if anthing [17:20] lukstr: coleGillespie: what's the keg volume? [17:20] trotter has joined the channel [17:20] ibolmo: is there a time limit to how much work can be done process.on('exit') ? [17:20] Guest6666 has joined the channel [17:20] ibolmo: seems like it's interrupted prior to finishing [17:20] mape: wouldn't that be sync? [17:21] trotter has joined the channel [17:21] ibolmo: thought so as well [17:21] coleGillespie: lukstr: 7.75 gallon [17:21] yozgrahame has joined the channel [17:21] mape: oh sorry, event, probly not sync [17:22] arpegius has joined the channel [17:22] mape: ibolmo: I'd imagine it lets everything in the loop finish [17:22] mape: if the process quits nicely that is [17:22] lukstr: coleGillespie: that's tiny :P [17:23] coleGillespie: i like to rotate brews often [17:23] CoverSlide: i would think so ... except that there probably already be stuff in the loop anyway. so would it just kill all handlers in the loop prior to starting the exit loop? [17:23] lukstr: so it's like a $1/litre, not bad [17:23] ibolmo: mape: https://gist.github.com/1004852 [17:24] ibolmo: see line 46 [17:24] yozgrahame1 has joined the channel [17:24] ibolmo: in particular lines 68-74 [17:24] mscdex: argh! globals! [17:24] mscdex: :p [17:24] arnau_: mscdex: it seems a .deb file has been generated... :) [17:24] timmywil has joined the channel [17:24] mscdex: arnau_: cool :) [17:24] ryanmcgrath has joined the channel [17:24] arnau_: mscdex: lets try to install it [17:24] ibolmo: the console.log stops at some point [17:24] mape: ibolmo: why initiate it as {} and then move to [] ? [17:25] ibolmo: {} can't be sorted [17:25] CoverSlide: BTW, doesn't v8 alread have String.trim? [17:25] jslatts has joined the channel [17:25] mape: ibolmo: well it doesn't do anything with it besides on exit [17:25] ibolmo: CoverSlide: does it? :D [17:25] stagas: CoverSlide: yes [17:25] mscdex: CoverSlide: yeah i was about to mention that too :) [17:25] mape: so it will never be {} with content [17:25] ibolmo: hehe it's a small script, anyway [17:26] ibolmo: all it does is go through a ./ and find # todo statements [17:26] mape: ibolmo: unless you add a todo, in which case you move it from an object into an array [17:26] ibolmo: mape: i'm confused [17:26] ibolmo: what do you mean? [17:26] mape: ibolmo: todos[milestone] will never be true [17:27] mape: hence it will always end up being [], so why not start with todos = []; [17:27] ibolmo: sure it will, i'm not sure what you mean [17:27] mape: and drop the if [17:27] mape: what line uses todo as an object? [17:27] ibolmo: oh 'cus of the blank milestone [17:27] ibolmo: '' [17:27] arpegius has joined the channel [17:28] ibolmo: 41 [17:28] mape: emitter.on('todo', function(file, by, milestone, todo){ ? [17:28] ibolmo: starts at 41 [17:28] ibolmo: 42 inits to [] for the todos = {} in 39 [17:28] ibolmo: it's just a bucket list [17:29] ibolmo: todos are indexed by milestone [17:29] yozgrahame1 has joined the channel [17:29] mape: yeah so why init it as an object if it is never used as such? [17:29] ibolmo: anyway, that's all working.. just wondering why process.on('exit', .. would quit early and not let a forEach finish [17:29] ibolmo: um it is.. indexed by milestone [17:30] ibolmo: todos['1.1'].push(['./file', 'ibolmo', 'this is my todo']) [17:30] ibolmo: for example [17:30] mape: so you start of saying todos is an object, then if it isn't used (which it never is) you transfer it into an array, and then use the array as a hash table? [17:31] mape: oh.. [17:31] ibolmo: um it is used.. [17:31] mape: nm, I'm dumb [17:31] mape: sry [17:31] ibolmo: haha thanks :D [17:31] ibolmo: but back to the question.. why would process.on('exit', ... exit early [17:32] ibolmo: wondering if there's a proc/child/spawn that sends a SIGNT and the event is called during that block [17:32] mape: ibolmo: Object.keys(todos).forEach(function(todoKey){}) is neat but yeah.. [17:32] CoverSlide: ibolmo: line 72: entry[2™] why is there a ™ there? [17:32] ibolmo: if so, then i know that in linux there's a finite amount of time before it terminates permanently [17:32] ibolmo: CoverSlide: that was probably me :D [17:32] ibolmo: (during copy paste) [17:32] CoverSlide: i know that ™ key i hit all the time [17:33] mape: ibolmo: seeing how the things you do in the exit event are sync I'd assume it will run before the process dies [17:33] ibolmo: right mape, thought so as well [17:34] mape: "Emitted when the process is about to exit. This is a good hook to perform constant time checks of the module's state (like for unit tests). The main event loop will no longer be run after the 'exit' callback finishes, so timers may not be scheduled." [17:34] sjbreen has joined the channel [17:35] mape: ibolmo: you aren't getting any printouts at exit? [17:35] ibolmo: incomplete printouts [17:36] brraaains: question about stylus. if i have a background image do i have to do anything special with the url or can i just do: background #000000 "images/image.png" ? [17:36] ezmobius has joined the channel [17:36] mape: brraaains: ask tjholowaychuk :) [17:37] tjholowaychuk: brraaains that's not valid css [17:37] sharkbone: about building a proxy process in servers (not a proxy server) [17:37] tjholowaychuk: url(/images/image.png) [17:38] brraaains: ok thats what i was wondering. wasnt sure if i needed url(). thanks [17:38] ibolmo: ryah: sorry to bug, but do you have an idea why i'd get an incomplete printout (as if it was interrupted) on a process.on('exit' callback? [17:38] tjholowaychuk: stylus doesn't special-case properties or tryto guess what a url is etc [17:38] chjj: anyone writing a blog? who wants pingbacks: https://github.com/chjj/node-pingback [17:38] brraaains: well i know with @imports you just say @import "reset.css" so i wasnt sure if it was the same with other stuff [17:38] lupomontero has joined the channel [17:39] ryanj has joined the channel [17:39] cyraxx has joined the channel [17:39] zpao_ has joined the channel [17:40] dgathright has joined the channel [17:40] pandeiro has joined the channel [17:41] brraaains: I guess I should have just realized that Stylus is essentially CSS without all of the brackets, etc. considering thats the point. just clean code lol [17:41] niftylettuce has joined the channel [17:44] chjj: clean code is not necessarily the same thing as a lack of curly braces ;) [17:45] CoverSlide: scss for example [17:45] hosh_work has joined the channel [17:45] mape: tjholowaychuk hates {} [17:45] bartt has joined the channel [17:45] tjholowaychuk: wrong window [17:45] tjholowaychuk: brraaains you can use braces as well [17:45] tjholowaychuk: i dont hate {} [17:45] tjholowaychuk: i like {} [17:45] neaf has joined the channel [17:45] tjholowaychuk: but i dont like {} for declarative languages [17:45] brraaains: yeah thats true. i actually dont mind curly braces cause ive programmed in c++ and java for so long that im used to them [17:46] rpj8: <3 {} [17:46] jasonmcleod has joined the channel [17:46] brraaains: when i see python and other similar languages i kind freak out cause of the lack of braces lol [17:46] chjj: agreed, i just ended up reworking my templating language, made it parse by sig whitespace [17:46] chjj: looks nicer for some reason [17:46] CoverSlide: nesting styles for a cascading language makes sense [17:46] tjholowaychuk: it's nicer looking if you dont go out of control [17:46] tjholowaychuk: but for people with bad taste [17:47] tjholowaychuk: it gets really hard to read [17:47] brraaains: yeah i think css without braces looks way better. much easier to read [17:47] tjholowaychuk: most programmers do notttt have "the eye" [17:47] rpj8: when posting data in express, the post is sent in the form of json. I can't access this data with req.body.user if I have something like {"user":"doug"}. how would I render something like this? [17:47] CoverSlide: curly braces suck [17:47] mape: tjholowaychuk: I'm just color blind. But color codes help with that ;) [17:47] brraaains: for me it makes it easier to learn cause im more of a programmer and not a web designer [17:47] CoverSlide: coffee ftw! [17:47] chjj: yeah, im saying, for templating, for html, significant whitespace looks better than what i was doing before [17:48] halfhalo: do it in xml! [17:48] wadey has joined the channel [17:48] mape: halfhalo: There is nothing that can't be solved with tons, tons and tons of xml [17:48] AvianFlu has joined the channel [17:48] halfhalo: exactly. [17:48] CoverSlide: just look at the java scene [17:49] mape: And if one gets payed by loc, xml is neat [17:49] ryanj has joined the channel [17:49] jamescarr has joined the channel [17:49] spcshpopr8r has joined the channel [17:49] chjj: all i have to say is [17:49] chjj: xml-rpc is evil incarnate [17:50] context: s/-rpc// [17:50] ryanj has joined the channel [17:50] colinclark has joined the channel [17:50] arpegius has joined the channel [17:50] halfhalo: evilness is what makes it fun! [17:51] carlocci: I'm checking out node-inspector, but it slightly lags when I fiddle with large objects in the console [17:51] carlocci: and by slightly I mean 5+ minutes for a method call [17:51] aliem has joined the channel [17:52] carlocci: are there any good alternatives? [17:52] dguttman has joined the channel [17:53] boehm has joined the channel [17:54] hellp has joined the channel [17:55] gmanika has joined the channel [17:55] isaacs has joined the channel [17:56] reid has joined the channel [17:58] zmbmartin has joined the channel [17:58] zmbmartin: is it necessary to change the user salt everytime the password is changed? [17:58] mjr_ has joined the channel [17:59] sharkbone: sharkbone: @mape i have a question [17:59] mape: sharkbone: sharkbone ask away [18:00] adnam: zmbmartin: hmm, why change the salt at all? [18:00] ChrisBuchholz has joined the channel [18:00] mikeal has joined the channel [18:01] adnam: and why have separate salts for each user assuming they are all stored at the same location? [18:01] zmbmartin: adnam: isn't it more secure that way? [18:01] adnam: zmbmartin: why? [18:01] adnam: i'm not sure -- trying to think [18:02] charlesjolley- has joined the channel [18:02] zmbmartin: adnam: I guess you are right when I think about it. [18:02] adnam: zmbmartin: separate salts for users might make sense ototh [18:03] adnam: slows down dictionary attacks (or is it rainbow tables?) if the salt and passwords are exposed [18:04] ph^ has joined the channel [18:04] arpegius_ has joined the channel [18:04] Counter has joined the channel [18:04] niles|iPod has joined the channel [18:05] aleksandrz has joined the channel [18:05] mscdex: so who wants to write a WebRTC binding? :-D [18:05] CoverSlide: i had to do some vBulletin hacking some years ago, their auth is as simple as: SELECT password,salt; md5(md5(plaintext-password)+salt) == password [18:05] ryanmcgrath_ has joined the channel [18:07] Counter has joined the channel [18:07] adnam: zmbmartin: hadn't actually considered separate salts for each user i think, thanks for bringing it up [18:09] Shrink: node.js is non-blocking and all. Then why is express not concurrent? [18:09] CoverSlide: tr running NODE_ENV=production node app.js [18:09] mscdex: Shrink: it is [18:09] CoverSlide: in dev it isn't [18:09] Shrink: ok [18:09] mscdex: eh? [18:10] CoverSlide: at least that's what i got [18:10] mscdex: how can it not be concurrent? it's using the built-in http Server is it not? [18:10] CoverSlide: i ran an express app that did setTimeout(res.end,5000) [18:10] adnam: node runs on a single thread so it can't be concurrent, or am i mistaken? [18:11] patrickjst has joined the channel [18:11] mscdex: adnam: it's evented [18:11] adnam: right [18:11] CoverSlide: i opened it in two tabs [18:11] yhahn: O_O [18:11] CoverSlide: without NODE_ENV=production, took 10 seconds to load both [18:11] adnam: the asynchronicity does not imply concurrency [18:11] CoverSlide: with NODE_ENV=production it took 5 [18:11] adnam: it just implies that it can fork out other processes [18:12] adnam: node still only uses one thread [18:12] kkaefer: CoverSlide: try running ab -c 50 -n 1000 http://.... [18:12] Shrink: nopes, not working, still blocking one request for another [18:12] mscdex: adnam: erm, but it doesn't fork out processes for incoming requests [18:12] rfay has joined the channel [18:12] adnam: the http server is a different process which might itself be threaded [18:12] mscdex: what? [18:12] mscdex: the http server is within node [18:13] mscdex: same process [18:13] lukstr: Shrink: can you be a bit more specific about what is blocking? [18:13] mscdex: unless you're talking about using apache + node [18:13] stepheneb_ has joined the channel [18:13] adnam: okay i might not be correct about that, but a htp server MAY be separate and threaded [18:13] Shrink: I just build a simple app.get setInterval write [18:14] mscdex: adnam: not in node [18:14] Shrink: When I open it in two tabs, the second one is blocked [18:14] mscdex: Shrink: browser setting maybe? [18:14] adnam: mscdex: you are free to start any process from node [18:14] lukstr: Shrink: you are doing something wrong then... you can't block in your response, can you paste some code? [18:14] Shrink: no, because it works when I do it in plain node.js [18:14] tjholowaychuk has joined the channel [18:14] mscdex: adnam: sure, but it doesn't automatically create new processes for requests [18:15] Shrink: wait [18:15] CoverSlide: if you have 20 requests hitting a threaded server, and 20 requests hitting an evented server, the evented requests get 100% of the cpu, while the threaded ones get 5%, after the initial warming up of the threads [18:15] adnam: anyway, point is, node runs on a single thread, with an event loop, so any action performed in that event loop will stall other events in node [18:15] Vladimir1 has joined the channel [18:15] lukstr: adnam: yes [18:15] mscdex: adnam: right, that's why it's important to not block and to have async mechanisms [18:16] adnam: right right [18:16] lukstr: CoverSlide: it doesn't work the same as a threaded server... [18:16] Shrink: http://fpaste.org/qE3s/ [18:16] Shrink: lukstr, [18:16] mscdex: adnam: and almost everything in node is async, so it's generally not a problem [18:17] mscdex: adnam: unless you're calculating primes or something [18:17] lukstr: Shrink: yes that won't work [18:17] adnam: right right [18:17] adnam: so where were we going with this [18:17] mscdex: adnam: but even with a task like that, you could break it up into parts using nextTick [18:17] Shrink: lukstr, why ? [18:17] mscdex: adnam: i dunno, but you made it sound like node used additional processes for incoming http requests :) [18:17] Shrink: just forget the app.get('/stop/') [18:17] zendfan has joined the channel [18:18] Counter82 has joined the channel [18:18] petrjanda has joined the channel [18:18] springify has joined the channel [18:18] CoverSlide: i needs to be set outside the closures [18:18] sechrist has joined the channel [18:18] lukstr: Shrink: you are not calling res.end for app.get('/' [18:19] Shrink: lukstr, ok wait I'll simplify it a bit [18:20] stepheneb has joined the channel [18:20] CoverSlide: and even then it will only stop the first one [18:20] roger_raymond has joined the channel [18:20] Shrink: http://fpaste.org/togy/ [18:20] CoverSlide: also, "hello" won't send because the buffer isn't filled yet [18:20] Shrink: even this is blocking [18:20] briznad1 has joined the channel [18:21] lukstr: Shrink: try res.end(); [18:21] CoverSlide: it probably isn;t [18:21] davidascher has joined the channel [18:21] Shrink: lukstr, res.end will end the response, I don't want that. [18:21] CoverSlide: add a console.log on "/". both of them will show [18:21] Shrink: I want a keepalive [18:21] Counter82 has joined the channel [18:22] CoverSlide: anyone know how to flush the buffer with http? [18:22] timmywil_ has joined the channel [18:22] CoverSlide: do that, you'll see [18:22] mscdex: CoverSlide: you could try res.write(""); or something, not sure [18:22] tj has joined the channel [18:23] Counter82 has joined the channel [18:24] nibblebot has joined the channel [18:24] Shrink: I guess setInterval is the one which is blocking. [18:24] yozgrahame has joined the channel [18:24] Counter82 has joined the channel [18:24] CoverSlide: except setInterval doesn't block [18:24] Shrink: setTimeout on the otherhand doesn't [18:24] gsmcwhirter has joined the channel [18:24] Shrink: ok [18:25] Shrink: I'll probably look into this tomorrow. [18:25] adnam: they're the same basically [18:25] Shrink: I guess. [18:26] adnam: or, in that regard, rather [18:26] beawesomeinstead has joined the channel [18:26] beawesomeinstead has joined the channel [18:26] briznad has joined the channel [18:26] davida has joined the channel [18:27] CoverSlide: try this: http://fpaste.org/EwbC/ [18:27] CoverSlide: it will output the new requests and when it will send [18:27] Shrink: will do [18:27] CoverSlide: it's a matter of buffering that the browser doesn't see it [18:28] Shrink: I don't think so [18:28] Shrink: because, when I close one connection , the second one starts from the beginning [18:28] davidascher has joined the channel [18:28] blup has joined the channel [18:29] Shrink: ok, i'll see you guys later, gtg [18:29] context: shrink: node can handle more than one connection [18:29] context: coverslide: you need to res.end() [18:29] patcito has joined the channel [18:29] rpj8: Given this code block: http://jsfiddle.net/KVmDp/ , what is the point of doing ` app.user = user = mongoose.model('User');' ? I found something similar to this in a project on github [18:30] rpj8: what does app.user have to do with anything? [18:30] Ezku\: rpj8: it's just a way of injecting the model into the rest of the app [18:30] markwubben has joined the channel [18:31] omni5cience_ has joined the channel [18:31] rpj8: Ezku\: well, why not just do something like `user = mongoose.model('User');'? [18:31] rpj8: I guess I'm trying to understand its significance [18:31] jakehow has joined the channel [18:32] CoverSlide: Shrink: http://fpaste.org/Idxs/ [18:33] jacobolus has joined the channel [18:33] Ezku\: rpj8: either there's a bug or the script is only supposed to be ran in a context where app is already defined [18:33] margle has joined the channel [18:33] Ezku\: (just now checked out the actual source) [18:34] rpj8: Ezku\: :3 [18:34] rpj8: Ezku\: the actual definition is ` app = module.exports = express.createServer(),' [18:34] rpj8: I could get you the original code but honestly I don't expect you'd want to go through it all. [18:34] CoverSlide: it's so they can reference user in the local script [18:34] eyesUnclouded has joined the channel [18:34] Ezku\: rpj8: yeah, so the app.js part is just a slice of the complete one? [18:35] mscdex: sheesh, github's online 'edit and commit' feature can sure wreak havoc on one's News Feed [18:35] mscdex: :S [18:35] rpj8: Ezku\: well, yes it is. [18:36] rpj8: sorry, i'm very new to all of this. [18:36] rpj8: attempting to wrap my brain around it all :p [18:36] CoverSlide: so that it's the same as app.user in the parent module [18:36] Ezku\: rpj8: new to javascript, or programming? [18:36] CoverSlide: or to computers? [18:36] rpj8: javascript [18:36] rpj8: lol, i've spent the majority of my life infront of a screen :P [18:37] rpj8: CoverSlide: wouldn't the parent module be the one run by `node'? If so, app.js is how the whole thing is started [18:38] Ezku\: it's a case of inversion of control, where you repurpose app as a resource container [18:38] CoverSlide: mabe for ou, but in the future if ou want to make it into a library [18:38] CoverSlide: that's what module.exports is for [18:39] NuckingFuts|Away has joined the channel [18:40] NuckingFuts: ACTION is giddy [18:40] NuckingFuts: deviantART finally has oAuth 2.0 support! [18:40] NuckingFuts: ACTION goes to pick up an oAuth lib [18:41] rpj8: oky doke, thank you both :) [18:41] CoverSlide: myapp = require("./app");myapp.user ...; app.js: app = module.exports; user = app.user ...; [18:43] niles|iPod has joined the channel [18:43] maushu has joined the channel [18:43] hipe: if there are any expresso (testing framework) users out there, how do you test an app (an express app) that loads ansynchronously, that is, that takes time to load ? [18:43] mbrevoort has joined the channel [18:44] jonasen has joined the channel [18:45] context: storing passwords in clear text? [18:45] halfhalo: thats what I like to see! [18:47] mbrevoort has joined the channel [18:48] Chani: has anyone ever used fs.mkdir? the docs don't say one word about what it expects me to give it for mode [18:48] pigmej has joined the channel [18:48] Chani: aha, a string seems to work... [18:49] deedubs has joined the channel [18:49] gkatsev: it's a string in chmod format. I would assume it probably supports both oct and dec [18:49] CoverSlide: fs.mkdir = function(path, mode, callback) [18:49] Chani: ACTION needs to start writing these things down [18:49] niles|iPod has joined the channel [18:49] cafesofie has joined the channel [18:49] bah has joined the channel [18:50] bah: hi [18:50] deedubs: Anyone with experience with mongoosejs know how to query on a dynamic collection? [18:50] arpegius has joined the channel [18:52] catshirt has joined the channel [18:55] brainproxy: anyone care to wax poetic on the merits of node-irc vs IRC-js or vice versa? [18:56] petrjanda has joined the channel [18:58] AvianFlu: I like node-irc [18:58] AvianFlu: it hasn't given me any problems [18:58] AvianFlu: IRC-js, I haven't used [18:58] brainproxy: seems like IRC-js is more modular w/ various concerns well separated [18:59] patrickjst has joined the channel [18:59] brainproxy: but node-irc looks simpler to use [18:59] lukstr: depends on your uses, I suppose [18:59] CoverSlide: node-irc has fewer dependencies [18:59] CoverSlide: 0 [19:00] AvianFlu: node-irc has a very nice api [19:00] brainproxy: yes, looks simple and clean [19:00] AvianFlu: I use it in the kohai bot, it hasn' t given me any troubles [19:01] brainproxy: my gut instinct is to start there and re-eval if things get hairy [19:02] ryankirkman has joined the channel [19:02] eee_c has joined the channel [19:02] zed0 has joined the channel [19:03] jerrysv: oh yeah [19:03] jerrysv: tjhollowaychuck++ [19:03] v8bot: jerrysv has given a beer to tjhollowaychuck. tjhollowaychuck now has 1 beers. [19:03] jerrysv: oh, he's not even here [19:04] Chani: what fgd [19:05] Chani: ACTION kicks ssh [19:05] context: our job is to automate shit. why is this guy manually inserting data. so when we wipe the testing environment, he freaks out cause he has to do it all over again [19:05] Chani: if I use fs.mkdirSync, how am I supposed to check for errors? [19:05] Chani: o.0 [19:05] context: rake populate:my_fucking_data [19:06] chjj: Chani: try/catch [19:06] Chani: ah. [19:06] Chani: ACTION has an irrational dislike of try/catch :) [19:06] dust--_ has joined the channel [19:06] chjj: yeah, its kinda ugly [19:07] Chani: oh yeah, and is there something like exit() anywhere? [19:07] brainproxy: you mean to kill the process? [19:07] Chani: right now I quit by intentionalyl crashing :) [19:07] jameson has joined the channel [19:07] Chani: brainproxy: yeah [19:08] brainproxy: http://nodejs.org/docs/v0.4.8/api/process.html [19:08] brainproxy: see process.exit() [19:08] Chani: ah, missed that. thanks [19:09] Chani: ooh, and an exit event, too... [19:09] brainproxy: yah [19:09] brainproxy: the API docs r your very special friend [19:09] Chani: ACTION needst o do some cleanup for a clean exit [19:09] cjm_ has joined the channel [19:09] Chani: brainproxy: special with a captial R, I'm afraid :) [19:10] Chani: ACTION is starting to document the holes [19:10] jbpros has joined the channel [19:12] george2 has joined the channel [19:13] italic has joined the channel [19:13] trotter has joined the channel [19:14] addisonj: does mongoose support boolean types? [19:14] addisonj: nm, yep, just being dumb [19:17] strmpnk has joined the channel [19:17] edude03 has joined the channel [19:18] niles|iPod has joined the channel [19:19] catshirt has joined the channel [19:19] ExsysTech has joined the channel [19:19] gtramont1na has joined the channel [19:20] dipser has joined the channel [19:20] brimster has joined the channel [19:21] mischief has joined the channel [19:22] Chani: :/ I can't find an equivalent to rm -rf in fs... there's rmdir but the dir has to be empty, and there's unlink but I've never used that and the man page isn't too clear whether it works on dirs at all... [19:25] jasonmcleod has left the channel [19:25] Chani: aand my exit function isn't being called anyways. [19:25] catshirt has joined the channel [19:25] stagas_ has joined the channel [19:25] Chani: even though it's traight from the example. [19:25] mischief has joined the channel [19:26] brainproxy: Chani: are you using node v0.4.8 [19:26] timmywil has joined the channel [19:26] dve has joined the channel [19:26] CoverSlide: require("fs").unlink("/") [19:27] sjbreen has left the channel [19:27] jarek has joined the channel [19:27] jarek has joined the channel [19:27] Chani: brainproxy: yep [19:28] brainproxy: i just tried process.exit from w/in the REPL and it exited [19:28] mikeal has joined the channel [19:28] chrislor_ has joined the channel [19:28] flubba has joined the channel [19:29] Chani: brainproxy: yes, process.exit() exits [19:29] Chani: brainproxy: but I killed the process with ctrl-c and no exit event happened. [19:29] mikegerwitz: Chani: That's SIGTERM [19:29] Chani: and, naturallly, I only really need the cleanup when it's killed by the user. [19:29] brownies has joined the channel [19:30] Chani: mikegerwitz: oh, riiight, thanks [19:30] Chani: all makes sense now. and process has stuff for that [19:30] Chani: aaand my class is starting. *runs* [19:30] mikegerwitz: Chani: yepyep. For any signal. [19:31] dve: evening all [19:31] dve: Ive been thinking about logging and how i trace what is going on in my app. At the moment I seem to be using a lot of sys.puts (in one form or another) and its a mess. I was thinking of some way of emitting info, that way I could listen for emitted info and either log it or use the event in my tests. I could then also have some sort of listener that rendered out the info in a graphical way, maybe a web interface. Does something like this already exist? Is there any [19:31] dve: existing built in tracing functionality? [19:31] Rodtusker has joined the channel [19:33] neaf has joined the channel [19:33] insin has joined the channel [19:33] cjm_ has joined the channel [19:34] brainproxy: Chani: https://github.com/isaacs/rimraf [19:34] leahculver has joined the channel [19:34] brainproxy: if you want equiv of rm -rf for node [19:35] insin: ACTION forks it to paint the bikeshed "rumruf" [19:35] zeade has joined the channel [19:36] Xano has joined the channel [19:36] jameson has joined the channel [19:37] brainproxy: dve: there's not anything like that "out of the box" but instead of console.log (sys.puts is deprecated I think) you could create a formalism for emitting a trace event [19:38] jbpros_ has joined the channel [19:38] else- has joined the channel [19:39] robhawkes has joined the channel [19:39] eldar has joined the channel [19:39] dve: brainproxy I have only thought briefly about it, but was thinking if there was a way to not only emit as needed, but to also bind to functions so callbacks could be traced as well [19:39] eee_c has joined the channel [19:40] namelessnotion has joined the channel [19:40] dve: to get a more accurate picture of what is happening [19:40] brainproxy: dve: yes, it makes sense, I have something like that in mind as well [19:40] jbpros has joined the channel [19:40] brainproxy: but if you want it to be ubiquitous in your code [19:40] brainproxy: then its probably something you'd build into some kind of continuation passing mechanism [19:41] brainproxy: or in the context of Step [19:41] Yoric has joined the channel [19:41] brainproxy: iow, to use such a mechanism ocnsistently i think requires that you build your programs in a consistent manner [19:42] SuMarDi has joined the channel [19:42] dve: true, I didnt want it to dictate how you have to write your code though.. [19:42] tilgovi has joined the channel [19:43] dve: something that could fairly easily be retrofit [19:43] zendfan has joined the channel [19:43] adambeynon has joined the channel [19:43] temp01 has joined the channel [19:45] brainproxy: well you could build a drop in lib that provides an instance of EventEmitter which does some fancy stuff like serving up a page that gives you a nicely laid out trace [19:45] materialdesigner has joined the channel [19:45] hij1nx_ has joined the channel [19:45] brainproxy: those who wanted to use it could simply emit an event on that object instead of calling console.log or whatever [19:46] dve: brainproxy: exactly, thats roughly what I was imagining [19:46] darshanshankar has joined the channel [19:46] DTrejo has joined the channel [19:47] catshirt has joined the channel [19:47] dve: the emit would contain enough information to build a visual 'map' of what is happening (maybe even in realtime via sockets) [19:47] brainproxy: dve: i guess one would need then to justify it's use w/ respect to using a full blown debugger [19:47] brainproxy: iow, why not just use v8-profiler and some of the nice webkit tools [19:48] brainproxy: isaacs made the office hours travel backwards in time! [19:48] brainproxy: fluxCapacitor.js [19:48] isaacs: yeah, i forgot when they started for a second there [19:48] AvianFlu has joined the channel [19:49] DTrejo: AvianFlu: no twitter account? [19:49] jameson_ has joined the channel [19:50] cloudhead has joined the channel [19:50] dshaw_ has joined the channel [19:50] dve: i will look at the v8-profiler [19:50] DTrejo: !tweet @nodekohai testing [19:51] puffpio has joined the channel [19:51] dve: i feel like the v8-profile maybe too abstracted from the information I want to see specifcally about my app [19:53] AvianFlu: DTrejo: hell no [19:54] AvianFlu: I've never interacted with twitter except via the API [19:54] DTrejo: AvianFlu: I mentioned you anyway [19:54] eee_c1 has joined the channel [19:54] AvianFlu: lol sweet [19:56] baoist has joined the channel [19:57] hassox has joined the channel [19:58] don`catnip has left the channel [19:59] gsmcwhirter: i was writing a node library for parsing mathematical expressions containing variables, but I have run into an issue with negative numbers that is stumping me. can anyone offer any advice for how to get the test https://github.com/gsmcwhirter/node-math-lexer/blob/master/test.js#L404 to pass? [20:01] raz has joined the channel [20:01] yozgrahame has joined the channel [20:02] RORgasm: hey guys [20:02] RORgasm: i'm trying to use a commongjs library caled email.js [20:02] RORgasm: https://github.com/craigw/email.js [20:02] RORgasm: i'm a little confused [20:03] ekryski has joined the channel [20:03] brainproxy: gsmcwhirter: I'm not sure, sorry, but your library did remind me of another lib called Functional Javascript; not sure if you've seen it but you might find it interesting [20:03] brainproxy: does some interesting things with "string lambdas" [20:03] brainproxy: http://osteele.com/sources/javascript/functional/ [20:03] brainproxy: might play nicely with yours or give you additional inpsiration [20:03] RORgasm: teh readme says that after requreing the module you should be able to just parse an email message like so http://pastie.org/2010319 [20:04] charlesjolley- has joined the channel [20:04] ekryski: Hey guys. I have been playing around with node on my mac for a while but now we have installed it on ubuntu server 10.04. I am wondering where the best place to put the server code would be (currently it resides in a folder in my home directory) [20:04] RORgasm: but when i do that i keep getting this error, TypeError: Object [object Object] has no method 'message' [20:04] gsmcwhirter: brainproxy, thanks, i'll take a look [20:05] briznad1 has joined the channel [20:05] CoverSlide: i like making an /srv folder for server stuff [20:05] jameson has joined the channel [20:05] RORgasm: i'm not sure if the lib is messed up in its object definiteion or perhaps the isntrucitons are wrong [20:05] hij1nx has joined the channel [20:05] brainproxy: ekryski: have you looked into nvm? [20:05] CoverSlide: but /var/ probably would be appropriate [20:06] ekryski: no I haven't looked into nvm. What is it? [20:06] CoverSlide: /var/node or /var/lib/node [20:06] brainproxy: ekryski: see https://github.com/creationix/nvm [20:06] ekryski: oh wait yes I have. Sorry I have been using n for version management [20:06] rfay has joined the channel [20:07] gsmcwhirter: brainproxy, yeah, that looks similar, but i only want to allow a strict subset of what it does. maybe i can pick out what i need. thanks again. [20:07] brainproxy: gsmcwhirter: sure thing, good luck [20:07] ekryski: Coverslide: var would be alright I guess but I kinda like the idea of having a dedicated /srv directory [20:08] doki_pen: is there a change to the way npm treats packages from 0.4.3 to 0.4.8? my package no longer exports anything [20:08] isaacs: doki_pen: do you have a "main" module? [20:08] isaacs: doki_pen: to answer your question, npm doens't treat packages differently based on the node version. but there were major changes in 0.2->0.3 of npm itslef. [20:09] ibolmo: isaacs: ever run into trouble with process.on('exit' ? i'm reading the docs and the only clue I have is that it says "constant time" so I figure that means that process.on('exit' eventually interrupts? [20:09] ardcore1 has joined the channel [20:09] ekryski: brainproxy: what did you mean by using nvm? [20:09] CoverSlide: if(__name == "__main"){ (code) } [20:09] CoverSlide: no wait ... nevermind [20:09] isaacs: ibolmo: process.on("exit") happens after the event loop is already done. [20:09] isaacs: ibolmo: so, you're not going to be able to do anything async in there. [20:09] doki_pen: isaacs: yes, I have main. https://github.com/embedly/embedly-node/ [20:09] ardcore1 has left the channel [20:09] doki_pen: isaacs: any idea why it's not exporting anything now? [20:09] isaacs: CoverSlide: if (module === require.main) you mean? [20:10] pquerna: isaacs: eventbrite site down? [20:10] doki_pen: isaacs: if I require('embedly'), no errors, just empty {} [20:10] brainproxy: ekryski: i wasn't sure what you meant when by figuring out where/how to setup node stuff on your ubuntu server [20:10] blup has joined the channel [20:10] brainproxy: ekryski: if you weren't familliar w/ it, i thought nvm might save you some trouble [20:10] pquerna: neveeermind [20:10] pquerna: sigh [20:10] CoverSlide: sorry python joke [20:10] mike5w3c_ has joined the channel [20:10] ibolmo: yep i don't think i am, though: https://gist.github.com/1004852 starts at line 43 [20:10] isaacs: pquerna: works for me http://nodeworkup09.eventbrite.com/ [20:10] ibolmo: it's all sync, at least it seems to me [20:10] CoverSlide: but i usually use if(!module.parent){} [20:11] ekryski: So that things aren't confused I have my node files in /usr/local/n (and that is just fine)but what I meant is where is the best place to serve the actual backend & db code that I'm writing [20:11] isaacs: doki_pen: seems to work for me? [20:11] doki_pen: interesting [20:11] isaacs: doki_pen: > require("embedly") [20:11] isaacs: WARN: `npm install log for logging. For configuration, refer to undefined [20:11] isaacs: { version: undefined, [20:11] isaacs: Api: { [Function: Api] log: { l... [20:11] ekryski: Currently it is in my home directory but there are other users that may want to have access to the code [20:11] doki_pen: i guess it's an issue with my local install then [20:12] ekryski: I just thought that it would be weird to be serving from my home directory when the server is live [20:12] doki_pen: oh, my node version is 0.4.8. my npm version is 1.0.6 [20:12] isaacs: ibolmo: this is async: console.log(entry[0] + ' ' + entry[1] + ':\t' + entry[2]); [20:12] isaacs: ibolmo: try console.error [20:12] cagdas has joined the channel [20:12] doki_pen: isaacs: what version of node did you test with? [20:13] isaacs: doki_pen: 0.4.9-pre [20:13] isaacs: current v0.4 branch [20:13] trotter has joined the channel [20:13] doki_pen: and tip npm? [20:13] isaacs: doki_pen: npm 1.0.8 [20:13] ibolmo: isaacs: that did it [20:13] ibolmo: :D [20:14] isaacs: kewl :)9 [20:14] ibolmo: why is .log async? [20:14] isaacs: oh, you hit the 106 race condition, i bet. [20:14] isaacs: that thing sucks [20:14] ibolmo: 106 race condition? [20:14] isaacs: oh, wait, confusing people. whoops. [20:14] isaacs: nvm [20:14] ibolmo: haha :D [20:14] isaacs: ibolmo: because it writes to stdout, which is nonblocking. [20:14] mgkimsal has joined the channel [20:14] ibolmo: ah [20:14] isaacs: ibolmo: stderr is blocking and synchronous [20:15] ibolmo: there it is: http://nodejs.org/docs/v0.4.8/api/all.html#process.stderr [20:15] ibolmo: thanks [20:15] ibolmo: little gotcha [20:15] isaacs: np [20:15] mikeal has joined the channel [20:15] briznad has joined the channel [20:15] JJMalina has joined the channel [20:16] amerine has joined the channel [20:17] sh1mmer has joined the channel [20:18] AvianFlu has joined the channel [20:18] eyesUnclouded has joined the channel [20:18] shimondoodkin has joined the channel [20:19] NuckingFuts: Hey guys, anyone here experienced or knowledgable in the ways of the OAuth2? [20:20] NuckingFuts: Namely the username/password flow [20:20] NuckingFuts: either draft 10 or 15 [20:20] dve: eek OAuth... quick hide! [20:20] NuckingFuts: deviantART's API uses OAuth [20:20] NuckingFuts: And I want to login via the username/password flow [20:21] shimondoodkin: what framework would you suggest somthing like express/connect etc? something quite "standard" [20:21] datapimp has joined the channel [20:22] sivy has joined the channel [20:22] CoverSlide: framework? [20:22] NuckingFuts: shimondoodkin: I am a proud user of ExpressJS [20:22] CoverSlide: express and connect are kind of standard [20:22] samyak has joined the channel [20:22] NuckingFuts: For my NodeJS web endeavors [20:22] CoverSlide: express contains connect [20:22] NuckingFuts: That it does :B [20:23] CoverSlide: just use connect if you dont need the simple sinatra-like stuff [20:23] shimondoodkin: maybe referense this: http://code.google.com/p/oauth2-php/ [20:24] CoverSlide: or this: http://tools.ietf.org/html/draft-ietf-oauth-v2-09 [20:25] ysynopsis has joined the channel [20:25] _jdalton has joined the channel [20:26] shimondoodkin: i will so a node js presentation for newbes i want to showthem it from the easy side [20:26] shimondoodkin: so/show [20:27] briznad has joined the channel [20:27] shimondoodkin: also maybe this http://oauth.googlecode.com/svn/code/javascript/ [20:28] jerrysv: has anyone referenced this yet? https://github.com/ciaranj/node-oauth [20:28] jerrysv: rudimentary oauth2 support, could be a good reference [20:29] shimondoodkin: that looks good [20:29] tdegrunt has joined the channel [20:30] davidcoallier has joined the channel [20:31] pietern has joined the channel [20:33] ardcore has joined the channel [20:34] jlecker has joined the channel [20:34] caolanm has joined the channel [20:34] shimondoodkin has joined the channel [20:35] cummingscm has joined the channel [20:35] ekryski has left the channel [20:35] eee_c has joined the channel [20:35] ardcore has left the channel [20:36] catshirt has joined the channel [20:36] techwraith has joined the channel [20:36] techwraith: You around Issacs? [20:37] er1c_ has joined the channel [20:37] techwraith: I have a question about how to bundle things up for deployment if you use npm for development [20:37] isaacs: hey [20:37] techwraith: Hi there :) [20:37] isaacs: techwraith: npm 1.0? just do `npm install` [20:39] techwraith: So I have an app that has a bunch of deps, I don't want to use npm on the production servers, is the best way to do it to just make a package.json file for the app? [20:39] Bradleymeck_ has joined the channel [20:39] techwraith: Some of the deps are linked too, not installed directly [20:40] techwraith: *locally [20:42] ardcore1 has joined the channel [20:42] _jdalton has left the channel [20:42] Chani: urk! [20:43] ardcore1 has left the channel [20:43] context: techwraith: uhh [20:43] context: you dont want to use npm so your going to use package.json [20:43] context: ? [20:43] Vladimir1 has left the channel [20:43] pifantastic has joined the channel [20:43] context: there is a touch of irony in there [20:44] mikeal has joined the channel [20:44] techwraith: lol, there is [20:45] Guest29468: isaacs let me know if you have any thoughts in regards to the whole plugin thing [20:45] Guest29468: https://github.com/visionmedia/connect-redis/commit/121e7adf9f18d331c64264fd40b5a5d0ded0a1ac [20:45] context: so just put the deps in node_modules and go from there. (providing node itself auto looks there) [20:45] Guest29468: is super ugly [20:45] context: you might need npm loaded anyway [20:45] context: id as why you dont want to use npm in production [20:45] context: but im afraid of what the answer would be [20:45] shimondoodkin: techwraith: https://github.com/shimondoodkin/npm read from "How to create or edit package.json file?" [20:45] techwraith: The ops guys are scared of it [20:45] techwraith: lol [20:45] isaacs: techwraith: yeah, make a package.json for each app, install your deps into ./node_modules, and then tar it up and send it or something. [20:46] techwraith: isaacs, is npm bundle still around? [20:46] isaacs: techwraith: if you *do* want to use npm to deploy (and that's fine, too), list them in the "bundledDependency" list [20:46] context: techwraith: then they should be scared of apt and gem [20:46] jarek has joined the channel [20:46] isaacs: techwraith: no, it bundles by default now [20:46] wadey: techwraith: if you use debian, I have been working on this: https://github.com/simplegeo/nodejs-pkg-tools [20:46] wadey: we deploy to production with debian packages [20:47] petrjanda has joined the channel [20:47] Venom_X has joined the channel [20:47] wailupe2k has joined the channel [20:48] wailupe2k: Working on getting the node.js bindings to work on BSD, NODE V 0.4.8, zeromq.node version 0.5.0. require('zeromq'); results in /libexec/ld-elf.so.1: /root/node_modules/zeromq/binding.node: Undefined symbol "_ZN2v811HandleScopeC1Ev" [20:48] wailupe2k: anybody out there have any idea what this could be? [20:48] wailupe2k: and Zeromq 2.1.7 , via bsd ports to /usr/local/[lib | include]. I have the perl ZeroMQ lib working great on the same machine [20:48] wadey: HandleScope is a v8 function, so looks like that isn't getting staticly linked? [20:49] wailupe2k: npm installs w/out error [20:50] wailupe2k: I have another machine running ubuntu10.10 which have the same versions of everything working,,, so yeah its some layout error bsd wise? [20:51] techwraith: issacs: after talking it over with the team, we've actually decided to use npm on the production server - the only issue we have is that we have some not quite ready to open source modules that we need to use - what's the best way to handle those? [20:51] techwraith: create our own npm repo? [20:51] Prism has joined the channel [20:53] amacleod has joined the channel [20:53] shimondoodkin: isaacs: why you don't merge contributions for npm? [20:53] jbpros has joined the channel [20:53] isaacs: shimondoodkin: i cherry-pick them a lot [20:53] jmoyers has joined the channel [20:53] isaacs: techwraith: sure, you can have a private reg. that's kind of a good idea. [20:53] briznad has joined the channel [20:54] techwraith: Awesome, are there any resources on that? [20:54] sveimac has joined the channel [20:54] isaacs: techwraith: npm help registry [20:54] techwraith: lol, doh! [20:54] isaacs: techwraith: http://github.com/isaacs/npmjs.org [20:55] cagdas has joined the channel [20:58] davidascher has joined the channel [20:58] bpierre has joined the channel [21:00] supster has joined the channel [21:03] malkomalko has joined the channel [21:05] berasa has joined the channel [21:05] Hexmare has joined the channel [21:07] piscisaureus has joined the channel [21:08] malkomalko: anybody using expresso for testing found a nice way to see how long each test is running? I'd like to analyze slow running tests [21:08] sledge has left the channel [21:09] amerine has joined the channel [21:09] Cheery has left the channel [21:09] nexxy has joined the channel [21:09] nexxy has joined the channel [21:10] adambeynon has joined the channel [21:10] temp01 has joined the channel [21:11] pietern has joined the channel [21:15] ExsysTech has joined the channel [21:17] slip: what's the secret to get an html form to trigger a resource edit in express-resources? [21:17] briznad has joined the channel [21:17] slip: I have CR working but not UD :( [21:18] context: slip: generally a form triggers UPDATE and not EDIT [21:18] slip: context: right, that's what I want [21:18] george2 has joined the channel [21:19] context: slip: you POST (PUT) to /resource/:id [21:19] Guest29468: slip [21:19] Guest29468: with methodOverride() [21:19] context: what guest29468 said. wasn't sure how express-resources handles that [21:19] slip: yayyy [21:19] context: exactly like rails. good to know [21:20] voodootikigod: hey [21:20] tjholowaychuk has joined the channel [21:20] voodootikigod: is anyone using a continuous integration rig [21:21] george2 has joined the channel [21:21] voodootikigod: or know of any currently in play? [21:21] flippyhead has joined the channel [21:21] voodootikigod: hudson seems way too overkill for what i need [21:21] george2 has left the channel [21:23] hugs has joined the channel [21:24] voodootikigod: anyone [21:24] beriberikix: tjholowaychuk: I'm trying to figure out the best way to dynamically add JS files in express/jade [21:24] jerrysv: tjholowaychuck++ [21:24] v8bot: jerrysv has given a beer to tjholowaychuck. tjholowaychuck now has 1 beers. [21:25] beriberikix: tjholowaychuk: I'm passing an array into the route and trying for loop in jade on the src attribute of a script tag [21:25] beriberikix: tjholowaychuk: do I have to buffer it or anything? [21:25] tjholowaychuk: where did all my beers go :( [21:25] tjholowaychuk: only 1 beers [21:25] tjholowaychuk: haha [21:25] tjholowaychuk: beriberikix um [21:25] McMAGIC--Copy has joined the channel [21:26] matbee has joined the channel [21:26] tjholowaychuk: depends what you are doing i guess [21:26] tjholowaychuk: but [21:26] tjholowaychuk: yeah that would work fine [21:26] asabil has joined the channel [21:26] davida has joined the channel [21:26] jerrysv: tjholowaychul++ [21:26] v8bot: jerrysv has given a beer to tjholowaychul. tjholowaychul now has 1 beers. [21:26] blup has joined the channel [21:26] jerrysv: tjholowaychuk++ [21:26] v8bot: jerrysv has given a beer to tjholowaychuk. tjholowaychuk now has 31 beers. [21:26] jerrysv: gah [21:26] jerrysv: there [21:26] beriberikix: I'm trying to do - each feature in features) script(src = feature) [21:26] tjholowaychuk: now they are back haha wtf [21:27] beriberikix: where feature is just an array of strings of js file urls [21:27] jerrysv: i added a c in there [21:27] tjholowaychuk: should work [21:27] jerrysv: my bad [21:27] george2 has joined the channel [21:28] george2 has left the channel [21:29] tjholowaychuk: beriberikix what's the issue? [21:30] beriberikix: Node is complaining that feature is not defined, but console.log says otherwise [21:30] malkomalko: tjholowaychuk: with your deploy script, does the repo line assume trying to clone the repository with the git protocol or ssh? [21:30] jlecker has left the channel [21:30] beriberikix: I'm just wondering if I need to escape it [21:30] jamescarr has joined the channel [21:30] malkomalko: we are trying to use it on our internal git server via ssh but having some problems [21:31] tjholowaychuk: malkomalko git:// [21:31] malkomalko: doh, ok [21:31] tjholowaychuk: beriberikix: do - console.log(feature) in jade [21:31] tjholowaychuk: or - console.log(locals) [21:31] tjholowaychuk: or - console.log(locals.feature) [21:31] tjholowaychuk: to see if it's really there [21:32] jamescarr: grrrr [21:32] tjholowaychuk: well "features" [21:32] beriberikix: okay, cool [21:32] Rodtusker has joined the channel [21:32] tjholowaychuk: i should add hinting in dev for the object name [21:32] tjholowaychuk: for partials [21:32] sirkitre_ has joined the channel [21:33] tjholowaychuk: malkomalko sorry nvm that was for updating deploy [21:33] tjholowaychuk: "run "git clone $repo $path/source"" [21:33] malkomalko: yah, just read the source [21:33] malkomalko: going to clone and see if we can do a little tweakola [21:33] malkomalko: looks like a nice little bash script [21:34] malkomalko: very handy [21:34] ibolmo has left the channel [21:35] shimondoodkin has joined the channel [21:36] shimondoodkin: shimondoodkin++ [21:36] v8bot: shimondoodkin: Don't cheat! You can't give a beer to yourself. [21:38] samsonjs has joined the channel [21:38] bergie has joined the channel [21:39] shimondoodkin: v8bot: give me a beer [21:39] v8bot: shimondoodkin: Use v8: to evaluate code or "`v commands" for a list of v8bot commands. [21:39] shimondoodkin: v8bot:`v commands [21:39] v8bot: shimondoodkin: Use v8: to evaluate code or "`v commands" for a list of v8bot commands. [21:39] malkomalko: tjholowaychuk: looks like we're getting 'Permission denied, please try again' without the use of a key, where if we take the commands it's trying to run and to it on the server manually it works [21:39] malkomalko: just a heads up, we'll figure it out [21:40] shimondoodkin: v8bot:v commands [21:40] v8bot: shimondoodkin: Use v8: to evaluate code or "`v commands" for a list of v8bot commands. [21:40] tjholowaychuk: malkomalko hmm that's odd [21:40] yumike has joined the channel [21:40] shimondoodkin: v8bot:`v commands` [21:40] v8bot: shimondoodkin: Use v8: to evaluate code or "`v commands" for a list of v8bot commands. [21:40] springify has joined the channel [21:40] shimondoodkin: v8bot:`v [21:40] v8bot: shimondoodkin: Use v8: to evaluate code or "`v commands" for a list of v8bot commands. [21:40] shimondoodkin: nay v8 is not working [21:41] gkatsev: `v commands [21:41] v8bot: gkatsev: Commands: Type `v . Optionally, type `v @ to send to a specific user. `v Commands are: about, beers, commands, git, google, help. Other commands: v8, `re, `pcre, `ref. Type `v help for more information. Join #v8bot for more support. [21:41] malkomalko: ahh I think I know why tjholowaychuk.. we're trying to use the repo with an ssh git url that is password protected, so it must be that deploy isn't asking for that password, looks like we may have to use a user with ssh keys to the git machine [21:41] gkatsev: shimondoodkin: you're doing it wrong. [21:42] shimondoodkin: `v commands [21:42] v8bot: shimondoodkin: Commands: Type `v . Optionally, type `v @ to send to a specific user. `v Commands are: about, beers, commands, git, google, help. Other commands: v8, `re, `pcre, `ref. Type `v help for more information. Join #v8bot for more support. [21:42] MikeMakesIt has joined the channel [21:42] tjholowaychuk: malkomalko: yeah if it's in authorized_keys you should be good to go [21:43] malkomalko: just tried.. same probs [21:43] tjholowaychuk: hm [21:44] kmwallio has joined the channel [21:44] shimondoodkin: gkatsev:thanks [21:44] gkatsev: :) [21:44] gkatsev: v8: "and you eval this way"; [21:44] v8bot: gkatsev: "and you eval this way" [21:46] shimondoodkin: v8: this [21:46] v8bot: shimondoodkin: {console:{log:function (x){console.out.push(pp…,out:[]},print:function print(x){console.log(x)…,pp:function pp(o,depth){return pp_r…,pp_r:function pp_r(o,d){var a=[],p if…} [21:47] shimondoodkin: v8: console [21:47] v8bot: shimondoodkin: {log:function (x){console.out.push(pp…,out:[]} [21:47] gkatsev: no DOM, so, no window or document [21:47] TooTallNate: v8: require [21:47] v8bot: TooTallNate: ReferenceError: require is not defined [21:48] gkatsev: it runs on node but it doesn't run node [21:48] shimondoodkin: v8++ [21:48] v8bot: shimondoodkin has given a beer to v8. v8 now has 1 beers. [21:48] shimondoodkin: v8bot++ [21:48] v8bot: shimondoodkin has given a beer to v8bot. v8bot now has 26 beers. [21:50] TheJH: v8bot++ [21:50] v8bot: TheJH has given a beer to v8bot. v8bot now has 27 beers. [21:54] beriberikix: Gah, I'm getting an SyntaxError: Unexpected token . [21:54] beriberikix: with little details... [21:54] context: reading in a file ? [21:55] context: like require() or something ? [21:56] beriberikix: It has something to do with my route middleware [21:56] beriberikix: when I call next in Express [21:57] beriberikix: There's no syntax errors in the middleware itself [21:57] nornagon_ has joined the channel [21:58] hipe: tjholowaychuk: is there an example of an espresso test that runs tests against something that loads asynchronously? i need to find a way to trigger the running of the tests after my express app is done loading (there is a model and etc) thx [21:59] dadsasfgds has joined the channel [22:01] context: node needs an easier way to load/require json files [22:01] beriberikix: tjholowaychuk: okay, the syntax I was using " - each feature in features) script(src=feature)" was throwing an unexpected . error [22:02] hipe: then JSON.parse(File.readSync('some/thing.json')); // or whatever, context ? [22:02] tjholowaychuk: beriberikix why do you have that ) [22:02] tjholowaychuk: after features [22:02] context: hipe: yeah. we should have JSON.read('file.json') :x [22:02] context: ACTION hides [22:03] hipe: haha do we get to call things ruby-y in node the way we called things perly in ruby? [22:03] beriberikix: tjholowaychuk: Crap. I fat-fingered [22:04] beriberikix: tjholowaychuk: It all works now. [22:04] beriberikix_ has joined the channel [22:05] hipe: ACTION wonders if he's the last person on earth still using RDBMS  [22:05] SubStack: hipe: I call things "pythonic" as an insult [22:05] hipe: haha [22:06] beriberikix_: tjholowaychuk: thx [22:06] malkomalko: tjholowaychuk: got it working.. thanks [22:06] tjholowaychuk: malkomalko: what was it? [22:06] SubStack: hipe: you can pass a callback to .listen() [22:06] SubStack: for your tests [22:06] malkomalko: I find it a little weird that the deploy command comes before the where all others come after though [22:06] hipe: o_O? [22:06] malkomalko: just some bonehead shit on our end [22:06] SubStack: fires after the server is ready [22:06] Dinosaurus has joined the channel [22:07] ben_alman: does anyone know if there are any alternatives to https://github.com/fat/smoosh ? [22:07] tjholowaychuk: malkomalko what do you mean [22:07] malkomalko: Usage: deploy [options] [command] [22:07] perezd has joined the channel [22:07] malkomalko: reading that you think.. deploy stage REV [22:07] hipe: SubStack: i guess my problem is i don't know how to begin runing espresso tests other than $ expresso some.file.js which then immediately wants to run every method that that file exports [22:07] malkomalko: if you look under the commands [22:07] malkomalko: but it's actually, deploy REV stage [22:08] tjholowaychuk: shouldn't be [22:08] tjholowaychuk: $ deploy stage [22:08] tjholowaychuk: $ deploy prod [22:08] tjholowaychuk: $ deploy prod n.n.n [22:08] tjholowaychuk: etc [22:08] malkomalko: negative [22:08] malkomalko: at least the source in trunk [22:08] malkomalko: check it out and let me know [22:08] Guest27158_: What is the correct method to add a setter in Mongoose? [22:08] malkomalko: but I had to type: deploy 3636382 stage [22:09] malkomalko: deploy stage 3636382 returned: [3636382] config section not defined [22:09] tjholowaychuk: malkomalko hm.. strange [22:09] tjholowaychuk: the rev is only really for internal usage [22:09] malkomalko: at least, that's what is happening here, let me know if you see otherwise [22:09] tjholowaychuk: though it can be passed as well but yeah that looks like a bug [22:09] softdrink: dumb wrong-channel ruby question: what's ruby's equivalent of js's delete? [22:09] mgkimsal has joined the channel [22:10] justinTNT has joined the channel [22:10] SubStack: hipe: here is an example https://github.com/substack/node-browserify/blob/master/test/watch.js [22:11] davidban_ has joined the channel [22:11] hipe: SubStack: if this works for me you just saved me from going into pseudo-production with this untested-ass code of mine. thx so much. i was just feeling so dirty imaginging skipping it. next stop TDD yay [22:12] malkomalko: I'll file a bug report, looks like the the revisions being written to .deploys is buggy too [22:12] malkomalko: looks like it's duplicating the same revisions over and over again [22:12] malkomalko: anyway, I'll shut up and go fix/log things :) [22:12] malkomalko: thanks for this! [22:13] KATT has joined the channel [22:13] themiddleman_itv has joined the channel [22:14] timmywil has joined the channel [22:14] KATT: hey, is it possible to include content-length in heads on https.request? The server keeps giving me err 411 [22:14] TomY has joined the channel [22:15] perlmonkey2 has joined the channel [22:16] tjholowaychuk: malkomalko i know what that ref issue is [22:16] boogyman has joined the channel [22:17] Opaque has joined the channel [22:17] JoshC1 has joined the channel [22:22] c4milo has joined the channel [22:23] stonebranch has joined the channel [22:24] copongcopong has joined the channel [22:24] nexxy has joined the channel [22:25] niftylettuce: tjholowaychuk: \o [22:25] tjholowaychuk: yo [22:26] niftylettuce: how goes it lately? new projects/progress? [22:26] tjholowaychuk: not bad, just working on some internal stuff [22:26] niftylettuce: nice, you should put a link to your Github from your homepage [22:27] skm has joined the channel [22:27] tjholowaychuk: not sure if i can [22:27] tjholowaychuk: im a tumblr noob [22:27] skm has joined the channel [22:27] niftylettuce: oh thats tumblr [22:28] niftylettuce: I need to tackle some of these Stylus issues, they are piling up [22:28] skm has joined the channel [22:28] niftylettuce: if only 48 hrs in a day o_O [22:28] niftylettuce: brb [22:28] tjholowaychuk: haha totally [22:28] tjholowaychuk: stylus bugs? [22:29] skm has joined the channel [22:29] ben_alman: what do you guys use for code quality? [22:29] niftylettuce: yeah i have a bunch of nib mixins to push too [22:29] ben_alman: linting, etc [22:29] niftylettuce: you'll like some hopefully :) [22:29] niftylettuce: brb reboot, debian squeeze sound driver issues... AGAIN [22:29] tjholowaychuk: nice :D [22:29] skm has joined the channel [22:30] DTrejo: ben_alman: ty for writing hashchange /that's all [22:30] ben_alman: np :) [22:30] BillyBreen has joined the channel [22:30] DTrejo: (bbq) [22:30] mikeal has joined the channel [22:32] niftylettuce has joined the channel [22:35] DTrejo: ben_alman: if you ask again and ping tjholowaychuk, he'll probably give you a good answer [22:35] tjholowaychuk: for what? [22:36] DTrejo: he was asking about what people use for code quality [22:36] jamescarr: :) [22:36] tjholowaychuk: ohhh [22:36] tjholowaychuk: i dont use anything [22:36] tjholowaychuk: my eyes [22:36] tjholowaychuk: and my brain [22:36] tjholowaychuk: that's about it [22:36] DTrejo: I use javascriptlint just b/c it's integrated already, and less annoying than jslint [22:36] DTrejo: but that's all [22:36] DTrejo: ofc I don't do anything serious [22:37] ben_alman: well it's nice to have a code quality process especially if people are going to contribute to one of your projects [22:38] ben_alman: that way you can instantly reject things that don't pass lint etc [22:38] tjholowaychuk: i just look at it and if it doesnt look like my project [22:38] tjholowaychuk: then i reject [22:38] ben_alman: but if it's stuff you really want in there, you need to hand-hold the pull requester [22:38] ben_alman: which is :/ [22:39] tjholowaychuk: if it's not bad i'll just change it but sometimes it's like if( foo )\n{\n\n}else{} [22:39] liar has joined the channel [22:39] OhMeadhbh has joined the channel [22:40] OhMeadhbh: holy carp. 625 peeps in the #node channel? [22:40] adnam: i'm popular [22:41] BillyBreen: we had 666 before the rapture [22:42] OhMeadhbh: @BillyBreen - guess that means the tagline for node can be "the server side java network application framework of the beast" [22:42] OhMeadhbh: s/java/javascript/ [22:42] OhMeadhbh: (been a long day) [22:42] sjbreen has joined the channel [22:42] mscdex: node.js rules! [22:43] OhMeadhbh: @mscdex - good to hear i'm in the right channel. [22:44] italic has joined the channel [22:47] bbttxu has joined the channel [22:47] cafesofie has joined the channel [22:49] wadey has joined the channel [22:49] Ken has joined the channel [22:49] [[zzz]] has joined the channel [22:51] LowValueTarget has joined the channel [22:52] segdeha has joined the channel [22:52] rauchg has joined the channel [22:52] segdeha: anyone here have experience doing BDD with jasmine-node and jsdom? http://stackoverflow.com/questions/6220889 [22:53] ParadoxQuine has joined the channel [22:53] omni5cience__ has joined the channel [22:53] Adman65 has joined the channel [22:54] lukstr: oo office hours [22:54] omni5cience___ has joined the channel [22:54] lukstr: too bad I'm basically on the opposite side of the continent [22:57] davidascher has joined the channel [22:57] arthur_kalm has joined the channel [22:58] Ken has joined the channel [22:58] lukstr: how much should I pay the kid who's cutting my lawn [22:59] lukstr: totally node.js related [22:59] CoverSlide: in bitcoin [22:59] blkcat: ^ [22:59] CoverSlide: about .2 BC [22:59] lukstr: too bad I don't have any :P [23:00] supster has joined the channel [23:01] wailupe2k has left the channel [23:03] mscdex: pretty soon we'll have qubitcoins [23:03] mscdex: ! [23:04] jacter1 has joined the channel [23:04] __jgr has joined the channel [23:06] mikeal has joined the channel [23:07] reid has joined the channel [23:08] hassox has joined the channel [23:09] ParadoxQuine has joined the channel [23:11] DTrejo: lawncoins [23:11] DTrejo: isaacs: if there's someone bored at the workup you should have them add require-analyzer to npm [23:12] reid has joined the channel [23:12] DTrejo: if there's no one, I may get to it someday, very far away [23:12] DTrejo: oh, I need to publish my "how to help with node, if you want to get involved" list of project ideas [23:12] DTrejo: hmm [23:13] sh1mmer has joined the channel [23:13] Ken has joined the channel [23:14] skm has joined the channel [23:16] gsmcwhirter has joined the channel [23:19] Dinosaurus has joined the channel [23:20] pifantastic has joined the channel [23:23] segdeha: what's the difference between global and GLOBAL? [23:23] DTrejo: segdeha: one is defined and one is not? [23:25] rworth has joined the channel [23:25] segdeha: DTrejo: well, in my env, i get the same result when i console.log the two: [object global] [23:25] DTrejo: interesting [23:25] DTrejo: when I run `node` from the command line, global has nothing in it [23:25] DTrejo: but GLOBAL has a lot [23:26] azeroth__ has joined the channel [23:26] ChrisPartridge has joined the channel [23:27] nanreh_ has joined the channel [23:31] gsmcwhirter has joined the channel [23:34] igl1 has joined the channel [23:34] sechrist has joined the channel [23:35] dgathright has joined the channel [23:37] jerrysv: ryah: office hours open? [23:37] _jgr has joined the channel [23:39] brainproxy: someone yesterday posted a link to some code where ryah appears to be implementing a built-in mechanism to spawn workers from within a node.js program [23:39] CoverSlide: yes, the child_process.fork() [23:39] nornagon_ has joined the channel [23:40] CoverSlide: it's in the upcoming branches, won't be in the 4.x because its an api change [23:40] brainproxy: is there a write-up on how that will be used? [23:40] brainproxy: right [23:40] gsmcwhirter has joined the channel [23:40] CoverSlide: apparently the first argument is a module to run [23:40] CoverSlide: and it just runs it [23:41] CoverSlide: like fork("./lib/app") [23:41] brainproxy: is it a shared-nothing kind of deal [23:41] CoverSlide: there are messaging events [23:41] CoverSlide: havent delved too deep into it [23:41] lukstr: I assume the context is at least duplicated? [23:42] kylefox has joined the channel [23:42] pquerna: arrrrrr meetings [23:45] rchavik has joined the channel [23:50] zmbmartin: Is it better to set an object to "" or null? [23:50] brainproxy: it depends [23:51] flubba has joined the channel [23:51] zmbmartin: I have a reset_password_token and reset_password_date when the password is reset should I null them or set to ""? [23:51] zmbmartin: Or does it matter? [23:51] tonymilne has joined the channel [23:51] timmywil has joined the channel [23:52] brainproxy: will your code ever conditionally check for a method or some property on the object you'd set to null? [23:52] brainproxy: if so, that will case a TypeError [23:52] zmbmartin: No I just want the token cleared. [23:53] zmbmartin: I do query that field for the tokens will null come back with an error? [23:53] zmbmartin: in mongo with mongoose [23:53] christopherbull has joined the channel [23:53] zaxxon99 has joined the channel [23:54] brainproxy: try this in REPL to see what i mean: var x = null; if (x.myProp) { true } // -> throws a TypeError [23:54] chrislorenz has joined the channel [23:55] brainproxy: same thing happens with undefined [23:56] brainproxy: otoh, both "" and null are falsy [23:56] brainproxy: if (<""|null>) { true } else { false } // -> false [23:57] zmbmartin: brainproxy: I just tried setting the token and token date to null and it does not affect my query [23:57] context: uhh [23:57] christopherbull: hey guys, i'm having some serious trouble grokking how to actually implement something in haraka. I'm reading the docs but I still haven't jumped a mental barrier I think. What I want is pretty simple: when an email comes in to a certain address, sending address + body become a JSON object which is POST'd to a local api call within our app cluster. I understand that I need to make a plugin, but I'm kinda lost as to how to actually do that (and [23:57] christopherbull: getting very confused by the docs) is anyone able to explain what the simplest way to do this is? thanks :) [23:57] context: brainproxy: how is that even legal [23:57] pjacobs has joined the channel [23:57] brainproxy: context: by <...> I was just saying either value [23:57] brainproxy: pseudo-code [23:58] gazumps has joined the channel [23:58] context: oh ok :x guess i read it out of context [23:58] brainproxy: I could have used: if (null || "") ... [23:58] brainproxy: sorry, I wasn't clear [23:58] CoverSlide: there's no callback when a email is recieved? [23:59] chrislorenz has joined the channel [23:59] ji0n has joined the channel