[00:00] EyePulp: ah [00:00] EyePulp: danke [00:01] tanepiper: http://highscalability.com/blog/2011/2/22/is-nodejs-becoming-a-part-of-the-stack-simplegeo-says-yes.html [00:01] tanepiper: \o/ nodejs wins [00:02] n00dles has left the channel [00:03] SubStack: javascript man, javascript man, does all the things that javascript can [00:06] beta_ has joined the channel [00:06] NuckingFuts: SubStack: typeof javascriptMan [00:07] SubStack: 'object' [00:07] ChrisPartridge: 'elite-object' [00:07] NuckingFuts: utils.inspect( javaScriptMan ); [00:07] cognominal has joined the channel [00:07] NuckingFuts: If the answer is anything but 'undefined', you are fail. [00:09] gagaforgaga has left the channel [00:10] sivy has joined the channel [00:11] [[zz]] has joined the channel [00:11] NickP has joined the channel [00:12] springmeyer_ has joined the channel [00:13] tanepiper: NaN [00:13] themiddleman_itv has joined the channel [00:13] tanepiper: I am NaN, I am a FREE MAN! [00:13] tanepiper: *cue cheesy 70's music* [00:14] NuckingFuts: tanepiper: No, you are my slave. [00:14] NuckingFuts: Get in the van. [00:14] tanepiper: infact, really should be I !== NaN, I === FREE MAN [00:15] SubStack: triangle man hates javascript man [00:15] NuckingFuts: SubStack: They had a fight, JavaScript wins. [00:16] tanepiper: day man, fighther of the night man - champion of the sun [00:16] SubStack: damn straight [00:16] SubStack: triangle man had it coming [00:16] NuckingFuts: SubStack: Particleman might win tho :P [00:16] NuckingFuts: It's a close fight :D [00:16] SubStack: anyways! [00:16] NuckingFuts: lol [00:16] malkomal_: hmm cluster restart doesn't seem to restart my node processes [00:16] SubStack: I am fixing dnode now so people quit bugging me [00:17] tanepiper: :D [00:18] SubStack: all the tricky bits are factored out into dnode-protocol and that part passes all its tests now [00:21] Evet: nginx proxy_pass doesn't support http 1.1 [00:21] possibilities has joined the channel [00:23] mauritslamers: anyone around with C++ experience (a bit?) [00:23] yhahn has left the channel [00:24] mauritslamers: trying to get a callback to work from a C++ lib to JS, but I don't get what goes wrong exactly [00:24] eyesUnclouded has joined the channel [00:25] postwait has joined the channel [00:28] arnorhs has joined the channel [00:30] hornairs has joined the channel [00:31] aphelion has joined the channel [00:31] hornairs has joined the channel [00:35] jacksonmills has joined the channel [00:36] nonnikcam has joined the channel [00:37] andrewfff has joined the channel [00:38] Tprice has joined the channel [00:40] pauls has joined the channel [00:42] stagas_ has joined the channel [00:42] tim_smart: Is there a node.js library for escaping HTML characters? [00:42] tim_smart: (entities) [00:42] dve has joined the channel [00:43] AAA_awright: tim_smart: someString.replace(/&/g,"&").replace(//g,">") [00:44] dguttman has joined the channel [00:44] insin: http://search.npmjs.org/#/JS-Entities ? [00:45] squeeks: isaacs: might have to ask you a few questions about some serious npm internals another time. [00:45] isaacs: squeeks: ok. [00:45] isaacs: squeeks: you're going to ask another time, or you want to ask now? [00:45] isaacs: ACTION confused [00:49] squeeks: no because you live in a silly timezone and I'm consdering bed. [00:49] squeeks: so, another time. [00:49] daveyjoe_ has joined the channel [00:49] andrewfff has joined the channel [00:50] SubStack: tim_smart: npm install ent [00:50] isaacs: squeeks: oh, ok [00:50] SubStack: I wrote it last week [00:50] isaacs: squeeks: email works well, too [00:50] isaacs: :D [00:50] isaacs: squeeks: sending to npm-@googlegroups.com is best. [00:51] SubStack: tim_smart: it does all the unicode fanciness too [00:54] miccolis has joined the channel [00:58] xastey has joined the channel [00:59] tim_smart: SubStack: Thanks :) [01:03] zentoooo has joined the channel [01:03] void_ has joined the channel [01:05] spetrea-home has joined the channel [01:07] dnolen has joined the channel [01:07] rcol has joined the channel [01:08] dgathright has joined the channel [01:10] jacobolus has joined the channel [01:11] Juan77 has joined the channel [01:12] xandrews has joined the channel [01:13] iszak has joined the channel [01:13] brianmario has joined the channel [01:15] Juan77: hi good night, I try to creat an upstart script, and I would to like to exec -u myuser /lib/to/node /to/my/app.js, the proble I have is that app.js need to read some files that are located in /to/my/config.js, but nodes tries to read config from /lib/to... how I can specify node that the conext path is /to/my instead of /lib/to?? any sugestion? [01:15] codehero has joined the channel [01:16] Juan77: don't doubt that there are some beer in my bits. [01:16] tmpvar has joined the channel [01:18] iszak: Juan77, are you using __dirname? [01:19] jtsnow_ has joined the channel [01:19] ajnasz has joined the channel [01:20] sprout has joined the channel [01:20] Juan77: hi, iszak no, I'm using process.cwd(), you think that i need to change to __dirname? [01:21] iszak: well I would [01:21] bwinton has joined the channel [01:21] Juan77: iszak I will try with __dirname, thx!! [01:21] isaacs: Juan77: yes, iszak is right [01:22] isaacs: Juan77: he just spells his name wrong, but i wouldn't hold that against him ;) [01:22] iszak: if anything mine is right! [01:22] themiddleman_itv has joined the channel [01:22] isaacs: hahah [01:22] Juan77: hehehe, thx both :P [01:22] yitzaks: oi! [01:24] jacksonmills has joined the channel [01:24] dshaw has joined the channel [01:27] colinsullivan has joined the channel [01:27] rburhum has joined the channel [01:27] bubbafat: Using process.cwd to load anything seems dangerous for all but the most trivial programs. [01:32] possibilities has joined the channel [01:37] kiddphunk_ has joined the channel [01:38] andrewfff has joined the channel [01:38] apucacao has joined the channel [01:40] samcday has joined the channel [01:41] iFire has joined the channel [01:42] jeromegn has joined the channel [01:42] hij1nx has joined the channel [01:45] eyesUnclouded has joined the channel [01:46] jeromegn: So I'm wondering if I'm using the right technique here: I created a class/module (TweetMuncher) which takes as argument an array of tweets and a callback. for each tweets it emits an event "munched" (or "error") and then something catches that event and do stuff with the munched data... My question is: should I use an array as the argument or just a single object (a tweet)? is there a safe pattern here I should use here? [01:46] edude03 has joined the channel [01:47] jeromegn: I guess both solutions work... but maybe a single tweet at a time makes more sense? [01:48] danyork has joined the channel [01:48] sprout has joined the channel [01:49] devongovett has joined the channel [01:49] Jourkey has joined the channel [01:49] colinsullivan: Does anyone have any ideas on why I might be getting a segmentation fault when installing npm? http://pastie.org/1596302 [01:49] Jourkey: does anyone know of any mouse sharing libraries? [01:49] colinsullivan: I installed node and npm from github [01:49] isaacs: colinsullivan: strange. [01:49] colinsullivan: then installed node from .tar.gz off website [01:50] colinsullivan: same thing [01:50] isaacs: colinsullivan: my guess would be that the openssl binding you have is not good. [01:50] NovaDesu has joined the channel [01:50] colinsullivan: hmm ok i'll look into that [01:50] malkomal_: is it possible to turn off logging in express/connect for certain types of requests? [01:50] isaacs: colinsullivan: it seems like it's crashing right when it's calculating the sha hash of the tarball. [01:50] devongovett: does anyone have a coupon code for Joyent's http://no.de/ hosting service that they'd want to share? [01:50] isaacs: colinsullivan: also: if you want to install *this code right here*, then use "make dev" (that's changing in just a second or three) [01:51] isaacs: colinsullivan: make install is becoming 'make latest' [01:51] NovaDesu: hey guys I've got a question. I'm fairly new to node.js and I want to update my current version, 2.5, to the newest, how would I do this on ubuntu server? [01:51] robrighter has joined the channel [01:51] colinsullivan: isaacs: fails on same step with ``sudo make install dev`` [01:52] isaacs: colinsullivan: ok [01:52] isaacs: colinsullivan: yeah, def something weird with your openssl lib [01:52] colinsullivan: isaacs: macports openssl package http://trac.macports.org/browser/trunk/dports/devel/openssl/Portfile [01:52] isaacs: colinsullivan: can you do this and gist the output? node cli.js install -ddd [01:53] isaacs: colinsullivan: maybe reinstall openssl and rebuild node? i dunno. [01:53] brapse has joined the channel [01:54] NovaDesu: Could anyone help me with my simple problem? I can't find anything about it on google. [01:54] Aria has joined the channel [01:56] colinsullivan: isaacs: https://gist.github.com/839836 [01:57] davidc_ has joined the channel [01:57] isaacs: colinsullivan: d'oh. do the same thing, but with sudo. [01:57] isaacs: colinsullivan: also, please pull from my git master. [01:58] isaacs: ACTION <3 loglevel=silly [01:58] colinsullivan: isaacs: https://gist.github.com/839836 [01:59] isaacs: hm... ok. [01:59] colinclark has joined the channel [02:00] colinsullivan: isaacs: worked when I pulled [02:00] colinsullivan: heh [02:00] colinsullivan: thanks…for whatever it was that fixed it [02:01] colinsullivan: if you want me to do any git magic to tell you what commit fixed it I can do that [02:01] kriszyp has joined the channel [02:01] isaacs: colinsullivan: :D [02:01] isaacs: colinsullivan: meh. if ti's working i'm satisfied. but i don't think i did anything, really [02:02] isaacs: colinsullivan: unless it's some odd permision thing [02:02] colinsullivan: hmm possibly [02:02] isaacs: colinsullivan: but that should have failed at the file open, not the sha calculation. [02:02] isaacs: colinsullivan: anyway, i added some silly logging around the sha calculation stuff, so maybe if it comes back, it'll be easier to diagnose. [02:03] colinsullivan: isaacs: thanks, i'll let you know [02:03] jesusabdullah: Is there a good way to see whether you're using OSX or Linux from node? [02:03] isaacs: colinsullivan: thanks :) [02:03] jesusabdullah: I'm thinking about hacking on say.js so that it can use Festival [02:03] jesusabdullah: in linux environments [02:04] Yuffster has joined the channel [02:07] twoism has joined the channel [02:07] bentruyman has joined the channel [02:08] technoweenie has joined the channel [02:08] wilmoore has joined the channel [02:08] colinsullivan: isaacs: http://pastie.org/1596354 [02:08] colinsullivan: :-/ [02:08] jeromegn: any good MVC out there using express (or not)? [02:08] Emmanuel_ has joined the channel [02:09] isaacs: colinsullivan: hm. yep. that is definitely some flakiness down in teh c layers [02:09] poincare101 has joined the channel [02:09] colinsullivan: isaacs: I'll re-install the openssl package. You recommend re-installing node and npm after that? [02:09] isaacs: colinsullivan: you could compile node with --without-ssl if that doesn't solve it [02:09] poincare101: holy moly! there's a LOT of people here! [02:09] marcello3d has joined the channel [02:10] eyesUnclouded has joined the channel [02:10] isaacs: colinsullivan: just reinstall node [02:10] isaacs: colinsullivan: npm will use whatever node's installed, and doesn't have any c++ bindings [02:10] Poetro1 has left the channel [02:10] marcello3d: is it possible to access browser cookies from socket.io, or do you have to do it yourself? [02:10] eresair has joined the channel [02:10] colinsullivan: isaacs: yea uninstalling the openssl package is not going to work out so well because there are a million things that depend on it currently working properly. So ./configure —without-ssl ? [02:11] SubStack: marcello3d: yes, but it's hackish [02:11] marcello3d: I see client.request.headers [02:11] isaacs: colinsullivan: yeah, as a last resort [02:11] isaacs: colinsullivan: it limits what npm can do if it doesn't have openssl bindings [02:11] isaacs: colinsullivan: maybe rebuilding/reinstalling openssl might fix it, or (sorry) convert to homebrew? [02:12] marcello3d: SubStack: is that what you do? [02:12] SubStack: marcello3d: socketio.request.headers has the http headers before middleware [02:12] colinsullivan: I'll give it a try [02:12] SubStack: I use this trick to make sessions work on top of dnode [02:12] possibilities has joined the channel [02:13] chrischris has joined the channel [02:13] marcello3d: hmm, wonder if I should look at dnode again [02:13] SubStack: marcello3d: well I would wait a day or two [02:13] SubStack: I'm currently overhauling everything [02:13] marcello3d: ah [02:13] marcello3d: are those headers available in every transport socket.io uses? [02:14] SubStack: the code overhaul should be done tonight but it might take me a little longer to refactor the documentation and examples [02:14] marcello3d: or are they blocked from, say, flash [02:14] SubStack: marcello3d: I'm not sure but it seems to work with websockets and xhr-multipart at least [02:14] siculars has joined the channel [02:15] zachsmith has joined the channel [02:15] siculars has joined the channel [02:15] dspree has joined the channel [02:16] marcello3d: SubStack: what are the major changes? [02:17] dipser has joined the channel [02:17] marcello3d: isaacs: you made npm, right? [02:17] isaacs: marcello3d: yessir [02:17] marcello3d: can you pretty please require webpage and/or source urls for submissions? :) [02:18] langworthy has joined the channel [02:19] zzak: while we're on the topic, it bugs me that all the source url's 404 from search.npmjs.org [02:19] marcello3d: probably known, but http://search.npmjs.org/#/_publish is completely blank for me [02:20] zzak: y u no use gsub?! [02:21] SubStack: marcello3d: all of the protocol logic now lives in dnode-protocol, an entirely separate module [02:21] SubStack: and dnode 0.6.0 will work out of the box with browserify [02:21] marcello3d: oh cool [02:22] marcello3d: browserify scares me a little with its wrapper :) [02:22] SubStack: which part? [02:22] BillyBreen has joined the channel [02:23] dingomanatee has joined the channel [02:23] marcello3d: I dunno, it seems like a lot of code. but I'm probably just paranoid [02:23] SubStack: ACTION just wants to reuse code between client and server [02:23] marcello3d: I agree with its sentiment [02:23] SubStack: Yes. It's not even a lot of bytes if you minify it [02:23] tfe_ has joined the channel [02:24] SubStack: most of the bulk is es5-shim anyhow [02:24] marcello3d: es5-shim? [02:24] SubStack: which you can disable by passing shim : false in the options [02:25] SubStack: I want to get jade to work in browserify soon too [02:25] marcello3d: events.js? [02:25] marcello3d: hmm no [02:25] SubStack: client-side rendering woo [02:25] tfe_ has left the channel [02:25] jesusabdullah: es5-shim defines a bunch of stuff that may not be in some javascript engines, but it compatible with ecmastript 5 [02:25] colinsullivan: isaacs: installing openssl from scratch worked [02:25] colinsullivan: isaacs: thanks [02:26] SubStack: events.js is just EventEmitters [02:26] SubStack: directly copied from the node source [02:26] isaacs: colinsullivan: rad [02:26] marcello3d: yea I saw [02:26] temp01 has joined the channel [02:26] marcello3d: hmmm [02:26] marcello3d: I guess I'd rather share code in the reverse [02:27] marcello3d: ie make browser-style code work as an include in node.js [02:27] SubStack: browser-side require() is so nice for organizing code sanely [02:27] tfe_ has joined the channel [02:27] marcello3d: yea, but I'm going to flatfile the whole thing anyway [02:27] SubStack: native browser-style is painful [02:27] SubStack: marcello3d: but browserify flattens it for you automatically [02:27] jesusabdullah: ^__^ [02:27] marcello3d: so I'd rather var foo = require("foo") just get replaced with the thing [02:28] SubStack: so you can keep the logic split up across files and compile at runtime [02:28] SubStack: >_< [02:28] marcello3d: rather than wrapped up in extra closures and stuff [02:28] insin: it's dead easy to go that way if the browser side code is already written though. I got my forms & DOM/HTML builder libraries working with Node in minutes :) [02:28] dguttman_ has joined the channel [02:28] marcello3d: insin: with eval or require? [02:28] lyetz has joined the channel [02:29] marcello3d: SubStack: I get it, it's a great idea, but I'm picky :D [02:29] SubStack: browserify also lets you use modules from npm so :p [02:29] insin: neither, one was already a single script and the other was already being built into one, just added the exports and mocked out the DOM [02:29] SubStack: I can use seq and traverse browser-side, which is super groovy [02:29] marcello3d: that's cool [02:30] marcello3d: how would you handle the case where you have shared code that's requiring something else, but you need a browser-specific and server-specific version [02:31] marcello3d: e.g. foo.js gets used in node.js and browser [02:31] marcello3d: and foo.js requires canvas.js [02:31] marcello3d: which is implemented in browser natively, but as a native node lib on node.js? [02:31] SubStack: you can just if (typeof window === 'undefined') {} for now [02:32] twoism has joined the channel [02:32] marcello3d: ah [02:32] marcello3d: that works [02:32] SubStack: I'll probably set process.version to 'browser' [02:32] SubStack: since that's a little cleaner to test [02:32] marcello3d: and then just put the server-side require in there [02:32] SubStack: sure [02:33] marcello3d: too bad it doesn't get preprocessed out :) [02:33] nonnikcam has joined the channel [02:33] SubStack: computers are fast now [02:33] SubStack: saving a few dozen nanoseconds and a few dozen bytes doesn't seem worth it [02:33] stagas has joined the channel [02:34] SubStack: anyhow! [02:34] daveyjoe_ has joined the channel [02:34] sprout has joined the channel [02:34] marcello3d: I just noticed your host as ec2 [02:35] marcello3d: D: [02:35] TooTallNate has joined the channel [02:35] SubStack: irssi in screen [02:35] marcello3d: hardcore [02:35] iszak: irssi is crap [02:36] iszak: I'd rather not have to type to change the channel all the time, screen -r, blah, a nice mouse click is nice. [02:36] zzak: type? [02:36] SubStack: eww mice [02:36] zzak: you can save sessions [02:37] SubStack: I only use the mouse for browser stuff [02:37] zzak: alt1-whatever [02:37] iszak: SubStack, but why when you can /so/ easily use the keyboard. [02:37] SubStack: also esc+num in irssi works [02:37] marcello3d: command F tab enter for the win ;D [02:37] SubStack: num or letter for the channels >=10 [02:37] kuhrt has joined the channel [02:38] jspiros has joined the channel [02:38] SubStack: alt+n is already captured by xmonad [02:38] jesusabdullah: I got used to escape for irssi [02:38] jesusabdullah: I forget why [02:38] iszak: the CLI is only good for so many things, doing everything in it isn't practical. [02:38] SubStack: also my caps lock key is mapped to escape so it's super convenient [02:38] zzak: wait, substack, how do you get to > 10? [02:39] arrty has joined the channel [02:39] SubStack: zzak: esc+q, esc+w, ... [02:39] Utkarsh_ has joined the channel [02:39] zzak: oh [02:39] zzak: no wonder, im only up to 11 [02:39] temp02 has joined the channel [02:39] chilts: same here, I use XMonad with screen running on a server (in Rackspace, not Amazon) [02:39] zzak: derp [02:39] SubStack: after 20 I think you have to switch to /win n [02:40] SubStack: but I try to keep <15 windows [02:40] zzak: nice, thanks fer the tip [02:40] SubStack: ACTION has been doing this for a long time [02:40] SubStack: nickserv says 5 years, 30 weeks, 3 days [02:40] marcello3d: I out. [02:41] SubStack: and then I was on another network before freenode for about 1 year [02:41] marcello3d has joined the channel [02:42] zzak: ive had a few nicks over the years [02:42] zzak: started using rizon net back in the day for teh anime [02:43] ChrisPartridge: SubStack: your beating me by a few weeks ;-( [02:43] SubStack: I started in high school [02:43] warz: ive been using irssi on my own irc network since like 2001 =/ [02:43] warz: i just have it in its own screen on the same server as my irc daemon [02:44] SubStack: and I started messing with javascript in middle school [02:44] SubStack: the head start was so useful [02:45] zzak: haha, yeh those were the days [02:45] zzak: css too [02:45] warz: middle school for me consisted of reverse engineering Diablo and SC1 [02:45] warz: and getting banned from battlenet [02:45] warz: fun times [02:45] bentruyman_ has joined the channel [02:46] zzak: you ever try to sell the items you duped? [02:46] jtsnow has joined the channel [02:46] warz: i didnt sell items heh. i was entirely malicious for my own personal gain on those games. lol [02:46] insin: does something special happen if you pass "this" from a REPL into a function from a required module? I'm trying to add something to the global scope - works fine if I modify "this" in the REPL, but passing it to a method in a required module which makes the same change has no effect [02:47] warz: we used to use the dialup ++ ath0 hangup packet to disconnect people in SC1 and Diablo duels [02:47] SubStack: I got pretty good at ollydebug in high school. Fun times. [02:47] warz: because you could get IPs back then [02:47] zzak: haha [02:47] zzak: aol punting [02:47] airhorns has joined the channel [02:47] warz: "oh shit im losing, bye bye you" [02:48] SubStack: I should write an ollydebug clone for linux in node or some shit [02:48] zzak: whats ollydebug? [02:48] SubStack: in the browser even! [02:48] SubStack: zzak: an awesome graphical debugger for windows [02:48] warz: windbg was my choice [02:48] warz: ollydbg i couldnt get a grasp on [02:48] warz: too much clicking [02:49] warz: or something, idk. it like rendered weird. [02:49] zzak: nice [02:50] zzak: hard to remember some decisions from that long ago [02:50] dingomanatee has joined the channel [02:51] abraham has joined the channel [02:51] zzak: i spent a good amount of time trying to figure out slackware on an old ibm without internet access [02:51] zzak: it came with some flakey external modem that it couldnt ever get to work [02:51] warz: haha yea, my first attempt at linux was redhat when i didnt even have internet [02:51] warz: i thought i was so awesome though [02:51] pauls has joined the channel [02:51] warz: "oh man, this looks totally crazy and i have no clue wtf is happening. i must be a hacker now" [02:52] zzak: just remember copying man pages into my steno notebook [02:52] zzak: and lists of commands i found in /usr/bin that sounded neat [02:53] warz: yea. i had no pre-knowledge of linux. i just knew it was what was required if i wanted to hack people, somehow. [02:53] lastk: so guys, what the best way to start with node.js? there is some getting started very good? or just the api is enough? [02:53] zzak: haha [02:53] zzak: it was pretty intense [02:53] Emmanuel_: I'm interested in that, just as lastk [02:54] Emmanuel_: I've been struggling for few days to find a tutorial that /just works/, i.e. that does not require outdated modules :) [02:54] chrischris has joined the channel [02:54] yhahn has joined the channel [02:54] zzak: node moves too fast for blog posts ;) [02:54] Emmanuel_: yeah, that was my conclusion :) [02:54] Emmanuel_: and I'm double struggling, because I don't know js [02:55] lastk: Emmanuel_ : I have tried some example and I need to consult the api and change the name of most methods lol [02:55] Emmanuel_: (and so far, can't tell if the whole scope/closure thing is brillant or totally wtf) [02:55] lastk: Emmanuel_ ; well, to js I reading javascript the definitive guide seems very good [02:55] Emmanuel_: my plan for this week was to build a very simple thing to read/write/modify a databasse [02:55] mike5w3c has joined the channel [02:55] Emmanuel_: any kind [02:55] zzak: warz: are you getting d3? [02:55] Emmanuel_: it's day 3 :) [02:56] warz: zzak, yea for sure. i went to blizzcon this year and played the pvp arena demo. [02:56] warz: its ... amazing [02:56] zzak: nice [02:56] zzak: haha i love watching the "ask the devs" from blizzcon [02:57] zzak: "uhh im just wondering why you nerfed paladin for the 7th time" [02:57] warz: haha yea, i saw the red shirt guy live [02:57] warz: http://www.youtube.com/watch?v=DwyMB19q7ms [02:57] zzak: LOL yes that guy! [02:58] raz: is there a common pub/sub lib for node that people use in conjunction with socket.io? [02:58] raz: or is it a roll-your-own affair? :) [03:00] zzak: warz: http://www.youtube.com/watch?v=OAuC1cXysho [03:00] dingomanatee: ACTION is AT the AWESOME HISTORIC PHP NODE MEETUP! [03:00] zzak: i love how he wears the same red shirt in his "speaking out" video [03:00] warz: haha yea [03:01] SubStack: raz: http://substack.net/posts/9bac3e [03:01] bentruyman has joined the channel [03:02] perlmonkey2: Is stylus a direct competitor for sass and less? [03:03] zzak: its about oil [03:04] Aria: Yeah, pretty much, perlmonkey2 [03:04] hij1nx has joined the channel [03:04] bubbafat: Emmanuel_, I feel your pain, man. 3 days ago I had not used JavaScript in a meaningful way (though I've been programming nearly 20 years). It took about a day to wrap my head around the Node.js architecture (I am familiar with other event driven systems and programming with closures so that helped). [03:04] perlmonkey2: Aria: cool [03:04] zzak: sass.js is no longer active afaik [03:05] Aria: No? [03:07] broofa has joined the channel [03:07] pedrobelo has joined the channel [03:09] zzak: i'm only assuming, because tj added "I strongly suggest that you check out my other project Stylus." to the sass.js README [03:11] jano has joined the channel [03:11] Aria: Aah, hehe [03:11] Yuffster_work has joined the channel [03:11] twoism has joined the channel [03:12] poincare101: are there any websites that already use nodejs? [03:12] mynyml has joined the channel [03:17] fcorrea has joined the channel [03:19] wadey has joined the channel [03:20] softdrink has joined the channel [03:23] echoSMILE has joined the channel [03:23] echoSMILE has joined the channel [03:23] edude03_ has joined the channel [03:24] mbrochh has joined the channel [03:25] mynyml_ has joined the channel [03:25] abrahamwilliams has joined the channel [03:26] Aikar: is there a more effecient way to make string.replace do a replace all besides a regex with /g? id rather not have to build regex strings and worry about escaping the strings properly [03:28] mjr_: poincare101: there are lots of people using node in production right now. [03:28] rfay has joined the channel [03:29] Aikar: went with a comment i found to do string.split(from).join(to); [03:29] temp03 has joined the channel [03:29] Utkarsh has joined the channel [03:31] torvalamo: did you run a jsperf test on split/join vs plain replace? [03:33] davidascher has joined the channel [03:35] slaskis: if i have a long polling http server, or a slow request maybe, will that block the following requests? [03:35] slaskis: because i see that the following requests get slower andslower [03:35] sivy has joined the channel [03:37] ChrisPartridge: Well, setting up connect to use https was easy [03:37] mjr_: slaskis: slow clients should not make node slow. But lots of work for node to do could make other things slow. [03:37] mjr_: Is your CPU usage high? [03:40] sechrist has joined the channel [03:41] sechrist: Are there any templating systems that let me use real html? [03:41] sechrist: Looking for similar to django [03:41] chapel: sechrist: dustjs [03:43] sechrist: Is there an html -> jade converter? :) [03:44] dingomanatee has joined the channel [03:44] evanmeagher has joined the channel [03:46] slaskis: mjr_: no, cpu's fine, but like the following requests seeme queued up [03:46] AAA_awright: sechrist: It can't be too hard to program one if you use something like jsdom [03:49] confoocious has joined the channel [03:49] confoocious has joined the channel [03:50] mbrochh has joined the channel [03:50] mbrochh has joined the channel [03:51] slaskis: mjr_: actually, it seems to be more the quantity of requests than length so you're right [03:53] dgathright has joined the channel [03:53] dancor has joined the channel [03:55] eee_c has joined the channel [03:56] brianmario has joined the channel [03:56] briznad has joined the channel [03:57] jacobolus has joined the channel [03:59] daveyjoe has joined the channel [04:00] mjr_: slaskis: figuring out why node is sometimes slow is one of our biggest challenges right now, IMO [04:01] Aikar: sechrist: EJS is about the closest your gonna get to PHP like syntax. html with mingled in code [04:07] aguynamedben has joined the channel [04:08] Coal has joined the channel [04:08] Adman65 has joined the channel [04:11] Lorentz: gf3: https://gist.github.com/840002 [04:11] Lorentz: gf3: Possibly another invalid character in nickname issue? [04:12] slaskis: speaking of slow, i noticed jsdom has updated on npm, is it any faster? [04:13] dingomanatee has joined the channel [04:14] dgathright has joined the channel [04:16] mbrochh has joined the channel [04:16] mbrochh has joined the channel [04:18] tmpvar: slaskis, slightly [04:19] tmpvar: but I love how you qualify it as slow ;) [04:23] dthompson has joined the channel [04:24] alex1 has joined the channel [04:25] zorzar_ has joined the channel [04:25] er1c_ has joined the channel [04:30] polotek has joined the channel [04:30] gravyrobber has joined the channel [04:31] beawesomeinstead has joined the channel [04:31] dguttman has joined the channel [04:31] EyePulp has joined the channel [04:31] briznad has joined the channel [04:33] dthompson has joined the channel [04:35] daveluke has joined the channel [04:38] langworthy has joined the channel [04:39] mbrochh has joined the channel [04:39] mbrochh has joined the channel [04:41] entinteractive has joined the channel [04:42] entinteractive: Hi guys, anyone implemented a node.js server inside of plesk? [04:42] sechrist: I've had a node instance running for 6 months [04:42] sechrist: still running like a champ [04:44] iszak: entinteractive, not likely until it becomes more stable [04:44] dthompson has joined the channel [04:45] k04n has joined the channel [04:46] dthompson has joined the channel [04:46] megana has joined the channel [04:46] entinteractive: awesome, i decided to give node a test drive today, still trying to suss out how to make it run once you send the request through the browser [04:47] megana: so what does everyone do when they want to host node.js? [04:47] megana: I know you can't all just be writing init scripts [04:47] megana: is there some utility for make xml config files or something to manage each site? [04:51] tmpvar: woah, xml? [04:51] tmpvar: megana, i use monit and init scripts [04:52] megana: tmpvar, just a thought [04:52] megana: well, it would probably be json ;) [04:52] ChrisPartridge: s/xml/json? :) [04:52] megana: remember tomcat? [04:52] tmpvar: nightmares, yes [04:52] megana: it would be nice if we had something kindddaaaa like that [04:52] megana: just not awful like WAR files [04:52] tmpvar: connect is similar [04:52] geoffeg: recommended command line options parser? [04:52] tmpvar: you can do vhosts [04:53] megana: oh ya? [04:53] chapel: geoffeg: check out optimist by SubStack [04:53] tmpvar: megana, in that you can specify vhosts [04:53] sechrist: How do I return a static file in express? I basically want to map / to send index.html [04:53] chapel: if you want to handle vhosts in a more robust manner, check out cluster [04:53] geoffeg: chapel: funny, i clicked onto his github page right as you said that :) [04:53] tmpvar: lol [04:53] megana: but there's no easy way to restart the site after modifying the source though [04:53] ChrisPartridge: sechrist: staticProvider [04:54] tmpvar: megana, in development mode or production [04:54] SubStack: sechrist: staticProvider serves up index.html automatically [04:54] megana: you have to kill && node [04:54] SubStack: for / routes [04:54] megana: production [04:54] ChrisPartridge: megana: there are a few tools to manage this already [04:54] dthompson1 has joined the channel [04:54] tmpvar: well, in either case it requires a kill/spawn [04:54] stonecobra has joined the channel [04:54] Me1000 has joined the channel [04:54] megana: Chris, I am glad to hear it :) [04:55] megana: what do we have? [04:55] ChrisPartridge: megana: I'm playing around with cluster at the moment [04:55] kwik101 has joined the channel [04:55] ChrisPartridge: http://github.com/LearnBoost/cluster [04:55] ngs has joined the channel [04:56] dingomanatee has joined the channel [04:56] ChrisPartridge: megana: there is also spark, but the README now says to use cluster [04:56] megana: clusters huh? [04:56] fcorrea has joined the channel [04:57] megana: ooooooooo this is pretty [04:57] megana: thanks Chris! [04:57] ChrisPartridge: megana: Yes, it's simple, and extensible through plugins [04:57] megana: this is exactly what I was hoping existed [04:57] ChrisPartridge: :) [04:58] megana: <3 [04:58] ajnasz has joined the channel [04:58] jakehow has joined the channel [04:59] tmpvar: get a room! [04:59] iFire has joined the channel [05:00] jpld has joined the channel [05:00] jpld has joined the channel [05:00] Aria: .oO(Cluster love in a room. Mmm.) [05:00] ChrisPartridge: tmpvar: jealous much? :) [05:00] dgathright has joined the channel [05:00] dancor has joined the channel [05:01] chapel: (o___o) .oO(Who has a room?) [05:02] poincare101 has joined the channel [05:03] tg has joined the channel [05:08] mbrochh has joined the channel [05:08] mbrochh has joined the channel [05:08] isaacs has joined the channel [05:08] mm2001 has joined the channel [05:11] mm2001: errors installing libxmljs via "npm install libxmljs" with following trace - anything I'm obviously doing wrong? tia! [root@localhost ~]# npm install libxmljs npm info it worked if it ends with ok npm info using npm@0.3.3 npm info using node@v0.4.1 npm ERR! gzip "--decompress" "--stdout" "/usr/local/lib/node/.npm/.cache/libxmljs/0.4.1/package.tgz" npm ERR! gzip "--decompress" "--stdout" "/usr/local/lib/node/.npm/.cache/libxmljs/0.4 [05:12] mm2001: (hmm, that was ugly - sorry about that!) [05:13] entinteractive: im trying to understand how node gets initiated when a request comes from a browser? [05:13] Coal has joined the channel [05:13] polotek: mm2001: I haven't updated libxmljs for 0.4.x yet [05:13] at133 has joined the channel [05:13] Aria: Hehe. That's easy, entinteractive. [05:13] Aria: It runs as a daemon and accepts the connection itself. [05:14] polotek: mm2001: but it installs cleanly for me right now [05:14] mm2001: polotek: thx! (mm2001 walks away bleeding ... towards node 2.x) [05:14] polotek: I think I'm using an older version of npm though. lemme try upgrading [05:14] entinteractive: interesting... so for some reason its not loading for me unless i cli "node default.js" then try to load the browser [05:15] entinteractive: ...otherwise it just sits there loading forever [05:16] Aria: Well, yeah, it has to be running. Are you proxying to it? [05:16] entinteractive: what could i potentially be doing wrong here, am i missing a module perhaps? [05:16] Aria: If all you've got on the server is node, then it should give ECONNREFUSED when it's not running [05:16] entinteractive: ive also got plesk :D [05:16] Aria: but proxies will often accept the connection and then hang until hopefully the backend comes back. [05:16] Aria: plesk, which then implies Apache, ne? [05:17] entinteractive: yep [05:17] mm2001: polotek: thanks! [05:17] entinteractive: and im using a RewriteCond to catch it [05:17] entinteractive: got a few hints from here... http://bigbangtechnology.com/post/installation_configuration_deployment_node.js_applications_on_media_temple [05:18] mm2001: entinteractive: have you tried a different port and then wget to localhost on that port? I battled with this and discovered it had more to do with iptables, virtualbox NAT/network settings, you name it ;) [05:18] Aria: Ah, in that case, you just need to run the service some way more permanent than a terminal that you then close. [05:18] Aria: Apache won't start it for you. [05:18] Aria: node is entirely separate. [05:19] entinteractive: i see [05:19] entinteractive: is this what the supervisor module is for [05:19] Aria: (node is one level lower than, say, rails -- node is not specific to just web apps.) [05:19] Aria: Yeah, supervisor processes are good for things like this. [05:19] Aria: Or start it in an @reboot rule in cron, or ... so many options, the problem is picking one. [05:19] entinteractive: still getting my head around it :P cheers [05:19] polotek: isaacs: you were saying something about upgrading npm 0.3 [05:20] Aria: Cheers [05:20] polotek: is there a doc somewhere? [05:20] isaacs: polotek: yeah, it's a bit rough [05:20] sleeplessinc has joined the channel [05:20] isaacs: polotek: nah, just walk in, and then cry to me when/if it doesn't work [05:20] polotek: heh, I'm getting parse errors [05:20] polotek: when parsing package.json [05:20] isaacs: polotek: the big gotchas: package.json must be valid json (quoted keys, no comments), and there's no lib dir mapping [05:20] mm2001: entinteractive: ah, yes Aria is on the right track. I'm facing the same problem soon. For quick debugging I just started it with "nohup node default.js &" - but that won't restart it if it dies [05:20] isaacs: polotek: there ya go :) [05:21] Aria: mm2001: indeed. [05:21] ChrisPartridge: Woo, connect using https, with cluster, no nginx! [05:21] rpflo has joined the channel [05:21] dingomanatee has joined the channel [05:23] Aria: Woo! [05:23] polotek: mm2001: install and tests run clean [05:23] polotek: even on the newer npm [05:23] Nexxy has joined the channel [05:23] Nexxy has joined the channel [05:23] polotek: could you gist the full output of your errors? [05:23] polotek: thanks isaacs [05:24] isaacs: mm2001: update npm to 0.3.7 or so [05:24] isaacs: mm2001: sudo npm i npm [05:24] bubbafat has joined the channel [05:25] mm2001: polotek: git://gist.github.com/840057.git - thanks! [05:26] mm2001: isaacs: thx, will try that now [05:26] Aria: Woot! My stub apache mod_node builds! Now to make it do something! [05:27] isaacs: mm2001: yes, definitely update npm [05:27] isaacs: mm2001: that is a bug i spent all day tracking down :) [05:27] isaacs: mm2001: still not entirely sure why it wasn't breaking for me, or why what i did to fix it fixed it. [05:28] isaacs: Aria: you should bind jspp to it!! [05:28] polotek: Aria: awesome [05:28] slaskis: isaacs: npm info latest = npm@0.3.7 not supported by node@v0.4.0 [05:28] polotek: how hard is it to write apache modules? [05:28] isaacs: slaskis: ...? [05:28] slaskis: i get that message when trying to upgrade npm on my no.de instance [05:28] Aria: Ooh, I should. My goal is to make it generic enough that those bindings would be easy to load. [05:28] mm2001: isaacs: hmm, npm -i npm failed too: git@gist.github.com:1f575bacffb00cb41047.git [05:28] isaacs: mm2001: no -i [05:28] Aria: The first thing I want to make it do, though, is start a backend process and proxy to it. [05:28] isaacs: mm2001: just i [05:29] zemanel has joined the channel [05:29] isaacs: mm2001: also: it's more helpful to just paste the url to the webpage with the gist, not the git url [05:29] polotek: mm2001: try pasting the http link instead of the git link ;) [05:29] sirkitree has joined the channel [05:29] mm2001: isaacs: sorry, typo here, I did use "npm i npm" [05:29] mm2001: isaacs: sorry about that: https://gist.github.com/1f575bacffb00cb41047 [05:29] slaskis: isaacs: sorry, here's a more complete error: https://gist.github.com/8d37eba67241d15c73e6 [05:29] isaacs: mm2001: ok. curl http://npmjs.org/install.sh | sh [05:30] isaacs: slaskis: well, that's a bit odd [05:30] slaskis: isaacs: aggreed :) [05:30] mm2001: isaacs: that worked, thx. Now I'll try libxmljs again [05:31] isaacs: slaskis: try the curl command ^^ [05:31] slaskis: also tried older npm versions like 0.3.0 and the same tihng [05:31] polotek: haha [05:31] polotek: felixge is on the first page of google results for "formidable" [05:31] polotek: nice [05:32] slaskis: isaacs: same thing really: https://gist.github.com/88208ed6f71433bd9df3 [05:32] mbrochh has joined the channel [05:32] slaskis: polotek: sure it's not just your personal results? ;) [05:32] mm2001: polotek: still failing after updating to latest npm per isaacs https://gist.github.com/7624eb5a0d161edb4266 [05:32] atmos_ has joined the channel [05:33] polotek: slaskis: oh yeah, you're probably right [05:33] polotek: still impressed though [05:33] isaacs: mm2001: you have to install scons [05:33] polotek: yeah what he said^ [05:33] slaskis: polotek: use incognito mode or similar to get a more generic one [05:33] slaskis: meh, now i have no npm :P [05:34] isaacs: slaskis: sense this makes none. [05:34] polotek: isaacs: there's no way to do external dependencies with npm is there? [05:34] thinxer has joined the channel [05:35] isaacs: polotek: the standard answer is "write a preinstall script that checks for them and fails with a good error message" [05:36] isaacs: slaskis: maybe try `hash -r` or something? [05:36] alex1 has joined the channel [05:36] alex1 has joined the channel [05:37] isaacs: slaskis: and then do it again? i don't understand how my semver isn't seeing that v0.4.0 satisfies 0.4||0.5 [05:37] isaacs: that's even one of the tests. [05:37] EyePulp has joined the channel [05:37] mm2001: polotek: thanks. scons now installed and new error: https://gist.github.com/7624eb5a0d161edb4266 (is it good form to re-use a gist?) [05:37] polotek: * grumble * stupid isaacs * grumble * [05:37] slaskis: isaacs: haha yeah strange indeed, i'll try that one [05:37] slaskis: isaacs: another error i keep getting with npm: https://gist.github.com/b915320634647dff974f [05:38] polotek: mm2001: for stuff like this it's fine [05:38] isaacs: slaskis: i'm provisioning a new no.de machine right now to try to test this. [05:38] slaskis: (even before) [05:38] isaacs: so, *that* i have no idea about [05:38] isaacs: that's some kind of weird node bug [05:38] slaskis: maybe fixed in 0.4.1? [05:38] polotek: mm2001: oh :/ [05:39] polotek: you also need xml2-config in your path [05:39] polotek: it's utility that comes with libxml2 [05:39] polotek: you do have libxml2 installed right :) [05:39] slaskis: tried hash -r [05:39] slaskis: no change [05:39] slaskis: isaacs: ^^ [05:39] losing has joined the channel [05:40] isaacs: slaskis: ok, i just provisioned a brand new no.de, it's running node 0.4 [05:40] mm2001: polotek: by luck rather than planning, yes, yum reports that libxml2 is installed ;) [05:40] isaacs: slaskis: did the curl | sh trick, and it worked [05:40] slaskis: danit [05:40] slaskis: damnit [05:40] isaacs: slaskis: did you set a node-version config orsomething? [05:40] isaacs: slaskis: what's ~/.npmrc have in it, anything interesting? [05:41] Utkarsh has joined the channel [05:41] slaskis: isaacs: hmm, might be there [05:41] isaacs: slaskis: https://gist.github.com/840075 [05:41] isaacs: see? [05:41] isaacs: proof! [05:41] slaskis: i have a node-version in there [05:41] slaskis: isaacs: https://gist.github.com/d687c6d1adce60a66df9 [05:41] slaskis: i'll try to remove it [05:42] isaacs: aha!!!! [05:42] isaacs: yeah, remove that [05:42] mm2001: polotek: hmm, no xml2-config in my path. Looking for it [05:42] isaacs: slaskis: node-version config is just to "fake" the node version temporarily to install things that require different versions of node than what you have. [05:42] slaskis: removed npmrc entirely [05:42] isaacs: slaskis: which is a weird edge-case that you should never ever touch [05:42] polotek: mm2001: how did you get libxml2? what os are you on? [05:42] isaacs: slaskis: ohno!!! [05:42] isaacs: you do need that on no.de [05:42] slaskis: isaacs: haha, ooh [05:43] slaskis: lucky i copied it ;) [05:43] polotek: how is it no one has wrapped jshint in a nice command-line utility yet? [05:43] isaacs: slaskis: indeed :) [05:43] mm2001: polotek: centos 55 - googling now [05:43] isaacs: slaskis: you also don't need the tar defined more than once. [05:43] beawesomeinstead has joined the channel [05:43] mm2001: polotek: seems I need libxml2-devel -- will try that [05:43] polotek: mm2001: libxml2 is installable by any decent linux package manager [05:43] isaacs: slaskis: looks like my install script puts it there if it detects a non-standard one. it should probably only do that if it's not already there. [05:43] polotek: mm2001: yeah probably [05:44] polotek: ACTION really needs to get to know the linux package ecosystem better [05:44] isaacs: slaskis: `npm config delete node-version` woulda done it. (for next time) [05:44] slaskis: isaacs: hah, well now i get out of memory errors [05:44] isaacs: slaskis: weird... [05:44] mm2001: polotek: success! [05:44] slaskis: isaacs: such strange errors, different every time [05:44] mm2001: polotek: isaacs: thanks!! [05:45] isaacs: mm2001: np :) [05:46] polotek: mm2001: ditto [05:46] polotek: but now I have a question. [05:46] mischief has joined the channel [05:46] polotek: did you read the readme? [05:46] polotek: be honest :) [05:47] nornagon_ has joined the channel [05:47] briznad has joined the channel [05:48] mm2001: polotek: honestly, yes, I did read it. But clearly not closely enough. I was trying to work out which xml library to install and read many readmes along the way. [05:49] polotek: mm2001: no worries. it's definitely not good enough [05:49] polotek: it doesn't even mention libxml-devel [05:49] mm2001: polotek: so when you said "scons", I banged my head "doh" [05:49] polotek: I want to make it better [05:49] polotek: what other things did you have problems with? [05:51] mm2001: polotek: tho I didn't catch the xml2-config reference until I just re-read it now. It would be better in the requirements section (e.g. with a note that libxml2 and libxml2-devel should be installed) [05:52] mm2001: polotek: also, its great that you have the test commands there -- but with the magic of npm, I have no idea where the source is installed now and hence no idea where to go to run the tests. (Not complaining! Just feedback as you requested) [05:52] polotek: mm2001: yeah doing that now [05:52] isaacs: mm2001: that's getting better. [05:52] polotek: it's possible to have npm run your tests as well [05:52] isaacs: mm2001: require.resolve("libxmljs") is helpful [05:52] polotek: working on that [05:53] wadey has joined the channel [05:53] isaacs: polotek: looks like all kinds of errors when i do `npm test libxmljs` [05:53] mm2001: polotek: also, it would be awesome to have the example that's on the front page of your github wiki in the actual readme file. [05:53] isaacs: well, just one kind... but over and over [05:53] isaacs: Memory tag error occurs :0x10070fa28 [05:53] isaacs: bye [05:53] isaacs: xmlMemFree(10070FA50) error [05:53] isaacs: xmlMallocBreakpoint reached on block 0 [05:53] isaacs: Memory tag error occurs :0x10070fa38 ... [05:54] mm2001: polotek: since when scanning many modules, that's the page most often linked to and looked at [05:54] isaacs: mm2001: isn't that page the actual readme already? [05:55] isaacs: oh, wiki, nvm [05:55] mm2001: isaacs: your http://search.npmjs.org page is excellent! Found it very useful! [05:56] amerine has joined the channel [05:58] mbrochh has joined the channel [05:58] collypops has joined the channel [05:58] isaacs: mm2001: that's all mikeal rogers' doing [06:01] luke` has joined the channel [06:03] polotek: mm2001: there is one example and then a link to the wiki. is that not enough? [06:03] polotek: I don't like long readmes [06:03] sockdrawer has joined the channel [06:04] mscdex: i do [06:04] gg411 has joined the channel [06:04] mscdex: the longer the better! [06:04] mscdex: :-D [06:04] twoism has joined the channel [06:04] mscdex: then insert a joke in the middle to see if they actually read it [06:05] samcday_ has joined the channel [06:05] samcday_: Anyone here successfully used v8 profiler with node AND used --prof_lazy? [06:05] samcday_: I can't seem to get it to work ;( [06:05] mm2001: polotek: it looks great now. Maybe it was there before and I missed it... apologies if so! it was a long slog to get to libxmljs via several deadends. [06:05] polotek: mm2001: no I just pushed that [06:05] polotek: the pre-conditions section [06:06] polotek: I'm making some more updates [06:06] polotek: more prominent wiki links and such [06:06] rpflo has joined the channel [06:06] mm2001: polotek: and I'm just about to use it. thanks! [06:07] forzan has joined the channel [06:08] samcday_: Anyone here with some node.js profiling experience? [06:10] samcday_: mape: ping [06:10] mape: samcday_: pong [06:10] samcday_: Hey man, your profile lib is awesome. I was wondering though, had you figured out how to get prof_lazy working with the node-profile thing out there? [06:10] samcday_: node-profiler* [06:10] pyrony has joined the channel [06:11] samcday_: If I use --prof_lazy the linux-tick-processor gives me nuzzink. [06:11] kriszyp has joined the channel [06:13] devrim has joined the channel [06:14] megana has joined the channel [06:16] mape: samcday_: Hmm not looked at prof_lazy, what are the benefits? [06:17] samcday_: You can start/stop the profiler from JS. [06:17] samcday_: profiler.pause(); profiler.resume(); [06:17] samcday_: I only want to profile certain parts of my code [06:19] samcday_: The problem is, I can see v8.log has plenty of data in it when I use prof_lazy, but linux-ticks-processor isn't recognizing anything [06:20] polotek: mm2001: several more updates to readme and wiki. rearranged things a bit [06:20] polotek: hopefully it works a bit better [06:21] mape: samcday_: Oh k, well if you figure anything out and it doesn't break the api feel free to do a pull request [06:21] daveluke has joined the channel [06:22] ceej_ has joined the channel [06:22] mm2001: polotek: thanks, will look shortly. looking for xpath docs now ... <> [06:22] dgathright has joined the channel [06:22] samcday_: mape: Aight will do, thanks :) [06:22] polotek: mm2001: have to use @ in front of attrname [06:22] ceej_ has joined the channel [06:23] polotek: /foo[@name='bar'] [06:24] mm2001: polotek: yup, and [@attr='value'] to filter [06:24] dguttman has joined the channel [06:24] mm2001: polotek: ah, you typed it while I was off looking, thanks! [06:24] themiddleman has joined the channel [06:26] mbrochh has joined the channel [06:26] mbrochh has joined the channel [06:27] megana has left the channel [06:29] bluesman has joined the channel [06:29] dancor has joined the channel [06:31] yhahn has left the channel [06:32] temp01 has left the channel [06:35] SamuraiJack has joined the channel [06:36] davidascher has joined the channel [06:36] beawesomeinstead has joined the channel [06:39] clarkfischer has joined the channel [06:40] langworthy has joined the channel [06:42] stuart has joined the channel [06:44] stuart has left the channel [06:46] temp02 has joined the channel [06:47] mikeal has joined the channel [06:51] polotek: isaacs: hey, so what's the deal with package.json? [06:51] polotek: specifically main vs lib properties [06:51] isaacs: polotek: oh. um.. use a main module. [06:51] isaacs: that's the deal with them :) [06:51] isaacs: if you want to dive into a package, just specify the full path to what you want. [06:51] isaacs: this lib directory mapping thing isn't actually required, and isn't all that helpful. [06:52] polotek: is lib is ignored right now [06:53] polotek: well referring to submodules by relative paths still works [06:53] polotek: so that's good [06:53] mape: samcday_: Neat, I'll take a look at it later today [06:54] samcday_: mape: Cheers mate! [06:54] samcday_: mape: heading out now anyway, will check back on the pullrequest later. [06:55] mape: Great [06:55] mbrochh has joined the channel [06:55] mbrochh has joined the channel [06:55] Ond has joined the channel [06:59] isaacs: polotek: yeah, lib is ignored. [07:00] isaacs: polotek: the whole package dir as-is is linked to the node_modules folder, so require("foo/lib/bar") works like require("foo/bar") used ot. [07:00] isaacs: polotek: it just got simpler. one less level of indirection [07:00] SubStack: it cleaned up the browserify code tons [07:01] polotek: isaacs: I'm fine with it, just wanted to make sure I understood [07:01] isaacs: yeah, it hurts at first, but nothing compared to the promise-cb switch [07:01] polotek: hey SubStack, got a free million dollar idea for you [07:01] isaacs: in the end, i think these changes are for the better [07:02] polotek: browserling should offer email client testing services [07:02] adrian_berg has joined the channel [07:02] polotek: if you can make it easy to check out an html email template in an old version of lotus notes, people would pay you lots of money [07:03] stonebranch has joined the channel [07:03] seivan has joined the channel [07:03] adrian_berg: Is there some way to obtain user input from, node-repl? [07:05] vipaca has joined the channel [07:05] vipaca has joined the channel [07:05] sa_ has joined the channel [07:07] SubStack: polotek: there's already a company that does email client testing [07:07] SubStack: but I can't recall the name [07:08] polotek: if it's the one we use, they are lacking in places [07:08] polotek: competition is healthy :) [07:08] adrian_berg: that was a bad question, disregard [07:09] slaskis: is there any newer ubuntu repository with nodejs than the one in the wiki? [07:09] adrian_berg: I think I'm needing interface with Readline [07:09] slaskis: i'd like 0.4.1 [07:09] polotek: slaskis: it's not bad install from source [07:10] polotek: node versions are still updating pretty quickly [07:10] polotek: it pays to be able to update yourself [07:11] Me1000 has joined the channel [07:11] slaskis: polotek: yeah, true, actually i'll probably use n anyway i just realizsed [07:11] zentoooo has joined the channel [07:13] gozala has joined the channel [07:16] dingomanatee has joined the channel [07:17] pyrony has joined the channel [07:19] Jourkey has joined the channel [07:20] evanmeagher has joined the channel [07:22] adrian_berg: maybe this is what I'm looking for: process.stdin [07:23] temp03 has joined the channel [07:23] temp03 has joined the channel [07:23] mbrochh has joined the channel [07:23] mbrochh has joined the channel [07:24] seivan: hmm [07:24] mscdex: slaskis: https://launchpad.net/~jerome-etienne/+archive/neoip [07:24] seivan: Is there a unique identifier for sockets? [07:24] EyePulp has joined the channel [07:24] Throlkim has joined the channel [07:25] shaver: (ip, port, ip, port) [07:25] shaver: rather [07:25] shaver: (remote-ip, remote-port, local-ip, local-port) [07:25] adrian_berg: hate to leave like this, but I need to sleep [07:25] mscdex: noders never sleep! [07:26] spetrea-home has joined the channel [07:27] muhqu has joined the channel [07:27] shaver: sleepers never node? [07:27] snafuz has joined the channel [07:27] tlrobinson has joined the channel [07:29] groom has joined the channel [07:32] mikeal has joined the channel [07:32] stagas has joined the channel [07:33] snafuz has joined the channel [07:35] mkrecny has joined the channel [07:41] coffeecup has joined the channel [07:41] Emmanuel_ has joined the channel [07:42] luke` has joined the channel [07:42] rjbs has joined the channel [07:42] stride has joined the channel [07:43] Utkarsh has joined the channel [07:47] emattias has joined the channel [07:47] mbrochh has joined the channel [07:47] mbrochh has joined the channel [07:50] dguttman has joined the channel [07:50] andrewfff has joined the channel [07:52] fcorrea has joined the channel [07:53] BHSPitMonkay has joined the channel [07:53] muhqu has joined the channel [07:53] iFire has joined the channel [07:53] zorzar_ has joined the channel [07:53] brianmario has joined the channel [07:53] confoocious has joined the channel [07:53] aphelion has joined the channel [07:53] tylergillies has joined the channel [07:53] flippyhead has joined the channel [07:53] Metapony has joined the channel [07:53] galaxywatcher has joined the channel [07:53] ryah has joined the channel [07:53] dylang has joined the channel [07:53] riven has joined the channel [07:53] lahwran has joined the channel [07:53] MiiCode2 has joined the channel [07:53] naneau has joined the channel [07:53] gkatsev has joined the channel [07:53] thorsteinsson has joined the channel [07:53] Crshman has joined the channel [07:53] zz_raja has joined the channel [07:53] darklajid has joined the channel [07:53] aakour has joined the channel [07:53] Sembiance has joined the channel [07:53] Nacho__ has joined the channel [07:53] augustl has joined the channel [07:53] [tm] has joined the channel [07:53] joshpeek_ has joined the channel [07:53] mrkurt has joined the channel [07:53] adambeynon has joined the channel [07:53] sstephenson__ has joined the channel [07:56] mbrochh has joined the channel [07:58] andrewfff has joined the channel [08:01] ttpva has joined the channel [08:03] pau|c has joined the channel [08:06] ivanfi has joined the channel [08:08] mAritz has joined the channel [08:13] gozala has joined the channel [08:13] tc77 has joined the channel [08:14] Utkarsh_ has joined the channel [08:15] emattias has joined the channel [08:15] hwinkel has joined the channel [08:17] simme has joined the channel [08:18] Twelve-60 has joined the channel [08:19] marienz_ has joined the channel [08:19] dewey_ has joined the channel [08:23] dewey__ has joined the channel [08:24] ivanfi has joined the channel [08:30] Hadaka has joined the channel [08:30] doki_pen has joined the channel [08:30] ljackson has joined the channel [08:30] FMJag has joined the channel [08:30] johnnywengluu has joined the channel [08:30] joeshaw___ has joined the channel [08:30] bengl has joined the channel [08:30] tk has joined the channel [08:30] orospakr has joined the channel [08:30] ilpoldo has joined the channel [08:30] JojoTheBoss_ has joined the channel [08:30] statik has joined the channel [08:30] braddunbar has joined the channel [08:30] RushPL has joined the channel [08:30] crodas has joined the channel [08:30] jwcooper has joined the channel [08:30] sh1mmer has joined the channel [08:30] gf3 has joined the channel [08:30] eaton has joined the channel [08:30] cainus has joined the channel [08:30] geoffeg has joined the channel [08:30] heavysixer has joined the channel [08:30] wink_ has joined the channel [08:30] beppu has joined the channel [08:30] mysterio1` has joined the channel [08:30] nail_ has joined the channel [08:30] figital has joined the channel [08:30] hobs has joined the channel [08:30] nefD has joined the channel [08:30] jperras has joined the channel [08:30] node-faq has joined the channel [08:30] Bosmon2 has joined the channel [08:30] frodenius has joined the channel [08:30] phiggins has joined the channel [08:30] peol has joined the channel [08:30] themcgruff has joined the channel [08:30] vilhonen has joined the channel [08:30] Noya_ has joined the channel [08:30] DoubleV has joined the channel [08:30] bruse has joined the channel [08:30] ddollar has joined the channel [08:30] inarru has joined the channel [08:30] nivoc has joined the channel [08:31] ph^ has joined the channel [08:34] torvalamo has joined the channel [08:35] Druid_ has joined the channel [08:36] BHSPitMonkay has joined the channel [08:36] muhqu has joined the channel [08:36] iFire has joined the channel [08:36] zorzar_ has joined the channel [08:36] confoocious has joined the channel [08:36] aphelion has joined the channel [08:36] tylergillies has joined the channel [08:36] flippyhead has joined the channel [08:36] Metapony has joined the channel [08:36] galaxywatcher has joined the channel [08:36] ryah has joined the channel [08:36] dylang has joined the channel [08:36] riven has joined the channel [08:36] lahwran has joined the channel [08:36] MiiCode2 has joined the channel [08:36] naneau has joined the channel [08:36] gkatsev has joined the channel [08:36] thorsteinsson has joined the channel [08:36] Crshman has joined the channel [08:36] zz_raja has joined the channel [08:36] darklajid has joined the channel [08:36] aakour has joined the channel [08:36] Sembiance has joined the channel [08:36] Nacho__ has joined the channel [08:36] augustl has joined the channel [08:36] [tm] has joined the channel [08:36] mraleph has joined the channel [08:37] FireFly|n900 has joined the channel [08:37] CrazyGoogle has joined the channel [08:39] [AD]Turbo has joined the channel [08:41] sholmes has joined the channel [08:45] dgathright has joined the channel [08:46] mr_daniel has joined the channel [08:49] markwubben has joined the channel [08:51] msucan has joined the channel [08:51] mike5w3c_ has joined the channel [08:52] pdelgallego has joined the channel [08:52] nook has joined the channel [08:53] yozgrahame has joined the channel [08:54] groom has left the channel [08:54] groom has joined the channel [08:54] ph^ has joined the channel [08:55] q_no has joined the channel [08:55] yozgrahame1 has joined the channel [09:00] Astro has joined the channel [09:03] groom has left the channel [09:03] Bonuspunkt has joined the channel [09:03] aabt has joined the channel [09:03] floby has joined the channel [09:03] groom has joined the channel [09:04] markwubben has joined the channel [09:04] q_no has joined the channel [09:06] aabt has joined the channel [09:07] stonebranch has joined the channel [09:07] nornagon_ has joined the channel [09:07] eresair has joined the channel [09:08] dingomanatee has joined the channel [09:09] aabt has joined the channel [09:10] Chainfire has joined the channel [09:13] aabt_ has joined the channel [09:18] tbassetto has joined the channel [09:18] aabt has joined the channel [09:21] gggg has joined the channel [09:21] kal-EL_ has joined the channel [09:24] aabt has joined the channel [09:26] squeeks: sleep is a blocking task anyway... [09:26] Throlkim has joined the channel [09:28] aabt has joined the channel [09:28] Gruni has joined the channel [09:28] groom has joined the channel [09:30] aabt_ has joined the channel [09:30] FireFly|n900 has joined the channel [09:30] groom has joined the channel [09:31] temp02 has joined the channel [09:31] Utkarsh has joined the channel [09:32] groom has joined the channel [09:33] temp03 has joined the channel [09:33] Utkarsh_ has joined the channel [09:34] xla has joined the channel [09:35] aabt has joined the channel [09:38] sa_: what's the best way to use node.js with mysql? [09:39] sa_: what is should i download? [09:39] muhqu_ has joined the channel [09:39] ryah: sa_: felix's module [09:39] sa_: what's felix's module? [09:40] sa_: i download node & express & connect &mysql driver [09:40] sa_: there are anything else? [09:40] mauritslamers: sa_: yep: Thoth :) [09:41] mauritslamers: http//github.com/mauritslamers/Thoth [09:41] ntelford has joined the channel [09:41] mauritslamers: http://github.com/mauritslamers/Thoth [09:41] joecorcoran has joined the channel [09:43] sa_: thoth for what? [09:43] sa_: why i should install it? [09:44] mauritslamers: You don't have to install it [09:44] mauritslamers: but it comes with a ready made mysql implementation based on node-mysql [09:44] seivan: Hmm [09:44] seivan: Wargames doesn't seem to work that well [09:44] mauritslamers: and if you are serving web apps, you get XHR and websocket for free :) [09:45] temp02 has joined the channel [09:45] Utkarsh has joined the channel [09:45] sa_: hmmmmm [09:45] sa_: i install npm install mysql [09:46] floby: Hello There. Is Marcel Laverdet in here ? I'm filing an issue right now on fibers [09:46] sa_: so i have node-mysql [09:46] aabt has joined the channel [09:48] aabt_ has joined the channel [09:52] d0k has joined the channel [09:56] sa_: mauritslamers : really i want to know the best implementation for using node + mysql database [09:56] sa_: so if the Thoth help me [09:57] mauritslamers: sa_: depends on what you want [09:57] sa_: say how it help me please [09:57] mauritslamers: there are two: node-mysql is one, there is also an adapter based on libmysqlclient [09:57] sa_: i'll do web app [09:57] mauritslamers: sa_: what kind of a web app? [09:57] sa_: i download npm install mysql [09:57] ph^_ has joined the channel [09:58] sa_: bussinss [09:58] mauritslamers: sa_: ever looked at Sproutcore? [09:58] mauritslamers: (for the web app?) [09:58] sa_: no [09:59] mauritslamers: if you are doing a business web app, you definitely should take a look at Sproutcore for building it, I wrote Thoth specifically for it [10:00] hemo has joined the channel [10:00] mauritslamers: Thoth comes with Thoth-SC, specific adapter for it, and it allows you to create the database on the server, the models in the application, and the rest is provided [10:00] hassox has joined the channel [10:02] floby has joined the channel [10:03] Utkarsh_ has joined the channel [10:03] sa_: mauritslamers : sorry for my silly Q but i want to learn because i beginner in node [10:03] sa_: :D [10:03] sa_: and liunx too [10:03] FireFly|n900 has joined the channel [10:05] mauritslamers: sa_: np :) [10:06] mauritslamers: sa_: if you really want to learn things about Linux, try installing gentoo :) [10:06] mauritslamers: the manual way :) [10:06] mauritslamers: very, very useful [10:06] sa_: i try [10:07] sa_: thanks alot for your device [10:07] [AD]Turbo has joined the channel [10:07] mauritslamers: sa_: use an old computer for it, it will take a while, but you will have learned a lot about how to deal with the terminal and such :) [10:08] squeeks: In the day and age where virtual machines are fast, hypervisors are open sources, why not use one? [10:08] xmilliard has joined the channel [10:08] mauritslamers: squeeks: also true :) [10:08] sa_: and if i want to learn node [10:09] sa_: what also i do [10:09] TomY has joined the channel [10:09] bzinger has joined the channel [10:09] mauritslamers: node is javascript, so learn javascript :) [10:09] sa_: :D [10:10] sa_: i know that [10:10] mauritslamers: sa_: this might help: http://devmt.hku.nl/~sproutcore/doku.php?id=javascript:start [10:10] sa_: but i mean how to know the relation between different modules [10:11] sa_: there are alot of modules which serve node [10:11] mauritslamers: sa_: every module is a namespace by itself [10:12] sa_: hmmmmmmm [10:12] mauritslamers: normally you would assign functions and objects to the always present exports object. [10:12] sa_: for example [10:13] Utkarsh__ has joined the channel [10:13] sa_: i try to use mongodb so i use mongoose [10:13] mlncn has joined the channel [10:13] sa_: then i use mongodb-native [10:13] sa_: what is the best [10:13] sa_: i do not know [10:13] mauritslamers: That depends on your preferences I think [10:13] sa_: i was try to learn only [10:14] sa_: so i cann't decided [10:14] mauritslamers: Some modules are using bindings to the C or C++ libraries [10:14] sa_: yes [10:14] mauritslamers: others are JS-native implementations [10:14] sa_: i see that [10:14] mauritslamers: I rather have JS-native implementations [10:14] mauritslamers: because it is much more platform independent [10:15] xmilliard has left the channel [10:15] sa_: yes [10:16] mauritslamers: In my case (with Thoth) I want to be platform independent, but if you already know what kind of platform you will run on and you also know that won't change. the bindings version can also be a good idea [10:16] PyroPeter has joined the channel [10:16] codehero has left the channel [10:17] Utkarsh has joined the channel [10:17] sa_: mmmmmmmmmmm [10:18] sa_: thanks for your advice [10:18] mauritslamers: for me there is an additional reason to use JS-native stuff because it is always non-blocking [10:19] mauritslamers: sa_: and for a server application that is rather important [10:20] Coal has joined the channel [10:24] gozala has joined the channel [10:30] eyesUnclouded has joined the channel [10:30] Utkarsh_ has joined the channel [10:31] mscdex_ has joined the channel [10:31] Adman65 has joined the channel [10:34] aklt has joined the channel [10:35] floby has joined the channel [10:36] Coal has joined the channel [10:36] tg has joined the channel [10:36] jetienne has joined the channel [10:37] Utkarsh__ has joined the channel [10:40] Utkarsh__ has joined the channel [10:41] FireFly|n900 has joined the channel [10:42] Utkarsh_ has joined the channel [10:47] ziro` has joined the channel [10:53] aabt has joined the channel [10:54] davidc_ has joined the channel [10:57] phpnode has joined the channel [10:58] samcday_ has joined the channel [10:59] atmos has joined the channel [11:00] void_ has joined the channel [11:00] sriley has joined the channel [11:02] Sorella has joined the channel [11:08] samtest has joined the channel [11:12] Poetro has joined the channel [11:15] xla has joined the channel [11:17] samcday_: *status help [11:17] samcday_: Woops ;) [11:18] samcday has joined the channel [11:20] samtest: samcday: ping [11:21] malkomal_ has joined the channel [11:29] iFire` has joined the channel [11:30] mraleph has joined the channel [11:30] okuryu has joined the channel [11:30] nivoc has joined the channel [11:31] christophsturm has joined the channel [11:33] edude03 has joined the channel [11:38] jacksonmills has joined the channel [11:41] jetienne has joined the channel [11:42] torvalamo has joined the channel [11:43] nivoc has joined the channel [11:45] atmos has joined the channel [11:47] mjr_ has joined the channel [11:49] kriszyp has joined the channel [11:49] mlncn has joined the channel [11:53] stagas: anyone knows couch? can I pass a parameter in a map function or everything needs to be saved as a view first [11:54] fermion has joined the channel [11:58] pastak has joined the channel [12:04] jankoprowski has joined the channel [12:07] tanepiper: stagas: in what way? you can pass a key to a query of a view [12:08] tanepiper: you need to output the key on the emit, and couchdb will filter it for you [12:09] eee_c has joined the channel [12:09] saikat has joined the channel [12:10] stagas: tanepiper: yeah I'm reading about it now, I'm just not used to the whole map reduce thing [12:13] dve has joined the channel [12:13] temp01 has joined the channel [12:13] stagas: tanepiper: it's also weird that you can emit keys of type array [12:14] edude03 has joined the channel [12:14] stagas: it's making my mind spin [12:15] tanepiper: yea, it's pretty powerful once you get in to it [12:15] temp01 has left the channel [12:15] tanepiper: http://oreilly.com/catalog/0636920018247/ [12:16] herenowcoder: stagas: if you need kinda parametrization in couch, you emit keys as arrays of different data and then in the client you manipulate startkey, endkey to reach specific range [12:19] iFire has joined the channel [12:19] arnorhs has joined the channel [12:20] bzinger_ has joined the channel [12:21] daveluke has joined the channel [12:23] bzinger has joined the channel [12:24] sa_: please [12:25] sa_: if i want to add some files to vim source [12:25] sa_: how can i add it [12:25] sa_: it in /usr/bin [12:27] christophsturm has joined the channel [12:32] sth: Anyone used node-cluster yet? [12:33] nmtmason has joined the channel [12:33] sth: I'm wondering if the http server's close event is meant to be triggered or not. [12:33] benvie has joined the channel [12:38] kig has joined the channel [12:39] xmilliard has joined the channel [12:39] sivy has joined the channel [12:42] christop_ has joined the channel [12:46] atmos has joined the channel [12:47] Twelve-60: sth: link? :O [12:48] sth: to what? [12:56] persson has joined the channel [12:57] eee_c1 has joined the channel [12:57] confoocious has joined the channel [12:58] fcorrea has joined the channel [12:59] seivan has joined the channel [12:59] seivan: Ehm [13:00] seivan: at IOWatcher.onWritable [13:00] aabt has joined the channel [13:00] seivan: can't get the server to work getting that error.. [13:00] liquidproof has joined the channel [13:02] lo has joined the channel [13:03] daveyjoe_ has joined the channel [13:05] floby has joined the channel [13:08] MrTopf has joined the channel [13:10] HerrTopf has joined the channel [13:10] fairwinds has joined the channel [13:10] postwait has joined the channel [13:11] brian_irish has joined the channel [13:12] mcahornsirup has joined the channel [13:14] bradleymeck has joined the channel [13:14] aabt_ has joined the channel [13:14] perlmonkey2 has joined the channel [13:17] jetienne: q. i got trouble with http server/client and the encoding... it was working ok in 0.2.5, now failing in 0.4.1 [13:17] jetienne: any idea of what changed [13:18] jetheredge has joined the channel [13:19] gJ|Alex has joined the channel [13:19] pietras has joined the channel [13:20] Twelve-60: sth: node-cluster [13:21] sth: github.com/learnboost/node-cluster iirc [13:21] sth: https://github.com/LearnBoost/cluster [13:21] chrischris has joined the channel [13:24] eyesUnclouded has joined the channel [13:24] Twelve-60: ta [13:27] arpegius has joined the channel [13:28] evl has joined the channel [13:28] dnolen has joined the channel [13:33] eee_c has joined the channel [13:34] cnu has joined the channel [13:34] hij1nx has joined the channel [13:34] MrTopf has joined the channel [13:34] eee_c1 has joined the channel [13:37] bradleymeck: jetienne gist? only real change is a few fixes to buffers that i know of [13:37] dthompson has joined the channel [13:39] jetienne: bradleymeck: https://gist.github.com/840439 i just added all the 'utf8' in a attempts to fix. [13:39] gozala has joined the channel [13:39] jetienne: bradleymeck: without those, the version was ok in 0.2.5 [13:39] Kryckan has joined the channel [13:39] larsemil: socket.on('connect', function(client){ [13:40] jetienne: bradleymeck: if i set 'binary' this is ok... but the sourse is supposed to be utf8 [13:40] jetienne: bradleymeck: this is a http proxy [13:40] larsemil: i was hoping for console.log(client) to output something but just says undefined [13:41] jetienne: http://networkimprov.github.com/node-doc-api/all.html#event_connect_ <- larsemil because this param doesnt exit [13:41] jetienne: exist [13:42] larsemil: jetienne: but how could i then get the client id on the clientside using socket.io? [13:42] rfay has joined the channel [13:43] jetienne: ? [13:44] jetienne: larsemil: sorry no more time. customers want me and i got slides to prepare. [13:44] larsemil: and i need to go to kindergarden, see ya all [13:45] floby: is it a socket.IO problem ? [13:45] floby: maybe I can help [13:45] pandeiro has joined the channel [13:45] dve has left the channel [13:48] dve has joined the channel [13:48] daveluke has joined the channel [13:48] Kingdutch has joined the channel [13:50] joecorcoran has joined the channel [13:51] eee_c has joined the channel [13:51] g3funk has joined the channel [13:53] yawn has joined the channel [13:54] erwe: hi [13:55] miccolis has joined the channel [13:56] xandrews has joined the channel [13:59] jtsnow has joined the channel [13:59] floby: hi [14:00] Juan77 has joined the channel [14:00] edude03 has joined the channel [14:01] bwinton: hi [14:01] bwinton: (Sorry, it just seemed like the thing to say.) [14:01] jlecker has joined the channel [14:02] Kingdutch: Meh I just paid 60 euro's for a 12 month hosting contract [14:02] dnolen has joined the channel [14:02] floby: what kind of hosting ? [14:02] dewey_: lol @ screenrecording @ groups post [14:02] Kingdutch: For me to create a site to show off what I can do as a webdev (Site about me :') ) although seeing the changes in PHP 5.3 I'm seriously doubting if I should use PHP for this [14:02] Kingdutch: And I can't host node on there =/ [14:03] Kingdutch: Although I think node would be suited better than PHP for my plans [14:03] dewey_: http://homepage.mac.com/jorgechamorro/screencasts/phonegap_run_in_background.mov see that dock haha [14:03] pauls has joined the channel [14:03] Kingdutch: Seeing as I want to develop web applications as if they were desktop apps [14:03] Kingdutch: (All functionality is on one side, no need for both PHP and JS to be mangled together) [14:04] Kingdutch: And I suppoe I could do this with a lot of PHP, but I lost sight of what PHP is, I mean they implemented closures in 5.3... why? >.> it totally doesn't fit to php [14:04] dewey_: Kingdutch: http://nodester.com/ [14:04] dewey_: or heroku [14:04] Kingdutch: Yeh but I'm not rich [14:04] Kingdutch: And I just paid wait waht [14:04] floby: nothing fits in PHP they add features randomly following the hype [14:04] dewey_: both free [14:05] Kingdutch: Oh right [14:05] Kingdutch: Wiat that's free hosting? [14:05] Kingdutch: floby: I know... it was cool, but now it's just getting bloated and like, wTF* [14:06] floby: Kingdutch: cool ? that must have been a long time ago. anyway before I started using it. I hated it the moment I touched it. [14:07] erwe: wtf [14:07] floby: Kingdutch: PHP has no plan. it is founded on no language theory. It's just a patchwork. wanna learn somthing cool ? learn Perl ^^ [14:07] erwe: i've got main.css on / [14:07] erwe: and the jade layout on /views [14:07] erwe: but I can't include the css file.. why's that? [14:07] erwe: o.O [14:08] floby: have you created your directory structure with the express utility ? [14:08] Plouj: What's the difference between net.Server and net.Socket in terms of how I read data from the socket? [14:08] erwe: floby: yes :| [14:08] Kingdutch: floby: It used to be based on C++ [14:08] Plouj: does net.Server abstract/make something easier than just using net.Socket? [14:09] floby: Kingdutch: Yes I know ^^ it has lost a lot of it though. it takes from perl too. the silly dollar sign for example [14:09] Kingdutch: yeh I know [14:09] floby: Plouj: Server listens on a port and creates a bidirectionnal socket when a net.Socket connects to that port [14:09] Kingdutch: Somehow my 60 bucks feels misspend =/ [14:09] Kingdutch: Although I guess I might be able to transfer to a VPS [14:09] Kingdutch: but then I'd have security issues as well [14:10] floby: erwe: then you must have a 'public' folder. [14:10] Plouj: floby: so net.Server is one step higher in the abstraction layer than a net.Socket? [14:11] Kingdutch: Although imo, node.js (JavaScript) doesn't really lend itself to OOP (Well it does, but it has the prototype weirdness etc.) which lends itself less for the framework I want to make [14:11] eee_c has joined the channel [14:11] Kingdutch: So it's like choosing between the better of two evils [14:11] floby: erwe: public/ is the root directory of your website for static files. So stylesheets go in public/stylesheets/ and your require them as /stylesheets/main.css [14:12] Plouj: floby: if I want to write a script which receives data over a TCP socket, should I be using net.Socket? I don't see a way to "open" or listen on a socket. [14:12] floby: Kingdutch: I wouldn't use node.js for a full website (again). It's painful by many aspects. It often simpler to do it the way you know. Like PHP or RoR [14:12] Plouj: ACTION is looking at http://nodejs.org/docs/v0.4.1/api/all.html#net.Socket [14:12] Kingdutch: floby: Right, I wish there was a way to create websites like normal applications [14:13] Kingdutch: Where you didn't need to worry about client/server side, but just treat it as one [14:13] Kingdutch: Like the language/framework will take care of what goes where [14:13] pandeiro: floby: even with Express or something? you don't find it good for doing a website? [14:13] floby: Plouj: Server doesn't have the same utility. Server is for computers that must be reachable by others. So a server allow INCOMING connections. Once the Server has given you a Socket to speak to the one who connected, it's the very same interface as Socket [14:13] PyroStrex has joined the channel [14:14] Plouj: floby: sounds like Server is what I want [14:14] floby: pandeiro: Express is what is the closest to an acceptable framework. But it needs some work to be perfect. Love it though [14:14] floby: Plouj: go for it [14:15] PyroStrex: hmm... If i were to build a download requestor. how do I do so I can do something with the headers without losing any data? [14:15] Plouj: when I do var server = net.createServer(function (c) {}, what type of object is c? [14:15] floby: Kingdutch: I think that it is what GWT is about. Your program your whole thing in Java and it takes care of what goes in the client and what goes in the server [14:15] PyroStrex: anyone? [14:16] pandeiro: floby: any specific pain points with Express? I am still learning and somewhat platform agnostic at this point... did php (wordpress), django, now concentrating on couchdb and node [14:16] Twelve-60: Plouj: stream [14:16] floby: Plouj: net.Socket ! test it. createServer takes as an argument a listener for the connection event. But don't take my word for it. Please look at the doc [14:16] Plouj: Twelve-60: actually, I just found this in the documentation: net.createServer(connectionListener) [14:16] Plouj: floby: I'm asking you because I don't understand the documentation yet [14:16] Kingdutch: floby: Looks interesting (I hate how google has made like everything I ever think of =/) [14:17] Kingdutch: But I'll need to brush up on my Java skills, haven't touched it in a while [14:17] Kingdutch: Are we at a point in web development yet where we can say, screw non-js users? [14:17] arnorhs has joined the channel [14:17] floby: pandeiro: I used express+mongoose+socket.io so the pain may have come from the simultaneous use of three immature projects ^^. [14:18] floby: Kingdutch: never used it as I'm allergic to Java. but it looked very interesting [14:18] sriley: Kingdutch: i dont think you should ever say that [14:18] pandeiro: floby: yeah that is my early impression of node, generally... still pretty immature... almost every tutorial you find online that is more than 2 months old is obsolete in some way [14:18] sriley: js is there to enhance not to provide function [14:18] FireFly|n900 has joined the channel [14:19] pandeiro: Kingdutch: while learning couchdb i basically reached that point... screw non-js users if you want to make a restful app [14:19] floby: pandeiro: I use mainly less than 10 different libraries (I don't care about their dependecies) so I manage to keep track of what I use. [14:19] Kingdutch: IMO JS is starting to be there to provide function, not enhance [14:19] Kingdutch: If I want to create a dynamic layout in PHP [14:20] Kingdutch: I need something to get the browser info there [14:20] jetienne: sriley: is there a legitimate reason to disable js in a browser ? [14:20] Kingdutch: IMO desktop layouts are easier than web layouts [14:20] slaskis: anyone got https://github.com/egorich239/node-compress to compile on solaris? [14:20] floby: Plouj: it's alright to ask. but the type of the argument is clearly stated in the documentation. [14:20] Kingdutch: Simply because you have more control over resolution and flow [14:20] Kingdutch: (I mean I don't see a problem with an absolutely position layout on the web tbh) [14:20] Jourkey: is there a node png crush [14:20] Jourkey: or similar? [14:21] floby: jetienne: got your ppa update. thanks =) [14:21] erwe: floby: works.. ty.. i had to reconfigure something [14:21] jetienne: floby: cool :) [14:21] floby: erwe: you're welcome. It took me a little time to figure everything out in express as well [14:21] sriley: jetienne: slow network connections, bad network connections, some accessibility (thinking motion related) [14:22] jetienne: sriley: ? what is the relation with js and network connections ? [14:22] floby: sriley: it really depends on the type of website you're building and the type of users you are going to get [14:22] sriley: securtiy too, noscript is a damn popular addon for firefox [14:22] jetienne: sriley: can you describe a security issue with js in a browser ? [14:22] cyraxx: i have node + socket.io running right now, currently handling about 1100 connections with 10 new connections every second (and a lot of connections closing, too, there's a lot of fluctuation), using about 50MB memory and 1% CPU [14:22] sriley: jetienne: if you have a slow network connection you might not want to download a 1-2mb javascript file [14:23] cyraxx: before the update to 0.4.0 this used to run into some endless loop, using hundreds of megabytes of memory and 100% CPU [14:23] floby: cyraxx: what are they sending/receiving ? [14:23] jetienne: sriley: yep if you got slow connection, you want website to be light. but nothing to do with js tho. same apply to css/img/html [14:23] sriley: xxs, clickjacking [14:23] jetienne: sriley: ok so there are no security issue [14:23] floby: sriley: oh that. that's what makes the internet so funny doesn't it ? :D [14:24] Neil__ has joined the channel [14:24] Kingdutch: sriley: xss, clickjacking is something a web dev should prevent [14:24] nooob has joined the channel [14:24] Kingdutch: Even if my site has no js, it could still be vulnerable to xss or clickjacking [14:24] Kingdutch: So I can see why people cancel JS, but that means the web dev isn't doing his job [14:25] cyraxx: floby: most of the time nothing (except keepalives), from time to time messages are published to groups of clients [14:25] jetienne: i would be happy to know why they do [14:25] pandeiro: Kingdutch: why do you think VPS is less secure? [14:25] erwe: mongodb native or moongose? [14:25] erwe: suggestions are welcome D: [14:25] fumanchu182 has joined the channel [14:25] Kingdutch: pandeiro: What do you mean? [14:25] Kingdutch: Regarding my note half an hour ago? [14:25] FireFly has joined the channel [14:25] Kingdutch: Because in a VPS I have to do the security [14:25] pandeiro: you said you considered switching to VPS but thought it would be less secure, above [14:25] floby: erwe: depends on what you're gonna do [14:25] Kingdutch: On the webhosting, if people get my data through a port other than 80 I can blame my webhost [14:25] sriley: Kingdutch: everysite out that will at somepoint have an xss vulnerability [14:26] fly-away has joined the channel [14:26] Kingdutch: sriley: Sanitize user input, everywhere, and you wont [14:26] pair has joined the channel [14:26] floby: sanitize & MINIMINZE user input [14:26] Twelve-60: so uh... what was wrong with the old docs style :( [14:26] Kingdutch: Put this at the top of your php scripts: $_GET = $_REQUEST = $_POST = $_FILES = null; :D [14:27] Plouj: where is connectionListener documented? I'm not sure what functions are available in that class. [14:27] floby: Twelve-60: I don't know. I liked them but you couldn't print them I guess [14:27] Kingdutch: But it's coffee time, if you want to direct any messages at me, just nickalert me I'll read and reply in half an hour ;) [14:27] Twelve-60: floby: should have a printable version then... lol [14:27] sriley: even then you'll probably get stung at some point, for example in ie if you provide a malformed utf8 character you could escape a closing quote and inject attributes, just encoding didnt help for that [14:27] Twelve-60: this style seems much harder to use... [14:28] floby: Twelve-60: agreed [14:28] Plouj: I didn't find much about connectionListener in http://nodejs.org/docs/v0.4.1/api/all.html [14:28] erwe: floby: something which is similar to the mysql library on PHP.. [14:28] floby: Plouj: this is because events don't have this naming convention.. Wait a sec I'll point you to it [14:29] floby: erwe: well use mysql then ! [14:29] erwe: floby: but i like mongodb :D [14:29] erwe: mysql is too slow [14:29] lukus has joined the channel [14:29] squeeks: then your MySQL is poorly configured. [14:30] erwe: well my sql server works fine.. but mongodb is faster anyway.. [14:30] floby: erwe: then mongoose is cool. You can specify some constraints on the data and even use the resulting classes as your Model classes. except you won't be able to serialize them [14:30] erwe: mm k .. i'll use mongoose then.. ty [14:30] floby: erwe: if you're looking for fast, you can try redis [14:31] floby: Plouj: there you go [14:31] boaz has joined the channel [14:31] squeeks: erwe: that's nice, but mongodb still only can do one a single disk write at a time with all other writes locked during the transaction right? [14:31] floby: Plouj: http://nodejs.org/docs/v0.4.1/api/net.html#event_connection_ [14:32] Jourkey: anyone here use joose? [14:32] floby: Jourkey: what is this ? [14:32] sivy has joined the channel [14:32] eee_c has joined the channel [14:32] nivoc1 has joined the channel [14:32] Jourkey: umm joose is a lib that makes it easier to do OOP with js [14:32] Jourkey: http://joose.github.com/Joose/doc/html/Joose.html [14:33] floby: Jourkey: another one ? [14:33] Jourkey: any opinions? [14:33] katspaugh has joined the channel [14:33] floby: Jourkey; never used a library that "makes it easier to do OOP" as I understand quite well prototypal inheritance. But may be useful for others [14:33] dsirijus has joined the channel [14:33] erwe: mmm redis uh? let's see [14:34] nooob: what is wrong with the commonjs way? [14:34] Druid_ has joined the channel [14:34] floby: erwe: quite different principles. basically a key/value storage. with "exotic" data types. numbers, strings, lists, maps, and pubsup [14:35] erwe: O.O [14:35] Jourkey: sure floby was just wondering if i was missing smth [14:35] Jourkey: it seems pretty popular [14:36] rpflo has joined the channel [14:36] Jourkey: i use mongodb native instead of mongoose, sometimes i feel stupid for doing so [14:36] eb4890 has joined the channel [14:37] floby: Jourkey: I haven't heard of it before. but as you can see I'm not attentive to these libraries so... [14:37] eb4890 has joined the channel [14:38] Jourkey: anyone have an opinoin on step vs q? [14:38] Fuu has joined the channel [14:39] erwe: but i can't search for values with redis :| [14:39] floby: Jourkey: Tim (who wrote step) says you shouldn't use it anymore if I recall well. the general feeling about flow control libraries on the mailing list is that you should write your own to fully understand what is going on [14:39] erwe: that sucks :E [14:40] floby: erwe: really ? I never used it so. but some simple things are also difficult to do with mongodb such as autoincrement, find a maximum and such [14:40] Jourkey: floby: ok, interesting, thx [14:42] erwe: floby: y.. i need a database that can handle a lot of connections without a really powerful hardware.. that's why I looked at mongodb :P [14:42] jacksonmills: postgresql? [14:42] jacksonmills: ACTION hides under a rock [14:42] floby: erwe: how many instance of node will you have connected to your databse ? [14:43] dewey_: and what are "a lot of connections" [14:44] erwe: i don't know.. i'm just trying to make it as much scalable as possible [14:44] brian_irish has left the channel [14:44] JamieD has joined the channel [14:44] slaskis: compress gives me these errors: https://gist.github.com/1c01a935e299c6e34b62 [14:44] Plouj: whoa, I set a single ascii character to my socket (via telnet) and it prints a huge json array (in server.on('connection', function(socket){socket.on('data', function(data){console.log('socket received data: %j', data);});});! What does it mean? [14:45] dewey_: and why not mysql? [14:45] slaskis: i guess solaris zlib is different? [14:45] JamieD: hi all, would anyone be able to tell me the pros/cons of using nom vs kiwi? [14:45] JamieD: *npm [14:45] dewey_: isn't npm the standard? [14:45] chapel: v8: console.time('Time took: '); var x = [], n = 0; for (i = 0; i >= 100000; i++) { x.push(n++); }; console.timeEnd('Time took: '); [14:45] v8bot: chapel: TypeError: Object [object Object] has no method 'time' [14:45] chapel: hmm [14:45] squeeks: it's not the "standard", rather the "de facto" [14:46] erwe: woha expressjs looks like django [14:46] erwe: :O [14:46] chapel: node has console.time [14:46] floby: dewey_: kind of. it's just the best [14:46] dewey_: yeah, but that's my shitty english.. that's what I mean ;) [14:46] gkatsev: isn't kiwi kind of dead anyway? [14:46] JamieD: so the general consensus is to use npm? [14:46] dewey_: si [14:46] herbySk has joined the channel [14:46] squeeks: though some of us are clearly biased [14:47] floby: squeeks: me ? =) [14:47] malpeli has joined the channel [14:47] dewey_: well, almost all the popular modules are on npm [14:47] gkatsev: hm... isaacs isn't here to be biased. [14:47] Jourkey: use npm [14:47] dewey_: it's the only one listed @ the modules page @ node wiki [14:47] jano has joined the channel [14:47] floby: ACTION use npm everyday [14:47] gkatsev: erwe: isn't it based on rails? [14:48] dewey_: sinatra right? [14:48] gkatsev: I think so [14:48] gkatsev: and tj isn't here? [14:49] gkatsev: so weird [14:49] Plouj: ok, so I can read strings from a socket. Does that mean that underneath the hood, net.Socket waits buffers the data up to a newline or EOL or something before passing it to the function(data){...}? [14:49] arpegius has joined the channel [14:49] floby: it's based on connect... ? [14:49] JamieD: i thought express was more like Sinatra? [14:49] Plouj: where can I read about the underlying protocol of net.Socket [14:50] Plouj: so far, I have this: http://fpaste.org/XjA4/ [14:50] dewey_: in the source code [14:50] floby: Plouj: no it doesn't buffers lines. You have do this yourself or use the tiniest module in the world that I coded which is called `lines` on npm [14:50] Plouj: floby: howcome that function(data){} is called every time I press RETURN in my telnet client? [14:51] Plouj: floby: so if I type "blah blah blah" in telnet, the script prints: socket received data: blah blah blah [14:51] Plouj: floby: how does net.Socket know when the client finished sending data? [14:52] floby: Plouj: that's because you're no fast enough. [14:52] Plouj: not fast for what? [14:52] losing has joined the channel [14:52] floby: Plouj: if you mash your keyboard (or do it programmatically) you'll see that you get `data` as a multiline string [14:52] postwait has joined the channel [14:52] bzinger_ has joined the channel [14:53] bradleymeck has joined the channel [14:54] Plouj: floby: so where do I find out exactly how this works? [14:54] Plouj: I'm trying to figure out if I need to do something special to (eg: create and follow a protocol) to know when the client stopped sending data [14:55] floby: Plouj: I don't know. just assume that you'll receive randomly mangled data and treat it as such. you can buffer it while waiting for a newline an call a function for each line for exaple [14:57] Plouj: floby: ok, that's what I want to do, can I see your example then? [14:57] sriley: has anyone used the connect-auth module recently? cant seem to get it working even with the example app, failing authentication [14:57] Plouj: can I just see its source on npm somehow? [14:57] bengl has joined the channel [14:57] floby: sriley: tried it and finally used my own. it just couldn't fit with my models [14:57] sriley: did you get it working even? [14:58] floby: Plouj: yes you can. `npm install lines` and then `npm ex lines` [14:58] ceej has joined the channel [14:58] floby: Plouj: I'm not sure if it's the latest version though [14:58] Plouj: thanks [14:59] floby: Plouj: http://github.com/Floby/node-lines/blob/master/lines.js [14:59] mikeal has joined the channel [14:59] petridish has joined the channel [15:00] Plouj: great [15:01] beta_ has joined the channel [15:01] Kingdutch: Back [15:01] gattuso has joined the channel [15:02] Kingdutch: Did I miss anything? [15:02] herbySk has joined the channel [15:02] jano_ has joined the channel [15:02] beta_ has joined the channel [15:03] sivy has joined the channel [15:03] devrim has joined the channel [15:03] eyesUnclouded has joined the channel [15:03] darkredandyellow has joined the channel [15:04] floby: Kingdutch: not much. we talked about npm being awesome [15:04] springmeyer has joined the channel [15:04] Kingdutch: Aaah [15:04] Kingdutch: I want to reinvent the internet [15:04] Kingdutch: Or well [15:05] Kingdutch: not the internet [15:05] Kingdutch: but the http part of it [15:05] floby: http is find [15:05] Kingdutch: Use android like permissions, give the server more info like browser dimensions etc. and have an easier way of rendering stuff, that'd make 3D stuff easier too [15:05] floby: if you want to reinvent the internet in a better fashion. find a way to make animated PNGs instead of GIFs [15:06] Kingdutch: lol [15:06] softdrink has joined the channel [15:06] Kingdutch: Well I don't mean HTTP as the protocol [15:06] Kingdutch: but I mean the whole way we go about making websites [15:06] sriley: 3d stuff is already easy, you have opengl binding in js (webgl) [15:06] floby: sriley: still experimental yet, isn't it ? [15:06] dve has joined the channel [15:07] Kingdutch: sriley: I know [15:07] Kingdutch: floby: Well it's implemented in Firefox and chrome (Latest version (Or nightlies for FF anyway)) [15:07] Kingdutch: But yeh it's labeled experimental [15:07] Kingdutch: My point is just, webgl wont work if you disable Js [15:07] floby: Kingdutch: in Chromium & Chromium ? [15:07] Kingdutch: And like discussed before, JS has a lot of vulnerabilities, why, because it can do stuff without the user's permission [15:07] bwinton: Kingdutch: People still disable js? [15:07] floby: ACTION goes and plays for hours [15:07] Kingdutch: floby: It's in Chrome 9 [15:08] Kingdutch: It's in chrome 8 too, but not hardware accellerated [15:08] sriley: bwinton: noscript is one of the most popular addons for browsers [15:08] Kingdutch: My point is just, we try to make websites interactive [15:08] Kingdutch: The HTTP protocol by definition is not made for this [15:09] NuckingFuts has joined the channel [15:09] floby: sriley: addons popularity doesn't mean a thing. people install addons that do things that the core already did [15:09] jopie has joined the channel [15:09] Aikar: Kingdutch: whhat... ? a programming language that runs w/o user action is a security vulnerability? [15:09] Kingdutch: Why not just allow for an open connection, where the server renders stuff and the client is just a viewer, or something like that [15:09] Aikar: that makes no sense at all [15:09] Kingdutch: Aikar: Where do you see me saying that O.o [15:09] floby: Kingdutch: look at IBM and OS/400 [15:09] jopie: Anyone have Expresso working with Mongoose? [15:09] Aikar: Kingdutch> And like discussed before, JS has a lot of vulnerabilities, why, aklt because it can do stuff without the user's permission [15:10] Kingdutch: I present you, XSS, clickjacking and the like [15:10] strmpnk has joined the channel [15:10] Kingdutch: Maybe I'm not explaining myself right [15:11] amacleod has joined the channel [15:11] rbranson has joined the channel [15:11] Kingdutch: But that sentence was a continuation on my android comment a few lines higher [15:11] Aikar: thats not a 'vulnerability' in the language, thats developers not securing their site and running other malicious code on their site [15:11] Aikar: ALL languages (for most part) can be used for malicious intent, doesnt mean the language has a vulnerability [15:11] floby: what you mean is that HyperText is not suited for todays needs [15:11] strmpnk has joined the channel [15:12] Kingdutch: floby: Can't find the relevance of OS/400 to this =/ [15:12] Aikar: if it cant be used for malicious intent, its probally not a useful lang [15:12] Kingdutch: Aikar: Android presents a way where Java can be used and prevented from doing malicious stuff [15:12] Kingdutch: simply by letting the user grant permission for whatever the app wants to do [15:12] Kingdutch: Once [15:12] jopie: Doesn't chrome do the same? [15:13] Kingdutch: If the app hasn't requested permission, a function will not work [15:13] kawaz_air has joined the channel [15:13] jopie: everything is sandboxed [15:13] Kingdutch: I don't know, but you're still building on something that wasn't initially designed for it [15:13] bentruyman has joined the channel [15:13] Aikar: Kingdutch: js would be useless and noone would use it and wed have no rich web experience at all if the user had to grant permissions for a page to modify the DOM [15:13] NuckingFuts: Kingdutch: what? Chrome is entirely sandboxed from the ground up [15:13] NuckingFuts: so it can't do shit [15:14] Kingdutch: My biggest problem at the moment is the fact that, for display, you need HTML + CSS, to get server side interactivity, grab some ducttape slap anotehr layer on that (PHP and the like) to get client side functionality added to that, add javascript with some more ducttape, why do we need so many layers and different languages/data types? [15:14] flow3r has joined the channel [15:14] floby: Kingdutch: I used IBM systems when I learn COBOL. And nothing is done on the client machine. server sends you a screen grid, you fill it and send the whole think back. [15:14] Kingdutch: Which is what I'm trying to convey [15:14] Aikar: Kingdutch: you want to make Windoze EXE's on the web it sounds like [15:15] Aikar: well you can get Visual Studio and develop ASP.NET based apps w/o doing all that [15:15] floby: this is separation between aspects of your application [15:15] Aikar: each language is designed to suit the task [15:15] floby: HTML -> data [15:15] floby: CSS -> graphics [15:15] floby: JS -> functionnality [15:15] eee_c has joined the channel [15:16] NuckingFuts: Kingdutch: Welcome to the world of the 1980's. Come, learn the division of display/action/content we have in the web. [15:16] Kingdutch: floby: PHP -> functionality [15:16] jmar777 has joined the channel [15:16] Kingdutch: See, two functionalities :o [15:16] Aikar: sounds like kingdutch is wanting to be lazy and only learn 1 language :/ [15:16] Aikar: 2 functionalities in 2 distinct places [15:16] NuckingFuts: Kingdutch: wrong again [15:16] Kingdutch: Aikar: I'm fine with multiple languages, it's just the fact they're all friggin intertwined [15:16] NuckingFuts: PHP is used for generating all 3 ;;) [15:17] devrim has joined the channel [15:17] jopie: I stumbled into this discussion halfway, but is Kingdutch trying to say Node.js is useless? or what is the link to node [15:17] Aikar: and how would you expect the web to work if they wasnt intertwined? [15:17] Kingdutch: Doesn't make sense to me, use one slow language to generate three others, why not just stick with two [15:17] bradleymeck: Mixing languages that are not explicitly domain specific is generally a bad idea [15:17] Aikar: jopie: its off topic [15:17] Kingdutch: jopie: Nah sorry, no link to my rant and node [15:17] bradleymeck: anywho, is jsperf down? [15:17] floby: PHP is the ducttape [15:17] TomsB has joined the channel [15:18] Aikar: Kingdutch: so your sayin we shouldnt have server side languages? you need to go back to the 90's [15:18] Kingdutch: Aikar: I'm saying no such thing [15:18] Aikar: static HTML pages were cool back then [15:18] purrrrrrrrrrrr has joined the channel [15:18] dingomanatee has joined the channel [15:18] jopie: some people still think they are... [15:19] floby: Aikar: they had animated GIFs... those were good ol times [15:19] NuckingFuts: Aikar: then we got static html + static JS [15:19] Kingdutch: I'm saying we should have web dev more like desktop development, where the data is near the application (Just ike it is with PHP now) but the layout and what the layout does is near it too [15:19] NuckingFuts: Now we have things like PHP --> HTML/CSS --> JS [15:19] Kingdutch: Right now there's this massive gap between layout, it's functionality, and the server side with it's data [15:19] jopie: coming back to today, does anybody have pointers on creating a modular node.js app that's testable? [15:19] NuckingFuts: 3 layers [15:19] Aikar: in order to have dynamic content, you need logic to dictate what content is rendered. thats where SSL (Server side languages) coimes in [15:19] NuckingFuts: Kingdutch: I assume it's a holdover from the classic model-view-controller layout. [15:19] jopie: Kingdutch: look at Latex, you want to seperate out data/syntax and beautification/semantics [15:20] bradleymeck: in one corner we have the people who want to make everything look the same even if it is different, in the other we have people who want to separate things in a way that they do not logically combine as to keep separation [15:20] Kingdutch: Yes, but you also need logic drivign the client side. Why can't we have the logic for the client side and server side at one place =| [15:20] Aikar: so you want drag and drop gui to build websites Kingdutch [15:20] Aikar: so go use ASP.NET [15:20] NuckingFuts: Kingdutch: *THEY'RE DIFFERENT THINGS* [15:20] bradleymeck: aikar not what he is saying [15:20] jopie: kingdutch: I write my php with views that have both view logic and JS in one file [15:21] Aikar: Kingdutch> I'm saying we should have web dev more like desktop development, [15:21] NuckingFuts: Kingdutch: Go grab JSPP, and have fun. [15:21] Aikar: bradleymeck: sounds like it to me lol [15:21] Kingdutch: NuckingFuts: But I don't see why they should be =/ [15:21] jopie: people have ported lots of php functions to js if that's what you wnat [15:21] Kingdutch: Aikar: I don't use a drag and drop editor to create desktop apps, tyvm [15:21] NuckingFuts: Kingdutch: They require two entirely different styles. [15:21] ph^ has joined the channel [15:21] Kingdutch: Don't see how that is [15:21] Kingdutch: I click a button -> Server request -> data from server -> display [15:21] NuckingFuts: For one thing, server-side scripting has shown us that inline code is beautiful [15:21] hornairs has joined the channel [15:22] Aikar: Kingdutch: they cant be at the same side because you dont want your websites code to be publicly visible, the js layer dictates rich functionality of public elements [15:22] floby: why not take the problem the other way ? and stop developping desktop aps ? [15:22] NuckingFuts: whereas client-side code tells us not to [15:22] Aikar: sure you can build a site w/o js and do all the logic on the server side [15:22] Aikar: your not required to use javascript [15:22] dthompson has joined the channel [15:22] NuckingFuts: Kingdutch: How confusing would it be, to use two different forms of JS in one file? [15:22] Aikar: Kingdutch: you can do that workflow you said above currently as is today [15:23] Aikar: yuo dont HAVE to use javascript [15:23] Kingdutch: Aikar: I could do an entire app in JS, problem is peopel would see all my database login data, making it useless, that's where web flaws come in and desktop apps differ, for a desktop app there's no, right click -> view source [15:23] NuckingFuts: I'd imagine you could easily mix the two up [15:23] bradleymeck: aikar he is mostly wanting to have the ability to have a language available for use on both server and client side. which double mvc has no complaints against, and if you think single mvc works for client + server w/ dynamic pages i would be interested in that discussion later. The fact is that people expect dynamicism [15:23] NuckingFuts: Kingdutch: Hence why I say that they NEED to be different languages [15:23] Aikar: Kingdutch: except theres packet sniffers and decompilers and reverse engineering [15:23] floby: Kingdutch: I can do it with mine although it's more complicated than a right click [15:24] bradleymeck: nuckingfuts: language does not denote environment /headdesk [15:24] Aikar: its just more technical on an app vs web [15:24] Kingdutch: NuckingFuts: That's my point, the web today is flawed, because you NEEED different languages [15:24] Kingdutch: ACTION goes off to make some sketches [15:24] NuckingFuts: bradleymeck: I know, but what I'm saying is that if you use JS for both server AND client code IN THE SAME FILE, you're prone to accidentally mixing them up, sending server code to your client [15:24] Aikar: you dont NEED, just each lang may serve a specific task better [15:25] bradleymeck: nuckingfuts, you most likely shouldnt have them in the same file, and inline js is discouraged anyway for many reasons so i see no reason the server/client code would be in the same file [15:26] bradleymeck: but i agree it would be a cluster if they were... ugg... [15:26] NuckingFuts: bradleymeck: Agreed, but it would still be confusing, especially switching paradigms like that. [15:26] NuckingFuts: I can instantly switch between PHP and JS, because they're so different that my mind clicks over [15:26] bradleymeck: well possibly, but the paradigms dont really need to change at all, just available apis [15:26] NuckingFuts: The $variable is enough to cause that :P [15:27] rpflo has joined the channel [15:27] NuckingFuts: bradleymeck: Not to mention, have you tried JSPP? It's hellishly complex lol [15:27] NuckingFuts: I tried it for a day, but gave up XD [15:28] __tosh has joined the channel [15:28] bradleymeck: nuckingfuts im not sure what a template has to do w/ this? [15:28] NuckingFuts: bradleymeck: It's not just a template, it's inline JS, PHP-style. [15:28] bradleymeck: which i would argue is bad by design [15:28] NuckingFuts: It seemed to execute somewhere between the server and client environments [15:28] floby: NuckingFuts: Oh I see... I developped one of those.. never use it ^^ [15:29] floby: used* [15:29] NuckingFuts: It had access to the window and such, which confounded me. [15:29] stagas: SubStack++ [15:29] v8bot: stagas has given a beer to SubStack. SubStack now has 17 beers. [15:29] Kingdutch: Something like such: The __call magic method is now invoked on access to private and protected methods. [15:29] Kingdutch: Ugh >.. [15:29] Kingdutch: https://docs.google.com/drawings/edit?id=12JsOobgwVpEMywhUbubkLNzn2oSv_snzQeBinAb7JRI&hl=en&authkey=CMDi2aUB [15:30] piscisaureus has joined the channel [15:30] stagas: SubStack: dnode is magic [15:30] floby: Kingdutch: what is this ? [15:30] bradleymeck: nuckingfuts, im not arguing that you should mix environments in the same place in the same language, the environments should provide means to separate out the logic between the 2, but both envs may use the same language, which would be a boon [15:30] Kingdutch: It's how I see web vs desktop apps [15:30] EyePulp has joined the channel [15:30] NuckingFuts: floby: I'm quite tempted to make my own right now, actually. A simpler setup, where it would change anything outside the sections into 'stream.write('escaped code')' [15:30] Aikar: does node have support for the unknown method that simulates phps __call? and wish we had a magic method for __get and __set >:( [15:30] Kingdutch: And the fact that I need to switch sides if I want to change the behaviour of a button [15:30] Kingdutch: Whereas in a desktop app I wouldn't have to do this [15:30] piscisaureus: mraleph: ping [15:30] jmar777: I write applications where a web page (defined in HTML) makes requests (via JavaScript) to a Rest service (also coded in JavaScript [yay node!]), that in turn calls another Rest service coded in Java that invokes a SPARQL query, which returns data from a sesame repository. [15:30] jmar777: if i had to do all that in the same language, i would shoot myself. [15:31] bradleymeck: aikar, look up es-harmony proxy implementations [15:31] NuckingFuts: Kingdutch: Switch sides? It's not that hard: You just click another tab/window in your editor [15:31] floby: floby: mine is inspired by jsp. but is streamed. it's called blue and is on npm if you want to check it out [15:31] Aikar: Kingdutch: heres the most simple answer to your debate that ends the discussion [15:31] Aikar: THE WEB IS NOT A DESKTOP APPLICATION [15:31] floby: yes [15:31] Aikar: its not meant to be, and shouldnt ever be [15:31] NuckingFuts: Aikar: Well phrased. [15:31] bwinton: Aikar: You're new to the Internet, aren't you? "ending" a discussion. Hah! ;) [15:31] jmar777: or in the same environment/context/whatever. layered network stacks are the heart of the internet and web applications, and allow us encapsulate our different concerns [15:31] NuckingFuts: Aikar++ [15:31] v8bot: NuckingFuts has given a beer to Aikar. Aikar now has 1 beers. [15:31] floby: a desktop app is used by one person at a time [15:32] floby: hundreds of millions of clients can connect to a server [15:32] Kingdutch: Never did I say it should be >.> you're just single track minded at the moment, I try to explain, but w/e [15:32] floby: and if you you make a desktop app that connect to a server you'll get the same gap between client and server code [15:32] colinsullivan has joined the channel [15:32] sirkitree has joined the channel [15:32] NuckingFuts: Kingdutch: And a correction to your desktop model. You forgot to include the Model-View-Controller setup. [15:33] Kingdutch: MVC < ALL [15:33] NuckingFuts: I'm pretty sure that that's similar to the PHP-HTML-JS model [15:33] Aikar: Kingdutch: do you really like the idea of malware authors being able to write infected pages that you cant view source on? theres a seperation for a reason. code thats ran on your PC is meant to be visible, code thats ran on the server is not meant to be seen by you. theres a connection with 2 ends, not a single dot. [15:33] jopie: even iPhone has MVC, how awesome does it have to be... [15:33] Aikar: floby++ [15:33] v8bot: Aikar has given a beer to floby. floby now has 1 beers. [15:33] Aikar: exactly [15:34] Aikar: the "front end" aspect of a website is exactly the same as a full on desktop app [15:34] stonecobra has joined the channel [15:34] floby: wow thanks. [15:34] Kingdutch: Aikar: Any app you dwonload/run could do the same.. [15:34] floby: I'm thirsty now [15:34] lukegalea has joined the channel [15:34] Kingdutch: Hence the need for a permission system [15:34] jetienne has joined the channel [15:34] Kingdutch: for such a new way of delivering content [15:34] colinclark has joined the channel [15:34] Aikar: any app that communicates to a server also has a seperation layer [15:34] Aikar: server code <-> desktop app code [15:34] Aikar: server code <-> web app code [15:34] floby: Kingdutch, nobody does that anymore. that's why java applets failed [15:34] Aikar: desktop all code = C# or w/e [15:35] Aikar: web app code = HTML + JS + CSS [15:35] Kingdutch: It's just, we're trying to make itneractive apps, with somethign that is designed to be standalone requests, that part just doesn't make sense to me [15:35] dthompson has joined the channel [15:35] abraham has joined the channel [15:35] Kingdutch: floby: I thought java apps failed because they were slow as **** [15:35] jetienne: all: what about discussing about node.js instead ? [15:35] gbot2: jetienne: spidermonkey: Error: SyntaxError: missing ; before statement: what about discussing about node.js instead ? .....^ [15:35] NuckingFuts: Kingdutch: The architecture of HTTP requires a server-client model. IF you can find a way around it, please tell me. [15:35] Kingdutch: NuckingFuts: Try a new protocol/architecture.. [15:35] jetienne: gbot2: silly bot [15:35] Kingdutch: That was the point of this entire debate :') [15:35] jopie: P2P HTTP with Socket.io? [15:35] Kingdutch: But fine, we can move back to node.js [15:35] floby: Kingdutch: yes, but javascript was even slower... but javascript got improved, not applets [15:35] Aikar: why did all: trigger spidermonkey lol? [15:35] fatjonny has joined the channel [15:36] jmar777: Kingdutch: standalone requests? sounds like you're referring to a thin-client model, as opposed to having the browser be a thick-client [15:36] NuckingFuts: floby: Not to mention JS stayed rather thin, while Java decided to bloat it up ;-) [15:36] Aikar: all: var foo = 1; [15:36] gbot2: Aikar: spidermonkey: undefined [15:36] Kingdutch: jmar777: If I send all the content for my website over in one go and let JS decide what to display and what not to display, you're going to be waiting minutes for maybe 1 page view ... [15:36] floby: jopie: thought of it and got bored out of the bittorrents specs [15:36] Kingdutch: and seeign as I can't rely on JS, I'd need CSS to hide it all, and might have to resend it on a page chagne [15:36] Kingdutch: change* [15:36] NuckingFuts: jmar777: Google would love them :P [15:36] jetienne: floby: i coded it for you :) http://webpeer.it [15:36] jopie: floby: they are a pain, but it's hellishly complicated [15:37] jmar777: Kingdutch: you don't need to send the whole application over. it can still be modular [15:37] pair: does anybody know if there is a way with express to not have certain things logged?.. I can't figure out how to turn off logging based off a condition [15:37] jetienne: http://webpeer.it is a merge between http and bittorrent protocols [15:37] jetienne: ACTION is offtopic too now :) [15:37] Aikar: sounds like web development just isnt for you Kingdutch [15:37] NuckingFuts: Aikar: Ain't that the truth? [15:38] floby: ACTION checking out webpeer [15:38] apoc: btw it would be really great to create a latest/stable symlink for the documentation: http://nodejs.org/docs/latest/... [15:38] Kingdutch: I suppose a node.js webserver would solve many problems a traditional webserver has in the fact that it could keep persistency, where you'd need e.g. PHP sessions to store data accross requests, and you can't just send a page update to the client [15:38] jmar777: Kingdutch: read through Fielding's dissertation on REST. it's not the same REST you get when you google it, and it'll convince you that 95% of web sites are "doing it wrong" [15:38] NuckingFuts: jetienne: lol @ shameless self-whoring :P [15:38] Aikar: Kingdutch: if you relied on persistency in a server your doing it wrong [15:38] floby: jmar777+ [15:38] Aikar: server could crash [15:39] jetienne: floby: http://webpeer.it/blog/2010/08/24/webpeer-binding-for-nodejs/ to be more on topic. unfortunatly this is all for node 0.2 . cant find the time to port on 0.4 [15:39] Aikar: you still need to store it externally [15:39] jopie: HTTP = stateless [15:39] Aikar: unless the data is meant to be temp [15:39] floby: my last year project was on REST [15:39] jetienne: NuckingFuts: well this is cool as it is on topic :) [15:39] Kingdutch: Aikar: You're trying to fit whatever I'm saying into the HTTP picture, which is not what I'm trying to do.. I'm talking about a new way to make websites, which goes away from the HTTP protocol.. but anyway I'll check out that resource jmar [15:39] NuckingFuts: Aikar: Doesn't PHP's $_SESSION allow for persistent storage of variables on the user session? [15:40] floby: jetienne: I think I already been on this page. is this some kind of CDN ? [15:40] Aikar: NuckingFuts: it stores to disk [15:40] mraleph: piscisaureus: pong [15:40] Aikar: or optionally another storage mechanism [15:40] NuckingFuts: Aikar: Thought so. [15:40] jetienne: floby: yep it may be seen as a userdriven cdn [15:40] Aikar: so you cant rely on $_SESSION if your servers are not configured correctly in a load balanced cluster [15:40] piscisaureus: ah mr א [15:40] floby: jetienne: slick! [15:40] NuckingFuts: Kingdutch: You cannot send data unless the client requests said data. [15:41] piscisaureus: You think that build system patch will be looked at? [15:41] Kingdutch: NuckingFuts: Yet we're all trying so desperately with javascript to do just that [15:41] NuckingFuts: Kingdutch: Not really. [15:41] Kingdutch: Look at long polling and the likes [15:41] floby: jetienne: like freenet without the anarchist retards ? ^^ It's interesting [15:41] bradleymeck: nuckingfuts that is somewhat untrue now days w/ comet/longpolling/websockets anywho [15:41] jetienne: floby: i will refactor the website . to make it clearer and to update node.js binding [15:42] Aikar: Kingdutch: the rest of the world disagrees in that we dont need a new system like your describing. the current system is fine. our only issue is stupid backwards compatability, THATS the problem the web has. [15:42] jetienne: floby: yep :) [15:42] NuckingFuts: bradleymeck: Well, yes, but it still takes the client side to initiate said connection ;-) [15:42] mraleph: piscisaureus: eventually. [15:42] floby: jetienne: that goes Ctrl+D'd [15:42] Kingdutch: Aikar: I disagree with the fact you're entitled to speak for the rest of the world, but w/e [15:42] jetienne: floby: ctrl+d ? [15:42] piscisaureus: ok. so issues are never "forgotten"? [15:43] NuckingFuts: Aikar: I agree. Backword-compatibility is a bitch. [15:43] raidfive has joined the channel [15:43] strmpnk_ has joined the channel [15:43] Aikar: the web could be innovated to all hell with features... if we didnt have old browsers [15:43] floby: jetienne: ^^ well... bookmarked [15:43] jmar777: the biggest problem with HTTP is that people use it wrong. it's not a transport protocol, it's an application protocol, and therefore SHOULD imply application-level constraints. people don't understand HTTP though, and do things that violate those constraints [15:43] Aikar: stuff like "client width/height" could be sent over HTTP headers [15:43] NuckingFuts: Aikar: IE :P [15:43] jetienne: floby: ah :) [15:44] NuckingFuts: Aikar: Wouldn't that be wonderful? 8D [15:44] bengl has joined the channel [15:44] Kingdutch: Aikar: That would solve part of the problems I have with JS and PHP seperation [15:44] mad_v has joined the channel [15:44] Aikar: jmar777: saying "its not a transport protocol" when transport protocol is in its name is kinda weird :P [15:44] Kingdutch: which is why I suggest to make sometihng new that reveals info like that [15:44] Kingdutch: And it'd require different browsers [15:44] Aikar: Kingdutch: it can be added today as is, recommend it to html5 spec or w/e [15:45] trotter has joined the channel [15:45] Aikar: that can be added to user agent string [15:45] Kingdutch: So maybe HTTP would lend itself, just not the way the web is developed nowadays [15:45] jopie: Anyone here use Mongoose with any kind of TTD? [15:45] Aikar: but older browsers wont support it [15:45] jmar777: Aikar: heh, i guess i meant to differentiate application LAYER from transport LAYER [15:45] jopie: *TDD [15:45] Aikar: i really need to get to work ;( [15:45] pandeiro: Could some kind of Wave clone be done with node (and a db)? [15:45] Kingdutch: Aikar: I can suggest it, it wont be implemented for years, also why not just send it along as headers instead of another addition to the user agent string [15:46] petridish has joined the channel [15:46] vipaca has joined the channel [15:46] floby: pandeiro: definitely. It think someone posted something like it on the mailing list [15:46] msch has joined the channel [15:46] Aikar: Kingdutch: user agent header describes the users "agent", the agents width and height kinda makes sense to be in UA string [15:46] NuckingFuts: floby: I saw that on one of the wiki pages too. [15:47] hunterloftis has joined the channel [15:47] yhahn has joined the channel [15:47] floby: Wave server is open source, isn't it. [15:47] floby: and works well [15:47] sth: yup [15:47] Kingdutch: Aikar: I don't really care _where_ it is, as long as the server can get the data [15:47] NuckingFuts: floby: It is [15:47] Aikar: but the suggestion would be denied anyways, as the server shouldnt be dictating rendering, and the browser could resize. doing stuff based on agent size should be done on the agent and not server [15:47] NuckingFuts: floby: But it's in Java. Ruck. [15:47] NuckingFuts: *Yuck [15:48] Aikar: width and height are not useful for passing to server [15:48] hunterloftis: ExpressjS - anybody else have trouble getting partials to reliably receive data? partial('account', { user: 'Dude' }) is telling me that account.user is undefined... this only seems to happen with nested partials [15:48] floby: NuckingFuts: don't tell me about it... but if it works, then it's okay. just patch some hooks in it [15:48] Kingdutch: Aikar: Why not? [15:48] pandeiro: yeah wave server is open source but i think it uses xmpp? [15:48] Aikar: hunterloftis: gotta do {locals: {user [15:48] Kingdutch: They'd allow the server to calculate absolute positioned layouts [15:48] coltrane has joined the channel [15:48] Aikar: Kingdutch: thats something CSS is meant to do [15:48] hunterloftis: Aikar: Ah, so "locals" was removed from template rendering, but not from partials rendering? [15:48] Kingdutch: Which currently aren't possible seeing as if someone has a small screen and no js to edit the layout, and absolute positioned layout would fail [15:48] Kingdutch: Unless you make it fluid, which doesn't always look good [15:48] Aikar: hunterloftis: oh, i dunno about that. i havent used it in a while [15:49] Aikar: Kingdutch: trying to support the web on old 'dumbphones' is a completely different subject... [15:49] jmar777: Kingdutch: if the width/height was relevant to the response media, you could always use an Accept header [15:49] warz has joined the channel [15:49] hunterloftis: Aikar: thanks for the suggestion, just tried it though and even with locals it fails [15:49] Aikar: and you can do css positioning w/o js [15:49] Kingdutch: Aikar: Wasn't it you who said we should support non-js browsers? [15:50] mgc has joined the channel [15:50] jmar777: Kingdutch: either way though, sounds like a presentation concern, which belongs in the application logic, which should ideally therefore be handled by the browser as a thick-client [15:50] Aikar: i do think that yes, but in the sense you shouldnt rely on js unless the site is heavy js based. but layout is not something that needs to be done with js [15:50] Kingdutch: No we could do it with CSS [15:51] Kingdutch: however, CSS doesn't really allow for complex layouts that work accross sizes of 300x330 to 2000x2000 [15:51] Kingdutch: Unless you make it static or fluid [15:52] joeshaw___ has joined the channel [15:52] Aikar: if you need js to render your site, you use a tag [15:52] jmar777: noticing a couple actual #node.js questions going unanswered. perhaps this convo should temporarily move to #node.js-ot? [15:52] Kingdutch: And you can't change from static to fluid based on browser dimensions ( I guess you could with min-width, max-width etc. but even then, knowing the dimensions before you send a layout to the client to display, you could do some stuff you can't do with css alone) [15:52] Aikar: only browsers that legitly dont support js are old dumbphones, which you wont have a rich site layout for anyways [15:52] Aikar: im done with the convo, i gotta work lol [15:52] Kingdutch: k, have fun :) [15:53] Utkarsh_: How can I get the raw response body using http.get? http://nodejs.org/docs/v0.4.1/api/http.html#http.get [15:53] tmpvar has joined the channel [15:54] gattuso: hi, can with --expose-gc the address of a variable in node.js? [15:54] johnnywengluu has joined the channel [15:54] floby: Utkarsh_: must be in the res param. util.inspect it [15:54] bingomanatee has joined the channel [15:54] mraleph: gattuso: what? [15:55] pdelgallego has joined the channel [15:55] gattuso: mraleph: i want to view where a variable is addressed [15:55] gattuso: like in C &var [15:55] mraleph: piscisaureus: no, nothing will be forgotten especially if the author continues to ping us :-) [15:55] mraleph: gattuso: this is not possible. [15:55] gattuso: nor with --expose-gc option? [15:55] jmar777: Utkarsh_: var res = http.get(...) [15:56] jopie: now we're on the topic of node.js again, anyone have pointers (blogs, tutorials, vids, brilliant ideas) for Mongoose and TDD? or TDD in general. This callback spaghetti is leaving me very lost… [15:56] floby: mraleph: it is if you put your hands in C++ I think [15:56] mraleph: gattuso: expose-gc just gives you a function to invoke GC. [15:56] gattuso: or with some debugging option? [15:56] floby: jopie: I was planning on using TDD last time I used mongoose. but in the end I spent most of my time in the REPL fooling around [15:56] mraleph: gattuso: why you need this? you can look at the generated code. [15:57] gattuso: when i create a = 2 & b = 2; a & b point to the same variable? [15:57] JulioBarros has joined the channel [15:57] jmar777: Utkarsh_: in the callback you pass to get, do this: var body = ''; res.on('data', function (chunk) { body += chunk; }); [15:57] gattuso: mraleph: [15:57] floby: gattuso: no they don't [15:57] Yuffster has joined the channel [15:57] Utkarsh_: jmar777, ah, so there's no simpler way to get the whole response at once? [15:57] floby: gattuso: all vars in JS are references except when the type is Boolean, Number or String [15:57] mraleph: gattuso: variables are places, you can't point to them. you can point to values. [15:58] Tobsn has joined the channel [15:58] bingomanatee: jopie: while callbacks are in the nature of node, they need not be as anonyous as is current practice. I often name and seperate my callbacks out to clarify code. [15:58] jmar777: Utkarsh_: you could easily create a convenience wrapper for that. but by default, http.get doesn't know if it's discrete response or streaming [15:58] gattuso: then the === operator what is good for? [15:59] bingomanatee: You can use the module system to further organize nested callbacks - but if callbacks as such aren't your thing then node is probably not going to be an enjoyable experience for you. [15:59] floby: gattuso: check that two vars are of the same value & same type. [15:59] bingomanatee: BTW what is TDD? [15:59] FireFly|n900: gattuso, it compares types [15:59] mraleph: gattuso: to do a strict comparison without implicit type coercions. [15:59] tim_smart has joined the channel [15:59] floby: bingomanatee: Test Driven Development [15:59] bingomanatee: oh [16:00] justin____ has joined the channel [16:00] jopie: I meant any test framework [16:00] mraleph: gattuso: 2 === 2 [16:00] gattuso: thanks [16:00] bingomanatee: You will see some informal tests in most GIT modules - I don't believe there is a formal unit test system in practice in node (though I could be wrong) [16:00] mraleph: gattuso: a = 2; b = 2; then a === b. [16:00] pdelgallego has joined the channel [16:01] jopie: bingomanaee: well I have expresso and should.js, but can't get Mongoose to also work with them [16:01] bingomanatee: Mostly what I have seen is people call a function and just do $result == 'foo' ? console.log('good') : console.log('bad') [16:01] floby: bingomanatee: there are several frameworks. I fancy vows. [16:01] bingomanatee: cool. [16:01] jmar777: Utkarsh_: check this out: https://github.com/mikeal/request [16:01] bingomanatee: I'll look into that. [16:02] mraleph: floby: even if you get your hand on C++ you can't get address of the variable. that would require some hacking inside V8. [16:02] venom00ut has joined the channel [16:02] floby: bingomanatee: write your tests in separates programs allows them to be used programmatically. For exemple with git bisect [16:02] venom00ut: ehi there gattuso [16:02] Utkarsh_: jmar777, ah, thanks! I should probably read the source of this to learn more. [16:02] gattuso: ehi venom00ut [16:02] bingomanatee: I have gotten mongoose to work on a basic level recently. You do of course have to put the unit test comparison in a callback - if you try to get the return value of most node functions, well, there isn't any - the return value is passed to a callback. [16:02] floby: mraleph: I didn't say they should :D [16:02] colinsullivan: I am new to node, and am looking at a socket.io example where at the top of an HTML file there is ``