[00:00] Qbix2: I think I compiled it from source [00:00] Bwen: tsesame: I'm no expert, but every request is send to the callback(req, res), even the favion.ico. its up to use to serve it... dont know what require("connect") is :P [00:01] context: qbix2: if you installed node manually then you upgrade the same way.... manually [00:01] tsesame: Bwen: my issue is specific to how connect should be working [00:01] Qbix2: how???? [00:01] Qbix2: how does one upgrade manually heh [00:02] kab3wm: Qbix2: compile the latest version like you did your old version [00:02] ryah: mikeal: we're supposed to be forward compatible on v0.4. but i'll land it in master [00:02] Qbix2: so make will install it? [00:02] Qbix2: I mean update it? [00:02] Qbix2: or what [00:02] mikeal: ryah: it is [00:02] kab3wm: Qbix2: configure, make, make install, yes. [00:02] Qbix2: aha, thanks :) [00:03] kab3wm: Qbix2: You will need to download the latest version though, it doesn't magically get the new sources. [00:03] ryah: mikeal: i.e. if someone makes a module using this api then it won't work on old versions of v0.4 [00:03] Bwen: tsesame: sorry, newb here... dont know what require("connect") is, good luck :) [00:03] broofa has joined the channel [00:03] tsesame: thx [00:03] mikeal: ok, we weren't doing that in previous 0.4 releases :) [00:04] kab3wm: tsesame: Connect is not part of node.js. You might try asking your question on the Expressjs google group. [00:04] ryah: i'm attempting to. in v0.2 too [00:04] ryah: was there some api added? [00:04] mikeal: exposing the agent [00:04] mikeal: that happened in a v0.4.x release [00:04] tsesame: thx I'll try that [00:04] ryah: ah, right [00:04] devdazed has joined the channel [00:04] ryah: call that a fuck up then :) [00:05] mikeal: it's cool [00:05] mikeal: i'm actually all for it [00:05] mikeal: if that's the policy now [00:05] Bwen: I am offended by the language [00:05] mikeal: but if that's the case we need to have a little more lead time before big releases [00:05] Bwen: I mean the language javascript [00:05] Bwen: xD [00:05] tykelewis_ has joined the channel [00:05] mikeal: Bwen: then you picked the wrong profession :) [00:06] mikeal: javascript is the only language you can't avoid [00:06] tsesame: try coffeescript then [00:06] mikeal: unless you want to avoid the web [00:06] Bwen: mikeal: damn it, i've been tricked again [00:06] tsesame: then you can still node [00:06] mikeal: tsesame: you still need to know javascript, because errors in coffeescript have to be debugged in the js it's compiled down to [00:06] dguttman has joined the channel [00:06] Bwen: was just a poke to "ryah" avec the "fuck up" sentence :p [00:07] mikeal: ryah hates javascript :) [00:07] Bwen: s/avec/about [00:07] mikeal: he'd much prefer everyone to man up and write C and do all their own memory management [00:08] Bwen: i'm okay with him hating javascript, not with me writing C [00:08] Bwen: :D [00:08] varioust has joined the channel [00:08] timmywil has joined the channel [00:08] tsesame: My only issue with Javascript is the way functions inherit the global object [00:09] mikeal: that can actually be quite nice [00:09] tsesame: what the global thing? [00:09] rook2pawn: depends [00:09] rook2pawn: window [00:09] mikeal: you mean the global object in node? [00:09] rmustacc: Numbers as doubles, seriously, what a pain. [00:09] tsesame: well in node maybe it's not as big a deal as window is on the client [00:09] mikeal: numbers in js make sense for the web [00:10] rmustacc: I'm not saying the abstraction of Numbers they present don't make sense. [00:10] rmustacc: *doesn't [00:10] mikeal: tsesame: when you declare "global" variables in node they are assigned to the module, not to global or some kind of window that is the base namespace for all other modules [00:10] rmustacc: The fact that they can represnt numbers that are representable as a double is a pain. [00:11] tsesame: yeah node tries to compensate for that issue, but I believe embedded function should inherit the object they're defined in [00:11] mikeal: huh? [00:12] mikeal: no [00:12] sh1mmer: which is the couchdb driver people are currently favouring? [00:12] mikeal: Object is still a global object [00:12] dschobel has joined the channel [00:12] sh1mmer: ditto: redis, riak, mongo, mysql, postgres [00:12] mikeal: sh1mmer: couch doesn't need a drive, just use request to make http calls [00:12] sh1mmer: mikeal: I know [00:12] mikeal: those all implement their own binary protocol, so they *have* to have a drive [00:12] sh1mmer: mikeal: but people still use one, caching, etc [00:12] mikeal: redis : matt ranney's library [00:12] mikeal: riak : node-riak [00:13] mjr_: my computer, it's beeping at me [00:13] mikeal: mongo : a lot of arguments on the best here, learnboost is on mongoose, that's probably the most stable [00:13] sh1mmer: it's mikeal's fault [00:13] ardcore has joined the channel [00:13] mikeal: sh1mmer: not really [00:13] sh1mmer: hehe, just making fun [00:13] mikeal: they are all abandoned because all the authors stopped using a library :) [00:13] mjr_: Fixed some bugs yesterday in node_redis. [00:13] sh1mmer: I meant about matt's computer beeping [00:13] mikeal: i don't think we have a great mysql library [00:14] mjr_: The riak lib is "riak-js", BTW. [00:14] sh1mmer: I was using felix's for a while [00:14] mikeal: we have a good postgres one, but i don't remember what it is [00:14] sh1mmer: yeah I'v used riak-js a bunch [00:14] mikeal: felix stopped using that [00:14] sh1mmer: I know [00:15] bartt has joined the channel [00:15] mikeal: it's really old, don't encourage anyone to use that [00:15] sh1mmer: wasn't planning to [00:15] stalled has joined the channel [00:16] n3ptunedrive has joined the channel [00:17] mikeal: ryah: in the patch for master, do you want the reverse compat in there? [00:17] ryah: yeah [00:17] mkrecny: mikeal: agree that having the globally scoped variables scoped to the module in node makes this way less of a big deal and quite like it [00:18] mikeal: mkrecny: i'd kind of like to see us default to the newContext option [00:18] mikeal: forgot the name [00:18] dguttman has joined the channel [00:19] mikeal: but basically, every module is evaluated in a new context that is copy on write from it's parent context [00:19] mikeal: so, if you add something to the global prototoypes [00:19] mikeal: it only effects modules that might import you [00:20] mkrecny: yeah twould be nice [00:21] dschobel has joined the channel [00:23] ardcore has left the channel [00:25] dschobel: so I have a question about content-length which I was hoping someone can help me with. If I write the trivial HTTP server which flips a coin (Math.random() > 0.5) to determine which of two different length strings it will respond, this causes apache bench to report failed requests (the 15 line node server: http://pastebin.com/NFZB43Tn). Is this a false negative? [00:26] Ond has joined the channel [00:26] rauchg: dschobel try adding a Content-Length [00:27] dschobel: rauchg, That makes ab happy but I'm trying to understand because I thought the point of chunked encoding is that it allowed you dynamic length responses without specifying upfront? [00:28] rauchg: sure [00:28] rauchg: it's ab [00:28] rauchg: it's not you [00:29] dschobel: rauchg, thanks, just wanted to make sure I wasn't being daft, cheers [00:30] mkrecny: In serious need of some great vim resources. Trying to cold turkey on textmate [00:30] echosystm has joined the channel [00:30] jacobolus has joined the channel [00:31] perezd has joined the channel [00:31] steveklabnik: mkrecny: vimcasts [00:31] varioust has joined the channel [00:31] steveklabnik: also, you may like github.com/carlhuda/janus [00:32] dschobel: mkrecny, vimtutor if you're starting from scratch, then find a good cheatsheet, then vimcasts [00:32] steveklabnik: it makes macvim a lot more like textmate. includes a bunch of plugins and stuff [00:32] dnolen has joined the channel [00:34] dschobel has left the channel [00:35] mkrecny: steveklabnik:dschobel:thanks guys [00:38] monokrome has left the channel [00:38] JusticeFries has joined the channel [00:39] [[zz]] has joined the channel [00:39] langworthy has joined the channel [00:39] pifantastic has joined the channel [00:39] darshanshankar has joined the channel [00:41] chrislorenz has joined the channel [00:42] dguttman has joined the channel [00:42] dguttman has joined the channel [00:43] Bwen: is there a way to have the list of files in a directory as it reads it? readdirSyn and readdir seems to give me the final array of files and not 1 filename as it reads it. [00:43] Charuru has joined the channel [00:44] ktotheg has joined the channel [00:44] bnoguchi has joined the channel [00:48] hassox has joined the channel [00:48] Twelve-60: Bwen: use case? [00:48] ktotheg_ has joined the channel [00:48] Bwen: I'm trying to do vhosts as a learning experience :) [00:49] Aria has joined the channel [00:49] Bwen: wanted to start the servers/services as I read the vhost files [00:49] Twelve-60: why not just get the array and then iterate? :P [00:50] Bwen: well thats what I do, with a callback, from the user eye it looks as he gets them as it is being read... but isnt really [00:50] ditesh|cassini has joined the channel [00:51] Twelve-60: im confused, tell the user that its being loaded, rather than read? :P [00:51] Bwen: but i'm the user!! :O [00:51] Bwen: xD [00:51] CIA-72: node: 03Ryan Dahl 07v0.4 * rc85455a 10/ (AUTHORS ChangeLog doc/index.html src/node_version.h wscript): bump version to v0.4.7 - http://bit.ly/hRqspl [00:51] CIA-72: node: 03Ryan Dahl 07v0.4 * r1f470b6 10/ src/node_version.h : Now working on v0.4.8 - http://bit.ly/ehB0h5 [00:51] CIA-72: node: 03Ryan Dahl 07v0.4 * r621b024 10/ test/simple/test-regress-GH-897.js : Bump bounds on #897 test - was too small for slow machines - http://bit.ly/ha5JjI [00:51] Twelve-60: so whats the problem ? :XD [00:52] Bwen: my other personality wants streaming... :P [00:52] Bwen: sorta [00:52] Twelve-60: well i guess theres no API for that :P [00:52] Bwen: I'll just pretend then ¬_¬ [00:52] Twelve-60: lol [00:53] mscdex: Bwen: submit a patch to fs.readdir [00:53] mscdex: ;) [00:54] Twelve-60: Bwen: https://github.com/joyent/node/blob/master/src/node_file.cc#L616 [00:54] Twelve-60: kgo [00:54] Twelve-60: lol [00:55] Bwen: I dont know C and as ryah said in one of his talk (I think) its C for a reason. So newbs like me cant fuck it up :P [00:56] Bwen: cant even find readdirSyn in there :S [00:57] constantx_ has joined the channel [00:58] demastrie has joined the channel [01:03] arlolra has joined the channel [01:05] Bwen: damn you, now I have to figure this out -.- [01:07] harth has joined the channel [01:08] Bwen: I dont understand how the function "ReadDir" is being called in node_file.cc, anyone? :P [01:09] mikeal: ryah: i'm pretty sure that pipes patch breaks a bunch of shit [01:10] mikeal: yeah, it does [01:10] mikeal: badly [01:10] mikeal: you need to push another relase [01:13] willwhite has joined the channel [01:14] perlmonkey2 has joined the channel [01:15] zcopley has joined the channel [01:15] booths has joined the channel [01:15] pakeha has joined the channel [01:16] pakeha has left the channel [01:16] sechrist: http://www.meetup.com/Node-js-Serverside-Javascripters-Club-SF/events/16674393/?a=me1.1p_grp&rv=me1.1p [01:16] sechrist: neat [01:16] booths: Anyone have any familiarity w/ Exchange servers? I want to try to write some sort of module to interact with an exchange server. [01:16] sechrist: I've written a game server in node, and dealing with the binary was a pain [01:16] sechrist: but after that it was funtastic [01:17] mikeal: sechrist: that conflicts with the javascript trampoline party [01:17] sechrist: shit [01:17] CIA-72: node: 03Mikeal Rogers 07master * r698b1da 10/ lib/http.js : getAgent consistancy between https and http - http://bit.ly/hkpCI7 [01:17] mikeal: and a little bit of the node office hours [01:17] sechrist: what are the node office hours like? [01:17] booths: numbers mostly [01:17] sechrist: come in with a laptop and just hack? [01:17] mikeal: hack, bring your code and problems [01:17] sechrist: what if I don't have problems [01:18] mikeal: then good for your :P [01:18] sechrist: :D [01:18] booths: wish I was on the west coast so I could hang out :\ [01:18] mikeal: you can come in and help other people fix their issues [01:18] sechrist: that's cool [01:18] mikeal: booths: we also do a phone conference thing [01:18] sechrist: do a lot of people show up? [01:18] dgathright_ has joined the channel [01:18] booths: mikeal: whens that? [01:19] mikeal: sometimes like 8 show up, one time i was the only node developer there in the office and all the Joyent people were out of town :) [01:19] sechrist: haha [01:19] mikeal: thank god emiliy let me in and setup the call [01:20] sechrist: oh man that's right by the embarcadero bart [01:20] sechrist: totally game [01:20] Corren has joined the channel [01:21] sechrist: woah wait a second [01:21] sechrist: there's a js house of air party? [01:21] jesusabdullah: air? [01:22] mikeal: that's what i'm talking about [01:22] mikeal: javascript trampoline party [01:22] mikeal: :) [01:22] jesusabdullah: orite [01:23] sechrist: shiiit [01:23] sechrist: I think i'll do that [01:23] sechrist: I've been wanting to do house of air for awhile [01:23] mikeal: there was a yammer thing there a few weeks back [01:23] pcardune has joined the channel [01:23] mikeal: there were like 4 injuries the first 20 minutes [01:24] mikeal: 2 people have been walking around in casts all week [01:24] sechrist: :D [01:24] Yuffster_work has joined the channel [01:24] pyrony has joined the channel [01:25] ryah: mikeal: i'm not convinced - want a test [01:25] jdp has joined the channel [01:26] dgathright_ has joined the channel [01:26] tilgovi has joined the channel [01:27] jmoyers has joined the channel [01:27] newy_ has joined the channel [01:27] sechrist: convinced of injuries at house of air? [01:27] mscdex: heh [01:27] sechrist: jesusabdullah: you move to oakland yet? [01:28] mikeal: dude, did you read the code? [01:28] sechrist: who reads code? I only write code [01:28] mikeal: if you concurrently pipe to a bunch of DIFFERENT streams, none of them will call end() on the writable [01:29] mikeal: until the global list of dests is drained [01:29] mikeal: then *one* gets end called [01:35] echosystm: why do people use things like lib.createObject(...) instead of just new Object() ? [01:35] replore_ has joined the channel [01:35] echosystm: i see this often [01:35] echosystm: in fact the standard library is like this (due to commonjs i imagine) [01:35] echosystm: is there a reason? [01:36] mjr_: echosystm: because Crockford says to do it that way. [01:36] mikeal: no [01:36] mikeal: crockford says to use Object.create() [01:36] mikeal: echosystm: honestly, it's because people new to the language forget to call "new" [01:36] Bwen: i'm style new to all this javascript mindset, but I found this http://howtonode.org/object-graphs which explains it with pretty diagrams *nod* [01:37] mikeal: so by default you can do everything in node without ever using new [01:37] echosystm: isnt this bad design? [01:37] mjr_: My point is that crock says not to use new. [01:38] trcarden has joined the channel [01:38] echosystm: why is that mjr_ ? [01:38] mjr_: Well, because JS doesn't stop you from leaving off the "new" keyword and just trashing the constructor [01:38] mjr_: var obj = new foo(); vs var obj = foo() [01:39] echosystm: thats a bit of a silly reason isnt it? [01:39] echosystm: thats like saying "dont EVER use C because you might forget to release memory" [01:39] mjr_: It's debatable. [01:40] mjr_: It turns out that object.create is not as optimized as new in V8, generally speaking. Whoops. [01:41] echosystm: the problem im finding is that a lot of node libraries are impossible to extend, because no one seems to stick to good OOP design [01:41] echosystm: its quite frustrating [01:42] dguttman_ has joined the channel [01:42] trotter has joined the channel [01:42] Me1000 has joined the channel [01:43] rauchg: echosystm [01:43] indexzero has joined the channel [01:43] rauchg: for example ? [01:43] echosystm: ok [01:43] echosystm: consider this... [01:43] Bwen: "this" in which scope? [01:44] telemachus: rim shot... [01:44] zzak: telemachus ! [01:44] echosystm: var Person = function(aName) { var name = aName; return { getName: function() { return name; } }; } [01:44] echosystm: this cannot be extended meaningfully [01:44] telemachus: zzak ! [01:44] zzak: telemachus happy easter :) [01:44] echosystm: but this pattern is very common [01:45] rauchg: echosystm i would have bigger concerns than extensibility if that's the style the developer picked [01:45] telemachus: zzak: Danke. And to you. [01:45] echosystm: a lot of people do it to "hide" the "private" variables [01:45] echosystm: its bs [01:45] zzak: telemachus tomorrows the big night :) [01:45] echosystm: i used it once, and then realised 5 minutes later how bad it was [01:45] rauchg: sure but I wouldn't expect the library to get other crucial things right, like error handling [01:46] rauchg: or performance [01:46] rauchg: so, i wouldn't _only_ write it off on the basis of lack of extensibility [01:46] echosystm: right [01:46] rauchg: that style has been discouraged for years. [01:47] Bwen: ACTION gives up on node_file.cc [01:48] gtramont1na has joined the channel [01:51] broofa has joined the channel [01:52] csanz has joined the channel [01:53] firedfox has joined the channel [01:54] mikeal has joined the channel [01:54] mikeal: mjr_: i agree with not using new in public interfaces [01:54] mikeal: the api you expose shouldn't require it [01:54] mikeal: it's one of the more confusing things in javascript [01:55] mjr_: Yeah, I'm OK with that. I mean, it took me a long time to understand what new was even doing [01:56] mikeal: and you can't tell that you need to call that via introspection [01:56] mikeal: which is why it's so important to only start variables with capital letters that are constructors [01:57] thinkdevcode has joined the channel [01:57] mjr_: So I made this redis indexer in node that uses a consistent hased ring of Redis instances and oversharding. [01:58] echosystm: another question - what is the standard for structuring your files and importing them? [01:58] mjr_: And it so far seems super awesome [01:58] echosystm: the standard library seems to pack everything into individual files [01:58] echosystm: ie. http.Server http.EtcEtc [01:58] echosystm: theyre all in the same file [01:58] echosystm: what do you do when you have to separate things? [01:58] echosystm: use an index or import files individually? [02:00] gtramont1na has joined the channel [02:00] mikeal: mjr_: that sounds fuckin sweet [02:01] mjr_: mikeal: it turns out that using disk-based databases to build a range-queryable index is pretty expensive [02:01] mjr_: compared to using RAM [02:01] gmanika has joined the channel [02:02] micheil has joined the channel [02:04] sleeplessinc has joined the channel [02:05] Slashbunny has joined the channel [02:06] CIA-72: node: 03Ryan Dahl 07v0.4 * r0325a21 10/ ChangeLog : Correct attribution - http://bit.ly/gAhPXJ [02:06] postwait has joined the channel [02:08] ErikCorry has joined the channel [02:08] micheil: voodootikigod: yt? [02:09] voodootikigod: here [02:11] theturtle321 has joined the channel [02:12] skm has joined the channel [02:13] Yuffster has joined the channel [02:13] avalanche123 has joined the channel [02:14] mikeal: ryah: i'm done freaking out [02:14] mikeal: i do think it's still wrong, and there might be a bug [02:14] mikeal: but it's not as bad as I thought [02:15] pedrobelo has joined the channel [02:15] bentruyman has joined the channel [02:16] perlmonkey21 has joined the channel [02:17] eee_c has joined the channel [02:18] jhonber has joined the channel [02:20] pcardune has joined the channel [02:22] indexzero has joined the channel [02:26] replore has joined the channel [02:26] briznad has joined the channel [02:29] c4milo1 has joined the channel [02:29] gmanika has left the channel [02:29] gmanika has joined the channel [02:32] aroop has joined the channel [02:32] dhasenan: What's the general opinion of coffeescript around here? [02:33] brownies has joined the channel [02:34] Aria: Some like it some not [02:37] brownies: is it cool to shamelessly promote sites written in node here? [02:37] brownies: i just launched one... curious to get some feedback [02:38] losing has joined the channel [02:39] ryah: brownies: yes [02:39] Opaque has joined the channel [02:40] brownies: http://instafilm.com <== still in beta, still adding stuff, but >80% there for v1 [02:40] ryah: 502 [02:40] Bwen: says "502 Bad Gateway" for me too [02:40] theturtle321: Same... 502 Bad Gateway [02:41] brownies: haha wow, terrible terrible timing =( [02:41] mcantelon_ has joined the channel [02:41] brownies: give me a min to restart it =/ [02:41] brownies: ok fixed! one more time: http://instafilm.com [02:41] Bwen: ahh :) [02:42] Bwen: is it normal you have no tags? [02:42] theturtle321: Still 502 for me. [02:42] Bwen: oups 502 is back :( [02:42] Bwen: I broken it! :'( [02:43] theturtle321: No problem. Let us know when you've fixed it :-D [02:43] brownies: sigh [02:43] brownies: yea, let me figure this out... not sure why the server keeps going down [02:44] hugufc has joined the channel [02:46] dgathright_ has joined the channel [02:48] kmiyashiro has joined the channel [02:49] litropy has joined the channel [02:50] demastrie has joined the channel [02:50] litropy: Hi, peeps. I'm looking for a detailed guide for jsdom. Could someone point me in the right direction? [02:51] niall has joined the channel [02:51] cbiscardi has joined the channel [02:51] stagas: I give you... niall! [02:51] niall: oh you using sudo apt-get install works when using express install, some data does it from Express and i'll have anything about HTTP request when the man node [02:51] stagas: niall: you're a stupid bot [02:51] niall: stagas: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/function/apply and stupid mistake [02:52] stagas: :P [02:52] stagas: niall: welcome to node.js [02:52] niall: https://github.com/gimite/web-socket-js/blob/master/flash-src/com/hurlant/crypto/cert/MozillaRootCertificates.as [02:52] stagas: shit :P [02:52] Corren has joined the channel [02:53] jimmyz2 has joined the channel [02:54] litropy: jsdom, anybody? [02:55] stagas: niall: jsdom [02:55] niall: redis-node or just want async programming and a must be tad hard part time to get at jsdom [02:58] Spion_ has joined the channel [02:59] theturtle321 has joined the channel [02:59] litropy: Okay. How about a more generic question: How known is jsdom? [02:59] litropy: I mean, I know popularity is relativem but ... [02:59] niall: litropy: That works fine, but right from somewhere i wouldn't it says it's just seems to use jQuery [02:59] mcantelon_: litropy: well known [03:00] litropy: mcantelon_, if jsdom is well known, why is it so difficult to find a good explanation of its functions? [03:00] niall: the code is not using / 22:39 Hello, world! [03:00] stagas: killed it :P [03:01] mcantelon_: litropy: Heh... well-known != well-documented. [03:01] litropy: mcantelon_, true, true. [03:03] Bwen: its well-known that its not well documented [03:03] Bwen: :D [03:03] litropy: mcantelon_, maybe you can help me out: I need to download a page (which I've bash scripted and all those logistics are complete), then run javascrip, as if it were running in the browser. So, if it does calls to the server, if it needs to load linked scripts from the server, etc, I need jsdom to do it, then give me the resultant page the server sends back. Basically, javascript code is populating forms before post. Once the javascr [03:03] litropy: ipt completes, it tells the server to post. [03:04] theturtle321 has left the channel [03:05] litropy: btw, I'm only scraping for my comcast bill date - I'm not up to anything evil. http://stackoverflow.com/questions/5726728/bash-curling-comcast-com-for-my-bill-amount-and-bill-date [03:05] litropy: If you have comcast, you can follow what I've done. On the last page, you'll see a placeholder in the form for the encrypted __VIEWSTATE. [03:06] Aria: Should work with zombie. [03:06] Aria: (which has the fetching infrastructure around jsdom) [03:06] Aria: (And uses my HTML parser to parse the HTML) [03:07] litropy: Aria, but does zombie do https now? [03:07] Aria: Oh, I've not checked. [03:07] litropy: Totally https [03:07] litropy: 'ing here [03:07] Aria: Yeah. Hm. [03:07] litropy: and when I check out their google group, one of the top posts is essentially, "Dude, what about https?!" [03:08] Aria: Heh. I might have to fix that if assaf doesn't soon. [03:08] Aria: I really need to clone me. [03:08] brownies has joined the channel [03:09] litropy: honestly, I don't know if jsdom does https [03:09] Bwen: Aria: maybe you just need to be EventLoop based and use that idle time :P [03:09] litropy: because, like I said, I can't find a definitive manual. [03:09] Aria: jsdom doesn't do http. [03:09] Aria: jsdom is a DOM. [03:09] litropy: Mmm. [03:10] litropy: Well, here I am dead ending again. [03:10] Aria: You can fetch the page, set it up with jsdom.env and parse it (might need to use my html5 parser rather than the default if the html is weird.) [03:10] Aria: (the default is fast and sloppy. The html5 parser is slower, but handles more edge cases (and will eventually get 'em all)) [03:11] litropy: Aria, yeah I'm definitely curling the page. The question is, does the javascript calls to the server require https ... checking. [03:11] Aria: Aaah, yeah, if you're loading external scripts, that could fall in the 'not done yet, who is gonna do this?' pile [03:12] litropy: well, they're https links ... but if the socket is already there ... hmmm. [03:13] litropy: I suppose I could download the scripts as well ... [03:13] litropy: curl them [03:13] litropy: hm. [03:13] Aria: Or fetch them with, y'know, node itself. [03:13] litropy: because node supports https? [03:13] Aria: Yeah... [03:13] litropy: good to know. [03:14] litropy: well, let's say I have my pages. [03:15] litropy: and all the stuff I need, and the scripts don't need to communicate with the server - they just fill in the form data they're supposed to, then I just post the form .. [03:15] dgathright has joined the channel [03:15] Aria: Should work, might have to hack with the script nodes yourself in the DOM, since there /is/ a fetch needed for that. [03:16] litropy: how would I tell jsdom or zombie, "Hey! I've appended all the linked scripts into this one html file. COuld you please run them and give me the result in another file? [03:16] litropy: " [03:16] Aria: Zombie wants to do that for you. [03:16] Aria: jsdom, you'd find the script nodes and fill them in [03:17] Aria: (or get its window context and use node/v8's Script to run them in that context) [03:17] wilmoore has joined the channel [03:18] litropy: Okay. I see zombie is much more documented, and I'll get into it later. Aria, thank you. [03:19] Aria: Sure thing! [03:19] Aria: I'll poke its https at some point, eventually. [03:19] Aria: ENOTIME sadly. [03:20] dgathright has joined the channel [03:24] litropy: What's ENOTIME? [03:24] levi501d has joined the channel [03:29] newy_ has joined the channel [03:29] dcampano has joined the channel [03:30] Aria: It's the return value for aria_do_something_neat() [03:30] litropy: Google says, "not right now, at least." I hear ya - and I can wait and hopefully work around in the mean time. I'd love to see a, "jsdom/zombie now supports https!!!" note :) [03:31] theturtle321 has joined the channel [03:31] a2800276 has joined the channel [03:33] Darshan-NowJS has left the channel [03:33] seivan has joined the channel [03:33] litropy: Yaaay Aira. Goodbye. [03:33] briznad has joined the channel [03:33] Aria: Ta! [03:37] rchavik has joined the channel [03:43] prettyrobots has joined the channel [03:43] bartt has joined the channel [03:45] bojicas has joined the channel [03:45] jjmalina has joined the channel [03:45] bojicas has joined the channel [03:46] themiddleman has joined the channel [03:47] briznad has joined the channel [03:52] randal has joined the channel [03:54] MikhX has joined the channel [03:57] gazumps has joined the channel [03:58] levi501d has joined the channel [03:58] stagas_ has joined the channel [04:00] __sorin__ has joined the channel [04:01] path[l] has joined the channel [04:02] eee_c has joined the channel [04:07] doubletap has joined the channel [04:07] doubletap has left the channel [04:07] mickaelz has joined the channel [04:08] dnolen has joined the channel [04:11] jiggliemon has joined the channel [04:11] indutny has joined the channel [04:26] sth has joined the channel [04:27] ChrisPartridge has joined the channel [04:29] justinTNT has joined the channel [04:29] jtsnow has joined the channel [04:29] halfhalo has joined the channel [04:33] jimmyz2 has joined the channel [04:43] brownies has joined the channel [04:49] cloudhead_ has joined the channel [04:49] halfhalo has joined the channel [04:50] cloudhead has joined the channel [04:55] sivy has joined the channel [04:57] newy_ has joined the channel [05:00] Chester has joined the channel [05:00] Chester has left the channel [05:01] hassox has joined the channel [05:03] jakehow has joined the channel [05:03] rchavik has joined the channel [05:05] onre has joined the channel [05:05] jdp has joined the channel [05:08] sub_pop has joined the channel [05:15] openpercept has joined the channel [05:16] bnoguchi has left the channel [05:19] Spion__ has joined the channel [05:19] tylerstalder has joined the channel [05:21] Casperin has joined the channel [05:22] Casperin has left the channel [05:23] kmiyashiro has joined the channel [05:31] k1ttty has joined the channel [05:32] andrewfff has joined the channel [05:35] mike5w3c_ has joined the channel [05:36] flippyhead has joined the channel [05:40] numero has joined the channel [05:42] ditesh|cassini has joined the channel [05:44] thinkdevcode has joined the channel [05:52] saschagehlich has joined the channel [05:54] chakrit has joined the channel [05:58] flippyhead has joined the channel [06:00] csanz has joined the channel [06:02] perezd has joined the channel [06:04] brownies has joined the channel [06:04] brownies: ok! third time's the charm [06:05] brownies: all bugs fixed (hopefully) and in production now [06:05] brownies: my first node site, would love your feedback: http://instafilm.com [06:05] theturtle321: Loading... [06:05] theturtle321: very ... slowly .... [06:06] jpld has joined the channel [06:06] jpld has joined the channel [06:07] theturtle321: Ok it's working.. [06:07] theturtle321: Trying it. [06:07] MikhX has joined the channel [06:07] numero: where I can find some free node.js testing ? I promise that, 1)my app will be not running more that half hour each, 2) the code would not suck any of the resources. Responsible code is what I will be putting there. [06:07] numero: I am looking for some very cheap or free node.js hosting [06:07] numero: don't even need any db for now [06:08] asdfsafdsa: what is RMI? [06:09] theturtle321: brownies: looks good! [06:09] theturtle321: Interface is clean and simple.. [06:09] theturtle321: I like the bookmarklet. [06:09] mickaelz: hey brownies [06:09] mickaelz: not bad [06:09] theturtle321: Seems to work pretty well. [06:09] mickaelz: even the idea is cool [06:09] theturtle321: Once I got it to load (my chrome was acting up, switched to safari) it's fast and slick. [06:10] theturtle321: Can the bookmarklet find an embedded youtube/vimeo video on an arbitrary website and save that for later? [06:10] theturtle321: Or does it have to be done from the youtube/vimeo sites? [06:10] brownies: thanks guys! [06:10] brownies: yes it can, theturtle321 [06:10] theturtle321: nice [06:11] asdfsafdsa: brownies: i like your site, it looks useful. i might use it actually if it's integrated with more video sites. [06:11] brownies: ah so the slowness was client-side not server-side right? [06:11] theturtle321: Be even cooler if it took into account the scrollTop property and found the first video currently in the viewport (for blogs and such that have lots of videos on one page...) [06:11] brownies: asdfsafdsa: thanks! do you have any suggestions for what video sites to integrate next? [06:11] theturtle321: Maybe visual highlight the video that it's saving. [06:11] brownies: theturtle321: ooh, good idea, noting that [06:11] numero: just some simple node.js hosting [06:11] numero: brownies, have used express ? what all modules you have used ? A technical write up would be really good [06:12] mickaelz: is it normal u dont have ? [06:12] theturtle321: Oh look at that, there's no tag or doctype! [06:12] theturtle321: You'll want to add those. [06:12] numero: telling us all about your experience [06:12] theturtle321: Particularly the doctype... or you're going to end up rendering in quirks mode. [06:12] brownies: no that's not normal... i'll add that [06:12] asdfsafdsa: brownies: i personally find that lot of long videos I watch are hosted on blip.tv [06:13] bentruyman has joined the channel [06:13] brownies: asdfsafdsa: ok, noted [06:14] brownies: thanks for all the awesome feedback guys =D [06:14] ryah has joined the channel [06:16] theturtle321: :-D [06:17] csanz has joined the channel [06:17] brownies: my personal source for long videos is ted.com so that'll be next, along with blip.tv [06:17] theturtle321: Brownies: also would tie in well to be able to publish your list of saved videos and/or share with friends somehow.. [06:17] puffpio has joined the channel [06:17] theturtle321: A follow feature to see what your friends are watching.. [06:17] brownies: theturtle321: yea, got a whole load of social features that i want to do... need to figure out the ideal UX [06:17] theturtle321: Yeah it can be tricky :) [06:17] theturtle321: But great stuff so far. [06:17] brownies: that's a good idea! so i could "subscribe" to my friends' lists [06:18] theturtle321: yeah. [06:18] theturtle321: And maybe see updates like you do with source repos on github [06:18] theturtle321: or people you follow rather [06:18] theturtle321: This is pretty great by itself though! [06:20] brownies: yea, my hope is that people find it useful as it is [06:20] brownies: i'll throw some simple tweeting stuff in soon too [06:20] bingomanatee has joined the channel [06:20] theturtle321: Yeah that's super easy with their social plugin. [06:20] m64253 has joined the channel [06:20] theturtle321: Post it on news.ycombinator.com :P [06:21] brownies: i definitely will... waiting until Tuesday, which is the optimal time to post a project there (so i'm told) [06:21] theturtle321: Hehe cool cool. [06:21] theturtle321: What kind of DB do you use? [06:21] brownies: so i've got the weekend for my "soft launch" [06:21] brownies: it's on mongodb [06:21] theturtle321: cool [06:21] brownies: which served me well when i decided to add the "Archive" feature halfway through, heh [06:21] theturtle321: Heh [06:23] Opaque has joined the channel [06:25] tylerstalder has joined the channel [06:26] jed__ has joined the channel [06:30] numero: brownies, please do share what all modules you have used [06:32] sub_pop has joined the channel [06:34] sveimac has joined the channel [06:34] stagas_ has joined the channel [06:36] __tosh has joined the channel [06:37] robhawkes has joined the channel [06:37] mcantelon_ has joined the channel [06:38] jed__ has joined the channel [06:39] guybrush has joined the channel [06:46] mjr_ has joined the channel [06:49] rubydiamond: Guys how easy is to write an IRC bot using node.js [06:49] ManuelKiessling has joined the channel [06:49] numero: brownies, if I am to lame to ask what all modules you have used ? I suspect I short of what I should know !! [06:50] numero: brownies, or you perhaps too busy with the launch ? [06:50] numero: rubydiamond, socket.io module is what is used mostly for chat like application [06:50] tjgillies has left the channel [06:51] rubydiamond: numero: I mean.. for freenode chat server channels [06:51] rubydiamond: I want to create a bot [06:51] numero: rubydiamond, but on top socket.io there is dnode module as well as now.js module [06:51] rubydiamond: numero: hmm you are saying these module would help in building IRC bot right ? [06:51] numero: rubydiamond, I am not aware of IRC protocol et al [06:51] guybrush: rubydiamond: checkt this out https://github.com/jesusabdullah/ircrpc [06:51] guybrush: -t [06:51] theturtle321: Socket.IO would be of absolutely no use to you trying to build an IRC bot. [06:52] numero: rubydiamond, yeah an IRC clientfor sure [06:52] rubydiamond: hmm [06:52] rubydiamond: :) [06:53] Sami_ZzZ___ has joined the channel [06:53] guybrush: with that one could pipe streams to irc via rpc :D [06:55] insin has joined the channel [06:57] jiggliemon has joined the channel [06:57] abraham has joined the channel [06:59] beawesomeinstead has joined the channel [06:59] beawesomeinstead has joined the channel [07:01] mjr_: numero: I think a lot of people use "Jerk" for IRC bots: https://github.com/gf3/Jerk [07:01] jacter has joined the channel [07:01] mjr_: There are many other libraries for IRC floating around as well. [07:03] mike5w3c_ has joined the channel [07:03] jed__ has joined the channel [07:03] numero: mjr_, rubydiamond is interested in making an ircbot, I was just thought he was interested in making irc client on browser. Anyway, great to see you on weekend !! [07:04] dgathright has joined the channel [07:04] mjr_: sorry, just skimmed the scrollback [07:04] rubydiamond: mjr_: looks like this library is awesome node-irc [07:04] numero: mjr_, np :) [07:05] tjgillies has joined the channel [07:05] brownies: numero: i will write something up at some point about it [07:07] numero: brownies, oh sure , would love to see it. See node.js is still nascent, a writeup will just attract more learner and eager onlooker to your site, IMHO. [07:08] numero: See= since .. hasty typo ! [07:08] brownies: good point [07:08] brownies: i heard that learnboost was doing a lot of node.js dev? are there other major sites using it? [07:08] ChrisPartridge has joined the channel [07:09] theturtle321: Apparently Joyent is using it for a lot of their infrastructure stuff [07:09] liar has joined the channel [07:09] theturtle321: and some web services [07:09] guybrush: brownies: https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node [07:09] theturtle321: I'm not sure learnboost qualifies as a "major" site though, as cool as it is. :) [07:09] numero: brownies, I guess ther are many [07:10] numero: github uses node.js for their dowloading functionality, it was told yesterday on this channel it self [07:11] loob2 has joined the channel [07:12] mjr_: brownies: we use node at Voxer for everything on the backend. [07:13] theturtle321: I use it for all the realtime communications for my startup, worlize.com [07:14] theturtle321: it uses Socket.IO right now... but I'm working on my own WebSocket server implementation. Implementing the latest IETF draft-07 protocol, which is wildly different from what's out there in the wild now. [07:14] theturtle321: (My client is flash, so I have the luxury of using a bleeding edge protocol) [07:16] brownies: interesting [07:16] brownies: has anyone done a realtime gaming server in node.js? would that be crazy? [07:16] ajpiaNOU has joined the channel [07:17] numero: theturtle321, will it be supporting stoneage browsers ? will it support a dinasourus known as IE6 from jurrasic age ? [07:17] theturtle321: I think it's been done, yeah, but i'm not sure to what degree. [07:17] theturtle321: Nope. [07:17] mjr_: We do live audio over node. Lots of people have written or are writing game servers in node. [07:18] theturtle321: Right now, I've had a few issues with Socket.IO in certain browsers, so I'm moving my entire client-side comm subsystem into flash. [07:18] numero: theturtle321, your recent message for me or brownies ? [07:18] theturtle321: Once that happens, the browser will no longer be relevant to the communications protocol. [07:18] numero: k [07:18] numero: is see [07:18] theturtle321: I also don't care about IE < 8. [07:18] theturtle321: At all. [07:18] brownies: interesting approach [07:18] theturtle321: :) [07:19] numero: but then your site will require flash !! [07:19] theturtle321: The entire client is flash already. [07:19] brownies: yea that is a problem. especially if you had wanted to do real-time stuff involving the ipad [07:19] asdfsafdsa: no one does turtle [07:19] theturtle321: It's a 2d virtual-world platform. [07:19] jacobolus has joined the channel [07:19] numero: theturtle321, iOS has no flash :( [07:19] theturtle321: I know. [07:20] theturtle321: I'm thinking of porting it all to HTML5 in a year or two. [07:20] theturtle321: But flash is the only way I can get this all to work in certain browsers at the moment without great pain. [07:20] numero: theturtle321, the issues you find in socket.io are roadblocker ? not solvable beyond point ? [07:21] theturtle321: But this isn't an IRC channel about browsers. :) I'm using node on the server. [07:21] marlun: I'm using Express and I've got this request handler: https://gist.github.com/938434 And if I go to localhost:3000/requirements I get a json object back. However, on the client side I use Backbone and when you just go to localhost:3000/ The /requirements call is done in an ajax call with Accept: application/json and the request seems to be cancelled. And my request handler is not run. [07:21] marlun: Is there something I need to do for the ajax call to work that I've missed? [07:21] theturtle321: One of the major ones for me was that on Firefox, it uses xhr-multipart, which is unreliable. It randomly drops connections and doesn't reconnect. Many on the mailing list have experienced this problem but it hasn't been fixed. (I think it's more a Firefox issue honestly) [07:22] numero: theturtle321, you are right :), why we seems to be behind you is at the end it's overall solution that matters :) [07:23] numero: what are exactly the issues you are facing with socket.io ? could you share it ? [07:24] theturtle321: Like I said the main one was that the xhr-multipart connection interface used in Firefox is unreliable, and nobody's been able to fix it. [07:24] theturtle321: Their flash-based polyfill for websockets doesn't work reliably, sometimes it connects sometimes it refuses. [07:25] theturtle321: xhr-polling doesn't work with my infrastructure for reasons too complicated to describe here.. [07:25] pifantastic has joined the channel [07:25] theturtle321: It works most reliably, ironically, in IE8 using the htmlfile transport. [07:25] theturtle321: But for some reason it won't connect at all in IE9. [07:25] theturtle321: There were too many moving parts, too many fallbacks and special cases... [07:26] theturtle321: and since I'm in flash, I don't *have* to deal with all the cross browser differences. It eventually ended up being more frustration than it's worth. [07:26] theturtle321: A new major version is supposed to come out shortly, 0.7, which is supposed to be a lot better, but I haven't seen it yet. [07:29] path[l] has left the channel [07:30] sorens3n has joined the channel [07:32] numero: theturtle321, I understand it now !! sympathies as well !! [07:32] theturtle321: :-) [07:33] numero: what is the basic barebone authentication for connect/express ? [07:34] numero: I don't want session support, atleast for now ! [07:34] [[zzz]] has joined the channel [07:34] numero: I run across this converstation, http://stackoverflow.com/questions/3498005/user-authentication-libraries-for-node-js [07:35] numero: the final post using request.headers['authorization'] is good enough to give me how it is done [07:35] numero: but I want to use something which supports the onion-ring, I dont want to reinvent the wheel !! [07:36] SubStack: delicious onion rings... [07:36] [[zzzz]] has joined the channel [07:38] numero: SubStack, onions are aphrodesiac >_< [07:39] mjr_: it's getting kinda hot in here [07:39] aaronblohowiak has joined the channel [07:39] SubStack: numero: unsubstantiated superstitious hogwash [07:40] aaronblohowiak: SubStack: getting ready for Easter? [07:40] SubStack: could be! [07:40] jed__ has joined the channel [07:40] jacobolu_ has joined the channel [07:40] SubStack: I like how after the big holidays candy is super cheap [07:41] SubStack: that's about it [07:41] numero: SubStack, I didn't knew it !! [07:41] SubStack: meanwhile awesome holidays like caps lock day LANGUISH IN OBSCURITY [07:42] msucan has joined the channel [07:49] random123: What do you guys think would make the best server for Node.js? [07:50] random123: FreeBSD? [07:50] jpld has joined the channel [07:51] beawesomeinstead has joined the channel [07:51] sechrist has joined the channel [07:52] theturtle321 has left the channel [07:52] stisti: sorry for a n00b question, but what does this do?: argv._[0] [07:53] okuryu has joined the channel [07:55] numero: stisti, it looks to me that it will give you the first string in command line enviroment , of your command !! [07:56] [[zz]] has joined the channel [07:57] numero: and If I am not wrong that would be the command itself !!! [07:58] numero: commandnamw to be precise [07:59] openpercept has joined the channel [07:59] stisti: I'm actually reading the code for forever and trying to understand it [07:59] stisti: but when I try: [08:00] stisti: console.log(process.argv._[0]); [08:00] stisti: I get an error [08:00] stisti: TypeError: Cannot read property '0' of undefined [08:01] aaronblohowiak: how do i reset my npm password? [08:02] aaronblohowiak: http://admin.npmjs.org/ is how! [08:02] stisti: hmm... the argv actually comes from require('optimist').argv, so maybe it has something called _ [08:02] jacobolus has joined the channel [08:03] numero: stisti, how you are invoking the script ? [08:04] mikeal has joined the channel [08:04] stisti: $ cat argv.js [08:04] stisti: #!/Users/sami/bin/node [08:04] stisti: console.log(process.argv._[0]); [08:04] Ond has joined the channel [08:04] stisti: $ node argv.js foobar [08:04] stisti: TypeError: Cannot read property '0' of undefined [08:06] numero: try '$> node argv.js [08:06] aaronblohowiak: [ANN] A better way to manage your configs! https://github.com/aaronblohowiak/Journaling-Hash [08:06] stisti: exactly the same happens [08:08] jacter has joined the channel [08:09] SubStack: configs eh? [08:09] herbySk has joined the channel [08:09] jarek has joined the channel [08:10] Draggor: anyone know what's up with nodester.com? [08:11] Ond: Wasn't it affected by the AWS outage [08:11] Ond: (think I remember hearing that) [08:12] Draggor: Ooh, good point [08:12] smrchy has joined the channel [08:15] chapel: aaronblohowiak: you see my pull request for restartr? [08:15] random123: What node.js binding to mongodb is best? [08:15] aaronblohowiak: chapel: yes! i am going to merge and push to origin in a few minutes [08:15] chapel: awesome, an odd issue [08:16] chapel: I had actually forked, and was testing the package.json, ended up deleting that fork, retrying, and wasting 2 commits on faulty changes [08:16] chapel: but the last one worked [08:16] aaronblohowiak: ^.^ that dependencies thing is weird! [08:16] chapel: yeah [08:17] aaronblohowiak: chapel: so are you currently unable to install via npm? [08:17] jiggliemon: Holowaychuk is a machine [08:17] chapel: well I wasn't able to, once I made the change, I could [08:17] chapel: using npm link [08:18] aaronblohowiak: ah, good to know! [08:18] chapel: https://github.com/chapel/ngist/blob/master/package.json see mine, I don't have a space between the comma and dependencies [08:18] chapel: it works [08:18] btipling has left the channel [08:19] aaronblohowiak: i am also going to add an option for something along the lines of "if it fails within X seconds, wait for another change before restarting" to save my battery life on the train [08:19] chapel: so I really don't understand why it has issues [08:19] chapel: yeah aaronblohowiak [08:19] chapel: or maybe a count option [08:19] chapel: before it stops [08:19] aaronblohowiak: how would the count option work? [08:19] chapel: but really [08:19] chapel: your way is probably best [08:19] chapel: I recommended that feature before :) [08:19] d0k has joined the channel [08:20] herbySk74 has joined the channel [08:20] aaronblohowiak: ^.^ [08:21] aaronblohowiak: i wish github had a "yes apply this" without requiring me to branch, pull, merge and push [08:21] johnnywengluu has joined the channel [08:22] chapel: yeah [08:22] chapel: well [08:22] aaronblohowiak: its like they expect me to test the code or something!? [08:22] chapel: there is a tool for that [08:22] chapel: pully [08:22] chapel: http://ejohn.org/blog/pulley/ [08:22] confoocious has joined the channel [08:22] confoocious has joined the channel [08:22] chapel: :) [08:24] aaronblohowiak: sweeet! [08:26] Cookbook has joined the channel [08:30] namadan has joined the channel [08:31] koz has joined the channel [08:31] namadan: hello??? [08:31] chapel: did you try pulley? [08:31] febits[0] has joined the channel [08:31] namadan: yes,,but failed [08:32] numero: aaronblohowiak, there is not command as jh.get(name,forThisDebugInfoString) ? [08:32] aaronblohowiak: chapel: BOOM! i feel like a ninja. [08:32] chapel: haha aaronblohowiak [08:32] aaronblohowiak: numero: so you would want that to return the value of name as of the state of the debugInfoString? [08:32] numero: aaronblohowiak, to get only the value of key for that snapshot only ? [08:32] pdelgallego has joined the channel [08:33] febits[0] has joined the channel [08:33] chapel: aaronblohowiak: you should do a config file like .restartr that you could put in the main file and any files to watch [08:33] namadan: error:couldn't configure a c compiler! <----this is my error message.. i don't know why [08:33] aaronblohowiak: chapel: that and time delay are my two biggest wants right now. [08:33] numero: yeah what was the values set for key X when I set it with a debugInfo Y [08:33] chapel: hmm [08:33] chapel: time delay? [08:33] chapel: oh, on error? [08:34] aaronblohowiak: numero: hmmm, well that would be hard because there is no uniqueness for the debugInfo string and I am only making a history entry if there was a change [08:34] numero: aaronblohowiak, it is obvious that some would like to use the old value .. [08:34] aaronblohowiak: chapel: yes, the battery saver [08:34] numero: in some usecase .. [08:34] aaronblohowiak: numero: do you have a use-case in mind? [08:34] numero: umm, not yet !! [08:34] aaronblohowiak: oh, not so obvious to me then ;) [08:34] numero: i shall ping you with one [08:35] numero: would put them as issue on github [08:35] aaronblohowiak: jh.history("name").pop().pop()[0] would work if you really, really want it ;) [08:35] aaronblohowiak: you would have to JSON.parse it [08:35] aaronblohowiak: ;) [08:36] numero: aaronblohowiak, ah !! [08:36] SamuraiJack has joined the channel [08:36] aaronblohowiak: ;) [08:39] namadan has joined the channel [08:42] chapel: wth, I just cloned my fork, and now its not working with npm [08:42] namadan: error: couldn't configure a c compiler <-- this is my error message [08:43] namadan: i'm installing node.js on cygwin [08:45] aaronblohowiak: it isnt even 2am and i'm feeling tired /me feels old [08:46] bojicas has joined the channel [08:48] jacobolus has joined the channel [08:49] chapel: aaronblohowiak: are you working on restartr? I am playing with it to get the wait to restart on error [08:49] aaronblohowiak: chapel: i am contemplating some food but was then going to do the wait thing. if you want to implement it, then by all means be my guest! [08:50] chapel: :) [08:50] chapel: trying to grep your code [08:50] aaronblohowiak: the code could use a re-factor.. it was a shell script in node that kept on growing =/ [08:50] chapel: its fairly simple, but just trying to get the order of operations in my mind [08:50] chapel: yeah [08:50] chapel: a definite refactor would help [08:51] ajt has joined the channel [08:51] mickaelz has joined the channel [08:52] sechrist_ has joined the channel [08:52] aaronblohowiak: okie dokie. will do some cleanup [08:52] aaronblohowiak: be back in 15 mins =) [08:52] chapel: kk [08:52] jarek: chapel: have you tried this? https://github.com/DTrejo/run.js [08:52] jarek: chapel: it's very simillar to restart [08:53] chapel: I use coffeescript often [08:53] chapel: most scripts like that don't support coffee [08:53] chapel: and assume node [08:54] chapel: restartr lets you explicitly say what you are running [08:54] chapel: be it node or coffee [08:54] jarek: chapel: I haven't tried run.js with coffeescript, but even if it does not support it, it should be easy to fix [08:54] chapel: sure [08:54] daglees has joined the channel [08:55] chapel: but why fix it when there is something that already supports it? [08:55] chapel: :P [08:56] cryptix has joined the channel [08:56] aaronblohowiak: :P also, restartr uses kill -9, which is clearly the best thing to do. [08:56] chapel: :P [08:57] chapel: what else are you working on aaronblohowiak ? [08:57] aaronblohowiak: chapel: Transitive.io [08:57] aaronblohowiak: it is like fin/fun or nowjs, but with less magic [08:57] chapel: or dnode? [08:58] aaronblohowiak: chapel: dnode::electric grid as transitive::mcmansions [08:58] aaronblohowiak: that is probably more confusing. [08:59] chapel: hmm, so dnode is the infrastructure [08:59] chapel: transitive is whats built on top [08:59] jarek: aaronblohowiak: uhm... [08:59] sechrist_: http://www.youtube.com/watch?v=um_Zln37tJY [08:59] jarek: aaronblohowiak: exec("kill -9 "+child.pid, function(error, stdout, stderr){ [08:59] aaronblohowiak: it could be, if i rolled that way [08:59] jarek: aaronblohowiak: why don't you use process.kill() ? [08:59] chapel: dnode-protocol :P [08:59] aaronblohowiak: jarek: i believe that SIGINTs the process [08:59] chapel: process.kill kills the current process [08:59] chapel: not the child process [08:59] chapel: but child.kill might work idk [08:59] chapel: :P [08:59] chapel: haven't done that [09:00] jarek: ACTION googles what SIGINT means [09:00] aaronblohowiak: chapel: dnode has no concept of html or a persistence layer, for instance [09:00] chapel: yeah [09:00] SubStack: nor should it [09:00] chapel: it is purely rpc [09:00] chapel: so you could do what you want [09:01] chapel: on top of dnode [09:01] jarek: SIGINT signal seems to be the same as pressing ctrl+c in console [09:01] jarek: so it basically kills the process, right? [09:01] aaronblohowiak: jarek: right. and sometimes you want to take a flamethrower of justice to the process [09:01] chapel: and in fact, I have ideas to make something similar to what you are doing, but using backbone or custom model/collection stuff [09:01] aaronblohowiak: SubStack: right, right, i am trying to explain how they are categorically different [09:02] chapel: well you said now.js [09:02] SubStack: what use-cases do you have in mind for transitive? [09:02] __tosh has joined the channel [09:02] chapel: and now.js is close to dnode [09:02] chapel: but far far away [09:02] aaronblohowiak: chapel: ooooooo, i am interested in learning more. the problem with backbone is that it doesnt have any notion of recieving an update from another user [09:02] aaronblohowiak: SubStack: making a realtime version of basecamp [09:02] jarek: I prefer now.js over dnode because of its simplicity [09:02] chapel: aaronblohowiak [09:02] chapel: you would have to put that logic in there [09:02] SubStack: jarek: is that actually the case? [09:02] chapel: but backbone has an update thing [09:03] SubStack: from what I can tell nowjs involves more moving parts [09:03] chapel: which means when there is an update, it updates the models/collections as needed [09:03] aaronblohowiak: nowjs is significantly less awesome than dnode. [09:03] SubStack: the nowjs docs just hide some of the pieces of code you have to write [09:03] chapel: so if you used dnode to watch for changes, between users in your case, just call update from the server, and everyone would get the update [09:04] aaronblohowiak: chapel: that is good for propagating changes downstream, but i didnt see a good way to orchestrate changes from upstream, let alone a version-awareness. [09:04] chapel: dnode + browserify and you don't have to write any inline code, just include one file and be done [09:04] chapel: what do you mean? [09:04] chapel: dnode can work both ways [09:04] aaronblohowiak: chapel: vector clocks and optimistic locking, yo [09:05] chapel: ie, client uses server functions, but the server can call client functions [09:05] aaronblohowiak: chapel: oh, sorry, my last two statements were WRT backbone, not dnode =) [09:05] SubStack: jarek: but um I'm rather curious why you think dnode isn't simple... the server on the readme is 5 lines and the client is 6 [09:05] chapel: oh well it doesn't support that natively [09:06] SubStack: jarek: which parts in particular seem complicated? [09:06] SubStack: the readme could use some work I'll admit [09:06] chapel: but what I am recommending is making those features using dnode [09:06] christophsturm has joined the channel [09:06] jarek: SubStack: by simple I meant the way how you use it, not the underlaying code [09:06] andy_dawson: hi what's best/common practice for (unit) testing node modules? [09:07] chapel: the way you use it? [09:07] SubStack: jarek: yes that's what I'm referring to... the server that you'd write is just 5 lines [09:07] jarek: SubStack: with now.js I can execute server functions from client with two lines of code [09:07] chapel: dnode is simple [09:07] aaronblohowiak: chapel: i am afraid of the low-latency assumption that working with dnode gives you.. i feel like you don't fear the round-trip as much [09:08] jarek: SubStack: from the examples I have seen on github there was a bit more code than 5 lines :P [09:08] SubStack: jarek: ah so the inversion of control seems off then? [09:08] SubStack: jarek: well there are an awful lot of examples [09:08] chapel: well with the browser you aren't going to be able to have low latency, at least easily [09:09] aaronblohowiak: chapel: also, with the dnode way, i couldnt think of a good way to ship pre-rendered templates to the browser and have those templates bound to event handlers that were data-model aware [09:09] chapel: I don't see how using dnode or not changes that [09:10] chapel: well, if they are pre-rendered, and js, just use browserify [09:10] chapel: https://github.com/chapel/dnode-simpledb/blob/master/server.js << there is a deadly simple example of dnode + browserify [09:10] chapel: gives full access to simpledb module in the browser [09:12] aaronblohowiak: SimpleDB the AMZN product? [09:12] chapel: yeah [09:12] chapel: its amazing :P [09:12] tylerstalder has joined the channel [09:13] SubStack: oh sweet [09:14] numero: so guys, you are saying ... [09:14] SubStack: aaronblohowiak: how would the latency be any different with another approach? [09:14] numero: 1) dnone is good for essentially with what purpose it has benn concieved [09:14] numero: 2) Now.js is good from simplicity but dnode+ browserify would give you the same ? [09:15] aaronblohowiak: SubStack: dnode is probably the lowest-latency approach. I'd rather build for high-latency and then just have good things happen when the high-latency tolerant approach is taken out over low-latency [09:15] chapel: well browserify doesn't really add a lot to just dnode [09:15] matjas has joined the channel [09:15] chapel: but it makes it more node.js like on the server [09:15] chapel: aaronblohowiak: seems like pre-optimization [09:16] chapel: might was well use what works [09:16] SubStack: aaronblohowiak: well I mean isn't that more an issue with the architecture you adopt than the transport abstraction? [09:16] SubStack: except perhaps the original method prelude [09:17] SubStack: but you could just as well write a dnode({ send : function (msg) { ... }) and use it pretty much exactly like socket.io [09:17] SubStack: with pretty much the same latency profile [09:17] numero: I find now.js to be sweet for 1) it has shared space 2) the built in grouping of client it provides [09:17] chapel: shared space? [09:17] aaronblohowiak: SubStack: absolutely! and the RPC-based client:server interaction is best suited to low-latency. I prefer more of a synchronization model. [09:17] SubStack: chapel: the replication system [09:18] numero: chapel, they call it 'now' and 'everyone.now' [09:18] chapel: but dnode doesn't assume that kind of thing [09:18] numero: so what I create at server side 'eveyone.now.mydata = "abc" ; is available to client [09:18] chapel: you have access to the stuff to be able to do that [09:19] aaronblohowiak: see, to me that is taking things a bit too far [09:19] SubStack: numero: you can set attributes in dnode too they just don't update in realtime via proxies [09:19] SubStack: because that sort of thing really seems like it should be explicit [09:19] SubStack: feels quite magical [09:19] aaronblohowiak: ACTION wants everything to be explicit. adults-only, if you will [09:19] SubStack: harmony proxies I mean [09:19] SubStack: hoxies [09:20] aaronblohowiak: brb [09:20] numero: SubStack, are you saying that the shared space in now.js is what feel magical ? [09:20] SubStack: I should get around to writing that replication middleware for dnode [09:20] SubStack: aaronblohowiak: you might find that useful should I ever finish it [09:21] chapel: :P [09:21] SubStack: then you can use the replication approach in an explicit, managed way on top of dnode [09:21] numero: SubStack, do take into account the client group concept provided in now.js [09:21] andy_dawson: hi is anyone here using mongodb, getting any problems when updating/inserting? [09:21] numero: SubStack, is also many would like to have [09:21] SubStack: groups are nice [09:21] SubStack: something that could also be built up as a dnode middleware [09:21] SubStack: on top of the event emitter approach [09:22] SubStack: but um, so much other stuff to do :p [09:22] numero: SubStack, and allow developer to turn on/off what all methody of syncing they want to enable [09:22] SubStack: but if some of you want to hack one or more of those up that would be pretty boss [09:23] SubStack: numero: yes naturally, and it would be a separate module entirely [09:24] SubStack: var replicate = require('dnode-replicate'); then you this.moo = replicate({ cows : 'mooing' }) or whatevs [09:24] numero: SubStack, I am willing to contribute, but not sure how fit I am for the job, someone need to guide me for design [09:24] aaronblohowiak: SubStack: depends on what replication means) [09:25] SubStack: aaronblohowiak: I'm using the term here to mean updating parallel data structures and propagating the results [09:25] SubStack: including merging conflicts and all that noise [09:25] aaronblohowiak: SubStack: yes, then we agree. I think that involves having identity, local version and "base version" (last canonical version from server) for all instances of all remoted objects [09:25] guybrush: one should consider to implement stuff like that with pubsub anyway, isnt it? [09:26] SubStack: probably I would have primitives for bidirectional and unidirectional updates [09:26] numero: when you guys talked about assumptions of low latency in dnode , what exactly you mean by low latency ? [09:26] numero: 10 ms ?, 100 ms ? [09:26] aaronblohowiak: SubStack: well unidirectional is just a subscription, not a replication, per se [09:27] karboh has joined the channel [09:27] numero: and how good is now.js with respect to that ? [09:28] SubStack: well it would use the same algorithm for efficient diffing so I figure it should be in the same lib [09:28] aaronblohowiak: numero: now.js and dnode have the same RPC-oriented programming paradigm [09:28] aaronblohowiak: SubStack: why diff with unidirectional? [09:28] aaronblohowiak: ^.^ [09:28] aaronblohowiak: ACTION writes some slow ass systems, apparently =) [09:28] SubStack: well the whole data structure shouldn't get sent every time [09:29] aaronblohowiak: *shrug* i am fine with that for most data structures. it is also convenient because you avoid consistency checks. [09:29] SubStack: oh then if this thing will work browser-side I'd have to feature detect for harmony proxies and fallback to an interval polling [09:30] numero: SubStack, only the delta shoudl be sent, right !!! [09:30] aaronblohowiak: Have i ranted about how proxies are the worst thing ever, yet? [09:30] SubStack: and then sometimes you'll want to lock users out of updating certain nodes [09:30] SubStack: aaronblohowiak: well proxies are faster than polling anyhow [09:30] aaronblohowiak: SubStack: proxies are too magic [09:30] aaronblohowiak: for me [09:30] liar has joined the channel [09:31] SubStack: proxies can be useful [09:31] SubStack: for a replication system they make perfect sense [09:31] aaronblohowiak: AttemptToSendAnUpdateThatMightTakeAVeryLongTime(json, cb) [09:31] aaronblohowiak: :-) [09:31] SubStack: I don't follow [09:32] aaronblohowiak: that is my kind of replication fn name [09:32] aaronblohowiak: SubStack: i disagree about proxies for replication. you usually dont want to replicate single property changes, but rather consistent valid states... almost like a transaction but atomic just to a single object [09:32] numero: guys, I cannot participate in the discussion completely as I don't know what is low latency ? [09:32] numero: could please spill the bean ... [09:33] V1 has joined the channel [09:33] SubStack: aaronblohowiak: and process.nextTick fits that niche pretty well [09:33] aaronblohowiak: SubStack: you mean setInterval(0) on the browser... [09:33] SubStack: yes just the idea of it [09:33] SubStack: you can pigeon-hole atomicity into the process.nextTick() model pretty efficiently [09:34] aaronblohowiak: ;) yes, i suppose i could see that, but it still seems a bit off. what happens if the assignment is rejected by the server? [09:34] SubStack: the proxies are just to flag nodes as tainted [09:34] aaronblohowiak: i dont understand the failure modes well enough [09:34] SubStack: that's what I do for sesame [09:34] Bogh has joined the channel [09:34] aaronblohowiak: numero: normal web-based latency. even if we take the node and browser side to be instantaneous in processing, network latency is the issue i am concerned about. [09:35] NiTr0 has joined the channel [09:35] NiTr0: hi [09:35] aaronblohowiak: NiTr0: Ahoy! [09:35] McMAGIC--Copy has joined the channel [09:35] hackband has joined the channel [09:35] SubStack: I'm sure there's some way to register a rejected version event handler without too much grief [09:35] numero: aaronblohowiak, pardon for my lack of knowledge but that is basically considered 10ms ? [09:36] NiTr0: im ruby developer and interested in Node.js. it's very hard to me write code on JS after Ruby, you know :) is there any alternative with syntax sugar? [09:36] chapel: NiTr0: you could try coffeescript [09:36] chapel: it is closer to python [09:36] chapel: but is nice [09:36] mc_greeny has joined the channel [09:36] aaronblohowiak: numero: depends on a LOT of factors.. location of servers, kind of bandwidth, network hops, &etc. 10ms is good if you are ona corporate lan on the same coast [09:37] aaronblohowiak: NiTr0: coffeescript is what you are looking for. [09:37] NiTr0: hm, thanks guys! now im going to read about it :) [09:37] aaronblohowiak: NiTr0: why are you interested in Node if you dont want to write js? [09:37] NiTr0: im interested in asynchronic programming [09:38] NiTr0: node is getting popularity day-2-day [09:38] aaronblohowiak: NiTr0: ah, cool. welcome to the jungle =) [09:38] NiTr0: i didn't understand you :) [09:38] numero: wouldn't anything but javascript syntax take away authors form the concept of callback (in their mental thinking process) which is corner stone of node.js ? [09:38] aaronblohowiak: numero: javascript [09:39] aaronblohowiak: numero: js's function declaration is very verbose... you still have callbacks and anon functions.. theyjust take less letters to type [09:40] numero: aaronblohowiak, ah ! but then you have to sometime read somebody else code, go and read library code you are using ... [09:40] numero: how would you cop up with such scenarios ? [09:40] chapel: are you talkin about NiTr0 learning cs but not js? [09:40] numero: is _ralph writing in coffeescript ? [09:40] chapel: learning cs improved my js [09:41] aaronblohowiak: numero: it is really just a syntactical sugar.. i dont have a problem switching. [09:41] chapel: yeah same [09:41] mraleph has joined the channel [09:42] aaronblohowiak: chapel: learning cs made me more error-prone in js because automagic return statements make me lazy [09:42] aaronblohowiak: =( [09:42] chapel: haha [09:42] numero: soorry it was not _ralph but very Ryan [09:42] chapel: well there are a few times I forget Im writing js, and do a -> [09:42] aaronblohowiak: WHY IS THIS FUCKING THING UNDEFINED? (2 hours later) oh. whoops. [09:42] chapel: but for the most part I haven't had issues [09:42] numero: aaronblohowiak, would give a shot [09:42] aaronblohowiak: chapel++ [09:42] v8bot: aaronblohowiak has given a beer to chapel. chapel now has 1 beers. [09:44] numero: what is the best practice while string config files ? [09:44] numero: should it be config.json [09:44] numero: I am talking about your node.js server app [09:45] stagas: I think I've found a vulnerability in all node code [09:46] numero: config.json file be used to dictate e.g which port the server will listen [09:46] numero: what is the name of the instance of this server ? [09:46] aaronblohowiak: numero: config.json works. when you want to have multiple configuration files overridding each other, you can use my shiny new toy: https://github.com/aaronblohowiak/Journaling-Hash [09:46] aaronblohowiak: stagas: you should contact the core committers directly. [09:46] numero: aaronblohowiak, I figured it out but guess it was second step [09:46] aaronblohowiak: numero: k [09:47] stagas: it's a js problem. if you use a hash object, and you're testing some input against the keys for truth, if the input is __defineGetter__, __defineSetter__, __proto__ or constructor it's going to fail miserably in unknown ways [09:47] numero: and I am stuck at first step, I was not sure if config.json amounts to best practice [09:48] numero: aaronblohowiak, are there any pointer on this subject ? [09:48] numero: I also want my config.json file to be editable from browser [09:48] stagas: like: if (users[some_input]) allow_access() [09:49] aaronblohowiak: numero: sorry, i dont think i can give you the level of guidance you are looking for [09:49] numero: so that I can manage my server using webinterface [09:49] numero: any module which take .json file and give you a page where it is displayed, editable ? [09:50] aaronblohowiak: stagas: do you have a proof of concept? [09:51] stagas: aaronblohowiak: what do you mean? I just showed you, these keys are going to return true as they always exist [09:51] aaronblohowiak: stagas: why would you ever use user input to determine if the user has access? [09:51] aaronblohowiak: stagas: that is tentamount to eval()ing post params [09:52] chapel: v8: var users = {}, input = '__defineGetter__'; users['test'] = 1; if (users[input]) console.log('success'); [09:52] v8bot: chapel: "success" [09:52] chapel: v8: var users = {}, input = '__defineGetter__'; users['test'] = 1; if (users[input]) { console.log('success'); } [09:52] v8bot: chapel: "success" [09:52] chapel: v8: var users = {}, input = '__defineGetter_'; users['test'] = 1; if (users[input]) { console.log('success'); } [09:52] v8bot: chapel: 1 [09:52] justinTNT has joined the channel [09:53] chapel: stagas: you are right [09:53] chapel: though you could just sanitize against them [09:54] ph^ has joined the channel [09:54] numero: chapel, sanitizing means extra code wverywhere ? [09:54] jed__ has joined the channel [09:54] DennisRasmussen has joined the channel [09:54] stagas: chapel: yes but you have to know it first :) [09:55] numero: stagas, how you could discover it ? [09:55] chapel: well as aaronblohowiak said, you shouldn't be using direct user input for stuff like that [09:55] stagas: I imagine if I enter __defineGetter__ in username fields of node.js apps, I may gain access/crash some [09:55] numero: serendipity at work or you were at it ? [09:55] chapel: haha stagas [09:56] link has joined the channel [09:56] stagas: shit, 'toString' too [09:56] numero: stagas, well done anyway !! [09:58] stagas: all object properties [09:58] numero: aaronblohowiak, should my app.js file should read config.json file or it should be some command line piping ? [09:58] aaronblohowiak: stagas: hmmm that is weird [09:58] numero: to let values be known to app.js [09:58] aaronblohowiak: numero: that's up to you! [09:59] numero: aaronblohowiak, I am looking for best practices :) [09:59] V1: is there a way to push 'development' builds to npm instead of regular releases? [09:59] aaronblohowiak: V1: why would you want to do that? [09:59] numero: V1 package.json file has way to tell what is the development status of your module [10:00] V1: aaronblohowiak because my development version fixes a couple of bugs + has major performance upgrades but its not 'stable' yet [10:00] numero: try '$>npm help development' [10:01] V1: doesn't work numero :p [10:02] numero: try '$>npm help developers' [10:02] numero: second one will work, tested :p [10:03] numero: there is a concept of specifying version and tags [10:03] numero: e.g 1.2.4-3-alpha [10:03] V1: numero yup it works, but it doesn't contain information about publishing `development` releases [10:03] V1: yeh that might work [10:03] V1: npm install module@development [10:03] numero: Google for package.json and you should be enlightened [10:04] numero: V1 thats true [10:04] dies_el has joined the channel [10:06] [AD]Turbo has joined the channel [10:07] numero: aaronblohowiak, how about having config.json renamed to config.js, just imported as next door library using require("./config") ? [10:08] numero: so var appConfig = require("./config.js"); [10:08] numero: var portToListenTo =appConfig.port; [10:08] aaronblohowiak: numero: you'd need a module.exports then [10:08] numero: var appInstanceName = appConfig.appName; [10:09] numero: yeah , what wrong with that ? [10:09] aaronblohowiak: config = JSON.parse(fs.readFileSync('./config.json')); [10:09] aaronblohowiak: i mean you can do it however you want [10:09] aaronblohowiak: =) [10:10] numero: basically it will cease to be .json file but inside it there wount be any function .. [10:10] numero: the content would be more or less the same as in config.json [10:11] numero: Will make file depend on fs module [10:11] numero: I am rather cynical about using less [10:12] numero: Will add to my overall server footprint just to load a single file that to once when server is started, right ? [10:12] numero: if I use fs module ? [10:13] coreb has joined the channel [10:15] numero: V1, you got solution ? [10:16] hassox has joined the channel [10:17] V1: numero a bit, pusing out stuff under a different version is rather annoying [10:17] V1: So at this point, i'm like fuck it, ill write a .sh file that does automagical updates [10:18] numero: I think @ is handy [10:20] V1: numero it depends.. I don't think npm would detect an updated version because @development is static version [10:20] V1: also doing npm unpublish and npm publish each time is rather annoying. [10:20] V1: beeing able to do a npm publish development would be allot easier [10:22] andy_dawson: hi can anyone explain what error I'm making here? it's a standalone file if anyone is inclined to run it https://github.com/AD7six/node-mongodb-native/blob/bbe5d36201016598f5571b8040a617c5a6ee9ca9/examples/updates.js#L67 [10:25] justinTNT: whats your failure mode? [10:25] indutny has joined the channel [10:29] justinTNT: oh, I see your comment : andy, can you see the document there in mongo? [10:31] Tobias| has joined the channel [10:32] azeroth_ has joined the channel [10:33] aaronblohowiak: chapel: battery saving mode and code organization done [10:33] chapel: awesome [10:33] aaronblohowiak: chapel: i need to figure out good directory or glob support for the config file to make sense [10:36] Tobias| has joined the channel [10:42] fangel has joined the channel [10:43] pankaj has joined the channel [10:43] chapel: hmm [10:43] chapel: did you push the changes yet? [10:43] aaronblohowiak: should be showing up [10:44] ManuelKiessling has joined the channel [10:44] aaronblohowiak: are you pulling from me or from your fork? [10:44] pankaj: Is there a node.js users community on IRC? Or just developer community. [10:44] chapel: I was fetching from yours [10:44] saschagehlich: Is here anyone with Parallels Desktop 6? [10:44] chapel: but no matter, I see the changes [10:44] aaronblohowiak: pankaj: you are in teh users community [10:45] aaronblohowiak: chapel: this is not a re-factor as much as it is a move stuff around and add in another confusing code path =) [10:46] skohorn has joined the channel [10:46] chapel: yeah [10:46] chapel: I am actually working on a refactor :P [10:46] pankaj: ok. I wanted to know - is there a framework based on nodejs to create web applications? Like RoR, Symfony, Pylons etc. [10:46] aaronblohowiak: chapel: it needs a good clean rewrite, tbh [10:46] chapel: just feel like it [10:46] pankaj: Thanks aaronblohowiak. [10:46] aaronblohowiak: nice! [10:46] aaronblohowiak: pull requests will be accepted [10:48] aaronblohowiak: chapel: feel free to ditch all of the "are you sure you didn't mean?" bullshit. [10:48] chapel: haha [10:48] aaronblohowiak: that souhld drop 40 lines or so [10:48] aaronblohowiak: ;-0 [10:48] aaronblohowiak: okay, i am going to give in to sleep. ttyl! [10:49] replore_ has joined the channel [10:49] chapel: yep [10:49] chapel: night [10:51] niall has joined the channel [10:51] stagas: niall: hello [10:53] stagas: niall: what's up [10:53] stagas: hm [10:54] numero: pankaj , what you mean by user of node.js community ? [10:56] numero: Believe in your guts and google for the framework you are looking foe ;) [10:57] numero: for* [10:57] numero: aaronblohowiak, gn [10:58] numero: stagas, you reported to core committers ? [10:59] stagas: numero: why it's not a core problem [11:00] hellp has joined the channel [11:01] numero: stagas, You saying it is not ? [11:01] numero: I guess it is and worth reporting to them :P [11:02] saschagehlich has joined the channel [11:03] niall has joined the channel [11:03] stagas: niall: hello [11:04] stagas: damn bot [11:05] niall has joined the channel [11:05] stagas: niall: hello [11:05] GriffenJBS has joined the channel [11:05] niall: hello failwhale when she code? will do with websockets behind it? :P:P [11:06] stagas: niall: stupid bot [11:06] niall: stagas: stupid [11:06] stagas: niall: blah [11:06] niall: stagas: for "./blah" whenever I do [11:07] stagas: :P [11:08] stagas: http://www.lab6.com/old/niall.html [11:08] niall: stagas: x-www-form-urlencoded [11:10] ejardim has joined the channel [11:11] F1LT3R has joined the channel [11:14] eb4890 has joined the channel [11:16] stagas: numero: the solution is to use .hasOwnProperty() whenever you're testing for keys [11:16] thalll has joined the channel [11:19] numero: for any Object in javascript ? [11:20] staaaaar has joined the channel [11:20] saschagehlich: V1|idle: ping! pong back as soon as you're back :) [11:23] skohorn has joined the channel [11:24] dschobel has joined the channel [11:25] k1ttty has joined the channel [11:27] maru_cc has joined the channel [11:28] Remoun has joined the channel [11:29] azeroth__ has joined the channel [11:31] openpercept has joined the channel [11:31] tmpvar has joined the channel [11:36] dgathright has joined the channel [11:38] fairwinds has joined the channel [11:39] Bwen has joined the channel [11:40] FireFly has joined the channel [11:40] lukegalea has joined the channel [11:40] eventi has joined the channel [11:44] galaxywatcher has joined the channel [11:45] Bwen: I read somewhere that adding functions to primitive types is evil. I am now hoping I read this on an purist site or is it really discouraged within node? [11:45] confoocious has joined the channel [11:45] confoocious has joined the channel [11:46] stagas: Bwen: you shouldn't do it for a module you're going to share, but in your app you can do anything you want [11:47] Bwen: you guys got a easy/clean way to do in_array() ? [11:47] Bwen: I dont want to repeat that loop everywhere... seems pointless [11:48] MattJ has joined the channel [11:48] SubStack: v8: [ 'a', 'b', 'c', 'd' ].indexOf('c') >= 0 [11:48] v8bot: SubStack: true [11:48] tmpvar: Bwen, in node you can do indexOf [11:48] SubStack: v8: [ 'a', 'b', 'c', 'd' ].indexOf('z') >= 0 [11:48] v8bot: SubStack: false [11:48] tmpvar: boosh [11:48] Bwen: sweet, did not know that :) [11:49] tmpvar: doesnt work in IE ;) [11:49] SubStack: with es5-shim it does! [11:49] Bwen: its for server :P [11:49] tmpvar: true facts [11:49] kaa2011 has joined the channel [11:52] SubStack: you can also zip up the array into a hash and check membership that way [11:54] SubStack: v8: [ 'a', 'b', 'c', 'd' ].reduce(function (acc, x) { acc[x] = true; return acc }, {}) [11:54] v8bot: SubStack: {a:true,b:true,c:true,d:true} [11:54] tmpvar: does mikeal's request module work with https? [11:55] stagas: tmpvar: yes [11:56] tmpvar: stagas, hrm.. i can't seem to get it working [11:57] tmpvar: might be my node version [12:01] V1: saschagehlich ping! [12:04] Country has joined the channel [12:06] ardcore has joined the channel [12:08] ardcore has joined the channel [12:08] tmpvar: looks like that was it, awesome [12:09] ardcore has joined the channel [12:10] Druide_ has joined the channel [12:10] saschagehlich: V1: right now I can reproduce a bug in firefox... I installed a clean windows xp with firefox 3.6.15 without flash [12:11] saschagehlich: socket.io client tries to do xhr-multipart which is "aborted" [12:11] saschagehlich: and then it tries to do xhr-polling over and over again but fails there as well [12:11] ardcore has joined the channel [12:11] saschagehlich: that's probably what most of my users area experiencing [12:11] V1: saschagehlich can you create a `small` reproducable test case from it? [12:12] saschagehlich: V1: mmh didn't try yet, but I will. [12:12] V1: saschagehlich that would be great [12:12] ardcore has joined the channel [12:14] ardcore has joined the channel [12:15] ezl has joined the channel [12:16] ardcore has joined the channel [12:16] lukegalea has joined the channel [12:17] jtrudeau has joined the channel [12:17] ardcore has joined the channel [12:18] V1: saschagehlich is it aborted or does it give a 404? [12:18] saschagehlich: V1: Firebug says "Aborted" [12:19] V1: saschagehlich I'm wondering if it has something to do with the connection_timeout settings [12:19] ardcore has joined the channel [12:19] V1: as that will `cancel` all running transport attempts and try a new one [12:19] ardcore has left the channel [12:20] saschagehlich: hmm [12:20] saschagehlich: actually connect_failed is not being called, don't know whether connection_timeout is being called.. [12:23] V1: saschagehlich how high `connectTimeout` option? [12:23] saschagehlich: 10000 [12:25] V1: saschagehlich that's quite high, so I doubt that would be the issue, unless it takes 10 seconds before the transports are disabled. [12:25] V1: aborted* [12:25] saschagehlich: V1: it takes 10 seconds until xhr-multipart is being aborted [12:26] V1: saschagehlich: So it's a serverside issue [12:26] saschagehlich: then it tries xhr-polling, which results in 200 OK, it gets a session id [12:26] V1: saschagehlich does the multipart xhr return any data? [12:26] saschagehlich: and then it does xhr-polling requests which take 20 seconds each. the third request is aborted [12:27] saschagehlich: no, the xhr-multipart initial request doesn't return anything [12:27] V1: saschagehlich xhrs are hold for 20sec by the server so that would be normal i guess [12:27] V1: saschagehlich and it can be aborted if it doesn't receive or send a heartbeat response [12:27] saschagehlich: okay [12:28] saschagehlich: let me just restart the server... I don't think that this fixes it since I'm doing this on an idling server [12:28] V1: saschagehlich ok, [12:28] saschagehlich: same problem [12:28] V1: I'm gonna got the store so brb in 10 min~ [12:28] saschagehlich: kk [12:30] Bwen: ACTION wonders what V1 is getting at the store... [12:32] robhawkes has joined the channel [12:32] V1: Bwen: icecream, cat litter, glue, chips, cheese and potatoes [12:33] V1: =p [12:33] Bwen: oh could you get me some sodas while you are there? [12:35] industrial has joined the channel [12:36] industrial: Doing my first steps in nodejs, found connect middleware (and expressjs, but first learn connect), https://github.com/Industrial/node_site [12:37] industrial: if I try to access localhost:8000/static/css/index.css it won't serve me the file [12:37] Bwen: how rude [12:37] Bwen: did you ask the expressjs ppl? [12:37] industrial: rude? [12:37] industrial: is there a channel? [12:38] Bwen: well if I request something and I dont get it.. its rude.. :P [12:38] beawesomeinstead has joined the channel [12:38] Bwen: not sure, dont use expressjs [12:39] industrial: Bwen: I don't understand you, I asked a question on a somewhat relative topic on this subject seeing as it uses nodejs and there might be people using the same software here.. [12:40] Bwen: oh yeah, my mistake. Dont pay attention to me i'm a newb :) [12:40] Bwen: hence why I dont know expressjs... [12:40] k1ttty has joined the channel [12:45] industrial: https://github.com/laverdet/node-autoload seems cool [12:49] jimmy___ has joined the channel [12:49] ardcore has joined the channel [12:51] excellentdrums has joined the channel [12:52] jwl: i have a method that is creating a file .. i want to use that method from another file to create that file [12:52] V1: saschagehlich any progress [12:52] jwl: and i want to pass in a relative path .. but then that method which exists in another file will use the relative path from its own location [12:53] saschagehlich: V1: didn't really have a further look at it yet... portal 2 is way too addictive :( [12:53] jwl: you get me? how do i fix this so the method get that the relative path is from the file that called the method [12:53] V1: oki [12:54] mscdex: jwl: congratulations, you've just received the most confusing question achievement [12:54] mscdex: :p [12:54] jwl: :) [12:55] jwl: file A: require('system').createDir("projects/new_folder"); [12:55] jwl: now the createDir will use that relative path but from its own location [12:56] jwl: which i dont want to .. i want it to use that relative path for the file that called the function [12:56] jwl: makes sense? [12:56] bingomanatee has joined the channel [12:57] mscdex: jwl: so prepend __dirname to the filename: createDir(__dirname + '/projects/new_folder') [12:57] jwl: hm [12:57] jwl: donno .. wanted to be able to pass a relative path =) [12:58] jwl: kinda like node.js built in functions [12:58] jwl: you can just use relative paths i assume [12:58] kristsk has joined the channel [12:58] jwl: fs.writeFile('message.txt', 'Hello Node', function (err) {}); [12:59] jwl: thats relative [12:59] jwl: how do they do it :) [12:59] Bwen: absolute paths are more efficient tho [13:00] indexzero has joined the channel [13:01] jwl: they could do that too [13:01] mscdex: jwl: right, but the core modules are built-in to node [13:01] Wizek has joined the channel [13:01] jwl: but how do they do it [13:01] jwl: since the functions are not in the same file [13:01] jwl: it should be the same scenario [13:02] jwl: node experts! come on! [13:02] jwl: in 5 min i have to use absolute paths instead =) [13:02] jwl: maybe someone could change that destiny [13:03] fairwinds: hi. anyone with an example hookup for cluster with express. Looks like I may just need to export app and include in server [13:03] indexzero_ has joined the channel [13:04] kriszyp has joined the channel [13:05] davidwalsh has joined the channel [13:06] jwl: yepp [13:06] jwl: absolut path it is then [13:06] mscdex: jwl: if you're not requiring the file in more than one place, you could use path.dirname on module.parent.filename [13:07] koz has joined the channel [13:07] jwl: i think i do require it from multiple files [13:07] jwl: i donno .. dont want to hack [13:07] jwl: thanks anyway [13:11] liar has joined the channel [13:13] postwait has joined the channel [13:16] saschagehlich has joined the channel [13:17] JimBastard has joined the channel [13:17] saschagehlich: gnah apple! I hate those freezes :( yunofixit?! [13:17] JimBastard: reporting in for node.js training session at general assembly [13:21] dyer has joined the channel [13:22] indexzero has joined the channel [13:24] dcampano has joined the channel [13:24] onr has left the channel [13:25] fairwinds: for cluster, it's pretty simple. Just exported app and included in cluster. ie module.exports.app = app; and good to go :-) [13:26] davidcoallier has joined the channel [13:26] fairwinds: sorry. that should be module.exports = app [13:27] pdelgallego has joined the channel [13:28] jed__ has joined the channel [13:30] perlmonkey2 has joined the channel [13:32] ditesh|cassini has joined the channel [13:33] unomi has joined the channel [13:33] Opaque has joined the channel [13:33] liar has joined the channel [13:35] saschagehlich: does anybody now a way to emulate cross-domain stuff locally? [13:35] JimBastard: saschagehlich: in the browser? [13:35] saschagehlich: JimBastard: yes [13:36] JimBastard: saschagehlich: maybe just edit your hosts file? [13:36] saschagehlich: JimBastard: looks like this doesnt work... I'm playing around with socket.io in firefox and I'm trying to do a cross-domain flashsocket thingy without using the insecure swf file [13:36] JimBastard: saschagehlich: if you change your hosts file, it should see it as a cross domain request no? [13:37] JimBastard: how would it know otherwise? [13:37] saschagehlich: so I'm going to http://192.168.178.33 (my lan ip) and try to open up a socket.io connection to "blurb.dev" which points to my lan ip [13:37] JimBastard: saschagehlich: maybe alias your lan ip to have a domain as well? [13:38] JimBastard: foo.dev? it shouldnt matter.... [13:38] saschagehlich: hmm one sec [13:38] JimBastard: ive done cross domain testing before by editing hosts file [13:38] JimBastard: i also remember the ability to hack firefox a little to emulate it [13:38] JimBastard: i think you can just edit some settings in the conf [13:39] saschagehlich: JimBastard: flashsocket connections from blurb.dev to foobar.dev work as well [13:40] JimBastard: saschagehlich: you want it not to work? [13:41] saschagehlich: JimBastard: exactly since the usual swf used by socket.io can not handle crossdomain stuff [13:41] unomi: saschagehlich, you probably need to set up a local DNS [13:41] Zelest_ has joined the channel [13:41] saschagehlich: yikes [13:42] DoNaLd` has joined the channel [13:42] KrooniX has joined the channel [13:43] saschagehlich: where is V1? :( [13:43] phiggins has joined the channel [13:46] JimBastard: phiggins: you ready to party at portland or what? [13:47] arianrock has joined the channel [13:49] k1ttty has joined the channel [13:49] dschobel has left the channel [13:50] jwl: will npm packages work for frontend in the future? [13:51] jwl: or will i always have to maintain 2 different code bases [13:51] rpj8 has joined the channel [13:51] jwl: eg. how do i create a library that works for both browser and node.js? [13:54] indexzero: jwl: There are some techniques for writing node + browser compliant code, but `require()` is not cross-compatible [13:54] jwl: yeah i know [13:54] jwl: will it be? [13:55] jwl: indexzero: but how do i then make them to work on both ends ? [13:55] indexzero: There are some implementations of require in the browser, but CommonJS !== ECMA so there will always be some disconnect [13:55] indexzero: This is a classic technique: https://github.com/Marak/translate.js/blob/master/lib/translate.js#L17 [13:56] indexzero: `if (typeof exports === 'undefined') // browser` [13:56] pietern has joined the channel [13:56] indexzero: `else { /* server */ }` [13:58] jwl: indexzero: hah=) [13:58] jwl: that was a funny solution [13:58] jwl: by you? [13:58] JimBastard has joined the channel [13:58] jwl: i actually know a much better then [13:58] indexzero: jwl: I've seen a bunch of them, but I dont need to write xcompliant code often [13:58] jwl: eg. YUI has on both ends [13:59] indexzero: This is the best browser require I've seen: https://github.com/marcuswestin/require [13:59] jwl: var YUI = this.YUI || require('yui3'); [13:59] indexzero: right, but require is undefined, so that will throw [13:59] jwl: no =) [13:59] jwl: because this.YUI is true [13:59] jwl: so it CAN be run on browser [13:59] jwl: i have tested it [14:00] indexzero: hmm .. that could blow up in your face if everything isn't perfect [14:00] jwl: the || is in this way .. if the left thing is true .. it NEVER reads the right thing [14:00] indexzero: I understand that the require('yui3') will never be evaluated (hence it runs) [14:00] jwl: yeah [14:00] indexzero: but all it takes is one place where this.YUI is undefined or not set yet for it to crash [14:00] indexzero: very fragile [14:00] jwl: js is smart [14:00] JojoBoss has joined the channel [14:00] indexzero: although clever ;) [14:00] eventi has joined the channel [14:00] jwl: but if YUI is not there i havent loaded YUI [14:00] jwl: in the script tag [14:01] jwl: so then it should blow! [14:01] indexzero: right, maybe take a look at that browser require I sent you [14:01] indexzero: it's coming together nicely [14:01] jwl: because both are like calls to YUI .. either use browser version, or node.js version .. if both are not there ... blow! [14:01] bingomanatee has joined the channel [14:01] jwl: its kinda like using require('doesnt-exist') [14:01] jwl: it throws error because you are requiring something that is not there [14:01] mc_greeny has joined the channel [14:01] jwl: ok [14:02] jwl: hmm [14:03] jwl: so it starts a server to send the file to the client? [14:04] tshpaper has joined the channel [14:04] jwl: when you require() on the browser it requests the file from the server i think [14:05] emerleite has joined the channel [14:06] emerleite: Hi, Anyone knows how to spaw tail -f with grep? Without -f it works [14:06] indexzero has joined the channel [14:07] indexzero: jwl: I think so [14:07] indexzero: It's been a while since I played around with it [14:07] jwl: i think im going to use YUI instead [14:07] indexzero: but marcus is a really sharp guy; basically lead js engineer at Meebo [14:08] jwl: working on both ends .. making possible to load my lib (/lib.js) file from any location [14:08] jwl: Y.use("my-lib") [14:08] emerleite: https://gist.github.com/938632 [14:09] jwl: http://www.slideshare.net/caridy/building-yui-3-custom-modules [14:09] jwl: the slide 19 [14:09] jwl: *trying it now* [14:09] jarek has joined the channel [14:09] jarek has joined the channel [14:10] Corren has joined the channel [14:11] indutny has joined the channel [14:12] blueadept has joined the channel [14:17] crodas has joined the channel [14:17] jarek has joined the channel [14:17] jarek has joined the channel [14:18] fairwinds: jwl: have you looked at http://requirejs.org/ [14:18] alindeman has joined the channel [14:19] JimBastard has joined the channel [14:19] jwl: fairwinds: i hear about it all the time [14:19] jwl: so it works on both ends i assume [14:20] fairwinds: yes [14:20] jwl: why isn't everyone using it then [14:20] jwl: it has its shortcommings? [14:20] jarek has joined the channel [14:20] jarek has joined the channel [14:21] fairwinds: don't know really. I will be evaluating also as I am same place with my code with reuse [14:21] fairwinds: jwl: browser, server, mobile - am trying to use same commonjs libs [14:22] fairwinds: and approach to code so even if the frameworks are somewhat different, approach the same and reuse as much as possible [14:23] fairwinds: jwl: trying also to standardize on templates since this is a big part of this [14:24] fairwinds: too many templating systems out there really [14:24] fairwinds: interested to focus on doing things once with portability [14:25] arianrock: what do you people mean when you talk about templates? I guess not something similar to C++ templates and java generics? [14:25] bmorriso has joined the channel [14:26] jwl: fairwinds: what templates are you referring to on frontend? [14:26] jwl: aren't templates only for backend [14:26] fairwinds: arianrock: a templating system for generating html, or other form of output using vars and a template [14:26] fairwinds: jwl: not so [14:27] fairwinds: certainly back and front these days [14:27] jwl: hum okay [14:27] jwl: never done that =) [14:27] jwl: i only send json back and forth [14:27] jwl: fairwinds: im using YUI .. it works on both ends .. really cool without modification [14:27] fairwinds: thats what jquery templates are all about really [14:28] jwl: their whole yui3 suit .. also the tests, ajax etc [14:28] fairwinds: jwl: yui3 is nice [14:28] jwl: and now im looking at how do do moduling [14:28] fairwinds: and I like the loading much better than jquery [14:28] jwl: yeah .. yui is a framework [14:29] mc_greeny1 has joined the channel [14:29] mc_greeny has joined the channel [14:29] fairwinds: but wish they would use jquery selectors etc, then we would have something kickass to work with [14:29] jwl: with cookie, profiling, console, class system, tests, documentation, yeti (running tests in all browsers) [14:29] jwl: yeah [14:30] jwl: because im so focused on using one code on both ends .. i dont want to think "this is a backend code" [14:30] jwl: for my libs that is [14:31] Bwen: they arent the same really. [14:31] fairwinds: just too much competition I guess for folks to work together on something great instead of two good frameworks [14:31] Bwen: a clean approach would be transport objects/structures [14:31] jwl: some code is specific cause it has to start a http server .. but i have a lot of library codes i want to share .. i dont even use node.js events anylonger for my libs .. i use yui event system [14:31] Bwen: which ARE compatible [14:31] jwl: so the code is always the same .. ALWAYS =) [14:31] fairwinds: Bwen: right. this is approach with backbone.js really [14:31] thinkdevcode has joined the channel [14:32] jwl: but without competition there wouldn't be better products [14:33] TheJH has joined the channel [14:33] fairwinds: Bwen: big part of this is model code [14:33] unomi: it depends on how the framework of competition is structured [14:33] Bwen: fairwinds: define model [14:34] unomi: fx, in 1500s Italy, competition actually stifled progress [14:34] jwl: its the digital area now =) [14:34] unomi: because mathematicians would keep their new discoveries secret, in order to use them in challenges [14:34] Bogh has joined the channel [14:34] jwl: why we have OS [14:34] unomi: doesn't matter, the principle of structural violence remains [14:35] jwl: no its another atmosphere [14:35] jwl: when it comes to OS [14:35] jwl: github [14:35] unomi: that is horribly naive [14:35] jwl: we see a good trend/pattern [14:35] jwl: and we follow it [14:36] unomi: even companies with OS components - they only OS the tip of the iceberg, unless it is under say AGPL [14:36] fairwinds: Bwen: I consider a model an object that knows about the structure of your data so that it can present it in different ways and manages the interaction with the db [14:36] unomi: see fx the nowjs email [14:36] jwl: maybe synergy is better [14:37] unomi: they have an OS version which is gimped, and another closed sourced one which builds in all kinds of sexy stuff [14:37] Bwen: fairwinds: i'm sorry but I believe that "interaction with the db" as no business in the front it. it should be abstracted as a transport object, for scalability sake and efficiency [14:38] bmorriso has left the channel [14:38] jwl: yeah i wonder [14:38] jwl: synergy or competition [14:38] jwl: what is ideal [14:39] jwl: because you cant have a synergy between everyone [14:39] jwl: maybe so many [14:39] jwl: then there is another team [14:39] jwl: and another .. so its ending up in competition .. the better team wins [14:40] unomi: having a 'better product' is only a small part of the whole 'winning' thing [14:41] excellentdrums has joined the channel [14:41] unomi: at the end of the day, if you aren't busy making children you have missed the whole point of the short time you have available between being born and your inevitable death [14:41] unomi: everything else is just you being harnessed by your betters. [14:42] jwl: i thought we were talking about products=) [14:42] jwl: you seem to be talking about life :) [14:42] unomi: got distracted it seems [14:43] flippyhead has joined the channel [14:43] unomi: I definitely think that OS results in better products, people are able to leverage crowdsourcing in environments like github [14:44] saschagehlich: eehm I've got a github question [14:44] unomi: they end up with a well tested piece of code that has seen input from a myriad of users. They do expose themselves to being copied, but 'parity is not compelling' [14:45] saschagehlich: I've forked a project and did some stuff in the master branch. Now I want to get the master branch from the original repository to do some changes to the latest code... how can I do this? [14:45] unomi: that is, you need to offer a 'better' product, or at least a product that 'seems' better in order to win clients from a competitor [14:45] TheJH: saschagehlich: "checkout origin/master"? [14:45] jwl: yeah [14:45] Bwen: he wants to sync his branche with trunk [14:46] Bwen: not a new checkout [14:46] fairwinds: Bwen: with my interpretation there - more accurately so the data can be presented in different ways - with views.This is what I was referring to http://andyet.net/blog/2011/feb/15/re-using-backbonejs-models-on-the-server-with-node/ [14:46] jwl: but don't you think some people drive to the digital system more than to humans [14:46] devdazed has joined the channel [14:46] saschagehlich: exactly [14:46] unomi: not quite sure what you mean jwl [14:46] g4 has joined the channel [14:47] edude03 has joined the channel [14:48] Bwen: fairwinds: well looks like quite a read. An interresting one :) [14:50] kkaefer: fairwinds: check out https://github.com/developmentseed/bones too [14:51] JimBastard has joined the channel [14:52] saschagehlich: TheJH: so how can I sync my branch with the latest trunk? like removing all the stuff I did on my fork and "reforking" the original repo? [14:53] TheJH: saschagehlich: also your branch on github (afaik not possible) ? or just locally? [14:53] saschagehlich: my branch on github [14:53] saschagehlich: so do I just have to delete my github branch and fork it again?! o_O [14:54] TheJH: saschagehlich: seems so, but I'm not an expert [14:54] Bwen: saschagehlich: I dont know git, but in svn and cvs you can syn your branch with the trunk to get the latest changes. I cant believe git doesnt support this [14:54] jacter has left the channel [14:55] kkaefer: saschagehlich: no [14:55] kkaefer: saschagehlich: add the original repository as a remote [14:55] kkaefer: fetch the master branch from that remote [14:55] saschagehlich: and merge with the upstream branch [14:55] saschagehlich: but I get merge conflicts there [14:55] kkaefer: delete your master branch and checkout the upstream master branch [14:55] saschagehlich: ah, how do I do that? [14:55] kkaefer: then force push into your github remote [14:56] kkaefer: git branch -d master [14:56] Bwen: saschagehlich: with a lil googling http://stackoverflow.com/questions/4814762/git-svn-branch-how-to-keep-branch-in-sync-with-trunk [14:56] kkaefer: then git co upstream master [14:57] kkaefer: git push --force origin master [14:57] saschagehlich: to which branch should I switch to delete the master branch? [14:57] saschagehlich: it won't let me delete it since I'm currently on it [14:58] kkaefer: just create any other branch [14:58] [AD]Turbo has joined the channel [14:58] saschagehlich: okay [14:58] kkaefer: git co -b temp [14:58] kkaefer: checkout [14:59] no-gooder has joined the channel [15:00] saschagehlich: error: src refspec master does not match any. (on git push --force origin master) [15:00] saschagehlich: ah [15:00] saschagehlich: now it works. great, thanks :) [15:03] TurboAWAY has joined the channel [15:04] newy_ has joined the channel [15:04] fljitovak has joined the channel [15:07] synkro has joined the channel [15:08] mynyml has joined the channel [15:08] abraham has joined the channel [15:09] TheFuzzball has joined the channel [15:10] ezl has joined the channel [15:10] ph^ has joined the channel [15:12] _rain has joined the channel [15:12] steph021 has joined the channel [15:15] demet8 has joined the channel [15:18] Schmallon has joined the channel [15:19] c4milo1 has joined the channel [15:19] jed__ has joined the channel [15:19] rfay has joined the channel [15:20] mike5w3c has joined the channel [15:21] eventi has joined the channel [15:22] Remoun has joined the channel [15:24] jed__ has left the channel [15:25] Swimming_bird has joined the channel [15:25] crodas has joined the channel [15:26] wilmoore has joined the channel [15:26] brianloveswords has joined the channel [15:27] fairwinds: kkaefer: cool. will take a look [15:29] Me1000 has joined the channel [15:31] fairwinds: kkaefer: see they are using JSV for validation as well. I use this in my models also [15:32] edude03 has joined the channel [15:32] liar has joined the channel [15:35] jarek has joined the channel [15:35] jarek has joined the channel [15:35] a2800276 has joined the channel [15:39] Spion_ has joined the channel [15:39] Spion_ has joined the channel [15:41] pibi has joined the channel [15:42] pibi: hi [15:42] bradleymeck has joined the channel [15:43] sub_pop has joined the channel [15:45] pibi: any italians noder here? [15:45] pt_tr has joined the channel [15:46] markstory has joined the channel [15:48] btipling has joined the channel [15:49] newy_ has joined the channel [15:50] Hans_ has joined the channel [15:52] wilmoore has joined the channel [15:55] pibi: ACTION Searchin' an active node.js room [15:56] Bwen: this is one :) [15:57] pibi: it's very quiet [15:58] lukegalea has joined the channel [15:58] Bwen: its because there is no questions :P [15:59] JimBastard: and also because im distracted lol [15:59] JimBastard: :-D [15:59] Hans_: well i've got a question [16:00] Hans_: if i want to help develop node.js [16:00] Hans_: do i need to "make install" every single time i want to test? [16:00] pibi: ok, i know, i'm just searching inspiration before getting into code [16:00] tbranyen: JimBastard: how'd the Node.js training go? I noticed Ben Nadel was in it [16:00] sreeix has joined the channel [16:01] awenkhh has joined the channel [16:01] tbranyen: Hans_: make should be sufficient and then you just target the built binary in the build/default folder [16:01] Hans_: ok thanks [16:05] pibi: something to try for the Italian Conference [16:06] pibi: http://nodejsconf.it/ [16:07] pibi: I'm really lazy [16:14] hebz0rl has joined the channel [16:14] ejardim has joined the channel [16:14] jeff_horton has joined the channel [16:15] balupton has joined the channel [16:19] Hans_: trying to fix this issue: https://github.com/joyent/node/issues/892 does anyone has more info on that one? [16:19] tykelewis has joined the channel [16:19] Hans_: *have [16:20] Aria has joined the channel [16:20] sunblush has joined the channel [16:24] Jarppa has joined the channel [16:25] dve_ has joined the channel [16:26] postwait has joined the channel [16:34] losing has joined the channel [16:34] tykelewis has joined the channel [16:37] devdazed has joined the channel [16:40] eb4890 has joined the channel [16:40] dhasenan has joined the channel [16:40] herbySk has joined the channel [16:44] Sbioko has joined the channel [16:44] openpercept has joined the channel [16:45] kmwallio has joined the channel [16:49] malkomalko has joined the channel [16:53] jtsnow has joined the channel [16:54] indexzero has joined the channel [16:55] cbiscardi has joined the channel [16:57] NiTr0 has joined the channel [16:57] tsesame has joined the channel [16:59] JimBastard has joined the channel [16:59] jfalvarez has joined the channel [17:03] cwang has joined the channel [17:05] harth has joined the channel [17:07] pibi has left the channel [17:10] newy has joined the channel [17:10] shiawuen has joined the channel [17:10] Viriix has joined the channel [17:10] shiawuen has joined the channel [17:13] sivy has joined the channel [17:14] jashkenas_work has joined the channel [17:16] constantx has joined the channel [17:18] jdp has joined the channel [17:18] flippyhead has joined the channel [17:21] focusaurus has joined the channel [17:22] sourcode has joined the channel [17:22] focusaurus: jashkenas_work: yt? Thought we could discuss how you'd like that coffe-script bug fixed more quickly on IRC.... [17:23] jashkenas_work: just fixed it. take a peek at the difff. [17:24] jashkenas_work: ... and #coffeescript is the right room for that sort of thing. [17:24] focusaurus: ah, OK [17:25] isaacs has joined the channel [17:28] devdazed has joined the channel [17:29] sh1mmer has joined the channel [17:29] stephank has joined the channel [17:30] jacter has joined the channel [17:34] mickaelz has joined the channel [17:35] jakehow has joined the channel [17:36] sechrist has joined the channel [17:36] dansays has joined the channel [17:37] jiggliemon has joined the channel [17:38] __tosh has joined the channel [17:40] sechrist has joined the channel [17:40] m64253 has joined the channel [17:40] tykelewis has joined the channel [17:41] boaz has joined the channel [17:42] jiggliemon has left the channel [17:42] jdp has joined the channel [17:44] jdp has joined the channel [17:44] jashkenas_work: isaacs: around? [17:44] isaacs: about to head out. what's up? [17:44] csanz has joined the channel [17:44] aho has joined the channel [17:45] marlun: If I'm using Express is there a way to see the incomming requests? For some reason an ajax request gets cancelled and I just want to see what happends when node gets it. The request handler that is supposed to run is not executed. [17:45] jashkenas_work: isaacs: I just wanted to ask about the -g flag for npm 1.0 [17:45] jashkenas_work: It's causing all sorts of compatibility issues for folks stuck in between at this point. [17:45] jashkenas_work: People on pre-1.0 *can't* use -g, or it'll fail, and folks on 1.0-pre *must* use -g. [17:46] Bwen: you cant listen en more than one port for 1 server? I cant do server.listen(1337); server.listen(1338); ? [17:46] isaacs: jashkenas_work: no one "must" use -g [17:46] jashkenas_work: What's the rationale for changing the installation pattern? I thought you had it all figured out with sudo etc. [17:46] Billbad has joined the channel [17:46] isaacs: jashkenas_work: -g is for installing cli apps. [17:46] isaacs: jashkenas_work: the sudo stuff is actually better in 1.0 [17:46] isaacs: jashkenas_work: installing locally is for stuff you require() [17:46] jashkenas_work: When would you not want -g for a module with stuff in /bin? [17:47] isaacs: aaronblohowiak: http://admin.npmjs.org/reset [17:47] isaacs: jashkenas_work: you want -g when you are installing cli apps. [17:47] Guest23171 has joined the channel [17:47] jashkenas_work: so ... can't any script with "bin" stuff specified in package.json assume -g ? [17:49] isaacs: jashkenas_work: so, if you have { "scripts" : { "install" : "cake build" }, "dependencies" : { "coffee-script" : "*" }} then that'll work [17:49] isaacs: even if coffee-script is not installed globally [17:49] isaacs: because the bin will be in ./node_modules/.bin/ and that's the first thing in the PATH when npm runs its scripts [17:49] jashkenas_work: huh. [17:49] jashkenas_work: alright -- thanks for bearing with me. [17:50] jashkenas_work has left the channel [17:50] isaacs: Bwen: yes, you can have a server listen on multiple ports [17:50] Bwen: isaacs: doc? [17:51] isaacs: Bwen: try it, i remember that working [17:51] isaacs: Bwen: if it doesn't, then it is either abug in the code or in the docs [17:51] Bwen: I took the http example on the main site and added a server.listen(1338); and says address is already in use... [17:51] isaacs: ok, heading out. have fun, noders :) [17:53] csanz has joined the channel [17:53] onre_ has joined the channel [17:54] Bwen: sorry, actual says "Server already opened" [17:54] tylerstalder has joined the channel [17:54] F1LT3R has joined the channel [17:55] marlun: What is the recommended way of removing old versions of packages installed with npm? [17:58] TheJH: Bwen: which OS are you using? [17:59] Bwen: Kubuntu natty [18:00] Bwen: node --version: v0.5.0-pre [18:00] TheJH: Bwen: do "netstat --tcp -n -p" and look which program already uses the port [18:00] Bwen: hmm I cant remember how I got that [18:00] arunagw has joined the channel [18:00] marlun: I just used "npm rm" [18:01] kmiyashiro has joined the channel [18:01] rpj8 has joined the channel [18:02] Bwen: TheJH: the error is actualy "Server already opened" and not "address is already in use". In netstat the ports are not there [18:02] sourcode has joined the channel [18:02] cgfarmer has joined the channel [18:03] TheJH: Bwen: could you show us your code? [18:03] rpj8: hey guys. why when i do var server = http.createServer(...).listen(8000); io.listen(server); my code pukes, but when I unchain the listen(8000) and just list it separately, everything goes smoothly? [18:03] Bwen: ofcourse 2 sec [18:03] onre_ has joined the channel [18:04] Bwen: TheJH: here http://pastie.org/1826082 [18:05] TheJH: Bwen: you need a new instance of the server for every port [18:05] void_ has joined the channel [18:05] Bwen: then 1 server cant listen on many ports, my original question... ? [18:05] Bwen: ok one server instance cant... [18:05] void_ has left the channel [18:05] codeisforevea: node noob here .. installed node and ran it fine last night. go to run it again in the terminal and im getting command not found error. do I need to do something restart it? [18:06] Ehm| has joined the channel [18:06] insin has joined the channel [18:06] kmiyashiro: nope [18:06] kmiyashiro: it's just a bin like any other program [18:06] kmiyashiro: I mean an executable [18:06] codeisforevea: thats what i figured [18:07] codeisforevea: not sure wth happened [18:07] kmiyashiro: os x? [18:07] codeisforevea: ya [18:07] kmiyashiro: ports? [18:07] codeisforevea: did i install with ports? [18:07] kmiyashiro: yeah [18:07] codeisforevea: nah built the source [18:08] kmiyashiro: oh [18:08] hackband has joined the channel [18:08] kmiyashiro: can't help you there then... check the dir wherever you put it I guess [18:08] codeisforevea: yea thats what im doing now [18:08] codeisforevea: may not have gotten copied over after the build properly [18:08] codeisforevea: thx [18:09] kmiyashiro: np [18:09] boogyman has joined the channel [18:13] jarek has joined the channel [18:13] jarek has joined the channel [18:16] F1LT3R has joined the channel [18:17] brownies has joined the channel [18:18] onre_ has joined the channel [18:18] langworthy has joined the channel [18:20] georgiadad has joined the channel [18:20] jashkenas_work has joined the channel [18:20] jashkenas_work has left the channel [18:21] indutny has joined the channel [18:23] georgiadad has left the channel [18:25] hellp has joined the channel [18:26] jarek_ has joined the channel [18:28] M2Ys4U has joined the channel [18:31] tylerstalder has joined the channel [18:33] mscdex: rpj8: because .listen() doesn't return the server instance [18:34] fljitovak has joined the channel [18:34] mscdex: Bwen: yeah, you have to have a new server for each port, but you can at least share the connection callback to keep it DRY [18:35] zilch has joined the channel [18:36] Bwen: mscdex: yeah its all a bit new to me, not 100% sure how I will manage that in an friendly and efficient way yet. but thats the fun part :D [18:36] mscdex: Bwen: just have an array of servers that all share the same event handlers [18:37] Bwen: mscdex: i'm trying to do vhosts :P [18:37] kia2011 has joined the channel [18:37] gazumps has joined the channel [18:38] jacobolus has joined the channel [18:38] Guest89491 has joined the channel [18:38] matjas has joined the channel [18:41] Bwen: mscdex: I guess I could have a main call back for em all... and do very little process in it and just redirect to proper vhost.. hmm [18:41] zilch: when we fire 'top' command what is the process id more any node server running ? [18:42] mscdex: huh? [18:43] Guest89491: ship it! [18:43] fangel has joined the channel [18:43] mscdex: devo - ship it [18:43] Guest89491: I've seen a lot of "senior" developers whose main experience was not shipping things (and finding excuses for not shipping them) [18:43] zilch: when we fire 'top' command what is the process name for any node server running ? ... sorry for misphrasing ! [18:44] zivester has joined the channel [18:45] dgathright has joined the channel [18:46] zivester: im using express, and im defaulting to the ejs view, with app.set('view engine','ejs'); .... how can I get res.render('index') to use 'html' as the extension instead of 'ejs' ? [18:47] Bwen: whats express? [18:47] sstephenson: zilch: you can set it to whatever you want. process.title = 'foo' [18:47] zivester: express the framework [18:48] Bwen: oh dont know it, sorry [18:48] Gruni has joined the channel [18:48] mscdex: zilch: there is no fullproof method, since any node process can change what is displayed by changing process.title [18:49] mscdex: s/fullproof/foolproof/ [18:49] mscdex: i missed my coffee intake this morning [18:49] mscdex: :( [18:50] fangel has joined the channel [18:51] M2Ys4U has joined the channel [18:52] wilmoore has joined the channel [18:53] rpj8: mscdex: ah, ok, that makes sense. thanks [18:53] stagas: niall: make coffee [18:54] niall: stagas: makes things faster. [18:57] mscdex: sudo make coffee [18:57] dansays has joined the channel [18:57] stagas: niall: make mscdex coffee [18:57] niall: see that make our webstack behind a frontend [18:58] systemfault: mscdex: I wish it would work just like that :'( [18:59] V1 has joined the channel [19:00] mike5w3c has joined the channel [19:00] rsms has joined the channel [19:01] dansays has joined the channel [19:02] tylerstalder has joined the channel [19:03] dguttman has joined the channel [19:04] Guest89491: debug it! [19:04] guybrush: did anyone else run into this compiling-error? https://gist.github.com/938885 (debian, node-v0.4.7) [19:05] Slashbunny has joined the channel [19:05] sveimac has joined the channel [19:08] bradleymeck has joined the channel [19:08] mscdex: guybrush: what version of openssl do you have installed? [19:09] skm has joined the channel [19:10] guybrush: OpenSSL 0.9.8g 19 Oct 2007 (Library: OpenSSL 0.9.8o 01 Jun 2010) [19:11] Guest89491: Release it! [19:11] Bwen: Guest89491: what? [19:11] guybrush: do i need openssl >=1.0? [19:12] mscdex: guybrush: no, you shouldn't need to. it looks like it's specific to debian though [19:12] dguttman has joined the channel [19:13] DennisRasmussen has joined the channel [19:14] Guest89491: node js 0.6 [19:14] Aria has joined the channel [19:15] Guest89491: If you�fre a developer and don�ft want to be on call at 3AM for the rest of your life [19:17] dnolen has joined the channel [19:17] robhawkes has joined the channel [19:18] sveimac has joined the channel [19:18] zilch: sstephenson, mscdex , thanks :) [19:18] djcoin has joined the channel [19:19] zivester: anyone here use 'ejs' templating ? if so, how can I include templates from within a template ? [19:20] mscdex: guybrush: what version of debian are you on btw? i'm working on a patch [19:21] patcito has joined the channel [19:23] sveimac has joined the channel [19:23] guybrush: squeeze [19:23] sveimac has joined the channel [19:23] stagas: zivester: if you're using express you can use partial('view') [19:23] guybrush: found some related issues https://github.com/joyent/node/issues/676 and https://github.com/joyent/node/issues/880 [19:24] Bwen: i'm trying to catch an error thrown by .listen() but just doesn't catch it ... [19:25] mscdex: oh, heh well there you go, someone already has a patch [19:25] mscdex: :) [19:26] marcello3d has joined the channel [19:26] Bwen: dont worry mscdex, well find something for you to do [19:26] zivester: stagas: is there a way so i dont have to do it in nodejs? I'd rather have node just decide which file to render, and that file to process all other template files it may want [19:26] marcello3d: is it possible to somehow catch a dropped callback? [19:27] marcello3d: specifically, to detect that a request will never be answered [19:27] guybrush: mscdex: :) [19:27] TheJH: marcello3d: using eventemitters? [19:28] marcello3d: TheJH: doesn't matter how, I'm just thinking about express.js [19:28] stagas: zivester: dunno of an easy way [19:28] marcello3d: where I have a bug in some path in my code that never responds/closes a request [19:28] marcello3d: so the connection just sits there [19:29] Yuffster has joined the channel [19:29] TheJH: marcello3d: have you found out which request triggers it? [19:30] marcello3d: this is hypothetical. :-) [19:30] marcello3d: I can manually solve it on a case-by-case basis [19:30] aaronblohowiak: chapel: morning! [19:30] marcello3d: I guess it's impossible [19:30] marcello3d: because you could have a request that can't be answered without another request coming in [19:31] aaronblohowiak: has anyone here used UglifyJS to do AST manipulation ? [19:32] dansays has joined the channel [19:32] sveimac has joined the channel [19:32] Swimming_bird has joined the channel [19:32] marcello3d: aaronblohowiak: only compression [19:32] cgfarmer has joined the channel [19:33] aaronblohowiak: hmmm, i am thinking about implementing a simple macro system so i can easily remove log statements [19:33] sveimac has joined the channel [19:33] djcoin: I have a very simple question, but I dare to ask it here ! Whats the difference between running a TCP server in node.js and using socket.io ? Both provide kind of raw tcp socket hm no ? (I guess socket.io is networking over http maybe) [19:34] mscdex: djcoin: tcp is raw tcp, socket.io uses http and websockets [19:34] aaronblohowiak: djcoin: socket.io is more like zeromq over http [19:34] djcoin: ok [19:35] djcoin: So there is indeed some http stuff in socket.io, i barely read the doc, im sorry, too much new stuff with node :) [19:35] marcello3d: socket.io is a higher layer than the tcp stuff in node.js [19:35] djcoin: thanks [19:35] stagas: djcoin: socket.io abstracts the communication transports for ajax stuff so that it works on every browser [19:35] marcello3d: you'd probably use both in conjunction [19:35] marcello3d: socket.io is specifically for push/pull ajax communication with javascript on the client [19:35] cadorn has joined the channel [19:36] Bwen: aaronblohowiak: socket.io is like zeromq? O.o [19:36] aaronblohowiak: Bwen: it is a message-based networking primitive. [19:36] bradleymeck has joined the channel [19:37] aaronblohowiak: Bwen: it has a message framing layer built in, unlike tcp [19:38] Bwen: are you saying I have to use socket.io within node.js? [19:38] aaronblohowiak: Bwen: what do you mean? [19:38] djcoin: It s build over http, thus over, tcp, and may contains info for the client/server component of socket.io to handle the "transport" it finally choses among those who were enable in the browser, I guess [19:39] sveimac has joined the channel [19:39] jat850 has joined the channel [19:39] marcello3d: socket.io has two parts, a client/browser library and a server library (the main one is node.js, but there are others in other languages) [19:39] Bwen: I saw socket.io purely as an abstraction for using websockets or alternatives... I think its purely client... sorta speak [19:39] djcoin: err, not always over http [19:39] aaronblohowiak: Bwen: it runs on both client and server. [19:40] aaronblohowiak: djcoin: yup, exactly [19:40] jat850: does anyone here have a few minutes and some experience with using backbone server-side on node? [19:42] djcoin: aaronblohowiak: thanks for your answer, I got one other if I don t bother too much. I saw the basic chat demo of nodejs, it does not uses any socket.io stuff. Yet, there are sockets of course that are maintened using keep-alive header. Where would you use socket.io rather than the keep-alive stuff ? [19:43] sveimac_ has joined the channel [19:43] steph021 has joined the channel [19:43] aaronblohowiak: djcoin: socket.io can use websockets, long-polling, forever frame, flash sockets and more, picking the least-latency transport available for you automatically [19:44] djcoin: Yep, it s obvious indeed :) [19:44] djcoin: All right, thanks a lot, I will try to begin hacking some stuff :) [19:45] djcoin: Like a normal saturday night [19:45] djcoin: oO [19:47] sveimac has joined the channel [19:49] malkomalko has joined the channel [19:51] trotter has joined the channel [19:52] csanz has joined the channel [19:52] fairwinds: what do folks like better - npm bundle or ndistro? [19:52] shaunau has joined the channel [19:53] perezd has joined the channel [19:55] pleax has joined the channel [20:01] mnutt has joined the channel [20:01] tylerstalder has joined the channel [20:02] dyer has joined the channel [20:03] sveimac has joined the channel [20:03] jakehow has joined the channel [20:06] tomaw_ has joined the channel [20:09] varioust has joined the channel [20:10] Bwen: anyone could tell me why its not catching the error: http://pastie.org/1826354 [20:12] eb4890 has joined the channel [20:15] cgfarmer has joined the channel [20:16] Bwen: simplified it http://pastie.org/1826372 :P [20:16] asperry has joined the channel [20:21] focusaurus has left the channel [20:21] Bwen: I took off the closure http://pastie.org/1826386 and still it doesn't want to catch it... I cant do a try/catch in a loop or something? whats going on? O.o [20:22] Bwen: if I take off the duplicate port 1333 everything works fine... cuz nothing is thrown obviously... [20:22] malkomalko has joined the channel [20:23] marcello3d: Bwen: listen is failing asynchronously [20:23] marcello3d: you'll want to add a callback onto listen, and check the first argument [20:24] marcello3d: e.g. listen(... , function(error) { ... (failed or listening) ... }) [20:24] marcello3d: notice how the stack trace is coming from EventEmitter._tickCallback [20:24] marcello3d: as opposed to your file/code [20:25] koz_ has joined the channel [20:25] djcoin: Bwen: error is simple, your adresses are already binded [20:25] marcello3d: (and the past tense of throw is threw) [20:25] djcoin: one of them [20:25] djcoin: Error: EADDRINUSE, Address already in use [20:25] djcoin: Check if those ports are not already bound [20:25] marcello3d: djcoin: I don't think thats's what he's asking [20:25] djcoin: Or specify other ports [20:26] djcoin: oh sry [20:26] Bwen: marcello3d: upon listen failure how do I get rid of the server instance ? [20:26] marcello3d: what do you mean "get rid of"? [20:26] marcello3d: it'll be garbage collected if you don't hold onto a pointer [20:26] Bwen: the server that was instanciated a line above [20:26] marcello3d: if it failed, it won't be actually listening [20:26] codefu has joined the channel [20:27] marcello3d: so there's nothing to clean up/close [20:27] marcello3d: btw I lied [20:27] marcello3d: that's not how you check for the error [20:28] Bwen: sounded weird... but being new to javascript... alot does [20:28] Bwen: :P [20:28] marcello3d: I think you want server.on('error', function() { ... }) [20:29] liquidproof has joined the channel [20:29] marcello3d: well, this is specific to node.js, not javascript in general [20:29] ngs has joined the channel [20:30] Bwen: yeah on.('error', function... works :) [20:30] marcello3d: in fact [20:30] marcello3d: that's pretty inconsistent for node.js [20:30] marcello3d: because listen does take a callback [20:31] marcello3d: usually the callbacks in asynchronous methods pass in an error as the first argument, and the value (if applicable) in the second argument [20:31] marcello3d: like here: http://nodejs.org/docs/v0.4/api/fs.html#fs.readFile [20:31] sveisvei has joined the channel [20:32] Bwen: good to know :) [20:33] indexzero has joined the channel [20:34] saikat has joined the channel [20:35] marcello3d: but basically what's happening is the socket listen action isn't happening when you call listen() [20:35] marcello3d: it happens at some point in time later, after your try/catch block has been exited [20:35] Remoun has joined the channel [20:35] olauzon has joined the channel [20:35] hij1nx has joined the channel [20:35] jacksonmills has joined the channel [20:36] marcello3d: because basically you have to wait for the network driver to bring up a port, and you wouldn't want the rest of your code to wait on that [20:36] Bwen: right, I keep forgetting the eventful concept. It'll sink in eventually :) [20:36] marcello3d: yup [20:37] brez__ has joined the channel [20:39] mnutt has joined the channel [20:41] fdenbow has joined the channel [20:42] pyrony has joined the channel [20:45] codeisforevea has joined the channel [20:45] strmpnk has joined the channel [20:48] zzak has joined the channel [20:48] zzak has joined the channel [20:49] gtramont1na has joined the channel [20:50] doubletap has joined the channel [20:52] binaryjohn has joined the channel [20:53] djcoin: Ah, I had almost forget, I need to fix something but I dont know how. [20:53] gtramont1na: Hey all, does any1 know if Expresso has XUnit reporter? I mean, something like --xunit and it prints out an xunit format result [20:54] djcoin: When installing npm, it installed itself in my HOME directory : i mean it created lib/ and share/ dir [20:54] djcoin: how to change that ? [20:55] jacksonmills: --with-basedir=/install/npm/here, [20:56] djcoin: jacksonmills: thanks a lot [20:56] jacksonmills: djcoin: anytime! [20:56] dyer_ has joined the channel [20:56] djcoin: :) [20:56] coltrane has joined the channel [20:58] themiddleman has joined the channel [20:59] doubletap has left the channel [21:00] dyer__ has joined the channel [21:01] dyer has joined the channel [21:01] dyer has joined the channel [21:01] doubletap has joined the channel [21:01] doubletap has left the channel [21:02] marcello3d: does node.js have a good way of inserting a filter in a http response stream? [21:02] sveimac has joined the channel [21:02] marcello3d: I'm currently basically swapping out the writehead, write, and end methods, but it feels a bit unclean [21:02] Slashbunny has joined the channel [21:03] dyer___ has joined the channel [21:05] fr0stbyte has joined the channel [21:06] hackband has joined the channel [21:06] fr0stbyte: is there anything like browserify that instead of importing requires on startup, can just route them dynamically? [21:07] fr0stbyte: or filesystem calls too [21:07] SubStack: why would you want to do that? [21:08] pquerna: it is possible to hook into require() if i understand your question correctly [21:08] gtramont1na: Does Node has Base64 en/decoder built in? [21:09] boghog: gtramont1na, yeah it does afaik [21:09] pcardune has joined the channel [21:09] zzak: yes [21:09] pquerna: gtramont1na: http://nodejs.org/docs/v0.4.7/api/buffers.html#buffers [21:09] fr0stbyte: pquerna: browserify just sends it's own version of require. it could be used to send a request to a service that just routes require/filesystem calls [21:10] pquerna: gtramont1na: you can use buffer encoding to do it [21:10] fr0stbyte: SubStack: wouldn't it be less overhead and a lot easier on development? [21:10] gtramont1na: pquerna: ;-) Thanks a lot! Will take a look. [21:10] fr0stbyte: i wouldn't leave it open in production.. unless I were using some sort of browser wrapper as an app [21:11] fr0stbyte: and using node locally [21:12] SubStack: fr0stbyte: but if you want synchronous node-style requires you'd have to block the whole page [21:12] marcello3d: anyone have this problem? [21:12] marcello3d: Content-Type:text/html; charset=utf-8; charset=utf-8 [21:12] marcello3d: using express.js [21:12] fr0stbyte: SubStack: true. perhaps a callback for the browser require? [21:12] SubStack: fr0stbyte: there are plenty of modules that take the synchronous xhr route [21:13] aaronblohowiak: synchronous module loading for the browser is a bad idea!! [21:13] SubStack: fr0stbyte: there are also modules that take the callback approach [21:13] SubStack: I hate both of those styles [21:13] aaronblohowiak: compile your scripts! [21:13] pifantastic has joined the channel [21:13] marcello3d: