[00:00] ashb: cruxst: what makes yo usay it small? [00:00] cruxst: isaacs: small communities with zero previous exposure are less trustworthy, yes [00:00] elliottcable: I’m tired of this conversation. If anything, from what I’ve seen so far, the Node.js community would be better off *without* people like cruxst, not with… so I’m going to stop trying to convince him. [00:00] isaacs: a few years ago, Paul Graham made a good point about small communities, and dubbed it the "Python Effect" [00:00] elliottcable: in other news, hah! nailed that problem, thanks inimino [00:00] isaacs: nowadays, python is much more widespread. [00:00] cruxst: elliottcable: chill pill? [00:00] inimino: elliottcable: cool, good work [00:00] cruxst: elliottcable: (again) [00:01] isaacs: but SSJS is the new Python Effect [00:01] elliottcable: inimino: not me, you. [00:01] isaacs: if it's not for you, great. Go use Rails or .NET or Struts. [00:01] inimino: :) [00:01] isaacs: we don't have to fight over what's better. [00:01] elliottcable: inimino: beyond that, it was just a check to ensure that after setting this.constructor.prototype to this, that that *actually happened*… if not, I create a new function, and use that. [00:02] cruxst: isaacs: nice [00:02] cruxst: isaacs: good point [00:02] cruxst: isaacs: i actually passionately hate rails and .NET [00:02] inimino: elliottcable: ah, makes sense [00:02] isaacs: cruxst: sure. substitute whatever framework you like better, then. [00:02] orlandov: has anyone much experience implementing a server package like node.js's http? the http.js documentation could be better [00:02] isaacs: the point is, coming to #node.js and expecting to hear a response to "why isn't this enterprise ready, how can you trust it!?" is silly. [00:03] elliottcable: isaacs++ [00:03] isaacs: personally, i trust it because i've seen the code. that doesn't have to convince you. [00:03] elliottcable: we need a bot. For !grab and ++/-- [00:03] isaacs: and that's ok :) [00:03] cruxst: isaacs: incorrect. my question was who are the people behind the project. [00:03] inimino: cruxst: which is irrelevant to the technical merits [00:03] isaacs: cruxst: apologies, i didn't intend necessarily to aim my comments at you. i came into the discussion when the smoke detectors were already going off. [00:04] orlandov: cruxst: why does that matter? [00:04] isaacs: it's a common topic that i see here. [00:04] orlandov: shouldn't the code speak for itself? [00:04] cruxst: isaacs: you are lucky to have enough exp to be able to evaluable such a complex project via just looking through the code [00:04] cruxst: i have a CS degree and still cant. [00:04] Connorhd: elliottcable, written in node I assume? ;) [00:04] isaacs: cruxst: not luck. just choosing to spend my time speaking http and js for a few years, that's all. [00:04] ashb: surely you can look at the code and see if it inspires confidence? [00:04] elliottcable: that’s because CS degrees are absolute shit. [00:04] orlandov: elliottcable++ [00:04] isaacs: ACTION 's CS degree is absolute shit [00:04] ashb: its true - they really are (i have one too) [00:04] elliottcable: I got tired of that shit halfway through my first ‘programming’ class (it was Java, hah!) and dropped out. [00:04] cruxst: elliottcable: wow youre in the zone today buddy [00:05] cruxst: elliottcable: what school? [00:05] elliottcable: cruxst: always am. Here every tuesday, tips in that jar by the stage, make sure to follow twitter.com/elliottcable. [00:05] elliottcable: ACTION exit stage left [00:05] inimino: ashb: I wouldn't recommend anyone who doesn't know JavaScript and can't understand the code to try and evaluate it [00:05] cruxst: haha [00:05] cruxst: word [00:05] ashb: inimino: evaluate no, but oyu can get an idea if it appears well written [00:05] ashb: which is something [00:06] isaacs: ACTION the spaces-for-indentation almost turned me off... [00:06] inimino: not much of something, I'd say [00:06] orlandov: isaacs: what do you use? [00:06] ashb: the blood of virgins [00:06] elliottcable: ashb++ [00:06] isaacs: orlandov: i'm a tabs guy, since i think that we should all be able to view code the way we like it best. [00:06] cruxst: ok that is all guys. thanks for the info. [00:07] cruxst: out [00:07] isaacs: if you like 4 spaces, then you can set tabs to that. i can set mine to 5 or 2 or whatevs. [00:07] orlandov: ahh... 4space4life homes [00:07] isaacs: cruxst: thanks for stopping by. please keep an eye on node, it's quite good. [00:07] elliottcable: suck my 2space. [00:07] inimino: spaces > tabs [00:07] orlandov: elliottcable: you animal [00:07] ashb: isaacs: requires dicisple/good editor support to avoid mixing indend and alignment [00:07] isaacs: since we're all feeling feisty today, how about we fight over indentation? [00:07] isaacs: ^_^ [00:08] ashb: i dont like it [00:08] elliottcable: ACTION lives on an euclidean plane [00:08] isaacs: ashb: alignment is bad. [00:08] ashb: everything in column 1 [00:08] isaacs: just indent [00:08] cruxst has left the channel [00:08] inimino: isaacs: in theory your position is commendable but in practice using anything other than spaces is unmanageable [00:08] Connorhd: so, vim or emacs? [00:08] okito has left the channel [00:08] orlandov: vim! [00:08] inimino: vim! [00:08] elliottcable: butterflies. [00:08] isaacs: inimino: i disagre. [00:08] isaacs: i've managed it a lot [00:08] elliottcable: [00:08] isaacs: even on big (>20 people) teams [00:08] elliottcable: isaacs: is an emacs user! CRUICIFY HIM [00:08] ashb: elliottcable: b-. must try harder [00:09] isaacs: ACTION is even worse. a TextMate user... [00:09] orlandov: oh dear [00:09] inimino: TextMate /and/ tabs? [00:09] inimino: ACTION reaches for pitchfork [00:09] isaacs: hehe [00:09] ashb: bah. i dont want to use a global variable here [00:10] ashb: aha! maybe i dont have to [00:10] elliottcable: Nah, I’m a TextMate/vim guy, with Espresso for everything where it’s possible (XML|X?HTML|(LE|C)SS) [00:10] isaacs: mate's been letting me down lately, though. not sure why, but it seems to crash at least 1ce per day [00:10] elliottcable: aw, forgot some ?:’s [00:10] elliottcable: 1ce? seriously? [00:10] isaacs: yeah, one whole ce! [00:10] elliottcable: 2ice. [00:11] isaacs: i think it's not agreeing with snow leopard. luckily txmt 2 will solve that problem. [00:11] isaacs: along with every other problem. [00:11] elliottcable: ponies and balls, dude. [00:11] elliottcable: or is the phrase ‘dicks, butts, and rainbows’ [00:11] isaacs: elliottcable: i think yor'e in the wrong chat room... [00:11] orlandov: that's rather abstract [00:11] elliottcable: you know, I’m all down with wtfever sexuality you are. But don’t go stealing awesome things like rainbows, ponies, and the colour pink. [00:11] isaacs: ah, i see. [00:12] ashb: used TM for a while [00:12] ashb: switched back to MacVim tho [00:12] inimino: heh [00:12] isaacs: yeah, i use vim as my non-gui editor when necessary. really just putting it off because i have so many things tied into txmt. [00:12] inimino: vim's keybindings own everything else [00:13] elliottcable: seriously. people trying to take my pink can suck my— uh, can … go fuck thems— uh… whatever. I give up. [00:13] elliottcable: How come so many of our insults are grounded in homophobia? it’s hella annoying. [00:13] isaacs: i know that vim is probably better for a lot of things, and at least equal on the net. just work to switch. [00:13] inimino: though I do use emacs for XML, Java, and other pathologically verbose languages [00:13] isaacs: elliottcable: i know. it's totally straight. [00:13] inimino: haha [00:13] elliottcable: WHAT THE FUCK, BREEDERS [00:14] elliottcable: that’s one insult I’m down with stealing from gay people. Seriously, it has such a bite. ‘Hahaha, you contribute to the evolution of our race! *points and laughs*’ [00:14] elliottcable: okay, done trolling. Back to JavaScript. *bows out* [00:15] isaacs: http://twitter.com/izs/status/5992531662 [00:16] ashb: elliottcable: ITYM TrollScript [00:16] elliottcable: ITYM? [00:16] elliottcable: Internet’s to oslow to UD [00:16] ashb: I think You Mean [00:16] ashb: also: http://www.flickr.com/photos/59281826@N00/4113525649/ [00:17] isaacs: plenty of gays are breeders. [00:18] isaacs: there's all kinds of technology nowadays. and it's not like sexuality is an XOR anyhow. [00:18] elliottcable: isaacs: followed, by the way. [00:18] isaacs: elliottcable: thanks [00:18] elliottcable: isaacs: that’s why I said gays, not bis. [00:18] isaacs: well, gay is an identity. [00:18] elliottcable: isaacs: I’m a bi, I was more specifically talking about gays. [00:18] isaacs: elliottcable: most of us are bi [00:18] isaacs: :) [00:18] isaacs: at least, according to kinsey and any reputable data out ther.e [00:19] isaacs: also, holy crap, this is not about javascript. [00:19] elliottcable: you *just* realized that. [00:19] isaacs: ACTION has an attack of topicitis... [00:19] elliottcable: I don’t think anyone gives a fuck. It’s not like anybody’s in here ooking for help. [00:19] isaacs: yeah, srsly [00:19] elliottcable: That’s a pet peeve of mine, ops who are all STAY ON TOPIC when your offtopicness isn’t actually hurting anybody. [00:19] elliottcable: i.e. the #ArchLinux dudes, when they pay attention. [00:20] elliottcable: though I <3 that channel twenty ways until sunday. [00:20] elliottcable: ooking, hahahahaha [00:20] elliottcable: from now on, when I want help on a topic… I’m going to join the relevant IRC channel, and start typing ‘ook ook ook!’ until I get banned. [00:20] elliottcable: … then google it. [00:20] isaacs: hahaha [00:21] elliottcable: for some very odd reason, (on topic, for once!) I keep forgetting about the !=/!== operators. [00:21] elliottcable: and doing some sort of crap like `if (!foo === bar)` [00:21] elliottcable: which I don’t think is even syntactically identical. Ugh. [00:21] isaacs: elliottcable: nope. [00:21] isaacs: that would coerce foo to bool first. [00:22] elliottcable: I can’t believe that hasn’t bitten me in the ass yet! [00:22] isaacs: which, if that's what you mean, is fine. [00:22] elliottcable: yeah, so I thought [00:22] elliottcable: Seriously, though, every time I see !!, I think ‘DP!’ [00:22] isaacs: i've started thinking of that as the previous command operator [00:22] isaacs: like sudo !! [00:22] elliottcable: hahahahaha [00:23] elliottcable: your shell fails, then [00:23] isaacs: eh, bash is nice. it works. [00:23] elliottcable: up arrow, caret, 'isudo', return [00:24] elliottcable: mind you, my vifu is … bleh. [00:24] elliottcable: ACTION fails [00:24] isaacs: meh [00:25] inimino: !! in bash is great [00:25] inimino: ^x^y is even better [00:26] elliottcable: heh, and all of those are available in zsh [00:26] elliottcable: and much, much more (-: [00:26] inimino: yeah, yeah, smug zsh user [00:26] elliottcable: as for bash, I found !$, alternation ({,~}file.sh), and complex redirections far more useful [00:26] isaacs: since i use about 1/4th of what Bash can do, i think i'm fine not adding 50 gagillion more crazy syntactic shortcuts [00:27] elliottcable: seriously, try ZSH. It will make your day. [00:27] isaacs: especially stuff that will just bite me when i have to write something to run in sh [00:27] inimino: !$ is pretty useful too [00:27] elliottcable: It’s not like some complex crazy advanced thing that’ll take a week to learn. Takes about fifteen minutes to install and run through the getting started guide, and then you’ll never go back. [00:27] isaacs: elliottcable: i've tried it. it seemed ok. but after 2 days of it, i found that i still only difd the same couple bash things i was doing efore. [00:28] isaacs: seemed easier to just not have to install an extra thing when i set up a new machine, since bash is everywhere already [00:28] inimino: bash is more commonly installed and I don't want to have to install my preferred shell before I can get anything done [00:28] ashb: i found its learn one time every few weeks every so often and get in the habbit of using it [00:29] isaacs: ashb: i'm still doing that with bash [00:29] ashb: like i finally rememberd !!:2 syntax [00:29] elliottcable: isaacs, inimino I have no argument with that at all, I fully agree. Truth is, I am very much a dual-tool kinda guy. I use zsh and bash equally ffrequently, nano and vim, Ruby and shell scripts for scripting, Ruby and JavaScript for web stuff, LESS and SASS… [00:29] inimino: it's bad enough having to do that on Solaris boxes [00:29] inimino: (what are those?) [00:29] isaacs: !!:2 is neat [00:29] isaacs: !!:1 etc [00:30] elliottcable: isaacs, inimino: I find that the benefits of maintaining an open mind, of not locking my mind into a single toolset’s style (which using two tools constantly forces you to do) are far better than the benefits either of hte tools individually can offer [00:30] isaacs: !-2:3 stuff is nice, too [00:30] isaacs: elliottcable: i'm kinda the opposite. [00:30] elliottcable: I suggest adding a :p to that [00:30] inimino: !#:1 too [00:30] isaacs: as i get older, i start to crave more consistency. [00:30] elliottcable: god, my spellking is shite over this connection [00:30] ashb: dont know that one [00:30] ashb: inimino: wossit do? [00:30] isaacs: eventually, i'll be a senile old man who only speaks javascript. [00:30] elliottcable: hahahaahaha [00:30] elliottcable: that’s a great image [00:31] orlandov: by then php10 will be the new hotness [00:31] orlandov: /cough [00:31] ashb: and they will have added inline asm [00:31] inimino: ashb: !# is the command you are currently typing, so, e.g... [00:31] orlandov: ashb: http://search.cpan.org/~neilw/Inline-ASM-0.03/ASM.pod [00:31] ashb: inimino: ahhh. [00:31] elliottcable: isaacs all hangin’ out on his porch, in a rocker, with a speechbubble containing “for(var i=0;i<100;i++) { new(Object).toString() }” [00:31] ashb: orlandov: perl - the meta langague that glues everything else together [00:31] orlandov: :) [00:31] elliottcable: orlandov: yes, but most servers will only provide php6 and php7 [00:32] isaacs: speaking of php, this is the best bug evar: http://bugs.php.net/bug.php?id=48669 [00:32] orlandov: ashb: <3 perl [00:32] orlandov: elliottcable: heh [00:32] ashb: perl is my day job (currently) [00:32] orlandov: likewise [00:32] elliottcable: lucky people. [00:32] orlandov: i mostly hack python in my spare time, though more js these days [00:32] inimino: mv some-long-file-name !#:1.js [00:32] elliottcable: ‘why turn the language into a public menace?’ [00:32] elliottcable: hahahahahahaha [00:33] elliottcable: isaacs: uh, mv some-long-file-name{,.js} [00:33] ashb: s/isaacs/inimino/ [00:33] inimino: ACTION thought he had a more compelling example than that from a few days ago but doesn't remember it [00:33] inimino: elliottcable: sure, in that case [00:33] ashb: yeah, can see it being useful tho [00:33] elliottcable: yeah, it’s useful [00:33] elliottcable: none of them are as usefulas alternation though, for me [00:33] orlandov: well, i should probably do some work before i leave [00:34] elliottcable: it sort of goes: alternation, !$, !word, `echo '"\e[A": history-search-backward' >> ~/.inputrc` [00:35] isaacs: omg, .inputrc is powerful magic [00:35] isaacs: we loves it [00:35] elliottcable: github.com/elliottcable/dotfiles/inputrc [00:35] elliottcable: aw shit [00:35] elliottcable: need a /blob/master in there [00:35] ashb: whats that do? [00:36] elliottcable: ashb: which one? [00:36] ashb: alternation [00:36] ashb: or all of them :) [00:36] elliottcable: ashb: oh, remaps uparrow (and the corresponding one for downarrow, see the file) to history search [00:36] ashb: too lazy to rtfm [00:36] elliottcable: ashb: alternation is {,,,} [00:36] ashb: oh type partial command and hit arrows? [00:36] elliottcable: ashb: where each combination becomes an argument [00:36] ashb: think i've already got that [00:36] ashb: yeah have the \e[A, \e[B ones [00:37] elliottcable: ashb: for instance, `vim index.{css,xhtml}` will be equivalent to `vim index.css index.xhtml` [00:37] ashb: thats just bash not inputrc tho...? [00:37] inimino: hm, I always use ^R [00:37] elliottcable: ashb: inputrc applies in all readline apps [00:37] inimino: but arrows would be nice... [00:37] ashb: ah [00:37] elliottcable: inimino: yep, works great [00:38] inimino: part of the problem is all the different ways to do the same thing [00:38] inimino: fc, !! and !?, ^R, ... [00:39] inimino: lots of shell features are like that [00:39] inimino: nothing ever gets removed [00:40] orlandov: stupid question; does JS have a pack -like function? to create C structs? [00:40] inimino: ACTION doesn't follow [00:40] ashb: orlandov: core JS/ yeah right. [00:41] orlandov: it's not that unreasoable, is it? [00:41] ashb: orlandov: to pack in binary terms? [00:41] orlandov: yeah [00:41] ashb: for core JS it kinda is :) [00:41] inimino: in JavaScript? [00:41] orlandov: yeah [00:41] inimino: yeah, it's a pretty high level language [00:41] orlandov: say, if i want to implement a wire protocol [00:42] ashb: so one ofthe CommonJS projects has that capability for its FFI module [00:42] yml: how do you know if the request is a POST or a GET of a PUT ... in node.js ? [00:42] orlandov: and need to pack a string with uint32's and shit [00:42] inimino: not really known for its systems programming roots or its bit-twiddling facilities [00:42] inimino: yml: request.method [00:42] orlandov: inimino: /cry [00:42] ashb: inimino: write one :) [00:42] ashb: er, orlandov ^^ [00:43] yml: inimino: thanks easy enought [00:43] orlandov: ooh? https://cixar.com/tracs/javascript/browser/trunk/src/struct.js?rev=389 [00:43] inimino: (where request is an object of the appropriate type) [00:43] inimino: orlandov: you can do it with one of the binary string implementations easily enough, or you can do it manually with Strings [00:43] yml: I am not really familiar yet with Server side js; Is there something like ipdb fo JS ? [00:43] yml: for JS ? [00:44] ashb: whats ipdb? a debugger/ [00:44] orlandov: inimino: binary string implementations? sorry, i'm kind of a noob to SSJS :( [00:44] inimino: idpb? [00:44] yml: it is a python debugguer [00:44] inimino: imdb I know but who is this ipdb? [00:44] inimino: orlandov: there are some proposals on the CommonsJS site and some implementations floating around [00:45] orlandov: inimino: oh okay, i'll have a look around there [00:45] ashb: the commonJS ones are implemented but they will probably slim down a bit [00:45] ashb: there was some talk aboutit making its way into ES Harmony [00:45] inimino: yes [00:45] yml: inimino: it has tab completion and all kind of goodies that enable you to explore your code at runtime [00:45] ashb: yml: probably not many debuggers about right now [00:45] ashb: SSJS is new to SSJS still. [00:46] orlandov: heh [00:46] yml: ashb: thanks [00:46] inimino: there is a node debugger [00:46] inimino: but it's quite raw from what I hear [00:46] inimino: ACTION generally avoids debuggers [00:46] ashb: there are a few about i think, they probably wont be very feature rich yet hto [00:46] orlandov: print statements ftw [00:46] orlandov: or alert... or console.log [00:46] ashb: debugging in async's got to be harder [00:46] isaacs: ashb: not really [00:47] isaacs: you just dump to stderr synchronously [00:47] ashb: true - just have to use breakpoints more [00:47] ashb: rather than single stepping [00:47] inimino: ACTION slurps his whole project revision history over wget, this is taking quite some time [00:47] inimino: if it doesn't work the first time, just rewrite it [00:47] isaacs: i haven't used breakpoints since 2005 [00:47] isaacs: haven't really missed em [00:48] inimino: I haven't used debuggers on my own code in years [00:49] ashb: isaacs: if you want to get into a callbakc how else do you do it? [00:49] elliottcable: wooooooo [00:49] isaacs: you just log what you're interested in [00:49] inimino: other people's code is another story [00:49] isaacs: same way i've been debugging xhr for years [00:49] ashb: logging != debugger :) [00:49] isaacs: i guess, then, what i'm saying is, i havent' used a debugger since 2005 :) [00:49] elliottcable: I never grokked debuggers. [00:49] elliottcable: That may make me a bad coder, but whatever. [00:50] inimino: there are cases where they are absolutely necessary [00:50] inimino: but I think they are widely overused [00:50] orlandov: elliottcable: not necessarily... for better or worse linus torvalds rails against debuggers also [00:50] orlandov: problem debuggers is that they may make you miss the bigger picture [00:50] isaacs: i think torvalds is a little bit of a loon. [00:50] orlandov: agreed [00:50] isaacs: a wonderful programmer, but still, a loon [00:51] elliottcable: hahahahaha [00:51] orlandov: hey, if he keeps creating shit like linux or git, it's all good [00:51] elliottcable: isaacs: sounds like me. [00:51] orlandov: i don't have to work with him.. [00:51] elliottcable: isaacs: I’m #fuckingawesome and #abitofaloon [00:52] elliottcable: linux is a bit shit. I love me some Arch, but Linux itself… /-: [00:52] isaacs: elliottcable: have you been to #fuckingawesome lately? [00:52] elliottcable: *but*! Linus had the balls to admit that, so props to him. [00:52] elliottcable: And git is fucking awesome. [00:52] isaacs: cuz that's not what the topic there says [00:52] elliottcable: isaacs: is that a channel? I hate how IRC came forward in time and stole my Twitter hashtag syntax. [00:52] isaacs: elliottcable: if it's got a # then it's a channel [00:53] elliottcable: isaacs: yes, yes I know. [00:53] elliottcable: that’s the joke. [00:53] elliottcable: dot pee en gee. [00:54] inimino: if there's nobody in it, is it still a channel? [00:55] inimino: w00t! [00:55] inimino: Downloaded: 14799 files, 133M in 6m 42s (340 KB/s) [00:55] elliottcable: fuck your 340 KB/s <_< [00:56] elliottcable: I’m getting… 882B/s average ATM. [00:56] inimino: it'd have been faster but for all the 15k HTTP requests overhead [00:57] elliottcable: 42B/s! [00:57] elliottcable: 421* [00:57] elliottcable: 940. [00:57] elliottcable: 162! [00:57] orlandov: elliottcable: are you on dialup? [00:57] elliottcable: orlandov: EDGE tethering. [00:57] orlandov: ACTION DOS's elliottcable with a single ping [00:57] orlandov: ahh [00:57] orlandov: yeah that'd do it [00:58] elliottcable: orlandov: hahaha [00:59] elliottcable: http://cld.ly/74j84 [00:59] orlandov: well- this looks like what i want: http://www.mongodb.org/display/DOCS/Mongo+Wire+Protocol http://github.com/kriskowal/chiron/blob/master/lib/chiron/struct.js [00:59] ashb: oh kowal has done the native version? [00:59] ashb: thats cool [00:59] orlandov: haven't tried it out yet but looks very promising [00:59] ashb: orlandov: looks fairly portable too [01:00] orlandov: ya, i think it should work with only one mod... [01:00] orlandov: actually [01:00] ashb: "use iojs"; [01:00] orlandov: maybe not [01:00] ashb: var base = require('boost'); [01:00] ashb: apart from that [01:00] orlandov: yeh [01:00] ashb: wtf is that [01:00] orlandov: no idea [01:00] ashb: i'll ask [01:00] orlandov: base seems to get used quite a bit [01:00] elliottcable: JS has a teernary operator, right? [01:00] orlandov: i'm not familiar with that namespace [01:01] ashb: or i wont has he's not on at the moment [01:01] orlandov: elliottcable: ya [01:01] Connorhd: orlandov, have you seen http://github.com/jfd/datatypes-js/blob/master/examples/struct.js [01:01] ashb: elliottcable: yes [01:01] elliottcable: ternary! ternary! [01:01] elliottcable: DAMMIT EDGE [01:01] orlandov: Connorhd! [01:01] inimino: elliottcable: yes [01:01] inimino: ashb: is that from the Caja guys? [01:01] orlandov: woot [01:01] Connorhd: are you thinking of writing a proper node driver for mongo? [01:02] orlandov: Connorhd: well.. no promises, since i'm new to both node and the mongo wire protocol, but it'll be a fun experiment [01:02] ashb: inimino: the "use iojs" perhaps [01:02] Connorhd: orlandov, I was wanting to try myself, just not had time [01:02] orlandov: i saw there was another node mongo bridge but uh... it forks the shell and runs stuff it... [01:02] Connorhd: looked fairly straightforward though [01:03] ashb: i just used the C++ stuff to to the bson packing :) [01:03] Connorhd: yeh, its a bit horrible [01:03] inimino: ashb: yeah, I think the are the ones that wanted "use strict, foo, bar"; which was shot down in ES5 [01:03] ashb: ah [01:03] orlandov: Connorhd: oideally someone'd wrap libmongo, but that connection pooling stuff is way over my head [01:04] Connorhd: mine too :( [01:04] ashb: what d oyou need conn pooling for? [01:05] orlandov: ashb: not strictly sure... only know that the python mongo async lib talks about something to that effect ^_^ [01:05] orlandov: don't have a clue tbh [01:06] ashb: ah [01:06] orlandov: http://github.com/fiorix/mongo-async-python-driver [01:07] Connorhd: I guess in order to make asynchronous calls it makes multiple connections to mongo? [01:08] orlandov: or perhaps it keeps a connection in the pool per request [01:08] orlandov: or whatever [01:08] ashb: or, rather than proper async [01:08] ashb: thats a bit of a kludge [01:08] Connorhd: yeh, I mean to make the calls appear async [01:08] elliottcable: wat [01:08] Connorhd: node does the same for some things doesn't it? [01:09] ashb: yeah, only things it has to [01:09] ashb: a socket connection isn't one of htose cases :) [01:09] orlandov: the postgres driver does that? [01:09] orlandov: or am i conflating two issues [01:09] Connorhd: ashb, so you can make multiple queries on one mongo connection? [01:09] orlandov: http://github.com/ry/node_postgres/blob/master/postgres.js [01:09] ashb: Connorhd: oh fair point. [01:09] Connorhd: orlandov, that queues them [01:09] ashb: Connorhd: i dont know [01:10] orlandov: i have much to learn :) [01:10] elliottcable: oawdnoiadioawdioawdioawdjioawdjoiawdioawfnauowbdouabgiujsFeuionjwoiehrnjlgqipokwd [01:10] elliottcable: oh crap, now I have to change my password <_< [01:10] ashb: Connorhd: perhaps, yes [01:10] orlandov: elliottcable: you should use characters off the home row [01:10] ashb: *scuse hte paste) [01:10] ashb: requestID : This is a client or database-generated identifier that uniquely identifies this message. For the case of client-generated messages (e.g. CONTRIB:OP_QUERY and CONTRIB:OP_GET_MORE), it will be returned in the [01:10] ashb: responseTo field of the CONTRIB:OP_REPLY message. Along with the reponseTo field in responses, clients can use this to associate query responses with the originating query. [01:11] orlandov: oh nice [01:11] Connorhd: does it actually make use of that? [01:11] Connorhd: if so, awesome :) [01:11] ashb: who knows [01:11] elliottcable: I have a horrible habit of closing the iTUnes window when I’m done with it. [01:11] ashb: i imagine that yes. since mongod is itself evented isn't it? [01:11] orlandov: elliottcable: you first mistake was using itunes [01:13] orlandov: ok im out of here for tonight, see you cats later [01:16] elliottcable: aww [01:18] elliottcable: inimino: it works! [01:19] elliottcable: inimino: here’s the code so far: http://gist.github.com/241405 [01:19] elliottcable: inimino: what was that other problem you were suspecting earlier? I might should guard against whatever it was now, and save myself some future trouble. [01:21] ashb: isaacs: dont cross the streams! [01:21] ashb: it always weirds me out when people from $not_london no BenWard [01:21] inimino: elliottcable: if you write things like fuctino F(){}; F.prototype = {...}; then f=new F, f.constructor == Object [01:21] ashb: er, know [01:22] inimino: s/fuctino/function/ [01:23] ashb: ACTION has elementarty typing fail. [01:23] ashb: its too late [01:23] ashb: i should sleep [01:24] ashb: bUT MUST FINISH THIS [01:24] inimino: ashb: I'm looking at all that parser code btw [01:25] inimino: it's closely entangled with another project, there's a little DSL in there, and then there's some code that turns that into JavaScript, and then the PEG stuff relies on that [01:26] inimino: but I'm seeing what I can sensibly extract [01:28] elliottcable: inimino: I don’t get you, eh? [01:28] inimino: elliottcable: sorry [01:29] sfuentes has joined the channel [01:29] ashb has joined the channel [01:29] inimino: elliottcable: function F(){}; F.prototype = {}; f=new F(); // now ,what is f.constructor? [01:31] elliottcable: inimino: F, is it not? [01:31] inimino: elliottcable: no, it's Object [01:31] elliottcable: oh shit oops d-: [01:31] elliottcable: hm. [01:31] elliottcable: Well, I guess that’s their perogative. [01:32] elliottcable: It doesn’t actually prevent beget() from functioning as intended, so I suppose I shouldn’t screw with it. [01:32] inimino: people can always write F.prototype = {constructor:F, ...} [01:33] elliottcable: yah [01:35] softdrink has joined the channel [01:37] yml: How would you get the information that is posted to and URL ? [01:37] yml: where of I see the source for this is is in c or JS ? [01:39] inimino: yml: http.js [01:40] inimino: ACTION wanders off for the evening [01:40] yml: inimino: thanks I was getting confused because in the src directory I was seing a lot of c code [01:40] yml: thanks bye [01:43] isaacs: ashb: Hey, I'm from $not_london and I know BenWard [01:43] isaacs: see him pretty often, actually, since we work in the same building. [01:52] isaacs_ has joined the channel [01:52] isaacs has joined the channel [01:53] yml: How do you get the information posted to a view ? [02:05] jcrosby has joined the channel [02:07] yml: I am building a web shell so I have a form that post a command. How can I retrieve this info server side ? [02:09] helgim_ has joined the channel [02:09] yml: request.uri['params'] does not contains it ? [02:13] charles- has joined the channel [02:18] richtaur has joined the channel [02:24] Connorhd has joined the channel [02:43] n8o has joined the channel [02:44] n8o: hi all. has anyone got a typically client-side framework like jQuery or mootools running with node.js on the server side? [02:49] elliottcable: oh btw ryah_away: http://github.com/elliottcable/poopy.js/blob/new-acquire/lib/acquire.js [02:50] elliottcable: ryah_away: had to scrap my acquire() codebase *again*, made a bunch of stupid assumptions… starting again, doing it *right* this time. That documentation may interest you. [02:51] ra88it has joined the channel [03:23] okito has joined the channel [03:54] elliottcable: yml: uh, learn HTTP? [03:54] yml: elliottcable: ? [03:55] yml: elliottcable: not sure to understand your question [03:55] elliottcable: yml: http://www.w3.org/TR/html401/interact/forms.html#h-17.13 [03:55] elliottcable: HTML forms, I guess, not HTTP. *shrugs* [03:57] yml: elliottcable: HTML form is not really my issue [03:58] elliottcable: … yes, it is. [03:58] yml: elliottcable: My issue is that I don't find a way to get on the server the dict that is POSTED [03:58] elliottcable: yml: uh, yes you do. Listen to the request’s body? [03:58] yml: on many web framework it is available under request.POST [04:00] elliottcable: good for those web frameworks. Node.js isn’t a web framework. [04:00] JimBastard has joined the channel [04:00] JimBastard: hello party people [04:00] yml: elliottcable: I am not arguing [04:00] elliottcable: HELLO PARTY PERSON [04:00] yml: either you feel like answering the question either you don't [04:01] elliottcable: yml: I gave you the answer you need, now go read the Node.js documentation, the HTML forms submission spec, and build yourself a tool. [04:01] yml: I will see if I manage to get something out of this [04:02] elliottcable: @big_ben_clock: BONG BONG BONG BONG [04:02] elliottcable: just thought I would point that out. [04:02] JimBastard: yo where was the guy who was trying to figure out how to dynamically load assetts on file update [04:02] elliottcable: oooo [04:02] elliottcable: I don’t know, but that gives me an idae. [04:02] elliottcable: ACTION hacks [04:02] JimBastard: continious integration ftw [04:02] JimBastard: just rebuild it on a schedule [04:03] elliottcable: ACTION ponders [04:03] elliottcable: see, here’s the thing [04:03] elliottcable: hm. [04:03] elliottcable: I think you could dump the compiled object into your scope everytime it is updated. [04:03] elliottcable: ACTION ponders [04:03] elliottcable: yeah, this could totally work. [04:08] bentomas: yml: the data from a form is not available to a server as a dict it is sent to the server formatted as a query string in the data of the http request. To make node.js' http functions fast, node.js doesn't wait for this data to arrive. in order to get at it you have to add listeners to the body event and buffer the data yourself and then parse it yourself [04:08] elliottcable: bentomas: aw, you just *had* to go and be nice to the noob, didn’t you? [04:08] elliottcable: ACTION glares [04:08] bentomas: :) [04:08] elliottcable: ACTION was trying to make it learn to think for itself! [04:09] elliottcable: ACTION was doing it a *service*! [04:09] yml: bentomas: thank you this is information that make sense [04:10] JimBastard: update to http://github.com/Marak/node_debug today [04:10] JimBastard: dumps objects in jquery.treeview.js with async [04:10] JimBastard: clicky click on the nodes to expand [04:10] bentomas: *bows head in shame* [04:11] bentomas: elliottcable: I'm curious about this acquires stuff you are working on. Did you guys decide the commonjs module stuff wasn't the right fit for node? [04:11] bentomas: or is this in addition to that? [04:12] yml: JimBastard: node_debug is very nice [04:12] yml: I was just using it and if found it very useful to explore the api [04:14] bentomas: !log [04:14] elliottcable: bentomas: you guys being me, yes. [04:15] yml: is there a way to use it a bit like werkzeug http://werkzeug.pocoo.org/documentation/dev/ [04:15] elliottcable: bentomas: I can’t get ryah_away to drop CommonJS (understandably, I guess) though, so I’m just writing my own system to lie alongside it. [04:16] JimBastard: yes it is [04:16] JimBastard: it works [04:16] JimBastard: update that shit [04:18] n8o: commonjs, I've never heard of that. is it very new? [04:18] softdrink has joined the channel [04:19] elliottcable: bentomas: I don’t know if you saw, but there’s some huge piles of documentation: http://github.com/elliottcable/poopy.js/blob/new-acquire/lib/acquire.js [04:19] elliottcable: n8o: ignore it, IMVHO. [04:19] elliottcable: n8o: it’s some attempt to make a bunch of standards for JS that allow code written for one SSJS system work in *all* SSJS systems. [04:19] elliottcable: n8o: the huge elephant in the room is that, if we actually used that, we wouldn’t need a bunch of SSJS systems: they’d all be the same. [04:20] n8o: elliottcable: alright [04:20] elliottcable: n8o: that’s like trying to make a standard so that code written in a certain way works in every programming language, ever [04:20] elliottcable: n8o: go look at some polyglot quines, and tell me how it’d feel to have to write code like that *all the time* [04:20] bentomas: elliottcable: I did! Am reading through it now [04:20] elliottcable: it may be a controversial point of view, but I believe there is strength in diversity, and commonality is weakness. [04:21] n8o: i'm just wireframing a barcamp talk on JS, and i was going to mention how everyone has a different way to print: air.trace, console.log, sys.puts, etc [04:21] bentomas: elliottcable: how do you feel about things like rack, jack or wsgi? [04:21] elliottcable: see, *that* is the answer. Common indrection APIs, compatibility layers. [04:21] elliottcable: I have no problem with, say, a layer that makes code written for Node.js work in other systems. [04:21] elliottcable: I *do* have a problem, however, with people telling me I have to write my Node.js code, that I wrote for Node.js, work in a bunch of other systems that I *specifically chose not to use*, instead having decided to go with Node.js [04:22] elliottcable: I’d be fine with it if all of hte other systems copied Node.js (I ignored SSJS for many years; things like Jaxer and such simply revolt me), but then why would we have those other things at all? I say they can stay over their, stick to their own way of doing things, and not bother me… and we’ll all live happily ever after. Separately. [04:22] n8o: i was wondering earlier if any client-side frameworks like mootools work very well with node.js [04:23] elliottcable: n8o: As a matter of fact, yes. I *dislike* the idea (those systems were built to deal with a set of problems that very much don’t exist at all, or in the same way where they do, on the serverside, such as the DOM and browser inconsistencies) [04:23] elliottcable: n8o: but generally, they’ll ‘run.’ [04:23] elliottcable: n8o: and MooTools specifically I have a problem with as well… but that’s really neither here nor there. [04:23] n8o: elliottcable: yeah. i mention mootools specifically because it can be personalized, and potentially the DOM-type stuff dropped [04:24] frodenius: there is even env.js and the like :/ [04:24] frodenius: browser interface on the server [04:24] n8o: elliottcable: ya, i dropped mootools in favor of jQuery a few years ago, personally, but jQuery wouldn't be too useful with node i don't think [04:24] JimBastard: whats the equilvant of typeof in nodejs? [04:25] elliottcable: there *is* a good framework for serverside development, though [04:25] JimBastard: which one? [04:25] elliottcable: it’s not *my* cup of tea, but I hear JimBastard uh, typeof? [04:25] n8o: node doesn't have typeof? [04:25] elliottcable: woah [04:25] JimBastard: like in JS [04:25] frodenius: JimBastard: node.js is not a different javascript [04:25] elliottcable: JimBastard: typeof [04:25] frodenius: node.js is just a programme that runs javascript [04:25] JimBastard: hrmmm probaly not the right error message then [04:26] elliottcable: frodenius: not even. [04:26] elliottcable: frodenius: Node.js is just a POSIX wrapper for v8, plus a little more. [04:26] jed has joined the channel [04:26] frodenius: hehe [04:26] n8o: elliottcable: you were saying not your cup of tea but you hear... [04:26] n8o: v8 being chromium's engine, ya? [04:26] elliottcable: anyway, n8o, it’s not *my* cup of tea, personally, but I hear _.js (is that the proper notation? Whatever, ‘Underscore dot jay ess’) is freaking awesome [04:26] JimBastard: yeah it works [04:27] n8o: elliottcable: ah yes of course, _.js I should have thought of that [04:27] frodenius: underscore [04:27] n8o: elliottcable: i'm really wondering these things to make a presentation that talks about how javascript is the language to know [04:28] elliottcable: n8o: I very much agree at the moment. [04:28] n8o: an oversimplification of the presentation, but roughly it [04:28] frodenius: but underscore is just a lib for functional stuff and the usual js repair constructs [04:28] elliottcable: My point of view: Rails is reaching EOL as ‘The Big New Thing’; Ruby, while amazing, is now commonplace. [04:28] n8o: elliottcable: for sure [04:28] elliottcable: I think the next big step in the web world is going to be towards hybrid client/server setups written entirely in JavaScript [04:28] n8o: elliottcable: i'm going to point out three or so projects, something like adobe air, phonegap, and node.js [04:29] elliottcable: web frameworks shipping your database sets back from the client, and your DOM manipulations out from the server, almost as if there were no client/server line of separation at all. [04:29] n8o: elliottcable: *totally* [04:29] n8o: elliottcable: even using JSON as the data format [04:29] elliottcable: perhaps even a shared execution environment, with the same libraries and tools on both sides, such that your ‘application’ is really just that: one big application, swapping objects, code (functions) as necessary [04:29] elliottcable: I actually started a git repo and bought a domain for that very idae: http://framework.mu/ [04:29] n8o: awesome :D [04:29] JimBastard: throw %MakeTypeError('called_non_callable',[typeof a]); [04:30] n8o: oh, damn, I have to point out chrome OS too [04:30] JimBastard: what you throwing about willis [04:30] elliottcable: the goal being to write the smallest necessary ‘web framework’ to handle this ‘shared execution environment’ betwee Node.js and the browser, and then allow you to do whatever you want on top of it [04:30] frodenius: neat idea [04:30] JimBastard: im doing that right now [04:30] n8o: elliottcable: ya, very interesting [04:30] JimBastard: or at least trying [04:30] JimBastard: i have route.js working on the frontend, trying to port to node [04:30] elliottcable: of course, it’d probably be slow, and horribly hacky, and… all sorts of other kinds of evil. But hey, it sounds cool nonetheless. [04:31] n8o: elliottcable: not too hacky, really [04:31] elliottcable: and in any case, I think that JS as a serverside language, working in conjunction with the browser, instead of treating it as some dumb frontend (and instead of the browser doing all the work, and treating the server as a dumb database/connection layer) [04:31] elliottcable: is the future [04:31] elliottcable: n8o: please don’t do this presentation, though d-: [04:32] n8o: elliottcable: my first thoughts about it were make an MVC system and the views can be a bit smart about where they're displaying [04:32] elliottcable: ACTION wants a head start on all this, so he can claim to have written some of the most-used web development fframeworks and tools five years hence [04:32] elliottcable: (maybe it’ll even get me hired) [04:32] elliottcable: (it’ll be like being dhh) [04:32] elliottcable: (only better, because dhh is a douche, and I’m unadulterated #AWESOME) [04:32] n8o: elliottcable: hehe. it's not going to go to the depth you're describing, just enough to motivate local techies to put more effort into JS [04:32] n8o: elliottcable: do you work ON node? [04:33] elliottcable: yeah, here’s the thing: currently, MVC is great, because it’s a set of rules *imposed by the programmer*, that the programmer can therefore break when it’s sensible. [04:33] aguynamedben has joined the channel [04:33] elliottcable: Rules are great, when intelligent people can choose to break them [04:33] elliottcable: however, it’s always struck me as out-of-place that the MC / V wall was so ‘big’. It’s sort of hardcoded into the system, you can never blur the line between the MC and the V. [04:34] elliottcable: But with SSJS, I think you can, and I think that will finally make MVC the system it was *intended* to be. [04:34] edspencer has joined the channel [04:34] frodenius: w [04:34] n8o: elliottcable: i think SSJS could make for a very strong MVC system [04:34] elliottcable: frodenius: s [04:35] frodenius: ack [04:35] n8o: there are some good MVC right now, such as cocoa - I like that very much [04:35] n8o: wack? who said we're wack? [04:35] frodenius: what? [04:35] elliottcable: nack [04:35] JimBastard: mvvm [04:36] elliottcable: ␖ [04:36] elliottcable: ␀ [04:37] elliottcable: seriously, this is the single best pair of rows in the *entire Unicode table*: http://cld.ly/fajb1 [04:37] n8o: damn, i was going to start reciting lonely island lyrics [04:37] elliottcable: I’m in a car? [04:37] elliottcable: http://www.cracked.com/video_18066_6-types-youtube-videos-there-are-waaay-too-many-of.html [04:37] elliottcable: watch. [04:37] elliottcable: die laughing. [04:37] n8o: haha [04:38] elliottcable: seriously, it’s related, and fucking hilarious. [04:43] frodenius: lol, the emofags [04:43] n8o: elliottcable: excellent video! hahaha [04:51] isaacs has joined the channel [04:51] okito has joined the channel [04:52] edspencer has joined the channel [04:58] soveran has joined the channel [05:01] soveran has joined the channel [05:09] RayMorgan has joined the channel [05:13] soveran: anyone having problems with node b0rking vim? (Mac OS / screen) [05:18] isaacs: elliottcable: your home page is a 404...? [05:19] elliottcable: isaacs: it’s a 404, not a timeout!? [05:19] elliottcable: what the sh±—— [05:19] isaacs: yeah [05:19] isaacs: nginx 404 [05:19] isaacs: http://ell.io/ [05:19] elliottcable: (oh, that was totally a typo, but sh± is my new favourite use of Unicode) [05:19] elliottcable: (get it… turned-sideways ‘it’… d-:) [05:19] isaacs: ahh, nice [05:21] elliottcable: anyway, uh, I haven’t had a server for a loooong time, due to some problems with EC2 and Arch kernels and udev. [05:21] elliottcable: Recently found workarounds for all the major problems, and got some stuff online [05:21] elliottcable: but it’s not a completed system… must have left one of them online, attached to my awesome IP [05:22] elliottcable: oh, no, wait, that’s the system I am IRCing from. [05:22] elliottcable: Must have installed NginX on it at some point o_O [05:23] isaacs: guess so :) [05:26] greenideas has joined the channel [05:30] isaacs: elliottcable: if you want more feedback on acquire, you should ping #commonjs about it, too [05:30] isaacs: i'm sure many of them don't follow you on twitter. [05:30] isaacs: (unless you already have. i fell off that mailing list a while back) [05:30] elliottcable: nah [05:31] elliottcable: don’t exactly want their input, given how badly they mangled the require (sorry, ‘securable modules’) system. [05:31] elliottcable: d-: [05:31] elliottcable: this is exclusively for Node.js. [05:31] elliottcable: If somebody wants to go, later, and make systems for other languages compatible with it… good for them. [05:31] isaacs: cool, i can dig that. [05:32] isaacs: first impression is that i'ts too flexible. [05:32] isaacs: it'd be better to pick one api, and define that, and say "this is how you do it" [05:32] isaacs: twisting it up into some other shape is easy enough if desired. [05:33] isaacs: also, it's not too important (imo) to say that it's file-system agnostic. as long as you specify that it's not synchronous, then there are a couple ways to bolt that into a browser's env. [05:34] isaacs: towards that end, it would be better to not have .wait() anywhere, since tha'ts a royal PITA to implement in the browser. [05:35] isaacs: if you use jsonp (or just dynamic script tags and a readystatechange handler) then synchronicity is dangerous, and doesn't really mesh with the browser's philosophy anyhow. [05:37] isaacs: elliottcable: ^ [05:38] elliottcable: well, the problem with that, is you get this: [05:39] elliottcable: isaacs: http://gist.github.com/241671 [05:40] isaacs: ACTION forking... [05:46] isaacs: elliottcable: http://gist.github.com/241672 [05:46] isaacs: so, not pretty, and more loc, but the point is, deep nesting is not necessary [05:47] elliottcable: … [05:47] elliottcable: uh [05:47] elliottcable: depp nesting isn’t necessary *anyway* [05:47] isaacs: wanna make a real difference in the world? write some code to chain together a todo list and fire them all off [05:47] elliottcable: rather than *that*, I’d just ignore the indentation [05:48] isaacs: i wrote a simple queue class for npm [05:48] isaacs: useful when you have to do like 15 things in a row that all depend on one another [05:48] isaacs: ignoring indentation is one thing, but .addCallback(function() is a lot of characters to ignore. [05:52] soveran has left the channel [06:34] isaacs has joined the channel [06:49] jmettraux has joined the channel [07:15] rakeshpai has joined the channel [08:00] johan-s has joined the channel [08:14] saikko has joined the channel [08:47] edspencer has joined the channel [08:52] elliottcable: shit, I got involved in a *really* interesting IRC conversation, and haven’t been paying attention [09:10] the_undefined has joined the channel [09:12] the_undefined: !log [09:27] elliottcable: lol we haz bot now? [09:27] elliottcable: just logs, or ++ ’n shit? [09:33] sztanpet: !src [09:33] elliottcable: HTF DID I MISS THIS? [09:36] rakeshpai: wow... quite some activity happening on the mailing list today [10:14] sixtus42_away has joined the channel [10:14] sixtus42: ryah_away: did you see http://www.golem.de/0911/71418.html yet? [10:27] the_undefined has joined the channel [10:44] sixtus42 has joined the channel [10:47] sixtus42_ has joined the channel [10:49] GarethAdams|Work has joined the channel [10:56] johan-s has joined the channel [10:58] jan____: damn, I missed the talk. [11:06] sixtus42_: jan____: just happy to see you exited about the "other" project I care about :-) [11:12] jan____: heh [11:22] helgim_ has joined the channel [11:28] DanWrong has joined the channel [11:29] the_undefined has joined the channel [11:30] DanWrong: hi, I have a very noobish question... [11:30] DanWrong: i've written a module called test.js [11:31] DanWrong: then from the directory that test.js is in a run node-repl [11:31] DanWrong: then trying to require it with var test = require('./test'); gets me a not found error [11:31] DanWrong: what am I doing wrong? [11:33] ashb: need .js on the end? [11:33] ashb: not sure if node's require works how CommonJS says it should [11:33] DanWrong: that gets an extension not allowed error [11:34] ashb: ah. then '.' doesn't do what you'd expect in a repl [11:34] ashb: DanWrong: also: traitor! :) [11:34] DanWrong: ACTION looks guilty [11:35] ashb: you still owe me and dom an email anyways [11:35] DanWrong: yep, will do [11:36] ashb: as for your problem, pass. i suggest just removing the './' [11:36] ashb: i can't find node's implementation in its source to check what it does mind [11:36] DanWrong: still does find the module it seems [11:37] ashb: does require.paths exist? [11:37] DanWrong: was about to dive in but thought id ask first [11:37] DanWrong: yep [11:37] ashb: push '.' into that then [11:38] DanWrong: that works, yeah. [11:38] DanWrong: will do for now, cheers! [12:06] frodenius: ugh, 26 ml posts? [12:15] saikko_ has joined the channel [12:20] gwoo_ has joined the channel [12:46] gwadeloop has joined the channel [12:48] sixtus42_ has joined the channel [13:05] gwadeloop: does someone could point me a project where POST is handle ? [13:06] gwadeloop: I find a lot of project with this kind of comment : // TODO This should be a POST [13:06] gwadeloop: but in fact use a GET [13:16] the_undefined: sixtus42: do you know where ryah is? He missed all the fun here yesterday? [13:17] sixtus42: the_undefined: didn't he say he's heading for denmark to the goog? [13:17] the_undefined: sixtus42: yeah, but I wasn't sure if he was doing that this week [13:17] sixtus42: the_undefined: what kind of fun are you talking about? [13:18] the_undefined: sixtus42: well lots of new people, and node.js had like 2k mentions on twitter yesterday :) [13:18] sixtus42: the_undefined: guess I am a little detached myself right now :-) [13:18] the_undefined: sixtus42: http://search.twitter.com/search?q=node.js [13:18] the_undefined: seems like the #nodejs tag didn't catch on yet :) [13:19] the_undefined: sixtus42: how is that paper business of yours coming along? [13:20] sixtus42: the_undefined: page 91. currently in thought mode though [13:22] the_undefined: does it have LOL cats yet? [13:22] the_undefined: :) [13:22] the_undefined: I'm sure somebody has written a thesis about that ... [13:23] sixtus42: no, but it's got pi-calculus now :-D [13:24] the_undefined: awesome [13:24] the_undefined: :) [13:34] the_undefined has joined the channel [13:45] the_undefined_ has joined the channel [13:52] okito has joined the channel [13:53] zoby has joined the channel [13:55] gwadeloop: I am still in the process of getting the information POSTed on page : http://dpaste.com/124508/ [13:56] gwadeloop: based on what I have understood I need to wait that the request is finished to get access to this info [13:57] gwadeloop: a bit of hand holding would be appreciated to understand this [14:06] sixtus42_ has joined the channel [14:08] gwadeloop: this POST question is kind of dragon because I have seen many project on git hub that have this kind of comment [14:12] intellectronica: gwadeloop: not that i've tried that, but can't you figure out if the request is a POST by looking at the method property of the request object? [14:12] ashb: i dont think node supports x-www-form-urlencoded yet [14:12] ashb: i didn't a few days ago certainly [14:13] gwadeloop: intellectronica: from what I have understood from yesterday POST is not directly available you need to parse the request when it is finished [14:14] gwadeloop: but I can't find example of this [14:14] intellectronica: gwadeloop: right, yes, if you want the form data you'll need to parse the request [14:14] gwadeloop: ashb: I can remove this bit because it is not important here [14:15] ashb: gwadeloop: as in you have to use multipart right now i think [14:15] sixtus42_: ashb: x-www-form-urlencoded is available as module [14:15] ashb: ah [14:15] intellectronica: i guess the thing to do is add that to node. what would an ideal interface be? request.form, where form is an object with properties corresponding to the form fields? [14:15] intellectronica: sixtus42_: cool. which module should we require then? [14:15] gwadeloop: intellectronica: could someone point me to existing code that do this that I can learn from it [14:16] intellectronica: and why not hook it to the request object? [14:16] sixtus42_: intellectronica: nope, that goes against the idea of node. that's higher level than node [14:16] intellectronica: fair enough [14:16] ashb: sixtus42_: it parses multi part - why shouldn't it parse form-urlenc? [14:16] ashb: (doesn't it?) [14:17] intellectronica: sixtus42_: so, require('multipart').parse() ? [14:17] frodenius: ashb: because form data is not part of http? [14:17] frodenius: multipart is [14:18] okito has joined the channel [14:18] ashb: no its not :) multipart is a mime encoding. HTTP only talks about message bodies doesn't it? [14:18] ashb: and they are both just bodies [14:18] sixtus42_: intellectronica: guess the module hasn't seen updates lately (so make sure it actually works with a current node) but take a look http://github.com/ujh/coltrane/blob/master/coltrane/http/formencoding.js [14:19] ashb: 'In general, HTTP treats a multipart message-body no differently than any other media type: strictly as payload' [14:19] ashb: The one exception is the "multipart/byteranges" [14:19] intellectronica: sixtus42_: thanks [14:19] sixtus42_: intellectronica: or even smaller http://github.com/sixtus/coltrane/blob/master/module/www-forms.js [14:20] sixtus42_: intellectronica: urban picked up my code and put it into coltrane, but you have to ask him about the status. decoding www-forms is trivial as you can see by my code (2nd link) [14:21] ashb: its even easier if you dont want the x[] feature [14:21] intellectronica: ashb: you mean multiple values for the same parameter? [14:21] sixtus42_: intellectronica: but you will need to buffer the request yourself and assemble it into 1 string before calling my module [14:21] ashb: that takes ?x.y=2 and gives an object {x: {y: 2}} i think [14:22] sixtus42_: ashb: that was the idea, yes [14:22] ashb: but it also has x[0] which i dont see the point of [14:22] ashb: ?x=1&x=2 [14:22] malkomalko has joined the channel [14:22] sixtus42_: ashb: exactly for that case [14:23] ashb: '?x=1&x=2' should be {x: [1,2]} [14:23] intellectronica: ashb: isn't that exactly what it is? [14:23] sixtus42_: ashb: well it shouldn't be to hard to adopt it to your needs [14:24] ashb: intellectronica: var arrayTest = key.match(/(.+?)\[(.*)\]/); [14:24] ashb: seems to require x[] to get an array [14:24] ashb: which is a php-ism iirc? [14:25] sixtus42: ashb: I wouldn't touch php with a pole stick [14:25] sixtus42: ashb: but I did want to make ordering explicit [14:27] ashb: being explicit in the order of the html isn't enough? [14:27] ashb: (as in order of teh s) [14:30] gwadeloop: I have still a hard time to understand how to get the data POSTed from the request. It would be awesome if someone could point me to a snippet on a project that use this feature. [14:30] sixtus42: gwadeloop: just a second [14:30] gwadeloop: sixtus42: thank you very much [14:34] JimBastard has joined the channel [14:34] sixtus42: gwadeloop: something like this http://gist.github.com/241902 will do the trick [14:35] sixtus42: gwadeloop: the nice thing about node is that you can actually handle all chunks individually [14:35] gwadeloop: ACTION reading and testing in my app thanks [14:35] JimBastard: good morning party people [14:35] sixtus42: gwadeloop: coming from any other framework, this is just not possible and you would get a call to "complete" instead [14:35] gwadeloop: sixtus42: I am not yet sure that I find this do it yourself " a nice thing" [14:36] sixtus42: gwadeloop: node is just the core. you will want a framework on top of that [14:36] gwadeloop: ACTION start to understand this benefit [14:37] sixtus42: gwadeloop: imaging uploading a youtube video [14:37] gwadeloop: yes I clearly see the gain there [14:37] ashb: its just having to write it every time? [14:38] gwadeloop: but I build form more often that I upload video [14:38] sixtus42: ashb: no, the target audience of node.js is framework builders. from the sound of it, you are framework audience [14:39] ashb: sixtus42: i'm happy building frameworks [14:39] ashb: i just dont think a lot of people got that point yet [14:40] gwadeloop: sixtus42: is there a single well documented framework yet ? [14:41] gwadeloop: I have seen many proof of concept/toy project but not yet something with documentation [14:41] JimBastard: any suggestions for a good stress testing framework i could use to test node? [14:41] sixtus42: gwadeloop: check http://wiki.github.com/ry/node [14:41] sixtus42: JimBastard: apache ab [14:42] ashb: 'haml-js — Server side html generation using javascript. Parses haml templates and renders html.' [14:42] ashb: that doesn'y use node - it can be used in node. [14:42] JimBastard: thanks [14:42] sixtus42: ashb: I think it directly streams into a node response [14:43] ashb: ah. didn't last time I looked [14:43] ashb: still, its more of a library/module you can use in node, not a project that uses node [14:43] sixtus42: ashb: didn't look, just assuming :-) [14:43] sixtus42: ashb: but anything else is plain stupid [14:43] ashb: which is just a different category [14:43] bh has joined the channel [14:43] ashb: http://github.com/creationix/haml-js/blob/master/haml.js [14:44] ashb: so its 'node' support is minimal :) [14:44] sixtus42: ashb: indeed, but at least it's a module [14:44] ashb: yeah, just saying it needs a different heading on that wiki page [14:44] ashb: oh, which i can edit [14:45] ashb: i imagine a lot of those are in the same boat [14:45] sixtus42: gwadeloop: there is a lot of rethinking necessary when going towards node. expect the first wave of stuff to be toys. 2nd wave to be yet-another-reimpl-of-a-popular-sync framework [14:45] sixtus42: gwadeloop: and the 3rd wave will be "native" frameworks [14:46] gwadeloop: Is is correct to say that we are in the the first wave ? [14:46] sixtus42: gwadeloop: my ph.d. thesis includes one of those [14:47] gwadeloop: with some attempt like djangode that would be form the second wave [14:47] gwadeloop: but nothing yet in the third [14:47] sixtus42: gwadeloop: well, I do consider myself to be there. just that my prototype is nowhere close to be released and latex is more important right now [14:48] sixtus42: gwadeloop: for starters: I don't use MVC [14:48] gwadeloop: does your baby is available somewhere ? [14:49] sixtus42: gwadeloop: it's in a private github repo and written against an older version of node. but I do refactor while writting it down in latex and promise to publish once the paper part is done :-) [14:50] JimBastard: i wonder how high i can crank up ab [14:50] gwadeloop: sixtus42: latex == documentation ? [14:51] ashb: latex = the thesis [14:51] sixtus42: ashb: correct [14:51] sixtus42: 91 pages and counting [14:51] gwadeloop: thank you for you kind explanation [14:52] sixtus42: gwadeloop: well, enjoy the pureness of node as it is. frameworks will pop up left and right very soon [14:52] sixtus42: but I guess, we'll have to wait for the api freeze in version 0.2 [15:01] sixtus42_ has joined the channel [15:02] sixtus42_: ACTION hates 802.11g in public places [15:12] soveran has joined the channel [15:13] ashb: sixtus42: get a persistent irssie/quassel connection :) [15:14] soveran: second try: did anyone had issues with node ruining a vim session? (Leopard + screen + vim + Node.js from github) [15:15] sixtus42: soveran: maybe you have to turn on utf8 in screen's settings? [15:15] soveran: sixtus42: turned on already [15:15] sixtus42: ashb: too lazy (it would be available). besides, I should be in latex anyways ;-) [15:16] sixtus42: soveran: than no, did not hear anything about it [15:16] soveran: sixtus42: thanks anyway :-) [15:17] gwadeloop: here it is the information I get from the request once it is complete : http://dpaste.com/124548/ [15:18] gwadeloop: I assume that this is a string should I parse it by myself to extract the important info ? [15:18] rhys__ has joined the channel [15:18] gwadeloop: in this case ls [15:28] the_undefined_: gwadeloop: http://debuggable.com/posts/streaming-file-uploads-with-node-js:4ac094b2-b6c8-4a7f-bd07-28accbdd56cb [15:28] the_undefined_: gwadeloop: shows how to post & parse form data with node, updated it to work with the latest version [15:28] gwadeloop: the_undefined_: thank you I will read this [15:29] the_undefined_: I should write a regular urlencode parser so [15:29] the_undefined_: we need that in the cor [15:29] the_undefined_: * core [15:31] sixtus42: the_undefined_: I disagree ;-) but it's been written http://github.com/sixtus/coltrane/blob/master/module/www-forms.js ( ashb will argue about it, but still) [15:32] ashb: sixtus42: only about the [] bit [15:32] ashb: the x.y bit i like [15:33] the_undefined_: sixtus42: what do you disagree about? shipping a form parser? [15:33] sixtus42: the_undefined_: that it should be in core [15:33] the_undefined_: sixtus42: and no, I don't consider that to be node-style parser as its not evented [15:34] sixtus42: the_undefined_: very true. but that was my 10 seconds of hacking it together for a demo code I needed to show [15:34] the_undefined_: sixtus42: why? That's like saying node should not come with a http parser because it has tcp sockets [15:34] sixtus42: the_undefined_: with that argumentation, I get to get my HTML parser in core. Deal? [15:35] aguynamedben has joined the channel [15:35] gwadeloop: the_undefined_: the example you have posted about is for a file upload. In my case I would like to get access to the info entered in the input field [15:36] bentomas has joined the channel [15:36] bentomas: !log [15:36] the_undefined_: sixtus42: No, HTML is where it stops. [15:36] the_undefined_: gwadeloop: that works just the same, try it [15:36] sixtus42: the_undefined_: lol, but x-www-forms IS html [15:36] the_undefined_: sixtus42: must be a weird syntax I'm not familar with yet ;) [15:36] sixtus42: the_undefined_: he want's a nice js object to query [15:37] the_undefined_: sixtus42: ok, let me make a new post about that [15:37] the_undefined_: gwadeloop: give me 5min [15:37] gwadeloop: the_undefined_: thanks [15:37] sixtus42: gwadeloop: let's see if the_undefined_ rewrites my code to be streaming in 5mins [15:38] the_undefined_: sixtus42: no, I'll stay with my parser if you don't mind :D [15:38] sixtus42: the_undefined_: you already have a streaming www-forms parser? [15:39] sixtus42: got a run, cu [15:41] the_undefined_: gwadeloop: https://gist.github.com/4f9b9925c2cda011ec8b [15:42] gwadeloop: ACTION reading [15:43] gwadeloop: ACTION testing .... [15:44] bh: is there a way to know how many promises are pending without manually keeping track of such? [15:45] greenideas has joined the channel [15:45] gwadeloop: the_undefined_: shouldn't you test first if request.method == 'POST' ? [15:45] the_undefined_: gwadeloop: yes, this is just showing how to parse the data - not how to write a good app :) [15:46] gwadeloop: :-) [15:46] gwadeloop: thanks [15:52] deno has joined the channel [15:54] gwadeloop: the_undefined_: thank you I am now able to complete my toy project [15:54] the_undefined_: gwadeloop: your welcome, thanks for asking :) [15:54] the_undefined_: publishing blog post in a sec [15:55] gwadeloop: Is there a planet node.js ? [15:55] gwadeloop: I will add your feed to my reader [15:56] ashb: i suspect not yet [15:58] the_undefined_: gwadeloop: http://debuggable.com/posts/parsing-a-form-in-node-js-1:4b0bff13-4244-4ebc-8455-4975cbdd56cb [15:58] the_undefined_: nope [15:58] the_undefined_: don't think so [15:59] the_undefined_: there were lots of posts after simon's last night [15:59] the_undefined_: but I don't know which of those blogs will continue with the topic [15:59] the_undefined_: I'd be happy to find out about them myself so [16:08] frodenius: bh: not really, i wrote a small class that i use for keeping track of them http://github.com/fwg/nodejs.irc/blob/master/irc/promisegiver.js [16:08] frodenius: maybe it's interesting [16:09] bh: frodenius: thanks! I will check that out. [16:10] bh: someone needs to write a test framework that stresses promises and name it "promise breaker" :| [16:10] frodenius: hehe [16:12] bh: I'm adding promises instead of callbacks to redis-node-client since Simon Willison’s post mentioned the project and a bunch of people are watching it now on github [16:12] bh: node.js is getting lots of attention lately! [16:18] johan-s has joined the channel [16:23] bh has joined the channel [16:23] bh has left the channel [16:23] fictorial has left the channel [16:24] fictorial has joined the channel [16:24] n8o has joined the channel [16:25] n8o: so, which node-based MVC web framework is the most promising? [16:27] fictorial: Nuby on Nails [16:28] ashb: n8o: there aren't any serious 1) MVC framworks at all yet, or 2) if there are no one clear winner yet [16:29] gwoo has joined the channel [16:30] n8o: ashb: kk [16:30] n8o: i ask because I'm tempted to start on one, but I hate doing something that's already been done [16:31] fictorial: there's at least express, node-router, gateway, and vroom that I can think of [16:31] n8o: i'd probably do something like recreate django, rails, or cake with node, but none of them are originally event driven [16:32] n8o: fictorial: i'll probably have to look them over then [16:32] n8o: really, there's potential to create something unlike those others, too [16:32] fictorial: http://github.com/simonw/djangode too I suppose then :) [16:32] gwoo: i think express is a sinatra clone [16:32] bentomas: there's also djangode (written by simon willison) but he has said that it was more a proof of concept [16:33] gwoo: does anyone know of any docs on using node behind nginx? [16:33] bentomas: Incidentally, I am writing one myself (with those projects in mind) but just for fun, and to see if I can do it [16:33] n8o: the rails guys have made a lot of effort to do client-side ajax with ruby, where a node-based project would have no such problems :D [16:33] gwoo: yup [16:33] bentomas: I think it is the new thing to do, write a node.js web framework [16:33] bentomas: (http://github.com/bentomas/bomber) [16:33] n8o: gwoo: i'm not too familiar with sinatra, I'll have to check it out [16:33] gwoo: bentomas: its a great way to learn node [16:33] gwoo: bentomas: yup :) [16:33] fictorial: gwoo: http://stackoverflow.com/questions/1160454/nginx-proxy-to-comet/1165187 [16:34] gwoo: fictorial: gracias [16:34] fictorial: gwoo: de nada [16:35] JimBastard: yeah everyone if messing around with node.js frameworks [16:35] bentomas: Sinatra is pretty sweet, but not great for large projects (I hear). Express has a (debatable) flaw in that it evals all the functions so you don't have to explicitly return [16:35] n8o: i could design and develop a web framework (again) however I'd much rather some MVC design genius did it and I can just write code for it [16:35] n8o: ah [16:35] JimBastard: im being a bit more pragmatic and focusing on fixing the debugger first, http://github.com/Marak/node_debug [16:35] bentomas: so, that either bothers you or it doesn't [16:36] n8o: i dislike eval, myself [16:36] gwoo: n8o: i was one of the main guys behind cake, working on lithium now [16:36] bentomas: likewise [16:36] n8o: gwoo: yes, I'm aware of that hehe [16:36] gwoo: JimBastard: awesome :) [16:36] fictorial: the nice part about node.js is that it's so simple - I've started with fu.js a couple of times and just added on what I've needed [16:36] gwoo: n8o: oh :) [16:36] n8o: gwoo: not node based? [16:36] gwoo: n8o: i need to wait a little longer [16:36] gwoo: i been following node for a while [16:36] n8o: i've been writing mostly cakephp based apps for the last year or so [16:37] gwoo: lots of great changes [16:37] JimBastard: fixed async object dumping last night, added clear button this morning, adding contexual help now [16:37] gwoo: but im waiting for some more stabilization [16:37] DanWrong has joined the channel [16:37] n8o: JimBastard: a useful tool, that [16:37] JimBastard: thanks [16:37] JimBastard: not my orginal design, but im improving [16:37] JimBastard: any suggestions welcome [16:37] gwoo: JimBastard: debugger and test suite are hugely important [16:38] n8o: gwoo: ya, stability would be nice. i'm up for developing something as node develops itself [16:38] JimBastard: yeah, i started to build framework code last night [16:38] JimBastard: and was like, umm debugger sucks [16:38] bentomas: jumBastard: have you looked into making the debugger load quicker? [16:38] gwoo: JimBastard: haha [16:38] JimBastard: bentomas, im only working on front-end now [16:39] bentomas: ahhh, shucks! [16:39] gwoo: i'd like to figure out if some kind of namespacing will be possible [16:39] JimBastard: any suggestions for backend improvement would be great [16:39] bentomas: gwoo: what do you mean by that? modules aren't enough for you? [16:39] JimBastard: its completely async which is great, you can drill N deep into objects async [16:39] JimBastard: so you dont need to dump all on screen [16:39] n8o: have you guys seen dynatrace? [16:40] gwoo: bentomas: they are one step closer, but i see it running into problems like ruby has [16:40] gwoo: bentomas: where you can completely overwrite the functionality of one module with another resulting in unanticipated consequences [16:40] gwoo: n8o: not yet [16:41] n8o: gwoo: it's really powerful, IE only though :( [16:41] n8o: dynatrace review by resig: http://ejohn.org/blog/deep-tracing-of-internet-explorer/ [16:42] gwoo: oh wow [16:42] bentomas: gwoo: huh, I thought that was a feature :) (flexibility that is. you just need to be careful) [16:42] gwoo: bentomas: yeah ruby thought so too ;) [16:43] bentomas: gwoo: though, I can see the other side as well [16:44] gwoo: bentomas: maybe we just need some rules for proper module development [16:44] n8o: it'd be interesting to see what ruby did - don't want to repeat mistakes [16:47] bentomas: well, as far as I can tell one module can't actually interfere with the code exported from another module. I think that was the idea behind the commonjs secure modules api [16:47] bentomas: because when you require a module you get a javascript object back, and other modules don't have access to that module [16:48] bentomas: err, access to that object [16:48] n8o: don't you want modules to be able to use each other? [16:48] bentomas: so you'd have to explicitly modify the "exported" module object to change it [16:48] gwoo: n8o: well they could if they use require [16:48] gwoo: bentomas: ah maybe thats the answer [16:48] n8o: gwoo: would it duplicate memory? [16:48] joemccann has joined the channel [16:48] bentomas: ahhh, nope, n80 is right [16:48] gwoo: n8o: good question [16:49] joemccann: oi [16:49] gwoo: sup [16:49] joemccann: anyone get node.js to build on windows? [16:49] bentomas: you could require the module you want to modify, change it. and since node.js caches all module loading, you would be modifying the object that all other code would require [16:50] gwoo: bentomas: ok, thats what i thought originally [16:50] joemccann: huh? [16:50] joemccann: ;-) [16:50] gwoo: joemccann: no windows over here [16:50] gwoo: :) [16:50] joemccann: lol [16:50] gwoo: joemccann: i think JimBastard did it though [16:50] joemccann: that's why i'm asking [16:51] bentomas: gwoo: nope, he gave up and logged into a server that was running a linux variant [16:51] joemccann: voodootikigod told me to jump in this room and see if anyone successfully did it [16:51] gwoo: bentomas: haha [16:51] n8o: put linux in a virtualbox, imho [16:52] bentomas: that's how I'm doing it (on a mac, but still) [16:52] joemccann: never used virtualbox [16:52] joemccann: easy to setup and create a linux instance? [16:52] voodootikigod_: oh god [16:52] voodootikigod_: this irc channel went way down hill [16:53] bentomas: woodootikigod_ how is that? [16:53] bentomas: woops! voodootikigod_ [16:53] voodootikigod_: haha [16:53] voodootikigod_: woodoo [16:53] voodootikigod_: cause joemccann is here [16:53] joemccann: lmao [16:53] joemccann: duh! [16:53] bentomas: joemccann: you could read how I did it here: http://benjaminthomas.org/2009-11-15/virtualbox-development-virtual-machines.html (the steps should be the same for windows) [16:54] joemccann: i'm that guy at the party [16:54] voodootikigod_: joemccann: virtual box is easy [16:54] voodootikigod_: or you could spin up EC2/Rackspace nodes [16:54] voodootikigod_: and just use those [16:54] voodootikigod_: or vmware [16:54] voodootikigod_: or parallels [16:54] joemccann: true [16:54] joemccann: ACTION sys admin skillz mad weak, son [16:54] bentomas: joemccann: and the virtualbox documentation is pretty good as well (if not as linear) http://www.virtualbox.org/wiki/Documentation [16:54] voodootikigod_: hahaha [16:54] joemccann: awesome, thx guys [16:55] voodootikigod_: you know [16:55] voodootikigod_: hmm [16:55] joemccann: Has anyone done any performance testing of node.js verusus say Friendfeed's Tornado Framework? [16:55] voodootikigod_: brain churns [16:56] voodootikigod_: joe do you have vmware? [16:56] voodootikigod_: even if just vmware player [16:56] joemccann: no [16:56] joemccann: if it is free, i can get it! [16:56] joemccann: ;-) [16:56] voodootikigod_: it is [16:56] joemccann: on my work's laptop currently [16:56] voodootikigod_: I am going ot make a vmware image [16:56] voodootikigod_: and post it [16:56] joemccann: el yeah! [16:56] joemccann: thx man [16:57] rtomayko has joined the channel [16:58] n8o: voodootikigod_: good idea [16:58] inimino: wow, this channel is heating up [16:58] inimino: good sign [16:58] gwoo: inimino: yup [16:59] voodootikigod_: i am going to just throw it into ubuntu [16:59] voodootikigod_: joemccann: can you handle yourself in a ubuntu image? [16:59] gwoo: inimino: its gonna put a lot of pressure on ryah_away [16:59] voodootikigod_: ACTION assumes joemccann average user [17:00] JimBastard: added contexual help, http://github.com/Marak/node_debug [17:00] joemccann: definitely average user [17:00] inimino: gwoo: more people means more help ;) [17:00] voodootikigod_: i am going to make it a live cd image [17:00] joemccann: but my mom says I'm smart [17:00] joemccann: so i think i can handle it [17:00] joemccann: ;-) [17:00] voodootikigod_: she told me last night [17:00] JimBastard: working on making the console input more like firebug now (resizable, "enter" creates new line instead of exec, adding "run" button) [17:00] gwoo: inimino: sometimes :) [17:00] joemccann: lmao!! [17:00] joemccann: touche!! [17:00] inimino: gwoo: sometimes :) [17:00] joemccann: glad to see u haven't lost ur touch [17:00] joemccann: lol [17:01] gwoo: haha [17:01] voodootikigod_: haha [17:01] voodootikigod_: she said that too :) [17:03] voodootikigod_: joemccann: ok give me about an hour [17:03] voodootikigod_: and i will post up a CD image [17:03] voodootikigod_: that you can use either for vmware virtualbox or burn to a cd and run on any computer [17:04] joemccann has joined the channel [17:05] joemccann: sorry, Firefox just shitboxed itself [17:05] joemccann: voodoo, did u say/mention anything that i might have missed? [17:08] voodootikigod_: just that your mom also said I haven't lost my touch. and in an hour I will post up a live CD image that you can run on a usb stick, cd, or vmware [17:08] joemccann: lmao [17:09] joemccann: you're helping me laugh away my hangover [17:09] joemccann: and for that, i thank u [17:09] voodootikigod_: ACTION is jealous [17:09] voodootikigod_: dude a hangover on tuesday [17:09] voodootikigod_: thats gh [17:09] joemccann: of my hangover? [17:09] joemccann: lol [17:09] voodootikigod_: thats ghangsta [17:09] joemccann: hahaha [17:10] joemccann: yeah service industry night is a great nite to go out [17:10] joemccann: especially [17:10] joemccann: when u don't work in the service industry [17:10] joemccann: FTW [17:11] joemccann: aight, last windows question [17:11] joemccann: what IRC client do u nerds use? [17:11] voodootikigod_: !windows [17:12] joemccann: lmao [17:12] joemccann: dude, i know [17:12] joemccann: i'm buying a mac book air so i can sip my latte and look cool [17:13] joemccann: brb [17:14] voodootikigod_: haha [17:14] voodootikigod_: with a cravate and a dickie [17:17] JimBastard: web based irc [17:17] JimBastard: java.freenode (ugh), miss mibbit soo bad [17:17] JimBastard: ACTION was part of the reason mibbit got banned from freenode [17:17] gwoo: haha [17:18] inimino: JimBastard: get a real IRC client! [17:18] inimino: ACTION recommends weechat [17:19] JimBastard: real haxorz used web based irc [17:20] JimBastard: :p [17:21] middayc has joined the channel [17:25] deno has joined the channel [17:28] joemccann: im using web-based rght now [17:28] joemccann: just curious what others use(d) [17:35] sixtus42 has joined the channel [17:36] deno_ has joined the channel [17:39] voodootikigod__ has joined the channel [17:41] joemccann has joined the channel [18:00] orlandov: hrm... are there any other examples of how to implement a non-blocking server with node.js? the example servers are good, but a bit simple [18:01] orlandov: and the http server is somewhat bewildering [18:01] bentomas: hey does anyone have the link to the mac os x installer? I can't find it but I know I have seen one... [18:07] fictorial: orlandov: search for node.js on github, there's a bunch of example code. [18:08] bentomas: found it! http://wave.to/nodejs/install/nodejs_0_1_18_t1.dmg [18:09] aguynamedben has joined the channel [18:14] keeto: how do you get the version number? [18:14] fictorial: node -v [18:15] JimBastard: sweet, http://github.com/Marak/node_debug is starting to act more like Firebug, console input is resizable now, allows multiple lines of JS [18:15] JimBastard: getting lunch, will pick up this afternoon [18:15] keeto: fictorial: no, I meant from the js env. [18:15] mcarter__ has joined the channel [18:15] fictorial: what js env? [18:15] keeto: is there a node.version or something? [18:15] fictorial: oh I see [18:16] fictorial: not that I'm aware of -- this shows nothing: http://nodejs.org/api.html [18:16] keeto: :/ [18:16] keeto: yeah, that's what I was thinking... [18:16] keeto: feature detection it is. [18:17] fictorial: that's a much better idea anyway. [18:27] deno__ has joined the channel [18:30] deno has joined the channel [18:34] n8o has joined the channel [18:39] emyller has joined the channel [18:41] JimBastard: why does this guy im about to phone screen have this as part of his 2009-2010 work experience: Designed and developed the course material for VB6 [18:43] sixtus42_ has joined the channel [18:44] orlandov: JimBastard: he's obviously trying to impress you [18:44] deno_ has joined the channel [18:49] voodootikigod__: squashing the live cd [18:53] n8o has joined the channel [18:55] n8o: JimBastard: you have to give credit to anyone that can stand VB6 for long enough to finish writing course material about it [18:55] fictorial: VB6 is an acceptable LISP. Discuss. [18:55] JimBastard: which do you think makes more sense for the node web debugger, being able to execute multiple lines or having it be a one line input with history (like a terminal) [18:55] n8o: is there a JS interactive interpreter that works with node? [18:55] JimBastard: yes [18:55] fictorial: node-repl [18:56] n8o: JimBastard: web debugger could be one line imho [18:56] fictorial: I hacked up the first version, someone else greatly improved upon it, but it still has some sharp edges. [18:56] n8o: fictorial: cool, ty [18:56] JimBastard: where is the link fictorial [18:57] fictorial: if you have node installed, it's already in your path [18:57] JimBastard: n80 it was a one liner but what if you want to execute multiple lines [18:57] JimBastard: n8o [18:57] n8o: JimBastard: javascript works all on one line :P [18:57] n8o: JimBastard: coolest would be python-like editing that senses the need for multiple lines, hehe [18:57] ryah: wow. there are a million people here [18:58] JimBastard: i got that already n8o [18:58] JimBastard: it starts as one line and autogrows [18:58] n8o: JimBastard: sounds good then :D [18:58] JimBastard: i have a button "run" that execs though [18:58] JimBastard: enter != exec [18:58] JimBastard: enter = new line [18:59] JimBastard: i was thinking about just porting firebug to work with it, but the current node_debug works async pretty nice [18:59] JimBastard: so i figured id just build off it [18:59] n8o: ah ya, a firebug addon would be nice [18:59] n8o: but so would chrome support, imho ;) [18:59] JimBastard: no, firebug-lite [18:59] JimBastard: not regular firebug [19:00] n8o: regular firebug is quite nice tho [19:00] JimBastard: yes, and its a browser plugin [19:00] n8o: luckily webkit has a good set of dev tools now [19:00] n8o: i wonder if webkit's tools are extensible, hmmm [19:00] JimBastard: you dont wany anything for the node debugger except really the console [19:00] JimBastard: inspector makes little sense [19:01] n8o: for sure [19:01] n8o: i'm just thinking ahead to the mvc i want to make/work on [19:01] n8o: i've also been toying with the idea of server-side webkit instances for templating [19:01] n8o: that would be evil :D [19:06] frodenius: fictorial: any progress on rerequire? [19:07] frodenius: ah sry [19:07] frodenius: bentomas: ^^ [19:08] fictorial: frodenius: hey that wasn't me - that was this guy I think: http://github.com/onnlucky [19:08] fictorial: as per last comment here: http://github.com/ry/node/commit/dc093ef833561cfa8d85fbd649f62d2045d4e61f#comments [19:09] frodenius: ah yeah also interesting [19:09] frodenius: but i think bentomas wanted to write some reloading function [19:09] fictorial: ah ok [19:10] frodenius: or maybe my juvenile dementia is progressing [19:10] n8o: i like that question about async SQL in the mailing list [19:10] n8o: hoping it gets some attention [19:13] joemccann: oi! [19:14] inimino: there is already work on async SQL going on in browsers at the whatwg [19:15] inimino: would be nice to implement the same API as a module for node [19:17] bentomas: I was looking into it but was going to send an email to the mailing list with different suggestions for how it could be done [19:17] bentomas: so far I have three options: a reload('modulename') function, which reloads the module into the same object so things that have already required it would get the new version [19:18] bentomas: (which was frodenius' suggestion) [19:18] bentomas: a requireNoCache('moduleName') which would work like the current require just not checking the cache first to see if it already exists [19:19] bentomas: or clearModuleCache() which, does what it says, so any requires there after actually rerequire things [19:19] bentomas: what do we like the best? [19:19] liefy has joined the channel [19:19] voodootikigod__: Node.js Live CD available at https://jsconf.s3.amazonaws.com/node-js-ubuntu-9.04-i386.iso [19:20] ryah: heh, what? :) [19:20] voodootikigod__: I made a ubuntu live CD with node.js pre-installed for windows users [19:20] ryah: voodootikigod__: for like, ec2 installs? or? [19:21] ryah: oh [19:21] voodootikigod__: they can just download [19:21] voodootikigod__: put on a USB [19:21] voodootikigod__: and have it working [19:21] voodootikigod__: or run it in vmware [19:21] voodootikigod__: virtualbox [19:21] voodootikigod__: etc [19:21] ryah: cool [19:21] voodootikigod__: no magics [19:21] voodootikigod__: just packages [19:21] ryah: (i should really get to that windows porting business) [19:21] n8o: voodootikigod__: very cool. tell the mailing list? [19:21] voodootikigod__: and included rlwrap [19:21] voodootikigod__: yups [19:21] voodootikigod__: will do [19:21] voodootikigod__: just verifying everything [19:26] bentomas: no one has any thoughts on rerequiring? is the mailing list a better place for this sort of discussion? [19:28] voodootikigod__: in the moderators queue [19:28] frodenius: i have but they are already on the table [19:28] bentomas: ryah: do you give your talk today? [19:28] ashb: it was this morning [19:29] bentomas: (it is hard for me to keep track of these timezone differences) [19:29] bentomas: well, I hope it went well! [19:30] bentomas: !log [19:32] bentomas: frodenius: unfortunately your approach is the more complicated of the three, so I don't think I am the man to do it [19:32] frodenius: :) [19:32] ryah: bentomas: i think they liked it. had lots of ideas. [19:32] frodenius: maybe i'll try this evening [19:37] rhys__ has joined the channel [19:38] edspencer has joined the channel [19:40] joemccann: el yeah [19:40] joemccann: thx voodoo [19:49] richtaur has joined the channel [20:01] rtomayko has joined the channel [20:02] malkomalko has joined the channel [20:03] nefD has joined the channel [20:05] the_undefined has joined the channel [20:05] the_undefined: wb ryah [20:05] the_undefined: ryah: I wrote a little irc chat log bot, we should probably host that on nodejs.org. What do you think? [20:05] the_undefined: !log [20:06] the_undefined: !src [20:06] ryah: can't resolve nodejs.debuggable.com [20:06] ryah: is it a new name? [20:07] the_undefined: ryah: hm, 48 hours [20:07] the_undefined: not a new DNS entry [20:07] the_undefined: we have a catch-all [20:07] the_undefined: ryah: I use opendns [20:07] ryah: but cool - checking out the source [20:11] JimBastard: does anyone have a good suggestion for where i can host node_debug for demos? im slightly concerned with how the eval works, is it a security risk [20:11] JimBastard: also, i dont really have a live server i can keep up 24/7 for this [20:12] the_undefined: JimBastard: RackSpace cloud servers [20:12] ryah: well, it's hardly working :) [20:12] JimBastard: well i have a rackspace cloud instance up [20:12] the_undefined: JimBastard: there you go [20:12] the_undefined: $10,95 / month - not too bad [20:12] fictorial: JimBastard: that's a big can of worms. it's not really possible to do 100% safely. if you do want to do something like that I'd recommend running it inside Xen or the like on one of your servers. [20:13] fictorial: That way, the worst that can happen is someone trashes your VM [20:13] JimBastard: i'd like to be able to show people the debugger im working on as a live demo, just dont want my gibsen hacked [20:13] JimBastard: http://maraksquires.com:8080/ [20:13] JimBastard: (work in progress) adjusting console input resizes [20:14] JimBastard: probaly shouldnt have linked that in retrospec [20:15] JimBastard: seems there are still a few async issues hiccuping [20:15] n8o_ has joined the channel [20:16] JimBastard: but like, what could someone do with raw access to an eval [20:16] JimBastard: worst case scenario [20:16] bentomas: keeto: using node_debugger I just noticed that you can get the current version of node you are using: process.version [20:17] keeto: cool. :) [20:17] keeto: thanks bentomas [20:17] JimBastard: you can do this; [20:17] JimBastard: which dumps the current app i think [20:17] JimBastard: process being a property of that [20:18] rakeshpai has joined the channel [20:21] JimBastard: jesus i think the node_debugger tries to pipeline the long poll when it gets backed up [20:21] JimBastard: :-( [20:21] keeto: successfully updated my javascript task runner to run in node.js too. :D [20:22] JimBastard: woot [20:22] JimBastard: im gonna try to port route.js i think, still debating [20:22] keeto: http://github.com/keeto/jask [20:22] JimBastard: we need a solid application framework, all the current ones arent quite there yet [20:22] JimBastard: express seemed to have the biggest following [20:23] keeto: btw, node doesn't seem to want to pass me the -h/--help args. -_- [20:24] brandon_beacher has joined the channel [20:24] fictorial: ryah: I'm sure you've run into a situation in which you think all pending operations have returned but a script just won't quit - is there an easy way to debug this? [20:26] liefy has left the channel [20:30] deno__ has joined the channel [20:32] ryah: fictorial: hmm... [20:33] jed has joined the channel [20:35] JimBastard: hey ryah, just FYI I now consider you Demi-God status ;-) John Resig is still my JavaScript God though [20:35] JimBastard: i'll be ritually sacraficing noobs when i can [20:35] gwoo: haha [20:37] fictorial: ryah: http://fictorial.com/pending.txt ... pending is a count of the pending promises... it goes up as I submit a couple of hundred commands pipelined to redis, then as redis replies and I process the replies I emitSuccess|Error and the pending promises count goes down... until it reaches 0. great. but the thing then just waits around for something... no cpu in use [20:41] voodootikigod_ has joined the channel [20:47] gwoo has joined the channel [20:55] rakeshpai: JimBastard: I only respect John Resig for his l337 JS skillz... not for jquery. IMHO, jquery sucks [20:55] rakeshpai: The only thing worse is Prototype [20:56] brandon_beacher has joined the channel [20:57] JimBastard: then what do you use? [20:57] jed has joined the channel [20:57] rakeshpai: I prefer dojo most of all [20:57] rakeshpai: sensible API, if you ask me [20:58] rakeshpai: not the jquery butchering of verbs and nouns, and the overloading of methods you can only figure out by reading docs [21:01] keeto: rakeshpai: what's your issue with Prototype? [21:02] JimBastard: dojo has better support for data and databinding imho [21:02] JimBastard: prototype if very bottom-up, not a great approach for the DOM [21:02] JimBastard: jQuery is top-down [21:02] rakeshpai: keeto: Other than the massive global namespace collisions? using the OO-style "new" operator for doing things like ajax calls, which should really be functional rather than OO [21:03] JimBastard: can anyone take a look at http://maraksquires.com:8080/ let me know how its working for you? any feedback would be great. autoresize now working, about to "cancel" button and add history table showing previous commands [21:03] keeto: new operator for ajax calls? [21:03] JimBastard: (this is node_debug) [21:03] rakeshpai: keeto: new Ajax.Request(params) [21:04] keeto: and what's wrong with that? [21:04] keeto: native XHR is new XMLHttpRequest. [21:04] cruxst has joined the channel [21:04] rakeshpai: it's wrong because of the semantics. I don't even think XHR should be OO. But I like functional things... that might just be me [21:05] cruxst: you guys were killing it at full frontal, eh? [21:05] keeto: rakeshpai: yeah, different strokes I guess. [21:05] cruxst: im reading ajaxian.com reports, good stuff [21:07] ear1grey has joined the channel [21:08] rakeshpai: keeto: IMHO, AFAIK, JS is better suited for functional programming rather than OO programming. OO comes with a lot of overhead. Not to mention, the architecture astronaut mindset that doesn't suit the paradigm. [21:09] keeto: :) [21:10] rakeshpai: keeto: you clearly disagree? [21:10] keeto: yep, but I won't be an ass about it. :) [21:10] rakeshpai: keeto: subtext... hmm [21:11] JimBastard: how you gonna do OO without classes? [21:11] isaacs has joined the channel [21:12] rakeshpai: JimBastard: Firstly, you can in JS - it's the recommended way, and deep down, the only way. Secondly, you shouldn't do OO anyway, as far as you can avoid it. [21:12] ryah: fictorial: are using wait()? [21:12] fictorial: no [21:13] keeto: rakeshpai: what I meant was, I understand what you're saying. I might not agree, but I won't go spastic defending that OO is the only way to do js. [21:13] keeto: we have too many language zealots running around the zoo. [21:13] keeto: I don't want to join in the stampede. [21:15] ryah: fictorial: at the last promise it just hangs? [21:15] fictorial: not sure if that's the correct way to put it - after all promises have emitted, I expected the thing to quit to the shell but it doesn't [21:16] fictorial: there's nothing pending [21:16] fictorial: no timeouts, no promises [21:16] JimBastard: OO is just a term [21:16] fictorial: no intervals, no waits [21:16] fictorial: I can check this in if you'd like to check it out - I'm sure I'm doing something stupid. :p [21:18] ear1grey: howdy folks... Question on building nodejs on macs... i'm getting the message "Checking for program g++,c++ : not found" when running configure. is there something obvious I've missed (Im guessing there is an environment var i'm missing or a whole set of binaries, but I'm not too familiar with OS X so can anyone point me at an obvious fix)? [21:18] ryah: fictorial: ah.. the tcp connection is closed? [21:19] ryah: ear1grey: you need g++ ? [21:19] edspencer has joined the channel [21:19] fictorial: hmm, no it's not actually... heh. that's interesting. let me see something. :) [21:19] keeto: ear1grey: you already have xcode installed? [21:19] ear1grey: well, maybe, but I have no idea what is installed as default on this box... so if someone has built on a mac before and knows it has to be added [21:19] ear1grey: yep. got xcode [21:20] ryah: fictorial: i have to go. sorry. email me if you don't figure it out. [21:21] RayMorgan has joined the channel [21:21] olivvv_ has joined the channel [21:22] rakeshpai: keeto: I guess I just prefer to have an opinion :) [21:22] rakeshpai: JimBastard: It's an idea. there are several implementations. [21:22] fictorial: ryah: thx 99% sure that's it [21:23] ryah: fictorial: ^_^ [21:23] fictorial: yes, that was it. great [21:27] edspencer_ has joined the channel [21:28] the_undefined has joined the channel [21:40] ear1grey: So, according to http://developer.apple.com/tools/ XCode has GCC built in, but its not in the path, so just running configure fails. I could explicitly install it, but that seems wasteful. Has anyone built node successfully on a Mac and if so, got any hints? [21:40] JimBastard: hint: use the live cd iso [21:40] fictorial: ACTION updated redis-node-client http://bit.ly/5dcvkM [21:41] orlandov: btw, dunno how many people this affects (likely none =) but debug("hello\000world") only prints "hello". puts prints "helloworld" [21:42] orlandov: seems like cstring funnyness [21:43] keeto: ear1grey: edit your path? [21:43] keeto: I think g++ is installed in /usr/bin by default. [21:44] n8o has joined the channel [21:45] ear1grey: ACTION checks and exports a new path [21:51] skampler has joined the channel [21:51] inimino: hey skampler [21:52] skampler: hello! [21:52] olivvv__ has joined the channel [21:57] sunsean has joined the channel [21:57] keeto has joined the channel [22:01] ear1grey: @keeto thanks, i'm getting somewhere [22:02] keeto: :D [22:02] brandon_beacher has joined the channel [22:03] ear1grey: just gotta locate the dl, execinfo and pthread libraries and i think i'm winning [22:04] kriskowal has joined the channel [22:04] the_undefined has joined the channel [22:07] fictorial: anyone getting "weird" output on std* might be mixing sys.debug and sys.puts [22:08] fictorial: debug is sync and puts is not - just fyi it was making me nuts earlier :) [22:18] JimBastard: would anyone like to test / give me feedback on my updates to node_debug? http://maraksquires.com:8080/ [22:18] JimBastard: just added console history and example code [22:19] JimBastard: going to focus on UI layout and resize options next i think, also need to update Help section [22:20] orlandov: JimBastard: how do you recover an item in the history? [22:20] JimBastard: click on it [22:20] JimBastard: each block you execute will get stored in history and may be reloaded by clicking on the entry [22:20] orlandov: JimBastard: clicking on it seems to have no effect for me =\ [22:24] JimBastard: IE? [22:24] JimBastard: can you actually see the entry in the history select? [22:25] orlandov: JimBastard: i see the entry in the select box, but clicking it has no effect. FF 3.5 [22:25] JimBastard: you should see the line(s) of js you entered represented by a single entry in the multi-select [22:25] JimBastard: ohh shit [22:25] JimBastard: errant console.log [22:25] JimBastard: one sec [22:26] JimBastard: try reloading [22:26] orlandov: JimBastard: beauty [22:26] JimBastard: sorry i usually use debug.log (safe front-side debuggin) i've been lazy and using console.log (not safe) [22:26] orlandov: JimBastard: never heard of debug.log [22:26] orlandov: is that a firebug thing? [22:27] JimBastard: its my own wrapper, ben_alman has a great one too [22:27] orlandov: ah coolio [22:27] JimBastard: http://benalman.com/projects/javascript-debug-console-log/ [22:27] JimBastard: ben's is very good [22:28] olivvv_ has joined the channel [22:28] JimBastard: any suggestions aside the ones i've mentioned for the debugger? [22:28] orlandov: BTW; in case anyone is interested, I've hacked together an SCGI application server in Node.js, would appreciate any comments/flames [22:28] orlandov: http://www.2wycked.net/node-scgi/scgi.js [22:28] JimBastard: whats SCGI [22:28] orlandov: JimBastard: it's like, FastCGI but way simpler [22:28] orlandov: the protocol spec is 1 page [22:28] JimBastard: so you can run CGI code? [22:28] JimBastard: or perl? [22:29] JimBastard: i never did cgi programming [22:29] orlandov: JimBastard: it's very close to CGI [22:29] orlandov: uses the same environ variables [22:29] JimBastard: sounds usefull if you need to port? [22:29] orlandov: yeah, it's just one of many standard web app interfaces [22:30] orlandov: a few web servers support it [22:30] orlandov: i use it with Cherokee [22:30] orlandov: JimBastard: but as for feedback, it'd be cool if the line that was run, when displayed in the bottom pane, didn't run together into one line [22:31] orlandov: and have overflow: scroll or something [22:31] orlandov: not a big deal though. [22:34] JimBastard: im going to adjust the bottom area a bit [22:34] n8o has joined the channel [22:34] JimBastard: orlandov how do you mean? [22:35] orlandov: when you execute a line, it displays that line in the bottom window along with a result right [22:35] orlandov: er [22:35] orlandov: when you execute the code [22:36] orlandov: but the executed code is displayed smushed all together onto one line [22:36] orlandov: know what i mean? [22:36] bentomas: you need to replace "\n"s with "
"s most likely [22:36] JimBastard: okay, yes i need to fix the formatting of that stuff [22:36] JimBastard: still carried over from the previous version [22:37] bentomas: if you could syntax highlight it, that'd be awesome [22:37] orlandov: srsly [22:37] JimBastard: im on that [22:37] JimBastard: i got the code for that already, see if i can do it tonight [22:38] n8o: something like SCGI will probably be useful for using node.js with apache, no? [22:39] orlandov: n8o: i think it's a personal preference thing.. some people are more comfortable with reverse-proxying http... but i'm not one of them [22:39] orlandov: but yeah [22:39] n8o: orlandov: i don't know what reverse proxying is, so I'm pretty sure I'm not very comfortable with it [22:40] orlandov: imagine apache sitting in front of a node.js http server [22:40] orlandov: and feeding it certain requests [22:40] orlandov: based on path rules and whatnot [22:44] n8o: orlandov: ah ya [22:44] n8o: orlandov: which one hinders node's protential more? [22:45] orlandov: n8o: the benefits of reverse-proxying http is that more stuff supports it out of the box [22:45] JimBastard: why would you put apache infront of node.js ? [22:46] n8o: JimBastard: lots of cheap hosting would pretty much require it [22:46] orlandov: JimBastard: depends [22:46] orlandov: serving static files [22:46] orlandov: existing infrastructure [22:46] orlandov: n8o: problem is that despite what some people think, http is far from a simple protocol [22:47] n8o: orlandov: i have no doubt about that [22:47] JimBastard: heading out, bbl [22:47] n8o: orlandov: node/ryan seems to be taking http on directly tho, good sign imho [22:48] orlandov: n8o: i think both can co-exist [22:48] isaacs_ has joined the channel [22:48] sunsean: wouldn't nginx and node.js make more sense? [22:49] orlandov: more sense than? [22:49] n8o: i need to find out what nginx is [22:49] sunsean: more sense than apache and node.js [22:49] orlandov: sunsean: like i said before, depends on the requirements [22:50] orlandov: like my company is all about apache and as much as i dislike it i can't change that :) [22:50] n8o: i didn't like apache much until my company changed to litespeed [22:50] n8o: :( [22:51] orlandov: haven't heard of that one [22:51] n8o: commercial/non-free [22:52] n8o: supposed to be fast and easy to admin [22:52] orlandov: by supposed to i take it you mean it's not? :) [22:55] n8o: ya [22:55] n8o: has some weird limits, such as upload/download size cap of 20mb [22:56] n8o: with some apps it's trivial to go over that [22:56] quirkey has joined the channel [22:56] n8o: we had a product (i don't work there anymore) that offered online file storage. clients had files bigger than 1gb before the change [22:57] n8o: we (systems) actually switched to litespeed before anyone noticed the limit, stranding those files on our servers for weeks [22:59] RayMorgan_ has joined the channel [22:59] n8o: where does the JSON object come from? [23:00] n8o: looks like the standard implementation from json.org but I can't find any json.js in the source [23:00] inimino: n8o: v8 [23:00] inimino: no, it's the standard implementation from ES5 [23:00] inimino: (which happens to have the same API) [23:00] n8o: inimino: aha! ty [23:00] n8o: i didn't realise v8 came with it. very nice. [23:02] Connorhd has joined the channel [23:05] soveran has joined the channel [23:12] cdorn has joined the channel [23:12] isaacs has joined the channel [23:21] RayMorgan has joined the channel [23:31] richtaur has joined the channel [23:38] okito has joined the channel [23:45] jed has joined the channel