[00:03] binary42 has joined the channel [00:03] tjholowaychuk: anyone know of a command similar to head/tail but to omit the last n lines? [00:04] mjr_: you mean you want the whole file except for the last n lines? [00:04] felixge: voodootikigod_: yt? [00:05] tjholowaychuk: yup, but undefined length so i cant just do head -n 50 or w/e [00:06] mjr_: 2 years ago I could give you a perl one-liner for that in about 15 seconds, but my perl is rusty. [00:07] creationix has joined the channel [00:13] isaacs: tjholowaychuk: you could use wc to check the lines, then do head -n (whatever) [00:14] tjholowaychuk: haha ya i thought of that, quite the hack for something so simple [00:14] bpot has joined the channel [00:15] tjholowaychuk: just working on tim's nvm. grabbing a yaml list of versions of node available but it has the stupid doc "tags\n---\n" deal [00:15] isaacs: if it's sh, it's a huge hack, but in bash it'd just be: head file -n $[ $(wc -l .< [02:24] gwoo: no prob [02:24] creationix: _ry: one of the places I'm speaking at this June wants me to bring some hard numbers about node performance [02:24] creationix: they said the amix from plurk has some nice graphs [02:25] JimBastard_: pushed [02:25] JimBastard_: wanna try again? [02:25] wereHamster: ncb000gt: http://pastie.org/922519 - when I execute that over and over again, 'a' remains 1 element long and the first element changes between random values [02:25] gwoo: JimBastard_: yup [02:27] fictorial: <3 Isao Tomita [02:29] ncb000gt: wereHamster: what is key? [02:31] KungFuHamster: To crush your enemies, see them driven before you, and to hear the lamentation of their women. [02:31] fictorial: I was waiting for something witty... :) [02:31] wereHamster: ncb000gt: I see now, the upsert is removing the 'a' key from the document [02:32] Tim_Smart_ has joined the channel [02:33] fictorial: ACTION would like a way to have a Buffer automatically know if it's valid UTF8 or not so that its inclusion in JSON.stringify isn't just the byte values... [02:33] ncb000gt: wereHamster: if your key object doesn't have a in it then yes [02:34] ncb000gt: that would make sense, otherwise it doesn't. [02:34] rictic has joined the channel [02:35] gwoo: JimBastard_: it's that time of the month for git. i'm trying to get it to remove the old submodule references but it doesnt want to [02:35] pkrumins: anyone knows what are the ways to stream a data over an ajax connection? [02:36] wereHamster: ncb000gt: no, the key doesn't have 'a'. I wish update({key:value},{key:value,$push:{a:...}}) was possible :-/ [02:37] mattly: cloudhead: hey so on vows, etc [02:38] mattly: are you using submodules and just not checking in .gitmodules ? [02:41] JimBastard_: back gwoo sorry was getting chicken [02:41] JimBastard_: gwoo just rm the directory and re pull [02:41] gwoo: yup [02:42] cloudhead: mattly: ey -- not using a .gitmodules at all, just cloning in vendor/ [02:43] ncb000gt: wereHamster: so the value for key does point to an existing doc or no? [02:43] JimBastard_: ill be packaging the submodules in the future, for now its all git based [02:43] mattly: ah hm [02:46] ncb000gt: wereHamster: hmm per their docs, if 'a' doesn't exist as a field in the doc, it'll try to create the field [02:46] wereHamster: ncb000gt: I want to create the key:value document if it doesn't exist, and if it exists $push somethign to a. But I figured it out, you can update({key:value},{$push:{a:...}},{upsert:true}) [02:46] ncb000gt: wereHamster: yea, that's what it seemed like when I was reading the mongo docs. http://www.mongodb.org/display/DOCS/Updating#Updating-%24push [02:47] ncb000gt: was starting to suspect a bug if it didn't behave that way [02:47] Tim_Smart_ has joined the channel [02:49] dnolen has joined the channel [02:49] wereHamster: too bad the document passed to the callback from update() doesn't include the _id of the newly inserted document [02:51] fictorial: boy this just really sums up twitter: http://github.com/twitter/gizzard/commit/8db940b90da14d8a466e00ac80a7abfc1787e324 [02:52] mattly: cloudhead: just sent you a pull request on vows that sets up submodules instead [02:53] cloudhead: mattly: cool, thanks [02:53] ncb000gt: wereHamster: yea, that is strange. seems like the _id would be useful. [02:53] nsm has joined the channel [02:53] cloudhead: if it's more manageable, I'm into it [02:53] mattly: well [02:53] mattly: submodules can be tricky [02:54] mattly: but they make the repo a bit more self-contained [02:54] mattly: other people won't have to go find eyes and check it out themselves [02:55] Tim_Smart has joined the channel [03:28] JimBastard has joined the channel [03:35] derferman has joined the channel [03:36] PyroPete1 has joined the channel [03:51] cloudhead: mattly: howbout incorporating that in the Makefile? [03:51] mattly: oh heh [03:51] mattly: yeah i suppose [03:52] cloudhead: until we have package management at least [03:52] charlesjolley has joined the channel [03:53] mattly: right [03:54] mattly: ok so [03:54] mattly: also [03:54] mattly: i'm getting errors with eyes [03:54] mattly: and array/object values [03:54] mattly: TypeError: Object [object global] has no method 'stylize' [03:54] mattly: at stringifyObject (vendor/vows/lib/vendor/eyes/lib/eyes.js:148:27) [03:54] mattly: any ideas? [03:55] JimBastard: ummm [03:55] JimBastard: it looks like that object can't stylize [03:55] charlesjolley has joined the channel [03:55] JimBastard: dump the object and see whats it is? [03:55] mattly: sorry that was meant for cloudhead [03:56] JimBastard: kk [03:56] cloudhead: mattly: trying pulling in the latest v [03:56] cloudhead: there were some problems with 1.9 [03:56] cloudhead: they should all be fixed now [03:57] mattly: cloudhead: i'm on 7aed7165cbe591310c6b00b48111018cf66c00d6 [04:00] cloudhead: mattly: you sure? [04:00] cloudhead: can't find it [04:00] mattly: hm [04:01] cloudhead: oh [04:01] cloudhead: wait [04:01] cloudhead: hmm [04:01] cloudhead: yea got it [04:01] mattly: 7aed7165cbe591310c6b00b48111018cf66c00d6 lib/vendor/eyes (heads/master) [04:01] mattly: heh [04:03] cloudhead: ok [04:03] cloudhead: I just pushed [04:03] cloudhead: I had some unpushed changes I think [04:03] mattly: cool [04:04] cloudhead: pushed to vows & eyes [04:04] mattly: cool [04:07] steadicat has joined the channel [04:11] fictorial: I haven't used stream.pause/resume and 'drain' and I'm wondering if I'm screwing myself for not doing so. I suppose the issue is that if I don't, a "slow client" will cause a stream to become unwritable and write() will fail by returning false. what happens then? [04:12] fictorial: creationix: this is probably the better way to go in your websocket lib; replace the setTimeout bit [04:13] sh1mmer has joined the channel [04:13] cloudhead: mattly: you know, you don't need to return a promise explicitly in vows, cause I return one from cradle [04:13] cloudhead: (merging your branch) [04:13] creationix: fictorial: doesn't still buffer the bits when it returns false [04:14] creationix: they just get backed up in memory [04:14] Aria has joined the channel [04:14] mattly: hm [04:14] fictorial: so, the kernel tcp buffer fills up, write() returns false but the data to write is buffered in user land for us? [04:15] JimBastard has joined the channel [04:15] icey has joined the channel [04:16] JimBastard: man, some people have been entering real credentials in @ http://hook.io. i had to add a warning message [04:17] JimBastard: stupid stupid people [04:18] icey: hook.io is really cool looking btw [04:19] justinlilly has joined the channel [04:19] JimBastard: thanks icey [04:19] kenneth_reitz has joined the channel [04:19] JimBastard: im presenting at scurvy tommorow night [04:19] kenneth_reitz has joined the channel [04:20] JimBastard: if i dont win the best of scurvy i think im gonna double back to barcamp [04:20] icey: JimBastard: have you thought about talking to Tom from cQuery.com about integration? it would be a really good fit [04:20] JimBastard: i dont know cQuery.com, but hook.io can integrate with anything [04:21] JimBastard: web apis are its bread and butter [04:21] JimBastard: so there is http://cquery.com/api/ [04:21] icey: i was working on something similar last year; it was a subscription engine that would email you, sms, twitter, call, whatever you whenever certain conditions occurred [04:21] JimBastard: i would build a hook.io protocol called "cquery" which would wrap a lib for communicating with that web api [04:21] icey: he has a really nice change detection engine [04:21] icey: but not a great notification setup [04:21] JimBastard: hrmmm [04:22] mjijackson has joined the channel [04:22] icey: i imagine the result would be really powerful [04:22] JimBastard: it seems they do dom parsing? [04:22] icey: i think it's all css / dom stuff, yeah [04:22] JimBastard: so yeah [04:22] icey: he uses femtoo.com as his notifier right now (also his) [04:23] JimBastard: hook.io v0.2.0 will have YUI and jQuery support [04:23] JimBastard: my friend tmpvar built jsdom [04:23] JimBastard: we've been talking about it a lot [04:23] icey: nice [04:23] JimBastard: so i think with jsdom, YUI, and $ (or sizzle) that would be enough [04:23] icey: i love it when cool gear gets written on bleeding edge frameworks / engines - it makes for interesting results [04:24] JimBastard: yeah my strategy is to steal all the best node.js modules [04:24] JimBastard: its working well so far [04:24] icey: how long have you been working with node? [04:24] JimBastard: nov 09 i think [04:24] JimBastard: abouts [04:24] icey: has it been easy to write large projects in javascript? like.. have you found the language to be relatively maintainable? [04:25] JimBastard: the api was changing a lot, but its just about stable now [04:25] JimBastard: large projects in javascript is easy enough [04:25] JimBastard: just make sure you are evented [04:25] JimBastard: and modular [04:25] JimBastard: and de-coupled [04:25] noonat: de-couplde++ [04:26] icey: how is the error handling situation? [04:26] noonat: *de-coupled [04:26] JimBastard: how do you mean? [04:26] JimBastard: just look at some of the hook.io code or express code or any code [04:26] JimBastard: errors are errors [04:26] JimBastard: you throw them [04:27] Aria: Yeah, I'm finding it's really easy to decouple things, the way the module system works. [04:27] JimBastard: aye [04:27] ncb000gt: icey: Writing projects in JS is actually very nice. I've worked with JS on the server side on a few different platforms. [04:28] icey: ncb000gt: ahh that's good to know; the last time i messed with server side js was ecma 3 / netscape jsp and it was painful [04:28] JimBastard: :-( [04:29] ncb000gt: icey: Most of the things I had been doing was specific to the web, but they all had some components of DB, IO, and parsing. [04:29] bmizerany has joined the channel [04:29] ncb000gt: It's been in a changing state for a few years but I've been really impressed and happy using Node on my personal projects. [04:30] icey: ncb000gt: yeah, i'd say that would be most of what i'd need to do; that's good to know [04:30] icey: node itself seems like it's really well maintained; i love seeing all the patch reports in the mailing list. it's js i'm more concerned about ;) [04:30] ncb000gt: Node only has one or two frameworks right now for the web IIRC. I believe Express is the front runner (not sure of others). [04:30] mikeal: geddy is awesome [04:31] ncb000gt: There might have been one trying to replicate parts of Django too. [04:31] icey: or rather, the people around me writing the js [04:31] icey: i checked out express; it seems pretty nice [04:31] ncb000gt: aye. :) [04:31] JoePeck_ has joined the channel [04:31] mikeal: all the frameworks that are some framework from another language done in node are pretty bad [04:31] mikeal: they just don't "feel" right [04:31] ncb000gt: mikeal: yea. seems like a common issue. [04:32] ncb000gt: I'll have to take a look at geddy. [04:32] Aria: I'm intending to port a portion of Camping. [04:32] Aria: Not that Camping is that much framework to start. [04:32] mikeal: geddy is nice because mde wrote it and he loves javascript like it's a blonde at his high school prom [04:32] ncb000gt: For static content I was digging paperboy [04:32] ncb000gt: hahaha [04:33] mikeal: i think pretty soon I'm going to look at how nginx does file serving and replicate it in node [04:33] mikeal: and then do a good benchmark [04:33] JimBastard: im using nginx and proxy_pass for hook.io [04:33] mikeal: but wouldn't you *love* to just get rid of it some day :) [04:33] JimBastard: hook.io doesn't really have a web server, it has a really small hidden retarded one [04:34] JimBastard: the front and back are coupled [04:34] JimBastard: err [04:34] mikeal: i love removing applications and services [04:34] JimBastard: de-coupled [04:34] Aria: Hehe, me too, mikeal [04:35] mikeal: it doesn't matter what it is [04:35] mikeal: i was so happy when adium added IRC support [04:35] mikeal: and i could get rid of my silly IRC app for mac [04:36] ncb000gt: meh, irssi in my tabbed terminal is better for me than the purple stuff. i wasn't happy with it in pidgin. [04:36] mikeal: i don't like terminal irc anymore [04:37] cedricv has joined the channel [04:37] Aria: Hehe. I like good type far too much to use a terminal for IRC [04:37] mikeal: same thing with editors [04:37] Aria: Though really, I wish I could use good type in a terminal anyway. [04:37] icey: emacs [04:37] ncb000gt: oh no, i smell a flamewar [04:37] icey: i like vim too [04:37] cedricv has joined the channel [04:37] mikeal: at some point i realized i was spending more time dealing with the editor than actually getting stuff done [04:37] ncb000gt: aria: I think it really depends on the WM (assuming linux) [04:37] icey: but emacs is nice because you can configure it how you like it and use it for irc / shell /etc [04:38] mikeal: textmate is a god send [04:38] mikeal: emacs hurts my pinky finger [04:38] ncb000gt: I've heard that textmate is awesome, but I run on linux so it can kma. :) [04:38] icey: i use textmate for python, emacs for js & lisp [04:38] mikeal: i wish there was another comparable text editor [04:39] mikeal: it's one of the few things keeping me on Mac instead of Ubuntu [04:39] ncb000gt: I use emacs because of the configurable power (though vim is arguably just as configurable). [04:39] Aria: I really want a vim that can use fixed-width fonts. [04:39] icey: mikeal: you could run e under wine [04:39] JimBastard: Cider is where its at [04:39] mikeal: that sounds aweful [04:39] JimBastard: new canvas based editor with plugins [04:39] fictorial: ACTION loves vim and uses vimperator for firefox to boot (yay) [04:39] JimBastard: super light weight [04:39] mikeal: my laptop needs to stay cold enough to be on my lap [04:40] icey: i think i heard someone recommend jedit once [04:40] fictorial: mikeal: why do you think apple calls theirs "notebooks"? :) [04:40] ncb000gt: has anyone spent some real time with the stuff mozilla is doing? bespin? [04:40] mikeal: the macbook air is a laptop, i don't care what the marketing people say [04:40] mikeal: ncb000gt: i've spent a lot of time with it [04:41] mikeal: but on the embedding side, not using the full IDE [04:41] fictorial: my MBP runs ridiculously hot. [04:41] creationix: gedit is actually not bad with enough plugins [04:41] mikeal: as long as I run FlashBlock my MBA is pretty cold [04:41] creationix: the only real feature I miss in it is code folding [04:41] icey: ahhh GEDIT was the one, not jedit [04:42] ncb000gt: mikeal: how do you like it? they are working up some emacs keybindings which might be nice to make the switch. we'll see tho [04:42] fictorial: CPU A: 157º [04:42] mikeal: plugins that are written in python will eventually make your laptop hot [04:42] mikeal: ncb000gt: it's not good as an IDE [04:43] ncb000gt: mikeal: that's disappointing. [04:43] ncb000gt: isn't that the point? [04:43] mikeal: because there are too many hoops to jump through in trying to either interface with or replace your filesystem [04:43] mikeal: but it's the best embedded editor ever made [04:43] ncb000gt: interesting [04:43] joshbuddy has joined the channel [04:43] creationix: hmm, I need async templates [04:43] mikeal: so hopefully that bit will get used in more specialized developer tools [04:43] creationix: or at least async helpers in my templates [04:43] mikeal: we're going to get it in to Futon for CouchDB eventually [04:44] ncb000gt: nice. futon was great when I first found out about it. [04:45] ncb000gt: it's nice to be able to just scroll through docs to change values and functions [04:45] mikeal: creationix: at some point you might want to poke at yajl for node [04:45] mikeal: if you're incrementally parsing JSON and sending it to the template [04:46] creationix: what I need is helpers that can do async stuff and replace their contents in the html after the fact [04:46] mikeal: hrm.... [04:46] creationix: basically insert placeholders and put some sort of global flag saying that there is a pending operation [04:46] creationix: when it finished, replace the placeholder [04:47] mikeal: i see [04:48] creationix: then you can have partials that load sub-templates on demand and things like that [04:50] mikeal: i'm in to this idea [04:50] mikeal: as long as it's mustache :) [04:53] Aria: Woot! My HTML5 parser is vaguely functional. [04:53] Aria: http://theinternetco.net/~aredridel/projects/js/nodenetwork/html5/ [04:54] mikeal: this isn't github :( [04:54] ncb000gt: mikeal: you using Mu for your mustaching or Mustache.js? [04:54] Aria: What's not? [04:54] ncb000gt: with Node that is [04:54] mikeal: in node, yes [04:54] ncb000gt: aria: your source [04:55] mikeal: i'm using mustache.js as well tho [04:55] mikeal: in the browser and in couchdb [04:55] Aria: Oh. No, it's not on github, but that /is/ a git repo (../.git there.) [04:55] mikeal: at some point I may just make mustache.js work better/faster with node [04:55] ncb000gt: yea, I just wasn't sure what voodoo you did to get mustache.js to work in node. I've been using Mu is why i was curious. [04:56] ncb000gt: yea. [04:56] joshbuddy has joined the channel [04:56] joshbuddy has joined the channel [04:56] ncb000gt: aria: but...where's the fork button? [04:56] Aria: (and I'm working on tidying the code now to work properly with chunked IO) [04:56] ncb000gt: you just don't wanna be forked is that it?!? [04:56] Aria: Hehe. You open a terminal and git clone it ;-) [04:56] ncb000gt: pfft. [04:56] ncb000gt: that's my only response [04:56] justinlilly has left the channel [04:57] Aria: I find github kinda confusing to keep synced. [04:57] mikeal: ncb000gt: so, there is a branch or a build step or some crap that will make mustache.js a commonjs module [04:57] mikeal: but I actually just added a few lines to the bottom and use it as a module in couchdb [04:58] ncb000gt: mikeal: ahh, maybe I should look at those branches. that said, Mu has worked fine thus far and is basically the same. Will have to test the differences at some point. [04:58] mikeal: i think Mu has better incremental support as well [04:58] ncb000gt: aria: what do you mean? [04:58] mikeal: it's just node specific [04:59] Aria: Oh, I'm just used to fussing around with repos I can poke at both ends of. Github is so ... closed off. [04:59] mikeal: i feel exactly the opposite [04:59] ncb000gt: aria: yea. have you looked at gitorious then? [05:00] mikeal: when i see something that isn't on github it's like "how do i use this" [05:00] ncb000gt: similar interfacing at least [05:01] Aria: I haven't, actually. [05:01] Aria: I should finish converting all my stuff from darcs to git and then push to github etc en masse. [05:01] mikeal: i remember darcs [05:01] ncb000gt: I'm a big fan of Github, but the KDE folks are loving them some Gitorious [05:01] mikeal: the one thing haskell ever did [05:01] ncb000gt: probably because of the AGPL licensing, so when I do KDE work, I tend to use Gitorious. [05:02] Aria: I really wish github wasn't so push-centric. [05:02] Aria: I'd love it if I could fork any given git repo from the webui. [05:02] mikeal: you can [05:03] ncb000gt: yep [05:03] mikeal: every repo has a "fork" button [05:03] mikeal: the only think pushing one instead of forking does is remove you from the project network, which you normally don't want to do [05:03] ncb000gt: add '/fork' to any repo url and bam, you've forked it [05:03] Aria: That only works for github repos. [05:04] Aria: Not any git repo. [05:04] ncb000gt: yes, i see, you mean maintaining a "link" between arbitrary git repos [05:04] creationix: I just have a post-update hook that does a "git push" to github [05:04] Aria: Yeah. [05:04] Aria: So it's a whole pull, add a new remote, push, keep several remotes going on each workstation I use sort of thing. [05:04] Aria: Hehe. I should do that. [05:05] creationix: then I can use my own repo, but it's mirrored on github [05:05] Aria: That'd help. [05:05] mikeal: i have a couple repos that have too many people watching it [05:05] mikeal: and they lot to make comments about code I don't care about enough to fix the style on [05:06] mikeal: so i mostly try to drown them in big batches of commits [05:06] ncb000gt: lol! [05:07] Aria: Hehe. Good plan. [05:08] mikeal: i need to put some of these open source projects on craigslist or something [05:08] mikeal: "maintainer wanted" [05:08] mikeal: "i really don't care about Python anymore" [05:08] creationix: mikeal: if you rename it, everyone get's unwatched ;) [05:09] mikeal: i've already given a few people write access that I'm hoping take it over [05:09] mattly has joined the channel [05:09] mikeal: so i don't want to rename it [05:09] ncb000gt: mikeal: but, python loves you... [05:09] mikeal: python never really cared about me [05:10] mikeal: it's a conceded bitch [05:12] CodeOfficer has joined the channel [05:13] ncb000gt: what are you guys using for testing your node code? [05:13] ncb000gt: unit testing specifically [05:13] mikeal: tests? [05:13] mikeal: :P [05:14] mikeal: mostly throw and make files [05:14] mikeal: i kinda stole this bit from felixge [05:14] mikeal: http://github.com/felixge/node-couchdb/blob/master/Makefile [05:14] nsm has joined the channel [05:15] Aria: A pile of asserts at the moment [05:15] mikeal: i really don't like DSLs for testing, like RSpec [05:15] mikeal: and I haven't met a TDD tool that I like, it seems like Boiler Driven Development more than anything [05:16] ncb000gt: yea, for sure [05:16] ncb000gt: I'm not sold on TDD unless you never write tests. [05:16] mikeal: i was an automation lead for like 4 years building functional testing tools [05:16] mikeal: and i haven't heard a convincing argument for the kind of TDD they advocate in Rails [05:17] mikeal: it's just insane [05:17] ncb000gt: I haven't heard a convincing argument for Rails. >=D [05:17] mikeal: i see the need for test tools, but no tools should be generating boiler than tells you how to write your code [05:17] ncb000gt: agreed. [05:17] mikeal: and if you think you undestand the entire problem you're trying to solve before you sit down to write enough to write all the tests then you'e kidding yourself [05:18] Aria: I have a few arguments against rails. [05:18] Aria: Considering how many times I've broken something undocumented. [05:18] mikeal: throw new Error(msg) has been working great for me [05:19] mikeal: you get a nice stack trace [05:19] Aria: I get the idea behind TDD, and that the test suite should have 100% coverage, include regression tests, and be kept up to date with the code. [05:19] Aria: But test-first ... ick. [05:19] mikeal: the code is simple and readable [05:19] mikeal: you don't have to learn a framework or a DSL or install some new test tool/harness [05:19] mikeal: the way Mozilla does it is that test are written at the end of a release cycle for all the new features [05:20] mikeal: and at some point you can't checkin new code without a test [05:20] mikeal: and within 3 years they built up like 70K unittests [05:20] mikeal: which serve as a massive regression suite [05:20] mikeal: now, there is a whole new set of problems once you have 70K tests [05:20] Aria: Hehe. Yeah. [05:20] Aria: It takes for freakin' ever to run the tests. [05:20] mikeal: but it shows that it's not that hard to get serious test coverage without TDD [05:21] ncb000gt: agreed. [05:21] Aria: Yeah. [05:21] Aria: I think testing should be a part of release management, not just coding. [05:21] mikeal: a checkin to the mozilla-central turns in to 40 hours of machine time in cross-platform builds and tests [05:21] ncb000gt: TDD is only good for certain types of developers. [05:21] mikeal: yeah, Java developers [05:21] mikeal: :P [05:21] ncb000gt: LOL! [05:21] icey: tdd is good if you change your mind a lot when you code [05:22] mikeal: icey: i would think that would be the worst, because then you constantly have to change the test :) [05:22] ncb000gt: or if you aren't disciplined to throw your exceptions or write your tests at the end of your dev. [05:23] mikeal: if you want to say "you can't checkin to a branch people are using without tests along with it" [05:23] mikeal: that's one thing [05:23] icey: mikeal: yeah, no idea; i'm not a testing guy [05:23] mikeal: but dictating that tests are written before any other code is just insane to me [05:23] ncb000gt: I agree with you. I don't do it [05:23] mikeal: and then people have to go even further with the "specification drive development" [05:23] ncb000gt: but I know some people that work best that way. [05:24] mikeal: how about we all go back to drawing UML diagrams and never writing any code [05:24] ncb000gt: I don't get it personally. But, whatever works best for them works for me too. :) [05:24] mikeal: that would be awesome [05:24] ncb000gt: only if it can auto gen my code for me [05:24] mikeal: i get it in Java [05:24] mikeal: because writing some tests and some UML that generates 100k lines of Java for you is a sane way to get all that Java done [05:25] ncb000gt: lol [05:25] ncb000gt: Java isn't _that_ bad. It's verbose and too OO, but if you use a tool to autogen that much code, you're doing it wrong. [05:26] ncb000gt: With any language. [05:26] mikeal: ACTION coughs *coffeescript* [05:27] icey: what do you guys use for js debugging? [05:27] icey: just stack traces? [05:27] mikeal: sys.puts lines in the node source code and constant "make install" calls [05:27] ncb000gt: icey: usually [05:28] Aria: Heh. A bunch of print statements, a stack trace here and there and code that's easy to prod [05:28] icey: that works for me; i just hate doing that and finding out there's some amazing tool i didn't know about before :D [05:28] mikeal: with all the async stuff, traditional debuggers don't help much [05:28] jbrantly has joined the channel [05:28] mikeal: i hope ndb is awesome some day [05:28] mikeal: i'm sure it's good now [05:28] mikeal: but it could be better [05:29] mikeal: but there are a lot of stack traces that will come from node itself without a reference to any of your code [05:29] ncb000gt: is it written from scratch? [05:29] mikeal: so you just have to dig in and put some prints in node code [05:29] mikeal: er node core [05:29] ncb000gt: mikeal: i've been working on a C lib...and that was fun to debug... [05:30] mikeal: http://github.com/smtlaissezfaire/ndb [05:30] Aria: I start writing testcases when I find bugs ;-) [05:30] Aria: "this should work like X ... " [05:30] Aria: "Man, that code isn't very well isolated. .. it'd be easier to test if I just separ... oh! there's the bug!" [05:31] mikeal: lately my bugs have been in node itself, and i can't just start breaking apart http.js :) [05:32] ncb000gt: you could if there were tests. :) [05:32] mikeal: there are some tests, but you don't understand how crazy that code is [05:33] fizx has joined the channel [05:33] ncb000gt: I've looked at it [05:33] ncb000gt: :) [05:33] mikeal: it took me a good 8 hours and a beer to figure out the last issue [05:33] ncb000gt: heh [05:33] mikeal: it was an insane bug tho [05:33] felixge has joined the channel [05:33] felixge has joined the channel [05:33] dandean has joined the channel [05:33] mikeal: felixge! [05:34] felixge: mikeal: sup? [05:34] mikeal: i have a question for you sir [05:34] mikeal: node-couchdb [05:34] mikeal: you have a test for _all_docs_by_seq [05:34] mikeal: and i think we removed that API in the last release [05:34] mikeal: you have to get that info from _changes now [05:34] felixge: mikeal: not much of a question, test must go, right? [05:34] felixge: :) [05:34] mikeal: ok, i updated it for node master [05:35] mikeal: and that was the only test that wasn't passing [05:35] mikeal: i already sent you a pull request [05:35] felixge: voodootikigod_: yt? [05:35] JimBastard has joined the channel [05:35] mikeal: now i have to listen to all you lucky fuckers at jsconf [05:35] felixge: mikeal: cool, thanks! Gotta shower now, my flight for jsconf leaves in a bit [05:35] felixge: mikeal: :) [05:35] mikeal: np [05:35] mikeal: we're using it [05:35] felixge: mikeal: you're not coming? [05:35] mikeal: and we needed it updated :) [05:35] mikeal: didn't get my ticket in time [05:35] mikeal: nearly stole jan's [05:36] felixge: hah [05:36] mikeal: but figured i would probably be fired [05:36] mikeal: :) [05:36] felixge: mikeal: he isn't flying from berlin today as well, is he? [05:36] mikeal: he's actually in the US already [05:36] mikeal: he's on vacaction this whole week [05:36] mikeal: i don't know when he lands in DC tho [05:36] JimBastard: i get on the bus in 7 hours [05:36] mikeal: i know he was in Oakland on Monday but thats all [05:37] ncb000gt: mikeal: I wish I was going [05:37] mikeal: me too [05:37] dandean: I've got a potentially super-rudimentary question for y'all. What's the best way to do `cp -r` while using node? I was looking through all of the `fs` methods, but you seem to need to know the encoding of the file before writing, which just won't work for me. [05:37] mikeal: i have work to anyway :) [05:37] JimBastard: you guys can go in spirit by demanding hook.io wins best presentation at scurvy conf [05:38] ncb000gt: JimBastard: I'm actually in the DC area, I might swing by to crash the party. ;D [05:38] creationix: dandean: with buffers, you don't need the encoding [05:38] mikeal: dandean: you should be able to read and write it all as binary [05:38] creationix: or specify binary of both ends [05:38] mikeal: i *think* [05:38] felixge: JimBastard: looking forward to it! [05:38] JimBastard: ill be at the latham most of the day tommorow [05:38] JimBastard: totally felixge! huzaah javascript party [05:39] felixge: :) [05:39] ncb000gt: cool, I've gotta work, but tomorrow night I might swing out that way. [05:39] felixge: btw. my new benchmarking script is coming along: [05:39] mikeal: dandean: i have a directory walk function somewhere [05:39] mikeal: let me find it [05:39] mikeal: .... [05:39] dandean: mikeal: that would be excellent! [05:40] felixge: https://gist.github.com/25e28a5a58d105c9ef2f [05:40] felixge: who doesn't love ASCII diagrams? [05:40] mikeal: dandean: http://github.com/mikeal/node.couchapp.js/blob/master/lib/couchapp.js#L20 [05:40] dandean: thanks mikeal! [05:40] mikeal: np [05:42] ncb000gt: ndb appears to only be for pearing into JS, yea? [05:46] botanicus has joined the channel [06:02] pdelgallego has joined the channel [06:08] Azeroth-Work has joined the channel [06:11] derferman has joined the channel [06:17] nsm has joined the channel [06:18] JimBastard_ has joined the channel [06:22] teemow has joined the channel [06:27] rictic has joined the channel [06:27] felixge: fuck [06:27] felixge: my flight might be canceled due to a freaking vulcano [06:27] felixge: *sigh( [06:27] felixge: well, more time to work on the presentation I guess :) [06:29] micheil: felixge: flight to jsconf? D: [06:32] felixge: micheil: yeah [06:32] micheil: ohnoes. [06:32] felixge: micheil: I'm unsure if I should head to the airport right now [06:33] micheil: hmm.. where do you have to leave from? [06:33] micheil: I know the two uxebu guys are heading out today or yesterday from germany [06:34] felixge: micheil: berlin (txl) via Amsterdam [06:34] micheil: ACTION works for uxebu. [06:34] micheil: sortsa [06:34] micheil: felixge: hmm.. [06:34] felixge: but the fucking TXL website is messed up [06:35] micheil: just sending them a message, see what the deal is, and how their getting there [06:35] felixge: it shows "out of technical difficulty we cannot display current flight status" [06:35] felixge: micheil: hah, yeah like they're not busy with that :) [06:35] micheil: felixge: can the TXL website blame it's messed up-ness on the icelandic volcano? [06:35] felixge: micheil: I'm trying to get some intell from people already stuck at txl via twitter [06:35] felixge: ;) [06:35] micheil: okay [06:36] felixge: micheil: nope, I think it's just down due to traffic [06:36] micheil: that was in jest of course :P [06:38] micheil: one would've thought that they could put filters over the air intakes on the jet engines.. [06:44] cmlenz has joined the channel [06:44] JimBastard has joined the channel [06:45] mattly: extracted a flow-control library from another project: http://github.com/mattly/together [06:45] JimBastard: mattly have you seen conductor? [06:46] mattly: JimBastard: yeah [06:46] mattly: there was something about it that put me off [06:46] JimBastard: got ya [06:46] JimBastard: what was that? [06:47] mattly: don't remember [06:47] mattly: looking for it now to see [06:47] mattly: :p [06:47] JimBastard: Not built here. [06:48] creationix: step is easier [06:48] creationix: see how I use it in wheat [06:48] JimBastard: ahaha hes still awake [06:48] mattly: heh [06:48] creationix: JimBastard: not for long [06:49] mattly: this is more a parallel thing than it is a sequencer [06:49] mattly: and i wanted something very lightweight and that tied into existing conventions [06:51] nefD has joined the channel [06:59] micheil: as much as I like coffee, it can stay away from my javascript I think. [07:02] creationix: mattly: that's the point of step, it's very minimal, but powerful [07:02] creationix: and works directly with node style callback functions [07:05] brapse has joined the channel [07:14] kjeldahl__ has joined the channel [07:16] N` has joined the channel [07:26] piranha has joined the channel [07:26] teemow has joined the channel [07:32] jbrantly has joined the channel [07:32] kixxauth has joined the channel [07:39] simoncpu: hello [07:39] simoncpu: do you guys know of someone who's looking for node.js projects here in asia? [07:40] simoncpu: i mean someone who's looking for devs for node.js projects [07:41] hellp has joined the channel [07:46] kjeldahl_ has joined the channel [07:46] nsm: is sys.log() synchronous like sys.debug()? it isn't mentioned in the docs [07:55] kenneth_reitz has joined the channel [08:02] cadorn has joined the channel [08:03] FSX2 has joined the channel [08:03] kjeldahl_ has joined the channel [08:05] cmlenz has joined the channel [08:08] FSX has joined the channel [08:09] noonat has joined the channel [08:09] FSX: Does someone know how I parse/get form data? I checked the Node.js docs, but I couldn't find anything. [08:10] mape: multipart? [08:10] mape: http://github.com/isaacs/multipart-js/ [08:11] derbumi has joined the channel [08:13] FSX: mape: Thanks [08:19] Azeroth-Work has joined the channel [08:28] xla has joined the channel [08:33] _ry: oh no.. felix isn't going to make it? [08:34] micheil: hmm? [08:34] micheil: oh, right, jsconf [08:35] micheil: not sure about the others from europe.. the uxebu guys keep saying stuff about trinidad [08:35] nsm has joined the channel [08:36] micheil: coffeescript produces some butt ugly code sometimes.. seriously. [08:36] micheil: and stuff which is utterly redundant [08:39] sztanpet has joined the channel [08:40] tisba has joined the channel [08:40] Azeroth-Working has joined the channel [08:46] TomY has joined the channel [08:51] cloudhead: mattly: merged your changes [08:53] sveisvei has joined the channel [08:54] maritz has joined the channel [08:58] psynaptic has joined the channel [08:58] psynaptic has left the channel [08:59] tbassetto has joined the channel [09:00] javajunky has joined the channel [09:03] tisba has joined the channel [09:03] mape: iceland messed up flights to jsconf? [09:04] herbySk has joined the channel [09:04] sveisvei: Lol, funny how its Icelands fault :). "We asked for cash, not ash" [09:18] tisba_ has joined the channel [09:25] piranha has joined the channel [09:31] felixge has joined the channel [09:31] felixge has joined the channel [09:37] jed_ has joined the channel [09:38] mitkok has joined the channel [09:39] jed_: felixge: is there really no way to dc? get there, last minute flight... [09:39] mape: Seems like all airflight is messed up for the coming days [09:39] felixge: jed_: no, europe is pretty much grounded for the next 1-2 days [09:39] felixge: jed_: and the all machine after that are booked to no avail [09:40] jed_: stupid volcano. [09:40] felixge: jed_: and even if you get a seat on them, there is no guarantee this ash thing will be over by then [09:40] felixge: jed_: it's ok. Sucks I won't be on that ship, but I hope that chris can give my slot to you [09:40] jed_: that really sucks. i was looking forward to your preso the most. [09:40] dobe has joined the channel [09:41] felixge: jed_: I guess I could do it remote through skype, but I don't really want to [09:41] jed_: well, if you have slides maybe someone could present them for you? [09:41] felixge: jed_: nah, I'd much rather see you talk about fab if possible :) [09:41] felixge: jed_: I think fab will make a big impact [09:41] felixge: *think* = I'm pretty sure [09:42] felixge: jed_: are you already in d.c.? [09:43] jed_: i'm flattered, but man... maybe we can think of something. [09:43] jed_: i'm in philly now, about to leave for DC in 2.5 hours. [09:44] jed_: (and i'm still not done with my slides, blarg...) [09:45] simoncpu has left the channel [09:45] micheil: felixge: what about other countries? [09:45] mape: most are blocked [09:45] mape: sweden, denmark, finland, UK, north france, most of germany [09:45] mape: the netherlands, poland etc [09:46] micheil: hmm.. I'm meaning taking the flight eastward around the world, rather then west-ward [09:46] felixge: ACTION headed out for lunch [09:46] felixge: brb [09:46] mape: Flying east? [09:46] micheil: train to austria, then catch from austria to moscow, then moscow to DC [09:46] jed_: that would be a really long flight from germany. [09:46] mape: hehe [09:46] micheil: it would, but you'd get there [09:47] jed_: felixge's slot isn't until sunday @ 1:30pm. [09:48] jed_: so he could still take 48 hours and get here in time. tho i guess those flights are packed too. [09:48] mape: yup [09:49] demolithion has joined the channel [09:49] jed_: felixge: well, when you get back from lunch let's brainstorm. [09:50] _ry: felixge: :/ [09:50] micheil: anyone know about warsaw? [09:51] micheil: there looks to be a berlin-warsaw train [09:51] _ry: pain [09:52] _ry: ACTION would not take a train to warsaw to fly to dc [09:52] mape: Can't someone just pretend to be felixge? [09:52] mape: And pipe the skype audio to the sound system [09:52] mape: And mime [09:53] _ry: r makes some things so easy [09:53] _ry: other things - very hard [09:57] micheil: okay, you can currently get plans from Warsaw to Moscow [09:58] micheil: and Warsaw to Chicago [09:58] micheil: via http://www.lotnisko-chopina.pl/?lang=en [09:58] micheil: the only problem then is to get to warsaw [10:01] herbySk: prague is blocked? it may be nearer than warsaw... [10:02] micheil: yeah.. checking [10:03] cainus_ has joined the channel [10:04] towski has joined the channel [10:05] micheil: prague is half the distance of warsaw [10:07] micheil: yep: prague to washington: http://www.flightstats.com/go/FlightStatus/flightStatusByRoute.do [10:07] micheil: (tab: By Route, PRG -> DCA) [10:08] micheil: departs 12pm Friday 16th [10:08] herbySk: was module rafactoring discussion deleted on nodejs googlegroup? I wanted to post another edge case present in the code (plus some commentary) [10:08] micheil: which is now. [10:08] herbySk: micheil: and later it will probably not depart, they told the ash is going to cover central europe as well... [10:09] herbySk: there's a train malmo-berlin-prague-bratislava-budapest and maybe down to romania going once per day... myabe budapest will still have some flights [10:34] micheil: felixge: I can read much german,but this may help: http://labs.bahn.de/bin/vtv/query.exe/dn?ld=3479&seqnr=2&ident=ah.071780.1271413508&rt=1&OK#focus [10:40] keeto has joined the channel [10:42] jed_ has joined the channel [10:48] botanicus has joined the channel [11:00] ssteinerX has joined the channel [11:11] felixge: micheil: thanks for looking into this :) [11:11] felixge: micheil: but this doesn't look like much fun for what would likely sum up to a $1k trip :) [11:18] felixge: ACTION is gonna use the weekend to do some awesome hacking while everybody will be slacking at the conf! [11:20] jed_: felixge: ha ha! that'll show us. [11:26] hellp has joined the channel [11:35] jmar777 has joined the channel [11:42] rolfb has joined the channel [11:51] derbumi has joined the channel [12:02] derbumi has joined the channel [12:19] felixge_ has joined the channel [12:19] felixge_ has joined the channel [12:22] gwoo has joined the channel [12:24] javajunky: creationix: I've sent you a pull request with my 'wheat' updated blog post ... [12:28] ashb: micheil: what are you using markdown for btw? [12:40] herbySk: quick help pls - how to access commandline args of hte app (foo bar in [12:40] herbySk: node app.js foo bar) [12:40] herbySk: ? [12:43] herbySk: fine, i've found it, thanx [12:49] siculars has joined the channel [12:55] kreitz has joined the channel [13:03] jherdman has joined the channel [13:03] derbumi has joined the channel [13:07] gf3 has joined the channel [13:10] mitkok has joined the channel [13:11] kriszyp has joined the channel [13:14] micheil: ashb: ? [13:15] quirkey has joined the channel [13:15] ashb: oh sorry - not you [13:15] ashb: miss-rememberd the github username [13:16] ashb: s/ss/s/ [13:17] micheil: well, I am using markdown. [13:17] micheil: :P [13:18] JAAulde has joined the channel [13:24] steadicat has joined the channel [13:26] philippbi has joined the channel [13:28] elbartus has joined the channel [13:28] orlandov_ has joined the channel [13:28] N`_ has joined the channel [13:31] quirkey_ has joined the channel [13:31] mjijackson has joined the channel [13:32] creationix_ has joined the channel [13:33] cadorn has joined the channel [13:34] hsuh has joined the channel [13:38] micheil has joined the channel [13:39] avidal has joined the channel [13:41] ashb: micheil: oh, in which project? [13:42] micheil: heaps :P [13:44] ashb: JS or not? [13:45] joshbuddy has joined the channel [13:54] micheil: not js [13:55] dekroning has joined the channel [13:55] micheil: bbl. [13:59] TheEnd2012 has joined the channel [14:07] TheEnd2012_ has joined the channel [14:09] JAAulde has joined the channel [14:10] ncb000gt has joined the channel [14:13] alex-desktop has joined the channel [14:14] creationix has joined the channel [14:14] felixge has joined the channel [14:14] felixge has joined the channel [14:15] felixge: does anybody else have problems building node HEAD on osx? [14:15] felixge: the new ssl stuff igves me trouble [14:15] creationix: felixge: let me try real quick [14:18] creationix: hmm, node -v still says v0.1.91, didn't that used to have the hash in it [14:18] felixge: creationix: could do do: 'make clean; ./configure --debug; sudo make install' ? [14:18] creationix: felixge: no problems so far [14:19] creationix: I'll try again, I did "./configure --prefix=/myprefix && make clean all && make install" with no problems [14:19] felixge: hm [14:19] nefD: allo, folks [14:22] BinaryPie has joined the channel [14:23] felixge: creationix: I get this unfortunately: http://gist.github.com/368458 [14:23] felixge: :( [14:23] felixge: _ry: you up yet? [14:24] creationix: felixge: ahh, I must be missing the library it's looking for [14:24] creationix: what do we need? openssl headers? [14:24] felixge: creationix: so it is not linked for you? [14:24] felixge: creationix: I think so [14:25] creationix: still recompiling v8... [14:25] creationix: then I'll check my configure output to see if it just disabled the ssl [14:25] creationix: I've got a pretty clean osx install currently [14:26] creationix: felixge: are you using macports? what's putting stuff in /opt/local? [14:26] felixge: creationix: I used to use macports, yeah [14:26] creationix: ok, after a full rebuild mine still works, but I get the proper "node -v" output "v0.1.91-15-g39464b4" [14:27] creationix: Checking for openssl : not found [14:27] creationix: Checking for gnutls >= 2.5.0 : fail [14:27] felixge: hm [14:27] felixge: creationix: I guess I'll just report it to the mailing list [14:27] creationix: hmm, homebrew doesn't have openssl [14:29] creationix: felixge: looks like your macports libssl was 32 bit instead of 64bit [14:29] felixge: creationix: nice [14:29] creationix: node compiles as 64bit on snow-leopard [14:29] mjr_: We'll need that 64-bit address space to buffer up all of those http connections with no buffer control. [14:29] felixge: creationix: any idea how I clean that up? [14:30] creationix: do you need ssl or just latest node? [14:30] felixge: I need latest node [14:30] felixge: SSL would be nice to have [14:30] creationix: if you're brave then rename /opt ro /optold or something and rerun ./configure in node [14:30] creationix: then put opt back when done [14:31] creationix: not sure if that will help, I'm still fuzzy on c search paths [14:31] justinlilly has joined the channel [14:36] creationix: _ry: I figured out the whole version string thing, I wasn't imagining it [14:36] creationix: process.version includes the "v" if you're on a non-release version, but leaves it out for tagged released [14:36] creationix: /released/releases/ [14:37] felixge: creationix: node is too smart ;) [14:37] creationix: I've learned a ton writing wheat. It's my first non-trivial application in node [14:37] justinlilly has joined the channel [14:38] creationix: the complexity of async is manageable if you're careful, but debugging can be fun sometimes [14:39] nefD: hrm.. saw this bit about 'Pusher' on WebAppers.. signed up for a closed beta key, checked out the 'libraries' list, and lo and behold, a Node.js module is first in the list :P [14:40] creationix: nefD: awesome [14:40] nefD: made by miksago [14:40] mitkok has joined the channel [14:41] nefD: looks like the Pusher devs main offering is a ruby (cringe) lib [14:41] felixge: creationix: I think async will make us all better programmers [14:41] felixge: creationix: those really long functions which do tons of stuff, they are almost impossible to unit test with async [14:41] felixge: creationix: and without unit testing, it is almost impossible to write good async code [14:41] nefD: wheat? [14:42] felixge: I learned this the *very* hard way with transloadit by now ;) [14:42] creationix: yeah, and I've had to refactor and almost rewrite my app a few times while building it [14:42] creationix: you're forced to have some sort of structure [14:42] creationix: nefD: the new blog engine to howtonode I'm releasing today [14:42] creationix: creationix/wheat on github [14:43] creationix: see beta.howtonode.org for a preview [14:43] felixge: creationix: I'm really interested to study the source [14:43] creationix: felixge: me too ;) [14:43] felixge: ok, got node to build without openssl [14:44] nefD: oh cool! [14:44] creationix: I've been in such a rush to get it done by today that it could use some more refactoring [14:44] tekky has joined the channel [14:45] creationix: anyone know how to punch a hole in an apple router [14:46] nefD: brass knuckles? [14:46] creationix: I set up the port mapping in airport utility, bit it's not going through [14:47] sudoer has joined the channel [14:47] creationix: http://76.184.251.54:8080/ [14:48] carsonm has joined the channel [14:48] creationix: ahh, I have to reboot the router for the changes to go live [14:49] softdrink has joined the channel [14:49] creationix_ has joined the channel [14:51] Yuffster has joined the channel [14:51] felixge: playing with sockets the first time right now :) [14:51] creationix_: felixge: cool, which library are you using? [14:53] felixge: creationix: node? [14:53] creationix: ok, just "net" then [14:53] felixge: right [14:54] felixge: I'm basically looking if something like web workers could already be pulled of [14:54] felixge: and I think they could [14:54] felixge: now I'm wondering if I should go for it [14:54] felixge: :) [14:54] creationix: felixge: did you see malte's worker thing using unix sockets [14:54] creationix: http://github.com/cramforce/node-worker/tree/unixsockets [14:55] charlesjolley has joined the channel [14:55] nefD: hrm.. so- how viable are the web socket 'flash fallback' projects, in general, for supporting browsers without native web socket support? [14:56] felixge: creationix: I had not [14:56] creationix: nefD: I think they're viable, but I haven't tested much [14:57] felixge: nefD: not sure how good the projects are, but the idea is very viable [14:58] nefD: as much as I don't like the idea of relying on a third party plugin for providing feature support, I suspect it'll be the only real way to achieve cross browser functionality of web socket apps for at least a little while [14:58] creationix: btw, haxe has a very good open-source flash compiler for writing such a shim [14:59] creationix: writes better bytecode that adobe's own stuff (not surprizing) [15:00] nefD: actually, i used to be pretty big into haxe when i was learning as3 [15:00] nefD: very impressive project [15:01] nefD: witnessed the speed improvements vs. the adobe compiler first hand by building an A* pathfinding algorithm and running it through some pretty intensive test demos :P [15:01] felixge: nefD: is haxe easy to learn from JS? [15:01] creationix: yeah, it's basically a mix of as3 and ocaml [15:02] creationix: but with as3 syntax [15:02] felixge: hm [15:02] creationix: Nicolas Cannasse actually reminds me a lot of _ry [15:02] creationix: (of course I haven't met either in person, so I may be way off) [15:02] felixge: cool, I guess I'll try it for some flash stuff I s/want/have/ to build [15:03] creationix: if you ever need flash for something, it's the way to go [15:03] felixge: creationix: I would like to do a file uploader with it [15:03] felixge: creationix: that can resume uploads [15:03] felixge: creationix: should be doable, right? [15:03] nefD: as3 is based off of emca [15:04] nefD: so going from JS to AS is a pretty easy transition [15:04] creationix: felixge: I wrote an uploader a while back when adobe broke all existing flash uploaders with their new security model [15:04] creationix: let me see if I can find the code [15:04] felixge: creationix: that'd be really nice :) [15:05] creationix: it even had firebug integration so you could reroute flash trace statements to console.logs in the browser [15:05] felixge: creationix: how would I go about unit testing with this? [15:05] nefD: I saw an article on ajaxian last night about how GMail leverages html5 to handle drag-n-drop attachments (including thumbnails for images! :D) [15:05] felixge: oh I guess they have articles on that [15:05] felixge: nefD: need to check that out as well [15:05] felixge: nefD: I think I want to support as much HTML5 stuff with flash fallbacks as possible [15:06] felixge: nefD: like multi file upload [15:06] felixge: (html5 multi file upload is sweet btw) [15:06] nefD: felixge: Indeed! I'm thinking along the same lines [15:06] creationix: ohh, html5 adds multi-upload, that's great news [15:06] creationix: so flash is basically only good for making html5 shims :P [15:07] creationix: nice, my old job is looking up my haxe code for me [15:07] nefD: hah! [15:07] creationix: http://pastie.org/923278 [15:08] felixge: creationix: http://transloadit.com/docs/multiple-file-upload shows how multi file upload works in html5 [15:08] nefD: when I first started with haxe, it was mainly because it was my only option for flash development on linux, but after getting into it it became my first choice for flash development on windows, as well.. Using the code editor from within Adobe Flash is pretty awful.. [15:09] creationix: nefD: agreed [15:09] felixge: nefD: their animation tools however rock [15:09] creationix: felixge: that's it!? Too easy [15:09] nefD: Yep [15:09] felixge: I did some awesome cartoons with flash a ew years ago [15:09] felixge: creationix: yeah, basically it remains the same multipart request. But you get multiple parts with the same name [15:10] steadicat has joined the channel [15:10] nefD: Which is why I think flash isn't going anywhere yet.. You can do some amazing things with Canvas, but the speed, flexibility and functionality are still a far cry from flash's offerings [15:10] felixge: creationix: transloadit numbers them, but unless you do your own multipart parsing you might be out of luck with non-js plattform ;) [15:10] felixge: * plattforms [15:10] creationix: felixge: let me know if you have questions about the pastie [15:10] creationix: transloadit is cool btw [15:11] creationix_ has joined the channel [15:11] felixge: creationix: thanks :) [15:11] felixge: creationix: too bad we can't launch version 1 [15:11] creationix: not quite ready? [15:12] felixge: creationix: node's old networking code is buggy [15:12] felixge: node will just randomly choke on recv() on sockets and die [15:12] felixge: which sucks for large file uploads :) [15:12] creationix: that's not good [15:12] felixge: creationix: nope [15:12] creationix: does the net2 version seem better? [15:12] felixge: creationix: have not tested it yet. But at least ryan will support it :) [15:12] maritz has joined the channel [15:12] dgathright has joined the channel [15:12] felixge: creationix: it's unlikely to have the same bug, but probably new ones :) [15:13] creationix: true [15:13] creationix: just make sure you use buffers when you upgrade [15:13] creationix: otherwise it will be super slow for large files [15:14] felixge: creationix: why? [15:15] felixge: creationix: Most people can't upload more than 100kb/sec :) [15:15] creationix: good point [15:15] dgathright_ has joined the channel [15:15] xla has joined the channel [15:15] felixge: creationix: I'm probably going to use buffers, yes. But I'm not worried much about speed :) [15:16] creationix: I guess it only really matters for benchmarks then [15:16] felixge: creationix: that, and passing feels internally between servers [15:16] creationix: but I saw a noticeable difference on downloading files [15:16] creationix: most people have good downlinks [15:16] tjholowaychuk has joined the channel [15:16] felixge: creationix: something we may do in version 2 to do jobs concurrently [15:16] felixge: creationix: nice [15:17] creationix: the first version of beta.howtonode.org had a large 500k jpg background [15:17] felixge: creationix: does 'drain' work proberly yet? [15:17] creationix: no clue, I haven't tried [15:17] felixge: creationix: so you can really stream files? [15:17] creationix: I think it works [15:17] felixge: brb [15:17] tjholowaychuk: morning [15:17] creationix: tjholowaychuk: morning [15:17] creationix: btw awesome post on nvm [15:17] ncb000gt: felixge: i was trying to write a streaming music server a while ago and ran into issues where something was hanging...i didn't have time to trace the issues but i suspect myself. [15:18] tjholowaychuk: thanks! [15:18] tjholowaychuk: its nice having a new blog, trying to keep the quality up [15:20] creationix: tjholowaychuk: what I would like to see if the external api you proposed, but implemented as a bash function that messes with PATH like I had [15:20] creationix: /if/is/ [15:21] tjholowaychuk: creationix: ya that might be the way to go. both have benefits i think. For your multiple sites could you not just provide a full path to each node bin regardless of how nvm works? [15:22] creationix: nope, [15:22] creationix: node-repl for example used /bin/env node [15:23] tjholowaychuk: right right [15:23] creationix: besides I don't want to have to hard-code my paths, I'd rather just have seperate environments [15:23] aryounce has joined the channel [15:23] creationix: (wow, I think I'm up to a typo per line, this lack of sleep is really catching up to me) [15:24] tjholowaychuk: haha no worries im an insomniac too [15:24] tjholowaychuk: i love how writing a blog post on how i made a decent amount of money with an eBook just sold like 30 more haha (as planned) [15:25] tjholowaychuk: but i will take a look at changing it to a function [15:26] mitkok has joined the channel [15:26] creationix: ok, back to releasing howtonode before jsconf starts [15:29] dgathright has joined the channel [15:32] javajunky1 has joined the channel [15:32] javajunky1: creationix: Hey dude, any idea when stuff we're pushing to howtonode.org is gonna make it into the wild ? (I imagine you're flat out at the mo) [15:33] creationix: javajunky1: later today [15:33] javajunky1: sweet [15:33] creationix: I want it out before jsconf really gets going [15:33] ncb000gt: don't worry, by this afternoon they'll all be so drunk they wont be able to see the monitor [15:34] dgathright_ has joined the channel [15:34] creationix: what is going on today, just scurvy and parties? [15:34] ncb000gt: yep [15:34] ncb000gt: afaik [15:34] ncb000gt: there are also some training sessions iirc [15:35] ncb000gt: for instance, this AM was the PhoneGap training, all attendees got Palm Pre's [15:35] creationix: really, that's awesome [15:35] ncb000gt: I believe there are some other training sessions today to [15:35] ncb000gt: too* [15:35] ncb000gt: I went last year and it was quite amazing [15:36] creationix: I my last client had only paid me I would be there now [15:38] ncb000gt: D: [15:38] mjijackson: ncb000gt: Wow. They're giving away their phones now? Sounds like desperation to me. [15:38] ncb000gt: That's unfortunate. [15:39] mjijackson: But hey, I'd take it. ;) [15:39] ncb000gt: mjijackson: hah. it's all about marketing. you could say the same thing about google wrt/android and the G1/NexusOnes [15:40] mjijackson: ncb000gt: yup. The company I did some consulting for last month actually got two Nexus One's in the mail a few days after they broke into the top 25 in the app store. [15:40] mjijackson: Google was trying to woo them into porting their app to Android. [15:40] KungFuHamster: if they have a required data plan that costs extra, those phones are printing money [15:41] rictic has joined the channel [15:41] ncb000gt: :) [15:41] felixge: fd [15:41] felixge: re [15:42] creationix: woot, punched a hole in my router http://76.184.251.54:8080/ [15:42] creationix: now I can validate my rss without having to push every change to my production server [15:42] felixge: creationix: are you going to the conf? [15:42] creationix: not hardly, I haven't gotten paid since Janurary [15:43] creationix: I tried to get a speaker position, but was rejected [15:43] creationix: felixge: sorry about the volcano :( [15:44] ncb000gt: to be fair, competing with crockford is hard. [15:44] CrockBot: Crockford's prototype property is recursive, for he is the prototype of all things. thisisroot [15:44] felixge: creationix: you're still working for that company? [15:44] creationix: nope [15:44] felixge: k, good :) [15:44] creationix: I quit to work on node full time for a month [15:44] creationix: then I'll find another job [15:45] creationix: (Is it bad to have over a month of open source backlog) [15:45] MattJ: I know how you feel :) [15:45] felixge: creationix: why is working on OS for longer than a month bad? [15:45] creationix: felixge: you going to swdc-central? [15:46] creationix: it's just bad that I'm that far behind on my projects [15:46] dgathright_ has joined the channel [15:46] felixge: creationix: not going, looks like you got a speaker slot? :) [15:46] tjholowaychuk: no way man, im the same right now, before i work for Ext its full open source [15:46] creationix: felixge: yep, they made a second node slot just so I could go [15:46] felixge: tjholowaychuk: the Ext framework? [15:47] tjholowaychuk: yup [15:47] felixge: creationix: I need a way to find out about conferences with potential node slots in advance :) [15:47] felixge: creationix: how did you find out? [15:47] davidsklar has joined the channel [15:47] creationix: felixge: I follow cramforce on twitter [15:47] creationix: otherwise I would have never heard about it [15:47] felixge: creationix: I do too, I guess I'm following too many people so :) [15:48] nefD: i <3 crockford bot [15:48] CrockBot: Douglas Crockford does not use the DOM API. The DOM reshapes itself to his will in fear. bikesandcode [15:48] creationix: he just mentioned that he had a speaking slot, I emailed them asking if they had room for me too [15:48] davidsklar has left the channel [15:48] felixge: creationix: :) [15:48] felixge: creationix: nicely done [15:49] creationix: I think it's the howtonode site that's making it easier for me to get slots [15:49] creationix: I submitted to jsconf before I started howtonode and the best I could offer was my postgres library [15:49] ncb000gt: creationix: probably. proof of domain experience is a good thing. :) [15:50] creationix: and writing about open-source seems to count more than writing open source (when applying for speaking positions at least) [15:50] javajunky1: irony. [15:50] ncb000gt: hah [15:50] creationix: of course doing both is the best ;) [15:51] felixge: ok, back to sockets for me :) [15:51] creationix: have fun [15:51] micheil has joined the channel [15:51] JimBastard_ has joined the channel [15:52] creationix: tjholowaychuk: every time I hit a bug in my haml library I wonder why I'm too proud to use yours [15:52] ncb000gt: aye, food here. bbl. [15:52] JimBastard_: on the bus to jsconf! huzzah [15:52] tjholowaychuk: creationix: haha :p my main bug is bad error reporting [15:52] creationix: I just render a pre tag with the exception in it [15:53] creationix: nothing fancy [15:53] tjholowaychuk: I cant even remember what i did [15:53] tjholowaychuk: been a while [15:53] JimBastard_: so creationix you released a package manager? [15:53] creationix: no, a node version manager [15:53] creationix: much easier [15:54] creationix: tjholowaychuk wants to integrate it with kiwi though [15:54] tjholowaychuk: my original plan was to just have node installable via kiwi, and then you could just do `kiwi switch my_custom_env` and the node bin would change as well [15:54] JimBastard_: i got ya [15:55] JimBastard_: sup tjholowaychuk [15:55] tjholowaychuk: nm! [15:55] tjholowaychuk: i should get some work done haha. its been an hour and all i have done is drink coffee and chat [15:55] gf3: GET TO WORK [15:56] tjholowaychuk: i dont have a job hahah :p [15:56] gf3: well then [15:56] tjholowaychuk: i still have 10 days to fuck around with open source whoop [15:57] gf3: and then what? [15:57] javajunky1: tj: tell me ext haven't stopped you from working on express ? [15:57] JimBastard_: ahaha nice tj [15:57] JimBastard_: i just switched jobs so i had about a week or two to jam out on opensource [15:58] tjholowaychuk: haha i love how we all just quit and do free shit [15:58] tjholowaychuk: i still think it should be $1 per download (or clone) lol then we can all work on open source :D [15:59] JimBastard_: that would be epic fail [15:59] tjholowaychuk: javajunky1: we shall see! I will still have time, but I might need it for some of their stuff [15:59] tjholowaychuk: haha [15:59] tjholowaychuk: probably [15:59] JimBastard_: i dont like paying for anything [15:59] javajunky1: isn't that what used to be called 'shareware' ;) [16:00] javajunky1: tj: this will be the 2nd time in the last 2 years where ext has shafted me, if they go and GPL express *sob* [16:00] creationix: tjholowaychuk: I'mm ben obama would pay for it ;) [16:00] tjholowaychuk: nah i own it [16:00] tjholowaychuk: haha [16:00] creationix: *I'll bet [16:01] JimBastard_: tjholowaychuk: arent you from canada anyway? [16:01] tjholowaychuk: yup haha, im working remote though [16:01] tjholowaychuk: apparently ferrets are illegal in Cali, and I have 4 lol [16:01] tjholowaychuk: but thats not why im not moving [16:01] creationix: does my rss feed work for anyone? http://76.184.251.54:8080/feed.xml [16:01] javajunky1: creationix: yes [16:01] alex-desktop has joined the channel [16:01] creationix: javajunky1: what browser? [16:02] javajunky1: ahh by work you mean does it see as rss ? [16:02] javajunky1: in which case no [16:02] javajunky1: ;) [16:02] javajunky1: doh [16:02] javajunky1: I get the response back, but I assume the headers are fooked. [16:02] tjholowaychuk: its a little slow but works for me in safari [16:02] creationix: yeah, it's not caching since I'm in dev mode [16:02] tjholowaychuk: ah :) [16:02] JimBastard_: canada ehhh whats that all aboot [16:02] creationix: it gets about 2000 responses/sec in production more [16:03] JimBastard_: http://news.ycombinator.com/item?id=1270942 [16:03] creationix: I'm using haml to generate the xml and firefox and chrome are both telling me it's crap [16:03] tjholowaychuk: try mine haha [16:03] tjholowaychuk: jk [16:03] creationix: JimBastard_: I upped it [16:03] tjholowaychuk: ive actually only used haml for html [16:04] JimBastard_: thanks! [16:04] creationix: somehow mine is compiling "%link http://howtonode.org" into "" all over [16:04] JimBastard_: i cant wait to tell John Resig i really liked him in Hot Tub Time Machine [16:04] creationix: but it works most the time [16:04] tjholowaychuk: hm [16:05] tjholowaychuk: JimBastard_: hah! awesome [16:05] tjholowaychuk: k fuck haha, im going to go get these lame globals out of express brb [16:05] javajunky1: tjholowaychuk. a) thats great and b) *sob* thats going to break me so bad ;) [16:06] tjholowaychuk: ohhh i know it will [16:06] javajunky1: my auth stuff kinda depends on it a bit , meh I knew it was coming. [16:06] creationix: don't obsolete my new articles before I get a chance to publish them, that's just wrong [16:07] tjholowaychuk: commonjs kinda licks my nuts in some regards, but it needs to change. nothing quite like "new require('class').Class" [16:07] tjholowaychuk: new articles? [16:07] javajunky1: tj: yeah I just republished my mongo one, for one.. but its all against kiwi package versions so it'll be fine :) [16:07] creationix: well, the express one isn't mine [16:07] javajunky1: its mine ;) [16:08] creationix: http://beta.howtonode.org/express-mongodb [16:08] tjholowaychuk: just be happy i dont break apis like ryan :D haha ... jk [16:08] creationix: that's why I now tag all articles with a node version [16:08] tjholowaychuk: ah cool! remind me later I should link that on expressjs.com [16:08] javajunky1: tj you already have. [16:08] tjholowaychuk: good call, very good call people would be so confused [16:08] micheil: what's another name for a client? [16:08] micheil: eg, a listener, a subscriber, something like that [16:08] creationix: micheil: consumer [16:09] tjholowaychuk: javajunky1: in some cases, but wayyyyy less than node [16:09] javajunky1: tj: I mean you already have linked to that article, my bad ;) [16:09] micheil: hmm.. any other names? [16:09] tjholowaychuk: oh [16:09] tjholowaychuk: lol [16:09] javajunky1: javajunky == javajunky1 == @ciaran_j == ciaranj ;) [16:09] JimBastard_: my second slide is the picture of crockford from www.crockfordfacts.com [16:09] CrockBot: Douglas Crockford ran JSLint on JSLint and found the Higgs Boson particle. zachleat [16:09] JimBastard_: ohh hi CrockBot [16:10] CrockBot: 'this' is what Douglas Crockford wants it to be. anddoutoi [16:10] micheil: javajunky1: soooo.. now I know who you are :P [16:10] tjholowaychuk: javajunky1: oh shit haha didnt know it was you haha [16:10] dandean has joined the channel [16:10] tjholowaychuk: fuck stupid crock bot [16:10] tjholowaychuk: lol [16:10] javajunky1: yeah javajunky on irc, predates twitter by some while :) [16:11] micheil: fair fair, you can group accounts / nicks [16:11] javajunky1: micheil: yeah if i wasn't shit ;) [16:11] micheil: micheil / miksago / ? :P [16:11] TimCaswell: multiple personalities? [16:12] tjholowaychuk: "Plugin = require('express/plugin').Plugin" oh how elegant commonjs is [16:12] micheil: TimCaswell: very. [16:12] creationix: tjholowaychuk: I don't like that repitition [16:12] creationix: I just use module.exports = foo [16:13] micheil: require("express/plugin"); is better [16:13] creationix: not sure if that's commonjs or not though [16:13] tjholowaychuk: for sure, but if you have other exports you cant do that [16:13] micheil: then do: module.scope [16:13] micheil: or module.context [16:13] tjholowaychuk: plugin also has "use" [16:13] micheil: so rather then require loading things into Global, it loads it into the current modules context [16:14] tjholowaychuk: whats this? ive never touched the module var haha [16:14] javajunky1: creationix: arghhh my gravatar is huge… Id' best find a better picture !! (beta.howtonode) [16:14] creationix: 200x200! [16:15] creationix: if you update it before I launch people shouldn't have it in their cache [16:15] creationix: 200x200 isn't a common size [16:15] javajunky1: ;) when's launch [16:15] creationix: soon If I quit chatting and fix my rss feed ;) [16:15] javajunky1: ;) touche´ [16:17] javajunky1: um what is the 'normal' size .. I've no idea! [16:17] creationix: javajunky1: 512 is the biggest gravitar will use [16:17] creationix: anything higher resolution that that will be fine [16:17] JimBastard_: crockford pic, check. bender from futurama pic, check. my little pony picture, check. [16:17] CrockBot: I typed alert('The Master!'), and Douglas Crockford said "Wassup?" DanielEricLee [16:17] creationix: most sites use around 20-40 pixels [16:17] JimBastard_: i think im almost done [16:18] javajunky1: so 30x30 it is, thanks :) [16:18] creationix: javajunky1: just make sure you have your original be atleast 200x200 for my site [16:18] javajunky1: no wait, meh now I'm confused, forget it , I'll figure it out and stop distracting you ;) [16:19] creationix: gravitar rescales the image for you [16:19] creationix: you specify the size in the url [16:19] javajunky1: ah, you request it 200x200 [16:19] creationix: yep [16:22] creationix: tjholowaychuk: ahh, I figured it out [16:22] tjholowaychuk: what was it? [16:22] creationix: it's forcing my tag to be self closing because that's required in html [16:22] creationix: but rss isn't html [16:22] tjholowaychuk: ahhhh lol [16:22] tjholowaychuk: shit [16:22] tjholowaychuk: i bet mine does the same thing [16:23] tjholowaychuk: i wanted to sneak in some stuff for "!!! 5" or whatever, so #foo could be a
or whatever is used now [16:23] creationix: I need an xml mode where it only self closes empty tags and nothing else [16:23] creationix: that's cool [16:23] creationix: html5 wil be fun [16:24] tjholowaychuk: would be cool to have some transparency in the templates so you can just switch over quick, im not even sure what all the changes are though DOM wise [16:24] tjholowaychuk: been a while since I looked at that [16:27] tjholowaychuk: hmm, im thinking today might be a holiday in canada [16:27] creationix: what I really want to add is async helpers [16:27] tjholowaychuk: this always happens to me, i show up at the office and no one is here [16:27] tjholowaychuk: we have a work-around for that in express [16:27] tjholowaychuk: super simple / lame but it works [16:27] tjholowaychuk: i will need async for sass though [16:27] tjholowaychuk: when I suppose @import [16:27] creationix: yep, anything that references an external file [16:28] tjholowaychuk: support** [16:28] creationix: I want it for built-in partials [16:28] botanicus: Hey guys [16:28] tjholowaychuk: I like to have a dumb template engine, leave that stuff to the framework [16:28] botanicus: I'm wondering how are you dealing with inheritance? [16:29] tjholowaychuk: botanicus: might want to check out http://github.com/visionmedia/class.js [16:29] tjholowaychuk: super tiny [16:29] botanicus: I know there is sys.inherits and https://gist.github.com/66bc05079811ecb77a39, but I'm more interesting in: what are you using it in your real-world projects [16:29] tjholowaychuk: but supports multiple inheritance (mixins) etc [16:30] towski has joined the channel [16:30] botanicus: tjholowaychuk: yeah JS is prototypal language and I'm glad for it. I can use Ruby for the class magic :) [16:30] tjholowaychuk: its not really magic [16:30] tjholowaychuk: its just ... assigning some properties lol [16:31] botanicus: Not, but it's not very JS-like, is it? [16:31] botanicus: I know how it works, I've seen it [16:31] tjholowaychuk: if its not a huge hack I call it JS-like. I just like to keep things in one area, and not have a constructor here, proto here, blah blah [16:31] botanicus: tjholowaychuk: I'm trying to find the best solution which is, let's say, compatible with the classical JS-style [16:31] botanicus: :) [16:31] tjholowaychuk: sys.inherits should be fine then [16:32] botanicus: tjholowaychuk: I understand what you want, but again: I have Ruby for that. [16:32] botanicus: tjholowaychuk: OK thanks. [16:32] tjholowaychuk: to each their own. we also have coffeescript which people love lol and thats totally not JS-like at all [16:32] tjholowaychuk: but people still like it [16:32] botanicus: Any other opinions guys :) ? + Why? [16:33] botanicus: tjholowaychuk: yeah people like Rails and all this crap. => I don't care what people likes :) [16:33] tjholowaychuk: haha, its just a suggestion [16:34] botanicus: yeah :) I don't really get what's so cool about CoffeeScript honestly [16:34] tjholowaychuk: Object.keys() is non-inherited props only right guys? [16:34] tjholowaychuk: i dunno [16:34] tjholowaychuk: its ok [16:34] tlrobinson has joined the channel [16:34] tjholowaychuk: id rather it be c++ and right in the VM or something though so you could just require() it and not wait for shit to compile [16:35] tjholowaychuk: nvm answered my own q [16:36] creationix: botanicus: Object.create or the __proto__ property on any object [16:36] creationix: both help with prototypal inheritance in JS [16:37] botanicus: creationix: I know them, the question is more "what JS guys really use"? Are you doing this stuff manually? [16:38] creationix: I don't tend to use inheritance much personally, I write more in the functional style [16:39] botanicus: creationix: that's interesting. I know you have a lot of projects on GH, but can you please show me an example how you deal with code where most of the people would probably use inheritance? [16:39] micheil: _ry: I may have another patch for you on websockets in node [16:40] creationix: botanicus: my newest code is wheat [16:40] botanicus: creationix: because I'm a Ruby dev. I understand OOP, classes, that's fine for me. I want get more into functional style, but I don't have much experiences in this area. Sure, closures etc, it's easy, but I'm not used to use functional code as a replacement of inheritance [16:40] botanicus: creationix: OK thanks [16:41] creationix: I figured out some pretty good idioms for handling the problems of async work [16:41] creationix: not much in the oo side though [16:41] gwoo: i just saw node-worker [16:42] tjholowaychuk: creationix: hah! http://github.com/visionmedia/node/commit/98e03b73559b1b567a81c4ce75ee965d2d740d4b.patch [16:42] tjholowaychuk: awesome [16:42] tjholowaychuk: good to know [16:42] creationix: yep [16:43] nsm has joined the channel [16:43] tjholowaychuk: very slick [16:44] gwoo: tjholowaychuk: is that similar to a __toString() ? [16:44] isaacs has joined the channel [16:44] tjholowaychuk: whats __toString() used for, what are you referring to? php? [16:45] gwoo: yeah [16:45] tjholowaychuk: if your used to ruby it would be the same idea as #inspect [16:45] gwoo: ah [16:46] tjholowaychuk: just to provide a more informative return value for sys.inspect() [16:46] gwoo: coolio [16:46] tjholowaychuk: since its kinda annoying to sometimes just see a big object literal with some functions etc [16:49] tjholowaychuk: _ry: got a little inspect() patch for you http://github.com/visionmedia/node/commit/98e03b73559b1b567a81c4ce75ee965d2d740d4b.patch [16:49] noonat has joined the channel [16:50] bpot has joined the channel [16:52] WALoeIII has joined the channel [16:57] tjholowaychuk: creationix: still think you should consider ext, think we should build some pretty cool stuff between the two of us [16:57] creationix: :) [16:57] creationix: too bad I can't stand your coding style ;) [16:57] creationix: you write really good code [16:57] tjholowaychuk: hahaha no worries i will be forced to change that [16:57] ashb: tjholowaychuk: thanks for the kiwiw commit on markdown.js [16:58] tjholowaychuk: i need to comply with theirs [16:58] tjholowaychuk: np [16:58] javajunky1: tj: har-har ;) you'll have to join the rest of us in semi-colon land [16:59] tjholowaychuk: hahaha [16:59] isaacs: i've started omitting semicolons from a few sorts of statements. [16:59] isaacs: var and functions, mostly [16:59] isaacs: I decided that }; looks like a winking pedophile [16:59] creationix: isaacs: lol! [17:00] creationix: I tend to do the same [17:00] tjholowaychuk: only time i use them (with SSJS) is "var foo = 'whatever'\n ;(function(){})()" [17:00] botanicus: creationix: OK I'm still not fully getting how are you doing it (using functional as an inheritance replacement). I went through some of your code and I can't find an example where in the wheat I'd actually use inheritance. So, if you don't mind, how would you implement models? Usually you have a class, let's call it Model which can do some stuff with (No)SQL and all your classes (Post, Comment ... ) inherit from the Mo [17:00] botanicus: del class. [17:00] isaacs: and var is better with comma-first, and if you just omit the semicolon, then every line matches nicely. [17:00] isaacs: and you can always add to a var with a comma, that means, without modifying the line above [17:01] javajunky1: inheritance is poop, composition ftw ;) [17:01] creationix: botanicus: I think that's point, I don't think in the OO paradigm. That's not to say you can't mix functional and OO [17:01] creationix: but yes, I tend to favor composition [17:01] felixge has joined the channel [17:02] isaacs: javajunky1: that's a funny thing to hear from someone who's handle is "javajunky" [17:02] botanicus: creationix: sure, I just told how it's usually done in OOP and I'm interested how you'd do it otherwise? [17:02] creationix: well, for one, the idea of an ORM (like active record) is very much tied to OO concepts [17:02] javajunky1: isaacs: ;) I think the majority of java developers use IoC in one form or the other these days, very few *decent* programmers rely on implementation inheritence ? [17:02] botanicus: javajunky1: also, if you have a solution for my example, I'd love to hear it, pls [17:03] isaacs: IoC? [17:03] herbySk: isaacs: problem. you have another edge case. just copy the previous one and s/whose file was removed/whose extension was removed/ [17:03] javajunky1: Inversion of Control (posh sounding words for compositional inheritance) … also known as Strategy pattern (but I'm grossly simplifying) [17:03] creationix: if I were to implement something like ActiveRecord I would either use regular javascript constructors with prototype or just Object.create from my "parent class" [17:03] javajunky1: botanicus: your question is ' I want to represent an objet hierarchy, how do I do that' .. my contention is , do you *need* to represent it as an actual object hierarchy [17:04] herbySk: and i am afraid I already know what will be your solution :-/ remove export.extensions altogether [17:04] devinus has joined the channel [17:04] botanicus: javajunky1: sure I don't, but I'm describing by something I know [17:04] creationix: botanicus: http://beta.howtonode.org/prototypical-inheritance [17:05] creationix: in theory that's how I would do it, but in practice I just don't think that way and end up never needing it in code I write from scratch [17:05] dgathright has joined the channel [17:05] micheil: _ry: patch. http://gist.github.com/368678 [17:05] creationix: all the built-ins in JS are OO, so it's not out of place, it's the language itself that lends to compositional style [17:06] javajunky1: botanicus: I wish I had time right now to explain in better detail (stupid car park closing), but if you look at things like mixins + duck typing, they're all attempts to avoid inheritance (whether explicit or not) and the inherent fragility that introduces into the code, there are some excellent articles by martin fowler on some of this stuff [17:06] botanicus: creationix: nice stuff, but I know that [17:06] micheil: creationix: feel free to review / add feedback on that patch [17:07] creationix: micheil: no clue on that one, looks fine at first glance [17:07] creationix: botanicus: so what are you asking then? seems like you know all the technical ways to do OO in javascript [17:07] botanicus: creationix: but back to the example, so do you even think you need an ORM? (Since you mentioned you wouldn't use much of it) [17:07] micheil: it is fine, of course, it's just the addition of an if statement to make the http.Server's requestListener optional [17:07] javajunky1: (botanicus: I'm not saying there's isn't a place for it, just that I tend to move my stuff around to avoid having that much depth ) [17:07] botanicus: creationix: yes I'm interesting in the functional style you mentioned and I don't know that well [17:07] creationix: I starting writing an orm for node way back (node-persistence) but in the end, it didn't feel right [17:08] javajunky1: right g2g, cu. [17:08] creationix: when I'm coding I think of everything as composed functions, some are sync and some are async. I group problems into smaller problems and so forth [17:08] javajunky1: but wikipedia as ever is good for this kinda stuff ;) http://en.wikipedia.org/wiki/Function_composition_%28computer_science%29 [17:08] tjholowaychuk: botanicus: functional is just removing state, my stuff (most of it) follows this as well github.com/visionmedia [17:09] javajunky1: tj: nice def, … the advantages of not mutating the surrounding state are ace, but this is not the room for that discussion ;) [17:09] javajunky1: (it would be way too long and interesting ) [17:09] javajunky1: cu [17:09] botanicus: creationix, javajunky1, tjholowaychuk: that's interesting. Thanks for intro, I think I'll continue on wikipedia. [17:10] herbySk: isaacs: ayt? [17:10] creationix: I have background in both ocaml and ruby so I understand both paradigms [17:10] isaacs: herbySk: yo [17:10] creationix: they are quite different though [17:10] isaacs: what's up? [17:10] dgathright_ has joined the channel [17:10] dnolen has joined the channel [17:10] herbySk: i snet you two lines a minute ago... new problem with the cide [17:10] creationix: ok, closing irc so I can finish my work [17:11] herbySk: s/snet/sent/ [17:11] creationix has left the channel [17:11] tjholowaychuk: ya i gotta get shit done too [17:11] isaacs: ACTION scrolling back... [17:11] isaacs: herbySk: can you elaborate a bit? [17:12] xla: heya, is there a place where I can look into the 0.1.33 api documentation? [17:12] isaacs: herbySk: like, if i rename /foo/bar.js to /foo/bar? [17:12] isaacs: herbySk: (where "/foo" is in the require.paths) [17:13] isaacs: herbySk: i think in this case, at least, require("bar") will still find the cached module from /foo/bar.js (even though the module file was removed, which is ok, because at least it's consistent) [17:13] isaacs: herbySk: or am i misunderstanding the case? [17:13] xla: nvm [17:14] herbySk: no, it's completely same as the one I sent you a few days ago. only "whose file was removed" should be changed to "who ext was removed (from export.extensions)" and you got the exactly same inconsistent behaviour [17:14] creationix has joined the channel [17:15] towski has joined the channel [17:16] creationix has joined the channel [17:17] creationix: what the heck is the "\b" character [17:17] creationix: http://beta.feedvalidator.org/check.cgi?url=http://76.184.251.54:8080/feed.xml#l1672 [17:17] herbySk: backspace? [17:17] isaacs: aha [17:17] creationix: it's what is breaking my feed [17:17] creationix: how do you html excape that? [17:17] isaacs: herbySk: so you're not talking about renaming the file, you're talking about module.extensions.pop [17:17] isaacs: () [17:17] devinus: creationix: \\b ? [17:17] herbySk: isaacs: yes [17:18] creationix: devinus: no, I've already got one in my content, but it's not valid xml [17:18] cloudhead has joined the channel [17:18] isaacs: herbySk: my answer for that would be that the module.extensions list is only relevant when looking up files. if you modify it, and that causes a file not to be found any more, then that's ok [17:18] isaacs: herbySk: but if you require(module.id) that should still work. [17:18] devinus: creationix: all i know is that \b => [17:19] isaacs: herbySk: let me get back to you on that, though. i'm at work atm, and i don't want to give you a brush-off answer [17:19] creationix: hmm, I guess I can just remove it from my data, it's not visible in the browser anyway [17:19] isaacs: herbySk: we may end up needing to put a special prefix or something in front of module ids like you'd suggested. [17:20] herbySk: issacs: that is not an answer. your code has pur side-effect behaviour which works differently for the same require based just on the implementation fact that searchPaths.length === 1 [17:20] isaacs: herbySk: that's because there's only one place where the file could be, so looking up based on just the stem is safe. [17:21] isaacs: herbySk: i'm not convinced that "different behavior for a different situation" is a bad thing. [17:21] micheil: todo: tweak the css to the doc viewer so that the column for the nav is wider [17:21] isaacs: herbySk: but i'll review the "remove an extension from module.extensions" case more thoroughly when i get some time, probably Sunday. [17:21] creationix: anybody know that means javajunky uses is in his article [17:22] herbySk: but of course it is. user who require() s a module assumes it is either required or according to same rules. You break the rules for searchPaths === 1 [17:22] herbySk: Nevertheless, I just showed you you have an edges case. Fix it or not, it's up on you. [17:23] joshbuddy has joined the channel [17:23] herbySk: If it gets permeated in node, I'll put it up as an issue. [17:28] mjr_ has joined the channel [17:30] rektide has joined the channel [17:30] isaacs: ok, herbySk. thanks for reporting it now while it's fresh. if you find anything else, it'd be best to email (or github message) me the description of the situation (ie, how to expose the bug) because I'll be on and off in here, and probably offline all day tomorrow. [17:31] isaacs: better to fix while we're still pretty close to the design phase, if we know about a bug now. [17:31] isaacs: or decide that it's too weird of an edge case to care about. [17:31] isaacs: ;P [17:32] creationix has joined the channel [17:33] creationix: anyone want to test out my new site before I publish it? beta.howtonode.org [17:33] creationix: I haven't updated all the articles, and the feature to tag versions of libraries mentioned isn't implemented yet [17:33] creationix: but otherwise it should be complete [17:34] steadicat has joined the channel [17:39] polyrhythmic: seems to be working well creationix [17:39] creationix: sweet, it's been a long two weeks working on this non-stop [17:39] polyrhythmic: that's a lot of hours! [17:39] polyrhythmic: I like the git article concept [17:40] creationix: me too, I just push to my server, and the content is live and cached within 100ms [17:40] creationix: and it re-pushes to github for me automatically [17:41] micheil: creationix: some good info on the new req.upgrade stuff: http://github.com/miksago/node-websocket-server/commit/6096edebdeafdbf954b379d9d7ab773e16138bf9 [17:44] micheil: basically how to handle / use it. more to come tomorrow. [17:44] creationix: felixge: I'm about to release howtonode, and I'm changing the background to a volcano for this weekend ;) [17:44] creationix: http://www.abendblatt.de/multimedia/archive/00399/icelands_HA_Sport_E_399703b.jpg [17:45] felixge: creationix: as a symbol for all those who can't make it to jsconf for one reason or another? [17:45] felixge: :) [17:45] creationix: yep [17:45] creationix: it was roidrage's idea [17:45] micheil: creationix: do you have license on the photo? [17:46] felixge: creationix: I like that [17:46] kixxauth has joined the channel [17:46] creationix: no, but it should be ok [17:46] creationix: just for the weekend [17:46] micheil: Better shoot them an email. [17:46] micheil: if you don't get a reply in five mins and if there's no copyright notice, use it, but with creds [17:47] micheil: creationix: I'll soon have you an article on the new upgrade stuff (possibly.) [17:48] creationix: cool [17:50] javajunky has joined the channel [17:54] mikeal has joined the channel [17:56] JimBastard_ has joined the channel [17:56] JimBastard_: yaaa ive arrived [17:56] micheil: ahoy! [17:56] JimBastard_: i hope im in the right place [17:57] creationix has joined the channel [17:57] JimBastard_: they are talking about jquery [17:57] micheil: hmm.. what's the name? [17:57] micheil: firstname or something [17:57] JimBastard_: i mean im at the hotel, but this looks a little more structured then a hack day [17:57] micheil: actually.. no.. yeah I'm not sure [17:57] micheil: the men I know on the ground aren't in reception atm [17:57] joshbuddy has joined the channel [17:57] JimBastard_: are you here micheil ? [17:57] micheil: I'll be back tomorrow. :D [17:58] micheil: no [17:58] binary42 has joined the channel [17:58] micheil: sadly. It conflicted with my exam timetable, I'm needed back in AU on wednesday, but the soonest flight back would land wed. in sydney at about 4pm [17:58] devinus has joined the channel [18:00] JimBastard_: sup BinaryPie [18:00] JimBastard_: err [18:00] JimBastard_: Binary42 [18:00] binary42: JimBastard :P [18:00] binary42: JimBastard You in DC already? [18:00] JimBastard_: im chillin at the latham [18:01] JimBastard_: these guys are talking about emile [18:01] binary42: Ah. I'm on a bus since I delayed one day because of "costume complications" [18:01] binary42: (a surprise for the boat) [18:01] JimBastard_: jesus [18:01] JimBastard_: ahaha [18:01] BinaryPie: you can say hi to me too. I'm not mean. [18:02] JimBastard_: lol sup [18:02] binary42: At least I managed to get random people on the street to help me carry boxes of shit around. [18:02] binary42: BinaryPie, I should sue you for infringing on my handle. ;-) [18:02] JimBastard_: all i can get random people on the street to do is dance with me [18:03] binary42: JimBastard_ Well, you have your chance once again at ScurvyConf. [18:03] micheil: G'night chaps, have a great opening night party. [18:03] JimBastard_: ahahaha [18:03] JimBastard_: yeah [18:03] micheil: btw, if you see two germans-sounding folk, nikolai and tobias, tell them "thanks for the coffee" and "hi from me" :P [18:04] JimBastard_: the only german im looking for is felix [18:04] micheil: (just joking on the last bit, but the the coffee should be good) [18:04] micheil: felix can't make it I don't think [18:04] binary42: If they are flying from Germany I assume they have volcano issues. [18:04] JimBastard_: i have a briefcase of cash for him, hes gonna give me the node-dirty source code [18:04] micheil: binary42: they're already on the ground [18:04] nefD: if you could, let them know that I said "So long and thanks for all the fish" [18:04] binary42: Nice. Lucky. [18:04] binary42: Though now they might be stuck here. [18:05] micheil: yeah [18:05] JimBastard_: they can come hang out at apartment jail [18:05] mikeal: so, all these people that can't make it from Europe [18:05] felixge: JimBastard: suit case of cash, huh? [18:05] mikeal: does that mean there are open seats :) [18:05] felixge: ACTION starts swimming [18:05] mikeal: cause i'll get on a place today [18:05] micheil: JimBastard: caught out. :P [18:05] mikeal: s/place/plane [18:05] JimBastard_: sup felixge [18:05] JimBastard_: did you get stuck in g land? [18:06] binary42: felixge, Are you stuck over in Berlin still with roidrage? [18:06] micheil: btw, chaps: http://twitter.com/twitterapi/status/12296272736 [18:07] BinaryPie: binary42: lol yeah someone might get confused [18:07] micheil: may interest a few. [18:07] felixge: binary42: I live in berlin, so being stuck there is business as usual, but yes :) [18:07] micheil: there should be a live stream [18:07] JimBastard_: damn [18:07] JimBastard_: sorry to hear felixge [18:08] JimBastard_: i was looking forward to drinking with you until we couldnt feel feelings anymore [18:08] creationix: felixge: http://76.184.251.54:8080/ [18:08] binary42: felixge, Well, yeah. Same with Matthias, but stuck as in you would be here otherwise. [18:08] creationix: like the background [18:08] creationix: ? [18:08] felixge: It's ok, the volcano promised that the ash will be made of pure gold and my backyard will be covered with it tomorrow [18:08] binary42: felixge, You can enjoy some bacon with roidrage maybe. [18:08] felixge: creationix: looks nice [18:08] mikeal: felixge: can I have your seat? :) [18:08] binary42: He might do a remote skype report. [18:09] binary42: lol [18:09] binary42: mikeal, How fast can you write a talk? [18:09] felixge: mikeal: if voodootikigod_ lets you have it, go for it :) [18:09] mikeal: voodootikigod_: can I have felixge's seat? [18:10] mikeal: i can book a flight for tonight and be there for it tomorrow [18:10] micheil: night chaps. [18:10] creationix: dang, I should have been on the in-case-of-volcano-and-felixge-doesnt-make-it waiting list [18:10] JimBastard_: ahahahahahaha [18:10] mikeal: felixge says it's cool [18:10] felixge: creationix: if you want the seat as well we can have a competition :D [18:10] mikeal: i called it first! [18:10] JimBastard_: i'd like to put in my formal bid [18:11] felixge: hehe [18:11] JimBastard_: not only am i already here but i can beat up the other two contestants [18:11] creationix: only if I get it and a free plane ticket [18:11] binary42: We'll make an official volcano waiting list next year. [18:11] creationix: it's a long walk from Texas [18:11] felixge: btw. it's all for the greater good: http://www.informationisbeautiful.net/2010/planes-or-volcano/ [18:12] mikeal: voodootikigod_ doesn't seem to be around [18:12] mikeal: :( [18:12] mjr_: felixge: awesome link [18:12] JimBastard_: im sure he's floating around the hotel somewhere [18:12] binary42: mikeal, He's pretty busy doing stuff around the hotel IIRC. [18:12] mikeal: i figured :) [18:12] binary42: If anyone wants to meet me at the bus stop, have boxes to carry. [18:13] rictic has joined the channel [18:13] mikeal: i just sent a twitter thing he might see on his phone if he has time [18:13] JimBastard_: what bus binary42 [18:13] mikeal: felixge: were you speaking? [18:13] felixge: mikeal: yeah [18:13] mikeal: what about? [18:13] binary42: JimBastard_: bolt. [18:13] felixge: mikeal: node-dirty [18:13] JimBastard_: my bus go off at union station, was a long ride [18:13] JimBastard_: yeah dude [18:13] JimBastard_: i think i got off at the wrong stop maybe [18:13] mikeal: i can figure that out enough on the plane to do the talk if you send me slides :) [18:13] felixge: mikeal: not so much about the project / code, but the ideas behind it [18:13] binary42: JimBastard_: Going to 10th or whatever, not union. [18:13] JimBastard_: yeah, that was my mistake [18:14] mikeal: i looked at it a while back and it look really cool [18:14] felixge: mikeal: : ). nah, I don't want somebody else to do the talk [18:14] binary42: 17:15 is the ETA [18:14] mikeal: you should do it over video chat :) [18:14] felixge: I'm going to safe it for another conference [18:14] JimBastard_: i can help, but i have no idea where the bus goes and i dont have a cell [18:14] felixge: mikeal: I thought about that, but I'd rather have somebody give a great talk in person than me doing one via skype or shit [18:14] binary42: I am sooo tempted to arp poison and filter the network right now. [18:14] felixge: I just have a feeling that it wouldn't work well [18:14] xer0x has joined the channel [18:14] mikeal: i could do a talk on node.js + CouchDB :) [18:15] JimBastard_: binary42 : hacking bus wifi is always fun [18:15] felixge: mikeal: actually, you can get my seat if you manage to reach voodootikigod_, but I was hoping @jedschmidt would get the slot for node-fab :) [18:15] JimBastard_: you can read the IM conversations of the hot chick thats sitting in front of you [18:15] binary42: mikeal, That would rock. if I ping voodootikigod_ later I'll ask what he has planned for the spot. [18:15] JimBastard_: binary42: do you know what this iterative design thing is? this is the open hack day right? [18:16] felixge: mikeal: but his b-slot would be open in case that works :) [18:16] mikeal: link? [18:16] felixge: mikeal: and 3 node talks would be *awesome* [18:16] JimBastard_: if i can pull a W at scurvy it will be 4 [18:16] binary42: JimBastard_, Or better, have the actual conversation. [18:16] mikeal: so, if anyone *sees* voodootikigod_ tell him I can fill the slot and get on a plane if I find out soon enough [18:16] JimBastard_: lulz [18:17] teemow has joined the channel [18:18] binary42: JimBastard_: I haven't had time to really pay attention to the surrounding events. [18:18] binary42: JimBastard_: this volcano has suddenly made me photographer. [18:18] JimBastard_: ? [18:19] JimBastard_: you are talking pics of the volcano? [18:19] stephenlb has joined the channel [18:20] binary42: lol. SUre. If that's where the conference is. [18:20] JimBastard_: do you know if there is any online collab document setup yet? maybe we should start a groogle wave? [18:20] binary42: A what wave? [18:21] felixge: mikeal: good luck getting in touch with voodootikigod_, I really hope my seat doesn't go to waste [18:21] mikeal: i'm trying [18:21] mikeal: :) [18:21] felixge: mikeal: there would be one requirement so, and I'm making no exceptions [18:21] felixge: mikeal: you will have to drink exactly as much alcohol as I would have [18:21] JimBastard_: lol [18:21] felixge: mikeal: I will instruct you via twitter [18:21] felixge: mikeal: and I want regular pics uploaded as proof [18:21] felixge: :) [18:21] fizx has joined the channel [18:21] JimBastard_: gonna have to be passing bac readings [18:22] binary42: mikeal, There are more technicalities than just saying yes... otherwise I'd call him right now. [18:22] mikeal: the flight i would need to catch is in about 10 hours [18:22] mikeal: so i have some time :) [18:22] binary42: Don't get your hopes up but you can start writing slides if you want. [18:22] JimBastard_: mikeal: where are you based out of? [18:22] mikeal: felixge: i can handle that [18:22] mikeal: JimBastard: I would fly out of SFO [18:22] felixge: mikeal: you know I'm a very tall german? :) [18:22] mikeal: binary42: i can write slides on the plane :) [18:23] mikeal: felixge: then I'll have jan lip sync my talk [18:23] felixge: mikeal: deal! :) [18:23] binary42: mikeal, Hehe. Swinger + CouchDB is a great combo for that too. [18:23] mikeal: i have keynote on my iPad and I've been itching to use it [18:24] binary42: Ooo. Don't tell voodootikigod_ that. You'll be banned for sure. [18:24] mikeal: hahaha [18:24] creationix: mikeal: did you try the #jsconf room [18:24] mikeal: nope, didn't know it exists [18:24] binary42: ACTION dropped off AAPL almost completely that week in spite of their brainless PR with developers. [18:25] binary42: My dev is now in linux and my phone is now on android. [18:25] mikeal: it's a great device, i can't wait until someone else does a better one that doesn't require me to write obj-c [18:25] JimBastard_: charlierobbins has been bitching about monotouch all week [18:25] binary42: I've used one. I don't think it's worth sacrificing my hate for the way the iPad is being treated by apple though. [18:26] binary42: I still need OS X for my music and photography but otherwise I probably won't give that company a dime for a long time. [18:26] mikeal: it's the best device in an entirely new class, it's interesting to use just because it really is what future devices are going to be like, and I like to start thinking about that early [18:27] mikeal: it's a lot like the iPhone [18:27] mikeal: now all new phones are more like the iPhone than anything before it [18:27] mikeal: binary42: i only need OSX for TextMate [18:27] binary42: Yeah. I'm behind that direction of form-factors and interaction design. [18:27] mikeal: if it wasn't for TextMate i'd probably use linux for development [18:28] binary42: I'm perfectly functional in vim but I do feel rusty since it's been about 6 years since I've used it regularly. [18:28] binary42: I still think TM is a better editor by concept and theory. [18:29] felixge: mikeal: obj-c isn't that bad [18:29] mikeal: it's not bad [18:29] felixge: JS would be nicer so ;) [18:29] mikeal: it's just not what i want to write in :) [18:30] isaacs[away]: mikeal: +1 [18:30] felixge: I wish I could get over the initial pain involved with starting to use vim [18:30] isaacs[away]: also, if it wasn't for working touchpads [18:30] mikeal: i really think they need to write a widget platform for iPhone OS that is just HTML and JavaScript like dashboard widgets [18:30] isaacs[away]: the apple touchpad drivers are made of magic [18:30] mikeal: there are signs that they may be [18:31] mikeal: felixge: i moved from vim to TextMate and I've never looked back [18:31] mikeal: btw, when is TextMate2 going to win a vaporware award? [18:31] felixge: mikeal: the project drawer is really mouse-heavy, if it wasn't for that ... [18:31] mikeal: it's the Duke Nukem Forever of text editors [18:32] mikeal: felixge: yeah, but the one-click opens the file is a nice touch [18:32] felixge: mikeal: textmate is also really memory hungry on big projects [18:33] felixge: my record have been 900mb [18:33] felixge: by hungry I mean leaky [18:33] KungFuHamster: I read an article recently on Gamasutra (old article) from one of the DNF developers.. and he was preaching about feature creep and stuff... heavy in irony. [18:33] mikeal: yeah, it's not suitable for Java, which is not an issue for me :) [18:33] felixge: Search & Replace in Textmate is also a joke [18:33] binary42: TM has tons of small problems but I get by with it when I use it. [18:33] felixge: for a developer tool [18:33] felixge: binary42: yeah [18:34] felixge: from all the sucky editors it sucks the least ;) [18:34] felixge: and it looks pretty [18:34] isaacs[away]: mikeal: TextMate2 is going to win the vaporware award as soon as the vaporware award delivery program is done. [18:34] mikeal: haha [18:34] binary42: Now, when will mozilla learn to use new build tools. Even the tracemonkey snapshot is a pain. [18:35] binary42: So glad node "just works" [18:35] mikeal: binary42: it's SOOOO much better than 1.7 tho :) [18:35] mikeal: at least now it's a normal autoconf project [18:35] JimBastard_: tmpvar is working on a web editor [18:35] isaacs[away]: felixge: the mouse-heavy factor is nil when you realize that cmd-T opens any file in quicksilver-style searching [18:35] binary42: autotools needs to burn in hell... I wish autotools was vaporware. [18:35] JimBastard_: think bespin but not bulky [18:36] isaacs[away]: felixge: then "project" is just "open a folder, and quickly have access to all its files without the mouse" [18:36] mikeal: bespin's editor isn't bulky [18:36] mikeal: it's all the IDE crap that's bulky [18:36] mikeal: someone is going to take that editor and do something way more awesome with it [18:36] felixge: isaacs[away]: cmd+T is nice until you have multiple files with the same name [18:36] mikeal: i did an etherpad clone with it using CouchDB _changes [18:36] mikeal: and it wasn't that difficult to embed [18:36] isaacs[away]: felixge: sure, but i don't do that. :) [18:37] felixge: isaacs[away]: but renaming files is just not possible with the keyboard afaik [18:37] binary42: JimBastard_: Yeah. Saw the canvas proof of concept. Can't wait to see more action on that project. [18:37] isaacs[away]: felixge: well, you CAN do it, but the problem is that some bundle or other usually steals the shortcuts that do it. [18:37] JimBastard_: he's been slowly adding features [18:38] JimBastard_: http://tmpvar.com/project/ [18:38] felixge: did you see googles new drawing thingy in google docs? [18:38] felixge: It's *awesome* [18:38] JimBastard_: i did not [18:39] mikeal: felixge: link? [18:39] JimBastard_: its in docs [18:39] JimBastard_: create new drawing [18:39] felixge: http://docs.google.com/drawings/pub?id=1nwMbqaQXboRXLNvvo-dN9yuKo0z8DAeVTHRTIcwGZqQ&w=960&h=720 [18:39] dobe has joined the channel [18:39] felixge: can you guys access that? [18:39] mikeal: oh wow [18:39] mikeal: this is pretty nice [18:40] mikeal: this + a bamboo pad would be great [18:40] felixge: ah I guess it's not the right link [18:40] mikeal: for collaborative drawing [18:40] felixge: http://docs.google.com/drawings/edit?id=1nwMbqaQXboRXLNvvo-dN9yuKo0z8DAeVTHRTIcwGZqQ&hl=en [18:40] felixge: try this one [18:40] felixge: and join me for some fun [18:40] felixge: :) [18:40] JimBastard_: http://docs.google.com/drawings/pub?id=171oXTuqcGZWT2GITXwzU8i5AhtUMENed8k65JOIH3eM&w=960&h=720 [18:41] mikeal: the selection on things you draw is well done [18:41] JimBastard_: :_D [18:41] JimBastard_: WHO DREW THAT [18:42] ncb000gt: LOL [18:42] ncb000gt: mikeal: agreed [18:42] felixge: this is what happens I guess :) [18:42] JimBastard_: i really like what happens with the node room does a collab drawing [18:43] MattJ: You mean when /you/ do a collab drawing? :) [18:43] ncb000gt: haha [18:43] MattJ: I was quite happy with my circle [18:44] admc has joined the channel [18:44] JimBastard_: this thing is pretty bad ass [18:44] JimBastard_: isnt there something like bigcanvas [18:44] binary42: Is that like sketchroulette or something? [18:44] pkrumins: hey, anyone has Socket.IO and Socket.IO-node running? [18:44] pkrumins: I can't get any of the versions running. [18:45] binary42: I like that endless text thing. [18:45] pkrumins: Neither with nodejs-0.1.90, nor nodejs-0.1.33 [18:45] JimBastard_: binary42 im not sure, but it sounds like a huge infinite scroll scratch pad [18:45] JimBastard_: yeah [18:45] JimBastard_: exactly [18:45] MattJ: pkrumins: I gave up [18:45] KungFuHamster: hahah nice, doc rolled [18:45] binary42: I've put plenty of things on that. Quite fun. [18:45] felixge: :) [18:45] JimBastard_: pkrumins: who wrote that lib? [18:46] pkrumins: "Guille" [18:46] pkrumins: http://github.com/Guille/Socket.IO [18:46] pkrumins: and http://github.com/RosePad/Socket.IO-node [18:46] pkrumins: if they worked, they would be wicked libs [18:46] pkrumins: I am putting all effort to get them working [18:46] pkrumins: so I'll probably release a patch when I do [18:46] pkrumins: because I absolutely need them. [18:47] MattJ: and I put all my effort into working around my problem another way :) [18:47] JimBastard_: yeah i mean pkrumins im assuming its just out of date [18:48] JimBastard_: it shouldnt be too hard to update it to 0.1.9 [18:48] JimBastard_: i updated a few libs [18:48] pkrumins: MattJ: so how did you do it? [18:48] pkrumins: JimBastard: it's meant to work with nodejs-0.1.33 but doesn't [18:49] MattJ: pkrumins: Strophe.js, BOSH, XMPP and a server-side plugin to send over TCP :) [18:49] pkrumins: MattJ: perhaps I could reconsider where I put my effort. [18:49] pkrumins: MattJ: looking into it :) [18:49] MattJ: pkrumins: Though when the rest of my app is done, I'd like to generalize it, so we can cut out the XMPP part [18:50] MattJ: It was just easier to use Strophe.js because it's already there, and I already have an XMPP server I can hack on [18:50] pkrumins: aha [18:51] MattJ: Though if I wasn't up to hacking the server I'd have used xmpp.js (a lib I wrote for node to use XMPP) [18:52] tilgovi has joined the channel [18:53] CodeOfficer has joined the channel [18:53] pkrumins: looking into all of this [18:55] pkrumins: any ideas if you can stream images via BOSH and XMPP? [18:55] MattJ: Binary data is safest base64-encoded, but yes [18:55] JimBastard_ has joined the channel [18:55] pkrumins: that's pretty awesome, just about what I am looking for. [18:55] JimBastard_: heh i found the hack day and joyent people [18:56] JimBastard_: I WAS IN THE WRONG ROOM AFTERALL [18:56] JimBastard_: huzzah [18:56] demolithion has joined the channel [19:03] mitkok has joined the channel [19:05] rmetzger has joined the channel [19:09] rictic has joined the channel [19:10] bmizerany has joined the channel [19:10] tlrobinson has joined the channel [19:11] tlrobinson: jan____: you online? [19:11] derbumi has joined the channel [19:13] mikeal: tlrobinson: he's on twitter :) [19:13] mikeal: sometimes that's the easiest way to get ahold of him [19:13] tlrobinson: mikeal: he's 5 rows ahead of me on my flight right now :) [19:13] mikeal: oh awesome [19:14] mikeal: you guys on virgin america? [19:14] tlrobinson: yea [19:14] mikeal: you can use the seat to seat chat :) [19:14] tlrobinson: oh i've never tried that [19:14] mikeal: looks like he's on jabber as well [19:15] ncb000gt: just throw something at him [19:15] mikeal: haha [19:15] ncb000gt: i recommend the person next to you. [19:15] ncb000gt: they make good projectiles. [19:15] mikeal: especially small children [19:16] tlrobinson: hopefully i got the right seat [19:16] tlrobinson: (for chat... not throwing stuff... but that too) [19:17] mikeal: haha [19:17] ncb000gt: alternatively, walk up and ask if he'd like a fresh beverage [19:17] ncb000gt: and some crackers [19:17] mikeal: he wants some scotch [19:17] ncb000gt: don't we all? [19:18] ncb000gt: mmmm, i should leave work right now for some scotch [19:22] tlrobinson: ncb000gt: leave work? just do it mad men style [19:22] ncb000gt: problem, i don't have any scotch on me, otherwise i would [19:25] dnolen has joined the channel [19:27] jtoy has joined the channel [19:27] cmlenz has joined the channel [19:42] creationix: It's live! http://howtonode.org/ [19:42] stephenlb: cool [19:44] N`: yup, it's really nice :) [19:45] aryounce has joined the channel [19:46] jed_ has joined the channel [19:47] binary42 has joined the channel [19:50] creationix: alright, who's hacking my site? [19:51] nefD: wha-huh? [19:54] creationix: http://howtonode.org/39b606e5ce7833ffc6ba38a41e2a76f8172aa4fc/volcano-wheat [19:54] creationix: see the output of my puts statement [19:54] ewdafa has joined the channel [19:58] derbumi has joined the channel [19:58] kriszyp has joined the channel [20:01] nefD: creationix: whoa.. [20:02] nefD: creationix: Guessing you mean the ls output of /usr ? [20:02] creationix: no clue on that one [20:02] creationix: the output it auto-generated by the server [20:03] joshbuddy has joined the channel [20:04] JimBastard__ has joined the channel [20:06] JimBastard__: sup deanlandolt you alive [20:14] binary42 has joined the channel [20:14] mjijackson has joined the channel [20:15] creationix: alright, I'm officially looking for short-term js work. I just talked with my last client, and they won't be paying me any time soon [20:16] javajunky has joined the channel [20:16] dandean has joined the channel [20:18] JimBastard__: the school? [20:18] binary42: creationix, Ouch. That bites. [20:18] creationix: at least I know now, they've left me in limbo for months [20:19] JimBastard__: thats fucked [20:19] JimBastard__: you almost here binary42 [20:19] JimBastard__: im at the latham now but its kinda boring i might go disppear until scurvy [20:19] creationix: JimBastard: yeah, there was a technicality in one of the forms I filled out months ago and they never told me it was wrong [20:19] creationix: I hate red tape [20:20] JimBastard__: Fill in this checkbox if you want us to pay you this year. [20:23] jan____ has joined the channel [20:23] jan____ has joined the channel [20:23] devinus has joined the channel [20:26] isaacs[away]: hehe... mention in #node.js that you need a job, get a flood of offers within 3 seconds... [20:27] binary42: heh. It's sad that some of these jobs are in high demand too but the companies don't know where to look. [20:27] jan____ has joined the channel [20:28] jan____ has joined the channel [20:28] JimBastard_ has joined the channel [20:28] jherdman has joined the channel [20:32] jmar777 has left the channel [20:44] indiefan has joined the channel [20:49] mape has joined the channel [20:49] mjijackson: binary42: you're aware of server-side js jobs in high demand? [20:49] mjijackson: i haven't seen any that i can remember... [20:51] binary42: mjijackson, I know a number of NYC companies looking at it. [20:51] binary42: The problem is they want people that are local etc. [20:52] binary42: Also with other unannounced news, I know it will rise rapidly soon. All I can say. [20:53] mjijackson: binary42: Interesting. Would you post to the mailing list when you hear about stuff like this? From my perspective, it's difficult to find people who want this kind of work done. Most of the time they just want people to do PHP and RoR. [20:54] mjijackson: I would personally love to do more JS work than I do currently. [20:54] derbumi has joined the channel [20:54] binary42: mjijackson, Yeah. I'm working on the business scene in NYC to get things organized and ready. [20:55] binary42: Hopefully things will make progress in the next few months quite a bit. [20:55] ncb000gt has left the channel [20:56] mjijackson: binary42: Awesome. Thanks [20:58] fizx has joined the channel [20:59] tisba has joined the channel [21:04] creationix: if only I was willing to relocate, there seems to be tons of work in NYC and CA [21:06] MattJ: ACTION was asked if he would move to CA, and said no :/ [21:06] MattJ: and I'm in the UK :) [21:07] MattJ: The last Javascript developer out of the UK, please window.close() [21:07] creationix: I still want to make my JavaScript ranch in the middle of nowhere [21:07] creationix: I'll host JSCamp and have tents, wireless, and four-wheelers [21:08] MattJ: Gather a bunch of JS coders, get some caravans and move from city to city [21:08] creationix: tour.js [21:08] binary42: MattJ, Berlin might be closer to you. [21:08] MattJ: Someone needs to get that TLD [21:09] MattJ: binary42: If I were to relocate permanently, Berlin is pretty much the same as CA I guess :) [21:09] mattly: i've already done my permanent relocation [21:10] binary42: MattJ, though it is in commuting distance. [21:10] binary42: mattly: IRC doesn't count. [21:11] MattJ: binary42: Driving directions to Berlin, Germany [21:11] MattJ: 828 mi – about 12 hours 59 mins [21:11] binary42: MattJ: I don't own a car. Does that mean I can't commute? [21:11] MattJ: So yeah, I'd make it for the next day by the time I got up :) [21:11] binary42: MattJ, If you like airports... [21:12] binary42: Of course, you'd be on vacation now. [21:12] MattJ: binary42: Walking: "7 days 9 hours" apparently [21:12] binary42: MattJ, Are you going to NoSQL EU? [21:13] binary42: lol [21:13] MattJ: Where's that? [21:13] binary42: London. [21:13] MattJ: Oooh [21:13] MattJ: Where's that? [21:13] darkf has joined the channel [21:13] binary42: Lots of cool folks there. Might be a lead if you want a job. ;-) [21:13] MattJ: Ok, I'll see, ta :) [21:13] binary42: I was going to swing by after JSConf but the flight situation made me change my mind. [21:14] binary42: JSConf is in Washington D.C. so ... yes. [21:14] MattJ: Indeed [21:14] binary42: One speaker and the photographer are stuck in Berlin.. :-( [21:14] MattJ: I'd travel more, but I'm on a limited budget (well, "budget" is one word for it) [21:15] binary42: (aka felixge and roidrage) [21:16] binary42: Yeah. I know what you mean. I try to keep travel at a high priority but I think 2010 will have few but longer trips. [21:17] binary42: MattJ: Good luck though. And all the rest in here too. I think there is a good chance that things will be on the up. [21:17] dnolen has joined the channel [21:17] MattJ: Thanks, hope so :) [21:18] tlrobinson_ has joined the channel [21:19] pkrumins: MattJ: any ideas about nodejs + xmpp? [21:20] MattJ: pkrumins: Sure, what's up? [21:21] joshbuddy has joined the channel [21:21] pkrumins: is there an xmpp implementation for nodejs? [21:21] pkrumins: seems not [21:22] halorgium: pkrumins: there are some browser-side xmpp impls [21:22] MattJ: http://xmppjs.prosody.im/ [21:22] MattJ: pkrumins: ^ [21:22] pkrumins: :) thanks [21:23] MattJ: I need to update it for the latest Node, was going to do that yesterday but other things got the better of me [21:23] halorgium: does it do non-component connections? [21:28] tiglionabbit has joined the channel [21:29] tiglionabbit: If you're sending data to a client over http, how do you detect if they close their connection? [21:31] creationix: I'm kinda liking the volcano background on howtonode.org [21:31] creationix: I may keep it [21:37] micheil has joined the channel [21:37] gf3 has joined the channel [21:37] dgathright has joined the channel [21:39] mjr_: tiglionabbit: you can listen for the "close" event on request.connection [21:45] javajunky has joined the channel [21:50] dgathright has joined the channel [21:50] pkrumins: MattJ: ok, I am now trying the example/echo.js, but it instantly quits: ['deprecation warning: process.mixin will be removed from node-core future releases.', 'New connection status: 1'] [21:50] pkrumins: are the two messages that get echoed [21:50] pkrumins: MattJ: as I understood you're the author of xmpp.js, right? [21:51] pkrumins: MattJ: using node 0.1.33 here. [21:51] dgathright has joined the channel [21:52] MattJ: pkrumins: I'll be right with you in a moment [21:53] pkrumins: alright [21:54] Azeroth-Working has joined the channel [21:57] jamesduncan has joined the channel [22:00] brapse has joined the channel [22:00] kixxauth has joined the channel [22:07] Aria has joined the channel [22:07] pkrumins: MattJ: oh I see, I didn't have xmpp server, I though xmpp.js was the server itself [22:08] dgathright_ has joined the channel [22:08] dobe has joined the channel [22:08] pkrumins: MattJ: getting Prosody now. [22:11] JimBastard_ has joined the channel [22:11] JimBastard_: nice im out side the boltbus waiting for binary and im getting bolt bus wifi [22:12] deanlandolt: JimBastard_: what the hell's a bot bus? [22:12] deanlandolt: bolt bus? [22:12] JimBastard_: its just a bus [22:12] JimBastard_: that runs from ny to dc [22:12] JimBastard_: that has free wifi [22:12] JimBastard_: im at the spot where they arrive [22:12] JimBastard_: so im outside the bus getting wifi [22:12] deanlandolt: that's fucking awesome [22:12] JimBastard_: also i started a conversation with the hottest girl i could find [22:13] JimBastard_: turns out shes from the town next to my hometown [22:13] deanlandolt: even better [22:13] JimBastard_: hiyoooo [22:13] KungFuHamster: of course, "hottest" is a relative term.. she has a cleft palate and one eye [22:14] KungFuHamster: not left or right... in the middle, like Leela [22:14] JimBastard_: try picking up girls on IRC, i hear its great [22:14] JimBastard_: she is waiting for her boyfriend though [22:14] JimBastard_: at least she said so [22:15] isaacs[away]: "waiting for her boyfriend" = "you're ugly" [22:15] isaacs[away]: JimBastard: ^ [22:15] isaacs[away]: sorry to be the one to break that little fact to ya, bro. [22:15] JimBastard_: isaacs [22:15] aho has joined the channel [22:15] isaacs[away]: they say that beauty is in the eye of the beholder, though. so maybe she has ugly eyes. [22:15] KungFuHamster: oh there she is [22:15] isaacs[away]: ;P [22:26] sztanphet has joined the channel [22:27] pkrumins: MattJ: now I have prosody running, but the port is different than the default in xmpp.js. It's 5269. [22:28] pkrumins: MattJ: so I changed the line that cerates echo.js example to var conn = new xmpp.Connection("localhost", 5269); [22:29] pkrumins: MattJ: now I am getting huge debug output: http://paste.pocoo.org/show/202738/ [22:31] pkrumins: MattJ: last-but-2nd line - "unsupported-stanza-type" [22:34] MattJ: pkrumins: Hey, sorry, ad-hoc RL meeting took my attention bit, over now :) [22:34] pkrumins: MattJ: np. happy to have you here now. :) [22:35] pkrumins: MattJ: so I set up prosody, but the echo.js example doesn't want to work. [22:35] MattJ: The default port (5437? 5347?) is correct, though Prosody may not be listening on that port by default in the version you have [22:35] MattJ: You need component_ports = { 5437 } in the Prosody config under Host "*" [22:35] pkrumins: yeah, it's listening on a different port [22:35] MattJ: 5269 is for relaying messages to other XMPP servers [22:35] pkrumins: so i just changed xmpp.Connection("localhost", 5269); in echo.js [22:35] pkrumins: oh [22:36] pkrumins: then it may be not listening at all! [22:36] pkrumins: becuse that's the only port (5269) that is open [22:36] MattJ: Mmm, 5222 should be open too by default [22:38] pkrumins: weird, it's not opening it. [22:38] pkrumins: adding that component_ports = { 5347 } [22:38] MattJ: Hmm, want to hop into the Prosody chatroom? I guess we could get a bit off-topic here :) [22:39] MattJ: http://prosody.im/discuss [22:42] maushu has joined the channel [22:48] tlrobinson_ has joined the channel [22:51] jan____ has joined the channel [22:59] jan____ has joined the channel [22:59] jan____ has joined the channel [22:59] Gruni has joined the channel [23:05] Aria has joined the channel [23:12] xla has joined the channel [23:15] isaacs has joined the channel [23:16] dnolen has joined the channel [23:28] mitkok has joined the channel [23:31] tiglionabbit_ has joined the channel [23:33] TheEnd2012 has joined the channel [23:33] derbumi_ has joined the channel [23:55] creationix has joined the channel [23:57] mitkok has joined the channel