[00:00] ryan_gahl: i know, which was partly what i disliked about your stance
[00:00] ryan_gahl: not that theory can't be a solid thing to stand on, just that i also like to see it backed by evidence
[00:01] elliottcable: So what’s the accepted wisdom re: Error objects? Should I just be calling `new Error("A static message")` every time, inline, that I encounter an error?
[00:01] elliottcable: I feel that]s a bit fugly… you can’t really compare to it, or anything…
[00:01] elliottcable: but creating it elsewhere, and simply referring to it, creates a crappy backtrace
[00:01] elliottcable: :x
[00:01] elliottcable: I suppose I could create Error “subclasses” for every type of error I’m likely to occur in my library >,>
[00:01] bradleymeck1: elliottcable if its needing a stacktrace use Error, else manage em however, 1st arg of callbacks etc
[00:02] ryan_gahl: i do 'new Error("message")'
[00:02] _announcer: Twitter: "@chrisjpowers Actually I know it's useful. That was a test tweet to find out why our IRC bot's tweets weren't appearing in #node.js" -- Will St. Clair. http://twitter.com/wxwill/status/19455330785
[00:02] elliottcable: bradleymeck1 3» I always use the first argument of callbacks, yeah
[00:02] elliottcable: bradleymeck1 3» but I’m talking about constructing the error object itself
[00:03] bradleymeck1: i wouldnt extend Error, just use normal Error
[00:03] elliottcable: ryan_gahl 3» yeah, the problem I’m having with that, is that elsewhere up the callback chain, somebody can’t go `if (err !== certainKindOfError) throw err` or whatever
[00:03] ryan_gahl: ah well, yeah, then subclass
[00:04] elliottcable: subclassing requires way too much extra code… but then again, it *does* get me nice stacktraces *and* the ability to go `if (CertainKindOfError.isPrototypeOf(err))` further up the chain…
[00:04] elliottcable: ACTION is torn
[00:04] ryan_gahl: what do you mean way too much extra code
[00:04] ryan_gahl: sys.inherits
[00:05] ryan_gahl: but do you really need 100 different error classes
[00:05] mscdex: node.js rules!
[00:06] isaacs: ryan_gahl: yeah, so, something like this: http://gist.github.com/489119
[00:06] ryan_gahl: then having to .require("/my/error/classdefs/") anywhere you want to explicitly catch them... yeah i can see it being a pain
[00:06] elliottcable: yeah ryan_gahl
[00:06] elliottcable: still torn
[00:07] isaacs: i still maintain that EventEmitter should not be modified in this way. it's the hottest code in nodejs
[00:07] elliottcable: and yes, way too much extra code; not all of this code is Node.js specific, so sys.inherits isn’t an option
[00:07] ryan_gahl: and this makes it hotter
[00:07] elliottcable: have to implement my own “inheritor” function
[00:07] ryan_gahl: did you read my usage examples at all?
[00:07] elliottcable: isaacs 3» hottest, meaning…
[00:07] ryan_gahl: http://github.com/ryedin/node-core-enhancements/tree/master/events/
[00:07] isaacs: elliottcable: most called
[00:08] ryan_gahl: isaacs: i've had my own EventPublisher API with a lot of this stuff well before node came along (albeit not on the server)... and these features enable some nice patterns
[00:08] naveen has joined the channel
[00:08] isaacs: ryan_gahl: they weren't running http servers. that's a very big difference
[00:09] isaacs: ryan_gahl: i've written a few event systems in js, too.
[00:09] ryan_gahl: on your gist: yeah i guess if I AOP the once then there really is only 1 customization point in .emit and I can AOP that too
[00:09] isaacs: AOP gets slow fast, though
[00:09] isaacs: i mean, it doesn't take much AOP to make something noticeably slower, and even a .1% slowdown in EventEmitter is probably relevant.
[00:09] isaacs: it'd be better to subclass it
[00:11] ryan_gahl: in your examples, nothing gets slowed down
[00:12] isaacs: ryan_gahl: wanna bet?
[00:12] isaacs: ryan_gahl: it adds a function call to emit.
[00:12] isaacs: i mean, EventEmitter is a part of node where we probably *should* be worried about retarded micro-optimizations like that.
[00:13] ryan_gahl: meh
[00:13] richcollins has joined the channel
[00:13] ryan_gahl: one function call, ok so then we'd be back to "it's better to integrate it directly"
[00:13] ryan_gahl: because I WANT to have enhanced power like this, even if you don't
[00:13] isaacs: ryan_gahl: but for the cases where you want events to be suppressible, you probably don't care about that.
[00:14] isaacs: the thing is, EE needs to work for your RTS game (where suppression/re-emission is desireable) and a high-load HTTP load-balancing proxy that just needs to be blazingly fast.
[00:14] ryan_gahl: it's not as though i'm not aware of that
[00:15] ryan_gahl: it's easy to not use it where it's not needed
[00:15] isaacs: and node is more concerned with the second class of problem
[00:15] c4milo has joined the channel
[00:15] isaacs: it aims to make those sorts of things as trivial and easy as possible
[00:15] ryan_gahl: sure, i get that, but i'm concerned with building systems
[00:16] ryan_gahl: so like, it's not in core, cool, but that won't stop me from making my own node distro then, so to speak
[00:16] _announcer: Twitter: "Oh, there's only 20 BDD/TDD frameworks available for node.js, but I am sure we'll hear the "I can't test javascript!" excuse ;)" -- jamescarr. http://twitter.com/jamescarr/status/19456076624
[00:17] isaacs: sure
[00:17] isaacs: ACTION re-gisting.... brb
[00:19] isaacs: ryan_gahl: how about this? http://gist.github.com/489119
[00:19] ryan_gahl: i have a fully baked FSM engine as well, which relies heavily on some added robustness to the event emitter API
[00:19] wsc has left the channel
[00:20] ryan_gahl: sure, except that doesn't decorate existing emitters and give me all the power i want
[00:20] isaacs: (just updated gist with a "makeSuppressible" fn)
[00:21] ryan_gahl: i think it's an option to add
[00:21] isaacs: added license, hehe
[00:24] elliottcable: This code is so sexy.
[00:24] ryan_gahl: i mean, i can do it that way, yes, i get the approach... but i'm not sure if you're suggesting this because then more people would use it or if then it might be looked at more favorably for inclusion in core as added features, or because you're still trying to save me from myself
[00:24] elliottcable: It took forever, but with my Function subclassing, everything I return is a function
[00:25] elliottcable: so now, instead of having to have a callback *argument*, the *return value* is a function you call with the callback
[00:25] elliottcable: it’s a bit like promises, without all the syntax :D
[00:25] elliottcable: and a bit like (fab) too
[00:25] elliottcable: but without the ambiguity
[00:25] isaacs: ryan_gahl: oh, i'm quite sure there's no way to save you from yourself. I'm trying to save ME from yourself ;P
[00:25] satori_: elliottcable: got a gist example?
[00:25] ryan_gahl: lol
[00:26] rauchg_: is the announcer bot code somewherE ?
[00:26] elliottcable: satori_ 3» don’t need one: `from('something', 'somewhere/somethingElse')(function(something, somethingElse){ … })`
[00:26] isaacs: no, seriously, i mean, i totally get that there are use cases for this, but i still feel strongly that i wouldn't want it hanging around in every place in node, especially in Streams.
[00:26] elliottcable: satori_ 3» you can also utilize modifiers in between creating the `Acquisition` and calling it, such as:
[00:27] elliottcable: `from ('~/Desktop/foo.js') .export ({ first:first }) .import ({ "second":"second" }) (function(foo){ … })`
[00:27] elliottcable: this is, by far, the sexiest JS API I’ve created. I’m very happy with it.
[00:28] satori_: :)
[00:28] isaacs: ryan_gahl: subclassing lets you do this in a clean way, and with a "just mutate this one emitter" function, you can even use it generically without messing up anyone else, at the cost of having to specifically declare where you're using it
[00:29] RyanG has joined the channel
[00:30] jamescarr has joined the channel
[00:31] jamescarr: anyone else working on payment modules?
[00:31] isaacs: RyanG: sorry, there are already too many ryans here.
[00:31] isaacs: RyanG: you're going to have to pick a new handle.
[00:31] jamescarr: RyanG, yeah, just change your handle to ry
[00:32] isaacs: hahah
[00:32] charlenopires has joined the channel
[00:32] jamescarr: that should do the trick to help distinguish yourself
[00:32] ryan_gahl: except that having to decorate each instance removes a level of clean separation of concerns where that is a fundamental requirement of the system design
[00:32] ryan_gahl: (back to my needs vs. yours sort of)
[00:33] isaacs: ryan_gahl: i don't agree, necessarily. i mean, at some point, you say "I want to suppress this thing!" and either that's already supported (because the framework/platform/etc says "you can suppress stuff") or it's not, but you wanna do it anyway (so you mutate the thing)
[00:33] isaacs: it's an interface, right?
[00:33] isaacs: same reason why we use Streams instead of adding a write() and end() method to EventEmitter
[00:34] fermion has joined the channel
[00:34] ryan_gahl: except what if the instance was mutated already and then AOPed with (something else), then I try to decorate it and squash whatever else was added
[00:34] isaacs: ryan_gahl: i fixed that bug (refresh)
[00:34] isaacs: if (e instanceof SE) return
[00:35] ryan_gahl: i.e. i don't know what the hell i'm going to want to do later but i damn well want to design the system to allow mutation as time goes on
[00:35] isaacs: the AOP approach is agnostic about what else has already been mutates.
[00:35] isaacs: *mutated
[00:35] ryan_gahl: e.__proto__ = se;
[00:35] ryan_gahl: bam
[00:35] isaacs: you just say "the new plan is to do this thing, and then do whatever the old plan was"
[00:36] ryan_gahl: clobbered anything else that might be customized on the instance
[00:36] isaacs: ryan_gahl: that's just setting the prototype, though
[00:36] isaacs: no, you don't lose instance customizations that way
[00:36] ryan_gahl: you do... you're overwriting the prototype
[00:36] isaacs: well, you're reclassing it, yeah
[00:36] ryan_gahl: overwriting it
[00:36] isaacs: but that's like... the point.
[00:36] isaacs: you don't lose what's on the instance.
[00:37] isaacs: var f = {foo:1}; var b = { bar:2 }; b.__proto__ = f; console.log(b.bar) // 2
[00:38] jamescarr: I always use jquery's $.extend on the client side
[00:38] jamescarr: that way it doesn't wipe out the existing prototype
[00:38] isaacs: jamescarr: but it does wipe out instance props
[00:38] ryan_gahl: var f = new foo(); var oldMethod = f.something; f.something = function() { oldMethod(); } f.__proto__ = {something: function() { alert("fucked"); }
[00:39] isaacs: but anyway, ryan_gahl at this point, we're just quibbling over minor details and edge cases.
[00:39] jamescarr: proper fucked?
[00:39] isaacs: well, actually, not fucked.
[00:39] isaacs: not alert("fucked") that is
[00:39] isaacs: becasue f already has an instance method, so never sees the proto method
[00:39] isaacs: in this case, if e already HAS a "suppress" method, then i guess it doesn't need to be made suppressible, now does it?
[00:40] jonathantaylor has joined the channel
[00:40] [[zz]] has joined the channel
[00:41] isaacs: you could easily handle that by just copying the se methods to the object directly, though
[00:41] isaacs: i mean, any choice has SOME case it won't handle, right? choose your bugs.
[00:42] ryan_gahl: but i like my cats skinned THIS way...
[00:42] ryan_gahl: :)
[00:42] isaacs: hehe
[00:42] _announcer: Twitter: "http://bit.ly/bQUTgk It feels good to ship code. (Node + Sizzle + JSDOM + XUI) = Apricot #nodejs #xui" -- Rob Ellis. http://twitter.com/rob_ellis/status/19457445372
[00:42] isaacs: as long as you don't skin my cats, we're cool
[00:42] isaacs: modifying the guts of EventEmitter.prototype is kind of rude.
[00:42] ryan_gahl: oh no, they're next
[00:42] jamescarr: frown
[00:42] sh1mmer has joined the channel
[00:42] ryan_gahl: wow, rude huh
[00:43] isaacs: yeah
[00:43] jamescarr: node-xml2js
[00:43] ryan_gahl: trying to add some robustness, but trying to be rude
[00:43] ryan_gahl: not*
[00:43] ryan_gahl: meh
[00:43] isaacs: hehe
[00:43] jamescarr: bleh... why do people include node and js in a module name?
[00:43] isaacs: it's like you said what i was thinking!! :P
[00:43] ryan_gahl: lol
[00:43] maqr: jamescarr: i don't know, it looked like the thing to do
[00:43] jamescarr: maqr, :)
[00:44] jamescarr: well, I did name my payflow pro module node-payflow-pro originally ;)
[00:44] maqr: jamescarr: all the cool kids were doing it, so i just tacked node- on the front
[00:44] c4milo: jamescarr: consistency
[00:44] ryan_gahl: would you prefer rails-?
[00:45] c4milo: nop
[00:45] c4milo: but this is the node way :)
[00:45] c4milo: hahaha
[00:45] isaacs: jamescarr: it's kind of useful sometimes. like node-postgres. if you just named the repo "postgres" then it doesn't make sense. but the package.json should be just { "name" : "postgres" }
[00:45] c4milo: whatever you can name your project like you want
[00:45] ryan_gahl: php-rails-node-web-workers-for-the-internet-communications
[00:45] isaacs: c4milo: yes, it is an anarchy
[00:45] mitkok has joined the channel
[00:46] c4milo: isaacs: that's the opensource world :)
[00:46] c4milo: isaacs: anarchy
[00:46] isaacs: ryan_gahl: tack "-greatest-justice-happy-fun-times" on the end of that, and you got yourself a watcher.
[00:46] ryan_gahl: lol
[00:47] confoocious has joined the channel
[00:48] kjeldahl_ has joined the channel
[00:48] confoocious has joined the channel
[00:48] mscdex: node-way!
[00:48] mscdex: :->
[00:49] mscdex: whoa
[00:49] bradleymeck1: ewww standards in coding, ewwwwwwwwwwwww
[00:50] c4milo: ACTION reading the sad email of Gahl
[00:52] fizx has joined the channel
[00:53] creationix has joined the channel
[00:53] jamescarr: anywho, going to discover the madness found within using x.509 certs in nodejs tonight
[00:54] jamescarr: working on it now
[00:54] jamescarr: hopefully it's a piece of cake
[00:56] c4milo: Who in Boston wants to give a tour to a poor tourist chatting in #node.js and jailed in his home ? :'(
[00:57] c4milo: oh I mean in a friend's home
[00:57] jamescarr: maqr, btw, thanks for the xml2js library
[00:58] jamescarr: it is EXACTLY what I was looking for
[00:58] maqr: jamescarr: awesome :)
[00:58] c4milo: nobody ? :( I'll continue coding in node-libvirt then
[00:58] jamescarr: sorry man, kind of far away from Boston
[00:58] mscdex: man, apple updates are huge... 1.26gb?
[00:58] c4milo: anybody knows a xml2json js project out there ?
[00:59] maqr: c4milo: apparently jamescarr found my little library useful, so maybe check out node-xml2js
[00:59] c4milo: mscdex: they rewrite all their so :P
[00:59] creationix has joined the channel
[01:00] c4milo: maqr: thanks I'll check it out
[01:00] mscdex: i don't get it, i mean some of my ubuntu machines that get really outdated never need updates totalling anywhere near that size
[01:00] mscdex: craziness
[01:00] maqr: mscdex: every xcode reinstall is like 2gb
[01:00] maqr: even for minor versions
[01:01] amadeus_ has joined the channel
[01:01] mscdex: maqr: i'm not a mac user, so i have no idea what xcode is
[01:01] ryan_gahl: c4milo, sad email?
[01:01] maqr: mscdex: the iphone sdk
[01:01] mscdex: ah
[01:01] samdk has joined the channel
[01:01] maqr: well, also the mac os sdk
[01:01] maqr: it does a lot of things
[01:02] mscdex: my boss sent me a new mac mini just for web debugging purposes
[01:02] mscdex: lol
[01:02] mscdex: so i have to deal with this thing
[01:02] maqr: mscdex: fiddler or charles are all anyone needs
[01:02] amadeus_: hey guys, quick node question here. attempting to install: http://github.com/waveto/node-crypto and when I run node-waf configure, all is good except it says Checking for node path: not found
[01:02] mscdex: maqr: these are browser/system/audio issues
[01:02] maqr: mscdex: weird
[01:02] c4milo: ryan_gahl: the patches rejected I cried :P
[01:02] spot__ has joined the channel
[01:02] mscdex: and safari 5 on windows doesn't reproduce them
[01:02] mscdex: so yeah... :-\
[01:03] ryan_gahl: lol
[01:03] maqr: mscdex: safari5 has major issues on osx
[01:03] maqr: mscdex: i've had problems with it myself, mostly i just ignore them
[01:03] mscdex: we have like 1 mac user in our company, and she's the one that ever has issues
[01:03] ryan_gahl: the patch cried more than me
[01:03] ryan_gahl: it tried so hard
[01:04] _announcer: Twitter: "Going from a single VM environment (#nodejs) to many VM (browsers); is such a weight of hassle! #js #dev" -- Spot. http://twitter.com/spotnyk/status/19458646498
[01:04] c4milo: ryan_gahl: haha, cruel world opensource
[01:04] ryan_gahl: ACTION will have to wait a while to get onto the contrib list
[01:09] pgriess has joined the channel
[01:11] amadeus_ has left the channel
[01:14] samdk has joined the channel
[01:18] hassox has joined the channel
[01:18] derferman has joined the channel
[01:19] damienkatz has joined the channel
[01:19] damienkatz has joined the channel
[01:20] hellp has joined the channel
[01:24] ryan_gahl: isaacs: don't hold any punches mr. badass
[01:24] isaacs: heheh
[01:24] ryan_gahl: that last email was epic
[01:25] ryan_gahl: 3. my list has one more thing it than yours
[01:25] ryan_gahl: in*
[01:25] isaacs: i'm just tired of having the same conversation over and over again. it's not that hard to come up with a best codign style once you establish the priorities
[01:25] sh1mmer: haha
[01:25] sh1mmer: epic email
[01:26] ryan_gahl: dude, don't think for a second this won't come up again in 3 weeks... I'm guilty of course, for spawning one a couple months ago
[01:26] ryan_gahl: it's an accident to even mention the subject in passing
[01:26] isaacs: yeah
[01:26] isaacs: in fact, the style i use in npm is to some degree *intentionally* strange.
[01:26] sh1mmer: does anyone else object to jslint output?
[01:26] isaacs: i mean, it's also designed to make it easy to scan.
[01:27] sh1mmer: because that's probably the easiest way to do it
[01:27] isaacs: sh1mmer: jslint and i are enemies.
[01:27] ryan_gahl: 3 things to never bring up in public conversation: 1. religion, 2. politics, 3. coding styles
[01:27] sh1mmer: isaacs: hehe
[01:27] sh1mmer: isaacs: did Douglas hurt your feelings?
[01:27] isaacs: ryan_gahl: the third item is already covered by the first two
[01:27] samdk: ryan_gahl: 1 and 3 are the same, I think
[01:27] isaacs: sh1mmer: nah, DC's the shiznit.
[01:27] sh1mmer: in fairness I don't agree with all of doug's choices but I have arguments either way for most of those points
[01:27] ryan_gahl: true, but this is a suboptimal algorithm
[01:27] isaacs: sh1mmer: but jslint encourages Java style, which i abhor
[01:28] sh1mmer: isaacs: I strongly like coding standards
[01:28] isaacs: sh1mmer: me too
[01:28] sh1mmer: isaacs: I also strongly like defensive coding
[01:28] ryan_gahl: sh1mmer: you strongly like YOUR coding standards
[01:28] sh1mmer: ryan_gahl: no
[01:28] ryan_gahl: :P
[01:28] isaacs: sh1mmer: they should be set by the package owner project BDFL whatever, and that's that.
[01:28] sh1mmer: ryan_gahl: I strongly like some
[01:28] isaacs: end of discussion.
[01:28] ryan_gahl: EOD
[01:28] mscdex:
[01:28] mscdex: :P
[01:28] sh1mmer: ryan_gahl: I prefer mine, but I mostly prefer the same ones as everyone else on the code base
[01:28] sh1mmer: isaacs: I agree too.
[01:29] isaacs: sh1mmer: if you have actual reason-based criticism of http://github.com/isaacs/npm/blob/master/doc/coding-style.md#readme, i'd like to hear it
[01:29] isaacs: sh1mmer: just email me directly. it's not a good subject for public forums
[01:29] sh1mmer: I'm not committing to NPM so I don't give a flying rat's arse
[01:29] sh1mmer: but it is funny
[01:29] isaacs: sh1mmer: there are reasons behind each choice there, but that doc is the "what" not the "why"
[01:29] isaacs: sh1mmer: sure.
[01:30] isaacs: sh1mmer: but you've been around the block a time or two
[01:30] sh1mmer: :)
[01:30] mitkok has joined the channel
[01:30] sh1mmer: isaacs: I had to put up with Norm
[01:30] isaacs: haha
[01:30] isaacs: now THAT dude is INTO STANDARDS
[01:30] isaacs: standards are IMPORTANT!!
[01:30] sh1mmer: you didn't use enough bangs.
[01:30] isaacs: hahah
[01:31] isaacs: like, i dunno... but, i mean, seriously, is there ANY difference between abbr, acronym, and ?
[01:33] sh1mmer: yes
[01:33] sh1mmer: but let's not get into that
[01:33] isaacs: haha
[01:33] sh1mmer: The reason Norm loved standards so much was he liked Perl and thought you could write good Perl.
[01:33] sh1mmer: Despite what HN thinks I know better.
[01:34] isaacs: hahaha
[01:34] sh1mmer: You have to fight Perl with nun-chucks and shit in order to make it consistent across a team, let alone a whole open source project.
[01:34] isaacs: s/team/file/
[01:34] isaacs: s/file/function/
[01:34] sh1mmer: I'm not into fighting a language just to ensure I can read my own code a week later
[01:36] tyfighter has joined the channel
[01:40] jesusabdullah: Norm?
[01:40] jesusabdullah: I'm imagining, like, Cheers
[01:40] jesusabdullah: Y'know, THOSE guys being programmers
[01:41] sh1mmer: Norm was a senior engineer at Yahoo! in London
[01:41] sh1mmer: Which was the office I worked in a couple of years ago
[01:41] jesusabdullah: Ah!
[01:44] pdelgallego has joined the channel
[01:45] isaacs: he was also a very prominent voice on the devel-frontend list, which i participated in quite a bit.
[01:45] also has joined the channel
[01:45] sh1mmer: That's the internal Yahoo! list for frontend web stuff
[01:46] bourne: anyone else have problems with downloading large JPEG images using createReadStream?
[01:46] bourne: my images get cut in half with corruption at the bottom
[01:46] micheil: howdy' chaps & ladies
[01:47] JimBastard_ has joined the channel
[01:47] JimBastard_: hey guys
[01:48] JimBastard_: im hanging out with this french student we met at the node.js meetup here
[01:48] JimBastard_: he has this socket.io app, check it out
[01:48] JimBastard_: he has this socket.io app, check it out
[01:48] tyfighter has joined the channel
[01:48] Tim_Smart has joined the channel
[01:48] JimBastard_: http://www.i-tchat.com/tchat.html
[01:48] JimBastard_: im on the live video now
[01:49] JimBastard_: anyone alive?
[01:49] jesusabdullah: umm
[01:50] jesusabdullah: Yeah, just slow.
[01:50] JimBastard_: its cool though man
[01:50] SubStack: I click it.
[01:50] JimBastard_: there is a mapping engine in there
[01:50] bourne: busy working on my code
[01:50] jesusabdullah: SubStack: I noticed that the closure compiler checks types
[01:51] amuck has joined the channel
[01:51] lelosh has joined the channel
[01:51] sh1mmer: JimBastard_: wait is that webcam going via node?
[01:51] sh1mmer: I see your sick ass
[01:51] sh1mmer: fucking around with a lighter or something
[01:52] JimBastard_: red5 backend
[01:52] JimBastard_: for the flash
[01:52] JimBastard_: but everything else is socket.io
[01:52] JimBastard_: + some his other comet servers
[01:52] JimBastard_: this kid is sick dude
[01:52] JimBastard_: he barely speaks english but his code kickass
[01:53] jesusabdullah: Yeah, this is pretty rad
[01:53] sh1mmer: Is there suposed to be some avatar thing?
[01:54] sh1mmer: it totally isn't showing up in Chrome
[01:54] JimBastard_: yeah sh1mmer
[01:55] JimBastard_: its a bit rough around the edges
[01:55] bourne: what is the cpu/memory like on the box he is running it on
[01:55] jesusabdullah: Worked in chrome for me :(
[01:55] sh1mmer: works in safari
[01:55] sh1mmer: I'm using dev channel
[01:56] satori_: chrome dev channel works for me on windows
[01:57] kjeldahl has joined the channel
[01:58] mau2 has joined the channel
[01:58] sh1mmer: oh well, windows
[02:02] micheil: sh1mmer: yeah, I totally forget what the name of that recipe was, but it's something italian / spanish / ?
[02:03] sh1mmer: hehe
[02:03] micheil: maybe something here: http://en.wikibooks.org/wiki/Cookbook:Tomato
[02:04] sh1mmer: are you thinking of spanish rice or a veggie piella?
[02:07] mscdex: spanish rice is awesome
[02:07] satori_: spanish food is awesome. tapas ftw
[02:07] micheil: not spanish rice, something else
[02:08] micheil: it was like pretty much just tomatoes finely chopped, purple onion, garlic, etc, and it made like a soup thing
[02:09] micheil: ACTION actually just roasted a few tomatoes
[02:09] micheil: although, I should not I had them with bacon, mushrooms & toast.
[02:09] micheil: *note
[02:09] micheil: seriously. watching that preso made me feel like bacon >_>
[02:15] mscdex: you felt crispy?
[02:15] mscdex: :P
[02:16] micheil: heh heh
[02:16] micheil: sh1mmer: that was it! http://en.wikipedia.org/wiki/Gazpacho
[02:17] sh1mmer: heh
[02:17] micheil: (creds go to nicole for that one.)
[02:17] damienkatz has joined the channel
[02:17] damienkatz has joined the channel
[02:17] sh1mmer: awesome, but I think I'll avoid the cold soup
[02:17] sh1mmer: at least today
[02:17] pgriess1 has joined the channel
[02:17] micheil: aww.. :(
[02:17] sh1mmer: It's good stuff
[02:17] mscdex: yay nodebuilder is still up and running
[02:17] mscdex: no crashes
[02:17] micheil: seriously, though, cold soup, meat pie and a few other things are awesome
[02:17] sh1mmer: I have so many tomatoes I might well make it another day
[02:17] micheil: mscdex: nodebuilder?
[02:18] mscdex: micheil: a little node program that checks for new commits and new tags, downloads and compiles them, and packages them
[02:18] Ned_: isaacs_home: ?
[02:18] micheil: cool
[02:18] mscdex: for both 32 and 64-bit linux
[02:19] mscdex: .deb only for now
[02:19] mscdex: mscdex.net/node
[02:21] _announcer: Twitter: "Stepping through #haml rendering in #express for #nodejs after re-installing with #npm not #kiwi which seems to be #deprecated. #omfg" -- David Taylor. http://twitter.com/zensatellite/status/19463138912
[02:22] zensatellite: Hmm. I wasn't expecting that growl alert. Back to thrashing about!
[02:24] micheil: zensatellite: you see, _announcer knows where you live...
[02:24] mpoz2 has joined the channel
[02:25] zensatellite: ... i feel naked before a great eye of flame
[02:25] micheil: ;P
[02:25] AAA_awright: Why is node.js extracting python code?
[02:26] satori_: huh?
[02:27] AAA_awright: Can I delete the python or is that necessary for something?
[02:28] satori_: node.js using waf (python based build system). Node does not include any python once built
[02:28] satori_: *uses
[02:29] holydevil has joined the channel
[02:30] AAA_awright: ...is that grounds to file a bug report?
[02:30] softdrink has joined the channel
[02:30] satori_: I'm not following you.
[02:31] sh1mmer: can we rebuild waf?
[02:31] sh1mmer: :D
[02:32] micheil: man.. I would not want to touch waf.
[02:32] micheil: have you guys tried reading the source code?
[02:33] satori_: nope. dont intend to.
[02:33] satori_: :P
[02:35] sh1mmer: well it would be cool to have a 100% stack
[02:35] sh1mmer: npm was one of my best examples in the talk
[02:35] micheil: sh1mmer: what? javascript compiling javascript?
[02:35] satori_: self hosting node?
[02:35] satori_: heh
[02:36] sh1mmer: dougnet
[02:36] micheil: that sounds like a crockford.
[02:40] jamescarr has joined the channel
[02:40] BrianTheCoder has joined the channel
[02:40] Tim_Smart has joined the channel
[02:42] bourne: ive been having a problem with streaming large images using createReadStream
[02:43] bourne: and then addListener for the data chunks
[02:43] _announcer: Twitter: "http://tinyurl.com/24y472u Content with Style - Long polling example with node.js" -- desk_stage. http://twitter.com/desk_stage/status/19464428602
[02:43] micheil: bourne: not sure sorry
[02:43] bourne: the images keep getting cut in half, with corruption at the bottom, any idea?
[02:43] micheil: bourne: maybe use two streams, one to a writeFileStream and one the network http stream
[02:43] micheil: or, is this something else?
[02:43] micheil: I can't say much without code
[02:44] bourne: 1 second =)
[02:45] bourne: posted it here: http://pastebin.com/26eL4DmM
[02:47] _announcer: Twitter: "ok, node.js time and getting the javascript bible out of the shelf" -- Dani Berg. http://twitter.com/danibberg/status/19464701252
[02:51] mjr_ has joined the channel
[02:52] _announcer: Twitter: "Episode Record 0.3.0 - Websockets (Freenode # thechangelog) Sat, July 31, 2010, 5:00 pm CST http://planca.st/5TH / cc # nodejs" [es] -- Micheil Smith. http://twitter.com/miksago/status/19464990376
[02:54] _announcer: Twitter: "So hard to read #nodejs docs because light text on dark background sucks." -- Jamie Orchard-Hays. http://twitter.com/jamieorc/status/19465143654
[02:58] damienkatz has joined the channel
[03:00] kjeldahl_ has joined the channel
[03:01] [[zz]] has joined the channel
[03:01] kriszyp_ has joined the channel
[03:05] kjeldahl has joined the channel
[03:07] ceej_ has joined the channel
[03:09] damienkatz has joined the channel
[03:09] ceej has joined the channel
[03:11] quirkey has joined the channel
[03:13] isaacs has joined the channel
[03:13] stepheneb has joined the channel
[03:15] tmpvar has joined the channel
[03:18] meder has joined the channel
[03:20] pnewhook has joined the channel
[03:23] sechrist has joined the channel
[03:24] AAA_awright: Is there any easy way of listening on port 80 or am I missing something?
[03:24] AAA_awright: And safe way, it goes without saying
[03:25] sh1mmer: listening for what?
[03:26] jamescarr: are there any examples of setting up an http client with a pem cert?
[03:27] AAA_awright: sh1mmer: Listening for TCP connections, HTTP actually, this is port 80 after all
[03:28] sh1mmer: AAA_awright: that's the 101 example on http://nodejs.org
[03:28] sh1mmer: It's right on the front page
[03:29] AAA_awright: It doesn't have permissions to, usually ports <1024 need root
[03:30] sh1mmer: run it as root
[03:30] sh1mmer: or make it a service
[03:30] AAA_awright: I guess that's what setuid is for, but that seems hackish to do with this type of framework
[03:30] sh1mmer: jamescarr: http://www.silassewell.com/blog/2010/06/03/node-js-https-ssl-server-example/
[03:31] jamescarr: thanks
[03:31] sh1mmer: jamescarr: you need to make sure that when you compiled node you had the openssl libs in your path
[03:31] jamescarr: I did
[03:31] sh1mmer: :)
[03:31] jamescarr: just at a loss on how to use the api ;)
[03:31] sh1mmer: AAA_awright: http://kevin.vanzonneveld.net/techblog/article/run_nodejs_as_a_service_on_ubuntu_karmic/
[03:31] jamescarr: well, I get this error when I try to create the creds:
[03:32] sh1mmer: AAA_awright: I don't know how you normally run servers, but I run them as services, myself
[03:32] jamescarr: if (cred.key) c.context.setKey(cred.key);
[03:32] jamescarr: ^
[03:32] jamescarr: TypeError: Bad parameter
[03:32] jamescarr: thats what I get when calling crypto.createCredentials({key:key, cert:cert})
[03:32] jamescarr: I did a sys.puts of both the key and the cert... they're correct :(
[03:33] AAA_awright: Hm, I guess so, thanks
[03:33] donspaulding has joined the channel
[03:33] sh1mmer: jamescarr: maybe you need to add the CAs
[03:33] sh1mmer: oh wait, it has a default list
[03:33] jamescarr: yeah!
[03:34] sh1mmer: got any trailing spaces
[03:34] sh1mmer: I don't know how robust it is
[03:35] jamescarr: goddamit
[03:35] jamescarr: there's a newline at the end apparently, but vim says there isn't
[03:35] jamescarr: does ds.readFile add a trailing newline?
[03:35] sh1mmer: heh
[03:35] jamescarr: fs.readFile I mean
[03:35] sh1mmer: I hope now
[03:35] sh1mmer: not
[03:37] fizx has joined the channel
[03:37] jamescarr: i think it does!
[03:37] sh1mmer: jamescarr: if you strip it, does it work ok?
[03:37] jamescarr: let me see
[03:39] jamescarr: yes
[03:39] jamescarr: damn
[03:39] jamescarr: thats annoying!
[03:39] jamescarr: it tacks a \n at the end
[03:40] sh1mmer: file a bug
[03:40] sh1mmer: unless it's in the docs
[03:40] jamescarr: could someone else verify it? I feel silly reporting bugs and get the "it only happens to you" response :)
[03:41] sh1mmer: let me check
[03:41] sh1mmer: ACTION happy to file it
[03:42] jamescarr: nah I can, just like to verify I'm not the only one getting it
[03:42] jamescarr: :)
[03:43] sh1mmer: jamescarr: you are right
[03:43] sh1mmer: that's annoying
[03:44] jamescarr: where's the bug tracker for node?
[03:45] sh1mmer: github
[03:45] jamescarr: ah found it
[03:50] jamescarr: what events does http.Client have?
[03:50] jamescarr: I cant seem to find them in the docs :(
[03:51] JimBastard_: lol so i might be making a couchdb rap video lolwut
[03:55] bpot has joined the channel
[03:56] bourne: jamescarr: wouldn't you just need the request / response events?
[03:57] jamescarr: there's another I think for verifying the peer's certificate
[03:58] bourne: sometimes I cant find stuff in the docs, so i just end up reading the code in the modules
[03:58] jamescarr: I'll look at the source ;)
[03:58] bourne: its sometimes faster =)
[03:59] mjr_: Yeah, it is hard to understand the docs on http server / client if you are coming to node for th efirst time, and double so if you are also trying to do https.
[03:59] bourne: i miss having a 'javadoc', its like a source code wiki
[03:59] mjr_: We'll get better docs soon.
[03:59] bourne: mjr: excellent! =)
[03:59] mjr_: Until then, you might find some good answers by looking at the tests in the test directory.
[04:01] jamescarr: bourne, I really like scaladoc...
[04:02] jamescarr: their newest scaladoc site is pretty slick
[04:02] pgriess has joined the channel
[04:02] micheil: jamescarr: link?
[04:02] _announcer: Twitter: "node.js're nice, but javascript nested functions and nerves. back to erlang." [pt] -- gleicon. http://twitter.com/gleicon/status/19469340331
[04:03] micheil: mjr_: would it be an idea to start a documentation project?
[04:03] micheil: mjr_: sort of a node.js bible/book, if you will.
[04:03] mjr_: We've talked about it a few times.
[04:03] jamescarr: http://www.scala-lang.org/docu/files/api/index.html
[04:03] isaacs: micheil, mjr_ isn't that what "man node" is?
[04:03] isaacs: or http://nodejs.org/api.html
[04:04] micheil: isaacs: it's giving just an api.
[04:04] micheil: isaacs: I'm meaning something with a few examples and stuff
[04:04] mjr_: Such an undertaking is pretty large if you want it to turn into a living thing.
[04:04] isaacs: i see
[04:04] isaacs: kinda like the Couchdb book
[04:04] mjr_: I've been working on adding examples for a lot of the stuff in there, but we've got a long way to go.
[04:04] bourne: jamescarr: wow, you're right. this doc is incredible
[04:05] mjr_: Also, it's hard to organize things with the current markdown -> man page format.
[04:05] mjr_: I quite like the python documentation myself.
[04:06] micheil: mjr_: I'm thinking more like: http://static.brandedcode.com/nws-docs/
[04:06] micheil: (does need a little bit of changes)
[04:07] mjr_: Yeah, that's nice too.
[04:07] micheil: mjr_: the major thing I'm thinking that would currently enhance the documentation is a baseline grid / typographic grid
[04:07] bourne: micheil: the code itself should be hyperlinked if it relates to another piece of code, but the page is nice and clean
[04:07] isaacs: micheil: +1
[04:07] micheil: purely so that they are more readable.
[04:07] mjr_: The current formatting we have in api.html is somewhat awkward.
[04:08] isaacs: micheil: that's one of those things that you don't think matters until you see it
[04:08] micheil: it's just written in standard html that.
[04:08] mjr_: Driven in part by the markdown -> HTML conversion
[04:08] mjr_: And the fact that we use a super limited set of markdown so that it'll also work with ronn to make manpages.
[04:08] mjr_: or jsronn or whatever it's called now.
[04:08] mscdex: ronnjs
[04:08] mscdex: :->
[04:08] bourne: mjr_: the only thing that erks me about the node API is that when it says "see ReadStream" or w/e, that there is no anchor hyperlink
[04:09] mjr_: Which sounded like an enormous feature to me when I heard about it the first time, but I always look at the web page and almost never look at the man page.
[04:09] bourne: I have to go find it
[04:09] mscdex: having the man pages is fine, but imho it's not a great format for html
[04:09] micheil: I think the man page should just be for the command line api.
[04:09] mjr_: Yeah, I like that we have man pages, but our HTML pages are suffering for it.
[04:09] micheil: and that the documentation should be separate
[04:09] zapnap_ has joined the channel
[04:11] micheil: when I get a chance, I'll redo the stylesheet I've currently setup for the node docs and try and get them looking awesome.
[04:11] mjr_: I think that would help a lot
[04:11] _announcer: Twitter: "@jasongullickson not yet. Have a project that might be fun to use node.js on, though. I need to get other projects done 1st." -- mathiasx. http://twitter.com/mathiasx/status/19469847210
[04:11] mscdex: i'm not sure what the status is on mape's new api doc format/layout
[04:11] micheil: (well, not the one I've got setup, but yeah)
[04:11] mjr_: We have a lot of good data in the current api.markdown, but the formatting could be improved.
[04:11] micheil: well, really, while the fancy effects are good, it's now down to readability
[04:11] micheil: data !== information
[04:12] mjr_: The side index is indeed a nice feature that I use a lot.
[04:12] mjr_: But it is hard to scan the list of function / event names in the body and see where a section begins / ends
[04:12] bourne: if you need an extra hand in redesigning, let me know
[04:12] mscdex: the current html api doc lacks inheritance information
[04:12] mscdex: which really sucks
[04:12] micheil: yeah, the side index atm is a hack.
[04:12] bourne: agreed =/
[04:13] mscdex: and the permanent link generation is awkward
[04:13] bourne: i dont really use the side b/c of that
[04:13] micheil: I think we need to get ryah's opinion on splitting the documentation from the man page.
[04:13] mjr_: Last we talked about this, ryah was very much wanting to maintain having a man page that was the full API.
[04:13] micheil: I'd be happy to rewrite the documentation's structure from ground up, if there wasn't the dependency on it working as a manpage.
[04:13] charlenopires has joined the channel
[04:14] micheil: the man page while the project was smallish was good, but now it's not really manageable.
[04:14] mjr_: IMO the most useful thing we could do right now is to just clean up the formatting of th current doc viewer for better readablity.
[04:14] bourne: ya, a year or two from now i wouldnt bet the manpage would be plausible
[04:15] saikat has joined the channel
[04:16] jamescarr: darn... I wish I could find a good example of configuring a client request using a ssl cert and key
[04:16] mscdex: to be honest, i've never used the man page. i always refer to the html doc
[04:16] mjr_: mscdex: same
[04:16] micheil: mjr_: okay, I'll work on that next I get a chance.
[04:16] micheil: mscdex: same
[04:16] bourne: same
[04:17] bourne: i guess its good for portability tho
[04:17] micheil: (we should do a quick poll on the mailing list, just to see how many people use the man page)
[04:17] bourne: when ur on a flight or something
[04:17] micheil: bourne: there's a static copy of the html that gets compiled as well
[04:17] micheil: make doc
[04:17] bourne: oh ya forgot about that
[04:17] samdk: to chime in, just reducing the contrast a bit makes it a lot more readable. I changed the font color/background to #ccc/#444 in firebug when I was reading it earlier and my eyes were much happier.
[04:18] mscdex: jamescarr: when you create the client just set the secure argument to true and for the last argument use an instance of crypto.createCredentials()
[04:18] micheil: samdk: yeah, I'd agree with that.
[04:20] jamescarr: mscdex, yeah I did that...
[04:20] jamescarr: still not authenticating
[04:20] jamescarr: oh..
[04:20] jamescarr: F me
[04:20] mikeal has joined the channel
[04:20] jamescarr: :(
[04:20] mscdex: :S
[04:20] jamescarr: There's two different URLs, one for cert auth, one for signature auth
[04:20] jamescarr: I was hitting the wrong one... all this time
[04:20] mscdex: heh
[04:21] jamescarr: yeah
[04:21] jamescarr: damn
[04:22] jamescarr: it works just freakin fine
[04:22] jamescarr: I've had it right for an hour now
[04:23] samdk: I think I'm going to play with a stylesheet for that page, actually. I don't have else to do right now anyway...
[04:23] bourne: samdk: use stylish in firefox
[04:24] bourne: samdk: you can make an edited stylesheet and there share it with others
[04:24] bourne: samdk: they have a upload page on their site
[04:24] samdk: bourne: yeah, I could do that after I finish with it. we'll see how far I get, first.
[04:25] bourne: sounds good
[04:26] micheil: samdk: could you send me an email of things that really bug you about the current design to: micheil@brandedcode.com ?
[04:26] micheil: (same goes with anyone else)
[04:26] _announcer: Twitter: "Awesome nodejs #, # couchdb, talk with @ # js Mikeal, @ indexzero, @ maraksquires, etc. Killer killer killer! # JavaScript NYC fun!" [de] -- hij1nx. http://twitter.com/hij1nx/status/19470774115
[04:27] holydevil has joined the channel
[04:27] bourne: off-topic, but apparently someone coded inception in C & asm
[04:27] bourne: http://github.com/karthick18/inception
[04:28] _announcer: Twitter: "Trying to chicken and egg @jeresig 's http://github.com/jeresig/nodelist in Node.js... where there is no document." -- Daniel Shaw. http://twitter.com/dshaw/status/19470887126
[04:30] _announcer: Twitter: "WebSockets server node.js http://bit.ly/cwoJNW" [nl] -- jalbertbowdenii. http://twitter.com/jalbertbowdenii/status/19471017015
[04:30] samdk: micheil: happy to, sure. would you like that now, or is a couple of hours from now just as good?
[04:30] micheil: also: http://spreadsheets.google.com/viewform?formkey=dFJlbjgwTzRhSklzdG94dHZvOXRnVXc6MQ
[04:31] micheil: samdk: when ever
[04:31] micheil: yeah! +1 twitter mentions. >_>
[04:31] samdk: micheil: okay, will do
[04:32] mjr_: How are people doing websocket if they aren't using node? Are there WS implementations for other webservers?
[04:33] mjr_: Seems like a pretty natural thing to do WS in node. Other things I'm guessing less so.
[04:35] samdk: mjr_: not sure how anyone is doing it now, but I know mongrel2 will have websocket support soonish
[04:35] micheil: mjr_: yeah, there's an EventMachine one
[04:35] micheil: and one native in Go-lang
[04:36] micheil: and I know people were doing it by hand in php
[04:36] micheil: (until they saw the light of node.js :D )
[04:36] mjr_: I'll bet that with a little bit of advocacy, node will become the websocket platform.
[04:36] isaacs: mjr_: agreed.
[04:36] isaacs: but s/websocket/web/
[04:37] mjr_: I guess that falls to you, micheil. Make it so!
[04:37] micheil: :D
[04:37] isaacs: javascript is the langauge that humanity has chosen
[04:37] micheil: well, currently I've got two new projects open with it: nws-router, nws-documentation & node-websocket-server plugin api.
[04:38] mjr_: crazy that WS isn't even "done" yet.
[04:38] micheil: (so that people can sanely extend a websocket server, think like express/connect's use())
[04:38] mjr_: JavaScript: good enough, move along. XHR: uhhh, hmm.
[04:39] bourne: lol
[04:39] bourne: i coded my site in xhr and then reverted to jquery
[04:39] mjr_: micheil: are you going to tie your WS stuff into express?
[04:39] micheil: mjr_: it already works with express.
[04:39] micheil: and geddy.
[04:39] micheil: and connect.
[04:39] mjr_: neat
[04:39] micheil: and anything else that gives access to http.Server
[04:39] mjr_: I don't actually write web apps, so I'm a bit out of the loop on this stuff
[04:40] micheil: just pass in your existing http.Server as an option
[04:40] c4milo has joined the channel
[04:40] micheil: http://static.brandedcode.com/nws-docs/#s8-p2
[04:40] micheil: see the server option
[04:40] bourne: what stuff? AJAX?
[04:40] mjr_: I'm not up on how to write web apps in node I mean.
[04:40] micheil: (that is a newer api that isn't released yet)
[04:41] micheil: at current api, it's just a second argument, which is being deprecated
[04:41] micheil: anyway, I need some lunch. bbl.
[04:42] bourne: lunch? geez, haha... its nearly 1am here in Florida
[04:43] o_o has joined the channel
[04:46] mscdex: i guess i ought to finally write up api doc for grappler
[04:46] mscdex: now that i've had a chance to test it more thoroughly
[04:56] zensatellite has joined the channel
[04:58] _announcer: Twitter: "NodeJS + MongoDB = TinyURL - Last week I started playing with NodeJS. NodeJS is an evented IO for V8... http://tumblr.com/xune59n29" -- Bulat Shakirzyanov. http://twitter.com/avalanche123/status/19472659827
[05:04] damienkatz has joined the channel
[05:07] damienkatz_ has joined the channel
[05:07] damienkatz_ has joined the channel
[05:07] _announcer: Twitter: "Writing a set of helper functions classes for node.js http://ff.im/oeV53" -- Cagdas Tulek. http://twitter.com/ctulek/status/19473207736
[05:13] confoocious has joined the channel
[05:15] jakehow has joined the channel
[05:18] _announcer: Twitter: "Well, I finally got my first long polling server demo up and running. Thanks nodejs!" -- Wil with one L. http://twitter.com/iamwilhelm/status/19473829975
[05:22] micheil: mscdex: feel free to use the code that is behind the nws docs
[05:23] kjeldahl_ has joined the channel
[05:25] hassox has joined the channel
[05:31] AAA_awright: Is there any equivalent to fromCharCode? I can't find anything
[05:31] micheil: from which language?
[05:32] AAA_awright: Wait, it's String.fromCharCode isn't it
[05:32] AAA_awright: micheil: Javascript, which I guess ECMAScript has it too
[05:33] micheil: javascript == ecmascript
[05:33] micheil: (not a strict equality minds you)
[05:33] AAA_awright: Javascript includes browser-specific things, I thought, it's a particular implementation of ECMAScript (nowadays)
[05:36] _announcer: Twitter: "other things i am excited for: #nodejs #docco #hotdogs #anotherdrink, and, of course, #hashtags" -- Chris Dickinson. http://twitter.com/isntitvacant/status/19474830147
[05:37] keeto has joined the channel
[05:39] _announcer: Twitter: "one awesome thing about nodejs is that you can use JSON for config files. { "this_is":"very nice" }" -- Tyler Gillies. http://twitter.com/tylergillies/status/19474975426
[05:41] rgl has joined the channel
[05:43] _announcer: Twitter: "@austinfrmboston It was nice talking to you today about node.js - Did you see http://bit.ly/dq4vUd ? - Interested in continuing?" -- Carlos Cardona. http://twitter.com/cgcardona/status/19475189877
[05:44] micheil: AAA_awright: no, the browser includes browser specific apis.
[05:44] micheil: AAA_awright: javascript works as javascript outside of the browser
[05:44] AAA_awright: Uh, exactly
[05:45] micheil: and javascript is ecmascript, only when it is implemented to the spec
[05:45] AAA_awright: Javascript includes the DOM, etc, in the context
[05:46] micheil: no
[05:46] micheil: browsers include the DOM
[05:46] micheil: just like node includes the commonjs module system
[05:46] AAA_awright: Exactly
[05:47] AAA_awright: How is that a "no"
[05:47] micheil: so, please, javascript doesn't include the DOM
[05:47] micheil: the browser includes the DOM
[05:47] AAA_awright: JavaScript is an implementation of the ECMAScript language standard and is typically used to enable programmatic access to computational objects within a host environment. http://en.wikipedia.org/wiki/Javascript
[05:47] micheil: yes
[05:47] AAA_awright: Right
[05:47] micheil: but javascript doesn't mean there's a DOM
[05:48] micheil: DOM is one of those host level objects
[05:49] AAA_awright: SVG is an implementation of XML, Javascript is an implementation of ECMAScript, etc... I'm pretty sure we are in agreement :)
[05:50] micheil: mmm.. sort of.
[05:50] sechrist has joined the channel
[05:51] micheil: the reason why javascript isn't ecmascript, is because not every variant of javascript implements ecmascript to the specification.
[05:51] micheil: each has it's own quirks
[05:53] mscdex: javascript needs more cowbell!
[06:02] isaacs has joined the channel
[06:04] _announcer: Twitter: "#webtools: Devthought — Ramblings about JavaScript (jQuery, MooTools, Node.JS, and more) and web development in g... http://bit.ly/aqAP3t" -- Web Tools. http://twitter.com/webtoolsYE/status/19476290997
[06:07] nicholas__ has joined the channel
[06:07] dgathright has joined the channel
[06:10] maqr: so it's XMLHttpRequest, but MS was the only one that ever included an xml parser?
[06:18] saikat has joined the channel
[06:19] holydevil has joined the channel
[06:20] mscdex: maqr: no?
[06:21] lelosh has left the channel
[06:24] maqr: mscdex: is there some way to use responseXml with dom in chrome?
[06:24] ewdafa has joined the channel
[06:24] mscdex: in what way?
[06:26] micheil: chrome is such a shit name for a browser.
[06:26] mscdex: psh
[06:26] micheil: because chrome is also the UI around it.
[06:26] mscdex: some browsers refer to it as that
[06:26] maqr: mscdex: i'm trying to figure out if it's reasonable to send xml to a browser and parse it on the browser
[06:27] mscdex: maqr: it's automatically parsed for you by the browser if it sees Content-Type: text/xml or application/xml
[06:27] mscdex: maqr: http://www.w3.org/TR/XMLHttpRequest/#xml-response-entity-body
[06:28] maqr: mscdex: so if you send one of those mime types, all browsers automatically convert it into a document tree?
[06:28] mscdex: yes, when you access responseXML
[06:28] mscdex: a DOM is returned
[06:28] mscdex: or null if it was invalid XML
[06:30] maqr: ok then, that works :)
[06:30] fizx has joined the channel
[06:30] mscdex: maqr: http://www.w3schools.com/dom/tryit.asp?filename=try_dom_xmlhttprequest_xml
[06:34] maqr: mscdex: well that'll totally work then, good :)
[06:40] y has joined the channel
[06:42] Tim_Smart has joined the channel
[06:42] elliottcable: ’sup mah homies
[06:42] elliottcable: who wants to chat architecture with me for a bit?
[06:43] elliottcable: talked about it a bit in here over the last few days; I’m working on a `require()`-replacement system, a module loader of sorts
[06:44] elliottcable: I want to support complex cascades of locations in which to lookup source files, or packages
[06:45] mscdex: does that include gopher?
[06:45] elliottcable: my original implementation essentially looked in `require.paths.forEach(…)`, and then within those `*/lib`, and then appended `'', '.js', '.node'`
[06:45] mscdex: :-D
[06:45] elliottcable: mscdex 3» I’m not likely to support off-filesystem sources, at least not right now
[06:46] elliottcable: but I want to be more flexible than it was; I’m thinking about storing an array of ‘location resolvers’ of sorts, which might be a string, or an array of strings, or a function…
[06:49] mscdex: make it pluggable, so that you can easily add methods of retrieving modules
[06:49] mscdex: :p
[06:53] isaacs: what's the best way to check if you have permission to remove something?
[06:55] elliottcable: mscdex 3» that’s the exact goal
[06:55] hassox has joined the channel
[06:55] isaacs: like, permission to delete a file
[06:57] elliottcable: mscdex 3» I have a couple basic goals for built-in functionalities: checking for various extensions (X, X.js, X.node), checking in the library path (lib/X), checking absolute locations (/X), checking relative locations (./X), checking predfined library locations (~/.node_libraries/X)…
[06:57] elliottcable: you get the idea
[06:58] elliottcable: trying to figure out what all those have in common, and how I can architect a system where I can write each of those functionalities as a function or module, and then throw them all into a ‘use these when resolving paths’ array or something
[06:58] elliottcable: hopefully an array that the end-user can then append to with their own function(alities)s
[06:58] mscdex: isaacs: stat?
[06:59] sechrist has joined the channel
[06:59] quirkey has joined the channel
[06:59] isaacs: mscdex: hm... can you be more specific?
[07:01] mscdex: isaacs: the mode field
[07:02] isaacs: oic
[07:02] elliottcable: hahaha isaacs
[07:02] mscdex: isaacs: see the flags for st_mode here: http://linux.die.net/man/2/stat
[07:02] isaacs: so check if process.getgid() === stat.gid, and process.uid === stat.uid, and that the proper mode bit &'s with 4?
[07:03] mscdex: that'll get you permissions anyway
[07:03] isaacs: yeah.
[07:03] isaacs: meh. screw that. i'll just try to delete it and whine if it fails.
[07:03] mscdex: well
[07:03] kjeldahl has joined the channel
[07:03] isaacs: :)
[07:03] mscdex: the gid and uid don't have to necessarily match up
[07:03] AAA_awright has left the channel
[07:04] mscdex: if a file is writable by everyone
[07:04] isaacs: right, but that'd tell you which thing to look at
[07:04] isaacs: of the 3 octals
[07:04] isaacs: ugw
[07:04] elliottcable: ugw is a great sound to make when you’re frustrated.
[07:04] elliottcable: UGW! >,<
[07:05] elliottcable: “ughwah.”
[07:05] mscdex: sounds like something you say during a karate move
[07:05] mscdex: ;-)
[07:06] elliottcable: UGW! HIYA! HIEH!
[07:06] mscdex: o hiya mark
[07:06] mscdex: huhu
[07:06] elliottcable: grr
[07:06] elliottcable: I can’t figure out how these interact D:
[07:07] elliottcable: mscdex 3» any ideas?
[07:07] mscdex: wasshu talkin' 'bout willis?
[07:08] elliottcable: )-:
[07:08] keeto: elliottcable: heyo! :)
[07:11] elliottcable: keeto 3» your nick is familiar
[07:11] keeto: twitter. :P
[07:11] elliottcable: oh?
[07:11] sechrist: the BBB has left
[07:11] sechrist: now I can scam u
[07:11] elliottcable: dude, I follow N-thousand people, fuck if I remember
[07:12] keeto: hahaha.
[07:12] elliottcable: hm. N-hundred. Whatever. Same diff.
[07:12] keeto: Mark Obcena.
[07:12] sechrist: elliottcable: at that point does twitter even become a useful consumption tool?
[07:12] BBB has joined the channel
[07:12] elliottcable: sechrist 3» fuck yeah
[07:12] mscdex: as N approaches infinity
[07:12] elliottcable: sechrist 3» and fuck you, the BBB is back
[07:12] sechrist: shit
[07:12] mscdex: dni = dormant node investigator
[07:13] DNI: director of national integument.
[07:13] DNI: oh swheet I think I have a neat way to do this: stacks of functions.
[07:14] DNI: two-dismensional array of functions, each of which preforms a discrete transformation on the path… hrm
[07:15] DNI: hm no. )-:
[07:16] mischief has joined the channel
[07:18] confoocious has joined the channel
[07:21] _announcer: Twitter: "@dshaw did you have a heroku node.js enabled account?" -- Micheil Smith. http://twitter.com/miksago/status/19479992016
[07:21] micheil: >_>
[07:22] DNI: