[00:00] saschagehlich has joined the channel [00:02] piscisaureus: hmm I dont know then [00:06] JianMeng has joined the channel [00:06] orls_ has joined the channel [00:07] creationix has joined the channel [00:07] cloudhea1: piscisaureus: thanks for the help. I think it must be something wrong with the bin I'm trying to run [00:07] ryan_a has joined the channel [00:07] creationix: mikeal: sup [00:07] cloudhea1: don't see what else it could be [00:07] mikeal: hey [00:07] mikeal: webapp [00:07] mikeal: questions [00:07] mikeal: we're actually really in to this [00:07] mikeal: we were considering doing some proof of concept stuff like this [00:07] creationix: cool [00:07] mikeal: in the TODO [00:07] tjholowaychuk has joined the channel [00:07] creationix: you also saw node-gir I started the other day? [00:07] dguttman has joined the channel [00:08] mikeal: i think it would be ideal to replace jsc with v8 [00:08] creationix: mikeal: so it could share contexts? [00:08] mikeal: and have it pull contexts out of the v8 process you start the webkit from [00:09] creationix: yeah, that would be pretty cool [00:09] mikeal: so like, you're starting node and creating a webkit view [00:09] creationix: yep [00:09] mikeal: that webkit view should just get contexts out of the v8 you start it from [00:09] mikeal: and have a nice module that you could call from the node server end that iterates over the contexts [00:09] mikeal: and maybe even have events when new ones are created [00:10] creationix: mikeal: sounds good [00:10] mikeal: but you were a little hesitant [00:10] creationix: I guess that's plenty secure since the browser contexts can't see the main node context [00:10] mikeal: and i was wondering why [00:11] creationix: the danger is in practice [00:11] mikeal: even if you want to expose everything to the contexts in webkit, you can make it all copy on write [00:11] creationix: once the node context interacts with references from a browser context, there could be handles to go up to node [00:11] Aria has joined the channel [00:12] creationix: yeah, it's not hard to solve if you're careful, I was just worried about people who don't understand the security issues and making mistakes [00:12] jakehow has joined the channel [00:12] kmduke has joined the channel [00:12] mikeal: hrm.... [00:12] mikeal: i think, if you just write it without considering security [00:13] mikeal: the app platform that gets built on top of this [00:13] mikeal: could just disable remote script [00:13] creationix: so, for example, I want to attach a callback to the onclick of a button that does something in node space [00:13] mikeal: so all the script would have to be written by the app author [00:13] mikeal: then it's not really an issue [00:13] saikat has joined the channel [00:13] mikeal: that's fine, i mean you kind of want that, desktop app developers get access to filesystem/sockets/etc [00:13] mikeal: that's pretty much normal [00:14] creationix: right, but what if they put a link to some external webpage [00:14] mikeal: the real concern is throwing a script tag that pulls from the internet in there [00:14] creationix: and that page has a link to some third-party site [00:14] creationix: I guess it wouldn't be hard to restrict the domain and keep it from changing [00:14] mikeal: or [00:14] mikeal: when webkit views get created [00:14] mikeal: and need a js context, check the domain [00:15] mikeal: you know it at that point [00:15] mikeal: if it's a remote url, it doesn't get access to node [00:15] creationix: ok, so iframes would get a vanilla context [00:15] creationix: that should work as long as cross-domain restrictions are working [00:15] colinclark has joined the channel [00:16] techwraith: creationix, mikeal: this sounds fun, what are we talking about? [00:16] creationix: techwraith: https://github.com/creationix/webapp [00:16] mikeal: creationix: i think all browsers disable cross-domain to a file:// url [00:16] creationix: mikeal: well, that's not a safe assumption [00:16] creationix: webkit is very flexible [00:16] mikeal: i bet webkit is already locked down in that regard [00:16] mikeal: if it isn't already, i'm sure we can make it [00:17] creationix: right, just need to remember to check [00:17] creationix: this is actually a *lot* like our app environment in webOS [00:17] mikeal: except you don't have node.js in the same context :) [00:17] creationix: right, but we have other private JS apis [00:18] mikeal: yup [00:18] creationix: the browser app is written in javascript, and it renders third-party pages [00:18] Know1edge has joined the channel [00:19] Know1edge has left the channel [00:19] _fat has joined the channel [00:19] creationix: mikeal: so, what's your use case? I want to make desktop apps using node. [00:19] mikeal: same [00:20] mikeal: we have desktop clients in Air [00:20] mikeal: and it's painful [00:20] mikeal: and we can't really fix it [00:20] mikeal: most of our code is javascript, not actually actionscript [00:20] mikeal: so a transition to another webkit thing would be doable [00:20] mikeal: if it wasn't for all the fiddly bits [00:21] tjholowaychuk: mikeal: ooo air :( that sucks [00:21] mdaisuke has joined the channel [00:21] tjholowaychuk: feel your pain [00:21] creationix: mikeal: do you care about cross-platform deployment of the desktop apps? [00:21] mikeal: as bad as it is, it's the farthest along of cross-platform desktop app frameworks [00:21] mikeal: creationix: yes [00:21] creationix: same here [00:21] mikeal: air is basically a really shitty webkit binding to their terrible actionscript vm [00:21] creationix: right now I'm using webkitGTK, but I don't care what is used as long as it's easy to bundle [00:22] mikeal: with some native additions to HTML that don't actually work and break scrolling [00:22] creationix: webkitgtk was easy to bind to on ubuntu, I've never written a node binding before [00:22] pyrony: creationix: thanks for all your terrific articles [00:22] creationix: pyrony: :) [00:23] ezl has joined the channel [00:23] creationix: mikeal: well, if you guys have any resources to help that would be great. Our webkit guys are swamped and this isn't high priority yet so it's just me in my free time. [00:23] mikeal: i don't even know where to start with trying to compile this [00:23] creationix: you want to test it? [00:23] mikeal: yeah [00:23] mikeal: on mac [00:23] creationix: node-waf configure build [00:24] creationix: but you need lots of gtk headers [00:24] creationix: it would be hard [00:24] creationix: maybe it would be best to have multiple bindings, one for each platform [00:24] creationix: I head cocoa's webkit is easy to bind to [00:24] mikeal: what would it take to get off of that and on just webkit [00:24] creationix: *hear [00:24] Hoopi has joined the channel [00:24] Hoopi: Hello [00:24] creationix: the problem is that vanilla webkit doesn't have a painter or a window system [00:25] mikeal: oh i see [00:25] creationix: it's just the html and css engine [00:25] mikeal: ok, i'm sitting down with Bob Remeika tomorrow [00:25] EyePulp has joined the channel [00:25] mikeal: he's been through the webkit source a bit [00:25] [[zz]] has joined the channel [00:25] mikeal: i'll see what he can do [00:25] creationix: qt might be easier than gtk, it's got a cross-platform painter [00:25] techwraith: mikeal: If I have some time around then, I'd like to sit in [00:25] mikeal: i think we'rd rather bind to native [00:26] mikeal: techwraith: i think we're doing it in the east bay, working from a coffee shop in our neighborhood tomorrow [00:26] creationix: webkitgtk is standard in gnome these days, cocoa has webkit built-in too [00:26] techwraith: ah, nvm [00:26] creationix: not sure about windows [00:26] jmorris: can someone tell me why config never gets set to data? http://pastie.org/1837388 [00:26] mikeal: binding to native means that we can have a project in the native env to build out the chrome around the webkit view [00:27] mikeal: which i think is preferable [00:27] Hoopi: can someone help me? I'm trying to run a script which requires some file not included in the repository on github, so i commented it out and now i get: DEBUG: Listening on 6000 [00:27] creationix: mikeal: oh, so making our own mini gtk or qt that just implements the window? [00:27] ChrisPartridge: jmorris: Because your function is returning before the callback completes [00:28] creationix: titanium and chromium would be good sources of inspiration I think [00:28] jmorris: ChrisPartridge: ok, tank you :) [00:28] mikeal: titanium does some funky shit [00:28] gavin_huang has joined the channel [00:28] mikeal: chrome might be good tho [00:28] creationix: funky, yes, but it does bind to native I believe [00:28] Hoopi: can anyone help? [00:29] mikeal: they have a layer between what you write and what they do in nativ [00:29] mikeal: Chrome probably just has raw native code the implements a consistent UI [00:29] Tobsn: http://arstechnica.com/gaming/news/2011/04/sony-admits-utter-psn-failure-your-personal-data-has-been-stolen.ars [00:29] creationix: Hoopi: we need more details to help, that's very vague [00:29] xeodox has left the channel [00:30] creationix: mikeal: so we're talking xlib, win32, and cocoa? [00:30] creationix: hmm, or maybe clutter instead of xlib [00:30] mikeal: i don't have an opinion on xlib [00:30] EyePulp has joined the channel [00:30] mikeal: for linux i think we could pick gtk or qt or something same [00:30] mikeal: er sane [00:30] creationix: the problem is webkit doesn't even have a rasterizer, you would have to implement all that [00:31] mikeal: that's the part we can generalize [00:31] jmorris: ChrisPartridge: i'm having a hard time thinking of how i would assign data to config :/ [00:31] mikeal: i mean, if we don't do this, there isn't much added that you can't get with titanium or air or something like that [00:31] Hoopi: creatinix: here: http://pastie.org/1837399 [00:31] Hoopi: creationix: http://pastie.org/1837399 [00:32] jpld has joined the channel [00:32] ChrisPartridge: jmorris: This for an express app or something? [00:32] jmorris: ChrisPartridge: yes [00:32] ChrisPartridge: jmorris: Check this out - https://github.com/visionmedia/express-configuration [00:32] creationix: Hoopi: no idea, what is griedguild.js ? [00:32] creationix: *griefguild.js [00:32] Hoopi: something for minecraft [00:32] Hoopi: github.com/koryk/griefguild [00:33] Hoopi: i didn't make it though. [00:33] jmorris: ChrisPartridge: thanks [00:33] Hoopi: should i try and download this? and put it in the addons folder? http://code.google.com/p/jsdap/source/browse/trunk/server/jspack.js?r=73 [00:33] creationix: no idea, is there anything in the addons folder? [00:34] Hoopi: yes [00:34] Hoopi: a folder named zlib [00:34] creationix: yeah, no clue, better ask the author [00:34] galaxywatcher has joined the channel [00:34] Hoopi: okay [00:35] timmywil has joined the channel [00:38] Vekz has joined the channel [00:38] jacksonmills has joined the channel [00:39] brendanjerwin has joined the channel [00:42] amscotti has joined the channel [00:42] slpsys has joined the channel [00:43] jcohen has joined the channel [00:44] jcohen: hey folks, just to make sure I'm not crazy… trying to use zombie.js to test an app that makes an synchronous xhr request in the browser. [00:45] jcohen: That'd be impossible to support w/ Zombie due to the fact that there are no synchronous http methods exposed, right? [00:45] jcohen: (well, impossible short of creating a custom module to expose a synchronous http client) [00:48] lhoffman has joined the channel [00:49] defeated has joined the channel [00:49] Nexxy has joined the channel [00:49] Nexxy has joined the channel [00:49] creationix: jcohen: what role does node take in this testing? [00:50] creationix: a sync request from the browser doesn't require a sync response in the server [00:50] creationix: but, yes, there is no sync http client in node [00:50] jcohen: It's via Zombie [00:50] jtsnow has joined the channel [00:50] creationix: I guess I don't know what Zombie is [00:50] jcohen: headless testing [00:50] ParadoxQuine has joined the channel [00:50] techwraith: creationix: Zombie is a headless browser that uses node [00:51] creationix: ok, so it fakes the browser and is the http client [00:51] nvardar has joined the channel [00:51] techwraith: yup [00:51] creationix: yeah, don't do that, who wants to test sync xhr anyway? ;) [00:52] jcohen: creationix: it's a long story, but basically the app gets run via a file: url and we use sync xhr to read local files [00:52] techwraith: 0.0 [00:52] jcohen: creationix: thanks for confirming though, wanted to be sure I wasn't giving up too easily ;) [00:53] techwraith has joined the channel [00:53] wilmoore has joined the channel [00:56] k1ttty has joined the channel [00:56] MikhX has joined the channel [00:58] kriskowal has joined the channel [00:59] qbert has joined the channel [00:59] qbert: having problem with recursive functions and asynch execution :S [01:00] sechrist has joined the channel [01:00] kaueraal has joined the channel [01:00] zakabird has joined the channel [01:00] zaka has joined the channel [01:01] kriskowal: qbert: you might find that promises simplify that process https://github.com/kriskowal/q [01:01] schloerke has joined the channel [01:02] Vekz has joined the channel [01:02] kriskowal: although there are a variety of ways to join multiple callbacks into a single eventual callback, but you'll need to think about error propagation and all that [01:03] qbert: this is just what I wanted actually [01:03] qbert: but I'd like to know how to do it myself - is it easy to explain how do join multiple callbacks into a single one ? [01:04] Vekz: If i'm launching multiple commands through child_process.exec(); Are they all executed in the same environment? e.x. child_process.exec("rvm use 1.2.9@demo; rails c;"); would that rails process be in the same environment as the rvm? [01:04] qbert: I mean I'll use the library but id like to know how its done :) [01:04] Emmanuel__ has joined the channel [01:04] techwraith: Vekz: yes [01:04] kriskowal: there are a variety of quick hacks, like having a callback you give to all of your calls that counts all of the calls and forwards the results to a single callback when the counter drops to zero [01:05] techwraith: Vekz: However, I'm not sure if they would be if they were in two different exec calls. [01:05] kriskowal: qbert: or calling the eventual callback with an error at the first time your accumulator callback gets an error [01:05] Aria: What do you mean 'environment'? [01:06] kriskowal: qbert: but Q does it a bit differently, where each "promise" is either in a resolved or unresolved state and queues up a bunch of "messages" like event listener requests until the promise is in the resolved state. [01:06] ditesh|cassini has joined the channel [01:07] techwraith: Aria: I was assuming this: http://en.wikibooks.org/wiki/Guide_to_Unix/Environment_Variables [01:07] kriskowal: qbert: so an unresolved promise contains an array of messages, like "when this is resolved, call me" [01:07] Vekz: yes unix Environment variables [01:07] mynyml has joined the channel [01:08] Aria: Ah. Yes, assuming your shell doesn't change them ;-) [01:08] kriskowal: qbert: and when it's resolved, and when messages are sent to the promise after it's been resolved, they get sent to the next promise down the line, ultimately to a promise that interacts with the "fulfilled" value for you [01:08] Aria: Environment variables are inherited by copying into each subprocess. [01:08] Aria: So node's get copied into the shell's in the command1;command2 case, then the shell's copied into each subprocess's. [01:08] kriskowal: qbert: it's this message forwarding that allows exceptions to propagate without explicit error code in every callback [01:09] demastrie has joined the channel [01:09] qbert: kriskowal, nice! [01:09] Vekz: I am able to display successful output from the rvm command using child_process.stdout but then I get error output from the rails command stating that its missing the rvm stuff as if they are not being sharked [01:09] kriskowal: qbert: also has some neat properties if you're using promises in other workers over long round trip network connections. you can queue up a bunch of messages to a promise before its fulfilled so the remote object can respond to them quickly [01:09] Vekz: shared* not sharked lol [01:10] kriskowal: qbert: that's https://github.com/kriskowal/q-comm in a nutshell. promise piplining [01:10] jcohen has left the channel [01:10] techwraith: Aria, right, but in the exec('command1'); exec('command2') case, if you set a variable in command 1, you can't use it in command 2, right? [01:10] kriskowal: which admittedly has some structural issues that cropped up when NPM changed [01:11] kriskowal: qbert: in any case, send me a message on github when you've got more questions. [01:12] dguttman has joined the channel [01:15] qbert: kriskowal, will do, I'll be using this heavliy for something I'm working that contains a bunch of asynch tasks [01:15] JusticeFries has joined the channel [01:17] Aria: techwraith: Right. But nor can you neccesarily in the multi-command case. If you're using a shell, yes, it'll be set above command1 and command2; if you set it /in/ command1, no, command2 won't see it. [01:18] Aria: export foo=bar; command1; command2 -- both see it. foo=bar command1; command2 -- only command1 sees it. And env foo=bar command1; command2 -- no, only command1 sees it. [01:19] abraxas has joined the channel [01:20] Vekz: Aria: that might be the problem i'm seeing [01:21] Aria: Or, set it in _node's_ environment, and then they ALL see it. [01:23] random123 has joined the channel [01:24] zkirill has joined the channel [01:27] heythisisdave has joined the channel [01:31] indiefan2a has joined the channel [01:31] rburhum has joined the channel [01:31] MikhX has joined the channel [01:32] eee_c has joined the channel [01:32] forzan has joined the channel [01:33] brolin_ has joined the channel [01:34] gtramont1na has joined the channel [01:39] ibrahimal-rajhi has joined the channel [01:44] indiefan2a1 has joined the channel [01:50] djktno has joined the channel [01:55] ibrahimal-rajhi: Hey, can someone help me out with a Mongoose problem? I detailed the situation over at stackoverflow: link [01:55] ibrahimal-rajhi: link: http://stackoverflow.com/q/5794834/568420 [01:55] ibrahimal-rajhi: really breaking my balls [01:56] mikeal has joined the channel [01:58] isaacs has joined the channel [02:00] schloerke has left the channel [02:00] zentoooo has joined the channel [02:03] hunterloftis has joined the channel [02:03] hunterloftis: Any good mongodb solutions? Mongoose is a bit too formal/abstract for me, I'd prefer a closer-to-native interface. [02:05] qbert_ has joined the channel [02:05] cbiscardi: hunterloftis: node-mongodb-native [02:05] rchavik has joined the channel [02:05] rchavik has joined the channel [02:05] pyrony has joined the channel [02:05] hunterloftis: cbiscardi - thanks - taking a look at that now. Does it seem to have a sort of clunky API? Maybe I'm being too demanding. [02:05] hunterloftis: I just have enjoyed using mongo from the command line [02:05] no-gooder has joined the channel [02:05] hunterloftis: (which is a nicely simple interface) [02:06] tjholowaychuk: hunterloftis: mongodb-native is what mongoose uses behind the scenes [02:06] tjholowaychuk: its really REALLY sloppy though [02:06] tjholowaychuk: if you ever need to digg into it [02:06] hunterloftis: tjholowaychuk: Yeah I saw that, but didn't think I'd enjoy working with it [02:06] tjholowaychuk: its almost like a machine generated port or something haha [02:06] tjholowaychuk: that bad [02:06] hunterloftis: Maybe I'll give mongoose another shot. It seems really different from the version I saw a few months ago [02:06] cbiscardi: hunterloftis: i don't think theres anything as eloquent as the command line, it's not so awesome to work with [02:07] clintandrewhall has joined the channel [02:07] cbiscardi: hunterloftis: mongoose is what i use, you can always use mongodb-native if you need to (gridfs) [02:07] stagas: hunterloftis: try this one it mimics the console api https://github.com/marcello3d/node-mongolian [02:07] hunterloftis: cbiscardi: cool, thanks [02:07] no-gooder: hey guys [02:08] hunterloftis: stagas: thanks, that's pretty much what I was hoping for! [02:08] no-gooder: i have this simple example : http://jsfiddle.net/2YTdh/ [02:08] no-gooder: when i make concurrent requests it seems not working. [02:09] cbiscardi: stagas: that looks awesome, i dont think i saw that last time i was looking for a solution [02:09] stagas: cbiscardi: it's fairly new [02:09] paolodedios has joined the channel [02:09] no-gooder: if i use "curl domain.com" it seems it's working [02:09] no-gooder: what's i'm a doing wrong ? [02:10] no-gooder: *what am i doing wrong ? [02:10] davidascher has joined the channel [02:11] seivan has joined the channel [02:12] piscisaureus has joined the channel [02:12] Tobsn has joined the channel [02:13] MikhX has joined the channel [02:15] djktno has joined the channel [02:15] no-gooder: anybody?? [02:16] cbiscardi: no-gooder: i'm not seeing anything wrong with the code? what are you trying to do? [02:16] shaun has joined the channel [02:16] cbiscardi: no-gooder: i assume you mean to have it forever loading without res.end? [02:17] shaun: is LemonHall here? [02:17] fr0stbyte has joined the channel [02:18] zkirill has joined the channel [02:20] mscdex: youknow server up and running! http://mscdex.net:8000 games list: http://mscdex.net:8001 [02:20] mscdex: :-D [02:20] no-gooder: cbiscardi, i make two requests. one request and after one second i make second request in a speratare browser. server responses the first request after 4 seconds as i exptected.but the second request ends after 9 seconds . i mean server wait till first request ends. [02:21] skm has joined the channel [02:22] kmiyashiro has joined the channel [02:22] avalanche123 has joined the channel [02:22] Tobsn: mscdex, not loading [02:22] mscdex: oh oops [02:22] balaa has joined the channel [02:22] mscdex: http://mscdex.net:8000/index.htm [02:23] Tobsn: better [02:23] mscdex: :) [02:23] Tobsn: lol wtf [02:24] Tobsn: i have no idea whats going on lol [02:24] mscdex: have you ever played uno? [02:24] no-gooder: cbiscardi, i want to handle them concurrently. is it clear ? [02:24] Tobsn: i start to remember [02:24] Tobsn: i played with my parents [02:24] Tobsn: like billion years ago [02:25] sh1mmer has joined the channel [02:25] mscdex: hehe [02:25] jacter has joined the channel [02:25] qbert_: hunterloftis, just fyi I use mongolian also it's perfect for what we need, we couldnt use mongoose because of the schema registering [02:26] Tobsn: BAM! [02:26] mscdex: :P [02:26] qbert_: BOOM! [02:26] hunterloftis: qbert_: you have no schema or you just preferred the simplicity? [02:26] no-gooder: cbiscardi, like this : http://markmail.org/message/de2zjj3cje7xbait#query:+page:1+mid:l32nz75qozdh45jj+state:results [02:26] qbert_: hunterloftis, yeah the schema is dynamic , also the simplicity is nice [02:26] cbiscardi: no-gooder: node won't start processing the next request until it's done with the first. you are keeping it "open" by not ending the request. essentially blocking the server. [02:27] mischief has joined the channel [02:27] hunterloftis: qbert_: ok cool thanks for the input; I'm trying to decide between the two right now. [02:27] shaun: mscdex? [02:27] cbiscardi: no-gooder: it's not a pool of connections that can be handled like i believe you're trying to do. [02:27] mscdex: shaun: yeah? [02:27] shaun: hehe? haha [02:27] shaun: ^_^ [02:27] hunterloftis: qbert_: I'd go straight for mongolian except I know mongoose has been out longer/tested more/used more [02:27] mscdex: :-D [02:28] qbert_: hunterloftis, yep exactly, mongolian is still changing , something to consider [02:28] Tobsn: damint [02:28] Tobsn: that was my next mov [02:28] Tobsn: e [02:28] Tobsn: wtf! [02:28] cbiscardi: no-gooder: it will, however, be able to handle the two seperate requests if you let it stop processing instead of removing res.end and you will get them to happen like you want [02:28] hunterloftis: qbert_: have you run into any nasty surprises? Things that are clearly wrong? [02:29] arpegius has joined the channel [02:29] qbert_: hunterloftis, no the code itself looks really clean, mostly its lack of things, DBRef is not really exposed except for in trunk, and currently I have a need for eval() which isn't exposed yet [02:30] hunterloftis: qbert_: ok cool thanks [02:31] hunterloftis: qbert_: my data structures aren't so complicated that I'd need refs, this is a super simple CRUD style project [02:31] Tobsn: AND DONE [02:31] Tobsn: haha [02:31] mscdex: ha [02:31] Tobsn: that that BIATCH [02:31] Tobsn: :P [02:31] mscdex: well, i spotted a couple errors that need fixing, so i'm taking the server down for now [02:31] mscdex: :) [02:31] Tobsn: yep [02:32] Tobsn: i layed down two cards at once [02:32] Tobsn: due to fast clicking [02:32] mscdex: hmm... [02:32] Tobsn: you have to check if you lock directly after a valid move to the stack [02:33] Tobsn: the UI sucks somehow too [02:33] Tobsn: but its definitly a nice game :D [02:33] mscdex: yeah i know, i don't claim to be a frontend developer [02:33] shaunau: i think i might need a more uniqe handle.. [02:33] mscdex: ;) [02:33] Tobsn: and im not easly pleased :P [02:33] Tobsn: did you came up with the game? [02:33] Tobsn: hehe just kidding. [02:33] mscdex: the web frontend has taken the longest part of the whole thing [02:34] mscdex: there's an irc frontend too :P [02:34] Tobsn: lets spread the rumor PSN used ruby, whos with me? [02:34] mscdex: so people on irc can play with web users too [02:34] Tobsn: haha [02:34] jesusabdullah: hah! [02:34] jesusabdullah: Tobsn that would make too much sense! [02:34] Tobsn: already did the joke in debian with centos ;) [02:34] jamesarosen has joined the channel [02:35] Tobsn: and im gonna do it right now on mongodb with couchdb [02:35] Tobsn: gonna make the most of it haha [02:35] bingomanatee has joined the channel [02:35] Draggor: mscdex: link to code? [02:35] jesusabdullah: Godspeed tobsn! [02:35] Tobsn: one of those projects will hurt [02:35] Tobsn: haha [02:35] mscdex: Draggor: https://github.com/mscdex/youknow [02:36] mscdex: Draggor: i don't have the latest changes from today pushed out there yet though [02:36] jesusabdullah: mscdex: What's this?! [02:36] jacter has joined the channel [02:36] jesusabdullah: Oh, uno :( I thought it was gonna be Pokemon or something! [02:37] mscdex: heh [02:37] mscdex: :) [02:37] jesusabdullah: Is it general enough for that kinda thing? [02:38] Sami_ZzZ___ has joined the channel [02:38] mscdex: erm not really [02:39] mscdex: but it has a lot of generic stuff in there [02:39] mscdex: depends on the card game you're trying to shoehorn on it [02:39] mscdex: :P [02:39] Tobsn: http://twitter.com/#!/tobsn [02:39] Tobsn: hehe. [02:40] gaving has joined the channel [02:40] jesusabdullah: Munchkin. [02:43] Tobsn: http://techcrunch.com/2011/04/26/groupon-getting-it-in-the-ass-in-china/ [02:43] Tobsn: lol? [02:44] EvanCarroll: which is the best less|sass|stylus [02:44] Tobsn: stylus of course [02:44] dguttman_ has joined the channel [02:44] EvanCarroll: is this agreed upon? [02:44] kmiyashiro: I prefer sass/compass [02:44] tjholowaychuk: EvanCarroll: sass isnt much of a choice for node stuff [02:44] EvanCarroll: I'm new to the idea of css processors [02:45] tjholowaychuk: kmiyashiro: compass sucks :p but yeah stylus is really new [02:45] devrim has joined the channel [02:45] kmiyashiro: meh [02:45] kmiyashiro: does the things I want with minimal cognitive friction [02:45] EvanCarroll: ok, I got 2 for stylus [02:45] EvanCarroll: give me one more! [02:45] EvanCarroll: SOMEONE SAY STYLUS > * [02:45] gkatsev: does stylus have functions? [02:45] tjholowaychuk: gkatsev: haha yes [02:45] tjholowaychuk: before sass did [02:45] tjholowaychuk: 0.0.1 [02:45] tjholowaychuk: had functions [02:45] aho: well, sass doesn't run on node... so there [02:46] kmiyashiro: tjholowaychuk: have you used the beta of compass? [02:46] gkatsev: hehe, ok. [02:46] tjholowaychuk: kmiyashiro: yeah [02:46] kmiyashiro: pretty sweet [02:46] tjholowaychuk: meh [02:46] tjholowaychuk: sass is lacking a lot [02:46] gkatsev: tjholowaychuk: good to know. Does it pretty much have feature parity with sass? [02:46] tjholowaychuk: stylus just needs to mature [02:46] Tobsn: i like stylus cause it gives you more than you need [02:46] EvanCarroll: someone speak up. [02:46] kmiyashiro: stylus chokes on a lot more stuff than sass/compass [02:46] tjholowaychuk: gkatsev: has more features, missing a few that sass has, and has many that sass does not [02:47] tjholowaychuk: gkatsev: but it's newer of course [02:47] tjholowaychuk: by like 5 years [02:47] kmiyashiro: I don't want to worry about that stuff [02:47] tjholowaychuk: kmiyashiro: yeah if you write really messed up css [02:47] Tobsn: EvanCarroll, you could also just write cSS [02:47] Tobsn: CSS [02:47] kmiyashiro: like the html5boilerplate? [02:47] EvanCarroll: yea, I could. but, I've done that. I have no idea why I event want CSS processing. I just want to try it out [02:48] tbranyen: css is too hard, i'm giving up [02:48] tbranyen: flash 4 lyfe [02:48] EvanCarroll: I've done professional web dev for quite some time, and never used a css processor. I'm kind of anxious to try one out, now that I'm playing with node/express/jade [02:48] tjholowaychuk: EvanCarroll: because you can have vendor support and gradient images for IE generated with a single property :D [02:48] gavin_huang has joined the channel [02:48] tjholowaychuk: thats why [02:48] gkatsev: tjholowaychuk: ok, cool. Haven't really used any of those. Have seen more of sass/less, though. But yeah, probably going to use stylus if I need anything like that. node ftw [02:48] michaelrice has joined the channel [02:48] tjholowaychuk: gkatsev: less has the least features, unless you want to run in the browser [02:48] tjholowaychuk: not much point [02:48] EvanCarroll: tjholowaychuk: I don't have to support hitty old browsers [02:48] EvanCarroll: so I can do it with html5 [02:48] tjholowaychuk: EvanCarroll: still, dont enable the image support [02:49] tbranyen: EvanCarroll: how does html5 help with vendor prefixes... [02:49] tjholowaychuk: it will generate webkit/moz gradients etc [02:49] gkatsev: tjholowaychuk: yeah, I think that's the only reason for using less. To not bother precompiling stuff. [02:49] hasenj has joined the channel [02:49] tjholowaychuk: gkatsev: well you still have to compile it [02:49] tjholowaychuk: id never have the client do that [02:49] EvanCarroll: I assume you're talking about the ie/box trickery to get to the rounded corners? [02:49] Tobsn: professional web dev [02:49] tjholowaychuk: EvanCarroll: no no, gradients [02:49] kmiyashiro: I think there were three things I had to escape in the html5boilerplate stylesheet for stylus [02:49] tbranyen: considering html5 doesn't have anything to do with css [02:50] kmiyashiro: and it was almost impossible to tell what was causing it [02:50] tjholowaychuk: EvanCarroll: http://www.screenr.com/M6a [02:50] EvanCarroll: right, as in -- all html5 browsers support css2 fully and most of css3 [02:50] gkatsev: tbranyen: the marketing term html5 includes css3. Actual html5 does not. :P [02:50] tbranyen: and how [02:50] tjholowaychuk: kmiyashiro: yeah the error reporting is fucked up right now [02:50] EvanCarroll: gkatsev++ [02:50] v8bot: EvanCarroll has given a beer to gkatsev. gkatsev now has 5 beers. [02:50] brolin has joined the channel [02:51] EvanCarroll: tjholowaychuk++ # watching the vid now [02:51] tjholowaychuk: i think the gradient part is at the end [02:51] plutoniix has joined the channel [02:52] random123 has joined the channel [02:52] kmiyashiro: tjholowaychuk: is it just you that works on stylus/nib? [02:52] tjholowaychuk: kmiyashiro: yup [02:52] jamesarosen has joined the channel [02:52] gtramont1na: hey tjholowaychuk: does Stylus provide any help when dealing with image sprites? [02:52] kmiyashiro: what about express? [02:52] tjholowaychuk: gtramont1na: not at the moment, easily could with node-canvas [02:52] tjholowaychuk: kmiyashiro: just me as well [02:52] asdfsafdsa: are there any guides/modules to help create an mmorpg with node? [02:52] mikeal has joined the channel [02:52] tjholowaychuk: kmiyashiro: with the odd patch [02:53] kmiyashiro: you must be busy [02:53] gkatsev: someone should write a stylus script that enables all the weird CSS stuff across vendors. I know nettuts has a less script that does it. So, you can say like border(5 5 5 5) and it autogenerates the things for all vendors [02:53] tjholowaychuk: haha yeah i have like 80 projects or something [02:53] kmiyashiro: gkatsev: that's exactly what stylus does [02:53] kmiyashiro: and sass/compass [02:53] gkatsev: oh, does it do that by default? [02:53] gkatsev: hm... [02:53] tjholowaychuk: gkatsev: yeah thats what it's for [02:54] tjholowaychuk: not by default [02:54] gkatsev: ACTION should reall read up on all this awesome [02:54] tjholowaychuk: the language us separate from stuff like that [02:54] tjholowaychuk: is* [02:54] tjholowaychuk: but stylus has far more power in terms of transparent support for stuff like that [02:54] tjholowaychuk: sass/less etc [02:54] gkatsev: ah, but you can enable something like that which is built-in? sweet. [02:54] tjholowaychuk: have stuff like @include border-radius(rawr,rawr) [02:54] kmiyashiro: I'd recommend learning all that shit and working with it until you know it by heart, then use these css processing things [02:54] brianloveswords has joined the channel [02:55] tjholowaychuk: and the compass gradient stuff is really weak [02:55] kmiyashiro: how so? [02:55] kmiyashiro: I think the beta improved its usage [02:55] tjholowaychuk: the syntax blows, its locked to the background prop etc [02:56] tjholowaychuk: with nib you just do "background-image: linear-gradient(top, white, black)" etc [02:56] EvanCarroll: tjholowaychuk: it would be nifty if it could be set to work with a jQueryUI's css color schemes. [02:56] tjholowaychuk: doesnt matter which property [02:56] tjholowaychuk: it has knowledge of the values adjacent to it and the property it's called against [02:56] CIA-72: node: 03Nathan Rajlich 07master * rb1be540 10/ (doc/api/process.markdown src/node.cc wscript): Implement `process.arch` to get a String of the current processor architecture, with docs. - http://bit.ly/gyqBod [02:57] kmiyashiro: what would you use gradients for other than background? [02:57] tjholowaychuk: because [02:57] tjholowaychuk: anything that can have a background image [02:57] tjholowaychuk: can have a gradient [02:57] kmiyashiro: right [02:57] kmiyashiro: the new syntax lets you set both [02:57] kmiyashiro: http://compass-style.org/reference/compass/css3/images/ [02:57] tjholowaychuk: im just saying, in general the language is weak [02:58] tjholowaychuk: the best thing compass has going for it [02:58] tjholowaychuk: is docs [02:59] tjholowaychuk: haha [02:59] tjholowaychuk: wish i had time for that sort of thing [02:59] kmiyashiro: heh [02:59] kmiyashiro: I'm not sure what compass is lacking compared to stylus/nib [02:59] kmiyashiro: the syntax seems to be almost the same aside from the haml-ishness of stylus [02:59] tjholowaychuk: not even close [02:59] qbert_: haml ? [03:00] tjholowaychuk: gotta run though [03:00] random123 has joined the channel [03:00] kmiyashiro: http://en.wikipedia.org/wiki/Haml [03:00] kmiyashiro: sass used to be based on it [03:00] kmiyashiro: still is a dependency [03:00] kmiyashiro: gotta run too [03:00] JakeWharton has joined the channel [03:01] jacobolus has joined the channel [03:02] MikhX_ has joined the channel [03:02] jmalina has joined the channel [03:03] saikat has joined the channel [03:04] wilmoore has joined the channel [03:05] gavin_huang: sass, less, stylus.. do we have other competitors available? I'd like to try out as many as possible. :P [03:05] Transformer has joined the channel [03:05] CIA-72: node: 03isaacs 07master * ra7ce791 10/ (doc/api/os.markdown lib/os.js test/simple/test-os.js): Add arch/platform to os module - http://bit.ly/e12FqR [03:05] eventi has joined the channel [03:07] pcardune has joined the channel [03:08] Transformer has left the channel [03:09] saikat has joined the channel [03:09] ckknight: Has anyone had an app that uses now.js just spontaneously crash without warning? I even have a process.on('unhandledException' thing going on. [03:10] ckknight: also, is it possible or even wise to use cluster with now.js? (assuming you tell it to use a single worker process) [03:12] puffpio_ has joined the channel [03:13] Ken has joined the channel [03:13] jacter has joined the channel [03:14] aaronblohowiak has joined the channel [03:16] djktno has left the channel [03:19] ezl has joined the channel [03:21] EvanCarroll: hrm [03:21] Ric123 has joined the channel [03:21] EvanCarroll: that seems slightly dishonest [03:22] EvanCarroll: Authors [03:22] EvanCarroll: TJ Holowaychuk (visionmedia) [03:22] EvanCarroll: he's suggesting his own shit without disclosing that... [03:22] openpercept has joined the channel [03:23] ParadoxQuine has joined the channel [03:23] brianloveswords_ has joined the channel [03:24] tbranyen: Yes how dare someone suggest something they wrote [03:24] tbranyen: Why would anyone write opensource for others to consume [03:24] SubStack: I go out of my way to dissuade people from using my modules [03:25] tbranyen: Damn straight [03:25] Tobsn: EvanCarroll, TJ wrote like half of the most common modules used [03:26] SubStack: he's below 3% of npm again [03:26] SubStack: only 2.86 [03:26] Tobsn: lol [03:26] EvanCarroll: kudos to him, he should disclose this though, as any other bias, when suggesting them. [03:26] Tobsn: EvanCarroll, everybody knows [03:27] Draggor: and you can look up the author yourself anyhow [03:27] ParadoxQuine: what's the topic? i just joined [03:27] EvanCarroll: I obviously don't this is my first week using Node.js entirely. [03:27] Tobsn: well you got the module suggested by the author [03:27] Tobsn: if you dont like the idea [03:27] Tobsn: well there is ruby. [03:27] ParadoxQuine: lol [03:28] Tobsn: ah got the first one to spread my PSN rumprs [03:28] Tobsn: rumors [03:29] Tobsn: GoDaddy is the first one to be spread hehe [03:29] bartt has joined the channel [03:29] Draggor: Tobsn: Probability of said rumors making front page of reddit? [03:29] Tobsn: nah i posted like 10 funny tweets [03:29] Tobsn: twitter.com/tobsn [03:30] Viriix has joined the channel [03:31] dguttman has joined the channel [03:31] eventi has joined the channel [03:31] Tobsn: man reddit just loaded slow [03:32] Tobsn: like 20 seconds timeout [03:32] Draggor: Heh, so, usual for reddit? [03:33] SubStack: reddit uses python [03:33] SubStack: (although I doubt that is their bottleneck) [03:33] tjgillies: is tim caswell a core contributor? [03:33] tjgillies: asking for rww article [03:33] qbert_: hey SubStack I recognize that name from mongolian [03:33] tbranyen: AWS xD [03:33] SubStack: mongolian? [03:34] Tobsn: yeah the probably most terrible python ever written [03:34] qbert_: SubStack, oops, maybe dnode [03:34] Tobsn: i set up their open source port up on fuddit.com [03:34] Tobsn: shit is constantly down [03:34] Tobsn: and the code is unreadable [03:34] qbert_: yeah dnode [03:34] kmiyashiro has joined the channel [03:35] Wizek has joined the channel [03:35] gqlewis has joined the channel [03:35] JacobSingh has joined the channel [03:37] michaelrice has joined the channel [03:37] akavlie has joined the channel [03:37] jdp has joined the channel [03:40] akavlie: anyone done much testing in node.js? [03:40] akavlie: not sure how to go about testing http & socket io stuff [03:40] Spion_ has joined the channel [03:41] mikeal has joined the channel [03:43] Tobsn: today is a glorious day. im finally done thinking about arguments why xbox is better. [03:43] Tobsn: kidna neat. [03:43] jdp has joined the channel [03:43] kmiyashiro: do people actually care about console wars anymore? [03:45] azend has joined the channel [03:47] skm has joined the channel [03:48] btipling has joined the channel [03:48] dhasenan: kmiyashiro, I only care when someone converts a PS3 into a battle bot with weaponized blu-ray lasers. [03:49] dhasenan: Now how do I call a javascript function from C++? [03:49] kmiyashiro: I'll care when they convert it into a portal gun [03:50] gtramont1na has joined the channel [03:51] JakeWharton: Tobsn, you're arguing apples and oranges. Perhaps you mean why XBL is better than PSN? [03:51] tbranyen: dhasenan: did you pass a callback or something? [03:51] Tobsn: no i just look over those small differences [03:51] Tobsn: and declare the PS3 as whole failed [03:52] tbranyen: Tobsn: pretty much [03:52] puffpio has joined the channel [03:52] dhasenan: tbranyen, going to. Node docs didn't have the answer, but google did. [03:52] tbranyen: i put linux on mine and its still useless [03:52] Tobsn: yep. [03:52] tbranyen: can only see 2 cores and its ppc [03:52] Tobsn: xbox rocks. its the only microsoft product that will ever be worth the money and the ps3 just blows. [03:52] Tobsn: i had the ps1 and was happy, i had the ps2 and was happy [03:53] Tobsn: but the ps3 is just crap. [03:53] JakeWharton: Have you owned one? [03:53] Tobsn: i dont like the case, i dont like PSN, i dont like that the xbox has nicer games etc. [03:53] tbranyen: i have and agree with the sentiment [03:53] Tobsn: JakeWharton, yep [03:53] Tobsn: sold it [03:53] Tobsn: 4 month later [03:53] JakeWharton: I actually prefer my PS3 over the XBOX [03:53] Tobsn: my lil brother is in a CoD clan [03:54] tbranyen: no arcade games :-/ [03:54] Tobsn: they ALL switched to PS3 (around 20 kids) [03:54] btipling has joined the channel [03:54] JakeWharton: Not really a PSN user, however. So I can't really comment as to the PSN/XBL feature set. [03:54] Tobsn: 3 month later they ALL switched back to xbox [03:54] Tobsn: nough said. [03:54] Tobsn: ;) [03:54] path[l]: has anyone here used jquery with driverdan's xhr ? [03:54] JakeWharton: Because you're little brother and his 19 friends are a perfect representitive sample of all PS3 users everywhere [03:54] tbranyen: path[l]: like loading jquery into node and using that xhr? [03:55] Tobsn: no theyre not but it was pretty interesting [03:55] path[l]: yeah [03:55] tbranyen: heh no, but it sounds interesting [03:55] JakeWharton: They most certainly have a lot of overlap but the two platform clearly target different kinds of gamers. [03:55] JakeWharton: Personally, I use mine as a Blu-ray player about 95% of the time anyways [03:55] Tobsn: what gamers does the ps3 target? [03:55] path[l]: ah. people have used both individually. but Im unable to make them work together and get jquery's ajax helpers working [03:55] Tobsn: see thats what i dont understand [03:56] tbranyen: lbp [03:56] Tobsn: get a god damn bluray player if you want a bluray player :P [03:56] bartt has left the channel [03:56] Ken has joined the channel [03:56] JakeWharton: I got the best Blu-ray player on the market. [03:56] Tobsn: oh and, explain me something [03:56] Tobsn: why bluray [03:56] tbranyen: path[l]: are you using jsdom? [03:56] path[l]: tbranyen: Im using node-jquery, which uses jsdom [03:57] JakeWharton: It's the only distribution for high resolution movies in a non-digital format. [03:57] Billbad has joined the channel [03:57] tbranyen: path[l]: j/w if the XHR object is being attached within JSDOM [03:57] JakeWharton: 15GB per layer on HD-DVD? No thanks. [03:57] Tobsn: but [03:57] path[l]: tbranyen: hmm. so the question is if jsdom lets me attach a xhr object [03:57] Tobsn: i download movies if i want to see one cause i really only watch it once [03:58] Tobsn: i mostly even delete them [03:58] tbranyen: path[l]: try applying it to the window object [03:58] tbranyen: if you aren't right now, thats most likely your problem [03:58] path[l]: ok, let me check if I can do that [03:58] JakeWharton: I only own a small subset of movies I like on Blu-ray and that's usually for the extras. [03:58] tbranyen: path[l]: you definitely can with jsdom and jquerify within it [03:59] tbranyen: not sure about node-jquery [03:59] JakeWharton: I'm not going to buy something that has two SD documentaries and a BD-Live portal that just links to a website [03:59] JakeWharton: it has to be something with a large collection of extras [03:59] paulrobinson has joined the channel [03:59] geekanddad has joined the channel [04:00] tbranyen: path[l]: return new window.XMLHttpRequest(); [04:00] Tobsn: hmm [04:00] tbranyen: is how jquery looks for XHR [04:00] tbranyen: so yeah it definitely needs to be attached there [04:01] path[l]: the thing is jquery also lets ajax take a function which it can call to let YOU create the xhr object [04:01] path[l]: but even that wasnt working [04:01] JusticeFries has joined the channel [04:01] bartt has joined the channel [04:01] tbranyen: path[l]: it does? how so? [04:02] path[l]: it's one of the options is $.ajax [04:02] tbranyen: i just read the source for jqxhr and i didn't see any custom overrides [04:02] throughnothing has joined the channel [04:02] throughnothing has joined the channel [04:02] throughnothing has joined the channel [04:02] path[l]: http://api.jquery.com/jQuery.ajax/ <---the xhr option? [04:02] tbranyen: path[l]: i don't think so [04:02] tbranyen: no [04:03] tbranyen: that just runs after jquery internally creates the xhr object [04:03] tbranyen: kind of confusing heh [04:03] path[l]: heh [04:06] postwait has joined the channel [04:06] tbranyen: path[l]: jQuery = require('jquery').create(myWindow); [04:06] tbranyen: myWindow being jsdom().createWindow(); and hten you should be able to attach to that [04:06] tbranyen: myWindow.XMLHttpRequest = .... [04:06] path[l]: yeah, Im playing with that [04:06] tbranyen: sweet [04:08] Votaguz has joined the channel [04:09] path[l]: nope [04:09] path[l]: '1': 'error', [04:09] path[l]: '2': 'No Transport' [04:10] Votaguz: hi all, i have a simple question... Exist some way to update node.js without reinstall it again ? I have the version 0.4.2 and i need 0.4.5 [04:10] Ric123 has left the channel [04:10] tbranyen: Votaguz: no, you need to reinstall it if you want to upgrade [04:11] Votaguz: tbranyen: Thanks [04:11] path[l]: I have another question tbranyen, without jsdom, is there a way to load a js file off the net? I want to use one of the google search apis [04:11] abraham has joined the channel [04:11] tbranyen: path[l]: what does it return, a jsonp response or something? [04:12] temp02 has joined the channel [04:12] path[l]: let me see [04:12] tbranyen: implementing jsonp is very easy [04:13] bstimmerman has joined the channel [04:13] path[l]: not sure yet. But I mean I was curious about how I'd load the script itself [04:14] zivester has joined the channel [04:14] path[l]: I guess I could just check it in [04:16] davidascher has joined the channel [04:17] path[l]: I was hoping there's an easy way to 'require' a file off the web [04:17] jaket has joined the channel [04:19] path[l]: oh heh, they depend on window and document [04:19] tjgillies: http://www.readwriteweb.com/hack/2011/04/build-desktop-apps-with-nodejs.php [04:20] Votaguz: tbranyen: same for NPM ? [04:20] throughnothing has joined the channel [04:20] tbranyen: Votaguz: npm upgrade [04:20] tbranyen: errr update [04:22] skm has joined the channel [04:23] jtsnow has joined the channel [04:29] rektide has joined the channel [04:34] mikeal has joined the channel [04:35] saschagehlich has joined the channel [04:37] seivan has joined the channel [04:39] onre has joined the channel [04:39] sub_pop has joined the channel [04:41] pekim has joined the channel [04:43] indexzero has joined the channel [04:43] kmduke has joined the channel [04:45] davidascher has joined the channel [04:49] jamesarosen has joined the channel [04:51] Swimming_bird has joined the channel [04:51] jmoyers has joined the channel [04:54] matjas has joined the channel [04:55] m64253 has joined the channel [04:56] pquerna: hmm. has anyone seen something like node-strtok, but for.. C? [04:57] onre_ has joined the channel [04:57] mjr_: struct and union? [04:57] pquerna: well, more the callback.. stuff [04:58] pquerna: callback returns the next type it expects [04:58] mjr_: BTW, I know you know about structs and unions. [04:58] pquerna: heh [04:58] pquerna: i guess i can make something simple enough. [04:58] pquerna: the core loop ain't that big [05:04] jacter has joined the channel [05:08] jamesarosen has joined the channel [05:08] onre_ has joined the channel [05:09] sechrist has joined the channel [05:09] astropirate has joined the channel [05:11] jdp has joined the channel [05:12] saikat has joined the channel [05:12] brownies has joined the channel [05:12] Me1000 has joined the channel [05:12] dandean has joined the channel [05:13] onre_ has joined the channel [05:15] balaa has joined the channel [05:15] brownies has joined the channel [05:17] stonebranch has joined the channel [05:17] jdp has joined the channel [05:22] chapel: what do you guys use for javascript rich web apps, as far as the interface is concerned? [05:23] Votaguz has joined the channel [05:25] isaacs has joined the channel [05:27] coreb has joined the channel [05:28] copongcopong1 has joined the channel [05:29] ChrisPartridge: chapel: jquery UI for webby stuff, and extjs for business appy stuff [05:29] chapel: how is jquery ui? [05:30] chapel: I don't want anything to heavy, I don't mind doing templating, but there are a lot of dynamic ui stuff that just makes more sense to use something prebuilt [05:32] shaun has left the channel [05:34] Votaguz: Can i use ExpressJS without use "Pure HTML" instead use Jade for rendering pages ? [05:35] Votaguz: ERRR!!! [05:35] Votaguz: Can i use ExpressJS with "Pure HTML" instead use Jade for rendering pages [05:36] chapel: yeah [05:36] Votaguz: chapel, Any Guide ? [05:36] chapel: just send the pages instead of a template [05:36] chapel: do you want html + templates? [05:36] chapel: like ejs? [05:37] ChrisPartridge: chapel: Should be able to put something together with jquery+backbone perhaps [05:37] Votaguz: Chapel, simply i want to serve html files like "index.html" instead "index.jade" with ExpressJs [05:37] Votaguz: It's Possible ? [05:37] chapel: Votaguz: yeah [05:38] Votaguz: Can you tell me how ? [05:38] Votaguz: Or any guide or document that i can read for learn ? [05:39] chapel: Votaguz: are you wanting to use html and templating, or just html files? [05:39] chapel: with no dynamic content? [05:40] seivan has joined the channel [05:40] Votaguz: Chapel, i need some dinamic content like a basic chat service using now.js for example ... [05:41] chapel: but only html from the server? [05:41] dahankzter has joined the channel [05:43] MikhX has joined the channel [05:43] Votaguz: chapel: Yeah ... [05:44] JacobSingh has joined the channel [05:45] chapel: http://expressjs.com/guide.html#res.send() << use that [05:46] chapel: you can send the html as a string [05:46] chapel: or you can grab a file from the file system and send that [05:47] chapel: well actually hold on [05:48] zeunix_ has joined the channel [05:48] path[l]: hi. Is there a way to switch to a non bundled way of deploying my code? [05:48] chapel: http://expressjs.com/guide.html#configuration << go there, it would be [05:48] chapel: app.use(express.static(__dirname + '/files')); [05:49] chapel: Votaguz: that right there then would look in there for any static files that a browser requested, like index.html [05:49] chapel: or javascript [05:49] chapel: or css [05:49] mikeal has joined the channel [05:50] Votaguz: Chapel i will try thanks a lot [05:50] chapel: sorry I didn't get that sooner, I forgot about it [05:50] mytrile has joined the channel [05:51] rektide has left the channel [05:53] postwait has joined the channel [05:54] levi501d has joined the channel [05:58] EvanCarroll: is there a quicker way to convert HTML -> jade [05:59] Votaguz: EvanCarroll: where ? [06:01] zeunix has left the channel [06:01] EvanCarroll: I'm moving from a static HTML, I'd like to know if there was something that could go straight from static html to jade. [06:01] EvanCarroll: It seems like it would be very easy to create, if it doesn't exist [06:01] EvanCarroll: just so i don't have to remove all these tags, and mark it up myself [06:01] jmoyers: hmm -- when people use models a la mongoose, where do you normally keep logic like checking a password hash against input? outside the model? [06:03] dandean: In case anybody wants some mustaches in their Express apps: https://github.com/dandean/mustachio [06:04] jmoyers: is that different than 'stache'? [06:05] dandean: jmoyers: yeah. this one provides a place for your view helper logic, alongside your actual mustache template. [06:05] SamuraiJack has joined the channel [06:06] saschagehlich has joined the channel [06:06] kristsk has joined the channel [06:06] sechrist has joined the channel [06:07] xeodox has joined the channel [06:07] xeodox: do you guys recommend mongoose-auth to handle all the authentication stuff? [06:08] abraham has joined the channel [06:08] jmoyers: dandean: so it adds it binds _data with your locals to the function scope for helper methods [06:08] jmoyers: instead of using global scope etc? [06:10] kmiyashiro: hmm [06:10] kmiyashiro: how do I force js to view a string '[]' as an empty array? [06:10] ChrisPartridge: xeodox: I'm using it, seems to work fine - probably a bit overkill if you just want mongoose password authentication [06:11] xeodox: nah i want facebook integration too [06:11] kmiyashiro: EvanCarroll: Not that I know of [06:11] xeodox: I started off using everyauth (for facebook)...but then I realize that it's broken. It doesn't handle "scope". [06:11] amerine has joined the channel [06:11] ChrisPartridge: xeodox: I think mongoose-auth uses everyauth [06:11] dguttman has joined the channel [06:11] xeodox: Chris: Yes. Have you tried facebook with everyauth/mongooseauth? [06:11] dandean: jmoyers: yeah. Basically, any property not provided in your helper is used as is. You can override properties, allowing you to modify them for your View, and you can create new properties from within your helper to do whatever else, like concatinating first name + last name as {{ name }}. etc.... [06:12] ChrisPartridge: xeodox: Nope [06:12] xeodox: Chris: wow, i just got an email from brian (everyauth guy) , he fixed it [06:12] xeodox: :) yay [06:12] amerine has joined the channel [06:12] herbySk has joined the channel [06:12] indutny has joined the channel [06:13] ChrisPartridge: xeodox: I think you owe brian a beer ;-) [06:13] xeodox: Chris: Yes I do :] [06:14] jmoyers: dandean: i see -- nice. i in fact just put together a boiler plate adapter for express mustache. i'll use this instead :-) [06:15] dandean: jmoyers: excellent! [06:15] onre_ has joined the channel [06:15] dandean: jmoyers: let me know if you run into any trouble then! [06:15] xeodox has left the channel [06:17] jmoyers: for anyone that cares, mongoose looks like it has a method called 'method' on Schema that lets you define any arbitrary function, such as for the 'checkPassword' use case i mentioned before. [06:18] zkirill_ has joined the channel [06:20] meso has joined the channel [06:20] brettgoulder has joined the channel [06:21] onre_ has joined the channel [06:23] FireFly has joined the channel [06:23] tk has joined the channel [06:23] jacter has joined the channel [06:24] whozman has joined the channel [06:25] whozman has left the channel [06:25] whozman has joined the channel [06:27] mytrile has joined the channel [06:29] mape has joined the channel [06:29] niftylettuce has joined the channel [06:31] mikeal has joined the channel [06:34] Guest88808 has joined the channel [06:34] dandean has joined the channel [06:42] matjas has joined the channel [06:46] jpld has joined the channel [06:47] onre_ has joined the channel [06:47] V1 has joined the channel [06:49] __tosh has joined the channel [06:49] groom has joined the channel [06:49] jacter1 has joined the channel [06:51] langworthy has joined the channel [06:54] k1ttty has joined the channel [06:54] jaket_ has joined the channel [06:54] onre_ has joined the channel [06:55] hunterloftis has joined the channel [06:56] hunterloftis: Anybody know offhand how to clear all items in a collection with mongoose? [06:56] littke has joined the channel [06:57] hunterloftis: ...of to try it like the shell then.. [06:58] fangel has joined the channel [07:02] kawaz has joined the channel [07:02] mastercactapus has joined the channel [07:03] onre_ has joined the channel [07:05] JacobSingh has joined the channel [07:06] mraleph has joined the channel [07:07] mAritz has joined the channel [07:07] emattias has joined the channel [07:07] zentoooo has joined the channel [07:08] onre_ has joined the channel [07:09] ivanfi has joined the channel [07:17] xeodox has joined the channel [07:17] indutny has joined the channel [07:17] xeodox: can someone help me on Mongoose? (the database ORM) [07:18] altamic has joined the channel [07:19] onre_ has joined the channel [07:21] coreb: xeodox: shoot [07:22] smrchy has joined the channel [07:22] xeodox: coreb: Do you know why this won't work? I posted it on Stackoverflow: http://stackoverflow.com/questions/5800467/how-come-this-node-js-plugin-mongoose-doesnt-work-i-followed-all-instructions [07:23] xeodox: It's very basic usage of Mongoose...but that doesn't work. [07:23] coreb: first do mongoose.model("Message", Message); [07:23] coreb: then do var MessageModel = mongoose.model("Message"); [07:24] ditesh|cassini has joined the channel [07:24] onre_ has joined the channel [07:26] xeodox: coreb: You're a genius [07:27] coreb: true [07:28] xeodox: Have you used mongoose-auth? [07:29] coreb: no, I always keep my mongodb databases in a secure environment to avoid authentication overhead [07:29] hunterloftis: Speaking of mongoose... [07:29] xeodox: oh [07:29] hunterloftis: Sending a bunch of objects with ids, some that exist, some that are new [07:29] xeodox: then how do you do authentication? [07:29] hunterloftis: Have a good standard practice for "create-or-update"? [07:29] xeodox: @coreb...just custom? [07:30] onre has joined the channel [07:31] altamic has joined the channel [07:31] altamic has joined the channel [07:32] coreb: xeodox: authentication of what, access to the mongodb? [07:32] xeodox: @coreb: authentication for users (i'm building a social networK) [07:33] xeodox: @coreb: ewwww! When I do "Message" as a model for Mongoose, it puts the stuff under "db.messages" ...It makes it plural for me [07:33] xeodox: that's really weird [07:35] FireFly|n900 has joined the channel [07:35] mc_greeny has joined the channel [07:35] Druide_ has joined the channel [07:36] coreb: xeodox: tough luck - you can specify the collection name - read the docs [07:36] coreb: I do custom auth [07:36] onre_ has joined the channel [07:37] msucan has joined the channel [07:41] onre_ has joined the channel [07:43] robhawkes has joined the channel [07:45] teemow has joined the channel [07:49] ph^ has joined the channel [07:49] caligula has joined the channel [07:50] pdelgallego has joined the channel [07:51] tokumine has joined the channel [07:51] tonymilne has joined the channel [07:53] tonymilne: When using mongoose, do you need to always use the one instance of mongoose? (or can you just write var mongoose = require('mongoose') and it will automagically keep the defined models? [07:54] tonymilne: E.g. to keep the ability to use custom methods/statics. [07:55] neshaug has joined the channel [07:56] TomY has joined the channel [07:57] eventi has joined the channel [07:58] djcoin has joined the channel [08:00] troessner has joined the channel [08:01] eldios has joined the channel [08:02] jetienne has joined the channel [08:03] swearos has joined the channel [08:03] lvjunqi_ has joined the channel [08:05] hunterloftis: tonymilne - I think that's what the registering models bit is for in the latest mongoose [08:06] hunterloftis: Okay so, when I do CollectionName.find({}, function(err, docs) ... docs is a weird object. How do I convert docs into a regular javascript object so I can send it over the wire? [08:06] ako has joined the channel [08:07] xeodox: Anyone here used Mongoose-auth before? [08:08] langworthy has joined the channel [08:09] snearch has joined the channel [08:09] eldios: anyone has the antirez direct contact? (IM/email)? [08:12] sendark has joined the channel [08:12] jamey-uk has joined the channel [08:17] christophsturm has joined the channel [08:23] dies_el has joined the channel [08:23] [AD]Turbo has joined the channel [08:24] pdelgallego_ has joined the channel [08:25] jbpros has joined the channel [08:29] Gruni has joined the channel [08:31] markwubben has joined the channel [08:31] seivan has joined the channel [08:31] erikcorry has joined the channel [08:31] rgabo has joined the channel [08:32] liar has joined the channel [08:33] ako has joined the channel [08:36] tokumine has joined the channel [08:36] elliottcable: ryah: care to talk about it? #sharetheinsomnia [08:36] mc_greeny has joined the channel [08:36] ayo has joined the channel [08:37] Qbix1 has joined the channel [08:37] Qbix1: hey guys [08:37] Qbix1: what is the altest version of node [08:37] Qbix1: *latest [08:37] Qbix1: aha, n 0.4.7 [08:38] anoop has joined the channel [08:39] thalll has joined the channel [08:40] MikhX has joined the channel [08:41] sendark: anyone knows how to add new fields to a model in mongoose? [08:42] JimBastard has joined the channel [08:42] anoop: 'Error: ECONNREFUSED, Connection refused\n at Socket._onConnect (net.js:600:18)\n at IOWatcher.onWritable [as callback] (net.js:186:12)' [08:42] JimBastard: mmm back in SF [08:42] anoop: gets an error like this shile running the server using node [08:42] anoop: any idea? [08:42] __tosh has joined the channel [08:43] Qbix1: when did node.js start using http.request [08:43] Qbix1: instead of HttpClient [08:44] Charuru has joined the channel [08:46] mjr_: Qbix1: in 0.4 [08:46] Qbix1: okay, good [08:47] Qbix1: because I am using node-aws [08:47] Qbix1: I mean aws-lib [08:48] Qbix1: and I already have 0.4.2 on there [08:49] no-gooder has joined the channel [08:49] elliottcable: odd, anoop is in here? [08:50] mdaisuke_ has joined the channel [08:51] daglees has joined the channel [08:51] kawaz_ has joined the channel [08:52] coreb has joined the channel [08:52] anoop: elliottcable: yes [08:52] hellp has joined the channel [08:54] hunterloftis: mongoose - how the hell can you delete something by id? .remove({_id: someid}) doesn't do anything [08:54] ExsysTech has joined the channel [08:55] tbassetto has joined the channel [08:56] hunterloftis: I guess I need to wrap it as an ObjectId but I don't see how to create one [08:56] ph^ has joined the channel [08:56] a2800276 has joined the channel [08:59] [AD]Turbo: is this the way to wait for a join-like query using nodejs + mongodb? http://groups.google.com/group/node-mongodb-native/browse_thread/thread/324c35ba83d6fb53 [09:00] JimBastard: mjr_: you gonna come out to trampoline javascript party on thursday? [09:01] mjr_: Sadly, no. I'm out of town. [09:01] mjr_: Otherwise, I'd absolutely be there [09:01] JimBastard: bah! see you at nodeconf? [09:01] mjr_: yes [09:01] mjr_: jsconf too [09:01] JimBastard: :-D [09:01] JimBastard: nice [09:01] mjr_: I've been living on Kauai for the past 3 months, is why I'm "out of town" [09:01] mjr_: SF is not actually my town anymore [09:02] Qbix1: mjr is it nice there? [09:02] Qbix1: hawaii? [09:02] JimBastard: i guess this town isnt big enough for the both of us [09:03] bzinger has joined the channel [09:04] mjr_: Qbix1: very nice, yes [09:04] nmtmason has joined the channel [09:05] puffpio has joined the channel [09:14] polyrhythmic has joined the channel [09:15] mattly has joined the channel [09:16] B|aster has joined the channel [09:16] B|aster has left the channel [09:19] indutny has joined the channel [09:20] mdaisuke has joined the channel [09:23] pig has joined the channel [09:23] jetienne has joined the channel [09:24] pomodoro has joined the channel [09:26] Nexxy has joined the channel [09:26] Nexxy has joined the channel [09:28] pig has joined the channel [09:28] dragunov11 has joined the channel [09:30] path[l] has joined the channel [09:30] sendark: has anybody here ever worked with mongoose? [09:30] Darshan-NowJS: yes [09:31] sendark: Darshan-NowJS: imagine i have a message model [09:31] sendark: so that if i do message.find() [09:31] sendark: i get a bunch of messages. [09:31] sendark: each message has a .location object [09:31] fyskij has joined the channel [09:32] Darshan-NowJS: sure [09:32] sendark: so it's like { text : 'text', location : { name: 'madrid', id:'someid' }, from: { name : 'mum', id : 'someid' } } [09:32] Darshan-NowJS: sure [09:32] sendark: and i am trying to update each of those documents [09:32] sendark: so what i'm doing [09:32] sendark: is [09:32] Darshan-NowJS: i might actually not be the best one to ask for help. its 5am and im goin to bed haha [09:33] jamey-uk: node newbie, what am I doing wrong here? i'm getting "ReferenceError: filename is not defined" when I request an existing file: http://pastebin.com/0YG0R1cz [09:33] pig has joined the channel [09:33] sendark: so forEach message [09:33] sendark: i'm doing message.location.lng = somelong [09:33] sendark: msessage.location.lat = somelat [09:33] sendark: and then save() [09:34] sendark: but the changes aren't being reflected [09:35] altamic has joined the channel [09:35] altamic has joined the channel [09:35] markwubben has joined the channel [09:37] MrWarGames has joined the channel [09:37] sendark: so Darshan-NowJS have you gone to bed? [09:37] slaskis: sendark: looks right to me, can you make a gist of it? [09:37] Darshan-NowJS: not yet [09:37] Darshan-NowJS: reading what you wrote [09:38] sendark: ok [09:39] sendark: https://gist.github.com/943982 [09:39] Darshan-NowJS: seems fine to me too [09:40] xeodox has joined the channel [09:40] slaskis: sendark: does the save() callback fire? [09:41] sendark: yep [09:41] sendark: i'm getting this output: [09:41] sendark: address: Przemysl, Poland resolved to Gmina Przemyśl, Poland (49.7838623, 22.7677908) [09:41] sendark: ->49.7838623, 22.7677908 [09:41] sendark: success! [09:42] sendark: so yeah success is firing on the save function [09:42] sendark: yet when i do a find on the db the location object doesn't have the new fields [09:42] slaskis: strange [09:45] stonebranch has joined the channel [09:45] jamey-uk: http://pastebin.com/0YG0R1cz i'm getting "ReferenceError: filename is not defined" when I request an existing file, what have I done wrong? [09:50] eventi has joined the channel [09:51] dekz: evening gents [09:52] dekz: jamey-uk: print out the result of path.join [09:52] Darshan-NowJS has left the channel [09:53] slaskis: jamey-uk: if it line 35 that breaks? [09:53] slaskis: *is it [09:53] slaskis: because there's no filename variable defined there... [09:56] samcday_away has joined the channel [09:56] saikat has joined the channel [10:01] jelveh has joined the channel [10:07] pdelgallego_ has joined the channel [10:09] ChrisPartridge has joined the channel [10:10] pdelgallego has joined the channel [10:12] FireFly has joined the channel [10:13] jamey-uk: dekz: result is as expected, /home/jamey/test/test.txt followed by /home/jamey/test/favicon.ico. [10:14] jamey-uk: slaskis: ah, I think I've misunderstood step(...) then, how should I pass the result of path.exists() with the filename from line 18 through to the fileExists() function? [10:15] FireFly|n900 has joined the channel [10:15] ditesh|cassini has joined the channel [10:15] tauren has joined the channel [10:16] Xano has joined the channel [10:16] Corren has joined the channel [10:17] aklt has joined the channel [10:20] sendark: slaskis: hey man about the question before, i fixed it. It was my fault, by defining the schema incorrectly. [10:20] jetienne: q. where can i find doc on how to install npm on a local directory ? not at system level ? [10:20] aklt: Hi I have a question about buffers in node [10:20] sendark: does anybody know what the best way to output javascript onto a page from a mongoose call? [10:20] sendark: i.e. search [10:20] sendark: when using jade [10:21] iFire has joined the channel [10:22] aklt: I am decoding a base64 encoded string in chunks. Sometimes a chunk is in the middle of a multibyte utf8 character and this causes the decoding to utf to fail and I am unsure how to do it correctly [10:24] aklt: At the time of decoding the base64 I do not know what kind of data this is, so I would like to be able to decode to binary data, but the binary encoding has been deprecated... Is there an alternative way to handle this? [10:24] openpercept has joined the channel [10:26] aklt: With a buffer containing 'på' encoded as base64: [10:26] slaskis: sendark: great! [10:26] aklt: when i do buf.toString('utf8') I get p [10:27] aklt: using buf.toString('binary') I get p<83> [10:28] slaskis: jamey-uk: you could either define the filename variable before step() and assign to it in the first 'step' or i think steps 'this' is passed along all, not sure though [10:29] hij1nx has joined the channel [10:30] jamey-uk: slaskis: I just wondered how other noders avoid messy code, I assumed step() was common but maybe not. Cheers though, I'll check out using 'this' [10:30] sendark: also, why does jade put things meant to go on the head of the document inside the body? [10:33] slaskis: jamey-uk: not much need for step(), as this does the same thing: https://gist.github.com/c0e53173d88f88364df9 but it's a matter of taste really, also step might be useful if your chain is dynamic and it could handle errors for you (i guess) [10:34] ph^_ has joined the channel [10:34] jamey-uk: slaskis: yeah that's how I first assumed to do it, so I'll forget about step(). The way you posted is the most logical and easy to read. [10:35] Zelest has joined the channel [10:36] Hans_ has joined the channel [10:36] mc_greeny has joined the channel [10:38] puffpio_ has joined the channel [10:40] TheDeveloper has joined the channel [10:41] sendark: https://gist.github.com/944045 <- this jade template is putting all of the elements from the head onto the body of the document [10:41] sendark: i'm ussing express, does that have to do with it? [10:42] slaskis: jamey-uk: i still use a chaining library in some cases, like for adding 'hooks' to some methods [10:43] eldios: sendark, no [10:43] jamey-uk: slaskis: something like Do, or another library of your own? [10:44] eldios: try to take out the script part and push in some test stuff [10:45] sendark: ok you think it's got to do with the script? [10:45] hackband has joined the channel [10:45] eldios: yep [10:45] sendark: eldios: even removing the scripts, the tag appears both on the head and on the body [10:46] eldios: weird [10:46] sendark: and i get this extra thing on the head [10:46] sendark: <link rel="stylesheet" href="/stylesheets/style.css"> [10:46] sendark: which i think express is putting there? [10:48] sendark: ok got it [10:48] sendark: there's a file called layout.jade [10:48] sendark: and that's the one doing the head [10:49] eldios: yes but you can ovveride that if you want [10:49] eldios: the layout.jade is useful when you have a common layout for the whole site [10:51] sendark: yep but if i'm going to be using scripts, i'll be fillng the head with different things [10:52] newy_ has joined the channel [10:52] herbySk has joined the channel [10:53] Opaque has joined the channel [10:53] TomY has joined the channel [10:54] eldios: then you could decide to use the layout.jade to include the same script lines on every "page" with the common layout [10:55] eldios: or not use the common layout and create different .jade file for each section of your site [10:57] k1ttty has joined the channel [10:57] sendark: yep [10:57] sendark: the thing is it says that layout can be supressed [10:57] sendark: but it's ignoring it [10:57] sendark: res.render('wishes', {layout:false, title: 'Hello', wishes:wishes}); [10:58] sendark: still uses the layout file [10:58] sendark: which is *annoying* [10:58] matclayton has joined the channel [11:01] astropirate has joined the channel [11:01] sendark: it clearly states on their help that you can do res.render('user', { layout: false, user: user }); [11:01] sendark: so wtf, really. [11:02] TomY has joined the channel [11:03] sendark: ok it was my fault. sorry. [11:05] ardcore has joined the channel [11:06] newy_ has joined the channel [11:07] eldios: ;) [11:07] anoop has left the channel [11:07] andrewfff has joined the channel [11:08] __tomb has joined the channel [11:08] altamic has joined the channel [11:08] altamic has joined the channel [11:09] MattJ has joined the channel [11:09] jasong_at_apache has joined the channel [11:13] eee_c has joined the channel [11:14] broofa has joined the channel [11:15] therrg has joined the channel [11:16] jarek has joined the channel [11:16] jarek has joined the channel [11:17] dies_el has joined the channel [11:17] loob2 has joined the channel [11:18] pkrumins: i am back home in Latvia [11:18] pkrumins: silicon valley was a blast. [11:19] jano has joined the channel [11:21] beawesomeinstead has joined the channel [11:24] Nomon has joined the channel [11:25] brendanjerwin has joined the channel [11:25] therrg has joined the channel [11:26] confoocious has joined the channel [11:26] confoocious has joined the channel [11:28] fly-away has joined the channel [11:31] demastrie has joined the channel [11:34] jaket_ has joined the channel [11:38] demastrie has left the channel [11:43] ardcore has joined the channel [11:44] ardcore has left the channel [11:45] tiemonster has joined the channel [11:49] jarek has joined the channel [11:49] jarek has joined the channel [11:49] Gregor has joined the channel [11:51] markwubben has joined the channel [11:51] confoocious has joined the channel [11:51] confoocious has joined the channel [11:56] piscisaureus has joined the channel [11:57] Mrfloyd has joined the channel [11:58] tiagoa has joined the channel [11:58] littke has joined the channel [11:59] FireFoxIXI has joined the channel [11:59] bradleymeck1 has joined the channel [11:59] Gruni has joined the channel [12:00] 16WAACQTX has joined the channel [12:02] ph^ has joined the channel [12:03] ph^_ has joined the channel [12:06] eventi has joined the channel [12:08] Gruni has joined the channel [12:09] pdelgallego has joined the channel [12:09] pdelgallego_ has joined the channel [12:10] jtrudeau has joined the channel [12:10] DennisRasmussen has joined the channel [12:14] fairwinds has joined the channel [12:14] mdaisuke has joined the channel [12:15] ditesh|cassini has joined the channel [12:17] swearos has joined the channel [12:18] Kingdutch has joined the channel [12:21] mike5w3c has joined the channel [12:22] tiemonster has joined the channel [12:22] ph^ has joined the channel [12:26] sunblush has joined the channel [12:29] V1 has joined the channel [12:32] zcopley has joined the channel [12:34] rfay has joined the channel [12:34] tiemonster has joined the channel [12:35] roidrage has joined the channel [12:35] Guest98578 has joined the channel [12:37] ph^_ has joined the channel [12:41] Xano has joined the channel [12:42] jscheel has joined the channel [12:42] jscheel has joined the channel [12:45] jbpros has joined the channel [12:46] galaxywatcher has joined the channel [12:46] kriszyp has joined the channel [12:50] highermath_away has joined the channel [12:50] jarek has joined the channel [12:50] jarek has joined the channel [12:53] troessner has joined the channel [12:54] colinclark has joined the channel [12:57] cgcardona has joined the channel [12:57] cgcardona has left the channel [12:57] whozman has joined the channel [12:59] malkomalko has joined the channel [13:00] miccolis has joined the channel [13:00] sledge has joined the channel [13:01] brolin has joined the channel [13:02] mattmcmanus has joined the channel [13:03] k1ttty has joined the channel [13:03] skm has joined the channel [13:05] amacleod has joined the channel [13:06] rfay_ has joined the channel [13:06] phiggins: stupid question, I've only ever mucked with node locally on nonstandard ports. Is Apache ProxyPass sufficient to cram a nodejs httpserver instance on an existing host (with apache owning port 80)? [13:06] Corren has joined the channel [13:07] jacksonmills has joined the channel [13:09] jlecker has joined the channel [13:10] deedubs: phiggins: should be. You can also just follow any tuts on proxying to other backend techs you might be comfortable with mongrel, thin, etc [13:11] phiggins: what do most folk do? adhoc poll... [13:12] aphelion has joined the channel [13:12] deedubs: I'm running my express app behind varnish [13:14] phiggins: word. thanks for the feedback [13:14] skm has joined the channel [13:14] fermion has joined the channel [13:14] heythisisdave has joined the channel [13:15] brolin has joined the channel [13:15] avalanche123 has joined the channel [13:16] sreeix has joined the channel [13:17] Justinus has joined the channel [13:18] markwubben has joined the channel [13:19] azeroth__ has joined the channel [13:20] [AD]Turbo has joined the channel [13:20] jano has joined the channel [13:20] adambeynon has joined the channel [13:21] echong has joined the channel [13:21] paulrobinson has joined the channel [13:22] echong has left the channel [13:23] bshumate has joined the channel [13:23] bshumate has joined the channel [13:24] slaskis: phiggins: yeah, i'm running a production app that way by proxying through apache [13:24] slaskis: works great, been running since september [13:25] phiggins: slaskis: no gotchas like ngix http/1.1 type stuff? I don't think I'll be doing any websocket stuff, just novelty nodejs server and js across the board [13:26] sirkitree has joined the channel [13:26] paulrobinson has left the channel [13:26] slaskis: phiggins: not that i've been notified about, it's been in the hands of our client since december [13:27] phiggins: awesome thanks. [13:27] slaskis: i'm pretty sure they'd come running if it did :P [13:27] euphona has joined the channel [13:27] ditesh|cassini has joined the channel [13:27] lukegalea has joined the channel [13:29] superjudge has joined the channel [13:31] onre_ has joined the channel [13:32] moshe has joined the channel [13:35] baudehlo has joined the channel [13:35] cbiscardi has joined the channel [13:37] Poetro has joined the channel [13:37] fermion has joined the channel [13:38] postwait has joined the channel [13:39] dguttman has joined the channel [13:42] boaz has joined the channel [13:42] c4milo has joined the channel [13:42] onre_ has joined the channel [13:47] dnolen has joined the channel [13:50] levi501d has joined the channel [13:51] rfay has joined the channel [13:53] onre_ has joined the channel [13:55] avalanche123 has joined the channel [13:58] F1LT3R has joined the channel [13:58] mbrevoort has joined the channel [13:58] beawesomeinstead has joined the channel [13:58] beawesomeinstead has joined the channel [13:59] ardcore has joined the channel [13:59] Xano has joined the channel [14:00] onre_ has joined the channel [14:00] ardcore has left the channel [14:01] aheckmann has joined the channel [14:01] JulioBarros has joined the channel [14:02] temp01 has joined the channel [14:02] nciagra has joined the channel [14:03] aheckmann has joined the channel [14:03] unomi has joined the channel [14:03] aheckmann has joined the channel [14:03] Swimming_bird has joined the channel [14:05] drudge: Sequelize will have a Kiwi package in future. <-- lol [14:07] pr2012 has joined the channel [14:07] vipaca has joined the channel [14:07] vipaca has joined the channel [14:08] eee_c has joined the channel [14:09] sledge: Good morning, everyone. [14:09] TheDeveloper: morning [14:09] Zelest: no morning is good... but yeah, hi! ;-) [14:10] cbiscardi has joined the channel [14:10] jelveh_ has joined the channel [14:12] hoax__ has joined the channel [14:13] copongcopong has joined the channel [14:14] jelveh has joined the channel [14:16] dnolen has joined the channel [14:17] kawaz_air has joined the channel [14:17] nibblebot: is there a nodejs api doc with a more findable interface? [14:18] chapel: nibblebot: findable? [14:18] Know1edge has joined the channel [14:18] jfalvarez has joined the channel [14:18] nibblebot: either with a search or with alphabetical listings [14:18] wink_: nibblebot: all on one page? [14:18] chapel: yeah [14:18] wink_: + ctrl-f [14:18] chapel: I was going to recommend that [14:19] wink_: http://nodejs.org/docs/v0.4.6/api/all.html [14:19] wink_: you can use your browser search in there [14:19] wink_: works well [14:19] samsonjs has joined the channel [14:20] Justinus: I just completed this tutorial here http://nodebeginner.org/ … what do you guys suggest next? [14:20] m64253 has joined the channel [14:21] deedubs: Justinus: Make a chat room using socket.io [14:24] jfalvarez has joined the channel [14:24] Justinus: deedubs: thanks for the suggestion, researching on socket.io [14:24] softdrink has joined the channel [14:25] thomblake has joined the channel [14:26] devrim has joined the channel [14:26] davidwalsh has joined the channel [14:26] losing has joined the channel [14:27] paolodedios has joined the channel [14:28] jano_ has joined the channel [14:29] chapel: you could use dnode to make the chatroom [14:29] chapel: since it uses socket.io [14:29] chapel: and handles most of the server<>browser communication [14:30] JulioBarros has joined the channel [14:30] jpld has joined the channel [14:30] jpld has joined the channel [14:30] nphase has joined the channel [14:32] flippyhead has joined the channel [14:33] fumanchu182 has joined the channel [14:33] jamesarosen has joined the channel [14:33] tk has joined the channel [14:34] bentruyman has joined the channel [14:34] ezl has joined the channel [14:34] nibblebot: how might a text editor implement code completion for node modules e.g. fs.stat() since it does not use the new operator or built in objects? [14:34] jtsnow has joined the channel [14:35] sirkitree has joined the channel [14:35] defeated has left the channel [14:37] sub_pop has joined the channel [14:37] snearch_ has joined the channel [14:37] replore_ has joined the channel [14:37] Aikar: nibblebot: not easily, they would need to impment a js syntax parser that scans for module.exports and exports.x type instructions, and then the fact that things can be added programmatically makes things even harder [14:40] chapel: if the text editor use node.js it wouldn't be too hard :P [14:41] christophsturm has joined the channel [14:41] nibblebot: chapel: i don't follow? [14:41] kkaefer: what's the best solution for a module to require() itself? [14:42] nibblebot: kkaefer: why would you want that? [14:42] kkaefer: create a node_modules/modulename/index.js that exports require('../..')? [14:42] coreb has joined the channel [14:43] sirkitree has joined the channel [14:43] RushPL has joined the channel [14:43] chapel: yeah why would you want to require a module inside itself? [14:43] mikegerwitz: kkaefer: what problem are you trying to solve? [14:43] strmpnk has joined the channel [14:43] kkaefer: tests requiring the module, for example [14:44] Know1edge has joined the channel [14:44] kkaefer: and I don't really want to use require('../..') in the test code [14:44] chapel: nibblebot: well if the editor had node.js built in, you could read the module functions easily and make it available to the editor [14:44] Aikar: kkaefer: add a node_modules/yourmodulename.js that does module.exports = require('../'); [14:45] kkaefer: Aikar: just did that, but I just noticed that that doesn't allow me to include subfiles of that module [14:45] Aikar: then require('yourmodule') will work inside the tests folder [14:45] kkaefer: like modulename/lib/foo [14:45] Aikar: ok then symlink node_modules/yourmodule to ../ lol [14:45] heythisisdave has joined the channel [14:46] BillyBreen has joined the channel [14:46] kkaefer: yeah; that causes all kinds of other issues [14:46] Aikar: why [14:46] Venom_X has joined the channel [14:47] Aikar: should work fine [14:47] astropirate has joined the channel [14:47] Aikar: just, itll blow up some IDE's :/ [14:47] kkaefer: yeah, but textmate doesn't like it [14:47] kkaefer: yes [14:47] kkaefer: that's why I don't want to do it [14:47] Aikar: Komodo Edit is ok with symlinks ;) [14:48] kkaefer: it's also written in XUL [14:48] Aikar: and runs great [14:49] davidsklar has joined the channel [14:51] indutny has joined the channel [14:52] pastak_ has joined the channel [14:53] samsonjs has joined the channel [14:53] brianc has joined the channel [14:53] chrislorenz has joined the channel [14:54] mscdex: node.js rules! [14:54] halfhalo: duh [14:54] chapel: mscdex: what is new? [14:55] troessner has joined the channel [14:56] nibblebot: komodo++ [14:56] v8bot: nibblebot has given a beer to komodo. komodo now has 1 beers. [14:57] mscdex: chapel: not much, working on my card game [14:57] chapel: awesome, how is that? [14:57] briznad has joined the channel [14:58] mscdex: almost finished, just working on fixing a couple bugs and polishing up the web frontend a bit [14:58] Xano has joined the channel [14:59] themiddleman_itv has joined the channel [14:59] EyePulp has joined the channel [15:00] rworth has joined the channel [15:00] nibblebot: mscdex: making a card game in node? [15:03] malkomal_ has joined the channel [15:05] deanlandolt has joined the channel [15:06] TheDeveloper: anyone using node-amqp? [15:08] piscisaureus has joined the channel [15:10] rfay_ has joined the channel [15:10] rfay__ has joined the channel [15:11] isaacs has joined the channel [15:12] fawek has joined the channel [15:13] [1]Corren has joined the channel [15:13] LadyGagaCandy has joined the channel [15:13] LadyGagaCandy: How crowded is the node.js managed hosting market? [15:14] drudge: no.de, duostack, webbynode, heroku, dotcloud [15:15] LadyGagaCandy: And Joylent right? [15:15] pquerna: no.de = joyent [15:15] LadyGagaCandy: Purveyors of node prodigies :p [15:15] drudge: what he said ;) [15:15] kawaz_air has joined the channel [15:15] LadyGagaCandy: ACTION just completed his first big, commercial node.js project :) [15:16] bingomanatee has joined the channel [15:16] pquerna: ACTION too [15:16] LadyGagaCandy: 17,000 lines of code for the web app. Slightly less than half of that is model stuff written in node [15:17] tfe_ has joined the channel [15:17] tfe_ has joined the channel [15:17] LadyGagaCandy: It I learned a lot from it -- especially things I could do better, like not so many nested anonymous functions /lambdas :p [15:17] ScottR____ has joined the channel [15:18] gmci has joined the channel [15:18] samsonjs has joined the channel [15:18] pquerna: yes, i've been happy with using async - https://github.com/caolan/async [15:19] LadyGagaCandy: Wouldn't it be nice if you could write code that looks like sync code (i.e., one line happens and then the next), but is async? [15:19] ScottR____: i had a question about the events.EventEmitter class; is there a way to stop event propagation? [15:19] mscdex: nibblebot: yeah [15:20] softdrink: http://www.codinghorror.com/blog/2011/04/working-with-the-chaos-monkey.html [15:20] LadyGagaCandy: You'd have to specify that the code is prerequisite to the next code. Then beneath that abstraction layer, it would be doing callbacks [15:20] TheDeveloper: LadyGagaCandy: There are javascript compilers to achieve that [15:20] pquerna: LadyGagaCandy: someday, but its a different thing than node.js [15:20] TheDeveloper: streamline.js [15:20] LadyGagaCandy: TheDeveloper: Is it buggy/problematic though? [15:20] ScottR____: LadyGagaCandy: that style just strikes me as asking for debugging nightmares [15:20] LadyGagaCandy: I'm worried about stuff like that breaking in a big, complex project [15:21] TheDeveloper: probably, and I wouldn't say it gives great performance either [15:21] TheDeveloper: https://github.com/Sage/streamlinejs [15:21] Lorentz: brianc: Thanks for linking me node-postgres a day or two ago [15:21] TheDeveloper: read this too: http://zef.me/3715/three-routes-to-spaghetti-free-javascript [15:21] LadyGagaCandy: TheDeveloper: Surely caching would solve the performance issue? [15:21] mscdex: spaghetti is delicious! [15:21] LadyGagaCandy: lol mscdex [15:21] TheDeveloper: nah, it'd be inherent performance issues with parsing the code [15:21] dmcquay has joined the channel [15:21] LadyGagaCandy: btw, we found a huge bug in brianc's pg library [15:22] kmiyashiro has joined the channel [15:22] LadyGagaCandy: It fucked our web app up pretty bad :) [15:22] pquerna: LadyGagaCandy: with a few utility libs like async and requiring adherance to reasonable code standards its no worse than writing twisted python code :) [15:22] isaacs has joined the channel [15:22] ScottR____: I'm with TheDeveloper; it's just asking for problems, and the effort that goes into what amounts to syntactic sugar would be... unjustifiably large [15:22] brianc: LadyGagaCandy: oh yeah? what bug [15:22] LadyGagaCandy: brianc: The array handling [15:22] LadyGagaCandy: brianc: I can go look for what I changed to fix it [15:22] brianc: LadyGagaCandy: yeah the array handling isn't really implemented well...there's an open issue on it [15:23] pyrony has joined the channel [15:23] tjholowaychuk has joined the channel [15:23] brianc: Lorentz: you're welcome [15:23] LadyGagaCandy: brianc: Essentially, it was puking (dying) when a column had the value [], but was fine if the value was [""] [15:23] brianc: LadyGagaCandy: if you fixed it, a pull request would be appreciated [15:23] ScottR____: TheDeveloper, you seem pretty knowledgeable. Any chance you know the answer to the EventEmitter question? [15:23] LadyGagaCandy: brianc: So we had trouble when we had empty arrays [15:24] skohorn has joined the channel [15:24] Mrfloyd has joined the channel [15:24] brianc: LadyGagaCandy: could you post a test to reproduce the bug to the github issue? or pull request w/ test & fix would be even better. I really haven't used arrays within postgres so was waiting for community to fix that. [15:24] brianc: https://github.com/brianc/node-postgres/issues/10 [15:24] LadyGagaCandy: brianc: I would do a pull request, but my fix is really hackish. I just put in a if (column value == "[]") column value = "['']" at the top of the function :( [15:25] LadyGagaCandy: brianc: Sure, are you here later today? [15:25] brianc: LadyGagaCandy: ah okay. yeah I should be here [15:25] LadyGagaCandy: I have to test a deployment, then I will reproduce the bug for you [15:25] brianc: LadyGagaCandy: k, then i can patch it for you [15:25] LadyGagaCandy: But my fix isn't very nice :p [15:26] TheDeveloper: Scottr____: Is there anything in the docs? [15:26] ScottR____: on halting event propagation? I couldn't find it [15:26] brianc: the array parsing code isn't good right now...I don't use the feature...but tests which shake out bugs are always welcome, they add to the regression suite and when a better implementation of the array parser comes out...your issue will always be tested for [15:26] tykelewis has joined the channel [15:27] brianc: tl;dr - tests = good. everyone wins. [15:27] fumanchu182 has joined the channel [15:27] fumanchu182 has joined the channel [15:27] harth has joined the channel [15:28] LadyGagaCandy: brianc: Cool [15:28] TheDeveloper: 01Scottr____: not sure on that one i'm afraid [15:29] LadyGagaCandy: brianc: It would really help our web app (a market vertical-specific CRM in New York) if we could pull down lib pg directly from npm without having to maintain our own patch :) [15:29] ScottR____: TheDeveloper: bah. I'm trying to subclass net.Server for a websocket server with all the benefits of any changes that get rolled into the core [15:29] LadyGagaCandy: I'll get the test case later today [15:29] brianc: LadyGagaCandy: do you mean pull down the pre-compiled binary? or do you mean pull down a version where the array parsing isn't broken? [15:30] LadyGagaCandy: brianc: I mean, running 'npm --install pg' [15:30] ScottR____: TheDeveloper: but I need to hijack the "connection" event to set it up appropriately for web sockets, and then pass that along to the listener set up by the end user [15:30] harth has joined the channel [15:30] LadyGagaCandy: brianc: Which is the precompiled, yes. [15:30] lessthanzero has joined the channel [15:30] brianc: LadyGagaCandy: you give me a failing test, I'll make it pass and push a new version to npm. then you can "npm install pg" and your array issue should be solved [15:30] LadyGagaCandy: awesome :) [15:31] rauchg has joined the channel [15:31] brianc: LadyGagaCandy: NPM doesn't yet support having pre-compiled binarys, so when you install pg will attempt to link against libpq and build the ".native" part...if the build fails, it continues to install...only the native extensions will be unavailable [15:31] isaacs has joined the channel [15:31] TheDeveloper: 07ScottR____01: can't you just wedge your own callback on the connect event which then executes the user callback after it does its websockets stuff? [15:32] dambalah has joined the channel [15:32] colinclark has joined the channel [15:32] ScottR____: TheDeveloper: yes, that's the original solution that I have and it works now, but it sets up a wrapper around the net.Server object and I have to pass through all calls directly to it [15:32] LadyGagaCandy: brianc: Right, I remember now :) [15:33] eresair has joined the channel [15:33] ScottR____: TheDeveloper: and since I'm only writing the library because existing websocket server packages don't adhere to the net.Server API, I need to keep it consistent... which means emitting a "connection" event when a connection is made [15:34] fumanchu182 has joined the channel [15:34] fumanchu182 has joined the channel [15:34] sh1mmer has joined the channel [15:34] ScottR____: TheDeveloper: the problem I'm trying to address is subclassing the WebSocketServer directly from net.Server, which emits a "connection" event every time a connection is made.. so the user callback ends up receiving the first event, AND the second event that I end up emitting with the appropriately modified socket [15:34] davidvanleeuwen has joined the channel [15:35] TheDeveloper: this git merge seems to suggest that if your return false out of your event callback, the propagation is stopped: https://github.com/donnerjack13589/node/commit/55a52a9a2f158a155b10d11e78ba18cad04618a9 [15:35] matjas has joined the channel [15:37] ScottR____: TheDeveloper: see, that's why I asked. I knew I was missing something stupidly obvious! [15:37] pandeiro has joined the channel [15:37] ScottR____: TheDeveloper: Thanks. I'll let you know if it works as planned! [15:39] TheDeveloper: 07ScottR____01: NP, learnt something new myself :) lt me know if it works [15:39] fljitovak has joined the channel [15:41] brettgoulder has joined the channel [15:41] Spion__ has joined the channel [15:41] dlkinney has joined the channel [15:42] llkazu has joined the channel [15:42] res99 has joined the channel [15:43] sivy has joined the channel [15:44] mscdex: ScottR____: just so you know, that repo is a fork and the main repo does not contain that commit ;) [15:44] ScottR____: mscdex: ARG. Who do I talk to about changes to the API? ;) [15:45] mscdex: ScottR____: post to nodejs-dev about changes to core [15:45] ScottR____: mscdex: Will do. Also had a bone to pick about EventEmitter's closure requirement to do any meaningful work... [15:45] TheDeveloper: sorry, it was merged, I just posted the source commit URL: https://github.com/joyent/node/pull/317 [15:45] ukev has joined the channel [15:45] TheDeveloper: but I'm checking to see if its in the actual node source now [15:46] mscdex: hrmm [15:47] mscdex: doesn't look like it [15:47] TheDeveloper: +1 [15:47] TheDeveloper: dayum [15:47] mscdex: heh [15:47] TheDeveloper: so node doesn't support propagation? [15:48] TheDeveloper: *prevention [15:48] mscdex: no [15:48] ScottR____: propagation halting [15:48] ScottR____: seems like a mistake of the oversight variety [15:48] TheDeveloper: indeed [15:48] sourcode has joined the channel [15:48] timmywil has joined the channel [15:48] mscdex: i think i remember a discussion somewhere on the mailing list about that though [15:48] ScottR____: ... not an oversight? [15:49] d0k has joined the channel [15:49] Yuffster_work has joined the channel [15:49] tauren has joined the channel [15:49] onre has joined the channel [15:49] robm` has joined the channel [15:50] CIA-72: node: 03Ryan Dahl 07master * r8a03cf7 10/ doc/api/process.markdown : Fix docs for process.arch - http://bit.ly/gL5NqW [15:51] mscdex: ryah: we're having .arch be attached to both process and the os module? [15:51] beawesomeinstead has joined the channel [15:51] beawesomeinstead has joined the channel [15:51] jgv has joined the channel [15:53] mscdex: ScottR____: i dunno, i can't seem to find the thread about it. i'd post to nodejs-dev though [15:54] ScottR____: mscdex: currently browsing http://groups.google.com/group/nodejs-dev/browse_thread/thread/f68a405cca891550/e096cd26fa1d7157?lnk=gst&q=event+propagation#e096cd26fa1d7157 [15:54] ScottR____: i'm hesitant to post without doing due diligence. just now starting to get in to open source and using github, still working out the common etiquette :-/ [15:55] path[l] has joined the channel [15:55] fumanchu182 has joined the channel [15:55] fumanchu182 has joined the channel [15:56] mscdex: ScottR____: i don't think there'd be a problem as long as you only post nodejs core-related issues to nodejs-dev and everything else to the main list [15:56] ScottR____: main list being nodejs? [15:56] mscdex: yep [15:56] ScottR____: also want to avoid bringing up a duplicate issue without reasonable background [15:57] ScottR____: background information* or a reasonable fix [15:57] mscdex: true, patches and tests are always welcomed :) [15:59] ardcore has joined the channel [15:59] Justinus has left the channel [15:59] raidfive has joined the channel [15:59] matjas__ has joined the channel [16:00] thomblake has left the channel [16:00] stephank has joined the channel [16:00] ardcore has left the channel [16:01] Tobsn has joined the channel [16:01] djktno has joined the channel [16:02] openpercept has joined the channel [16:03] pyrony has joined the channel [16:03] roidrage has joined the channel [16:05] liar has joined the channel [16:05] amerine has joined the channel [16:05] jamesarosen has joined the channel [16:05] RusAlex has joined the channel [16:06] jtsnow has joined the channel [16:06] pita has joined the channel [16:07] davidascher has joined the channel [16:07] pita: Hi, we created some invalid JSON by mistake. Now we're trying to catch exceptions from JSON.parse , but a normal try catch is not working, it says its a syntaxexception [16:08] pita: or is there a way to find out if the JSON is valid before we do the parse?! [16:08] zakabird has joined the channel [16:09] TheDeveloper: if it says syntax exception, you're typing it wrong [16:09] ScottR____: I think he's loading it from an external resource? [16:09] eldios: why a normal try/catch is not working to check if it's not valid? [16:09] ScottR____: it bugs out the v8 compiler when it comes across something like that [16:10] ScottR____: because of how v8 implements JSON.parse [16:10] eldios: oh [16:10] ScottR____: and throws a not-js error. [16:10] ScottR____: but last I checked was a while ago, looking again to see if that's still accurat [16:10] TheDeveloper: where are you sourcing the JSON? [16:10] ScottR____: e [16:10] openpercept has joined the channel [16:11] aberry has joined the channel [16:12] jmar777 has joined the channel [16:13] indiefan2a has joined the channel [16:13] context: try/catch works here with bad json :/ [16:13] techwraith has joined the channel [16:13] pita: realy? [16:14] ScottR____: yeah, looks like they patched the issue a while ago [16:14] pita: ok... [16:14] beriberikix has joined the channel [16:14] TheDeveloper: I've always used try/catch [16:14] ScottR____: why didn't you generate the JSON from JSON.stringify? [16:14] JacobSingh has joined the channel [16:14] beriberikix: Was there any changes to require in 0.4.7? [16:14] Aikar: !quote search rakia [16:14] pita: we did [16:14] Aikar: err [16:14] pita: but the database cutted it [16:14] context: http://pastie.org/1839824 [16:14] pita: and now there is a half string in the database :/ [16:14] ScottR____: but... then isn't it useless anyway? [16:14] springmeyer has joined the channel [16:15] context: if i heard what you said correctly that is [16:15] ScottR____: why not just up the string size limit on the database and regenerate the json? [16:15] TheDeveloper: ^ (do this only if you have a small table :P) [16:15] herbySk has joined the channel [16:15] kawaz_air has joined the channel [16:15] mjr_ has joined the channel [16:16] beriberikix: when I upgraded from 0.4.6 to 0.4.7, require can't find my NPM modules [16:16] context: did they get removed? still works here :x [16:16] TheDeveloper: did you change your node path [16:16] context: or install 0.4.7 somewhere else? [16:17] context: is your NODE_PATH set ? [16:17] hunterloftis has joined the channel [16:17] ScottR____: TheDeveloper: haha yes, only start screwing with your database schema if this problem is unsolvable any other way... [16:17] beriberikix: nope, same path [16:17] beriberikix: I did a vanilla instal from source [16:18] ScottR____: mscdex, TheDeveloper: can i bounce the API change I was planning on recommending off you guys? [16:18] TheDeveloper: go for it [16:18] ScottR____: If it's gonna succeed, I'll need to make sure it's rock solid [16:18] ScottR____: when you attach event listeners, very often you do something like: [16:19] ScottR____: someObj.addListener( event, function( args ){ someObj.doStuff() } ) [16:19] ScottR____: and the reason you have to use this closure is specifically to reference someObj in the callback [16:20] ScottR____: why not have the first argument in the callback always be the object that emitted the event? [16:20] ScottR____: then you could define handlers independent of scope, and attach them via simple pointer instead of generating a closure for every object [16:20] llkazu: "cause closures are cool" [16:20] ScottR____: performance change: not super significant, but it's such a small change that it doesn't make sense to keep it as is [16:21] cloudhea4 has joined the channel [16:21] robm` has joined the channel [16:22] ScottR____: right now, i see a lot of my code with event callback function generators, and all the tutorials i see all over the place (in search of finding a way to circumvent this) show the same thing [16:22] davida has joined the channel [16:22] ScottR____: IMO, it'd lead to cleaner code and better memory efficiency, since it's a simple function reference instead of a closure for every object that has a listener [16:23] context: scottr____: isnt 'this' the object that emitted the event ... ? [16:23] pita: is there any way to read a half json string? afaik there are some streaming json parser or? [16:23] kmiyashiro has joined the channel [16:23] context: i could be wrong :x [16:23] EyePulp: pita: I doubt it - the structure is incomplete [16:24] TheDeveloper: pita: you've gotta question your motives for needing that :S [16:24] TheDeveloper: incomplete JSON is invalid JSON by definition, so trying to read it is flawed [16:24] ScottR____: context: .... am I that blind? Let me check the source :-/ [16:24] EyePulp: you could just create a while loop that tacks on quotes, parens, brackets, and braces until it evals... [16:25] EyePulp: =) [16:25] context: eyepulp: wow. [16:25] zylo has joined the channel [16:25] TheDeveloper: and ScottR____: I'm with context, I'm pretty sure this will contain the emitting object [16:25] cloudhead has joined the channel [16:25] gmanika: randomly? :) [16:25] EyePulp: sure [16:25] ScottR____: I'm going to feel stupid if that's the case. [16:25] EyePulp: Good thing node is async, amirite?!? [16:25] ScottR____: and then go drink another 4 cups of coffee. [16:25] nefD has joined the channel [16:25] context: pita: this isnt a brochs pick and mix. stop creating/accepting broke as hell json and fix the crap. [16:26] ScottR____: ... yep, I feel pretty dumb [16:26] EyePulp: ACTION had coffee already - thus his awesome solutions are getting awesome...er [16:26] Yuffster_work: pita: If you can rely on a specific format, you can create a streaming parser. [16:26] TheDeveloper: hehe [16:26] ScottR____: BRB, rewriting library~ [16:26] ScottR____: ;) [16:26] Yuffster_work: Ie, if it's an array of objects, you can toss out the last, incomplete object using regex, close the array, and then go. [16:26] context: scottr____: no worries. the obvious stuff is looked over the most [16:26] techwraith: ACTION hates coffee 'cause coffee == java, and java sucks. [16:26] chapel: hey Yuffster_work [16:27] dlkinney has joined the channel [16:27] Yuffster_work: Hai chapel. :) [16:27] chapel: how are things? [16:27] EyePulp: Yuffster_work: that's what I'm saying, only you're smearing a thin veneer of legitimacy on an intrinsically dodgy proposition. [16:27] ScottR____: yeah, but being the resident jquery guy here, you'd think I'd figure that someone else would say "oh, hey, just use the this reference to point to the thing that caused the event!" [16:27] EyePulp: =P [16:27] iFire` has joined the channel [16:27] ScottR____: here being work, obv. [16:27] Yuffster_work: Yes, yes, it's dirty, but if you have giant packets of data and you can't stop that from happening, you gotta do what you gotta do. [16:27] context: pita: or break your json into chunks if you really cant get it all. but stop trying to read half of it. google doesnt give you only the first half of every url expecting your browser to magically fix them. [16:28] beriberikix has joined the channel [16:28] beriberikix has left the channel [16:28] mike5w3c has joined the channel [16:28] EyePulp: Yuffster_work: fair enough - I think context hit the nail - break the json bundles out into more discrete messages [16:28] er1c_ has joined the channel [16:28] EyePulp: context++ [16:28] v8bot: EyePulp has given a beer to context. context now has 2 beers. [16:28] Yuffster_work: The question wasn't, "What should I do for long JSON strings?" though, it was, "Is it possible to stream JSON?" [16:29] ScottR____: Still, you should probably re-examine the source of the JSON in the database and figure out why it's so long and getting chopped at all [16:29] EyePulp: Yuffster_work: no, the question was "is there any way to read a half json string? " which the answer is "yes, but not as a json object" [16:30] Yuffster_work: It's easy enough to reconstruct, though. [16:30] EyePulp: Yuffster_work: I see your side of it though - I'm letting my coffee make me argue needlessly. [16:30] Yuffster_work: I guess I'm just assuming pita is a responsible grown-up who will butcher JSON only in dire situations. [16:30] Yuffster_work: Isn't IRC *for* arguing needlessly? [16:30] EyePulp: IRC: fertile ground for responsible grown-ups [16:31] qbert_: isaacs, are you set on NPM storing dependencies on a per project basis ? I like it personally but we need to make some long term decisions on this project were doing [16:31] EyePulp: ...who do not know the touch of a woman. [16:31] isaacs: qbert_: yes, dependencies are project dependencies [16:31] EyePulp: ACTION kids... [16:31] path[l] has joined the channel [16:32] isaacs: brianc, LadyGagaCandy: npm will support pre-built binary addons soon. [16:32] isaacs: brianc, LadyGagaCandy: for now, keep doing what you'er doing :) [16:32] EyePulp: ACTION hugs isaacs for npm and defaulting to the --bundle solution. but the hug lasts a bit too long, and awkward eye-avoidance ensues [16:32] qbert_: isaacs, kk thanks [16:33] isaacs: EyePulp: :) [16:33] techwraith: Yep, someone needs to take the coffee away fom eyepulp ;) [16:33] indutny has joined the channel [16:33] qbert_: hah, agreed [16:33] kawaz_air has joined the channel [16:33] cbiscardi has joined the channel [16:33] TheDeveloper: haha [16:34] tokumine has joined the channel [16:34] balaa has joined the channel [16:34] EyePulp: ACTION blinks repeatedly... and wipes the drool. [16:34] EyePulp: I got pulled off my node project to run a django project. I miss my node. [16:35] tbranyen: f django [16:35] techwraith: :( [16:35] ScottR____: bleh. sorry to hear it man [16:35] febits has joined the channel [16:35] LadyGagaCandy: I think I am about to freak out fixing this FastCGI mess [16:35] EyePulp: the django project should pull in enough cash flow to bootstrap the node project. [16:35] EyePulp: priorities. =) [16:35] LadyGagaCandy: EyePulp: What django project? [16:36] EyePulp: The one I'm building at work...? [16:36] qbert_: whats it do silly [16:36] jacter has joined the channel [16:36] context: you named a project django project ? [16:36] eldios: anyone using cloud9IDE in here? [16:37] LadyGagaCandy: I feel like I am being abused & and slowly having the life crushed out of me by php-fpm/FastCGI manager [16:37] context: that has zero relation to the django project that alrady exists? [16:37] LadyGagaCandy: :< [16:37] techwraith: super secret awesomesauce stuff that he can't tell us about ;) [16:37] matjas_ has joined the channel [16:37] context: thats like naming your next project written in .NET nodejs [16:37] EyePulp: it's the service configuration tool for customers of our load of services - a front end for existing customers to manage their accounts, with a billing backend and service management scripts to modify the junk they buy from us. [16:38] ScottR____: LadyGagaCandy: if I can avoid using PHP ever again in my life, i will consider myself successful. Sole requisite. [16:38] TheDeveloper: LadyGagaCandy & ScottR: similar situation here, im with you there [16:38] LadyGagaCandy: ScottR____: At least it's just for templating [16:38] EyePulp: the old system is on a windows box under classic asp and SQL Server. moving to django will be delightful [16:39] ScottR____: LadyGagaCandy: at that point, you might as well run perl... [16:41] context: ok so i read that wrong. :x [16:41] Corren has joined the channel [16:42] Gruni has joined the channel [16:45] ericnakagawa has joined the channel [16:47] sreeix has joined the channel [16:47] steffkes has joined the channel [16:48] jakehow has joined the channel [16:48] dahankzter has joined the channel [16:49] wang has joined the channel [16:50] onre has joined the channel [16:50] kschzt has joined the channel [16:52] levi501d has joined the channel [16:52] mytrile has joined the channel [16:53] remysharp has joined the channel [16:53] jakehow has joined the channel [16:53] eee_c has joined the channel [16:54] nvardar has joined the channel [16:54] jamey-uk: I'm trying to use express-on-railway and I'm getting the error "Object #<Object> has no method 'staticProvider'" in http.js, does anyone know what this is caused by/ [16:54] jamey-uk: ? * [16:54] visa has joined the channel [16:55] remysharp: jamey-uk they renamed it to just static now [16:56] onre_ has joined the channel [16:56] jamey-uk: remysharp: thanks, so is my express-on-railway likely out of date? [16:57] remysharp: possibly... [16:57] remysharp: there's not that many changes - bodyParser now rather than bodyDecoder [16:57] remysharp: and a couple of others [16:58] jamey-uk: yeah that was my next error [16:58] baud_ has joined the channel [16:58] tjholowaychuk: jamey-uk: http://expressjs.com/migrate.html [16:59] daekano has joined the channel [16:59] jamey-uk: tjholowaychuk: thanks, but how I can just get express-on-railway working with express, by changing versions? Or do I have to go through and change all this stuff myself? [17:00] tjholowaychuk: well those are the api changes [17:00] tjholowaychuk: it wont update your project for you [17:00] EvanCarroll: what is better markdown or discount? [17:00] hosh_work has joined the channel [17:00] indutny has joined the channel [17:01] tjholowaychuk: EvanCarroll: markdown-js is missing quite a few things [17:01] bartt has joined the channel [17:01] tjholowaychuk: EvanCarroll: use github-flavored-markdown [17:01] tjholowaychuk: or discount [17:01] zcopley has joined the channel [17:01] tbranyen: tjholowaychuk: https://github.com/tanoku/jsupskirt [17:01] tbranyen: i haven't tried it yet [17:01] remysharp: EvanCarroll: I've used showdown without much/any trouble [17:02] tjholowaychuk: tbranyen: ah cool [17:02] remysharp: (markdown with a commonjs module export and couple of small tweaks) [17:02] tbranyen: upskirt is what github uses [17:02] abraham has joined the channel [17:02] tbranyen: "Upskirt renders all the Markdown content in GitHub and so far hasn't crashed a single time." [17:02] remysharp: Please don't burn me for this noob question - but when I create a global in a required module, it's then global across the entire app - is that correct? [17:02] tbranyen: remysharp: scope is confined to modules [17:03] EvanCarroll: what's shutdown? [17:03] remysharp: tbranyen: that's what I thought. then I've balls something up - I've leaky code. [17:03] tbranyen: D: [17:03] remysharp: EvanCarroll: https://github.com/coreyti/showdown [17:04] coliv has joined the channel [17:05] Rixius has joined the channel [17:06] ph^ has joined the channel [17:06] ScottR____: tbranyen & remysharp: i thought if you defined globals in modules that you imported that they'd become regular globals? [17:06] EvanCarroll: so shutdown vs discount vs github-flavored-markdown ? [17:06] remysharp: ScottR____: yeah...that's what I'm seeing. I thought they stayed private, but I've got them leaking out [17:06] EvanCarroll: tjholowaychuk: opinions? [17:06] creationix has joined the channel [17:07] jbomb has joined the channel [17:07] norviller has joined the channel [17:07] tjholowaychuk: EvanCarroll: GFM uses showdown I believe so either [17:07] tjholowaychuk: discount requires compilation [17:07] tjholowaychuk: which is fine if you are processing tons since its much faster [17:07] tjholowaychuk: but [17:07] tjholowaychuk: yeah [17:07] gonsfx has joined the channel [17:07] norviller has joined the channel [17:07] jbomb: If anyone here has used the Sequelize module, I need some help. When using the setItems() call to update an association, it just doesn't work. [17:07] lalithmaddali has joined the channel [17:08] EvanCarroll: discount on npm seems old too [17:08] EvanCarroll: version: '0.1.3' [17:08] isaacs: EvanCarroll: there's not much to it. it's just a binding to the discount c lib [17:08] isaacs: EvanCarroll: i think it's not old, so much as just "done" [17:09] mattrobenolt has joined the channel [17:09] EvanCarroll: oh so it doesn't self-contain the c-lib? [17:09] isaacs: EvanCarroll: there's a GFM on npm, but i haven't updated it to pull in their ``` addition [17:09] tjholowaychuk: EvanCarroll: no [17:09] isaacs: also, turning every \n into a <br> seems excessive, imo [17:09] drudge: indeed [17:10] tjholowaychuk: EvanCarroll: its a large lib, would be pointless to do that [17:10] jamey-uk: tjholowaychuk: sorry, little bit confused - my first hour using node, express and now express-on-railway... all I did was npm install all of them, then 'railway init' in a new directory. I've changed that 'static' reference, bodyDecoder, cookieDecoder and now about to figure out the mongoDB session storage... but am I going about this the right way? [17:10] EvanCarroll: what does GFM stand for? [17:10] drudge: google flavored markdown [17:10] drudge: er github [17:10] isaacs: EvanCarroll: github flavored markdown [17:11] drudge: tjholowaychuk: you see the new app yet? http://rubbernetapp.com [17:11] tjholowaychuk: drudge: nope, looks good :D [17:11] onre_ has joined the channel [17:12] tjholowaychuk: drudge: you guys definitely need to make a nice feed reader [17:12] daniellindsley has joined the channel [17:12] drudge: there is no money in that! :P [17:12] tjholowaychuk: no? [17:12] tjholowaychuk: would think it would be similar to an irc client [17:12] tjholowaychuk: and there is nothing good out there at all [17:12] pdelgallego has joined the channel [17:12] pdelgallego_ has joined the channel [17:13] tjholowaychuk: I cant even find anything that is "ok" [17:13] drudge: we've done some research [17:13] tjholowaychuk: ah [17:13] drudge: i actually started a feed reader but abandoned it. it's a truly saturated market [17:13] tbranyen: my name is judge [17:14] mscdex: orly [17:14] creationix: tbranyen: how far did you get on the node-gir stuff? [17:14] creationix: that was you right? [17:14] tbranyen: creationix: dude i have been so busy :( [17:14] isaacs: pquerna: node 0.4.6 is doing good for you over ssl? [17:14] V1 has joined the channel [17:15] tbranyen: creationix: this god awful project i'm on right now is over this friday [17:15] pquerna: isaacs: yes [17:15] creationix: tbranyen: cool [17:15] tbranyen: i'll have a full week break at jsconf tho [17:15] pquerna: pre that, it would hang on big posts [17:15] isaacs: right [17:15] creationix: I think I can get one of the titanium guys to help out [17:15] pquerna: but since then we haven't had issues [17:15] tbranyen: creationix: that'd be sweet [17:15] drudge: tjholowaychuk: you have email [17:15] tbranyen: creationix: i'd like to think more about it before diving in tho [17:15] isaacs: pquerna: that's great info. i'm considering maybe saying if you have 0.4.7 or higher, it'll default to using ssl. [17:15] tbranyen: using ffi and such [17:15] tbranyen: since performance may not matter much for a gui [17:15] tjholowaychuk: drudge: got it :D [17:15] creationix: tbranyen: I was inspired to learn node bindings some and made a quick binding to gtkwebview [17:16] mscdex: high performance guis ftw! [17:16] tbranyen: creationix: i saw, my buddy miketaylr made in fun of your proj name on twitter heh [17:16] creationix: tbranyen: using seed, it seems to perform plenty fast [17:16] creationix: certainly faster than anything I could make web based [17:16] isaacs: pquerna: oh, wait, looks like the iriscouch ssl is busted atm... maybe not :) [17:16] jamey-uk: tjholowaychuk: sorry, turns out getting the latest from git solved everything :) [17:16] tbranyen: creationix: just saw the impact guys made something similar with jsc [17:16] tbranyen: for idevices [17:16] creationix: tbranyen: yeah, I should think longer before naming a project [17:17] tbranyen: hehe [17:17] tbranyen: i'm working on something with spine.js atm and its called newlist [17:17] blueadept has joined the channel [17:17] tbranyen: not exactly creative either [17:17] coreb has joined the channel [17:18] pquerna: isaacs: you could make another dns name that reverse proxies to it, i dunno [17:18] creationix: tbranyen: just let me know before you start working on node-gir again. I don't want to duplicate efforts. You can send me an email so I have your contact info if you want [17:19] pquerna: isaacs: kinda missing the point then, but.. anyways :) [17:19] isaacs: pquerna: yeah, i guess. [17:19] isaacs: pquerna: i mean, that's basically what you're doing [17:19] dlkinney has joined the channel [17:19] creationix: isaacs: so I'm updating node on webOS again, should I go with 0.4.6? or is there a more stable version [17:20] isaacs: creationix: i think 0.4.7 is released [17:20] sechrist has joined the channel [17:20] creationix: it is, but I saw some scary comments on the mailing list [17:20] creationix: were those false positives? [17:20] tbranyen: creationix: your email on github? [17:21] creationix: tbranyen: yep, that's the one [17:21] creationix: tbranyen: also, where are you located physically? [17:21] jtsnow has joined the channel [17:21] cbiscardi has joined the channel [17:21] tbranyen: creationix: boston, @ bocoup [17:22] creationix: I see, I don't get out there very often. You going to JSConf or nodeConf? [17:22] tbranyen: yea i'm going to jsconf [17:22] tbranyen: you gonna be out there? [17:22] markwubben has joined the channel [17:22] creationix: yep, I'm speaking at both [17:22] tbranyen: sweet, our company is putting on training at both i think [17:22] hij1nx has joined the channel [17:22] tbranyen: i won't be there for nodeconf tho, darn thing sold out on me [17:23] cbiscardi has left the channel [17:23] onre_ has joined the channel [17:24] isaacs: creationix: ther'es an annoyingly O(n) thing that happens in Stream#pipe at the moment. but it's not as scary as mikeal originally suspected. [17:24] creationix: isaacs: that's probably fine then [17:24] isaacs: behavior-wise, it's correct. [17:24] Tobsn has joined the channel [17:24] bittyx-laptop has joined the channel [17:25] halfhalo: mmmmm.... on device node... [17:25] isaacs: just that it's using a pseudo-weakmap array where a counter would suffice, also making error-emitting pipes leak memory [17:25] PrgmrBill has joined the channel [17:26] newy_ has joined the channel [17:27] creationix: halfhalo: don't get your hopes up. There is a long lead time between when I upgrade webOS trunk with a new node to when you get it in a real device [17:27] creationix: but it's got to start somwhere [17:27] halfhalo: yeah... I noticed [17:27] halfhalo: for now... [17:27] creationix: and I'm pushing it as fast as I can [17:27] mjr_: creationix: there are still lots of http client bugs, but in general the newer 0.4's seem better than older ones. [17:27] creationix: cool [17:28] creationix: I mean, we're still on 0.2.3, it can't be worse than that [17:28] xeodox has joined the channel [17:28] tbranyen: 0.1 [17:28] halfhalo: you jinxed it. [17:28] tbranyen: think i saw that version in one of the debian repos [17:28] __tomb has joined the channel [17:29] andi5 has joined the channel [17:29] onre_ has joined the channel [17:31] jspiros has joined the channel [17:31] pdelgallego_ has joined the channel [17:31] eldios has joined the channel [17:33] kawaz_air has joined the channel [17:33] jgv has joined the channel [17:33] akavlie has joined the channel [17:34] dguttman has joined the channel [17:35] onre_ has joined the channel [17:35] halfhalo: you know... if pushing to cloudfoundry was a tad faster I would use it for almost everything for node, including development... I really would [17:36] ian-london has joined the channel [17:36] akavlie: I'm having trouble figuring out unit testing in node.js -- specifically for http & socket.io stuff [17:37] CiRlE has joined the channel [17:38] qbert_: akavlie, what are you testing ? [17:38] _fat has joined the channel [17:38] JacobSingh has joined the channel [17:39] akavlie: qbert_, umm, my app :-) [17:39] RushPL_ has joined the channel [17:39] dguttman has joined the channel [17:39] akavlie: qbert_, want to test that the backend behaves as expected [17:40] Opaque has joined the channel [17:40] jdavenport has joined the channel [17:41] jdavenport has joined the channel [17:41] xeodox: Hey guys---what do you think is the best mongo driver for node.js? [17:42] qbert_: ACTION likes mongolian [17:42] cwang has joined the channel [17:42] __tomb has joined the channel [17:42] xeodox: why? [17:43] malkomalko has joined the channel [17:44] creationix has left the channel [17:44] malkomalko: tjholowaychuk: you around? got a quick stylus question.. which is awesome btw [17:44] tjholowaychuk: malkomalko: yup, what's up? [17:45] malkomalko: a) is it possible in the repl to test multi line functions? or is just basic one line stuff [17:45] tjholowaychuk: malkomalko: just basic stuff right now [17:46] malkomalko: b) I'm trying to figure out how to take a tuple like this ("#element" 12px) (".another" 20px) [17:46] __tomb has joined the channel [17:46] malkomalko: possible to grab that "#element" and use that as a literal in a function so that you can build up dynamically sets of styles? [17:47] malkomalko: for t in tuples... p(t[0]) gives me "#element" but I can't figure out how to actually place it so that I can use it to nest css rules underneath it [17:47] tjholowaychuk: malkomalko: selectors dont have interpolation support right now unfortunately [17:47] tjholowaychuk: its on my todo list [17:47] malkomalko: tried unquote(t[0]) and {t[0]} but no workie [17:48] tjholowaychuk: malkomalko: I'll see if I can get selector interpolation in there soon [17:48] tjholowaychuk: malkomalko: https://github.com/LearnBoost/stylus/issues/108 [17:48] malkomalko: I'm picturing a lot of possibilities from that [17:48] tjholowaychuk: totally [17:49] malkomalko: have an idea to basically replicate the css3 template layout all in stylus, I think it's totally possible [17:49] onre_ has joined the channel [17:52] a2800276 has joined the channel [17:52] remysharp: does anyone know if module variables going global is a bug or a feature of node? (I'm on 0.5.0-pre) [17:52] Aikar: remysharp: example? [17:52] malkomalko: want me to fork and try working on it tjholowaychuk? [17:52] tjholowaychuk: malkomalko: yeah sure if you want to [17:52] remysharp: put a global in a module. require said module. that global is now available in all other modules [17:53] Aikar: if you do global[x].. then yes itll be global [17:53] remysharp: I thought globals in modules were localised to the module - but it doesn't appear to be [17:53] Aikar: thats kind of the point of global [17:53] Aikar: nope [17:53] Aikar: just use 'var x' for local variables [17:53] remysharp: aye, but I thought one of the benefits of the require/module pattern was that globals couldn't leak out [17:53] malkomalko: ok, going to do that now, pretty sure I have your lex/token/parsing style down now from jade/stylus [17:53] remysharp: (of modules) [17:54] Aikar: remysharp: you cant accidently make a global [17:54] Squeese has joined the channel [17:54] xeodox has left the channel [17:54] xeodox has joined the channel [17:54] Aikar: you have to explicitly type global.foo = x to expose it globally [17:54] tjholowaychuk: malkomalko: the stylus parser is pretty complicated :D just warning you [17:54] Aikar: doing foo = x wont be global [17:54] remysharp: Aikar: that's what I'm saying *is* happening [17:54] onre has joined the channel [17:54] remysharp: hence confusion/worry! [17:55] Squeese: Where does the source etc for nodejs go on my mac after installation? [17:55] Aikar: remysharp: hmm, your right [17:55] remysharp: could I put a quick gist together to validate? [17:55] Aikar: i just did it [17:55] malkomalko: it's ok, I'll stumble my way around the code [17:55] remysharp: ah cool [17:55] malkomalko: blow shit up [17:55] jmorris_ has joined the channel [17:55] remysharp: well - not cool - it shouldn't leak, right? [17:55] malkomalko: write some tests and hopefully it goes green [17:55] Aikar: well [17:56] Aikar: i dunno [17:56] remysharp: unless you do it explicitly, like global.foo = 'x'; [17:56] remysharp: that's the point of the export [17:56] Aikar: i dont know of the performance implications of running every module in a new context [17:56] remysharp: you can call your module foo [17:56] remysharp: and I can call my module foo [17:56] remysharp: but the developer can require the modules as foo1 and foo2 [17:56] jmorris_: can someone point me to, or help me to understand how i would use util.inherits with required(...)? [17:56] remysharp: but if they're global in each of the modules you and I made - it's fuck city [17:56] Aikar: well, ideally, we shouldnt be putting crutches in to protect people from writing bad code [17:57] Aikar: if you do it on browser side, itll also bite you [17:57] remysharp: sure - but what about testing two different version of underscore for instance? [17:57] malkomalko: tjholowaychuk.. do you know if you can do that type of interpolation in compass? [17:57] remysharp: browser don't have a true require system [17:57] tjholowaychuk: malkomalko: you mean sass? [17:57] malkomalko: yes [17:57] tjholowaychuk: malkomalko: I think so [17:57] Aikar: reducing performance for an extreme usecase isnt desirable [17:57] harth has joined the channel [17:57] tjholowaychuk: malkomalko: wouldnt be hard to add, I haev it for props already [17:57] tjholowaychuk: just need to add it to selectors [17:57] remysharp: Aikar: is that for me? [17:57] Aikar: remysharp: yea [17:58] malkomalko: yup, I'll see if I can find the right spot [17:58] tjholowaychuk: malkomalko: stylus is just much more complicated since {} etc are optional [17:58] langworthy has joined the channel [17:58] remysharp: Aikar: it's required once, I don't see the performance hit to sandbox the module [17:58] tjholowaychuk: if I was parsing regular css only it would be much easier [17:58] malkomalko: yup [17:58] Aikar: if your seriously needing to use 2 diff versions of a library, should really try to find another solution [17:58] malkomalko: ok, be back later [17:58] Aikar: remysharp: you have to spawn a new context for every module load to stop it [17:59] Aikar: and for what gain? rescueing people from code mistakes? [17:59] remysharp: Aikar: which we both thought that was happening in the first place though [17:59] Aikar: i thought that yeah, i thought runinthiscontext may of blocked it [17:59] Aikar: but if not, the only solution is runinnewcontext [17:59] remysharp: Aikar: no, but implicit globals a fucked part of javascript, I thought it was fixed in the require system that's all [18:00] rmustacc: remysharp: Implicit globals are fixed. Explicit is not. [18:00] Aikar: you can write a line thatll dump all globals and find leaks [18:00] onre_ has joined the channel [18:01] remysharp: rmustacc: nope - globals are available across all modules [18:01] Aikar: aniero [18:01] Aikar: mt [18:01] rmustacc: remysharp: What do you consider implicit globals? [18:01] remysharp: rmustacc: sans "var" [18:01] remysharp: rmustacc: and ones that are available throughout /all/ code in your application [18:01] jano has joined the channel [18:02] rmustacc: Right, those. They are actually a different scope from the global scope. [18:02] pita: anyone found a way to run a application on port < 1024 as non root (without authind, its not working on centOS for some reason) [18:03] TheDeveloper: Anyone using/working on amqp libraries for use with RabbitMQ etc? [18:03] remysharp: rmustacc: but all modules share the same scope then? [18:03] rmustacc: TheDeveloper: Look at node-amqp [18:03] kriskowal2 has joined the channel [18:03] flippyhead has joined the channel [18:03] rmustacc: TheDeveloper: It works fine for AMQP v0.8 [18:03] patcito has joined the channel [18:04] rmustacc: remysharp: Well, in this case it does look like they are all being launched from the same parent, thus not properly scoping your variables will cause them to leak. [18:04] rmustacc: Nothing a simple linter can't catch. [18:04] TheDeveloper: mustacc: Yeah I have been, just wondred if there are any others out there as activity seems to be relatively low on that project [18:05] remysharp: rmustacc: so you lint every external module you include? [18:05] remysharp: </sarcasm> [18:05] rmustacc: remysharp: If I use proper scoping on my own then it isn't a problem. [18:05] tbranyen: i jshint every js file in my nodegit project [18:05] remysharp: fuck, but that's the exact same crap we need to deal with in the browser [18:05] tbranyen: but i'm special [18:06] remysharp: I thought this was a non-issue for node. [18:06] tbranyen: and hate missing ; [18:06] bartt has joined the channel [18:06] remysharp: okay, I must have completely overlooked that idea. [18:06] jmorris: how do i just include another javascript file from another? [18:06] rmustacc: TheDeveloper: I know lots of folks are using it, it's pretty stable for most of what you want to do. [18:06] tbranyen: jmorris: require? [18:06] TheDeveloper: mustacc: cool thanks [18:07] rmustacc: Only thing it doesn't have is heartbeating. [18:07] TheDeveloper: So there's no knowing if a connection drops out? [18:07] norviller has joined the channel [18:07] dguttman_ has joined the channel [18:08] jmorris: tbranyen: i can't seem to get that to work with ulit.inherits [18:09] jmorris: util* [18:09] rmustacc: TheDeveloper: If you're doing nothing then yes. [18:09] _fat has joined the channel [18:09] TheDeveloper: that won't be a problem then, there will be a steady stream of messages [18:09] rmustacc: TheDeveloper: And that's only in the case that the box hosting rabbitmq is rebooted / crashes. [18:10] sendark has joined the channel [18:10] TomY has joined the channel [18:10] rmustacc: Basically the worst that happens is that if you're not actively sending messages you won't notice the TCP connection has closed for a little while, but it shouldn't really be a problem. [18:10] TomY_ has joined the channel [18:10] TomY has left the channel [18:10] Squeese: excuse my ignorance, I've installed nodejs on my mac etc, written a small app - wanted to test in on my linux slice. I get some errors in the default lib fs.js, Id like to trace it down etc.. so, on my mac, do I have a local copy of the fs.js somwhere, or is it compiled or something? ;P [18:10] tbranyen: jmorris: are you exporting anything in your other js file? [18:10] sendark: are there any robust blogging frameworks made in node.js? [18:11] jmorris: tbranyen: do i export my entire 'class' ? [18:11] stride: Squeese: in the source directory [18:11] tbranyen: jmorris: sure [18:11] stride: under lib(s) or something [18:11] TheDeveloper: ok, awesome, thanks mustacc [18:11] real_ate has joined the channel [18:11] TheDeveloper: and sorry for mispelling your name [18:11] TheDeveloper: :P [18:11] stride: Squeese: $nodesource/lib/fs.js [18:11] rmustacc: No worries. [18:11] Squeese: stride: thx [18:12] timmywil has joined the channel [18:12] stride: Squeese: what error are you getting? that stuff should be pretty platform independent [18:12] duncanbeevers has joined the channel [18:14] Squeese: Im not quite sure yet, the problem occurs withing jsdom package, Im trying to get closer atm [18:14] Squeese: I dont really know how to intepret the error stack [18:14] stride: hmkay, good luck :) [18:14] Squeese: thx :P [18:14] samsonjs has joined the channel [18:14] boghog has joined the channel [18:15] boghog: hi there, vm.runInNewContext() lets me run untrusted code completely isolated right? (other than whatever I leak through the sandbox object and receive as return value) [18:15] TheDeveloper: If the remote TCP host goes down, does net.socket not call the end event then? Presumably if the FIN packet isn't received? [18:16] Votaguz has joined the channel [18:16] onre_ has joined the channel [18:16] stride: boghog: documentation says no [18:16] bstimmerman has joined the channel [18:17] stride: boghog: http://nodejs.org/docs/v0.4.7/api/vm.html last sentence there :) [18:17] Votaguz has joined the channel [18:17] jmorris: tbranyen: hmm, i think i'm making progress, but it tells me that my 'class' in the file i'm including is undefined :/ [18:18] sechrist has joined the channel [18:19] rolando has joined the channel [18:19] remysharp has joined the channel [18:20] jmorris: i'm trying to do this: http://nodejs.org/docs/v0.4.7/api/util.html#util.inherits [18:20] jmorris: but put myStream in a different file, and require it :/ [18:25] ericnakagawa has joined the channel [18:26] malkomalko has joined the channel [18:26] jmorris_ has joined the channel [18:26] jmorris_: did anyone respond to me? i don't think my irc client was working :/ [18:26] Typh has left the channel [18:27] fumanchu182 has joined the channel [18:27] ScottR____: jmorris, there isn't enough information to go on [18:27] EvanCarroll: jade needs a method to have a text-block that doesn't require indent [18:27] EvanCarroll: like a HEREDOC that cuts the need to maintain indents [18:27] jmorris: ScottR____: just following the example at http://nodejs.org/docs/v0.4.7/api/util.html#util.inherits ? [18:28] ScottR____: the other file that you put MyStream into should be the one that requires the util and events libraries [18:28] ScottR____: which part of mystream are you trying to abstract into a separate file? [18:28] jmorris: all of myStream [18:29] deedubs: jmorris: does commonJS or module.exports mean anything to you? [18:29] jmorris: yes [18:29] deedubs: without a gist I'm just assuming what you've done wrong [18:29] jmorris: i want to create a Model 'class' and have models inherit methods from it [18:29] jmorris: that's fine :) [18:29] ScottR____: well, any time you want to subclass it via util.inherits, you'll have to pull inherits in [18:29] ScottR____: err [18:30] ScottR____: pull utils in* [18:30] ScottR____: but you could take everything in the example [18:30] ScottR____: and at the end, put exports.MyStream = MyStream [18:30] ScottR____: and use it like that [18:30] jmorris: ok, i've done that, i'm just having trouble with: var stream = new MyStream(); [18:30] mbrevoort has joined the channel [18:31] deedubs: jmorris: what does the line in which you require MyStream look like? [18:31] ScottR____: do you have var MyStream = require( "./MyStream").MyStream at the top? [18:31] jmorris: yeah [18:31] ScottR____: even that last .MyStream bit? [18:32] jmorris: oh! [18:32] ScottR____: otherwise MyStream is just your namespace, and you'd have to do the equivalent of new MyStream.MyStream(), which (as written) i believe gives an error [18:33] cbiscardi has joined the channel [18:33] jmorris: ScottR____: awesome, thanks so so much [18:33] jmorris: i think it's working :) [18:33] ScottR____: great, glad to help! [18:34] dve_ has joined the channel [18:34] azeroth___ has joined the channel [18:35] amacleod has joined the channel [18:36] MikhX has joined the channel [18:36] jano has joined the channel [18:37] jmorris: this is really fun to learn :) [18:38] onre_ has joined the channel [18:38] ScottR____: I <3 node. If Ryan hadn't beaten me to the punch by about 2 years, I would have embarked on it myself.. [18:39] hackband has joined the channel [18:39] twoism has joined the channel [18:40] jmorris: i mashed together CakePHP and a mapping API (ESRI's ArcGIS Javascript API) to replicate ESRI's ArcGIS Server. It's cool, but sucks since it's a clusterfuck of php and javascript [18:40] jmorris: I'm rewriting it with node, i'm excited to be working with one language lol [18:41] ScottR____: putting php into anything just makes my stomach get all churny [18:41] jmorris: lol [18:41] ScottR____: do i use it? yes. do i like it? hell no [18:41] jmorris: i really like javascript, i dunno why [18:42] ScottR____: functions as first class objects is what got me [18:42] TheDeveloper: yeh, it is weird [18:42] ScottR____: why we like it or functions as 1st class? [18:42] jmorris: i love that too, i know i was like WTF when i was coding with php and i couldn't store a function as a class variable [18:43] Bj_o_rn has joined the channel [18:43] boghog: stride, thanks :) [18:43] TheDeveloper: the type coersion is cool too [18:43] tilgovi has joined the channel [18:43] TheDeveloper: open up a javascript console, and run this: [18:44] TheDeveloper: (![]+[])[+[]]+([][+[]]+[])[+[]]+([][+[]]+[])[+[]+!![]] [18:44] ScottR____: i'm scared [18:44] TheDeveloper: *coercion [18:44] Bonuspunkt: v8: (![]+[])[+[]]+([][+[]]+[])[+[]]+([][+[]]+[])[+[]+!![]] [18:44] v8bot: Bonuspunkt: "fun" [18:44] TheDeveloper: cool, eh? [18:45] Bonuspunkt: fun fun fun :D [18:45] ScottR____: what in the... [18:45] technoweenie has joined the channel [18:45] ScottR____: how!? i don't see it. [18:45] Bonuspunkt: v8: [] == 0 [18:45] v8bot: Bonuspunkt: true [18:45] technoweenie: isaacs: hey can you reset my npm pass please. apparently i didnt put it in 1password [18:45] ScottR____: oooh, you type coerce into strings and pick off indices [18:45] isaacs: technoweenie: http://admin.npmjs.org/reset [18:46] markwubb_ has joined the channel [18:46] technoweenie: oh right on [18:46] isaacs: :) [18:46] ScottR____: someone learned a little much brainf*** and brought that into js [18:46] TheDeveloper: its just a crazy bit of type coercion, where you can assemble a word out of any of the letters in function, undefined, and infinity [18:46] bradleymeck has joined the channel [18:48] ScottR____: nice. very nice. [18:48] ScottR____: i learned something today! time to close shop, that's all i can do. [18:49] brianloveswords has joined the channel [18:51] ericnakagawa has joined the channel [18:52] karboh has joined the channel [18:52] brolin: ARTE [18:52] dlkinney has joined the channel [18:53] pcardune has joined the channel [18:55] fson: TheDeveloper: how can you introduce a function in same mind blowing manner? [18:55] fson: i mean, false and undefined are quite obvious, but how can function keyword be made? [18:55] Guest47848 has joined the channel [18:56] cloudhea1 has joined the channel [18:57] TheDeveloper: yeah sorry, my brain thought false but my hands typed function [18:57] TheDeveloper: you can't do function :) [18:58] nibblebot: how can i combine the var self=this idiom with prototype idiom (e.g. var o; o.prototype.method = function(){ //access self here})? [18:58] dies_el has joined the channel [18:58] TheDeveloper: var p = o.prototype? [18:58] zkirill has joined the channel [18:59] TheDeveloper: or this.prototype inside the function [18:59] nibblebot: but this is not guaranteed to be the object [18:59] piscisaureus has joined the channel [18:59] jamesarosen has joined the channel [19:00] cloudhead has joined the channel [19:00] Aikar: !w Morrisville nc [19:00] dmcquay_ has joined the channel [19:01] newy_ has joined the channel [19:05] context: so runInThisContext is not 'this' context ? :x [19:06] matclayton has left the channel [19:06] MikhX has joined the channel [19:06] a2800276 has joined the channel [19:06] azeroth____ has joined the channel [19:07] esundahl has joined the channel [19:07] Bonuspunkt: v8: function x(){var me = this;this.f=function() { if (!(this instanceof x)) { return me.f(); } return 'x'; } } var y = new x().f; y(); [19:07] v8bot: Bonuspunkt: "x" [19:07] esundahl has left the channel [19:07] Bonuspunkt: nibblebot is that close? [19:08] monokrome has joined the channel [19:08] monokrome: Hey. Does anyone here know if you can make less minify it's output? [19:08] monokrome: using the CLI app that comes with the library [19:09] nibblebot: hmm [19:10] pcardune has joined the channel [19:10] onre_ has joined the channel [19:10] brianc: context: no, it means it runs in the same v8 context [19:10] egeriis has joined the channel [19:10] ScottR____: does anyone know the difference between net.Socket.ondata and net.Socket.on( "data", cb )? [19:11] nibblebot: Bonuspunkt: looks good, is there no way to do it with prototype then? [19:11] pifantastic_ has joined the channel [19:11] mike27 has joined the channel [19:11] brianc: context: i.e. share the same global scope [19:11] brianc: http://bespin.cz/~ondras/html/classv8_1_1Context.html [19:11] context: ahh thnx [19:12] egeriis: Hi guys, I'm having troulbe with my node installation on OS X 10.6.7. I got node installed and succeeded in running a script from the command line. After trying to install npm, which didn't go that well, I tried restarting the Terminal. Now I am unable to run either node or npm commands from the Terminal. Any clue? [19:12] isaacs: egeriis: where did you install node? [19:12] isaacs: egeriis: did you run some "export PATH=blah" command manually in the terminal? [19:13] egeriis: Yeah, I think that was prior to the make command. [19:13] context: you need to put it in your profile [19:13] context: egeriis: you should really consider using something like homebrew to handle package management [19:13] tauren has joined the channel [19:13] egeriis: But actually it appears that the addition I made to $PATH has disappeared [19:13] Bonuspunkt: nibblebot afaik at prototype u dont have a way to access the instance, so that is the only way? [19:13] context: egeriis: cause you closed the terminal. [19:14] brianc: egeriis: yeah, every time your console starts up it runs a sort of "boot script" file commonly stored at ~/.bashrc [19:14] mike27: i'm developing a product that is used in the browser and using custom apps with our api. it requires realtime streaming data, so i thought about using a websocket. i looked into socket.io, but it looks like there is no client library for .net or java. so what is the best practice for a realtime api that is used both in the browser and using custom desktop apps? thx in advance for your help [19:14] egeriis: So I could modify .bashrc to avoid the need for altering $PATH on each launch of Terminal? [19:14] brianc: egeriis: you need to modify this file to automatically adjust your "PATH" environment variable (the one you manually changed before running make) so it's adjusted every time your console starts [19:14] nibblebot: Bonuspunkt: for constructing new instances, isn't the way you showed more expensive than prototype? but since you cannot access the instance i guess i have no choice [19:15] V1: mike27: http://code.google.com/p/socketio-java/ [19:15] V1: :D? [19:15] brianc: egeriis: for more info google "path environment variable bashrc" [19:15] egeriis: brianc: Right, I will try to look at this. [19:15] Bonuspunkt: nibblebot do not know - lets jsperf it :D [19:15] context: mike27: maybe checkout faye and find a bayeux library for .net and java [19:15] mike27: V1: i may be mistaken, but this looks like a socket.io server [19:16] V1: yes it's a socket.io server written in Java [19:16] jamesarosen has joined the channel [19:16] onre_ has joined the channel [19:16] V1: ._. or isn't that what you wanted [19:17] egeriis: brianc, context: Wonderful, node seems to be running now. Now, what is homebrew, is that instead of using npm or ...? [19:17] brianc: google for homebrew [19:17] brianc: is like NPM for your whole system, sorta [19:17] mike27: V1: my clients would need a socket.io client to connect to my platform [19:17] brianc: so you can "brew install mysql" for example [19:18] egeriis: brianc: So I could've installed node this way? [19:18] V1: oh you want a socket.io client impllementation written in Java mike27 [19:18] mike27: context: how much latency does faye add to small messages approximately? [19:18] egeriis: brianc: Would appreciate if you could quickly outline the pros with homebrew [19:18] samsonjs_ has joined the channel [19:19] cbiscardi: brianc: i've heard of problems using brew to install node. [19:19] dmcquay has joined the channel [19:19] mike27: that would be an option. or some other way to do realtime streaming to both browsers and desktop apps. a socket.io client in java and one in .net would be fine [19:19] Bonuspunkt: nibblebot yeah its slower --> http://jsperf.com/prototype-constructor [19:20] brianc: cbiscardi: so have i, I don't install node w/ homebrew [19:20] path[l] has joined the channel [19:20] rook2pawn has joined the channel [19:20] cbiscardi: brianc: then why did you suggest it? [19:20] skm has joined the channel [19:21] brianc: cbiscardi: i didn't, context did. [19:21] nibblebot: brew install node works fine for me [19:21] nibblebot: Bonuspunkt: prototype much faster [19:21] cbiscardi: brianc: my bad, i thought you did [19:21] nibblebot: 10x faster [19:21] context: mike27: i doubt you are gonna find a persistent socket library with libraries for nodejs, js, .net and java [19:21] onre_ has joined the channel [19:22] tbranyen: there are definitely websocket libs for each [19:22] kawaz_air has joined the channel [19:22] context: egeriis: homebrew automatically handles keeping package installations clean and maintainable and handles upgrading packages for you and not leaving old crap left behind to mess up your machine [19:22] context: and waste space. [19:22] mike27: tbranyen: :) which one would you recommend for node? [19:23] nibblebot: Bonuspunkt: going to try this: http://stackoverflow.com/questions/1441212/javascript-instance-functions-vs-prototype-functions [19:23] duncanbeevers: It's also super simple to add your own "packages" or to modify existing packages. [19:23] context: mike27: https://github.com/joyent/node/wiki/modules#ws-ajax [19:23] context: there are plenty to choose from. pick the one that best suites your needs [19:24] tbranyen: mike27: any of them should be sufficient so long as they follow the protocol [19:24] egeriis: Getting a build error from npm: ReferenceError: didPreinstall is not defined (build.js) [19:24] context: mike27: you want to talk the amount of latency one websocket library adds over another? considering the network latency is 99.999999 % of the latency to begin with. [19:24] egeriis: Anybody encountered this? [19:25] BHSPitCSP has joined the channel [19:25] llkazu has joined the channel [19:25] mike27: alright, thanks everyone. looks like i will go with raw websockets without socket.io [19:25] mike27: context: yep, this is for forex trading and the client's boxes can be colo-ed [19:25] context: cbiscardi: i just noted up why homebrew is awesome (or... using any package manager for that matter..) [19:25] BHSPitCSP: tjholowaychuk: sorry to bother, but npm install canvas fails for me, and recommends letting you know :P [19:25] sivy has joined the channel [19:26] tjholowaychuk: BHSPitCSP: haha well it can fail for various reasons [19:26] cbiscardi: context: point taken, but why not nvm? [19:26] matjas has joined the channel [19:26] tjholowaychuk: BHSPitCSP: should be a log that will give you more info [19:26] mbrevoort has joined the channel [19:26] context: cbiscardi: use npm for nodejs libraries. [19:26] context: DO ! [19:26] isaacs: egeriis: yep, pushing fix, just a sec [19:26] tfe_ has joined the channel [19:26] context: use homebrew for git, and nodejs and any other random packages. [19:26] remysharp has joined the channel [19:26] BHSPitCSP: tjholowaychuk: it's probably related to the fact that it couldn't find cairo... which debian/ubuntu package is needed? I do have libcairo installed [19:26] cbiscardi: context: nvm installs npm alongside node, no? [19:26] egeriis: isaacs: Wow! :) [19:26] isaacs: egeriis: pull again. fixed on 4fc175e677ece0967e6cf58917ee8f07cfb79fe5 [19:27] context: cbiscardi: no. you need node to install npm. [19:27] tjholowaychuk: BHSPitCSP: not sure, check the node-canvas wiki I think there is info in there for various platforms [19:27] context: npm... "Node Package Manager" not 'node installer' [19:27] cbiscardi: context: yea, nvm manages node versions and npm versions i thought [19:27] context: oh. ive never heard of nvm [19:28] isaacs: if there ever IS a node "package" in npm, it'll be strictly to take advantage of the build-bot testing ci stuff we're planning [19:28] cbiscardi: context: it works well for switching between node/npm versions [19:28] context: meh. ill stick to using the latest version. something like nvm would make more sense if there were large version gaps in node. (like rvm handles) [19:29] dyer has joined the channel [19:29] cbiscardi: context: yea, i like the easy upgrade path though [19:29] amacleod has joined the channel [19:29] Charuru has joined the channel [19:29] BHSPitCSP: tjholowaychuk: oh, I needed the -dev cairo package, duh [19:29] cbiscardi: context: not that git isnt easy [19:29] tjholowaychuk: BHSPitCSP: ah :p yes [19:29] Charuru: is there anyway to remove a specific listener? [19:29] dguttman has joined the channel [19:29] egeriis: isaacs: Must say it again: wow. Great job :) [19:30] Charuru: i need to give the listener a name and be able to remove that specific one later on [19:30] Charuru: any clues? [19:30] duncanbeevers: Charuru: Create a map of names to listeners? [19:30] mscdex: Charuru: yes, emitter.removeListener(event, fnListener) [19:31] jamesarosen has joined the channel [19:31] cbiscardi: Charuru: http://nodejs.org/docs/v0.4.7/api/events.html#emitter.removeListener [19:32] onre_ has joined the channel [19:32] isaacs: egeriis: thanks :) [19:32] context: cbiscardi: brew update ; brew upgrade. git, node, mysql, postgresql, couch, and other random apps i have all upgrade. [19:32] egeriis: isaacs: If you don't mind me asking. I am encoutering that npm doesn't give me any feedback when I try to install. I'm simply stuck in Terminal. Should I wait some minutes for it to install? I've uninstalled npm prior to this because i never gave me the "ok" message. [19:33] cbiscardi: context: you [19:33] Charuru: oh ok, thanks, now i understand, you can specify the function itself so no need to name anything [19:33] cbiscardi: context: 've never had problems with brew and node? [19:33] context: cbiscardi: and you dont deal with stuff like egeriis is going through right now. stuff just seems to work.... [19:33] context: cbiscardi: no. node always works. [19:34] mikeal has joined the channel [19:34] context: brew some times will have packages that are borked but its either for a reason or gets fixed fairly quickly. [19:34] cbiscardi: context: i tried brew long ago, maybe ill go back to it [19:34] context: cbiscardi: yeah i use to use macports, tried brew in its infancy, went back to macports, now on homebrew for good [19:35] sirkitree has joined the channel [19:35] Votaguz has joined the channel [19:35] azend has joined the channel [19:37] egeriis: isaacs: Alright, received some feedback now: Error: ETIMEOUT, Timeout while contacting DNS servers at Timer.callback (dns.js:38:13) [19:37] egeriis: isaacs: Called "npm install express" [19:37] isaacs: egeriis: looks like your DNS servers are being flaky :) [19:38] isaacs: egeriis: if you want more feedback, you can do "-d" or "-dd" or, if you're brave "-ddd", onto any npm command. [19:38] isaacs: egeriis: npm config set loglevel info (or, "verbose", or "silly") [19:39] kersny has joined the channel [19:39] caike has joined the channel [19:39] onre_ has joined the channel [19:40] ScottR____: i like that your name for unnecessarily excessive verbosity is "silly" [19:42] egeriis: isaacs: Trying to download the package manually. Will be reporting back :) [19:42] bantic has joined the channel [19:42] isaacs: egeriis: what's in your /etc/resolv.conf? [19:43] isaacs: egeriis: Cygwin is a monster with that file. OS X is a bit weird if you switch networks, do vpn stuff, etc. [19:43] joshdavenport has joined the channel [19:43] caligula_ has joined the channel [19:43] bantic: does node have some equivalent of ruby's bundler and/or Gemfile? An easy way to install an app's dependencies via npm? [19:43] isaacs: bantic: just run `npm install` in the project dir if you have 1.0, or `npm bundle` if you're still on 0.x [19:43] steph021_w has joined the channel [19:43] steph021_w has joined the channel [19:43] egeriis: nameserver 10.3.32.1 / domain dbnet.dk / nameserver 10.0.1.1 [19:43] bantic: isaacs: how do I specify which npm modules to use? a package.json file? [19:44] isaacs: bantic: yep :) [19:44] egeriis: isaacs: plus some comment [19:44] bantic: ok! [19:44] bantic: thanks [19:44] isaacs: egeriis: you may want to try setting an explicit nameserver to google's dns servers in the Networking prefpane. 8.8.8.8 and 8.8.4.4 [19:44] jtsnow_ has joined the channel [19:45] mikeal has joined the channel [19:45] egeriis: isaacs: Considered OpenDNS, but will try Google as you suggest [19:45] tbranyen: Google's dns is really good compared to comcasts [19:45] tbranyen: noticable difference in page loads [19:45] sh1mmer has joined the channel [19:45] eldios: if you trust them [19:45] ScottR____: google? [19:45] egeriis: I heard that Google is slower. [19:45] eldios: yes [19:45] egeriis: Google is evil. [19:46] tbranyen: so am i [19:46] tbranyen: i guess that works alright [19:46] isaacs: egeriis: opendns is fine, too [19:46] isaacs: egeriis: as long as they can give you the ip address of registry.npmjs.org, it's fine [19:46] eldios: Google is (privacy.. and other things) evil [19:46] isaacs: i trust google to do that properly [19:46] timmywil has joined the channel [19:47] isaacs: evil is a relative term. what are the incentives? [19:47] ericnakagawa has joined the channel [19:48] egeriis: isaacs: I'm able to ping that hostname. Will give it one more try [19:48] context: dns is kind of relative... it all depends on where you are, your isp, how much they suck [19:48] isaacs: egeriis: ping doesn't use the same lookup mechanism as node [19:48] harth has joined the channel [19:48] deepthawtz has joined the channel [19:48] context: there is a site that will test all open dns providers and show you which is best for you [19:48] Opaque has joined the channel [19:48] egeriis: isaacs: Okay, am I able to test it some other way then? [19:49] eb4890 has joined the channel [19:49] context: i dont use my isp's dns servers cause they randomly disappear [19:49] context: and i prefer dns that stays up [19:50] onre_ has joined the channel [19:50] dmcquay_ has joined the channel [19:50] gf3: Google DNS doesn't give you a shitty ad-driven search page if a domain isn't found [19:50] gf3: unline "Open" DNS [19:50] gf3: *unlike [19:51] egeriis: gf3: Which I choose my ISP's DNS over OpenDNS for. [19:51] gf3: egeriis: unfortunately my ISP gives me a shitty ad-driven search page too [19:52] egeriis: gf3: Crappy. You would think you'd paid for your service already. [19:52] gf3: no kidding [19:53] daglees has joined the channel [19:57] dies_el has joined the channel [19:58] heythisisdave has joined the channel [19:58] mikl has joined the channel [20:00] tokumine has joined the channel [20:01] SvenDowideit has joined the channel [20:01] Opaque has joined the channel [20:03] boghog: how does v8bot execute code securely? [20:03] context: probably in new context [20:03] context: and possibly in a jail/chroot [20:03] Bonuspunkt: bughog https://github.com/gf3/sandbox [20:03] boghog: oh thanks [20:03] demastrie has joined the channel [20:04] demastrie has left the channel [20:04] boghog: i was going to use vm, but the last few lines on http://nodejs.org/docs/v0.4.7/api/vm.html changed my mind [20:04] Bonuspunkt: yeah was going throu that stuff this moring [20:05] gf3: pretty version: http://gf3.github.com/sandbox/ [20:06] Bonuspunkt: uh shiny [20:07] context: bonuspunkt: did you write the bot too? what irc lib do you use :x [20:07] Bonuspunkt: no [20:07] onre_ has joined the channel [20:08] Bonuspunkt: but v8bot is also on github and #v8bot if i remember correctly [20:08] gf3: context: conveniently I wrote an IRC lib too [20:08] boghog: yay for NIH, i wrote one too :P [20:08] context: ahh [20:08] gf3: context: https://github.com/gf3/IRC-js [20:08] mscdex: boghog: i imagine it's suggested to run it in a separate process because you could be running code that performs infinite loops [20:08] boghog: mscdex, ah right [20:09] cloudhea1 has joined the channel [20:09] brownies has joined the channel [20:09] gf3: cloudhea1: oh shi- you're on bell DSL too! [20:10] galaxywatcher has joined the channel [20:10] cloudhea2 has joined the channel [20:10] context: wow. [20:10] context: gf3: whats the .peg file ? [20:10] tbranyen: peggle [20:10] gf3: haha [20:10] context: kk [20:11] gf3: context: it's the grammar to parse IRC messages [20:11] chapel: gf3: like the design of your ghpage [20:11] chapel: for sandbox [20:11] gf3: chapel: thank you, sir [20:11] context: gf3: yeah. got that ;) [20:11] chapel: might borrow that for some examples I am working on [20:11] chapel: if you dont mind [20:11] gf3: chapel: np, it's UNLICENSED [20:11] context: gf3: it seems 'irc bot' always ends up being an awesome 'learn a new language' app :/ [20:11] context: so its not just me. [20:12] chapel: gf3: I am working on an irc bouncer [20:12] pcardune has joined the channel [20:12] gf3: context: doing a bot? check out Jerk: https://github.com/gf3/Jerk [20:12] context: teach me how to jerk? [20:12] gf3: chapel: badass, going to take on ZNC? [20:12] onre__ has joined the channel [20:12] chapel: yep [20:12] chapel: I use znc [20:12] gf3: chapel: same [20:12] context: chapel: i got some ideas if you want ;) [20:12] chapel: feel free to shoot them at me [20:12] gf3: I'd love a robust JS bouncer [20:13] chapel: I want it to have full bouncer support, as well as a built in web interface [20:13] context: chapel: ill see if i cant find that text file with my ideas a little later [20:13] malkomalko has joined the channel [20:13] context: i was gonna write a bnc in C but then got lazy [20:13] insin has joined the channel [20:13] chapel: I want to make it really easy to expand, probably use dnode for that [20:13] chapel: similar to what SubStack did for his irc bot stuff [20:14] McConnell has joined the channel [20:14] gf3: link to dnode? [20:14] chapel: my ultimate goal is to have built in persistent logging [20:14] chapel: `v git dnode [20:14] v8bot: chapel: substack/dnode - GitHub - https://github.com/substack/dnode [20:14] jesusabdullah: https://github.com/substack/dnode [20:14] chapel: :) [20:14] jesusabdullah: also, https://github.com/substack/rowbit [20:14] chapel: `v git dnode @ gf3 [20:14] v8bot: gf3: substack/dnode - GitHub - https://github.com/substack/dnode [20:15] gf3: neat [20:16] pHcF has joined the channel [20:16] remysharp: gf3: do you think your gf3.github.com/sandbox could work as a simplistic replacement for jsapp.us? [20:17] gonsfx has joined the channel [20:17] remysharp: as in I want to point workshop delegates to an online test thingy [20:17] chapel: gf3 context what clients do you use? [20:17] onre_ has joined the channel [20:17] mscdex: `v git youknow [20:17] v8bot: mscdex: mscdex/youknow - GitHub - https://github.com/mscdex/youknow [20:18] mscdex: yay it works this time! [20:18] gf3: remysharp: currently it disallows access to the node stdlib [20:18] tauren: is there a good authorization/authentication module for node? anything that has remeberme features built in? And password hashing features. [20:18] gf3: remysharp: but it would be easy to allow node access, although there's no way I can make that truly secure [20:18] remysharp: gf3: that might not be a problem - if it's more a poke around to test out node for the first time [20:19] egeriis: My new app can't find the modules that I've places in ~/local/node/lib/node_modules, is node looking for modules in the project directory and is it possible to share the modules across all apps? [20:19] gf3: remysharp: cool, then it should be easy, I can provide an update in a bit [20:19] chapel: `v git sesame @ tauren [20:19] v8bot: tauren: substack/node-sesame - GitHub - https://github.com/substack/node-sesame [20:19] gf3: remysharp: to truly be safe you'd have to do something a la http://codepad.org/ [20:19] chapel: that might work for you tauren, but I haven't used it [20:19] context: chapel: znc and irssi [20:19] mscdex: egeriis: iirc it starts looking for node_modules in the current dir and then traverses up the current path for node_modules [20:19] chapel: kk context [20:20] chapel: I use linkinus [20:20] tauren: chapel: thanks, I'll check it out [20:20] remysharp: gf3: yeah that's what I'm thinking [20:20] context: i think i tried that for a little while. it aggrevated me [20:20] context: forget why though :x [20:20] mscdex: egeriis: not sure if it looks in the node binary's path [20:20] remysharp: gf3: except I've only got a couple of days before my whole workshop has to be ready, so it might be a quick and dirty interface to your sandbox just for simplistic playing [20:20] chapel: no worries, if you are used to a shell/light irc client like irssi, it is definitely a different experience [20:21] mscdex: node irc client! [20:21] mscdex: ncurses power! [20:21] chapel: mscdex: I have considered it [20:21] mscdex: :-D [20:21] chapel: but need a gui binding [20:21] nibblebot: Bonuspunkt: i figured out the prototype closure thing: http://jsperf.com/prototype-constructor/2 [20:21] nibblebot: the 3rd test runs fastest :) [20:22] mscdex: https://github.com/mscdex/node-ncurses/blob/master/examples/irc.client.js [20:22] mscdex: ^^ node irc client [20:22] context: wow. [20:22] chapel: was it stagas or jetienne that was looking to bind node.js with chromium embedded browser [20:23] onre_ has joined the channel [20:23] mscdex: chapel: not sure, but i think creationix is working with webkit viewer bindings [20:23] jbpros has joined the channel [20:23] mscdex: or something along those lines [20:23] chapel: yeah [20:23] chapel: WebApp [20:23] indexzero has joined the channel [20:23] chapel: `v git webapp [20:23] v8bot: chapel: pilu/web-app-theme - GitHub - https://github.com/pilu/web-app-theme [20:23] chapel: hmm wrong one bah [20:23] mscdex: heh [20:24] ScottR____: Question! I'm trying to load up some ancillary modules located in a directory within my module's /lib directory [20:24] chapel: `v git creationix webapp [20:24] v8bot: chapel: creationix/webapp - GitHub - https://github.com/creationix/webapp [20:24] tyler-iphone has joined the channel [20:24] egeriis: mscdex: Appears to look in the project dir but not binary dir. Can probably make a symbolic link. [20:24] ScottR____: without knowing what files are IN that directory [20:24] mscdex: ScottR____: fs.readdir [20:24] ScottR____: yep, got that far [20:24] ScottR____: but now i have a bunch of options that are due to me currently editing it [20:25] mscdex: eh? [20:25] ScottR____: [ 'draft76.js', [20:25] ScottR____: '.#draft76.js', [20:25] ScottR____: 'draft76.js~', [20:25] ScottR____: '#draft76.js#' ] [20:25] captain_morgan has joined the channel [20:25] mscdex: what kind of crazy editor are you using that generates all of those ?! [20:26] ScottR____: ... emacs. [20:26] context: its a good os. [20:26] mbrevoort has joined the channel [20:26] context: still missing an editor though [20:26] Spion__ has joined the channel [20:26] mscdex: ACTION shakes a fist at emacs [20:26] chapel: lol [20:27] ScottR____: ... lol? [20:27] chapel: mscdex: will examine your ncurses stuff [20:27] ScottR____: i'll take a recommendation for a better ide [20:27] chapel: I was laughing at context [20:27] chapel: not at, with [20:27] mscdex: chapel: the irc client example isn't a complete client, but most of the basic stuff is there [20:28] mscdex: ScottR____: well, before you require a file in lib/ you could make sure that the extension is '.js' and that the file begins with [a-zA-z0-9] [20:28] mscdex: .js or .node actually [20:29] ScottR____: seems reasonable [20:29] chapel: yeah mscdex [20:29] blueadept: how do you give a div two id's in jade? [20:29] chapel: well you can do .coffee as well [20:29] mscdex: two ids? :S [20:29] blueadept: one main id, and another id that acts as a writeover [20:30] tjholowaychuk: blueadept: what? [20:30] tjholowaychuk: lol [20:30] tjholowaychuk: why [20:30] chapel: well <div id="id1 id2"></div> [20:30] blueadept: like <div id="set1 set2"> [20:30] Metapony has joined the channel [20:30] blueadept: right [20:30] mscdex: weird [20:30] tjholowaychuk: blueadept: you could do foo(id='foo bar') [20:30] tjholowaychuk: though i dont get why [20:30] ScottR____: context: so emacs is a good os, but not a good ide... got a better suggestion for node? [20:30] chapel: yeah not really the right way to do it [20:30] chapel: two classes I get [20:30] chapel: ScottR____: he was making a joke [20:30] onre_ has joined the channel [20:30] chapel: being that emacs is basically an os [20:31] saikat has joined the channel [20:31] chapel: I use textmate, but need to force myself to learn vim because it sounds so much more powerful [20:31] ScottR____: so i'm led to believe, but i have to assume he's got a better IDE, no? [20:31] gf3: not everyone wants an IDE [20:32] ScottR____: okay, text editor with syntax highlighting ;P [20:32] chapel: I just want an editor :) [20:32] blueadept: tj: ah, i see what you mean, just make one class with the default settings, then make the id the distinguishing modifer [20:32] malkomalko: tjholowaychuk: what are you using Stack for inside of stylus? [20:32] blueadept: actually yeah i think that's probably the better way to do it [20:32] ScottR____: chapel: without syntax highlighting? [20:32] chapel: I didn't say that :P [20:32] tjholowaychuk: malkomalko: the call sites [20:33] tjholowaychuk: its the call stack [20:33] chapel: was responding to gf3 [20:33] chapel: about ide [20:33] malkomalko: aight thanks [20:33] ScottR____: chapel: right, just taking it to the extreme for comedy ;P [20:33] gf3: ScottR____: I'm not knocking emacs, but I prefer vim [20:33] tjholowaychuk: malkomalko: though its not always calls since its css haha it just includes all the blocks like selector blocks n stuff [20:33] tjholowaychuk: as well as function calls [20:33] ScottR____: gf3: i'm not exactly beholden to emacs, i just figured i should use it at least once in my life [20:34] malkomalko: aight, I've got the 108 test case all setup [20:34] chapel: tjholowaychuk: does stylus support css file combination and minification? [20:34] tjholowaychuk: chapel: it has compression support but not aggregation no [20:34] mscdex: i used emacs once in my life, and that was enough :P [20:34] tjholowaychuk: stylus is not the right place for that [20:34] chapel: yeah tjholowaychuk [20:34] mscdex: and that time wasn't by choice [20:34] mscdex: :D [20:34] ScottR____: mscdex: to be fair, after about 5 days of use, i am getting significantly faster with it [20:34] chapel: is there a node library/module that does that? [20:34] malkomalko: connect-assetmanager [20:35] chapel: maybe in tandem with stylus [20:35] Hello71 has joined the channel [20:35] Hello71 has joined the channel [20:35] chapel: well I like how browserify handles js stuff [20:35] context: scottr____: notepad ? [20:35] ScottR____: mscdex: but before then, it was extraordinarily frustrating [20:35] Hello71 has left the channel [20:35] context: i use textmate for everything [20:35] mscdex: i almost always use gui editors, and nano for quick edits [20:35] malkomalko: chapel: connect-assetmanager works very well [20:35] chapel: context: same, but as I said, I want to try vim [20:35] malkomalko: use it for most of my sites [20:35] zkirill has joined the channel [20:35] chapel: malkomalko: will look into it [20:35] ScottR____: context: isn't textmate mac osx? [20:35] rmustacc: vim's pretty sweet. [20:35] context: i use vim for quick stuff / anything in console [20:35] mbrevoort has joined the channel [20:36] gf3: mscdex: may I steal your IRC resonse codes object? [20:36] context: scottr____: yes. [20:36] chapel: `v git connect-assetmanager [20:36] v8bot: chapel: mape/connect-assetmanager - GitHub - https://github.com/mape/connect-assetmanager [20:36] ScottR____: context: well that doesn't help me on ubuntu ;P [20:36] context: scottr____: heh. used kdevelop then anjuta when i ran linux (granted this was 6 years ago) [20:36] mscdex: gf3: sure, but it's probably the same as the upstream node-irc one [20:36] mscdex: not sure if i added any codes or not [20:37] chapel: I was modifying node-irc for my uses [20:37] ScottR____: context: any good? kdevelop sounds like kubuntu, which i don't really trust, but anjuta...? [20:37] chapel: well I rewrote it in coffeescript [20:37] context: scottr____: anjuta is gtk [20:37] gf3: mscdex: for my IRC lib: https://github.com/gf3/IRC-js [20:37] mwmw has joined the channel [20:37] ScottR____: context: any good? [20:38] mscdex: chapel: same here, but i think martyn has merged a lot of the pull requests since i modified mine [20:38] chapel: I got so far as to be able to connect to the bouncer, and use my irc client for basic chat [20:38] onre_ has joined the channel [20:38] chapel: but I want to break out the different functions [20:38] chapel: I want a pure irc interpreter connection object [20:39] chapel: and a separate logger process [20:39] chapel: s/object/process [20:39] chapel: and then a separate pseudo server for bnc functions [20:40] chapel: just trying to figure out the best way to have it scale [20:40] chapel: to handle hundreds if not thousands of clients [20:40] gf3: chapel: why? [20:41] chapel: wouldn't mind making it a service [20:41] gf3: chapel: wouldn't you be more interested in stability for maybe a couple clients? [20:41] pcardune has joined the channel [20:41] wadey has joined the channel [20:41] ScottR____: mscdex: thanks for the suggestion to just regex. it seems a little inelegant, but JFDI eh? [20:41] chapel: just thinking long term, but ultimately yeah I am mostly worried about small scale usage [20:41] zzak has joined the channel [20:41] gf3: e.g.: http://cloud.gf3.ca/6IgY [20:42] jmoyers: anyone have a snipped for getting sass working with jade? [20:42] mscdex: ScottR____: oh, i didn't mean you had to necessarily use regex, i was just saying what to check for [20:42] jmoyers: snippet, rather [20:42] chapel: Running for 9w 3d 22h 2m 3s :) [20:42] chapel: gf3: first step is individual usage [20:42] stonebranch has joined the channel [20:42] mscdex: ScottR____: you could use the path module to get at the extension and the basename and check individually too [20:42] chapel: so yeah [20:43] JojoBoss has joined the channel [20:43] gf3: GVim [20:43] gf3: :) [20:43] chapel: gvim? [20:44] chapel: `v google gvim [20:44] v8bot: chapel: download : vim online - http://www.vim.org/download.php [20:44] DennisRasmussen has joined the channel [20:45] mbrevoort has joined the channel [20:45] ScottR____: mscdex: yes, but i'd still have to perform checks anyway, might as well just regex the damn thing [20:45] kristsk has joined the channel [20:46] gf3: ScottR____: what are you regexing? [20:46] eee_c has joined the channel [20:47] mc_greeny has joined the channel [20:47] gonsfx: are files in directories defined as static (usually /public) in express automatically added to session ignore? i don't want to send session when delivering assets like js/css/images. [20:47] tjholowaychuk: gonsfx: if you have static() above session() [20:50] gonsfx: tjholowaychuk: thanks! static is next to last at the moment. are there any side-effects when i put session afterwards? [20:50] Squeese_ has joined the channel [20:50] tjholowaychuk: gonsfx: nope, just up to you. if you never intercept static files then it's beneficial to have it above [20:51] tjholowaychuk: just depends on the need [20:52] gonsfx: not planning on intercepting them at the moment. seems i still don't comprehend middleware order, gonna read more code :) [20:52] Corren has joined the channel [20:53] brendanjerwin has joined the channel [20:53] tjholowaychuk: gonsfx: it's simple the request just goes throught the first one, and then the rest in the same order they are use()d [20:53] tjholowaychuk: until one responds [20:53] moshe has joined the channel [20:54] gonsfx: responds as in res.end()/render()/send() or responds as "didnt call next"? [20:54] brendanjerwin_ has joined the channel [20:54] tjholowaychuk: gonsfx: yeah [20:55] gonsfx: you just answered an either or question with yes. 'im confused ^^ [20:55] tjholowaychuk: haha [20:55] tjholowaychuk: yes, unless one calls next() they are executed in order [20:55] mraleph has joined the channel [20:55] tjholowaychuk: s/unless/while/ [20:56] gf3: s/yes/no/ [20:57] gonsfx: :-P [20:57] gf3: s/are/aren't/ [20:57] gonsfx: i'll put my custom logger after static aswell then. it regex excludes /js and /css subfolders to not log static file requests atm :-} [20:58] tjholowaychuk: gonsfx: yeah that should work fine [20:58] gonsfx: middleware tetris :) [20:58] flippyhead_ has joined the channel [20:59] jpld has joined the channel [21:00] ngs has joined the channel [21:02] timmywil has joined the channel [21:03] deepthawtz has joined the channel [21:04] brianc has joined the channel [21:04] TooTallNate has joined the channel [21:04] sh1mmer has joined the channel [21:05] isaacs: npm@1.0.1rcFINAL just landed. [21:05] NuckingFuts has joined the channel [21:05] piscisaureus: isaacs++ [21:05] v8bot: piscisaureus has given a beer to isaacs. isaacs now has 17 beers. [21:05] isaacs: this is the last RC before the proper @latest release this weeekend [21:06] tjholowaychuk: isaacs++ [21:06] v8bot: isaacs is getting too many beers. Don't let isaacs get drunk! [21:06] isaacs: ACTION so so psyched to deprecate npm 0.x [21:06] isaacs: can't wait [21:06] malkomalko: hooray [21:06] insin: isaacs++++++ [21:06] isaacs: ACTION is plannign on getting drunk, v8bot's prudishness be damned [21:08] monokrome: ! [21:09] TooTallNate: anyone who knows WAF, I need to do this autoconf equivalent in waf: [21:09] TooTallNate: https://github.com/clintandrewhall/node-time/blob/master/configure.ac [21:09] gf3: isaacs: cool, looking forward to it [21:09] jspiros has joined the channel [21:10] _ralph has joined the channel [21:10] aheckmann: isaacs++ [21:10] v8bot: aheckmann has given a beer to isaacs. isaacs now has 18 beers. [21:11] flippyhead_ has joined the channel [21:11] nail_ has joined the channel [21:11] __tomb has joined the channel [21:11] pyrony: i am getting this weird error from hash_ring: [21:11] pyrony: hash_ring.node: wrong ELF class: ELFCLASS32 [21:11] tbranyen: TooTallNate: no idea whats that's doing :-/ i don't quite understand autoconf [21:11] badboy_ has joined the channel [21:11] pyrony: anyone have ideas? [21:11] zzak: isaacs++ [21:11] v8bot: isaacs is getting too many beers. Don't let isaacs get drunk! [21:11] tjholowaychuk: haha [21:12] jmoyers: do i have to do something fancy to enable filters like :markdown or :sass with an express/jade combo? Have sass.js installed, for instance, yet it doesn't seem to want to compile inline [21:12] TooTallNate: I need to determine if the 'gmtoff' property is definied in the 'tm' struct [21:12] TooTallNate: defined in 'time.h' [21:12] zzak: bottoms up! [21:12] puffpio has joined the channel [21:12] a2800276 has joined the channel [21:13] dambalah has left the channel [21:13] TooTallNate: tbranyen: err, <time.h> rather [21:14] davidascher has joined the channel [21:15] tbranyen: TooTallNate: hmm wish wafbook was more useful i just did a quick scan, luckily thats not something i've had to do [21:15] heythisisdave has joined the channel [21:15] tjholowaychuk: TooTallNate: maybe take a quick look at node's wscript i think it references some snippets [21:15] dyer has joined the channel [21:15] tjholowaychuk: waf messes with my head too [21:15] tjholowaychuk: your not alone :D [21:16] tjholowaychuk: "if conf.check_cxx(msg="Checking for fdatasync(2) with c++", fragment=code):" [21:16] aheckmann: ACTION throws up a bit in his mouth [21:17] EvanCarroll: who gets to suide what is upstream for npm? [21:17] EvanCarroll: if I create a module foo, is it at risk of anyone else getting to fork it and take over? [21:17] isaacs: EvanCarroll: if you publish something, it's yours [21:17] isaacs: EvanCarroll: you can add other authors to the project if you want. [21:18] EvanCarroll: so if someone else wants to a push a patch to you, and you refuse, the community can't usurp your control over the module? [21:18] isaacs: EvanCarroll: well, i'm a server admin [21:18] isaacs: EvanCarroll: so *i* can. but the community at large can't, to [21:18] isaacs: *no [21:18] EvanCarroll: do you reserve the right to do that? [21:18] isaacs: EvanCarroll: the registry is a mostly-anarchic dictatorship, yes [21:18] EvanCarroll: I'm just curious, this has always been a *huge* problem with CPAN [21:19] isaacs: EvanCarroll: yep. [21:19] jelveh has joined the channel [21:19] isaacs: EvanCarroll: i generally try to get people to resolve their own conflicts whenever possible. [21:19] mbrevoort has joined the channel [21:19] EvanCarroll: well, that's generally speaking a good thing. I hope you draw up some bilaws so it's not just you with that power. [21:19] saikat has joined the channel [21:19] isaacs: but if you publish something malicious, or harmful, or infringing on someone else's copyright, and it can't be resolved between the authors, i'll step in [21:19] EvanCarroll: isaacs: CPAN has shown me that is impossible. [21:20] isaacs: if i get hit by a bus, then there will be a bloody accession, and someone else will set up a registry and people will use that instead. [21:20] EvanCarroll: the big issue isn't copyright, or maliciousness, it's assmonkey authors that refuse to relinquish maintainership and go inactive for months at a time. [21:20] isaacs: right. [21:20] isaacs: in those cases, i ask people to email the author, and then if there's no response for a few weeks, i'll step in and do whatever's necessary [21:20] isaacs: you need a king. [21:20] isaacs: but a lazy king is the best kind [21:21] EvanCarroll: On CPAN, I fork into ::ButMaintained, which they view as malicious, but they never reserved the right over package names, and no one ever challanged the status quo to have them removed. [21:21] zzak: ACTION forks express, publishes exprezz (rewritten in coffeescript) [21:21] EvanCarroll: But, it has created problems with authors who uphold that their module is Maintained, and having a ::ButMaintained variant isn't accurate or fair [21:21] mbrevoort: can anyone recommend a favorite npm package for parsing and manipulating dates, especially ISO? [21:22] zzak: s/exprezz/xprezz [21:22] __main__ has joined the channel [21:22] __main__: hi [21:22] unomi has joined the channel [21:22] EvanCarroll: isaacs: I'll take councils to kings anyday. [21:23] Venom_X has joined the channel [21:23] __class__ has joined the channel [21:23] __class__: hi [21:23] JusticeFries has joined the channel [21:24] pyrony: hi [21:24] pcardune has joined the channel [21:25] Counter has joined the channel [21:25] cwang has joined the channel [21:26] tmedema has joined the channel [21:26] pyrony: hash_ring.node: wrong ELF class: ELFCLASS32 [21:26] pyrony: srsly [21:26] pyrony: not sure why im having this problem :( [21:26] tmedema: Can anyone recommend me a high bandwidth VPS provider? [21:26] pyrony: i like linode [21:27] Squeese has joined the channel [21:27] pyrony: but you should use rackspace [21:27] tmedema: pyrony: whenever I ask for a VPS people say linode, which is a cloud service --- their plans offer rather low bandwidth too :) [21:28] mscdex: mjr_: ping [21:28] gf3: tmedema: why not use a standard VPS (like linode) and use something like S3 for your high-bandwidth junk? [21:28] pyrony: tmedema: how much bandwidth do you need [21:28] mjr_: mscdex: hey [21:28] pyrony: they are cheap [21:28] mscdex: mjr_: was it you that was trying to use node-ncurses and got the ELFCLASS32 error? [21:29] mjr_: not me [21:29] mscdex: oh hrmm [21:29] tokumine has joined the channel [21:30] tmedema: pyrony: I'm not sure, something like 1000GB bandwidth for 30 USD a month.. clouds seem to be more expensive than VPS providers as those have way more competition [21:30] yhahn has joined the channel [21:30] nefD has joined the channel [21:30] pyrony: lol [21:31] pyrony: 30 dollars for a terabyte of bw? [21:31] tmedema: yeah [21:31] pyrony: idk, last i checked it was nice to get that much bandwidth for 150-300$USD/mo [21:31] mscdex: pyrony: what is your setup when you get that ELFCLASS32 error? [21:31] tmedema: pyrony: http://www.ajkservers.co.uk/linux-standard-vps-servers.php [21:32] tmedema: 10 dollars 1tb bandwidth, god knows how reliable they are though [21:32] pyrony: lol [21:32] pyrony: that sounds low quality man [21:32] pyrony: mscdex: what about my setup? [21:32] pyrony: 64-bit ubuntu vm [21:32] tmedema: pyrony: right, which is why I asked for recommendations [21:32] tmedema: only hear about linode ;) [21:33] pyrony: tmedema: well there are some other hosters, but the good ones all charge as much as or more than linode [21:33] tmedema: I have got quite a lot of credit at linode for smaller sites, just that I need to do a lot of audio streaming now [21:33] pyrony: and so far i am loving linode [21:34] tmedema: my service is going to be free which is why I need inexpensive bandwidth [21:34] tmedema: don't need much memory since I pipe everything [21:35] mscdex: pyrony: what version? [21:35] pyrony: mscdex: i was running 0.3.x, but i just upgraded to latest stable 0.4.7 and im still getting the same error [21:35] pyrony: even after completely removing the hash_ring dirs from /usr/lib/node [21:36] mscdex: pyrony: oh, i meant ubuntu version sorry [21:36] pyrony: actually i think i got it working [21:36] pyrony: i hadn't removed the .npm/hash_ring portion [21:37] pyrony: sorry about that, must have been an incompatibility between old node vs. current node [21:37] pyrony: it's ubuntu 10.04 [21:37] Jesse_ has joined the channel [21:37] mscdex: oh, you removed that dir and that fixed it? [21:37] Jesse_ has left the channel [21:37] dve_: Evening all.... anyone using async_testing and has the wrap method working? [21:37] pyrony: removed and reinstalled and now it's complaining about other missing packages :) [21:37] mscdex: ok.... hrmm [21:37] Jesse_ has joined the channel [21:38] mscdex: lol someone from the MO house of reps? [21:38] Jesse_: Programmer here at the House yes [21:39] mscdex: nice [21:39] mscdex: using node i hope? ;) [21:39] pyrony: lols [21:39] pyrony: let's hope not [21:39] Jesse_: I'm pitching it to my supervisor for upcoming dev. [21:39] pyrony: the should stick to using bricks [21:39] pyrony: they* [21:40] mscdex: Jesse_: cool [21:40] _Jed has joined the channel [21:41] cloudhea1 has joined the channel [21:41] mbrevoort has joined the channel [21:42] cloudhead has joined the channel [21:43] nibblebot: I have a module that needs to accept an argument when instantiated. The object methods also need to access the object instance with `this` keyword. It appears that having a namespaced closure would allow me to reference my instance from instance methods but namespaced closure seems to prevent being able to pass in arguments. Is there a way I can get both? [21:43] pyrony: nibblebot: pastebin? [21:45] tilgovi has joined the channel [21:45] mscdex: nibblebot: you mean you're using a prototype or you're creating new methods for every new instance of the object? [21:46] dve_: v8: 1++ [21:46] v8bot: dve_: ReferenceError: Invalid left-hand side expression in postfix operation [21:46] context: v8: var x = 1; x++; [21:46] v8bot: context: 1 [21:46] samsonjs has joined the channel [21:46] dve_: v8: var i =1; i++ [21:46] v8bot: dve_: 1 [21:46] context: good bot. [21:46] context: v8: var x = 1; x++; x [21:46] v8bot: context: 2 [21:46] felixge has joined the channel [21:46] felixge has joined the channel [21:46] mscdex: heh [21:46] felixge: isaacs: ping [21:47] mscdex: v8: var x = 1; ++x [21:47] v8bot: mscdex: 2 [21:47] mscdex: ;) [21:47] isaacs: yo :) [21:47] context: mscdex: ;) [21:47] felixge: isaacs: does npm strip "node-" from binary tools I provide? [21:47] felixge: I want my tool to be named node-far, but it installs it as "far" [21:47] aroop has joined the channel [21:47] isaacs: felixge: that's odd. what's your package.json look like? [21:47] context: what! what is node-waf [21:48] felixge: isaacs: https://github.com/felixge/node-far/blob/master/package.json [21:48] mscdex: context: the tool that parses wscript files :p [21:48] pyrony: okay, I have another fun require error [21:48] pyrony: Error: Cannot find module './../.npm/node-statsd/0.0.1/package/lib/apac' [21:48] pyrony: at Function._resolveFilename (module.js:320:11) [21:48] felixge: Giving the name explicitly (in an object hash) works [21:48] felixge: but it seems to rename it by default [21:48] pyrony: module is: node-statsd [21:48] context: mscdex: heh [21:49] isaacs: felixge: ah, you've specified just a string, not a hash [21:49] pyrony: is looked for lib/apac, but that file doesn't exist anywhere [21:49] isaacs: felixge: it treats strings as "bin":{ <name> : <the string> } [21:49] isaacs: felixge: do: "bin" : { "node-far" : "./bin/node-far" } [21:49] azend has joined the channel [21:49] felixge: isaacs: ok, done [21:49] felixge: isaacs: thanks [21:49] nibblebot: one sec, putting together a test [21:49] isaacs: felixge: the reason is that a lot of packages do stuff like "bin" : "./cli.js" [21:50] isaacs: felixge: and really what they mean is, "the name of my app should point at this thingie" [21:50] felixge: isaacs: sure, works for me [21:50] felixge: isaacs: btw. let me know if you like this: https://github.com/felixge/node-far [21:50] felixge: : ) [21:51] felixge: similar to tools/test.py [21:51] felixge: but in node [21:51] zzak: isaacs++ [21:51] v8bot: zzak has given a beer to isaacs. isaacs now has 19 beers. [21:52] isaacs: felixge: interesting [21:52] isaacs: felixge: you should use node-tap to output results in tap format [21:52] nibblebot: pyrony, mscdex, think i solved it myself: http://pastebin.com/TCvZAqYQ [21:52] ibrahimal-rajhi has joined the channel [21:52] isaacs: felixge: i wrote a littel tap-runner, but it's not as snazzy as your thing here [21:53] felixge: isaacs: I'll look into it [21:53] felixge: the output of the individual files may or may not be tap compatible [21:53] ibrahimal-rajhi has left the channel [21:53] felixge: but I guess that's ok [21:53] mscdex: nibblebot: i'm confused as to why you need a closure there and can't just assign module.exports to your function(str){} [21:54] isaacs: felixge: that's fine. you could just have that as additional diagnostic [21:54] felixge: I really dislike tap output [21:54] felixge: but I guess it does integrate with a few tools out there [21:54] isaacs: felixge: sure, but it's a) the standard and b) very parseable [21:54] isaacs: it's better than http :) [21:54] felixge: ;) [21:54] isaacs: it'd be worthwhile to output tap when process.env.TAP=1 at least [21:55] isaacs: and something more humane otherwise. [21:55] isaacs: this will be my summer/autumn [21:55] felixge: isaacs: I was thinking about -f tap [21:55] felixge: or is the environment var commonly used as well? [21:55] isaacs: felixge: npm will run tests with { TAP : 1 } in the future [21:55] sh1mmer has joined the channel [21:55] isaacs: felixge: when it's uploading them to npat. [21:55] felixge: ok, I better get with the program then [21:55] felixge: :) [21:55] felixge: npat ? [21:56] isaacs: npm package testers [21:56] newy_ has joined the channel [21:57] felixge: https://github.com/isaacs/tap-producer that's the one I need, right? [21:57] Mrfloyd has joined the channel [21:57] isaacs: felixge: yeah, that's the core "stream test objects in, it spews tap out" one. [21:57] felixge: npat sounds cool, will it be distributed? [21:57] isaacs: felixge: the idea will be very much inspired by CPANTs [21:57] felixge: or how will you not do tests that need a certain stack? [21:57] context: whats tap ? [21:57] context: :x [21:58] baudehlo: as a convention for private methods do people use exports._method_name (or blah.prototype._method_name) or do you make them truly private and use _method_name called with call()? [21:58] isaacs: context: test anything protocol [21:58] felixge: test anything protocol [21:58] context: so much technical stuff on node i dont know [21:58] felixge: stuff perl did to us [21:58] context: heh [21:58] isaacs: heh [21:58] isaacs: i dig tap myself [21:58] isaacs: when the diagnostics aren't there, it's really nice. [21:59] chapel: https://github.com/substack/node-browserify/pull/16 << just added bundled file watching :) [21:59] zkirill has joined the channel [22:00] felixge: SubStack: I got to play with browserify the other day - works really well. Great job [22:00] felixge: isaacs: ok, going to add tap support now [22:00] isaacs: sweeet [22:01] chapel: when you edit and save a file that is bundled, it will regenerate the bundled browserify.js file for the browser automatically [22:01] tilgovi has joined the channel [22:01] chapel: so you dont have to restart the server to get the updated file [22:01] felixge: isaacs: Will your tap stuff ignore things on stderr? [22:01] Country has joined the channel [22:01] felixge: isaacs: I was thinking of just sending tap stuff through stdout [22:01] felixge: but leaving my current stderr progress indicators [22:01] mscdex: baudehlo: it depends on the type of method, if it needs to work directly with the instance, i'll tack it on the prototype with a '_' prefix. otherwise i just declare it as a plain old non-exported private function in the module [22:01] cbiscardi has joined the channel [22:03] baudehlo: mscdex: well it's a method rather than a function if you get my drift. [22:03] mscdex: i don't? :) [22:04] baudehlo: but I do like the idea that plain old "function blah () {" can be a private method that you execute via blah.call(this, ...) [22:04] baudehlo: mscdex: as in it should have access to "this" [22:04] Bwen has joined the channel [22:05] baudehlo: hmm, I guess that breaks inheritance though. [22:05] mscdex: baudehlo: or you could avoid any .call overhead and just do blah(this, ...) [22:05] baudehlo: right, but then this becomes a param rather than the explicit "this" [22:05] mscdex: baudehlo: right [22:06] baudehlo: I think I'll just use exports.prototype._blah [22:06] secoif has joined the channel [22:06] mscdex: yeah that's what i do [22:06] isaacs: felixge: the standard is for test scripts to output tap on stdout, and "whatever" on stderr [22:06] hlindset has joined the channel [22:07] felixge: isaacs: sweet, unix ftw [22:07] felixge: :) [22:08] xeodox: Hi, can someone who has used Mongoose-auth before help me? [22:10] groom has joined the channel [22:14] alek_br has joined the channel [22:15] nibblebot: mscdex: ok i have some code that doesn't work as expected. http://pastebin.com/Qq8Lh1Ld -- i am using fn.apply as a proxy for async.apply from async.js [22:16] nibblebot: this.str is undefined [22:16] bbttxu has joined the channel [22:17] _fat has joined the channel [22:18] piscisaureus: isaacs: ping [22:18] context: uhh [22:18] context: nibblebot: yeah. this is null when you cann fn() [22:18] context: call* [22:19] brownies has joined the channel [22:19] nibblebot: guess i can't use async.apply with object methods that need access to instance [22:19] context: does v8 have like a js api reference ? [22:19] nibblebot: context: it implements ecmascript 3 [22:19] nibblebot: using mdc js reference has served me well [22:19] rmustacc: Version 5 right? [22:19] shanez has joined the channel [22:20] context: nibblebot: kk that was kind of my question. a non-retarded (read: w3c.com) reference for javascript [22:20] nibblebot: 5th [22:20] wadey: yeah, mozilla's mdc is "close enough" usually [22:20] xeodox: Anyone played with Mongoose-auth before? Need some simple help [22:20] techwraith: xeodox: Nope, that's a pretty new lib [22:21] techwraith: but bnoguchi might be able to help, don't think he's around right now though [22:21] context: nibblebot: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Apply [22:21] context: i dont think apply() is async. [22:22] mscdex: nibblebot: yeah, you'd have to do Test.fn.apply(test) or just test.fn() [22:22] context: its just calling said function in the instance of whatever object you give it [22:22] context: err in the context of [22:22] nibblebot: async.apply doesn't allow passing in this context oh well [22:22] mscdex: nibblebot: you also don't need that closure [22:23] brownies has joined the channel [22:23] jdp has joined the channel [22:25] azend: has anyone coded a library to make nodejs be able to instantly pick up on rss updates? [22:26] context: what is async.apply :x [22:26] techwraith: azend: instantly? [22:26] azend: or next to [22:26] context: azend: thats not something you can really do in 'real time' [22:26] azend: aww [22:26] azend: too bad [22:26] context: unless you really wanna piss people off my polling every 5 seconds. [22:26] techwraith: The only way you can do that is polling [22:26] a2800276 has joined the channel [22:26] azend: because it has to pole? [22:26] techwraith: but yeah, that'll piss people off [22:26] azend: rather than something like pubsubhubbub? [22:27] techwraith: yeah pubsub would work [22:27] context: getting your feeds updated once every 24 / 12 / 6 or even 3 hours isnt enough ? [22:27] azend: I'm lazy [22:27] Jesse__ has joined the channel [22:27] azend: I like my shit getting there fast [22:27] context: kk time to head home [22:28] context: so use a feed reader that just updates or has a refresh button [22:28] context: stop refreshing so often. you cant read that fast [22:28] astropirate: Anyone know of a Free for Open source or trial hosting for Node? I need a place to host my pet projects [22:28] techwraith: no.de :) [22:28] mattrobenolt: astropirate: Nodester. [22:28] febits has joined the channel [22:28] context: heroku [22:29] mattrobenolt: Heroku does Node hosting now? [22:29] mscdex: heroku has done node hosting for some time now [22:29] _fat has joined the channel [22:29] captain_morgan has joined the channel [22:30] techwraith: gotta get into the beta for it though, right? [22:30] mscdex: no idea [22:30] mattrobenolt: That's what it's looking like: http://blog.heroku.com/archives/2010/9/20/an_update_on_heroku_node_js_support/ [22:31] kersny: I used no.de for a little project over the weekend, very slick [22:32] zkirill has joined the channel [22:32] Jesse__: is there any Javascript Audio compression implementations or would I need to go the route of say Speex or flac [22:33] javaanse_jongens has joined the channel [22:33] wink_: Jesse_: speex and flac are worlds apart in audio compression :p [22:34] ardcore has joined the channel [22:34] ardcore has left the channel [22:34] sivy has joined the channel [22:34] Jesse__: whats that go to do with my question :P [22:34] vnguyen has joined the channel [22:35] vnguyen: is there an easy way for http.request to follow redirect 301s? [22:35] mbrevoort has joined the channel [22:35] pcardune has joined the channel [22:36] _fat has joined the channel [22:36] uclinux has joined the channel [22:37] uclinux: hey anyone want to see my twitter stream google maps app? [22:37] mdaisuke has joined the channel [22:37] mikeal has joined the channel [22:38] jesusabdullah: I haven't! SHARE [22:39] uclinux: alexshulman.com/map [22:39] gonsfx: expressjs: when i'm setting my session cookie maxAge to 60*1000, all other cookies set by res.cookie have an expiry date of Date.now()+60*1000, even when given a different expiry [22:39] duncanbeevers: Jesse_: Since many codecs reference implementations are written in C, you may be able to port them to JavaScript by running them through Emscripten. [22:40] astropirate: Does nodester have a business model or are they really generous :S [22:40] sleeplessinc has joined the channel [22:40] Jesse__: I'll look into that Thanks. [22:41] shanez has left the channel [22:41] techwraith: astropirate: I believe the business model is "in the works" [22:42] astropirate: hehe as long as there is one and it doesn't shut down after a few weeks :p [22:42] sreeix has joined the channel [22:43] techwraith: They've been around for a while and pretty well funded (if I remember correctly) [22:43] astropirate: Thats good hear [22:44] kriszyp has joined the channel [22:45] astropirate: {"status":"up","appshosted":816,"appsrunning":528} not bad [22:45] techwraith: yep [22:47] uhbgt has joined the channel [22:50] uhbgt: Hi guys, my logic is failing please help a newbie. [22:50] uhbgt: In node, if i use regular expressions to validate some strings, do i also need to put that in a callback? is every single thing should be done in a callback? var++ in a callback? [22:50] er1c_ has joined the channel [22:51] balaa has joined the channel [22:51] coreb: not necessary to do a callback with that [22:54] jetienne has joined the channel [22:54] ChrisPartridge has joined the channel [22:54] baudehlo: how can I read binary data in node? [22:55] SvenDowideit has joined the channel [22:55] baudehlo: I want to read from a file which has <length><string> in it. But length is an unsigned long (32 bit). [22:55] sspencercon has joined the channel [22:56] bingomanatee has joined the channel [22:57] mscdex: baudehlo: buffers [22:57] baudehlo: that doesn't seem to have any way to convert it to a number. [22:58] baudehlo: I guess I want the equivalent of perl's pack/unpack [22:58] mscdex: well, it's a 32 bit number so just push each byte [22:58] mscdex: the first 4 bytes [22:58] baudehlo: and then how do I get that 4 bytes as a javascript number? [22:58] coreb: I guess he wants a readAsUint from the stream [23:00] mscdex: baudehlo: something like: var length = (buf[0] << 24) + (buf[1] << 16) + (buf[2] << 8) + buf[3] [23:01] baudehlo: yikes... [23:01] mscdex: heh [23:01] baudehlo: though I guess that works. [23:02] baudehlo: fuckit, I'll work on this tomorrow (adding a proper outbound queueing mail server to Haraka) [23:02] baudehlo: just worried it'll be used by spammers. :) [23:02] baudehlo: since it'll scale so well to gajillions of connections [23:03] mscdex: i mean, if you need to do more processing than just that, you could use substack's binary module [23:03] mscdex: https://github.com/substack/node-binary [23:04] heythisisdave has joined the channel [23:04] moshe: I'm trying to build a chat using faye (http://faye.jcoglan.com/node.html), I run the server and open localhost but I can't connect as a client [23:04] tilgovi has joined the channel [23:04] moshe: should I post the code of both files? [23:04] moshe: im not sure what im missing [23:05] mscdex: baudehlo: there's also https://github.com/pgriess/node-jspack too [23:05] coreb: moshe: just post it, no need to ask [23:06] moshe: figured, just a second.... [23:08] moshe: here is the code https://gist.github.com/858a0046ef8771395305 [23:08] chrislorenz has joined the channel [23:08] aberry has left the channel [23:10] moshe: doesn't matter which page I open, I get the "Helloo, non-Bayeux request" ... [23:10] bingomanatee: Everyone ready for node gaming tomorrow night? [23:10] mscdex: node gaming? [23:10] bingomanatee: meetup [23:10] coreb: moshe: so you do get a response on normal http requests [23:10] bingomanatee: we're simulcasting this one [23:11] moshe: yeah, that message [23:11] moshe: but it's in the server.js file, not the client one [23:11] context: i just read that [23:12] context: "i++ in a callback?" ... rly? [23:12] moshe: are you talking to me? [23:12] coreb: moshe: tried with different browsers? [23:13] moshe: same in chrome and ff [23:14] moshe: there is a way my browser doesn't support bayeux [23:14] moshe: ? [23:14] coreb: what's the extension you're adding there? [23:14] moshe: wht do you mean? [23:15] moshe: btw Ive just tried curl http://localhost:8000/index.html and got that message too, if it means anything... [23:15] coreb: you're trying to add an extension which you haven't defined [23:16] coreb: and besides, how do you know that your connection doesn't work? you don't subscribe to the channel anywhere [23:16] pyrotechnick1 has joined the channel [23:16] pyrotechnick1: isaacs: :( [23:16] pyrotechnick1: npm hate me [23:16] isaacs: pyrotechnick1: now, you know that's not true [23:16] pyrotechnick1: i come to work, i even get here early [23:16] isaacs: pyrotechnick1: even check the faq. [23:16] pyrotechnick1: and it hate me [23:16] moshe: at first I did, I removed the command [23:16] moshe: also, there is that client.publish('/foo', {text: 'Hi there'}); [23:17] isaacs: $ npm faq [23:17] isaacs: Why does npm hate me? [23:17] moshe: so I should see that message at least, shouldn't I? [23:17] isaacs: npm is not capable of hatred. It loves everyone, especially you. [23:17] coreb: f [23:17] coreb: no [23:17] isaacs: pyrotechnick1: what's up? [23:17] moshe: because I need to listen to foo channel? [23:17] coreb: yes [23:17] moshe: thought about it, but how do I do that? [23:17] confused has joined the channel [23:17] cloudhea3 has joined the channel [23:17] pyrotechnick1: i cant get local modules to work :( [23:18] coreb: moshe: it's explained well in the docs ;) [23:18] bingomanatee: baudehlo: the problems with spam are endmic to the transport mechanism - making spammers more or less efficient doesn't change the paradigm. [23:18] pyrotechnick1: isaacs: https://gist.github.com/d83a3469e5c5ba52da57 [23:18] pyrotechnick1: that doesnt rly say much [23:18] pyrotechnick1: how i put break point in module.js [23:18] coreb: moshe: and comment out the addExtension [23:18] moshe: will do [23:18] moshe: one moment then [23:19] devrim: hey isaacs npm is failing on me https://github.com/isaacs/npm/issues/832 [23:19] isaacs: pyrotechnick1: what version of node you using? [23:19] pyrotechnick1: 0.4.7 [23:19] coreb: try this; var subscription = client.subscribe('/foo', function(message) { alert(message); }); [23:19] moshe: in the client page? [23:19] pyrotechnick1: is it maybe because coffee is global [23:20] pyrotechnick1: this is a way fresh install, new node, new npm [23:20] coreb: moshe: yes [23:20] pyrotechnick1: default everything [23:20] pyrotechnick1: it works globally [23:20] bingomanatee: its the meetup virus. [23:20] isaacs: pyrotechnick1: what works globaly? [23:20] coreb: moshe: or alert(message.text) [23:20] pyrotechnick1: dnode for instance [23:20] skohorn_ has joined the channel [23:20] pyrotechnick1: everything really [23:20] pyrotechnick1: all my deps [23:21] moshe: still, only that line from the server... [23:21] pyrotechnick1: can i do anything to get you some more useful information? [23:21] pyrotechnick1: i am so very willing i promise [23:21] ngs has joined the channel [23:21] cloudhea1 has joined the channel [23:21] isaacs: pyrotechnick1: well, i mean, that error message is coming from coffeescript. [23:21] isaacs: not even from node [23:21] confused: Hello everyone, i'm having trouble with step 4 where I need to use '$ vim /etc/resolv.conf' I followed the instructions to the best of my ability and I'm still getting error: econnrefused, could not contact dns servers [23:22] techwraith: step four of what? [23:22] mscdex: step 4 of confusion! [23:22] isaacs: pyrotechnick1: if you do `node` to drop into the repl, then `require("dnode")` does it work? [23:22] pyrotechnick1: yes :( [23:22] confused: lol, no step 4 of setting up the node in cygwin [23:22] isaacs: pyrotechnick1: what if you compile your server.coffee to a server.js, then does it work? [23:22] pyrotechnick1: yes :( [23:23] moshe: coreb, maybe this will help http://soderlind.no/archives/2010/06/30/node-js/ , he's using here connect tho, im not sure why [23:23] moshe: I don't understand this code, but you probably would :) [23:23] piscisaureus: isaacs: your pipe patch confuses me. [23:23] coreb: moshe: well, that means you're not accessing your client file [23:24] isaacs: piscisaureus: replying to your email [23:24] zkirill has joined the channel [23:24] pyrotechnick1: isaacs: just got a weird error - https://gist.github.com/1aa9629f7bf24db2e307 [23:24] isaacs: pyrotechnick1: this sounds like coffeescript is hating you, not npm. [23:24] pyrotechnick1: yeah i guess [23:24] davida has joined the channel [23:25] pyrotechnick1: thanks man [23:25] atula has joined the channel [23:25] devrim: isaacs got a sec ? [23:25] kriskowal2 has joined the channel [23:25] piscisaureus: isaacs: yes, I was doing poll(isaacs) :-) [23:25] isaacs: pyrotechnick1: weird. wonder who's trying to require a package.json file [23:25] pyrotechnick1: browserify maybe [23:26] pyrotechnick1: i think it inspects the package.json's [23:26] pyrotechnick1: SubStack: does it? [23:26] moshe: well what can I do then? [23:26] pyrotechnick1: yeah it's browserify for sure [23:26] pyrotechnick1: vooodooooo [23:27] davida_ has joined the channel [23:28] SubStack: yes [23:28] pyrotechnick1: sick dog [23:28] coreb: moshe: you need to set up node.js to serve your client file from the server as a static file [23:28] pyrotechnick1: isaacs: interesting [23:29] pyrotechnick1: isabel:webclient pyrotechnick$ node_modules/.bin/coffee server.coffee [23:29] pyrotechnick1: that works [23:29] pyrotechnick1: in the future computers won't have paths [23:29] isaacs: srsly [23:29] pyrotechnick1: paths will be removed from the POSIX standard [23:29] jesusabdullah: NOOO :( [23:29] moshe: ok, let's see how its getting done [23:29] jesusabdullah: Gurl don't go deprecatin my paths [23:29] isaacs: pyrotechnick1: hm. i wonder if coffee-script's require.registerExtensions voodoo is not playing nicely with the node_modules folder thingies [23:29] SubStack: pyrotechnick1: if you add ./node_modules to the base option browserify might be able to figure it out [23:30] SubStack: actually probably not [23:30] isaacs: devrim: replied [23:30] pyrotechnick1: i might try and help jash fix it today [23:30] isaacs: that'd be rad [23:30] confused: The step 4 I was referring to was here: https://github.com/joyent/node/wiki/Building-node.js-on-Cygwin-(Windows) 'set up domain name resolution' I did what it said to do, and I still get the ECONNREFUSED error [23:30] coreb: moshe: would be easier to use express.js to do that part [23:30] devrim: thx isaacs [23:30] isaacs: i wonder if maybe the registerExtensions thing is happening before the realpath or something [23:31] isaacs: ACTION back to working on nodeconf talk. see ya. [23:31] moshe: so I should be using express instead of faye? [23:31] moshe: or on top of? [23:32] coreb: no, use express to set up paths and return html ;) [23:32] coreb: you need to get your client script into your browser [23:32] coreb: through a normal http request initially [23:32] coreb: then faye comes into play after that [23:32] moshe: oh okay, thanks [23:33] willwhite has joined the channel [23:33] moshe: I thought the whole idea was that faye can do both [23:34] devrim: isaacs i replied with uncut version: http://d.pr/XZtu [23:34] newy_ has joined the channel [23:35] zkirill has joined the channel [23:36] kersny has joined the channel [23:36] JusticeFries has joined the channel [23:36] coreb: moshe; I think you've misunderstood [23:37] moshe: I might [23:37] coreb: where do you think your html + js for the client should come from? [23:37] coreb: where have you stored it? [23:37] pyrotechnick1: FYI coffee-script master works fine against npm 1.0> [23:37] moshe: in the same folder [23:38] saikat has joined the channel [23:38] coreb: as what [23:38] moshe: what do you mean [23:39] ericnakagawa has joined the channel [23:39] coreb: same folder as what, how do you expect anything to find your file and return it to you [23:39] eee_c has joined the channel [23:40] moshe: well if i run the server from certian folder, lets say faye, then localhost:8000 goes to that folder, no? [23:41] captain_morgan has joined the channel [23:41] moshe: or localhost is at /home/? [23:43] coreb: that just goes to your function that returns your text/plain string [23:43] coreb: you need to make that file available explicitly [23:43] JoeQuery has joined the channel [23:44] moshe: and thats what express does for me? [23:44] coreb: yeah, among other things [23:45] brownies: ugh. is there someone here that knows node.js inside and out? and wants to sell me an hour of their time? [23:45] brownies: fairly urgent need. =/ [23:46] coreb: I suggest ryah [23:47] jesusabdullah: seel an hour? [23:47] jesusabdullah: er, sell*? [23:47] tesseracter has joined the channel [23:48] ryan_a has joined the channel [23:48] moshe: coreb, should I create an HTTPS server or it doesn't matter? [23:49] ChrisBuchholz has joined the channel [23:49] coreb: that doesn't matter for dev, only prod if you need to protect the data stream [23:49] brownies: well, if ryah comes around, i'll try and rope him in ;) [23:50] res99_ has joined the channel [23:51] mscdex: brownies: just ask your question [23:51] brownies: the question is basically [23:51] veezy has joined the channel [23:51] brownies: "my contractor wrote some crappy code and there's a time-critical bug in the sign-up funnel, so i can't wait for him to come back and duct tape it in his own mediocre way" [23:52] dnolen has joined the channel [23:52] brownies: "who wants to take my money and spend 30-60 mins fixing it" [23:52] kmwallio has joined the channel [23:52] mscdex: that's not really a question ;) [23:53] mscdex: what is the root problem? [23:53] JoeQuery: I'd really like to learn Node, but before that I really need to know exactly how servers work. Can anyone suggest a good book or comprehensive resource on learning how servers operate? [23:53] brownies: mscdex: nginx returns 504 gateway time out when i submit the sign-up form [23:53] brownies: i'm used to getting 502 when the app crashes. so it's extra-confusing. [23:53] mscdex: JoeQuery: that's kinda vague [23:54] mscdex: JoeQuery: what do you mean by "servers" ? [23:54] andrewfff has joined the channel [23:55] coreb: http servers? [23:56] veezy: any advice on how to get node installed on OSX 10.5.8 as fast as possible? [23:56] mscdex: veezy: ./configure && make && make install ? [23:56] mscdex: that'll go as fast as you processor can go :) [23:57] JoeQuery: Well anything, really. I've only done front-end dev, and I'd like to learn how HTTP works, and basically all the infrastructure that Node covers. Any book suggestions? :) [23:57] mscdex: although i'm not sure how many people use node on 10.5 [23:57] coreb: multiple cores should be used ;) [23:57] veezy: yea its a bit of a problem getting it running on 10.5 [23:57] mscdex: coreb: they will be only if you export JOBS [23:57] duncanbeevers: JoeQuery: http://www.amazon.com/TCP-Illustrated-Vol-Addison-Wesley-Professional/dp/0201633469/ref=sr_1_1?ie=UTF8&qid=1303948654&sr=8-1 [23:57] skohorn has joined the channel [23:58] samsonjs has joined the channel [23:58] jesusabdullah: I learned by doing <_< [23:58] jesusabdullah: I actually don't know a ton about tcp and http and all that [23:58] mscdex: JoeQuery: well, wikipedia is good for starting out [23:58] jesusabdullah: *shrug* [23:58] coreb: mscdex: yeah, so he should do that to compile as quickly as possible ;) [23:58] veezy: just begginning to try and learn node - I tried a package install earlier from github but realized its for 10.6 [23:59] mscdex: coreb: maybe, depends on if he's got anything else using considerable resources at the same time [23:59] mscdex: veezy: maybe try homebrew or something, not sure what to tell you [23:59] markwubben has joined the channel