[00:02] micheil: Dmitry1: did something event from that?
[00:02] Dmitry1: In Atlassian office. https://twitter.com/sydjs
[00:02] micheil: better question: when do they meet?
[00:03] Dmitry1: Next meeting 21 June, but follow @sydjs
[00:04] satori: will do
[00:04] saikat has joined the channel
[00:04] jxson has joined the channel
[00:08] maushu: Dun dun dun
[00:11] tmpvar has joined the channel
[00:13] maushu: Lets see if ssl works correctly.
[00:14] satori: I am impressed by mixest song selection. Some awesome tracks on there
[00:15] pgriess has joined the channel
[00:16] charlesjolley- has joined the channel
[00:18] phiggins has joined the channel
[00:20] wattz: phiggie!
[00:20] maushu: *sigh* The bad parameter problem again.
[00:21] maushu: Anyone is able to use crypto.createCredentials(details) ?
[00:21] maushu: Wait... perhaps...
[00:21] maushu: Nah, it can be.
[00:21] maushu: *can't
[00:22] satori: I have used it before with success.
[00:22] maushu: ACTION facepalms.
[00:22] maushu: I was passing a Buffer instead of a string.
[00:22] satori: hehe.
[00:22] satori: Too many hours straight coding?
[00:22] davidwalsh has joined the channel
[00:22] maushu: 4 hours of sleep!
[00:23] maushu: Every day!
[00:23] maushu: Btw, the flying purple elephants are awesome.
[00:23] satori: I love my sleep. Couln't function on 4 hrs
[00:23] wattz: same here
[00:23] maushu: I also love to sleep.
[00:23] maushu: But sacrifices must be made.
[00:23] wattz: i have 3 kids (3yr old, 2yr old and a 1 week old) I have forgotten about sleep though :P
[00:23] satori: lol
[00:24] satori: My sister just had quadruplet boys... I have been tesing her about the her life being over
[00:24] satori: teasing
[00:24] wattz: lol
[00:24] wattz: all mine are boys
[00:25] tmpvar: wow
[00:25] maushu: Ok, here goes nothing.
[00:25] tmpvar: whats up
[00:27] bmizerany has joined the channel
[00:27] maushu: Trying ssl.
[00:31] Aylott has joined the channel
[00:33] creationix: isaacs: next hacknight we should merge nvm and nave into something better
[00:33] isaacs: yeah
[00:34] isaacs: actually, i bet we could meet and hash it out in like an hour or less.
[00:34] isaacs: they're both TINY programs.
[00:34] creationix: exactely
[00:34] jashkenas: curiousity: if NPM is good enough at resolving versions ... when would you want to use Nave?
[00:34] isaacs: like, i'm thinking, you take 15 minutes and walk me through how nvm works (beyond that it's a bash function, like where it puts stuff and whatnot) and then I do the same, and then we just make the smallest required change to each to make them the same things.
[00:35] isaacs: jashkenas: npm is for node programs. nave is for node itself.
[00:35] jashkenas: ah.
[00:35] isaacs: nave use 0.1.99 <-- this drops you into a subshell, where version 0.1.99 of node is the first thing in your path
[00:35] creationix: isaacs: I like the approach of nave mostly, but I'm not willing to have an extra bash shell running
[00:35] jashkenas: oh, nVm ... gotcha.
[00:36] creationix: but after thinking about all my use cases, something like "nvm use v0.1.100 myapp.js"
[00:36] isaacs: creationix: it wouldn't be too hard to make nave into a bash function.
[00:36] creationix: is fine as long as I'm able to set the environment for the sub node process
[00:37] wattz: so is sys.inspect like console.dir?
[00:37] wattz:
[00:37] creationix: wattz: except it doesn't actually print it
[00:37] isaacs: creationix: maybe we could just take nave's api, and make there be a way to add a bash function that'll do the same thing, but without the subshell.
[00:38] isaacs: creationix: bash functions have higher priority than executables anyhow
[00:38] creationix: isaacs: perhaps, but I find that .profile isn't read by some shells (screen notably)
[00:38] tmpvar: goal for tonight: make 40 more level2/core tests pass
[00:38] isaacs: creationix: so, you'd have to put the bash fn someplace where you want it.
[00:38] maushu: Hmm weird.
[00:39] mape: tmpvar: are you working together with aria or are they separate?
[00:39] creationix: tmpvar: sounds like fun
[00:39] maushu: When using https the connection holds when trying to send the jquery.js file.
[00:39] tmpvar: mape, Aria is using jsdom currently. She is going to be moving it out of the core though
[00:39] tmpvar: they are definitely two seperate projects though
[00:40] Kiba has joined the channel
[00:40] mape: oh but they do interact? and will benefit from eachother, other one from another
[00:40] _announcer: Twitter: "playing around/fighting with node.js again, I will tame this thing if its the last thing I ever do damit!" -- Robert Hurst. http://twitter.com/RobertWHurst/status/17908344754
[00:40] quirkey has joined the channel
[00:40] tmpvar: mape, yeah
[00:40] isaacs: !tweet Be careful. NodeJS might tame YOU!
[00:40] mape: nice
[00:41] mape: isaacs: and he'll read that? :D
[00:41] tmpvar: creationix, yeah. xml namespaces are silly to implement
[00:41] isaacs: !tweet @RobertWHurst Be careful. NodeJS might tame YOU!
[00:41] isaacs: mape: thanks :)
[00:41] mape: hehe, just sending statements to the internets might be good sometimes as well
[00:42] creationix: isaacs: I've been tamed
[00:42] isaacs: ACTION has been SO tamed.
[00:42] satori: heh
[00:42] creationix: I've been writing a real node powered app for the last couple weeks
[00:42] isaacs: nice
[00:42] creationix: it ate my eyeballs for breakfast
[00:43] isaacs: hehe
[00:43] mape: creationix: talking about what it is?
[00:43] creationix: but found a ton of bugs in connect and nStore in the process
[00:43] isaacs: as i work on planning to have npm be a site, i realized that by the end of this, npm will demonstrate almost everything that node can do.
[00:44] creationix: isaacs: node can do anything
[00:44] satori: npm is looking real slick. nice work.
[00:44] isaacs: that'll spin up http/s and tcp servers, and i'm gonna add a "remote" command that'll work as a tcp client.
[00:44] isaacs: npm's already an http client and does all sorts of fs and child process stuf
[00:48] isaacs: satori: thanks :)
[00:48] hdon has joined the channel
[00:50] maushu: Hmmm. Weird.
[00:51] maushu: The http connection just halts when sending big (~100kb) files.
[00:51] maushu: *https
[00:51] mscdex: maushu: sys.pump?
[00:51] maushu: Using it now.
[00:51] maushu: I wasn't before so I thought it might be it but it still halts.
[00:53] maushu: Is anyone able to send ~100kb files while using https?
[00:54] softdrink has joined the channel
[00:54] mscdex: do you have a small example to reproduce?
[00:55] matt_c has joined the channel
[00:55] Tim_Smart has joined the channel
[00:56] maushu: *sigh*
[00:56] everton has left the channel
[00:57] mscdex: :S
[00:58] maushu: Server response is a writeableStream?
[00:58] satori: wow. mixest is really awesome. Have heard about 5 awesome tracks in a row now.
[00:58] mscdex: probably
[00:58] mscdex: !api serverresponse
[00:58] mscdex: eh
[00:58] mscdex: !api response
[00:58] mscdex: interesting
[00:58] maushu: Who am I kidding, if it weren't the other files wouldn't have worked.
[00:59] creationix: has anyone here tested nStore yet?
[00:59] isaacs: satori: INORITE!?
[00:59] isaacs: satori: it's like, almost every song is excellent.
[00:59] satori: yar
[00:59] isaacs: it needs a feature to click the <3 automatically
[00:59] isaacs: i can't keep switching to firefox to favorite the song playing
[00:59] mscdex: !api serverrequest
[00:59] mscdex: :o
[00:59] mscdex: !api nexttick
[00:59] _api: mscdex: (process) method: nextTick(callback) -- On the next loop around the event loop call this callback. This is *not* a simple alias to `setTimeout(fn, 0)`, it's much more efficient. [ http://nodejs.org/api.html#process-nexttick-74 ]
[01:00] mscdex: odd
[01:00] mscdex: oh nevermind hah
[01:00] technoweenie: wouldnt it be better to have some console tool like 'ni' for that
[01:00] mscdex: not enough coffee today i guess
[01:00] mtodd_ has joined the channel
[01:01] ben_alman has joined the channel
[01:01] maushu: mscdex, it happens to all browsers too. So it's a problem on the node side.
[01:01] maushu: *sigh*, I will make a small example to reproduce.
[01:01] mscdex: yay \o/
[01:01] _announcer: Twitter: "Guess what it is: Controllers as in Rails, Handlers as in Django and Providers as in Node.js! Naming stuff is tough job! #programming" -- Rodrigo Alves Vieira. http://twitter.com/rodrigo3n/status/17909603483
[01:02] Yuffster has joined the channel
[01:02] benalman has joined the channel
[01:04] mklappst1hl has joined the channel
[01:05] maushu: mscdex, http://www.graphnode.com/stuff/sslbug.js
[01:05] amuck_ has joined the channel
[01:06] maushu: Hmm, I need a bigger file.
[01:08] maushu: mscdex, this is what happens: https://www.graphnode.com/
[01:12] mscdex: where can i get the image?
[01:12] mscdex: for testing
[01:13] maushu: http://upload.wikimedia.org/wikipedia/commons/a/af/Quercus_robur.jpg
[01:14] maushu: It should be 100kb.
[01:16] maushu: mscdex, used this to generate the certificate: http://library.linode.com/ssl-guides/self-signed-ssl-cert
[01:16] maushu: In case I was doing it wrong.
[01:16] creationix: maushu: the cert looks like a good self-signed cert
[01:16] maushu: Hmm?
[01:16] satori: if the browser doesn't scream at you about mismatches or expiries it's all good.
[01:16] maushu: Yeah, I just try everything to see if its a error from my side.
[01:16] technoweenie: my browser screams at me
[01:16] technoweenie: oh ok only because its self signed
[01:16] satori: it's normal to get a sec warning for self signed
[01:16] satori: it gets worse for mismatched cert names or expired certs
[01:16] creationix: maushu: looks like the response is just hanging and never sends the entire body
[01:16] technoweenie: its hard to tell in chrome, sometimes it errors randomly
[01:17] creationix: It hangs in curl too
[01:17] technoweenie: no error in curl? i had a case where curl was giving me a chunky parser error
[01:17] maushu: creationix, it works fine without ssl.
[01:17] technoweenie: i was streaming from a child process to a file and an outgoing web response at the same time
[01:17] creationix: maushu: does the ssl change the content-length?
[01:17] maushu: No idea.
[01:18] maushu: fiddler some reason doesn't catch anything
[01:19] creationix: maybe fiddler doesn't support streaming?
[01:19] _temp01 has joined the channel
[01:19] maushu: Well, it should.
[01:19] maushu: It should also catch https.
[01:19] maushu: It doesn't in this case, it's weird.
[01:19] jetienne has joined the channel
[01:23] maushu: creationix, wget shows "Length: unspecified [image/jpg]"
[01:23] creationix: intresting
[01:23] maushu: And the file it gets is only 61440.
[01:24] mjr_ has joined the channel
[01:24] bradleymeck1 has joined the channel
[01:24] maushu: The original file is 102389.
[01:24] ryan[WIN]: hy
[01:24] mscdex: what version of node did you say you were using?
[01:24] ryan[WIN]: anyone hiring
[01:24] ryan[WIN]: i need work
[01:24] maushu: The latest "stable".
[01:25] maushu: Why? Is it fixed on the rep?
[01:25] mscdex: i dunno, just curious
[01:25] maushu: This is not new, I think.
[01:25] maushu: I had a similar problem a little back.
[01:26] bradleymeck1: greetings all~ haha
[01:26] bradleymeck1: ryan needs work?
[01:27] maushu: This makes me a sad panda. v_v
[01:29] mscdex: well
[01:30] mscdex: it looks like it pauses once, but doesn't resume
[01:30] mscdex: which is odd
[01:30] mscdex: but data keeps getting emitted anyway
[01:31] mscdex: wasn't there talk about this earlier about buffering while a stream is paused?
[01:31] mscdex: or something?
[01:31] zapnap has joined the channel
[01:31] maushu: mscdex, the callback on sys.pump is called.
[01:31] maushu: I think.
[01:31] mscdex: yeah, that's at the end
[01:32] mscdex: but the drain event never fires
[01:32] maushu: How do you know?
[01:32] mscdex: once it supposedly pauses
[01:32] mscdex: i copied pump and inserted debug statements ;)
[01:32] maushu: So, should we write a issue?
[01:32] mscdex: data fires a bunch of times, pause is called, and then data fires a bunch of times again, and the streams are then ended
[01:33] mscdex: very strange
[01:33] maushu: It's ssl related.
[01:33] maushu: I'm sure of it.
[01:33] maushu: mscdex, have you tried running it without ssl?
[01:34] mscdex: yes
[01:34] mscdex: the drain events fire just fine then
[01:35] maushu: Hmm.
[01:41] bmizerany has joined the channel
[01:44] tav has joined the channel
[01:49] wattz: anyone here familiar with the node class module?
[01:54] mscdex: ok, node head shows it pausing twice at different points but no resuming and no emitting of end
[01:55] mscdex: weird
[01:56] amuck_ has joined the channel
[01:56] maushu: mscdex, could you start an issue? You know more details about it than me. :p
[01:56] maushu: Maybe this can finally get fixed.
[01:57] mscdex: !issue v0.1.100 "drain event" "drain event doesn't fire on secure connections"
[01:59] mscdex: that would be neat command to have though
[01:59] pgriess has joined the channel
[02:00] malkomalko has joined the channel
[02:01] amdg has joined the channel
[02:01] mtodd has joined the channel
[02:03] bradleymeck1: you want a !issue command?
[02:03] maushu: ...you would have to mess around with the git api.
[02:04] mscdex: yeah, git on it ;-)
[02:04] _announcer: Twitter: "Current status: http://yfrog.com/g44h5p - #proudofmyself #nodejs #w00t" -- Rodrigo Alves Vieira. http://twitter.com/rodrigo3n/status/17913406300
[02:04] bradleymeck1: pfff fine, gotta bring up _utility first
[02:04] mscdex: lol that wasn't difficult
[02:05] bradleymeck1: should prolly have it by end of tonight
[02:09] malkomalko: challah!
[02:11] meso has joined the channel
[02:12] sztanphet has joined the channel
[02:13] ryan[WIN]: bradleymeck, yes i need work
[02:13] ryan[WIN]: please note i am not ryan dahl
[02:13] ryan[WIN]: if that is what you were thinking
[02:14] kersny has joined the channel
[02:14] jetienne: bradleymeck1: how will you make the authentication in git ? i mean the link between the nickname sending the cmd on irc and the git username ?
[02:14] micheil: ryah: you about?
[02:15] bradleymeck1: i have a lot of nodejsbot name squating, itll be on that and try to give your irc creds
[02:15] micheil: I could do with a hand explaining the issue of websocket's not sending a valid http handshake to hixie.
[02:15] WALoeIII has joined the channel
[02:16] mscdex: i think ryah is on vacation
[02:16] micheil: yeah, just hoping he was possibly about
[02:16] micheil: because I'm not intimate with the internals of the c http_parser
[02:17] mscdex: hixie?
[02:17] micheil: the author of the spec.
[02:18] micheil: Ian Hickson
[02:18] mscdex: oh
[02:23] khug has joined the channel
[02:24] steadicat has joined the channel
[02:24] amdg: Hi, I'm running into some problems with make test, several tests hang when executed through tools/test.py but they finish just fine when I execute the command individually. How should I start debugging this kind of issue?
[02:26] tmpvar: lol, 20 minutes for 18 tests.. another hour for none. boooooooo
[02:27] tmpvar: namespaces suck!
[02:28] bradleymeck1: depends on how they are used
[02:28] tmpvar: this test is boggling my mind: http://github.com/tmpvar/jsdom/blob/master/test/level2/core.js#L4972
[02:29] tmpvar: perhaps I should send Neil an email. the wording in this comment is misleading at best
[02:30] tmpvar: I think it means, if the prefix is xmlns and the namespaceURI is not the expected, then fail
[02:31] bradleymeck1: ill read it a bit
[02:33] amuck__ has joined the channel
[02:33] tmpvar: I think all elements need to be created with doc.createElementNS
[02:33] amuck__ has joined the channel
[02:33] tmpvar: breaks 14% of my tests, but it "might" be the right way to go
[02:34] jashkenas has left the channel
[02:36] malkomalko: what's the easiest way to stream data to a file? why the hell am I blanking on it in the api
[02:36] bradleymeck1: tmpvar im thinking all the elements just need a namespace defined for that test, not necessarily using createElementNS
[02:37] bradleymeck1: cause undefined namespaces = fail always on that
[02:37] creationix has joined the channel
[02:38] tmpvar: bradleymeck1, hrm
[02:38] tmpvar: makes sense
[02:38] tmpvar: that is the point of createElementNS though, no?
[02:39] tmpvar: sets the namespaceURI, prefix, localName, qualifiedName, nodeName
[02:39] SamuraiJack has joined the channel
[02:40] nofxx has joined the channel
[02:40] mikeal has joined the channel
[02:40] tmpvar: this is tricky.
[02:40] bradleymeck1: yea
[02:40] tmpvar: im at 57% passing, im going to try and hit 60% lol
[02:41] tmpvar: 10% a day is a nice pace I think
[02:41] bradleymeck1: the setAttributeNS seems to be checking against the defined namespace
[02:41] tmpvar: yeah, but that assumes every element has a ns
[02:41] tmpvar: i guess by default they all have xmlns="http://www.w3.org/2000/xmlns/" ? -- dont think so
[02:41] bradleymeck1: is it against spec for a default namespace to be defined for doc.createElement()?
[02:42] tmpvar: no
[02:42] tmpvar: not that I can find anyhow
[02:42] bradleymeck1: cant be xmlns though that wont conform to html directly :/
[02:43] nofxx has joined the channel
[02:44] _announcer: Twitter: "@IanET Are they using JS to show the information on each node? It's not Flash or SL? What is written in?" -- BenHayat. http://twitter.com/BenHayat/status/17916010444
[02:44] mikeal: nvm vs. nave
[02:44] mikeal: fight! fight! fight! fight!
[02:45] Tim_Smart: isaacs will have to go make npm better if he wants to win the package manager war
[02:46] tmpvar: nvm !== npm
[02:46] tmpvar: bradleymeck1, right!
[02:46] tmpvar: which makes this test, "stupid" for lack of a better word haha..
[02:46] tmpvar: nah, my test doc is probably hosed in more than one way
[02:47] bradleymeck1: i think the dom lvl2 tests only comply to xhtml looking at em
[02:48] tmpvar: well, they definitely comply to XML
[02:49] tmpvar: ive been working my way up to the big ones. getting validation and whatnot out of the way before I dig into the large issue that is xml namespaces
[02:49] tmpvar: I'm not much of an XML guy, so I'm not sure how they work (completely anyhow)
[02:50] bradleymeck1: basically they just define how to behave when you encounter them, xsl mainly
[02:51] tmpvar: hrm, it doesnt "seem" that easy
[02:51] tmpvar: maybe im misreading these tests though
[02:51] tmpvar: it seems like namespaces apply to child elements?
[02:52] bradleymeck1: they can
[02:52] tmpvar: so if you set a ns on the root level element, all of the elements in the doc are presumed to be under that prefix
[02:52] tmpvar: woah, now I'm talking about two different things
[02:52] bradleymeck1: if unspecified, yes to my knowledge
[02:52] tmpvar: k
[02:52] tmpvar: that makes sense.. and is what im sort of avoiding lol
[02:52] tmpvar: its getElementsByTagName() all over again
[02:53] tmpvar: caching hard refs+mem leakage || rescan the document each query
[02:53] bradleymeck1: yea, im working on that, trying to get Ephemeron Table api finalized
[02:54] bradleymeck1: at least that way an ecmascript api would be a viable thing to prevent rescan
[02:55] vastak has joined the channel
[02:55] tmpvar: would be a big improvement, but much re-coding on my part heh
[02:55] _announcer: Twitter: "I shall now see what overhead comes about with loading up 9000+ objects on Node.js." -- Ryan McGrath. http://twitter.com/ryanmcgrath/status/17916733932
[02:55] bradleymeck1: wish we had weak refs :/
[02:55] tmpvar: if i miss the release.. make sure to bug me so I can fix
[02:56] tmpvar: :P
[02:56] bradleymeck1: im working on an api like yours but compartmentalizing it so might be able to steal mine, i will always bug ya
[02:56] tmpvar: spent a week "getting clever" with it
[02:56] charlesjolley- has joined the channel
[02:56] bradleymeck1: i just mark dirty if a change occurs to a child
[02:57] tmpvar: what are you working on?
[02:57] mscdex: strong refs ftw!
[02:57] bradleymeck1: using a dom lvl 1 example for my 'interface' repo, need ephemeron tables to prevent leak/rescan so got into talks about it
[02:58] tmpvar: oh, thats right
[02:58] tmpvar: who's the guy who is writing another dom
[02:58] tmpvar: called umm.. mage?
[02:58] tmpvar: i forget the name
[02:58] tmpvar: is that you?
[02:58] bradleymeck1: witch, its just a simple browser testing ground
[02:58] tmpvar: ah
[02:58] tmpvar: we should talk ;)
[02:58] bradleymeck1: ya, rewriting as all the interface stuff wasnt swappable so trying to figure out how to make it into bits
[02:59] tmpvar: ah
[02:59] tmpvar: im down with a refactor if you can figure that out
[02:59] tmpvar: if it passes all of the tests :P
[02:59] bradleymeck1: its incomplete until I get the ephemeron table stuff is up its on hold
[03:00] tmpvar: right
[03:00] tmpvar: im _really_ not sold on forcing a c addon for using my stuff
[03:01] tmpvar: as augmentation, sure.. but increasing the complexity of using the thing seems counter productive for me
[03:01] tmpvar: just use libxml if thats the case ;)
[03:01] rictic has joined the channel
[03:01] bradleymeck1: i just want it as optional
[03:01] tmpvar: fair enough
[03:01] bradleymeck1: but i get picky about things, they bother me too much
[03:01] tmpvar: hehe
[03:02] tmpvar: you saw my "DisableLiveLists" feature?
[03:02] bradleymeck1: yea
[03:02] tmpvar: honestly, I think that kills a large portion of user pain
[03:02] nofxx has joined the channel
[03:02] tmpvar: in regards to speed anyhow
[03:03] bradleymeck1: problem is always speed vs memory
[03:04] tmpvar: heh
[03:04] tmpvar: DisableLiveLists simply returns an object which is in no "real" way linked to the document
[03:04] tmpvar: updates are not considered, etc
[03:05] tmpvar: I think its a good compromise, but thats just me
[03:05] bradleymeck1: yea, which i think its fine since nodeLists shouldnt be directly modified
[03:08] kevm_ has joined the channel
[03:09] bradleymeck2 has joined the channel
[03:10] malkomalko: hmm
[03:11] bradleymeck2: bleh dc
[03:16] bradleymeck2: mmmm need to change how _utility does auth cant handle a 2nd auth system right now XD
[03:18] ajpiano has joined the channel
[03:20] tmpvar: eh
[03:20] tmpvar: im done
[03:20] tmpvar: 19 tests..
[03:20] bradleymeck2: :)
[03:21] tmpvar: this is going to take more brainpower than I have at the moment lol
[03:21] tmpvar: research, retaining.. etc
[03:21] _announcer: Twitter: "@MichaelDwan Thanks, glad we got to meet! I hope I get to see some of what you've been using Node.js for soon." -- Chris Powers. http://twitter.com/chrisjpowers/status/17918505187
[03:22] texodus has joined the channel
[03:22] sh1mmer has joined the channel
[03:26] rednul has joined the channel
[03:27] jetienne has joined the channel
[03:29] ajpiano has joined the channel
[03:36] rednul has joined the channel
[03:36] jbr: anyone know how to tell an express app to run in production mode?
[03:36] tmpvar: meaning?
[03:37] jbr: express starts and says "Express started at http://*:3000/ in development mode" – where do I configure that?
[03:38] tmpvar: ah
[03:38] tmpvar: dig into the source, see why its saying that?
[03:38] tmpvar: we're very "coder oriented" atm
[03:39] tmpvar: until node goes stable (0.2) I'm afraid the api will be changing too much to be otherwise
[03:41] rictic has joined the channel
[03:41] jbr: yikes. ok. i'm fine reading code, but this is a pretty important public api - node changing shouldn't matter
[03:42] tmpvar: i hear that
[03:43] jbr: important as in "anyone that uses express will need to know how to change port and environment" not important as in mission critical. I'll add what I find out to the wiki
[03:45] jbr: ok, I'm just blind – it is documented on expressjs.com but not in the wiki — http://expressjs.com/settings.html
[03:50] micheil: Hey guys. so, basically no one should be using websockets yet. (according to the spec author.)
[03:50] bradleymeck2: thats true about a lot of specs
[03:53] mscdex: like x-ray specs
[03:53] maushu: Ignore the spec author. He doesn't know what he's talking about.
[03:54] bradleymeck2: and css3 and html5 and xhtml technically, and ecma5 and...
[03:54] maushu: micheil, don't use html 5 till 2020.
[03:55] micheil: I think it's backwards thinking, to be bluntly obvious.
[03:55] bradleymeck2: dont use ajax either til 2012
[03:56] technoweenie: micheil: what are you going on about
[03:57] micheil: technoweenie: the author of the websocket protocol has pretty much told me that we shouldn't be using the spec until it's stable.
[03:57] technoweenie: why isnt it stable
[03:57] micheil: on evolving the protocol: "i hate to be blunt, but there's a difference between being backwards compatible with established technologies, and being backwards compatible with insecure unstable working drafts. we can't be held hostage to people playing with experiments"
[03:57] mscdex: because he keeps changing it
[03:57] mscdex: :P
[03:57] micheil: because it's a draft specification.
[03:58] mjr_: I'm bummed that websockets was in iOS 4 developer preview, but iOS4 didn't actually ship with websocket support.
[03:58] bradleymeck2: id rather use it and help the spec's weaknesses rather than going on theory
[03:58] micheil: he also thinks that websocket servers shouldn't be serving http.
[03:58] micheil: even though the spec is written to explicitly allow that.
[03:58] mscdex: ACTION shakes a fist at indecision
[03:59] mjr_: theory doesn't move bits into our web browsers.
[03:59] micheil: so basically the author of the spec is against his own spec. wtf?
[03:59] micheil: specs need to be driven by development.
[04:00] bradleymeck2: not according to the w3
[04:00] micheil: currently there's a proposal to totally scrap the current websocket protocol and change to using something closer to the SSL protocol.
[04:00] bradleymeck2: ssl is a pita to impl from my experience
[04:00] micheil: so, basically also, if you use a draft75 server, then you should be explicitly denying draft76 clients access, and vica-verse.
[04:00] technoweenie: why would they do that
[04:00] mjr_: The rest of the HTML5 stuff just happened somehow, but this websocket thing is still changing. Lame.
[04:01] technoweenie: i thought they created html5 because xhtml2 was a dead end
[04:01] micheil: technoweenie: because, "the current websocket protocol isn't secure enough" (parahprased slightly)
[04:01] technoweenie: cant you just run it over ssl?
[04:01] micheil: technoweenie: basically you shouldn't be expecting html5 things to work, until 2022
[04:01] technoweenie: i dont
[04:01] bradleymeck2: im still waiting on css2.1
[04:02] mjr_: Surely our friends at Google will see to it that they work before then.
[04:02] micheil: yes, but they still think in theory the protocol isn't secure enough
[04:02] mjr_: At least by 2021.
[04:02] Tim_Smart: multipart xhr is just as good. As long as that is support in ie9
[04:02] Tim_Smart: *supported
[04:02] micheil: chrome 5 does draft76, chrome 6 probably does draft76
[04:02] mscdex: they need more obfuscation!
[04:03] mscdex: Tim_Smart: multipart is mozilla only iirc
[04:03] micheil: what happens if you only use draft76 on the server? Are you going to deny people using chrome 6 access to your service?
[04:03] bradleymeck2: they need to namespace all the specs so all drafts are supported and can be remotely disabled by a url
[04:03] micheil: that's insane.
[04:03] technoweenie: servers will just have to support everything
[04:03] mscdex: Tim_Smart: at least multipart/x-mixed-replace is
[04:03] micheil: basically after todays discussion with one of the primary w3c spec moderators / authors, I have pretty much 0 respect and faith in the w3c.
[04:04] chilts: technoweenie: both html5 and xhtml2 were competing 'standards' ... though I guess html5 is currently winning
[04:04] khug has joined the channel
[04:04] mscdex: htmlol
[04:04] chilts: I'm sure various browsers will implement various bits of xhtml2 as they see fit though :)
[04:04] micheil: oh, and also, just to clarify things: even though the websocket handshake looks like it's HTTP, it's not, it's actually WebSocket.
[04:04] technoweenie: i could care less about any of this shit, html4 4 life
[04:05] chilts: heh
[04:05] mscdex: micheil: yeah i knew about that
[04:05] chilts: no canvas or video tags for you then :)
[04:05] micheil: so, basically, you should be writing your own websocket handshake parser, rather then relying on a http parser, despite websockets by definition of being an Upgrade to http.
[04:06] micheil: so it's basically a really bad spec going from what the author is saying.
[04:06] mscdex: i say screw all of this and let's go back to text-based BBSes
[04:06] mscdex: :-D
[04:06] mscdex: TW2002 ftw
[04:08] jxson has joined the channel
[04:09] bradleymeck2: ugg canvas tag i wish i could turn of your rendering while messing with pixel array, but nooo, you want me to have a double buffer
[04:12] bradleymeck2: anyone got a good cli module besides repl lying about?
[04:14] creationix has joined the channel
[04:20] joshbuddy has joined the channel
[04:21] EyePulp has joined the channel
[04:23] aurynn has joined the channel
[04:24] jbr: bradleymeck: to make the repl for sibilant, i mimicked node/repl.js. i'm not sure if it helps at all, but it's at http://github.com/jbr/sibilant/blob/master/lib/repl.js
[04:26] liucougar has joined the channel
[04:27] _announcer: Twitter: "and what made node.js whiteboard. Http://mrdoob.com/projects/multiuserpad/ interesting" [ja] -- Toshihiro Shimizu. http://twitter.com/meso/status/17922756536
[04:32] siculars has joined the channel
[04:34] _announcer: Twitter: "@mtodd Mongrel2 + Node.js + CUDA acceleration!!!11" -- Jerry Chen. http://twitter.com/jcsalterego/status/17923232826
[04:35] satori: yay! I almost have stage one of my UDT bindings done. udt.Sockets are working more or less as exepected. now for udt.Streams...
[04:35] Yuffster has joined the channel
[04:36] isaacs has joined the channel
[04:36] satori: The stream interface is going to be harder methinks
[04:40] quirkey has joined the channel
[04:43] rtl has joined the channel
[04:44] bradleymeck2: mmmm need an easy way to pipe streams to eachother and buffers :/
[04:46] sztanpet: pump? :D
[04:46] bradleymeck2: !api pump
[04:46] _api: bradleymeck2: (sys) method: pump(readableStream, writeableStream, [callback]) -- Experimental [ http://nodejs.org/api.html#sys-pump-81 ]
[04:46] bradleymeck2: mmm work on buffers?
[04:52] Tim_Smart has joined the channel
[04:53] micheil: anyone know much about Jade?
[04:53] bradleymeck2: creationix and tj would know the most
[04:54] creationix: mostly tj
[04:54] creationix: but what about it?
[04:54] charlesjolley- has joined the channel
[05:01] micheil: I'm just wonder how I'd do the following in Jade
[05:01] micheil: %a{href: "http://google.com"} google
[05:02] micheil: creationix: ^^
[05:03] creationix: a(href="http://google.com") google
[05:03] creationix: I think
[05:03] creationix: did you see http://jade-lang.com/?
[05:03] micheil: yeah, I saw that, but it didn't tell me much
[05:04] creationix: I haven't had a chance to use it yet
[05:04] creationix: but it looks nice
[05:04] micheil: and does Jade work on the client?
[05:04] creationix: I think so
[05:04] creationix: someone should port it to sammy for fun
[05:05] micheil: creationix: I probably will, but I'll port it to browser-side
[05:05] micheil: I've got a client app where we're using haml.js, but it's kinda broken, looking at Jade as a replacement
[05:06] creationix: yeah, I might switch my haml-js stuff to jade too
[05:09] _announcer: Twitter: "@ryah NodeJS + Websockets + Harmony = http://mrdoob.com/projects/multiuserpad/" -- Shane Reustle. http://twitter.com/Crath/status/17925233282
[05:13] micheil: that's actually pretty cool
[05:14] isaacs: "multiuser scratch pad" may as well just be "see who can draw dicks the fastest"
[05:15] _announcer: Twitter: "released a Hoptoad client into the wild, comments and feedback welcomed, first time exploring Node.js http://bit.ly/9WmSC0 #hoptoad #nodejs" -- Tanner Donovan. http://twitter.com/ttdonovan/status/17925534316
[05:18] _announcer: Twitter: "Working on the Readability / Node.js API docs. Will be releasing it soon as a public web svc on NodeWorker.com http://bit.ly/9XQGD6 #fb" -- Terry Martin. http://twitter.com/tzmartin/status/17925705984
[05:18] royi has joined the channel
[05:19] _announcer: Twitter: "@scruffypirate Hey - still doing things in Node-JS? I've been using it for some little things and am really intrigued..." -- George Mandis. http://twitter.com/georgeMandis/status/17925760146
[05:19] micheil: isaacs: not really, check it out now, we've got a person going.
[05:20] isaacs: micheil: yeah, seems interesting
[05:20] micheil: SubStack: seems to be the lead artist there
[05:20] fictorial has joined the channel
[05:20] micheil: good as a social experiment too
[05:21] fictorial has joined the channel
[05:28] mikeal has joined the channel
[05:31] Tim_Smart has joined the channel
[05:33] wilmoore has joined the channel
[05:35] Twelve-60 has joined the channel
[05:39] bradleymeck1 has joined the channel
[05:45] SubStack: micheil: hah, that thing
[05:45] SubStack: ACTION has a wacom is why
[05:46] _announcer: Twitter: "playing with node.js #awesome" -- Siddharth Ravichandr. http://twitter.com/Super_Sid/status/17927172579
[05:46] jakehow has joined the channel
[05:46] charlesjolley- has joined the channel
[05:48] micheil: SubStack: lol, I thought you were waaay too good then to be doing it with a mouse.
[05:48] micheil: I kinda sucked bad on my trackpad
[05:49] WALoeIII has joined the channel
[05:50] ewdafa has joined the channel
[05:59] mikeal has joined the channel
[05:59] _announcer: Twitter: "Learning about Node.js tonight. Way past my bedtime." -- Carl Fyffe. http://twitter.com/sixty4bit/status/17927847087
[06:10] creationix has joined the channel
[06:13] creationix: Anybody remember how to use md5 from node's crypto package?
[06:14] ph^ has joined the channel
[06:14] jbr: creationix: crypto.createHash("md5").update(input).digest("hex")
[06:15] creationix: jbr thanks
[06:15] mostlygeek has joined the channel
[06:15] jbr: at least that's how i've been using it, and it seems to return something reasonable
[06:15] creationix: how about a markdown compiler, is there a common one everyone uses
[06:15] creationix: jbr: it looks right, I've seen the code before
[06:16] ceej has joined the channel
[06:16] jbr: creationix: haven't seen markdown or textile yet. thinking of writing textile
[06:16] creationix: I've used showdown in the past for markdown
[06:16] isaacs has joined the channel
[06:16] creationix: I've got hacked version that works without the dom
[06:17] creationix: same thing for google prettify (for syntax highlighting)
[06:18] mscdex: isn't there node-discount?
[06:18] creationix: isaacs: I have this crazy plan to make an alternative to the require system using getters on the global object and path traversal on startup
[06:18] mscdex: maybe others
[06:18] creationix: mscdex: I do want to limit to pure js libs for now
[06:18] mscdex: ok
[06:18] creationix: but yeah, that's a good one otherwise
[06:25] mscdex: creationix: what about markdown-js? http://github.com/evilstreak/markdown-js
[06:26] creationix: yes, I remember this one when it was being written, thanks for finding it
[06:28] mscdex: man... tarring 23gb takes a long time heh
[06:29] sechrist: creationix: haha thanks
[06:30] sechrist: I was just about to ask how to make an md5
[06:31] _announcer: Twitter: "Watching @anoras demo of Node.js and WebSockets http://bit.ly/bBUwYs very interesting" -- Thomas Gøytil. http://twitter.com/ThomasGoeytil/status/17929307847
[06:32] mscdex: i watched some of that video the other day ^
[06:32] mscdex: i think the author should have started over
[06:32] mscdex: many mistakes :S
[06:33] mscdex: /afk
[06:38] SubStack: \m/
[06:40] creationix: is there a way to enumerate over the built-in libraries? (sys, fs, etc..)
[06:43] creationix: hmm, seems require isn't as global as expected "ReferenceError: require is not defined"
[06:46] creationix: ohh, this is a fun one "TypeError: Cannot redefine property: defineProperty"
[06:46] creationix: I'm going to take these errors as a sign that I'm trying something too magical
[06:48] rictic has joined the channel
[06:50] creationix: how do you undefine a getter on a property
[06:54] jbr: delete
[06:55] _announcer: Twitter: "[links] node.js HTTPS (SSL) Server Example - Silas Sewell: http://bit.ly/95phNA" -- zhup. http://twitter.com/zhup/status/17930345166
[06:55] creationix: jbr: it's not working for me
[06:55] jbr: creationix: var foo = {}; foo.__defineGetter__("bar", function () {}); delete foo.bar; foo //=> {}
[06:56] creationix: I'm using Object.defineProperty instead of __defineGetter__
[06:56] creationix: I wonder if that makes a difference
[06:56] creationix: hmm, yes is does, strange
[06:58] jbr: I bet Object.defineProperty sets the enumerable bit or freezes it or something
[07:01] creationix: so, anyone, know how to iterate over the available js modules in node?
[07:01] creationix: jbr: yeah, something like that
[07:02] micheil: that's not seriously all it takes for a secure http server, is it?
[07:02] micheil: is that for upgrading a connection?
[07:03] satori: yeah that all you need for ssl
[07:03] micheil: oh, wow.
[07:03] micheil: I guess I should add ssl support into node-websocket-server then
[07:03] micheil: I thought it was more complicated then that.
[07:03] satori: openssl does all the heavy lifting
[07:05] creationix: doesn't seem to work for me on OSX
[07:05] creationix: I guess I don't have ssl compiled in
[07:05] jbr: creationix: it's hacky, but try iterating over require.paths[require.paths.length - 1] + "/libraries"
[07:06] creationix: jbr: the built-in libs aren't on the filesystem, they're embedded in the node binary
[07:06] creationix: I'm already iterating over require.paths for user-space libraries
[07:06] jbr: creationix: oh, gotcha. no idea
[07:07] creationix: I guess I'll go and read the require code again to see if I get any ideas
[07:07] satori: why do you need to iterate the standard modules?
[07:08] ryah: hello
[07:08] SubStack: ACTION should blog about his dnode thing now, mayhap
[07:08] satori: hi
[07:08] creationix: bingo! var natives = process.binding('natives');
[07:08] SubStack: either that or underwater robots
[07:09] SubStack: http://github.com/substack/dnode/blob/master/examples/web.html http://github.com/substack/dnode/blob/master/examples/web.js # super awesome
[07:09] charlesjolley- has joined the channel
[07:10] hellp has joined the channel
[07:11] creationix: satori: crazy magic
[07:11] creationix: ryah: hello, how was Europe
[07:11] satori: it's all crazy magic to me mostly :P
[07:12] crohr has joined the channel
[07:14] virtuo has joined the channel
[07:17] statim has joined the channel
[07:24] b_erb has joined the channel
[07:25] creationix: alright, I'm done perverting the right ways of node http://gist.github.com/466415#file_usage.js
[07:25] creationix: ;)
[07:25] SubStack: magic \o/
[07:25] _announcer: Twitter: "Kids don't do this at home http://gist.github.com/466415#file_usage.js #node.js" -- Tim Caswell. http://twitter.com/creationix/status/17931665193
[07:26] creationix: except for the initial delay of pre-loading all the loaders, it's very effecient
[07:27] creationix: the properties on global get replaced by the module itself on first load
[07:28] derferman has joined the channel
[07:30] pquerna: how is the index.node thing supposed to work anyways
[07:30] _announcer: Twitter: "Good reading about NodeJS+Redis used for building a COMET core of an online in-browser game (sorry, it's in RUS :/) http://is.gd/dimJp" -- Vasil Remeniuk. http://twitter.com/remeniuk/status/17931849846
[07:30] chrischris has joined the channel
[07:30] christkv has joined the channel
[07:31] _announcer: Twitter: "Playing around with breaking out of deep JavaScript callback chains: http://bit.ly/cgGIyE #nodejs" -- Benson Wong. http://twitter.com/mostlygeek/status/17931883322
[07:31] _announcer: Twitter: "After 3 hours of trying to get nodejs running on my G5 I realise that the problem is V8 doesn't run on PPC. doh! ..." -- Tom Pearson. http://twitter.com/tomp/status/17931912636
[07:32] aliem has joined the channel
[07:32] jetienne has joined the channel
[07:33] pquerna: mm, looks like it deosnt' do anything special with index.node.
[07:33] creationix: pquerna: I look for index.node and index.js, but require's internal code handles loading it
[07:34] pquerna: well, right, i was thinking for a sec it might be a way to load a collection of .node / shared objects
[07:34] pquerna: but thats a silly thought
[07:35] mostlygeek has joined the channel
[07:35] chrischris has joined the channel
[07:35] blackdog has joined the channel
[07:37] SteveDekorte has joined the channel
[07:41] _announcer: Twitter: "@creationix nStore idea looks really promising. A production ready, nodejs native, nosql document database will rock my world. Great work!" -- Kadir Pekel. http://twitter.com/kadirpekel/status/17932326910
[07:45] _announcer: Twitter: "Hacking CouchDB more nodejs music management / sharing app" [fr] -- David Goodlad. http://twitter.com/dgoodlad/status/17932469648
[07:46] femto has joined the channel
[07:50] jetienne: cc1plus: warning: dereferencing pointer 'pretmp.3625' does break strict-aliasing rules <- v8 compilation is scary
[07:51] satori: What are strict aliasing rules? in a nutshell? I have seen a similar warning in code im working but it doesnt seem to affect anything
[07:56] DarthShrine: Something like an assurance that two pointers can't point to the same place or something weird like that :)
[07:57] zomgbie has joined the channel
[07:59] SubStack: creationix: link to this nstore thing?
[08:00] SubStack: sounds pretty great
[08:00] jetienne: satori: -fno-strict-aliasing you can add that to remove the warning
[08:01] jetienne: for me, the scary part was more in the "pretmp.3625"
[08:01] satori: I am new to using 'real' compilers. Don't have a good understanding of c/c++ compiling yet
[08:01] jetienne: creationix: is there any bench against other nosql ?
[08:03] romainhuet has joined the channel
[08:03] chrischris has joined the channel
[08:10] chrischris has joined the channel
[08:16] cloudhead has joined the channel
[08:17] chrischris has joined the channel
[08:19] aubergine_ has joined the channel
[08:22] ryah: creationix: still here
[08:28] jetienne: ryah: if i provides a patch to add console.dir/console.assert, will you accept it ?
[08:28] royi has left the channel
[08:30] ryah: jetienne: sure
[08:32] tomc has joined the channel
[08:32] MrTopf has joined the channel
[08:32] MrTopf1 has joined the channel
[08:34] markwubben has joined the channel
[08:37] TomY has joined the channel
[08:38] _announcer: Twitter: "@invisiblea @alex_tea either of youz checked node.js yet? Writing some stuff for it but it feels a bit fruity, like." -- Ralph. http://twitter.com/_ralph/status/17934598216
[08:38] teemow has joined the channel
[08:38] cfq has joined the channel
[08:46] maritz has joined the channel
[08:49] aubergine has joined the channel
[08:53] KiwiBulldog has joined the channel
[08:55] KiwiBulldog has left the channel
[08:55] ollie has joined the channel
[08:56] meso has joined the channel
[08:58] hansek has joined the channel
[09:04] MattJ has joined the channel
[09:07] xla has joined the channel
[09:18] _announcer: Twitter: "Thanks to @ryah and @CowoCo for this nice #node.js presentation yesterday. node.js may be a superb solution for a certain class of problems." -- Felix Nensa. http://twitter.com/luckfamousa/status/17936207354
[09:22] aubergine has joined the channel
[09:26] _announcer: Twitter: "Though reminds me of Netscape LiveWire. Node.js, new slant on an old idea." -- Stewie. http://twitter.com/deefadawg/status/17936522634
[09:32] satori: I have been listening to mixest for about 10 hours straight now.
[09:33] cloudhead has joined the channel
[09:33] DarthShrine: satori: Yeah, Mixest is awesome.
[09:34] satori: totally
[09:40] Gruni has joined the channel
[09:47] aubergine has joined the channel
[09:54] _announcer: Twitter: "Download NodeJS played a bit. Performance in accordance with Javascript now and then over time such as server-side framework for mature, Javascript server-side development will be occupied. After all, JavaScript is one of the most popular language, very rich in human resources." [zh-CN] -- yifeng huang. http://twitter.com/hyifeng/status/17937635917
[09:55] jetienne: this is 160byte only ?!?
[09:57] lianj__ has joined the channel
[09:59] viktors: looks like automatically translated
[10:04] viktors has joined the channel
[10:04] creationix has joined the channel
[10:04] TomY has joined the channel
[10:07] oberhamsi has joined the channel
[10:11] jetienne: oh this explains it
[10:19] malkomalko has joined the channel
[10:20] jbr has joined the channel
[10:28] mklappstuhl has joined the channel
[10:28] MrTopf has joined the channel
[10:29] _announcer: Twitter: "@alex_tea http://nodejs.org/ | http://bit.ly/aF5hWM | http://bit.ly/c6xaOa" -- Ralph. http://twitter.com/_ralph/status/17939065278
[10:30] caolanm has joined the channel
[10:34] stride: anybody happens to know which packet is necessary for openssl support on CentOS? tried openssl-devel but configure still can't find it
[10:37] satori: openssl-devel
[10:37] satori: ?
[10:38] satori: with yum?
[10:38] satori: that did it for me
[10:39] stride: yep, with yum. strange
[10:39] satori: any specific error?
[10:40] stride: nope, configure just says "Checking for openssl: not found"
[10:40] satori: check build/config.log ?
[10:41] stride: ahh, pkg-config: command not found - thanks
[10:41] satori: np
[10:42] malkomalko: what's the best way to watch a log file and log every event that comes through somewhere?
[10:42] stride: totally forgot that there are further logs.. sorry for the dumb question :)
[10:42] malkomalko: using a child process to tail? or watchFile?
[10:45] fermion has joined the channel
[10:45] satori: stride: there are no dumb questions :P
[10:46] satori: malkomalko: doesn't tail just watch the file anyway?
[10:48] blackdog: hi, does the readSync position parameter let me reset the position anywhere in the file even a rewind?
[10:49] malkomalko: yah, but a little more slow, and I'm trying to get access to each row, it seems to chunk em up
[10:49] malkomalko: I might just to the tail and then split the output on a new line char
[10:50] satori: yar, i would do that and raise events for each line
[10:50] satori: blackdog: I think so
[10:51] blackdog: i thought so too, but it's not working for me :)
[10:51] satori: I am not an exprt. sry.
[10:52] blackdog: np, thanks
[10:53] TomY: anyone looked at creating netsnmp bindings for node?
[10:54] satori: snmp is udp right?
[10:58] TomY: yeah
[11:06] maushu has joined the channel
[11:06] Ori_P has joined the channel
[11:06] maushu: mscdex: So, any news regarding that ssl problem?
[11:08] camilo has joined the channel
[11:09] hassox has joined the channel
[11:09] virtuo has joined the channel
[11:09] away01 has joined the channel
[11:09] Tekerson has joined the channel
[11:09] MrNibbles has joined the channel
[11:09] jbrantly1 has joined the channel
[11:09] frodenius has joined the channel
[11:09] aakour has joined the channel
[11:09] CIA-76 has joined the channel
[11:09] NickP has joined the channel
[11:13] sleep-o has joined the channel
[11:19] mape: Anyone using the latest connect from npm?
[11:24] _announcer: Twitter: "@ _Na2Th Guy, I think you should open a exceçãozinha to the Node.js, he tries to makes things as simple as possible ;-)" [pt] -- Rodrigo Alves Vieira. http://twitter.com/rodrigo3n/status/17941525747
[11:27] cloudhead has joined the channel
[11:28] phiggins has joined the channel
[11:29] stagas has joined the channel
[11:34] mape: hmm nm
[11:41] _announcer: Twitter: "@_ralph Yep, reckon it would be pretty awesome for that. There's a couple of libs for XMPP+node.js already I think." -- Alex Wybraniec. http://twitter.com/invisiblea/status/17942362277
[11:45] _announcer: Twitter: "Fell into a @thinkvitamin membership yesterday and so far loooooving it. Finally gonna learn me some node.js :-p" -- michael evans. http://twitter.com/magic6435/status/17942551601
[11:46] Tinned_Tuna has joined the channel
[11:48] aheckmann has joined the channel
[11:54] tmedema has joined the channel
[11:54] proppy has joined the channel
[12:00] caolanm: npm problems: mymodule@latest isn't my most recently published version, how do I update that?
[12:02] caolanm: hmmm... "npm tag mymodule 0.1.2 latest" ?
[12:03] caolanm: nope :\
[12:04] keeto has joined the channel
[12:06] proppy: n
[12:07] mscdex: o
[12:07] proppy: sorry :)
[12:08] proppy: has anyone tried http://github.com/miksago/node-websocket-server ?
[12:08] mscdex: maushu: no, i tried debugging for a bit, but it may be something inside secureStream that is the cause of the problem -- i'm not sure.
[12:09] mscdex: proppy: micheil and other people have, yes
[12:09] micheil: proppy: yeah, I've tried it.
[12:09] proppy: micheil: which version of chromium-browser did you tried it with ?
[12:09] micheil: chromium 6
[12:10] proppy: I have 5.0.375.70 (48679) Ubuntu here
[12:10] proppy: oh ok
[12:10] micheil: does chrome 5 support websockets?
[12:10] micheil: *chromium
[12:10] micheil: actually, yes, it should
[12:10] caolanm: arrghhh! whhhy npm?!, whhhyyyy...
[12:10] micheil: it should use draft 75
[12:10] proppy: micheil: did you build it from source ?
[12:10] micheil: umm..
[12:11] micheil: downloaded a binary from their buildbot server
[12:11] proppy: thanks for the tip
[12:11] proppy: downloading http://build.chromium.org/buildbot/snapshots/chromium-rel-linux/51707/chrome-linux.zip
[12:12] proppy: micheil: did you open index.html from file://
[12:12] micheil: umm..
[12:12] proppy: or did you served it using apache or node ?
[12:12] micheil: no, I don't think so
[12:12] micheil: I serve files either using adfs or what ever it's call, or I use nginx
[12:12] mscdex: adfs?
[12:12] proppy: adfs ?
[12:12] mscdex: :P
[12:13] proppy: because echo-server.js sample seems to be dedicated to websocket, and not serving any static file
[12:14] proppy: I will server index.html using apache
[12:14] micheil: adfs is a ruby server that just serves the current directory using rack
[12:14] proppy: is there any cross-domain policy with ws ?
[12:15] micheil: proppy: you could certainly modify the echo-server to serve files, I just chose not to add complexity
[12:15] micheil: I don't think so, or not one that node-websocket-server currently actually runs by
[12:17] proppy: it works with chrome 6 :)
[12:17] proppy: but I confirm it doesn't with chrome 5
[12:17] proppy: micheil: thanks a lot
[12:17] micheil: hmm..
[12:18] micheil: I'll have to fully test it when I next get a chance
[12:18] proppy: micheil: do you need me to do anything with chrome 5, so you have more information ?
[12:18] mscdex: ACTION shakes a fist at websockets
[12:18] kevm_ has joined the channel
[12:19] micheil: proppy: nup, I'll try to debug it.
[12:19] micheil: chances are is that it's sending the wrong headers.
[12:20] jedschmidt has joined the channel
[12:21] micheil: should work with chrome 5
[12:21] micheil: on the build of chromium for mac, 51706, I believe it does work
[12:23] kevm_ has left the channel
[12:23] proppy: micheil: I have 5.0.375.70 (48679) Ubuntu
[12:23] kevm_ has joined the channel
[12:23] proppy: micheil: do you have node-websocket-server running on a public host somewhere ?
[12:24] micheil: chromium mac only goes back to 49XXX
[12:24] mw has joined the channel
[12:24] micheil: I don't, but to properly debug, I need access to the browser
[12:25] DracoBlue has joined the channel
[12:27] proppy: micheil: do you have access to an ubuntu box ?
[12:28] micheil: not one that's working.. it's harddrives are out until I find screws for them
[12:28] micheil: and until I get space to set it up.
[12:29] proppy: micheil: FYI I'm using this package http://packages.ubuntu.com/lucid/i386/chromium-browser/download
[12:29] micheil: yeah, it's just the build number that I need to test
[12:30] _announcer: Twitter: "Parsing file uploads at 500 mb/s with node.js » Debuggable Ltd: http://bit.ly/aQn6Iu" -- zweinullweb. http://twitter.com/zweinullweb/status/17944963259
[12:30] _announcer: Twitter: "via Del.icio.us : Parsing file uploads at 500 mb/s with node.js » Debuggable Ltd: http://bit.ly/ajmmY6 #social #networking" -- Karen Kinnaman. http://twitter.com/KarenKinnaman/status/17944966788
[12:30] proppy: micheil: if you have virtualization support on your mac, you can setup virtualbox or something similar
[12:30] micheil: true, I'll have to debug it when I get time.
[12:33] proppy: micheil: I've installed node-websocket-server here http://aminche.com/node/client.html for testing purpose
[12:34] mscdex: ACTION nudges maushu
[12:34] micheil: what port on that server is the websocket server running
[12:34] micheil: also, you need to use the correct domain name to connect to it
[12:34] _announcer: Twitter: "Parsing file uploads at 500 mb/s with node.js http://icio.us/acyuxf" -- Jon E. Eguiluz. http://twitter.com/Viroide/status/17945244192
[12:35] proppy: micheil: 8000
[12:36] micheil: okay, in client.html, edit the line of code which is var conn = new WebSocket("ws://..."
[12:37] micheil: to point to the correct port and address: ws://aminche.com:8000/
[12:37] proppy: it seems to work even thought echo-server.js listen on localhost
[12:37] micheil: localhost != loopback necessarily
[12:37] proppy: I guess I also need to edit echo-server.js to listen on aminche.com instead of localhost ?
[12:38] _announcer: Twitter: "Node.js when the server becomes # javascript! http://nodejs.org/" [fr] -- Dark side of the web. http://twitter.com/Darth_K0d3R/status/17945426475
[12:38] proppy: micheil: ah I thought it was the same
[12:39] micheil: it may work on localhost, may not
[12:39] proppy: I guess I should change localhost to 0.0.0.
[12:39] mscdex: why not set it to null?
[12:39] proppy: +9
[12:39] proppy: +0
[12:40] micheil: you could do that too.
[12:40] micheil: the listen method doesn't need to take a host parameter
[12:40] proppy: I got this error when connection to client.html http://pastebin.com/WU1NmQud
[12:40] mscdex: oh, yeah, for listen
[12:41] micheil: are you running node >= 1.98
[12:41] micheil: erm, 0.1.98
[12:41] proppy: micheil: I'm running node trunk
[12:41] micheil: okay
[12:42] micheil: just updating my node..
[12:42] bmizerany has joined the channel
[12:42] proppy: micheil: should I run node >= 1.98 ?
[12:43] proppy: I mean 1.98
[12:43] micheil: umm.. no, it should be forwards compatible.
[12:43] proppy: micheil: do you need me to try with node compiled in debug ?
[12:43] micheil: I wasn't aware that the node api had changed at all
[12:43] micheil: nup
[12:45] rolfb has joined the channel
[12:45] micheil: okay.. using draft76, I connected fine
[12:45] proppy: I do grep createHash in node/lib/crypto.js
[12:45] proppy: wierd
[12:45] micheil: draft 75, connected fine.
[12:45] rolfb has joined the channel
[12:45] micheil: try rebuilding node, make sure you build it with ssl
[12:46] proppy: Checking for function SSL_library_init : not found
[12:46] proppy: Checking for header openssl/crypto.h : not found
[12:46] proppy: yes you seems right :)
[12:46] micheil: that's the problem then.
[12:47] proppy: micheil: thanks a lot
[12:47] micheil: draft 76 requires me to use a method for hashing provided by the crypto module
[12:47] micheil: however, iirc, hashing doesn't use ssl
[12:49] micheil: if anyone what's to pay me 50$ / hr, I'll write a patch right now to split hashing from the crypto module, but otherwise I've gotta get back to my day job.
[12:50] micheil: *want's
[12:51] proppy: micheil: yes sorry for eating your time :)
[12:51] micheil: until then, it waits until I get time to work on it.
[12:52] micheil: proppy: no worries, like I said, I'll write a patch to split the hashing and crypto stuff from ssl, but I can't right now
[12:52] proppy: micheil: I will ask my client if he wants to subcontract you specific developpement on node.js websocket
[12:52] proppy: do you have a rent a coder account ?
[12:52] micheil: rent a coder?
[12:52] micheil: I'm just a subcontractor, under the name of BrandedCode
[12:52] rolfb: can you live inside the coder?
[12:53] proppy: micheil: rentacoder.com
[12:53] micheil: ah, actually, it's not possible to split it.
[12:53] proppy: micheil: :)
[12:54] micheil: EVP_* is part of openssl.
[12:54] maushu: Back
[12:54] maushu: ACTION pokes mscdex.
[12:54] micheil: and the Hash methods use EVP_
[12:55] proppy: wied it seems ./configure doesn't see my openssl lib even thought I just installed openssl package
[12:55] micheil: I think you may be able to work around by using the node-crypto plugin, which I don't think uses openssl
[12:55] micheil: yup.
[12:56] micheil: hm... actually, it was hashlib
[12:56] micheil: http://github.com/brainfucker/hashlib
[12:56] _announcer: Twitter: "@kevm wow that is really sexy, to bad I've never done anything with node.js." -- rssvihla. http://twitter.com/rssvihla/status/17946540812
[12:57] micheil: although, it may not work, as I need to hash buffers
[12:57] micheil: / binary buffers
[12:57] micheil: so, yeah, in short, you need node compiled with ssl to support the draft76 protocol.
[12:58] proppy: micheil: thanks for these precious information
[12:58] micheil: no worries
[12:59] _announcer: Twitter: "@rssvihla never too late to start. I don't know much of anything about node.js. http://bit.ly/9wjfQp Has a lot of good intro content." -- Kevin Miller. http://twitter.com/kevm/status/17946697056
[12:59] kriszyp has joined the channel
[13:02] _announcer: Twitter: "How to use Node.js, redis and Ruby together http://bit.ly/cGRODH great slide" -- Olivier BONNAURE. http://twitter.com/olivierb/status/17946917576
[13:02] proppy: note node needs pkg-config in order to be able to detect openssl
[13:05] mitkok has joined the channel
[13:06] davidsklar has joined the channel
[13:06] markwubben has joined the channel
[13:07] aconran_ has joined the channel
[13:09] davidsklar has joined the channel
[13:10] zaach has joined the channel
[13:10] mpoz2 has joined the channel
[13:11] dahankzter has joined the channel
[13:13] Kung_Fu_Hamster has joined the channel
[13:14] jwm_ has joined the channel
[13:15] ben_alman has joined the channel
[13:16] sdgvf has joined the channel
[13:16] cataska has joined the channel
[13:16] [[zz]] has joined the channel
[13:19] tav has joined the channel
[13:19] stagas: why do people upvote anti-answers in SO. You ask a perfectly reasonable question and you get the answer that rejects your question saying "don't do that" to be upvoted. BUT I WANT TO DO _THAT_!
[13:22] paul__ has joined the channel
[13:22] bmizerany has joined the channel
[13:23] trodrigues has joined the channel
[13:25] micheil: stalled: ask them why "don't do that"
[13:27] kevm_ has joined the channel
[13:27] rednul has joined the channel
[13:27] geojeff has joined the channel
[13:27] chewbranca has joined the channel
[13:27] riottaba has joined the channel
[13:29] jetienne has joined the channel
[13:30] mtodd has joined the channel
[13:32] steadicat has joined the channel
[13:37] pgriess has joined the channel
[13:38] stagas: they have pretty good reasons but that's not the case :P
[13:39] behmann has joined the channel
[13:40] gwoo has joined the channel
[13:40] texodus has joined the channel
[13:43] TheEnd2012 has joined the channel
[13:44] jherdman has joined the channel
[13:48] bradleymeck1 has joined the channel
[13:49] olegp has joined the channel
[13:49] mikeal has joined the channel
[13:50] phiggins has joined the channel
[13:52] aubergine_ has joined the channel
[13:53] persson has joined the channel
[13:53] zomgbie has joined the channel
[13:53] sleep-o has joined the channel
[14:00] chandru_in has joined the channel
[14:01] chandru_in: Is there a way to programmatically stop a node.js http server
[14:01] chandru_in: without hitting Ctrl+C or sending SIGKILL?
[14:01] stride: process.exit(0); I think
[14:01] chandru_in: stride, What if there are requests currently in progress. I basically want a clean exit
[14:04] sleep-o: .close() the server, when there nothing more to do, node will exit
[14:04] hpoydar has joined the channel
[14:05] chandru_in: sleep-o, that helped. Thanks
[14:05] sleep-o: however, you might want to combine that with setTimeout(...process.exit()..., ...) in case some connection stays open for a long time
[14:06] sleep-o: ...but you can still SIGKILL anyway :)
[14:06] chandru_in: It doesn't matter coz node will exit with it anyway as it is the only server on this node instance
[14:07] chandru_in: Thanks again sleep-o
[14:07] chandru_in has left the channel
[14:09] matt_c has joined the channel
[14:10] camilo: hello I
[14:10] Tim_Smart1 has joined the channel
[14:11] pandark_ has joined the channel
[14:16] mscdex: proppy: node doesn't need pkg-config to be able to compile in openssl support. you just need to have the openssl headers installed (via libssl-dev or whatever package provides them).
[14:17] texodus has joined the channel
[14:17] proppy: mscdex: it seems waf build does check for openssl using pkg-config
[14:17] proppy: it will report openssl: false if pkg-config is not installed
[14:18] mscdex: right, that doesn't matter though
[14:18] mscdex: you'll see it will check true for the next two items under that
[14:18] mscdex: one or two items
[14:18] mscdex: that checks for the library
[14:18] mscdex: and stuff
[14:19] proppy: mscdex: yes, but then something might be wrong because I do get these headers
[14:19] proppy: and it is still reporting false
[14:19] mscdex: proppy: show me your ./configure output
[14:19] proppy: and it was not reporting false anymore once I get pkg-config installed
[14:19] proppy: mscdex: sure I will apt-get remove pkg-config to reproduce it
[14:20] proppy: mscdex: http://dpaste.com/215492/
[14:20] proppy: without pkgconfig
[14:21] mscdex: right
[14:21] mscdex: that's fine
[14:21] mscdex: openssl will be compiled in
[14:21] proppy: http://dpaste.com/215493/
[14:22] proppy: with pkgconfig
[14:22] mscdex: correct
[14:22] mscdex: you don't need pkg-config
[14:22] mscdex: it checks for openssl two different ways
[14:22] proppy: mscdex: but I do get this error if I compile (without pkg-config -> openssl: no)
[14:22] mscdex: once via pkg-config (if installed), otherwise it checks for the header files
[14:22] proppy: http://pastebin.com/WU1NmQud
[14:23] proppy: and it is solved if I use pkg-config -> openssl: yes
[14:23] _announcer: Twitter: "Nodejs is the future for server-side Internet applications?: Http://bit.ly/b7kqy1" [de] -- computerfrage.net. http://twitter.com/computerfrage/status/17952324614
[14:23] mscdex: then something is messed up with your distro heh
[14:23] mscdex: what distro are you using?
[14:23] proppy: mscdex: debian
[14:24] mscdex: i dunno then
[14:24] proppy: mscdex: but if I understand you well, because of the two way that node configure script check for openssl
[14:24] proppy: I should still have openssl: yes
[14:24] mertimor has joined the channel
[14:24] mscdex: no
[14:24] proppy: even thought I don't have pkg-config installed
[14:24] proppy: because the header are there
[14:24] mscdex: the "openssl" line refers to the pkg-config check
[14:25] mscdex: the "function SSL_library_init" and "header openssl/crypto.h" lines refer to the manual check
[14:25] proppy: ok, env will be updated
[14:25] proppy: conf.env["USE_OPENSSL"] = True
[14:25] proppy: conf.env.append_value("CXXFLAGS", "-DHAVE_OPENSSL=1")
[14:25] proppy: but openssl will still be false in ./configure output
[14:26] proppy: how could I check that the header are indeed found by the waf script ?
[14:26] proppy: does it dump the env somewhere ?
[14:26] proppy: config.log ?
[14:26] mscdex: ./configure -vvv
[14:26] mscdex: or -vv
[14:26] mscdex: produces more than enough output
[14:27] aubergine has joined the channel
[14:28] DracoBlue has left the channel
[14:29] proppy: mscdex: you're right
[14:29] proppy: I do have HAVE_OPENSSL = 1
[14:29] proppy: even without pkg-config
[14:29] proppy: :)
[14:29] mscdex: yep
[14:29] proppy: sorry for the noise
[14:29] mscdex: np
[14:29] proppy: and it seems I got the js crypto error
[14:30] khug has joined the channel
[14:30] proppy: because I hadn't libssl-dev at that time
[14:30] proppy: :)
[14:30] mscdex: ah
[14:34] mscdex: now back to sleep :-D
[14:35] figital has joined the channel
[14:37] mitkok has joined the channel
[14:38] grahamalot has joined the channel
[14:41] Tim_Smart has joined the channel
[14:44] _announcer: Twitter: "the future is javascript on the backend. use node.js, couchdb and jquery for the frontend. and if adventurous cappucinno for the frontend" -- Joseph Le Brech. http://twitter.com/jlebrech/status/17953856805
[14:45] malkomalko has joined the channel
[14:45] malkomalko: is the author of node-bus hanging here by any chance?
[14:46] texodus has joined the channel
[14:47] rob__ has joined the channel
[14:47] Yuffster has joined the channel
[14:47] Kung_Fu_Hamster: I think I heard a mountain lion! haha
[14:47] malkomalko: doh, brb
[14:48] proppy: micheil: now it works with chromium 5
[14:48] proppy: I have no idea why :)
[14:48] micheil: because
[14:48] proppy: :)
[14:48] micheil: chromium 5 may be using draft76
[14:49] micheil: try changing the mode from "auto" to "draft75"
[14:49] micheil: see if chromium will connect.
[14:50] CIA-76: node: 03Ryan Dahl 07master * r0bceaaa 10/ doc/api.markdown : Fix addon example in docs - http://bit.ly/c9c2PM
[14:50] CIA-76: node: 03Jerome Etienne 07master * r8e9f59a 10/ src/node.js : Support of console.dir + console.assert - http://bit.ly/cMhRDt
[14:50] CIA-76: node: 03Brian 07master * r1191ca0 10/ doc/api.markdown :
[14:50] CIA-76: node: Fix docs
[14:50] CIA-76: node: Added consistency to the representation of optional parameters and separated
[14:50] CIA-76: node: out multiple functions that were in a single heading. - http://bit.ly/a1OagF
[14:51] _announcer: Twitter: "#expressjs for nodejs reaches 950 followers! just wait for 1.0 ;) http://github.com/visionmedia/express" -- TJ Holowaychuk. http://twitter.com/tjholowaychuk/status/17954337446
[14:51] wao: mm
[14:51] wao: mape: is possible to zoom your wargamez just for central europe for example? :)
[14:52] ajpiano has joined the channel
[14:52] mape: wao: Hmm yeah, if you offset the coordinates I guess its doable
[14:52] creationix has joined the channel
[14:53] phiggins: mape: SVG man
[14:53] mape: phiggins: ?
[14:54] wao: mape: great, just for know it, hope tomorrow I will have some longer coffe break to do review how node.js works, and lunch on my own wargamez, because most of ppl are just from central europe
[14:54] phiggins: mape: http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/geo/charting/tests/test_maps.html
[14:54] davidwalsh has joined the channel
[14:54] JimBastard has joined the channel
[14:55] phiggins: then you'd just set the coords on the surface where they actually are. scale built in.
[14:55] mape: Hmm yeah..
[14:55] phiggins: where's the node-side code? is it in github?
[14:55] mape: I haven't added it yet since I still don't know of a good way to do it..
[14:55] mape: Guess I should get up though
[14:55] phiggins: we had a world map in that json format, too
[14:56] phiggins: I think IBM pulled it pending internal legal approval
[14:56] JimBastard: no one ever got hired for choosing IBM
[14:56] mape: Issue is that it uses an geopip api which more or less might not like being used like this
[14:56] mape: or api.. a page
[14:56] wao: mm, should be somewhere easy how to, to do own wargamez :)
[14:58] phiggins: well if you put the code somewhere I'd like to know mape
[14:58] mape: phiggins: I'll try to figure it out now
[14:58] aubergine_ has joined the channel
[14:59] Astro: has anyone seen any sane documentation on the expressjs views system?
[14:59] wao: phiggins: btw, nice json
[14:59] wao: :)
[14:59] pandark_: Hello, you noders
[15:00] proppy: micheil: I'm not sure where to change this
[15:01] micheil: after line 35 of echo-server.js, add: version: "draft75",
[15:01] micheil: that will force the server to use draft75 of the protocol, and reject all other versions
[15:02] bradleymeck1: ACTION flops about
[15:03] proppy: micheil: yes it works too if I add "draft75"
[15:03] stride: mape: if you have the time you could utilize a local copy of http://www.maxmind.com/app/geolitecity
[15:03] micheil: proppy: okay..
[15:04] quirkey has joined the channel
[15:04] micheil: change it to draft76
[15:06] proppy: 7 Jul 17:05:52:2216: closed
[15:07] proppy: micheil: so with chromium 5, draft75 -> open, draft76 -> closed, auto -> open
[15:07] proppy: hope that helps
[15:07] siculars has joined the channel
[15:07] micheil: proppy: okay
[15:08] micheil: so, chromium 5 only supports draft75
[15:08] micheil: which is what I expected, as chrome 6 only supports draft75
[15:09] proppy: I still have no clue why it was failing before and it is not failing anymore now
[15:10] proppy: the only thing that changed is that I moved the node online, instead of just being localhost
[15:10] creationix: I wonder if people were asking about process.binding because of the gist I posted last night
[15:10] tomc has joined the channel
[15:10] micheil: proppy: basically, it wouldn't have accepted http connections either
[15:10] micheil: if you're running on localhost, it's pretty much restricted to that machine
[15:11] zomgbie has joined the channel
[15:11] micheil: unless you tell your hosts file where to point a domain
[15:12] proppy: yes, but I was trying client.html from localhost too, so there shouldn't be any problem
[15:12] steadicat has joined the channel
[15:12] micheil: I'm not sure then.
[15:13] EyePulp has joined the channel
[15:13] JimBastard: man this chick my roommate brought was soo stupid. then this morning she decided to use the only bathroom in the house naked, and then got all dazed and confused when i tried to open the door to take a shower
[15:13] micheil: All I'm saying is that as far as I know, node-websocket-server should work, and based upon what has been provided and been reproduced, I can only conclude that there's an issue in the code you are running, and how you are running it.
[15:13] camilo: anybody knows if the new Buffer constructor is already in the trunk ?
[15:13] JimBastard: almost made me late for my standup
[15:13] mape: So, proper way to create and throw an exception?
[15:14] micheil: JimBastard: epic fail, and half awkward
[15:14] camilo: sorry I'll figure out by my self :$
[15:14] mape: just throw 'string' ?
[15:14] micheil: throw "string"
[15:14] proppy: wierd
[15:14] micheil: or throw new Error("string")
[15:14] texodus has joined the channel
[15:14] micheil: camilo: new buffer constructor?
[15:15] camilo: micheil: yep
[15:15] micheil: where'd you hear about this new buffer constructor?
[15:15] micheil: and when?
[15:15] proppy: micheil: yes, thanks for helping
[15:15] micheil: proppy: no worries
[15:16] camilo: Buffer* Buffer::New(char *raw, size_t size)
[15:16] creationix: camilo: it has the one that takes strings
[15:16] camilo: creationix: yes
[15:16] creationix: and it's alway has the one that takes a length
[15:17] zomgbie has joined the channel
[15:18] LionMadeOfLions has joined the channel
[15:18] camilo: creationix: unfortunely yes
[15:18] creationix: camilo: why unfortunately?
[15:19] proppy: micheil: if I use 127.0.0.1 instead of localhost in client.html it does work :)
[15:19] micheil: okay then
[15:20] camilo: open door to overflows
[15:20] zapnap has joined the channel
[15:20] creationix: camilo: it has internal bounds checking
[15:20] creationix: and the string constructor is still a fixed length, it's just convenience
[15:21] creationix: b = new Buffer(Buffer.byteLength(string)); b.write(string, "utf8')
[15:22] camilo: I'm speaking about b = new Buffer(my_char_pointer, len);
[15:23] zomgbie has joined the channel
[15:23] MrTopf1 has joined the channel
[15:24] camilo: creationix: http://gist.github.com/466797
[15:25] camilo: creationix: I guess it will be on the next commits of Ryan
[15:26] camilo: s/on/in/i
[15:26] micheil: camilo: unless ryan rejects the patch ;P
[15:29] JimBastard: i think he's on vacation
[15:29] JimBastard: for a week
[15:31] camilo: JimBastard: yes, but as a good geek, I'm pretty sure that it will work hahahaha
[15:34] mape: Anyone know of good json api for geopip?
[15:34] JimBastard: mape google?
[15:34] mape: What is this google?
[15:35] stride: a http interface to spam and advertisments
[15:36] jakehow has joined the channel
[15:37] joshbuddy has joined the channel
[15:39] ph^ has joined the channel
[15:39] fermion has joined the channel
[15:39] joemccann has joined the channel
[15:40] stagas has joined the channel
[15:42] joemccann: http client auth question
[15:43] joemccann: i have been successful at authenticating using http client
[15:43] Ori_P_ has joined the channel
[15:43] joemccann: sys.puts(chunk) actually shows ALL the expected JSON
[15:43] joemccann: however
[15:43] joemccann: in the browser
[15:43] joemccann: it only shows a portion of it
[15:44] joemccann: seems like the response is only sending a "chunk" of the chunk as opposed to all the JSON
[15:45] athenot has joined the channel
[15:45] joemccann: take a look here: http://jsbin.com/eyimo/edit
[15:45] micheil: you may need to buffer it.
[15:45] micheil: I think debuggable.com has an article on this
[15:47] joemccann: micheil: thx!
[15:47] joemccann: a link?
[15:47] marshall_law: joemccann: werd ;)
[15:48] micheil: google -> site:debuggable.com POST data
[15:48] joemccann: micheil: digging now
[15:48] joemccann: thx
[15:49] joemccann: marshall_law: whatup homie!
[15:49] marshall_law: there tend to be lots of familiar faces in this channel
[15:50] _announcer: Twitter: "@miksago Know of any good tutorials out for getting started with NodeJS?" -- Shane Reustle. http://twitter.com/Crath/status/17958737753
[15:51] softdrink has joined the channel
[15:51] _announcer: Twitter: "Pushed my IRC wargames visualization to Github. Check it out at http://github.com/mape/node-wargames (let me know about bugs/issues) #nodejs" -- Mathias Pettersson. http://twitter.com/mape/status/17958806576
[15:52] mape: phiggins: ^
[15:52] dmcquay has joined the channel
[15:52] phiggins: danke
[15:52] phiggins: i found the worldmap .json fwiw, too
[15:53] mape: nice
[15:53] mape: Well if you make anything fun with it be sure to let me know
[15:53] phiggins: horray for svn history
[15:53] phiggins: totally
[15:53] phiggins: thanks for putting what you did up
[15:53] markwubben has joined the channel
[15:53] mape: No worrys, I'm just awful at finishing stuff
[15:54] mape: And let me know if something acts up/the setup is pita
[15:55] JimBastard: mape, google has a whole bunch of JSONP apis
[15:55] JimBastard: thats how translate works
[15:55] mape: Don't think they have geoip though?
[15:55] mape: Owell I found one that seems decent, guess we'll see
[15:56] bradleymeck1: jquery or dojo for easiest ui designing?
[15:56] phiggins: JimBastard: http://svn.dojotoolkit.org/src/dojox/trunk/rpc/SMDLibrary/google.smd
[15:57] mape: bradleymeck1: phiggins usually recommends jquery
[15:57] phiggins: die.
[15:57] bradleymeck1: @_@
[15:57] mape: I kid!
[15:57] _announcer: Twitter: "@tjholowaychuk cant wait to use #expressjs with stable #nodejs !!" -- patrick. http://twitter.com/patrick232/status/17959225438
[15:57] phiggins: bradleymeck: that question is rhetorical. jquery doesn't do anything in UI, so anything you would be doing would be manual ...
[15:58] phiggins: you could do the same stuff manually either way, so which lib is moot
[15:58] JimBastard: phiggins: whats dojo?
[15:58] phiggins: if you want other stuff like packaging,classes,color animations,etc, use dojo
[15:58] joemccann: fuckn a phiggins...u again?
[15:58] JimBastard: i think phiggins is trying to sell people on that new framework hes been working on
[15:58] phiggins: ACTION sighs at the troll
[15:58] JimBastard: id much rather use something thats been around longer like jQuery
[15:58] JimBastard: way more stable
[15:59] JimBastard: have you ever heard of jQuery phiggins ? its written by this guy John Resig
[15:59] phiggins: well that proves you are either a troll, retarded, or ignorant.
[15:59] JimBastard: :-D
[15:59] JimBastard: all three?
[15:59] joemccann: phiggins: epic reunion in Berlin coming up
[15:59] phiggins: indeed
[15:59] JimBastard: phiggins you do remember who i am right
[15:59] phiggins: we need to find a trackc host
[15:59] mape: Hmm wonder if it is a good sign that there are 3 forks of the worldmap
[16:00] phiggins: mape: fork is easier than download :)
[16:00] joemccann: trying to talk @rem into making it
[16:00] joemccann: but he's all "busy" with his "pregnant wife"
[16:00] phiggins: voodoo too
[16:00] joemccann: he better make it out this year
[16:00] mape: phiggins: Hmm, usually git clone stuff, but I guess if one plans to help/change it forking is better
[16:00] joemccann: we should setup a fund for him
[16:00] phiggins: i got $5 on it.
[16:00] joemccann: ditto
[16:00] joemccann: well
[16:00] joemccann: $3
[16:00] joemccann: Euro conversion/inflation
[16:00] phiggins: i'll spot you $2
[16:00] joemccann: haha
[16:01] joemccann: k
[16:01] joemccann: what are u speaking on?
[16:01] phiggins: jquery
[16:01] joemccann: hahahaha
[16:01] joemccann: not again!
[16:01] phiggins: "how jquery is nearly useless in #nodejs"
[16:01] bradleymeck1: i want something that i can easily style preset controls such as drop downs and grids which doing manually is painful for my front end
[16:03] bradleymeck1: guess dojo wins, jqueryUI doesnt have a grid
[16:03] phiggins: i hate grids
[16:04] joemccann: my speaking topic is: "let's circle jerk around node.js"
[16:04] joemccann: with demos
[16:04] phiggins: gross
[16:04] mape: joemccann: with canvas?
[16:04] joemccann: haha
[16:04] joemccann: not quite
[16:04] tjholowaychuk has joined the channel
[16:07] JimBastard: phiggins: i use jQuery in node.js, using JSDOM
[16:07] JimBastard: well, mostly just sizzle i suppose
[16:07] phiggins: why?
[16:08] callen: phiggins: maximal name-dropping per sentence facilities
[16:09] phiggins: fair enough.
[16:13] JimBastard: phiggins: we are using it for a scraping project
[16:13] JimBastard: we retrieve a remote html page, and then we parse it using jQuery selectors
[16:13] JimBastard: i think thats a pretty good use?
[16:13] JimBastard: and yeah, it has optimal buzzwordyness
[16:14] mape: css selectors are nice way of traversing
[16:14] mape: *is a
[16:14] proppy: nice wargames got pushed to github http://github.com/mape/node-wargames
[16:15] mape: :)
[16:15] SubtleGradient has joined the channel
[16:15] proppy: I can see you live on the website :)
[16:15] JimBastard: mape: add a screenshot to the readme, bitches love screenshots
[16:15] proppy: yes
[16:15] proppy: can js be included in github pages ?
[16:15] mape: Then can you help out with getting some lines drawn?
[16:16] mape: proppy: Glad you liked it
[16:16] proppy: if yes you would be able to embed the demo into the github pages :)
[16:16] mape: joemccann: Good times, good times.
[16:16] mape: micheil: Thanks for the websockets server!
[16:17] micheil: hmm?
[16:17] micheil: you're using it too?
[16:17] mape: Yup
[16:17] mape: You are in all the cool projects
[16:17] DTrejo__: Tekerson: glad you like it :)
[16:17] micheil: what do you think of it?
[16:17] mape: Really like, other then that most browsers won't handle it
[16:17] mape: But that isn't your fault so
[16:17] joemccann: i'm using node-websocket-server as well
[16:18] joemccann: closer to the draft version 76
[16:18] micheil: joemccann: cool, any feedback?
[16:18] joemccann: than others ive seen
[16:18] joemccann: works pretty damn good
[16:18] micheil: actually, it should be draft76 compliant
[16:18] joemccann: me and a colleague wrote a native websockets implementation in Java for Android
[16:18] joemccann: and are exposing it to the window object in a webview
[16:18] micheil: the only part that isn't supported is the high order bits in packet parsing, which isn't yet used by any clients, so I haven't implemented it
[16:19] joemccann: we are doing silly shit now with this messaging protocol
[16:19] raz has joined the channel
[16:19] joemccann: and the node-websockets-server handles well
[16:19] _announcer: Twitter: "using #nodejs websocket server http://is.gd/diSis with zimt Objective-C websocket implementation http://is.gd/diSkW" -- proppy. http://twitter.com/proppy/status/17960796794
[16:19] raz has left the channel
[16:19] micheil: I'm thinking that there may be an idea to have someone create a bson implementation in javascript (that's fast)
[16:20] micheil: then you could encode your data in bson on the server, and decode on the client
[16:20] micheil: (might be more network i/o efficient)
[16:20] proppy: micheil: some guys just tested your server with obj-c iphone websocket implemention I'm glad it works :)
[16:20] joemccann: ACTION never worked with BSON
[16:20] creationix has joined the channel
[16:21] micheil: proppy: if the client is up to spec, it will work.
[16:21] proppy: it seems so
[16:21] joemccann: proppy: is that obj-c ws implementation on github?
[16:21] JimBastard: i love how people try to submit patches for the bundles or the mins of my libraries
[16:21] JimBastard: everytime
[16:21] proppy: proppy: yes, http://github.com/esad/zimt
[16:21] JimBastard: i gotta write better authoring docs
[16:21] joemccann: sick
[16:21] joemccann: thx
[16:21] mape: There, screenshot
[16:22] micheil: screenshot?
[16:22] mape: http://github.com/mape/node-wargames
[16:22] EyePulp: cool!
[16:23] mape: Strange using html in markdown
[16:23] EyePulp: neat work mape
[16:23] bpot has joined the channel
[16:23] bradleymeck1: idk it seems bson only gains if you have large data to send, almost all of that is due to saving data xfer, still have to do the parse of fields
[16:23] micheil: mape: ws = require('node-websocket-server/lib/ws');
[16:23] micheil: mape: can't you just do? ws = require('node-websocket-server');
[16:23] micheil: (I don't actually use it from npm)
[16:23] EyePulp: mape: i have nothing to say, yet that makes me want to talk... lucky you
[16:23] proppy: micheil: they noticed a 3 min connection timeout when connecting using the iphone, I guess it is because of the 3g carrier
[16:23] micheil: and won't until I have a way of setting up a bundler for the requirements for deployment
[16:23] joemccann: proppy: any samples of zimt using node?
[16:24] mape: Hmm not sure, I never quite got the whole require thing, thought it messed up relative paths
[16:24] joemccann: looks like samples use EventMachine
[16:24] micheil: proppy: probably.
[16:24] proppy: micheil: I will ask them to make a test using wifi to confirm it
[16:25] Ori_P has joined the channel
[16:25] JimBastard: nice mape
[16:25] micheil: mape: I thought http://github.com/miksago/node-websocket-server/blob/master/package.json#L6
[16:25] micheil: was what setup the default loaded file
[16:25] mape: So what is it that makes socket.io so much slower compared to yours micheil? Just overhead keeping track of stuff?
[16:25] micheil: proppy: okay, cool
[16:25] proppy: joemccann: they told me they only used the Chat sample in the zimt repository
[16:25] mape: micheil: might be
[16:25] micheil: that, and the way it handles data
[16:25] proppy: I guess they just changed the server to connect to ws://aminche.com/test
[16:25] bradleymeck1: require works fine on relative paths, just be sure to start w/ a . , .. , etc
[16:26] mape: fork, check and request pull? :P
[16:26] joemccann: proppy: gotcha
[16:26] Yuffster has joined the channel
[16:26] micheil: mape: in my websocket server, I've focused on a core philosophy of my code: correct, fast, beautiful
[16:27] micheil: so, for the connection's list, to make it more memory efficient, I went to using a linked list over a standard object.
[16:28] MattJ: micheil: that should be correct, beautiful, fast - just so you know ;)
[16:28] micheil: my code philosophy is based on: http://railstips.org/blog/archives/2010/01/26/correct-beautiful-fast-in-that-order/
[16:28] joemccann: fuckin a, cannot get a solution to my prior issue
[16:28] joemccann: anyone able to output a full JSON response as opposed to just part?
[16:28] micheil: MattJ: I always quote the title of that article wrong ;P
[16:28] micheil: joemccann: you need to buffer it.
[16:28] micheil: I think
[16:28] MattJ: micheil: oh, it's the title of an article? :P
[16:28] micheil: is that json sent to the server?
[16:28] micheil: or something else?
[16:29] donspaulding has joined the channel
[16:29] MattJ: micheil: I was just ordering them by my perceived priority (which is the best, of course)
[16:29] micheil: MattJ: yeah, one by John Nunemaker, from the ruby community, which I think should apply to all programming
[16:29] MattJ: and indeed, it seems the article does agree with me, yay :)
[16:29] joemccann: i tried...debuggable didn't help
[16:29] joemccann: the methods they are using is deprecated
[16:29] mape: micheil: k, well it works like it should, perhaps it would be a better idea to have a supplement that emulates the way the websocket server does it but with xhr instead
[16:29] joemccann: micheil: http://jsbin.com/eyimo/2/edit
[16:30] joemccann: sys.puts() shows the entire json object
[16:30] micheil: mape: I was thinking about how one would implement that, and I think it's highly possible.
[16:30] donspaulding1 has joined the channel
[16:30] TrisMcC has joined the channel
[16:30] mape: I think a lot of people would be interested in something complementing what you already did
[16:31] creationix has joined the channel
[16:31] proppy has joined the channel
[16:31] donspaulding: EyePulp: what's this then?
[16:31] mape: Wondering if its even possible to do something like mrdoobs sketchpad using logpull, performance wise
[16:31] creationix has joined the channel
[16:32] micheil: joemccann: look at your code. It's not a http server.
[16:32] micheil: so, response == undefined
[16:33] micheil: mape: well, to use reverse xhr, you'd loose the benefit of using websockets.
[16:33] micheil: in an odd way
[16:33] micheil: if you have highly live data, you'd loose the benefit
[16:33] mape: yeah
[16:33] micheil: if it's delayed but streaming data, then you'd have a benefit
[16:34] creationix: pgriess: hey
[16:34] micheil: so, the two uses for websockets: realtime data, streaming data
[16:35] bradleymeck1: dont forget buzzword bombing
[16:35] joemccann: micheil: it's within express
[16:35] mape: micheil: have you tried flash fallback with your server?
[16:36] micheil: mape: flash fallback should work, if it complies with draft75 or draft76
[16:36] maritz has joined the channel
[16:36] micheil: just like a java fallback should work
[16:36] micheil: or an xpcom fallback
[16:36] [[zz]] has joined the channel
[16:37] micheil: (theoretically I have the knowledge it would take to implement an extension for older versions of firefox that would given them websocket support.)
[16:37] micheil: it'd just be a matter of combining tech.
[16:37] micheil: joemccann: full code please.
[16:37] sh1mmer has joined the channel
[16:38] joemccann: micheil: will do
[16:39] joemccann: micheil: http://jsbin.com/isoge3/edit
[16:40] micheil: man.. these two Stars albums that I have just sound so damn good atm
[16:41] micheil: joemccann: that.response.end(chunk); should work
[16:41] micheil: because responses need to be end()ed
[16:43] joemccann: yeah, but it doesn't
[16:43] joemccann: :-(
[16:43] micheil: >_>
[16:44] _announcer: Twitter: "hmm. github api + twitter lists + node.js = ...?" -- Elliot Winkler. http://twitter.com/mcmire/status/17962571648
[16:44] TrisMcC: Hmm, nested anonymous functions with redis-node-client makes things hard to read. I think I'm in need of a pattern.
[16:45] viktors has joined the channel
[16:45] joemccann: micheil: thx for the help...i'll bbl to see if anything works
[16:46] micheil: oh, yeah, folks, did I mention I actually have an unpushed update to node-websocket-server that allows you to pass in a server as a second optional argument?
[16:46] micheil: so that you can have the websocket server hijack the Connect server for example?
[16:46] micheil: (it did / does actually work)
[16:47] CIA-76: node: 03Dmitriy Shalashov 07master * r70a8fb3 10/ (lib/http.js test/simple/test-http-blank-header.js): Fix headers with empty value. - http://bit.ly/cHFpuJ
[16:48] proppy: micheil: thanks for today's help on node-websocket-server
[16:48] proppy: see you later
[16:48] micheil: proppy: bye
[16:49] frodenius: oi guys, now that node runs on cygwin, has anyone tried mingW?
[16:49] qFox has joined the channel
[16:49] ryah: frodenius: it's hard
[16:49] ryah: ish
[16:49] frodenius: :)
[16:49] ryah: requires someone who knows a bit about system programming with windows
[16:49] creationix: micheil: hijack connect sounds like fun
[16:50] micheil: creationix: it is.
[16:50] frodenius: :/ who could be that somebody?
[16:51] bradleymeck1: probably no one using a scripting language :/
[16:52] kodisha has joined the channel
[16:52] ryah: frodenius: don't know
[16:53] ryah: would be awesome to work on mingw
[16:53] ryah: i really support the effort
[16:53] micheil: hmm..
[16:53] markwubben has joined the channel
[16:53] micheil: http.createServer().instanceOf == http.Server
[16:53] micheil: right?
[16:54] ryah: yes
[16:54] ryah: micheil: btw, can you stop using "ondata" and "onend"
[16:54] bradleymeck1: .instanceof? its a property too?
[16:54] ryah: i want to remove them soon
[16:54] ryah: and i don't want to break your code
[16:54] micheil: ryah: sure.
[16:55] ryah: just listen for the 'data' event.
[16:55] micheil: yeah, I think I did push that at some stage.
[16:55] micheil: req.socket.addListener("end", function(){
[16:55] micheil: req.socket.addListener("data", function(data){
[16:56] micheil: came in version 1.2.00 iirc.
[16:56] micheil: when I rewrote the parser for packets from the ground up to use an internal state instead of an external state which was always expecting messages in a specific format
[16:57] micheil: also when I made the parser use buffers
[16:57] micheil: http.createServer().instanceOf == http.Server #=> false
[16:57] pgriess: creationix: back from lunch
[16:58] pgriess: creatoinix: any thoughts on mandatory middleware mojo?
[16:58] creationix: pgriess: lunch? are you not in CA?
[16:58] pgriess: creationix: i'm in MO
[16:58] creationix: pgriess: I'm not quite sure I understand your problem
[16:58] mjr_ has joined the channel
[16:58] stepheneb has joined the channel
[16:58] creationix: do you have connect apps you want to pre-configure
[16:59] creationix: or do you want to use connect middleware with arbitrary http servers
[16:59] pgriess: creationix: we have a bunch of requirements for our web stack (various types of logging, input filtering, etc) which should be impossible to disable
[16:59] mape: creationix: Did you see my issue on connect?
[16:59] micheil: germany vs spain, 1.5hrs
[16:59] pgriess: creationix: was hoping to use connect for this
[16:59] benburkert has joined the channel
[16:59] pgriess: creationix: i'd prefer to use connect w/ arbitrary http severs
[17:00] Ori_P_ has joined the channel
[17:00] creationix: mape: I did, should be a quick fix
[17:00] pgriess: creationix: i'd like to facilitate creation of arbitrary http apps that happen to use connect to inject some mandatory middleware
[17:00] nj_dancer has joined the channel
[17:01] creationix: pgriess: it should be possible
[17:01] mape: creationix: Jup, not a big deal but might be strange for people using it the first time thinking the entire thing is broke
[17:01] micheil: hmm.. instanceOf seems to fuckup node-repl
[17:01] creationix: micheil: still, I thought that was fixed
[17:01] gwoo has joined the channel
[17:02] creationix: pgriess: so the "connect" executable already take any arbitraty instance of http.Server
[17:02] micheil: node> var http = require("http");
[17:02] micheil: node> var isServer = http.createServer() instanceOf http.Server;
[17:02] micheil: ...
[17:02] micheil: is what I get.
[17:02] pgriess: creationix: ok cool. it looked like that but i wasn't sure.
[17:02] pgriess: creationix: the -c option to specify a config looked promising, but i couldn't find any docs on format
[17:02] creationix: pgriess: as long as you get get ahold of the handler function and replace it with a wrapped version it's possible to inject connect middlewares
[17:02] tjholowaychuk: michaeil: instanceof ? no O ?
[17:03] creationix: pgriess: but I don't remember if it's available externally
[17:03] creationix: pgriess: I'm not sure about the -c option either. it probably broke with the closure refactor of connect
[17:03] creationix: tjholowaychuk: does -c still work?
[17:04] creationix: mape: so to reproduce your error, just put some empty files in a folder and try to serve them?
[17:04] tjholowaychuk: creationix: pgriess: should, try $ connect -C examples/config
[17:04] micheil: aha, tjholowaychuk saves the day!
[17:04] softdrink: job hunting without a current portfolio site = quite difficult
[17:05] micheil: softdrink: my portfolio site is called github.
[17:05] micheil: then I have a resume. not that I need it half the time.
[17:05] tjholowaychuk: pgriess: the key/vals are passed as if they were flags, so for example --no-color becomes 'no-color: true
[17:05] tjholowaychuk: module.exports = {
[17:05] tjholowaychuk: env: 'production',
[17:05] tjholowaychuk: port: 4321,
[17:05] tjholowaychuk: host: '127.0.0.1',
[17:05] tjholowaychuk: verbose: true,
[17:05] tjholowaychuk: 'no-color': true,
[17:05] tjholowaychuk: eval: ['require("sys").puts("anything you want!")',
[17:05] tjholowaychuk: 'require("sys").puts("or use an array for several flags")']
[17:05] tjholowaychuk: }
[17:05] tjholowaychuk: like that :D
[17:06] tjholowaychuk: and you can apply --config several times
[17:06] pgriess: tjholowaychuk: cool
[17:06] pgriess: tjholwaychuk: in what order are --config options applied?
[17:06] pgriess: (do i always want to append or prepend to set some mandatory rules)?
[17:07] tjholowaychuk: they are applied directly when the arg parser reaches --config so you can use the flag ordering to set precedence
[17:07] kodisha_ has joined the channel
[17:08] creationix: mape: got it "Error: Offset is out of bounds" fixing...
[17:08] pgriess: tjholwaychuk: so if i have --config A and --config B and both A and B set value x, who wins?
[17:08] tjholowaychuk: pgriess: B in that case
[17:08] tjholowaychuk: pgriess: you can use -v, --verbose to see the configurations as they load
[17:08] pgriess: tjholowaychuk: cool
[17:08] tjholowaychuk: it will say "loading config PATH" and spit out the flags
[17:09] technoweenie has joined the channel
[17:10] mikeal has joined the channel
[17:11] technoweenie has joined the channel
[17:11] pgriess: tjholowaychuk: ok, so how can i interact w/ the middleware sequence using these config objects? i can't quite tell from the docs if this is possible
[17:11] softdrink: micheil: my github has a single, *old* project on it hehe
[17:12] creationix: pgriess: it's not there yet, but I think it could be added
[17:12] micheil: softdrink: do more opensource then.
[17:12] creationix: pgriess: currently the connect middleware are only used to build the instance of http.Server
[17:12] micheil: 80% of my work that's paid, is opensource work, for this year
[17:12] mape: creationix: great, yeah just serve empty files
[17:12] tjholowaychuk: pgriess: that is my main beef with connect ATM. it needs to be more config-friendly in terms of shifting around middleware
[17:12] softdrink: nice
[17:12] creationix: the "connect" binary has nothing to do with Connect middlewares
[17:13] pgriess: ok
[17:13] softdrink: between work and family, basically all of my side projects are on hold :T
[17:13] topfunky has joined the channel
[17:13] micheil: hmm.. what was that simple file server using fs.read and sys.pump?
[17:13] rauchg_ has joined the channel
[17:13] softdrink: now if i could just find a nice node-based job that didn't support IE in any way…. :D
[17:13] creationix: pgriess: if you have any API suggestions we're open
[17:14] pgriess: so what do you guys think about this: create a wrapper around connect(1) that invokes my own wrapper.js which itself creates a connect.Server around the http.Server specified later in the commandline. and adds middlewares
[17:14] tjholowaychuk: pgriess: it would almost be nice to have something like server.use(connect.staticProvider, { after: connect.router })
[17:14] tjholowaychuk: or something
[17:14] jetienne: q. if i got a http client currently 'running' and i want to interrupt it. how can i do that ?
[17:14] mikeal: creationix: hehe, you had a funny commit message
[17:14] mikeal: "don't corrupt the db on compaction" :)
[17:14] creationix: mikeal: yeah, it was a nasty bug
[17:14] softdrink: pfffff… data integrity is for rubes.
[17:15] pgriess: tjholowaychuk: i don't know enough about the current api to say whether or not that will get me what i want, but sure, why not ;)
[17:15] softdrink: ¬¬
[17:15] creationix: mikeal: and after a couple of days of debugging the issue is that I was expecting a number to be a reference instead of a value
[17:15] tjholowaychuk: pgriess: not sure :D I was having similar frustrations with the Express -> Connect rewrite
[17:15] mikeal: i see
[17:16] creationix: tjholowaychuk: I like the api for building an app, but pgriess wants to be able to add middleware to a non-connect app
[17:16] creationix: just take node's hello-world exported as http.Server, and from the "connect" executable, add middleware filters to it
[17:17] tjholowaychuk: creationix: its ok it is just a bit clunky when you split your stack into env based configurations
[17:17] [[zz]] has joined the channel
[17:17] isaacs has joined the channel
[17:18] nj_dancer has left the channel
[17:20] creationix: 0 length buffers act strange
[17:20] mjr_: I'll bet they don't always work.
[17:21] mjr_: Maybe it should be an error to have a 0 length buffer?
[17:21] felixge has joined the channel
[17:21] felixge: so the game is starting in ~1h. I feel there should be a little twitter/node visualization : )
[17:21] felixge: who got some good ideas?
[17:22] mape: felixge: final?
[17:22] felixge: mape: half final, germany vs. spain
[17:22] mape: ah
[17:23] mape: felixge: visualize a fotball field and the ones cheering for a specific team moves the ball one way or the other?
[17:23] felixge: mape: that sounds like fun!
[17:23] ryah: tweets per second for one team or the other?
[17:23] felixge: a little random vector
[17:23] mape: yeah
[17:23] felixge: ryah: that could be the size of the vector
[17:23] felixge: :)
[17:24] creationix: mape: fixed, the problem is that zero-length buffers act funny
[17:24] creationix: mape: it just uses a string if the body is empty
[17:24] felixge: ok, probably going to use raphaeljs
[17:24] mape: x amount of tweets to score, and they cancel eachother, so 10 for spain and 10 for germany == middle of field
[17:24] felixge: what's a good twitter client lib for node?
[17:24] mape: creationix: ah k
[17:24] jetienne: q. if i got a http client currently 'running' and i want to interrupt it. how can i do that ? <- nobody for this one ?
[17:24] felixge: ACTION needs to go out and buy some beer now
[17:25] liucougar has joined the channel
[17:25] lianj has joined the channel
[17:25] ryah: http://www.nytimes.com/interactive/2008/02/23/movies/20080223_REVENUE_GRAPHIC.html
[17:25] ryah: ^-- something like this
[17:25] ryah: would be cool
[17:25] isaacs: creationix: GAY!
[17:25] isaacs: GAH i mean
[17:25] ryah: but with two colors, spain and germany
[17:25] isaacs: (not gay)
[17:26] isaacs: re: magic.js
[17:26] creationix: lol
[17:26] isaacs: but, you know what would be awesome?
[17:26] creationix: that's right creationix !== GAY
[17:26] isaacs: if, instead of making it at CONNECT.foo
[17:26] isaacs: you create a MODULES global, and then have something like MODULES.folder.subfolder
[17:26] creationix: isaacs: perhaps
[17:26] isaacs: so you could to MODULES.connect.somesubfolder.foo
[17:26] creationix: gtg
[17:27] creationix has joined the channel
[17:27] isaacs: aw, i hope he didn't leave because my typo questioned his sexuality...
[17:27] isaacs: creationix: wb. anyway, it'd be kinda like Rhino's "Packages" global
[17:29] pgriess: tjholowaychuk: is there a supported way to wrap an http.Server instance w/ a connect.Server? from what i can tell, i could just move all of the http.Server listeners to the connect server (including 'request' listeners)
[17:30] tjholowaychuk: pgriess: not sure what you mean, connect.Server is an instanceof http.Server
[17:30] tjholowaychuk: it should act the same
[17:31] pgriess: tjholowaychuk: say i wanted to allow someone to construct a literal http.Server (not a connect.Server) and then apply middlewares to that
[17:31] pgriess: tjholowaychuk: bin/connect right now handles all net.Server instances, but doesn't wrap http.Server in any way (as designed, i'm sure)
[17:31] tjholowaychuk: pgriess: ah :) hmm maybe we should add that support casting so that you can connect.Server(myOtherServer)
[17:31] creationix has joined the channel
[17:32] tjholowaychuk: without "new" of course
[17:32] tjholowaychuk: and we could handle copying anything that is necessary
[17:32] pgriess: tjholowaychuk: yeah, that's what i'm hoping for ;)
[17:32] felixge: ok, equiped with beer
[17:32] pgriess: that way i could just write my own dumb js wrapper for wrapping up arbitrary http servers w/ my own connect server (and required middlewares). then pass that to bin/connect
[17:36] micheil: odd..
[17:37] micheil: code that worked in node 0.1.98 is broken now.
[17:37] micheil: eventemitters are mutating a clone, not the original
[17:39] micheil: helps if I write correct code.
[17:43] _announcer: Twitter: "added browser support to the #nodejs async module. now you can use the same async patterns on the client and the server! http://is.gd/diXG9" -- Caolan. http://twitter.com/caolan/status/17966568864
[17:43] texodus has joined the channel
[17:43] _announcer: Twitter: "No duh I can't connect to the node.js http server.. it's running on :8000, I was connecting to :7000. *slow*" -- Micheil Smith. http://twitter.com/miksago/status/17966606482
[17:47] CIA-76: node: 03Ryan Dahl 07master * rfacb904 10/ (85 files in 11 dirs): Upgrade V8 to 2.2.23 - http://bit.ly/ccmPLR
[17:52] amuck has joined the channel
[17:56] creationix: pgriess: why can't you just convert your app to the connect middleware format
[17:56] creationix: that would be easier
[17:56] creationix: just needs to export a function that generates a handler function with (req, res, next)
[17:58] pgriess: creationix: yeah, i could do that for the apps that i work on. however, i'm also acting as a platform vendor for other teams. i'd prefer to avoid dictating that they use connect directly, even if the platform ultimately does so under the covers
[17:58] mape: http://rails-wargames.peepcode.com/
[17:58] mape: hehe
[17:58] creationix: pgriess: you could write an adaptor that converts any http server to a middleware
[17:58] creationix: I think connect might support that already
[17:58] ollie has joined the channel
[17:58] ryah: damn the v8 is broke on x64
[17:59] stride: mape: :D
[17:59] ryah: first time i don't check the build before committing :(
[17:59] pgriess: creationix: i'm happy to write an adapter. that's what i was talking about w/ tjholowaychuk. was wondering what all i needed to do. sounds like mucking w/ 'request' listeners is it
[17:59] mape: So bad time to fetch master on a x64 machine?
[18:00] felixge: mape: is that your code running?
[18:00] mape: Slowly foolin the ruby people into using node, one step at a time
[18:00] pgriess: creationix: afaict connect will run any http.Server instance, but assumes that it has any middlewares already configured (i.e. it treats a connect.Server as just a plane-jane http.Server w/ no additional logic)
[18:00] mape: felixge: Yup
[18:00] felixge: mape: nice
[18:01] creationix: pgriess: correct, but if you can treat the http.Server instance as a request handler, then it's usable as a middleware
[18:01] mape: Just glad people actually got it running
[18:02] pgriess: creationix: oh, how does that work? is connect smart enough to peek into the listeners array and invoke them in order?
[18:03] creationix: that's what I'm trying to figure out
[18:04] creationix: pgriess: found it, it's at serverInstance._events.request
[18:04] creationix: probably a hidden private api, but it's there
[18:04] mape: Hmm the demo is getting kinda slow enough though it uses svg..
[18:04] caolanm has joined the channel
[18:05] creationix: ryah: is there a public api to get at the request handler for a http.Server instance?
[18:05] gerad1 has joined the channel
[18:05] pgriess: creationix: you're looking for the set of 'request' listeners for http.Server? there is a public api for that as emitter.listeners('request')
[18:05] pgriess: creationix^^
[18:06] creationix: pgriess: yep, that's it
[18:06] caolanm: isaacs: ran into that npm bug that requires you to do "npm --registry http://registry.npmjs.org/ publish" as a workaround... took me ages to find the fix though, perhaps it should go on the README until its fixed?
[18:06] pavan_ has joined the channel
[18:06] isaacs: caolanm: good idea.
[18:07] gerad2 has joined the channel
[18:07] pgriess: creationix: cool, so how do you suggest i proceed here? i can manually construct the connect.Server wrapper for the time being based on listeners('request') and then just port to your API when you guys have implemented it
[18:07] creationix: pgriess: Connecr.createServer(require('./my_plain_app').listeners('request')[0])
[18:08] creationix: pgriess: I'd just write your wrapper as a connect server that requires the endpoint app as the last step in the chain
[18:08] ryah: creationix: server.listeners('request')
[18:08] creationix: ryah: thanks
[18:09] gf3 has joined the channel
[18:09] kersny has joined the channel
[18:09] pgriess: creationix: yeah. do you think you guys will create a more formal api for this at some point? or is it trivial enough to be not worth it?
[18:09] pgriess: creationix: want to know if i should expect to port this at some point soonish
[18:09] creationix: pgriess: I can make connect accept instances of Server at steps directly
[18:10] CIA-76: node: 03Ryan Dahl 07master * rb1901cd 10/ deps/v8/src/x64/codegen-x64.cc : hack fix to v8 2.2.23 - http://bit.ly/bD3HaA
[18:10] jxson has joined the channel
[18:10] isaacs: ryah: how would you feel about a patch to move process.binding('evals') to require('evals')?
[18:11] ryah: isaacs: i want somethign like that.. i'd like to rethink the scripts api in general
[18:11] ryah: i don't like it
[18:11] isaacs: yeah, it's a bit weird
[18:11] mikeal has joined the channel
[18:11] isaacs: i mean, the binding as it stands is kind of nice, since it gives you very fine-grained access to stuff.
[18:11] ryah: require('evals').createScript() ?
[18:11] ryah: yeah
[18:11] felixge: ok, doing this visualization takes too long : |
[18:11] isaacs: you like the name "evals"?
[18:11] felixge: oh well
[18:12] ryah: isaacs: *shrug*
[18:12] isaacs: ok.
[18:12] felixge: isaacs: 'evils'
[18:12] ryah: isaacs: what do you think?
[18:12] isaacs: ACTION feels equally opinionless about "evals"
[18:12] isaacs: require("script") looks like example code
[18:12] ryah: require('script').createScript()
[18:12] ryah: hm
[18:12] isaacs: though i guess it's no odder than require("module")
[18:12] felixge: require('script').create()
[18:13] felixge: maybe 'source'
[18:13] mape: felixge: what is taking time?
[18:13] ryah: felixge: +1
[18:13] ryah: on .create()
[18:13] isaacs: sure, i like source
[18:13] ryah: require('source').create() ?
[18:13] isaacs: oic
[18:13] isaacs: sure.
[18:13] ryah: i don't know
[18:13] ryah: require('script').create()
[18:13] maushu has joined the channel
[18:13] felixge: mape well, I've not done much with raphaeljs so far and I'm still trying to get the impact graph rendering done
[18:13] mostlygeek has joined the channel
[18:13] ryah: script is what v8 calls it...
[18:13] felixge: mape: haven't even started on the twitter/websocket stuff
[18:14] mape: felixge: ah k
[18:14] topfunky: raphael is awesome
[18:14] isaacs: ryah: here's a start, at least.
[18:14] isaacs: http://github.com/isaacs/node/commit/85ba67c045be4e23c2edfcfc39226c6954d7033a
[18:14] isaacs: i really think it's dangerous to have process.binding in the docs. people will expect that to be public.
[18:14] technoweenie: hey topfunky :)
[18:14] topfunky: hey :D
[18:14] isaacs: it kind of IS public, but i mean.. i dunno. it's complicated and subject to change without notice.
[18:14] mape: topfunky: Had any issues with wargames yet?
[18:14] isaacs: having it mentioned in the docs makes a promise we can't keep
[18:15] felixge: topfunky: yeah, as long as you give yourself more than 30min to do a difficult visualization with it :)
[18:15] topfunky: :D
[18:15] topfunky: mape: runs great, easy to setup
[18:15] topfunky: thanks for posting the code
[18:15] charlesjolley- has joined the channel
[18:15] technoweenie: does this mean theres going to be a node peepcode
[18:15] felixge: oh well, I'm sure the german team will play well without it :)
[18:15] ryah: require('sandbox') ?
[18:15] topfunky: technoweenie: definitely
[18:15] mape: Neat, glad to see you use it
[18:15] felixge: ryah: what about require('v8')
[18:16] ryah: felixge: eh..
[18:16] topfunky: mape: you didn't leave any credits to yourself in there. I'll probably add a link back to the source in the footer.
[18:16] isaacs: ryah: i like require('script')
[18:16] felixge: ryah: there might be other v8-specific stuff we want to expose in the future
[18:16] _announcer: Twitter: "Interesting use case for #nodejs: Long-polling PHP/Apache --> http://is.gd/diZHh" -- p6. http://twitter.com/p6/status/17968796752
[18:16] mape: topfunky: Its MIT so feel free to sell it ;)
[18:16] isaacs: require('script').compile(); require('script').createContext(); require("script").compile( require('script').createContext() )
[18:16] topfunky: heh
[18:16] mape: Guess we should add cross room wargames now that rails uses it
[18:16] mape: So we can nuke eachother
[18:16] topfunky: with colors
[18:17] isaacs: s = require("script"); s.compile(code).run(s.createContext())
[18:17] ryah: isaacs: require('sandbox').createScript(), require('sandbox').createContext()
[18:17] isaacs: ryah: but sandboxing is just one of the things you can do with it
[18:17] isaacs: require("sandbox").runInThisContext()?
[18:17] khug has joined the channel
[18:18] isaacs: require("sandbox").dontUseASandbox()
[18:18] stagas has joined the channel
[18:18] ryah: require('context') ?
[18:18] isaacs: that's weird to me
[18:18] ryah: require('contexts') ?
[18:18] isaacs: ryah: at the very least, the commit above moves it into a module so we're not relying on process.binding externally
[18:18] isaacs: let's have this conversation in JS-land :)
[18:18] pquerna: ttp://docs.python.org/library/compiler.html
[18:19] isaacs: require("compiler")?
[18:19] felixge: I like require('v8' ) ...
[18:19] isaacs: require("javascript")
[18:19] felixge: why obfuscate at this point
[18:19] pquerna: compiler is the wrong word, its javascript, just looking at how python structured it :)
[18:19] felixge: it's really just exposed v8 bindings, no?
[18:19] ryah: felixge: not really v8 specific
[18:19] isaacs: felixge: i dunno... someone may build a spidermonkey node some day, and implement these bits in that API
[18:19] pquerna: spidermonkey could power it
[18:19] ryah: require('evaler') ?
[18:19] isaacs: rhino can already do most of these things. hell, they *invented* evalcx
[18:20] ryah: require('compiler') is kind of nice
[18:20] mape: topfunky: how long ago did you start the instance?
[18:20] felixge: isaacs: yeah ... that's sounds like a real-world problem ;)
[18:20] isaacs: hehe
[18:20] topfunky: 10 or 20 minutes ago
[18:21] isaacs: felixge: i think it's more the principle that a module name is a part of the public API surface, and so should describe what it is and what it does, not how it does it or the tools it uses
[18:21] mape: k
[18:21] pquerna: isaacs: +1
[18:22] charlesjolley-: any npm guru's in here?
[18:22] isaacs: charlesjolley-: i'm here, but i have to go to a meeting soon.
[18:23] amerine has joined the channel
[18:23] _announcer: Twitter: "This summer, practicing in JS (+ Node, Raphael), Erlang / OTP and possibly android." [ru] -- Devgru. http://twitter.com/Devgru/status/17969286798
[18:24] charlesjolley-: ok hi - quick question then - is there anyway to be able to reference a package as if it were installed but still inside of my app.
[18:24] JimBastard: charlesjolley-: you mean like require('mymod') ?
[18:24] JimBastard: without using npm?
[18:24] charlesjolley-: yep
[18:24] JimBastard: thats a great question
[18:24] JimBastard: i wish i knew the answer
[18:24] JimBastard: isaacs: ?
[18:24] isaacs: charlesjolley-: require("./foo/bar")?
[18:24] isaacs: i'm not sure i grok the questions
[18:24] JimBastard: i actually have that problem across a lot of my apps right now
[18:25] JimBastard: isaacs: require('myModule')
[18:25] charlesjolley-: ok - so I have a package foo
[18:25] technoweenie: cant you vendor it to something and add that vendor as a require path
[18:25] JimBastard: where myModule.js is just a module sitting in your dir
[18:25] charlesjolley-: code is at foo/lib/bar.js
[18:25] charlesjolley-: so if I install this package via npm I can access the code via require('foo/bar')
[18:25] isaacs: charlesjolley-: gotcha
[18:25] JimBastard: i think you have to mess with the require paths yeah
[18:25] isaacs: k
[18:25] charlesjolley-: I would like to still be able to do this but without installing the package first
[18:25] charlesjolley-: is that possible right now?
[18:25] JimBastard: yeah, same here
[18:26] JimBastard: so people can use my libraries with or without npm
[18:26] isaacs: charlesjolley-: so, you want to have "foo/bar" in your require paths, without installing foo first?
[18:26] isaacs: charlesjolley-: no. however, you can do this:
[18:26] charlesjolley-: basically.
[18:26] isaacs: charlesjolley-: { "dependencies" : { "foo":"*" }, "link" : { "foo" : "./deps/foo" } }
[18:27] isaacs: charlesjolley-: then, in your code, you don't use require("foo/bar"), you use require("./deps/foo/bar")
[18:27] micheil: :D http://github.com/miksago/node-websocket-server/commit/d3445908c6c9b872923bbedef172ae26a67d732d
[18:27] micheil: can has hijacking
[18:27] charlesjolley-: ah
[18:27] charlesjolley-: ok
[18:27] charlesjolley-: hm
[18:27] isaacs: charlesjolley-: and if someone doesn't want to use npm to set it up, then you tell them "link this to there"
[18:27] micheil: tjholowaychuk: ^^
[18:27] TommyM has joined the channel
[18:27] isaacs: charlesjolley-: or, you have a git submodule or something
[18:27] charlesjolley-: but if the code in foo is in foo/lib dir
[18:27] brianmario has joined the channel
[18:27] charlesjolley-: that wouldn't work right?
[18:27] charlesjolley-: I would have to do
[18:28] charlesjolley-: ./deps/foo/lib/bar
[18:28] charlesjolley-: ?
[18:28] isaacs: charlesjolley-: require("./deps/foo/lib/bar"); { "link" : {"foo" : "./deps/foo/lib" } }
[18:28] technoweenie: add ./deps to require paths?
[18:28] isaacs: you dont' need to add anything to the require paths
[18:28] technoweenie: ideally npm wouldnt be required in any app
[18:28] isaacs: charlesjolley-: an easier way would be for you to say "put foo in your require path." then do require('foo')
[18:28] isaacs: charlesjolley-: and perhaps mention that npm can do this for you
[18:28] gerad has joined the channel
[18:29] tjholowaychuk: micheil: what lol
[18:29] charlesjolley-: so first of all, I don't mind requiring npm
[18:29] isaacs: technoweenie: i agree.
[18:29] micheil: tjholowaychuk: now, you can use node-websocket-server with connect
[18:29] charlesjolley-: but I think my issue is that the code is at foo/lib
[18:29] charlesjolley-: so I can't just put foo in my require path
[18:29] technoweenie: put foo/lib in it
[18:29] micheil: tjholowaychuk: it's not quite a middleware, but it does sort of work like that.
[18:29] isaacs: charlesjolley-: this is one of the many problems with requiring internal modules in another package.
[18:29] tjholowaychuk: micheil: ah cool :D
[18:29] charlesjolley-: then I would just do
[18:29] mape: micheil: nice, have any examples on the hijacking?
[18:29] charlesjolley-: require('bar')
[18:29] isaacs: charlesjolley-: mikeal actually has made the case that npm shouldn't even expose the lib folder at all.
[18:29] isaacs: should JUST do main
[18:29] micheil: mape: yeah, check out echo-server
[18:30] charlesjolley-: isaacs: yeah but there are a couple of cases at least for my projects I know this is require.
[18:30] mikeal: yup
[18:30] charlesjolley-: oh
[18:30] micheil: mape: echo-server also now serves up the client.html page
[18:30] charlesjolley-: I totally disagree with that.
[18:30] charlesjolley-: I hope you don't go that direction
[18:30] mikeal: when you think about the default semantics for Modules
[18:30] isaacs: ok, let's you and him fight about it.
[18:30] mikeal: they require that you explictely expose each public object
[18:30] charlesjolley-: well I agree that its nice to have require('foo') just work but a lot of times I need to do require('foo/bar')
[18:30] isaacs: :)
[18:30] mikeal: why not extend that to the Packages level?
[18:30] mape: btw could someone not in sweden check to test if http://svtplay.se/v/2028950/fotbolls-vm/semifinal__tyskland_-_spanien works?
[18:30] technoweenie: foo/lib/foo/bar.js
[18:31] mikeal: require('foo/bar') isn't actually defined in a repeatable way in the spec
[18:31] mikeal: and it's a nightmare to implement for some people
[18:31] kodisha has joined the channel
[18:31] charlesjolley-: well it should be
[18:32] mikeal: it doesn't line up with how Modules work
[18:32] creationix has joined the channel
[18:32] mape: micheil: client.html?
[18:32] charlesjolley-: how so?
[18:32] mikeal: you didn't explicitly say that those modules are public
[18:32] micheil: mape: yeah, the example client.
[18:32] mikeal: and there isn't a way to make them private if you generically allow loading that way
[18:32] mape: oh k
[18:32] charlesjolley-: CommonJS (and JS in general) doesn't have any concept public vs private
[18:32] micheil: mape: fire up the server, visit localhost:8000, and you'll get the client.html
[18:32] charlesjolley-: except by convention
[18:32] micheil: no need for another server
[18:32] mikeal: charlesjolley-: oh yes it does
[18:33] mape: ah k
[18:33] derferman has joined the channel
[18:33] charlesjolley-: how so?
[18:33] mikeal: what do you think exports is?
[18:33] charlesjolley-: but there is no concept of a public vs private module
[18:33] mikeal: why do think the entire module load is wrapping in a function in an eval
[18:33] mikeal: it's so that you don't add to the global namespace and everything that isn't part of exports is private
[18:34] charlesjolley-: you still need a way to define submodules inside of a package
[18:34] charlesjolley-: or else you will really limit the usefulness of the package
[18:34] mikeal: yes, everything is private by default unless you add it to exports
[18:34] mikeal: right
[18:34] charlesjolley-: also when used in the web browser, it is actually really important to be able to load submodules individually
[18:34] charlesjolley-: b/c ther eis a cost to each module you load
[18:34] mikeal: require('mymodule').subpackage
[18:34] charlesjolley-: no that won't work
[18:34] charlesjolley-: in the browser.
[18:34] charlesjolley-: not in a way that has good performance
[18:34] mikeal: it will if you dont' incur an HTTP request
[18:35] mikeal: Modules in the browser aren't going to work with an HTTP request per require call
[18:35] mikeal: seriously
[18:35] charlesjolley-: I'm not worried about the HTTP request
[18:35] charlesjolley-: I'm worried about how long it takes to process that indivdual module
[18:35] mikeal: if you care about performance then you shouldn't be considering an HTTP request per module load
[18:35] charlesjolley-: to work well on the ipad, for example, modules need to be loaded a strings and eval'd only on demand
[18:35] mikeal: it's not like script loading
[18:35] charlesjolley-: so it is really important that you only eval as needed
[18:35] joemccann: anyone have a tutorial or code sample of outputting JSON using a buffer? can't find any
[18:35] charlesjolley-: and not entire packages
[18:35] mikeal: all the calls will be sequential
[18:35] charlesjolley-: the eval cost is non-trivial on ipad/iphone/android etc
[18:35] mikeal: charlesjolley-: you can do that
[18:36] mikeal: module.exports = myobject
[18:36] mikeal: myobject has getters and setters
[18:36] mikeal: done
[18:36] charlesjolley-: not on IE
[18:36] mikeal: IE isn't on the iPd
[18:36] mikeal: er iPad
[18:36] charlesjolley-: but IE has the same problem
[18:36] charlesjolley-: also eval is non-trivial
[18:36] mape: micheil: so how to hook that so it listens on the same port but different path?
[18:36] charlesjolley-: needs to be loaded as strings and eval'd on demand etc etc
[18:36] mikeal: eval is require for Modules
[18:37] mikeal: you have to load them in a special context, you can't just have them be loaded like scripts
[18:37] charlesjolley-: exactly
[18:37] mikeal: the thing is
[18:37] charlesjolley-: the point is that if you just access submodules as properties on a main.js module
[18:37] mikeal: Google has been optimizing performance like this for a long time
[18:37] mikeal: and you know how they do this kind of shit
[18:37] charlesjolley-: I know I've been working with them
[18:38] micheil: mape: websockets are over an upgrade request, so it effectively runs as two servers
[18:38] charlesjolley-: tell me
[18:38] JimBastard: Can you add a penis stamp tool? Would save me a lot of time.
[18:38] mikeal: they put commented out code in and eval it
[18:38] JimBastard: felix!
[18:38] mikeal: lazy loading it as necessary
[18:38] mikeal: it's fuckin ugly but it's faster than letting the browser load all of it on it's onw
[18:38] charlesjolley-: mikeal: that is exactly the technique I am talking about
[18:38] mikeal: right, so why wouldn't you send all the module available to the client and lazy load them
[18:39] charlesjolley-: that's exactly what I am suggesting
[18:39] charlesjolley-: but if your package is structured such that I have to do require('foo').bar
[18:39] mikeal: actually, fuck this
[18:39] charlesjolley-: that means require('foo') will eval ALL modules in the package
[18:39] mape: micheil: so just write a middleware that takes the ws server as an arg?
[18:39] tzmartin has joined the channel
[18:40] mikeal: all you have to do is wrap the initial load of each submodule with a function that loads it
[18:40] charlesjolley-: whereas require('foo/bar') would allow me to eval individual modules as needed
[18:40] mikeal: you don't even need getters and setters
[18:40] ryah: schland
[18:40] mikeal: so, for your one use case, that would be easier to implement but doesn't actually require this feature
[18:40] mikeal: and the cost of it is that you can't have private modules
[18:40] charlesjolley-: I don't understand what you mean
[18:40] mikeal: and Packages aren't in alignment with Modules
[18:41] aubergine has joined the channel
[18:41] mikeal: just do require('mymodule').submodule()
[18:41] micheil: mape: no, you have your http.Server, then you do: ws.createServer(options, httpServerInstance)
[18:41] mikeal: and setup loader functions on the exports of the main
[18:41] charlesjolley-: hm.
[18:41] mikeal: then you can still lazy load them and you only expose the public modules
[18:42] tilgovi has joined the channel
[18:42] charlesjolley-: well I really hope we don't go that direction anyway. it seems like a hack.
[18:42] charlesjolley-: you could easily have public vs private modules
[18:42] mape: micheil: and the http.Server is what Connect.createServer() returns?
[18:42] charlesjolley-: by naming in the packages.json which directory contains the 'public' modules
[18:42] mikeal: the great thing about this is that within the context of that module you can still lazy load all the private modules with a regular require
[18:42] charlesjolley-: and any other directory is private
[18:42] charlesjolley-: i.e. public modules are in lib
[18:42] charlesjolley-: private are in pirvate or something
[18:42] mikeal: that won't work
[18:43] mikeal: lib contains *all* your code
[18:43] charlesjolley-: why?
[18:43] mikeal: that's actually what it's defined as in the spec
[18:43] charlesjolley-: not in my packages
[18:43] charlesjolley-: tests for example
[18:43] mikeal: tests are in another directory
[18:43] mikeal: because they could be omitted during installation
[18:43] micheil: mape: it did, not sure if it still does, that's a question for tjholowaychuk
[18:43] mape: hmm k, would be really great to be able to do that
[18:44] tjholowaychuk: mape: sorry i think i missed that what was the q?
[18:44] mikeal: charlesjolley-: in terms of the spec
[18:44] mape: have enough ports used as it is running different thingys
[18:44] mape: tjholowaychuk: what Connect.createServer() returns
[18:44] mikeal: what will probably happen is that if you only define main, everything else will be private, and if you define lib all the modules will be public
[18:44] charlesjolley-: well I would love to look up the spec and figure this out but ...
[18:44] charlesjolley-: on well maybe later when commonjs.org is back up
[18:44] mape: Trying to make micheils websocket server run on the same port as Connect
[18:44] tjholowaychuk: mape: it just returns a connect.Server, which is an instanceof http.Server
[18:45] mikeal: because the narwhal guys like lib working that way
[18:45] mape: tjholowaychuk: k, great
[18:45] tjholowaychuk: so you should be able to do whatever you could to an http.Servr
[18:45] mikeal: charlesjolley-: yeah, it's annoying
[18:45] gerad has left the channel
[18:45] charlesjolley-: narwhal is not the best example though because even they have said they want to move away from their way of mapping paths
[18:45] tyfighter has joined the channel
[18:45] charlesjolley-: (i.e. where they just overlay paths - like Ruby)
[18:45] mikeal: i'm telling you what I think we should use, but i don't think the spec will only support my proposal
[18:45] charlesjolley-: it leads to all sorts of crazy confusion
[18:45] mikeal: mappings is retarded
[18:46] charlesjolley-: heh
[18:46] charlesjolley-: I was one of the people that asked for that feature. :)
[18:49] bmizerany has joined the channel
[18:50] tjholowaychuk_ has joined the channel
[18:54] stepheneb_ has joined the channel
[18:54] stepheneb_ has joined the channel
[18:55] charlesjolley-: so mikeal have you been contributing to npm? or is it just isaacs[away] ?
[18:56] mikeal: i contributed a while back
[18:56] mikeal: and helped write the registry
[18:56] charlesjolley-: ok
[18:56] mikeal: haven't lately, it's working for everything i need
[18:56] mikeal: and isaacs is quick about bugfixes so I'm totally content writing other code I have :)
[18:56] _announcer: Twitter: "Released node-websocket-server 1.3.00, changelog & annoucement here: http://is.gd/dj1Yt #websockets #nodejs" -- Micheil Smith. http://twitter.com/miksago/status/17971550323
[18:57] mikeal: Mappings/C as a solution for a problem is a little out of hand IMHO
[18:57] mikeal: it's grown and grown and grown
[18:57] charlesjolley-: hm. so I'm basically trying to convert SproutCore to use CommonJS and to run on node.js. I would really like to just live on npm/node.js but I'm trying to understand how I would build a large system with lots of built in unit tests and tooling
[18:57] mape: micheil: pushing to npm? :)
[18:57] mikeal: reading the spec by itself it's hard to even understand what it's trying to solve, IMHO
[18:57] micheil: should already be there
[18:57] bradleymeck1: C as a solution? i dont see too many libs using C that dont require it for things like bindings
[18:58] charlesjolley-: right now npm seems very simple but I can't figure out how to bend it the way I want.
[18:58] charlesjolley-: :/
[18:58] mikeal: npm doesn't impose anything about testing
[18:58] mape: micheil: hmm says it is 14h ago in the repo
[18:58] mikeal: it installs stuff in to node, handles dependencies
[18:58] charlesjolley-: well it doesn't impose anything but it doesn't help either.
[18:58] charlesjolley-: :)
[18:58] mikeal: and installs bins
[18:58] micheil: :/
[18:58] charlesjolley-: if you want people to write lots of packages they need to be able to easily write unit tests.
[18:58] mikeal: charlesjolley-: one thing I'm going to do
[18:59] charlesjolley-: and when we go to deployment we need to be able to 'freeze' packages inside of a parent package
[18:59] mape: micheil: when I do latest it says Nothing to install
[18:59] charlesjolley-: to make sure we always get the right version installed
[18:59] mikeal: is make node-utils a package, and all it is is deps on the individual modules
[18:59] JimBastard: charlesjolley-: npm is being actively developed right now, i think it would be very appropriate time to suggest new features
[18:59] charlesjolley-: so far I haven't figured out how to get those to work.
[18:59] mikeal: charlesjolley-: npm does that
[18:59] charlesjolley-: now?
[18:59] charlesjolley-: how>
[18:59] charlesjolley-: how?
[18:59] mikeal: you define the version you require, and it'll *always* import that one
[18:59] mikeal: when it installs, it writes a shim, and the shim insures that the required version is at the top of the require.paths
[19:00] mikeal: it's actually works really well
[19:00] mikeal: in fact, it has to violate the current spec in order to do this :)
[19:00] _announcer: Twitter: "http://nodejs.org node.js reading about possible to develop applications with possibilities JS console I / O, curious ..." [es] -- tamat. http://twitter.com/tamat/status/17971804603
[19:00] mikeal: the current packages spec is super in to literal semver semantics
[19:00] micheil: mape: damn thing didn't push.
[19:00] charlesjolley-: where is this shim written to?
[19:01] charlesjolley-: I hate semver.
[19:01] charlesjolley-: I've written it several times
[19:01] mikeal: and they want 0.1.1 to also mean 1.1.999
[19:01] charlesjolley-: wrote seed (http://seedjs.org)
[19:01] mikeal: er 0.1.999
[19:01] charlesjolley-: we published about two dozen packages to try it out
[19:01] charlesjolley-: semver is a nice guide for versioning but in practice it's almost impossible for developers to keep those versions straight in my experience
[19:01] mikeal: charlesjolley-: in .node-libraries where all of the npm install is done it's a ball of sym links and shims
[19:01] micheil: uugghh.. no ssl. >_>
[19:02] charlesjolley-: right
[19:02] charlesjolley-: but not per package right?
[19:02] JimBastard: Site Temporarily Unavailable We apologize for the inconvenience. Please contact the webmaster/ tech support immediately to have them rectify this. error id: "bad_httpd_conf"
[19:02] JimBastard: no more seed?
[19:03] micheil: mape: yeah, it's there now.
[19:04] micheil: mape: for a test I had to compile node without ssl, which buggered up npm
[19:04] mape: ah k
[19:04] mape: jup, worked :)
[19:05] jakehow has joined the channel
[19:09] isaacs[away]: mikeal: actually, it defaults to {prefix}/lib/node now
[19:09] isaacs: the better to work with nave and nvm
[19:09] mikeal: oh really
[19:09] isaacs: yeah
[19:09] mikeal: i see
[19:09] mikeal: cool
[19:09] isaacs: also, works better with monit that way
[19:09] mikeal: really?
[19:10] isaacs: since Monit starts up as user nobody, with no $HOME dir
[19:10] isaacs: charlesjolley-: you can specify a "test" script, and then run "npm test "
[19:11] isaacs: but that test script can be whatever.
[19:11] creationix has joined the channel
[19:11] _announcer: Twitter: "Still trying to suss out what's special about node.js. It's a fast event-driven I/O library for Javascript, right? Not trying to snark here." -- Jim Crawford. http://twitter.com/mogwai_poet/status/17972551499
[19:12] mjr_: isaacs: prefix/lib/node is a win, IMO.
[19:12] mape: hmm should html.replace(/"([^ ]*)+"/g, '$1'); really kill a server? (the string is 3200 chars)
[19:12] stepheneb_ has joined the channel
[19:12] mjr_: I've been enjoying that.
[19:13] JimBastard: bradleymeck1: whats up with _utility?
[19:13] bradleymeck1: that shouldnt kill it
[19:13] isaacs: mjr_: yeah. i was drinking the multiuser koolaid. if you want npm to work in multiuser mode, install node in your home dir
[19:13] bradleymeck1: ummm appears to be dead, havent been watching it, 20s and ittl be up again
[19:13] mjr_: Yeah. This was is actually better for multiuser machines with a single admin though.
[19:14] joemccann: request.addListener('response', function (response) { that.response.writeHead(200, {'Content-Type': 'application/json'}); response.addListener('data', function (chunk) { that.response.end(chunk); //that.response.write(chunk); sys.puts('BODY: ' + chunk); }); });
[19:14] mape: oh, * and +
[19:14] JimBastard: bradleymeck1: i can help set that guy up to not go down if you want
[19:14] joemccann: any ideas on wy sys.puts(chunk) outputs the full JSON object
[19:14] joemccann: yet
[19:14] _frankie has joined the channel
[19:14] joemccann: that.response.end(chunk) only outputs a portion of it?
[19:14] joemccann: ??
[19:14] joemccann: stumped
[19:14] JimBastard: !tweet @mogwai_poet the community is amazing. check out the modules page or the IRC room sometime
[19:15] JimBastard: :-\
[19:15] _frankie has joined the channel
[19:15] isaacs: charlesjolley-: i keep meaning to write a big detailed uber nerdy blog post about how npm works, and my strong feelings about package managers and what's wrong with almost all of them.
[19:15] isaacs: charlesjolley-: (reading through the backlog)
[19:15] JimBastard: !tweet @mogwai_poet the community is amazing. check out the modules page or the IRC room sometime
[19:15] bradleymeck1: heh, if you got something feel free to take it off the repo
[19:16] JimBastard: do you know why its crashing?
[19:16] bradleymeck1: couple of reasons i have seen
[19:16] JimBastard: i can toss the bot on nodejitsu and use our error catching / restarting logic
[19:16] JimBastard: but if there is a specific bug we should fix it
[19:16] JimBastard: if you feel like copy and pasting any error messages / line numbers that would be a good start
[19:17] JimBastard: but i can look into it for sure
[19:17] bradleymeck1: 1 is ppl sending pms to it and trying to blow it up, 2 is that the machine its on isnt exactly the best inet connection
[19:17] texodus has joined the channel
[19:17] bradleymeck1: i fix bugs as i see em
[19:17] JimBastard: bradleymeck1: who?
[19:17] JimBastard: ive got beefy hosting
[19:17] bradleymeck1: my desktop lol
[19:17] JimBastard: i mean, who is sending pms trying to blow it up
[19:18] JimBastard: i can yell at them
[19:18] bradleymeck1: various, no one in particular
[19:18] JimBastard: :p
[19:18] JimBastard: got ya
[19:18] JimBastard: ill see if i have the time to get it hosted up on nodejitsu
[19:18] JimBastard: and get error logging / auto restarting in place
[19:18] JimBastard: maybe this weekend
[19:19] JimBastard: its not picking up my tweet?
[19:19] JimBastard: do i need to identify? or does it still reset every connect?
[19:19] isaacs: charlesjolley-: the reason i haven't yet is that i keep getting distracted. whenever i sit down to write it, i get to a point where i'm like, "yeah, npm SHOULD do that! and it doesn't! i'm gonna fix that right now!"
[19:19] bradleymeck1: says it sent
[19:19] JimBastard: !tweet @mogwai_poet the community is amazing. check out the modules page or the IRC room sometime
[19:19] JimBastard: http://twitter.com/nodejsbot ?
[19:19] bradleymeck1: you need to identify for twitter
[19:19] bradleymeck1: idk it says dup status, its twitter not the bot that time
[19:20] pplante has joined the channel
[19:20] JimBastard: im identified
[19:20] JimBastard: odd
[19:20] bradleymeck1: no, as the bot
[19:20] JimBastard: maybe there is a lag
[19:20] isaacs: JimBastard: i see it
[19:20] JimBastard: yeah, there she is
[19:20] isaacs: JimBastard: http://twitter.com/nodejsbot/status/17972779988
[19:20] JimBastard: yeah, took a sec
[19:20] tjholowaychuk has joined the channel
[19:21] rictic has joined the channel
[19:23] kodisha_ has joined the channel
[19:24] ezmobius has joined the channel
[19:26] maushu has joined the channel
[19:33] benburkert has joined the channel
[19:34] kriszyp: why does process.compile("syntax error","file"); produce an uncatchable error?
[19:35] charlesjolley-: so isaacs I would really like to understand where you want npm to end up
[19:35] charlesjolley-: b/c I would not mind contributing to it to make it what I need
[19:35] isaacs: kriszyp: because v8 is a jerk
[19:35] charlesjolley-: but I don't want to waste time working on features that you won't take anyway
[19:35] kriszyp: it's v8's fault?
[19:35] isaacs: i kid, i <3 v8, but it doesn't let you get proper stack traces for syntax errors.
[19:35] kriszyp: ok
[19:35] charlesjolley-: I already wrote a system that works the way _I_ wanted it (seedjs)
[19:35] kriszyp: the stack trace looks fine
[19:35] isaacs: kriszyp: try the stuff in process.binding("evals")
[19:35] charlesjolley-: but I always believe that if there is a way to build on other people's work it would be better
[19:35] kriszyp: I just can't catch it
[19:36] isaacs: kriszyp: yeah, when you make it catchable, you lose the first item in the error callstack
[19:36] charlesjolley-: build on ==> support
[19:36] isaacs: charlesjolley-: not ignoring you, sorry, multitasking
[19:36] isaacs: charlesjolley-: i'd absolutely LOVE help with npm.
[19:37] isaacs: charlesjolley-: and towards that end, yes, i need to get a lot of these things out of my head and into some consumable documentation.
[19:37] isaacs: so that, maybe you see it and go "that's completely the wrong decision, and here's why" and either i get convinced, and npm is better for it, or we hit an impasse, and you decide whether or not it's a dealbreaker for you, etc.
[19:37] isaacs: also, maybe you get convinced, and help me build it, etc.
[19:37] isaacs: there's a lot that could be done
[19:38] tjholowaychuk: kriszyp: I ran into that too :(
[19:38] tjholowaychuk: suckss
[19:38] isaacs: process.binding("evals").Script.compileInThisContext(code) should be catchable, but you won't have a full stack trace.
[19:40] JimBastard: isaacs: i can definitely help with npm changes as well. we should prob link up in the next few weeks and spec out a development roadmap?
[19:41] isaacs: yeah
[19:41] JimBastard: in regards to general npm features, and then the specific ones we've discussed
[19:41] isaacs: i started that in the doc/future-ideas folder in the npm repo
[19:41] JimBastard: charlesjolley- seems like he would be a great resource too
[19:41] isaacs: +1 agreed
[19:42] JimBastard: charlesjolley-: if there are any specific things you want to see, if you could get them in writing somewhere on the npm repo that would be great for me
[19:42] isaacs: issues!!
[19:42] mjr_: mikeal: want to try to have a node-up in SF sometime soon and talk about streams, pump, pause, and throttling?
[19:42] isaacs: ACTION <3 github issues SO DAMN MUCH
[19:42] JimBastard: yeah for sure
[19:42] isaacs: i use jira all day at work, and then i come home to github issues, and it's like a delightful shower after a long day shoveling shit.
[19:43] mikeal: mjr_: yes
[19:43] mikeal: when is ryah back?
[19:43] micheil: end of week or next week
[19:43] mjr_: I dunno, I figured from emails that he must already be back.
[19:43] Astro: my impression of expressjs: for the coolness, but without love :(
[19:43] isaacs: mjr_: they have email in france
[19:43] mjr_: huh, really?
[19:43] JimBastard: Astro: +20
[19:44] Astro: JimBastard: any recommendations?
[19:44] JimBastard: http://github.com/cloudhead
[19:44] JimBastard: all day
[19:44] JimBastard: he's building the stack in pieces
[19:44] JimBastard: vows, journey, resourcer
[19:44] JimBastard: etc
[19:44] JimBastard: start with journey
[19:44] JimBastard: it hasn't been glued together yet....hes working really hard on vows and resourcer first
[19:44] JimBastard: thats testing + ORM
[19:44] isaacs: yeah, cloudhead is doing *exactly* the kind of development that npm is designed to enable.
[19:44] JimBastard: Astro:
[19:45] JimBastard: i've had a lot of long conversations with cloudhead, i really like where he is going
[19:45] isaacs: lots of little testable pieces, assemble them together, end with something awesome.
[19:45] isaacs: the newer extjs (tj/timc) stuff is similar, with connect, nStore, etc.
[19:45] JimBastard: but yeah Astro , it depends what you are trying to do....
[19:46] romainhuet has joined the channel
[19:48] bmizerany has joined the channel
[19:48] mikeal: mjr_: i was actually going to send out an email about this kind of stuff
[19:48] pgriess: hey isaacs, npm install seems busted for a package i just published. tarball can't be found somehow
[19:49] isaacs: pgriess: are you sure it uploaded? did it say "ok" at the end?
[19:49] mjr_: mikeal: seems like we'd need a whiteboard, and ryah to be in the room to really move it forward.
[19:49] pgriess: isaacs: hm, i'm not sure. that console session is gone now.
[19:49] mikeal: i felt like that last thing we did was super productive
[19:49] isaacs: pgriess: pkg/version?
[19:49] pgriess: isaacs: but i cannot publish now, as it claims an existing version ... exists
[19:50] pgriess: isaacs: webworker/0.8.0
[19:50] mikeal: and i think we should put together more meetups like that
[19:50] mikeal: i've been jokingly referring to them as "node illuminati" meetups
[19:50] mikeal: but just grabbing a few interested parties and hashing stuff out is really productive
[19:50] mikeal: maybe we should end them with a podcast or something just to add little more transparency
[19:51] mjr_: mikeal: agreed. The last meeting was great. Getting a handful of people in a room with a whitebaord can lead to some big progress.
[19:51] isaacs: pgriess: it's there, but the ENOENT seems to be coming from websocket-client
[19:51] mape: mikeal: somekinda recording sounds great, allow the community not in the area to follow along
[19:51] mjr_: And yes, there's no reason not to make it all public, other than it's hard to have a conversation in public.
[19:52] isaacs: pgriess: huh. that's odd. it's not activating, and then trying to find the active version
[19:52] mikeal: if we put on twitter that there is a node meetup in SF 40 people will show up and 10 of them will just be Ruby developers
[19:52] pgriess: isaacs: interesting. 'npm ls' claims that it's available remotely
[19:52] Astro: JimBastard: thank you very much
[19:52] isaacs: i'll post a bug, maybe get to it this week.
[19:52] kennethlove has joined the channel
[19:52] mikeal: it's hard to work through serious issues in that environment
[19:52] pgriess: isaacs: any suggestion for how to recover?
[19:52] Astro: so much halfbaked frameworks make me disoriented
[19:52] mikeal: who do we know at joyent other than ryah?
[19:52] mape: mikeal: have the bbqs been like that?
[19:52] JimBastard: Astro: anytime. let me know if you have any questions about cloudhead's stuff. hes on vacation for the week
[19:52] isaacs: pgriess: if i manually activate websocket-client 0.9.3, then it installs webworker@0.8.0 just fine
[19:52] mjr_: mikeal: we need like a node-workers group of people actually working on code inside of node.
[19:52] mikeal: commonjs.org needs a new home
[19:52] pgriess: isaacs: i can bump the version on websocket-client if that would help, but i'm not really sure what the problem is
[19:53] isaacs: yeah, me neither. i'll debug later
[19:53] mikeal: mape: the BBQs are in the east bay and Ruby developers are afraid of the bridge :)
[19:53] mape: ah hehe
[19:53] mape: then have the meetings while doing bbq and they will stay away?
[19:53] mjr_: mape, are you going to fly out for mikeal's next BBQ?
[19:54] mikeal: mjr_: i don't think that's the best criteria
[19:54] mape: How long is the bbq? :P
[19:54] pgriess: isaacs: there seems to be a problem w/ webworker-0.8.0 as well (Error: not found in registry: 0.8.0)
[19:54] mape: And doubt I would be of great benefit
[19:54] pgriess: isaacs: anyway i'll file some bugs
[19:54] mikeal: i can think of people who don't have patches in to node-core that would be good to have in some conversations
[19:54] isaacs: pgriess: i see it there.http://registry.npmjs.org/webworker/0.8.0
[19:54] mjr_: mikeal: yeah, for sure. I was just trying to invent a really clean distinction.
[19:55] mjr_: What would be a better one?
[19:55] isaacs: pgriess: please post an issue with the full console output from the install attempt.
[19:55] mikeal: i think we should come up with a topic for a meetup and then just work through a list
[19:55] mikeal: we can do it over email
[19:55] stepheneb has joined the channel
[19:55] tjholowaychuk: isaacs: hehe I like the logo, reminds me of mario
[19:55] mjr_: mikeal: You mean work through who is coming and when over email?
[19:55] isaacs: mikeal: if there's room, i'd like an invite.
[19:56] mjr_: isaacs: we invited you to the last one, but you couldn't make it.
[19:56] isaacs: i have an interest in sys.pump (if that's what you'er gonna discuss)
[19:56] isaacs: mjr_: oh... um.. sorry bout that :)
[19:56] mikeal: for example, if we we're talking about web stuff or Connect i would want mde there, but if we're just talking about streams and pump mde would just be bored
[19:56] _announcer: Twitter: "any node.js libraries out there for internationalisadfsdfdsfdzation?" -- Dylan Clendenin. http://twitter.com/deepthawtz/status/17975618511
[19:56] isaacs: right
[19:56] mikeal: isaacs: you're invited
[19:56] mikeal: and, done
[19:57] jbr has joined the channel
[19:57] isaacs: !tweet @deepthawtz "internationalisadfsdfdsfdzation" is my new favorite word.
[19:57] mikeal: internationalisadfsdfdsfdzationisatan
[19:57] mikeal: er
[19:57] mikeal: internationalisadfsdfdsfdzationistan
[19:57] mjr_: 2-way IRC/twitter is great.
[19:57] charlesjolley-: isaacs: the big issue I'm hitting right now is that my code needs to be able to access packages without having to actually install them. or by installing them only locally
[19:57] isaacs: or "i29n"
[19:57] mape: can't do internationalisafs without ���
[19:58] mikeal: charlesjolley-: why don't you just copy them in to the lib dir and do a relative import then?
[19:58] pgriess: isaacs: http://github.com/isaacs/npm/issues/issue/90
[19:58] charlesjolley-: so I'm working on system that lots of other developers are doing to have to use
[19:58] isaacs: charlesjolley-: maybe we should have this discussion on npm-@googlegroups.com
[19:58] isaacs: pgriess: here's the problem: npm install webworker 0.8.0
[19:59] isaacs: that should be npm install webworker@0.8.0
[19:59] charlesjolley-: cool joined.
[19:59] isaacs: pgriess: otherwise it's trying to install webworker@latest and 0.8.0@latest
[19:59] isaacs: and there's no package named "0.8.0"
[19:59] pgriess: isaacs: ah, gotcha
[19:59] charlesjolley-: I'll try to figure out how to describe what I want to do concisely
[19:59] isaacs: charlesjolley-: looking forward to it!@
[19:59] pgriess: thanks
[19:59] pgriess: isaacs: isaacs: is there already a bug for some commands taking "package version" syntax and otheres taking "package@version"?
[20:00] isaacs: pgriess: there should be :)
[20:00] pgriess: isaacs: i'll file it :)
[20:00] isaacs: package@version should be used everywhere. where it's not, it's a bug
[20:00] pgriess: isaacs: ok. i'll catalog known offenders
[20:00] isaacs: in fact, i'd also like to support "dependencies" : ["foo@stable"]
[20:08] mape: connect has auto reload mode?
[20:08] tjholowaychuk: mape: nope
[20:08] mape: just isaacs lying then :/
[20:09] tjholowaychuk: AFAIK. there might be a contrib mod that will
[20:09] tjholowaychuk: I dont like hack-ish reloading so im pretty meh about that
[20:09] _announcer: Twitter: "Multi user sketchpad by @mrdoob... uses #nodejs #websockets and canvas, of course. http://mrdoob.com/blog/post/701 #dude... #cool #web" -- Peter van der Zee. http://twitter.com/kuvos/status/17976834753
[20:09] tjholowaychuk: but if there is transparent reloading that actually works well then a middleware for it would be nice :D
[20:10] mape: yeah, btw converted my assetManager middleware today
[20:10] mape: tjholowaychuk: have you figured out a standard for user middleware yet?
[20:10] ollie has joined the channel
[20:11] tjholowaychuk: mape: for now at least we are chucking them on the wiki http://wiki.github.com/extjs/Connect/
[20:11] mape: k
[20:11] mikeal: the biggest problem in node right now is that people want things to solidify faster than is sane
[20:12] skampler: how do you mean mikeal ?
[20:12] skampler: the api?
[20:12] mikeal: Connect is awesome, but still evolving, and it should keep evolving and breaking compatibility before people start building a ton of middleware
[20:12] mikeal: no, ryah is great about not caring about breaking compat and iterating in a way that is good for node-core
[20:13] tjholowaychuk: for sure, if we come across a need for that I have no problem with additional changes
[20:13] mikeal: but like, 4 months ago, everyone was trying to write JSGI and eJSGI middlware
[20:13] tjholowaychuk: but as for now things are "solid"
[20:13] mikeal: and then we decided that was a bad route
[20:13] mikeal: and Connect is a much better route, but is still evolving
[20:13] mikeal: but people are already like "how do i write middlware!"
[20:14] tjholowaychuk: in most cases middleware should / could be tiny interfaces to whatever library. connect-form is a good example of that
[20:14] mikeal: node is just too exciting for people to not want to jump on everything that looks promising
[20:14] bradleymeck1: user middleware?
[20:14] tjholowaychuk: uses formidable behind the scenes but makes it easily accessible via the middleware, and that way even if our api changes it would only require
[20:14] tjholowaychuk: a small amount of time to fix
[20:15] mikeal: tjholowaychuk: totally, but i think you should feel free to break the api and break connect-form from time to time if you feel it's necessary
[20:15] mjr_: I like the tension between people wanting stability and others wanting to keep making things better.
[20:15] bradleymeck1: mape what are you looking for in user middleware?
[20:15] mjr_: Without real users, it's hard to know what's important.
[20:15] tjholowaychuk: mikeal: of course, we did once already :D haha. but large changes have to be important because that is a shit load of work haha
[20:15] tjholowaychuk: we had to update alllll the middleware, allllll the docs all the examples blah blah
[20:16] mikeal: mjr_: yup, but every month we get a flood of new people who are pissed all over again when things change
[20:16] mape: bradleymeck1: Looking for? I made an assets manager that allows you to post/pre manipulate client css/js with minification, that auto reloads and whatnot
[20:16] mikeal: eventually you get used to it
[20:16] mikeal: and learn to love it
[20:16] JimBastard: i dont see the need for coupling together anything right now
[20:16] aubergine has joined the channel
[20:16] mjr_: mikeal: there will always be some set of people pissed off about something.
[20:16] JimBastard: everything should work independent of everything else
[20:16] mikeal: tjholowaychuk: but that was a good change, and most of your current middleware you wrote and are using to dogfood it so that makes sense
[20:16] mikeal: mjr_: very true
[20:17] mikeal: man, mjard is really fucking up my tab complete ease of use :P
[20:17] mikeal: not his fault tho
[20:17] tjholowaychuk: ACTION cant wait for new Express to be finisheDDDDddd GAHHh
[20:17] JimBastard: !kick mjard
[20:17] mjr_: as long as everybody is generally excited about node, and the community stays active and inviting, I think we all win.
[20:17] tjholowaychuk: must type faster
[20:17] JimBastard: ACTION waits, it will work one day
[20:24] JimBastard: nice now that phiggins is gone, lets talk about how awesome Dojo is
[20:26] blowery: DOJO IS AWESOME
[20:29] bradleymeck1: if only its docs were easier to learn from
[20:29] micheil: blowery: it is.
[20:30] bradleymeck1: fast as heck though
[20:35] callen: tjholowaychuk: did they speed up Express at all?
[20:35] tjholowaychuk: callen: 1.0 will be way faster. I can remove soooo much legacy cruft
[20:36] callen: tjholowaychuk: I'll link, http://blog.bitemyapp.com/2010/03/initial-django-express-node-testing.html
[20:36] callen: tjholowaychuk: hacky-quickie writeup, note the date.
[20:36] callen: having posted that, can someone tell me why everyone insists on doing flask/sinatra style url routing?
[20:37] tjholowaychuk: callen: cool, well the new version can easily dish out a good 25k rps
[20:37] tjholowaychuk: callen: it is just a style, but with that style you can easily generate resourceful routing with some metaprogramming
[20:37] callen: tjholowaychuk: that doesn't mean anything, come on. what does raw node pump out on the same setup?
[20:38] tjholowaychuk: but I think people like it (i do) because it is very WYSIWYG
[20:38] callen: tjholowaychuk: meta-programming just so I can centralize my url routing? :|
[20:38] callen: tjholowaychuk: 25k rps with express, okay but what's the % drop from raw node on serving the same resources?
[20:38] callen: tjholowaychuk: I don't really care about big numbers, I want a rough sketch over the overhead in terms of throughput and latency above and beyond node.
[20:38] tjholowaychuk: callen: that is all you would be doing with resourceful routing anyways, is looping around generating some routes
[20:39] tjholowaychuk: callen: very little, I cant give you percentages yet but I will post about that
[20:39] maritz has joined the channel
[20:39] tjholowaychuk: callen: it is built on Connect, so these graphs will give you an idea http://tjholowaychuk.com/post/664516126/connect-middleware-for-nodejs
[20:40] callen: tjholowaychuk: I mean, I could say that I get 50k rps on node, but it doesn't mean anything without context.
[20:40] callen: you need context, differential, controls, etc.
[20:40] tjholowaychuk: of course
[20:40] callen: tjholowaychuk: well what I'm wondering is, where's the data?
[20:40] mertimor has joined the channel
[20:40] tjholowaychuk: no where right now, im in the middle of the rewrite
[20:40] callen: we're presumably all here because node brings new hotness to the table, and part of that is the unbridled performance and stability under load it provides, but I see little/no actual data on anything anyone writes for node.
[20:41] tjholowaychuk: i see
[20:41] callen: tjholowaychuk: how is connect slightly *below* node on those benchmarks when it's presumably doing more work?
[20:41] mape: the buffer cache
[20:42] callen: mape: aha, the magic of all unexplained performance improvements. caching :)
[20:42] mape: At least I believe that is the cause
[20:42] tjholowaychuk: yup
[20:42] callen: well they're good results, but doesn't speak for express yet. I hope it turns out well because I'd like a shake-n-bake framework for node.
[20:42] mape: the cache makes synthetic benches really fast
[20:43] callen: I like fiddling with node for one-offs and for testing ideas, but at present it's difficult to be productive without rolling together an ad-hoc framework. which sucks.
[20:43] tjholowaychuk: callen: now that node is "stable" I can do much faster / nicer things with Express
[20:43] callen: tjholowaychuk: "stable" hahaha, let me tell you about npm and addListener ;)
[20:44] tjholowaychuk: I consider it stable haha. but a bunch of us have been with node since like... wayy back..
[20:46] phiggins has joined the channel
[20:46] Astro: callen: that was backwards compat breakage by npm
[20:47] onar has joined the channel
[20:47] callen: Astro: yes. implementing a feature that exists only in ^HEAD of your language implementation is clearly the practice of a stable ecosystem.
[20:47] callen: and when I say ^HEAD, I mean it had utterly replaced everything in npm within 24 hours. and it was a name change.
[20:47] callen: not something that actually improved anything. a syntax change.
[20:47] mscdex: node.js rules!
[20:47] callen: mscdex: thank you for your cogent contribution.
[20:47] mscdex: you're welcome
[20:48] huyhong has joined the channel
[20:48] tjholowaychuk: lol
[20:48] tjholowaychuk: yayyy
[20:48] tjholowaychuk: breakage
[20:48] texodus has joined the channel
[20:48] callen: shit, if you google node express benchmark, my blog post comes up.
[20:49] callen: #1 result
[20:49] tjholowaychuk: hm
[20:49] technoweenie: congrats
[20:49] tjholowaychuk: im #1 in google for tons of local shit
[20:49] tjholowaychuk: doesnt matter much though
[20:49] technoweenie: i'm not, i still havent written anything of value
[20:50] tjholowaychuk: "node framework"
[20:50] tjholowaychuk: express is #3
[20:50] mscdex: i'm on the first page for googling the basename of my domain name
[20:50] tjholowaychuk: apparently
[20:50] mscdex: huhu
[20:50] technoweenie: beat out by http://www.stefanhabel.de/filmakademie_rnd/node_framework.html fo rme
[20:50] benburkert has joined the channel
[20:50] callen: tjholowaychuk: I don't know how Picard is the top result on github for node framework.
[20:50] technoweenie: Node Framework: An object-oriented C++ framework implementing a data structure for building complex 3D scenes
[20:50] callen: http://dl.dropbox.com/u/6396913/simple.rps.png <--- see? this is what bothers me. lots of overhead, rapidly getting into "clownshoes" territory.
[20:51] mscdex: vrml ftw
[20:51] tjholowaychuk: callen: that is really old
[20:51] tjholowaychuk: callen: but yes, if you want an app that does nothing at all you will match basic node speeds
[20:52] callen: tjholowaychuk: well, "does nothing" is the inverse of overhead :)
[20:52] tjholowaychuk: aka no routing or anything
[20:52] mscdex: hello world stuff
[20:53] technoweenie: callen: what are you looking for?
[20:54] callen: technoweenie: for?
[20:54] technoweenie: faster node frameworks?
[20:54] tjholowaychuk: callen: even having url.parse(req.url) on every request is going to bog you down
[20:54] callen: technoweenie: fast is less a concern than latency/overhead
[20:54] callen: technoweenie: with event loops latency becomes rather directly impacted by overhead.
[20:55] tjholowaychuk: express vs node in those benchmarks, node does nothing at all except respond
[20:55] callen: tjholowaychuk: they're both returning a text/plain 'Hello world!'
[20:55] tjholowaychuk: callen: but if you are interested in something like express 1.0 will be out next week
[20:55] tjholowaychuk: callen: yes, but to route properly you need to parse the url
[20:55] tjholowaychuk: the node examples do not
[20:55] callen: tjholowaychuk: I'll test it again then, yes @ 1.0
[20:55] cloudhead has joined the channel
[20:55] callen: tjholowaychuk: you really think that'll have a significant impact?
[20:56] tjholowaychuk: callen: 1.0? or the url parsing?
[20:56] callen: latter
[20:56] callen: tjholowaychuk: I'll make you a deal, when I get ahold of 1.0 and do some testing, I'll share the data with you, since you have a vested interest and knowledge of express, you'll get access to the results first and you get to make your case and let me know what tweaks might be suggested.
[20:56] tjholowaychuk: callen: haha ok fair
[20:56] khug: I haven't read the scrollback too far, but I wrote a router in node with url generation & nested segments (if that's what you're looking for)
[20:57] khug: you can find it in geddy
[20:57] callen: tjholowaychuk: then, once I'm satisfied we've covered all the probable bases/tweaks, I'll go ahead and post them.
[20:57] khug: http://github.com/mde/geddy/blob/master/geddy-core/lib/router.js
[20:57] mscdex: gedddyyyyy!
[20:57] tjholowaychuk: callen: sounds good
[20:58] khug: should work anywhere, though I'm half-way through making it more standalone
[20:58] JimBastard: i have a really solid nodejs web framework i wrote, its not released, check it out http://gist.github.com/467264
[20:58] markwubben has joined the channel
[20:58] mikeal has joined the channel
[20:58] tjholowaychuk: JimBastard: :D
[20:59] tjholowaychuk: looks feature rich :) i like it
[20:59] markwubben has joined the channel
[20:59] callen: I love how it's not even text/html.
[20:59] khug: it's so... flexible!
[20:59] JimBastard: tjholowaychuk: i was going for a port of asp.net 1.0
[20:59] khug: a hacker's framework
[20:59] technoweenie: JimBastard: fuck that, asp.net razor ftw
[20:59] JimBastard: ive had some issue with generating stubs from my RDBMS
[21:00] JimBastard: but so far it hasnt been that big of a deal
[21:00] _announcer: Twitter: "Next up it's dog walking, .Net and node.js" -- Tim Hastings. http://twitter.com/timhastings/status/17981004385
[21:00] JimBastard: :p
[21:00] callen: tjholowaychuk: http://howtonode.org/express-mongodb adjusting for version differences, is this still relevant?
[21:00] mscdex: asp.net?! more vee bee please!
[21:00] tjholowaychuk: callen: no clue
[21:00] JimBastard: it burns when i VB
[21:00] tjholowaychuk: callen: probably not
[21:00] technoweenie: uh, asp.net doesnt use vb, gosh
[21:00] zapnap has joined the channel
[21:00] callen: tjholowaychuk: haha, okay. well I'll just hack up my own
[21:01] tjholowaychuk: callen: ya just wait for 1.0 it is a decent change
[21:03] callen: tjholowaychuk: got an ETA?
[21:03] callen: tjholowaychuk: I ask because I'll be bored when I get home tonight :)
[21:03] tjholowaychuk: callen: july 14th-ish
[21:03] tjholowaychuk: callen: I could push up the branch, would not hurt to get some more contrib
[21:04] JimBastard: bastille day release?
[21:04] mscdex: technoweenie: vb.net?
[21:04] tjholowaychuk: JimBastard: what is that
[21:05] mcai8sh4 has joined the channel
[21:05] JimBastard: what kind of canadian are you!
[21:05] JimBastard: http://en.wikipedia.org/wiki/Bastille_Day
[21:05] mcai8sh4: mape: thanks for sharing your code - now I have to figure out how to get it working :)
[21:05] mape: mcai8sh4: should be easy enough, shout if you hit a wall, but be sure to check the readme
[21:06] JimBastard: not a french one
[21:06] tjholowaychuk: JimBastard: ah :D
[21:06] tjholowaychuk: nah not french
[21:06] mcai8sh4: mape: will do thanks - I should be able to figure it out
[21:06] mape: :)
[21:07] callen: JimBastard: clearly you aren't aware of the great enmity the anglo-canadians have for the French Canadians, and, the storming of the Bastille happened long after most French Canadians had already emigrated
[21:07] callen: JimBastard: so there really isn't a substantial number of people in Canada with any real connection to the holiday.
[21:08] JimBastard: i heard there arent a substantial amount of people in canada too
[21:08] callen: 30m, enough to displace the natives.
[21:08] tjholowaychuk: hahaha
[21:08] tjholowaychuk: canada is sweet :p
[21:08] JimBastard: but im a NYC xenophobe, why would i know this stuff lol
[21:08] callen: more people than the city you're irrationally obsessed with.
[21:08] JimBastard: lol callen is a hater
[21:08] callen: JimBastard: no, you're just an ignorant tool, there's a difference.
[21:09] tjholowaychuk: we are all ignorant tools
[21:09] blackdog has joined the channel
[21:09] callen: tjholowaychuk: but some open their mouths enough to prove it for all the world.
[21:09] JimBastard: im not a tool
[21:09] JimBastard: i sure ignant though
[21:09] benburkert has joined the channel
[21:09] kodisha has joined the channel
[21:10] tjholowaychuk: ohhh man assert.response() is so nice
[21:10] JimBastard: yeah now i remember, callen was the guy who decided to randomly start attacking me when i said something about ruby he didnt like
[21:10] JimBastard: :-)
[21:11] tjholowaychuk: there are lots of things i dont like about ruby
[21:11] tjholowaychuk: lots of things about js too
[21:11] tjholowaychuk: but less
[21:11] callen: JimBastard: if I recall correctly, you were being ignorant, making substantiated claims, otherwise talking out your ass
[21:12] callen: JimBastard: ...and you left, not I, and the room went about its business.
[21:12] callen: JimBastard: pardon me for calling you on your bullshit.
[21:12] callen: JimBastard: for the record, I don't work in ruby or use it outside of personal toys, and I'm not that huge a fan, but personal allegiances don't mean I'm going to let you blow your ass into here and pretend it's true.
[21:12] JimBastard: you assume 1. i gave a shit about what i saying, 2. i gave a shit about what you think or ruby, 3. i wasnt uber busy at work and had no interest in suffering fools
[21:13] JimBastard: i dont like you
[21:13] JimBastard: case closed
[21:13] shimondoodkin has joined the channel
[21:13] callen: JimBastard: listen, you're a pathological liar, self-promoter, and a fool. I don't care what you think.
[21:13] JimBastard: send me your github one day and maybe ill change my mind
[21:13] JimBastard: :-)
[21:13] aurynn: That's something odd to come into
[21:13] callen: JimBastard: django stuff, you wouldn't care. and I'd rather you not steal my code
[21:13] tjholowaychuk: haha
[21:13] JimBastard: i dont think ive lied once in this room abou tanything
[21:13] callen: JimBastard: god forbid you tweak a few knobs and call the whole thing yours.
[21:14] JimBastard: yes, i steal code and claim its my own
[21:14] mape: hehe, the dance off begins
[21:14] benburkert has joined the channel
[21:14] JimBastard: and i dont support it
[21:14] mape: http://www.graceisforsinners.com/wp-content/uploads/2009/07/cat_dance_off.jpg
[21:14] callen: what more need I say.
[21:15] JimBastard: seriously though, you can call me whatever you want and i wont really care.....except for a liar
[21:15] JimBastard: i keep it real as shit
[21:15] JimBastard: all the time
[21:15] JimBastard: so yeah
[21:15] callen: he always leaves whenever I call him out.
[21:15] callen: well anyway.
[21:15] callen: tjholowaychuk: looking forward to bastille day then :)
[21:16] tjholowaychuk: callen: me too, haha and now i know it exists!
[21:16] callen: tjholowaychuk: you didn't know it *existed*?
[21:16] aurynn: Cat. Dance.
[21:16] callen: aurynn: KITTY?! where?
[21:16] tjholowaychuk: callen: im not big on grammar :p
[21:16] aurynn: You're a kitty!
[21:16] aurynn: yes you are!
[21:16] _announcer: Twitter: "If you want to do Web Sockets with Node.js, drop in @miksago 's node-websocket-server as a dependency. Fantastic. http://dshaw.me/cOEl44" -- Daniel Shaw. http://twitter.com/dshaw/status/17982038333
[21:16] callen: ACTION :D
[21:16] mape: Like a cat fight / dance off
[21:16] callen: aurynn: I have a cat. I love her dearly.
[21:17] callen: tjholowaychuk: now I'm just confused.
[21:17] callen: tjholowaychuk: oh wait. dude. I wasn't correcting your grammar
[21:17] tjholowaychuk: callen: oh :p
[21:17] callen: tjholowaychuk: I was just filing that moment away in my, "Americans aren't the only ones ignorant of world history" database
[21:17] aurynn: I have a -5 saving throw against all cat-related Fortitude challenges, sadly.
[21:17] callen: tjholowaychuk: I like to keep anecdotes like that as an arsenal for whenever I encounter the French.
[21:18] mape: You should stay away from the french, they are crazy
[21:18] mape: who else uses a space before punctuation
[21:19] mape: Crazy people!
[21:19] MrTopf has joined the channel
[21:19] callen: mape: "Crazy people !"
[21:20] mape: ACTION tilts callen on his side
[21:20] mape: ACTION!
[21:20] tjholowaychuk_ has joined the channel
[21:20] JimBastard has joined the channel
[21:21] JimBastard: hey callen, i leave because im at work and if i spent another minute in the room listening to you, id start spending my valuable time trying to do something terrible to you....which i just dont have the time or desire to do.
[21:21] callen: lmfao what.
[21:22] admc_ has joined the channel
[21:22] admc has joined the channel
[21:22] aurynn: Guys, guys, it's just IRC.
[21:22] texodus has joined the channel
[21:22] mape: aurynn: Correction, it's the internets.
[21:23] charlesjolley-: someone is wrong on the internet!!!!
[21:23] mscdex: *interwebz
[21:23] aurynn: WE'RE ALL WRONG ON THE INTERWEBZ.
[21:23] callen: I don't care about the internet, I just care when people steal code and don't credit the original creator
[21:24] callen: particularly when the original code was actually full copyright, not BSD/MIT
[21:24] mscdex: in the internet, nobody can hear you scream
[21:24] shimondoodkin: are there any coltural diferences here? you know one day i was thinkni g to my self what is politness, agirl thought this guy is ruge , but he thout he was normal, and he thought the girl is rude.. cultural mis understanding..
[21:24] callen: for godssakes, this isn't #4chan
[21:25] mape: They use freenode?
[21:25] mcai8sh4: mape: sorry to do this, but I've installed both dependencies, but I'm getting an error : Error: Cannot find module 'node-websocket-server/lib/ws' Any ideas?
[21:25] aurynn: In the internet, cat macro.
[21:25] mape: mcai8sh4: where did you place it?
[21:26] tjholowaychuk_ has joined the channel
[21:26] felixge has joined the channel
[21:26] felixge has joined the channel
[21:26] tjholowaychuk: fuck whatth fuck
[21:26] mcai8sh4: all three dirs are at the same level - then I used npm install irc and npm install (whilst in the websocket dir)
[21:27] mape: try just doing 'node-websocket-server'
[21:27] callen: tjholowaychuk: networking issues?
[21:27] tjholowaychuk: callen: probably
[21:27] callen: tjholowaychuk: D: I hate that.
[21:27] tjholowaychuk: people are always streaming crap here
[21:28] callen: tjholowaychuk: work?
[21:28] bradleymeck1 has joined the channel
[21:28] tjholowaychuk: home lol
[21:28] tmpvar has joined the channel
[21:28] tjholowaychuk: \/ work
[21:29] tjholowaychuk: cant escape / ! wtf
[21:29] tjholowaychuk: lame
[21:29] tjholowaychuk: ACTION has no IRC-foo
[21:29] jakehow has joined the channel
[21:29] mape: /what?
[21:29] JimBastard has joined the channel
[21:29] mscdex: yay! new es5 methods in node head
[21:30] mape: that breaks on x64?
[21:30] JimBastard: callen you ignant fuck, learn to actually do some research instead of just reading HN comments and going OMFG JIMBASTARD STOLED CODE
[21:30] tjholowaychuk: mscdex: oOoO like what
[21:30] mscdex: Object.preventExtensions and Object.isExtensible
[21:30] mscdex: :-D
[21:30] callen: JimBastard: lol.
[21:30] JimBastard: I GAVE FULL CREDIT THE WHOLE TIME AND THE ONLY REASON ANYONE KNEW THERE WAS ANOTHER AUTHOR WAS BECAUSE I FLAMED HIM HARDCORE
[21:30] JimBastard: ALL OVER THE PLACE
[21:30] callen: JimBastard: it was copyrighted
[21:30] callen: JimBastard: you had no right to take, re-implement, or release the code.
[21:30] JimBastard: [21:23] callen: I don't care about the internet, I just care when people steal code and don't credit the original creator
[21:30] JimBastard: [21:23] callen: I don't care about the internet, I just care when people steal code and don't credit the original creator
[21:31] JimBastard: you are the ignorant one
[21:31] JimBastard: with a hard on for me
[21:31] tjholowaychuk: mscdex: it's like xmas, love seeing new v8 stuff
[21:31] JimBastard: go fuck off again
[21:31] callen: JimBastard: if it weren't for the fact that patorjk is a nice guy (I've been following him for awhile) you'd have a lawsuit against you right now.
[21:31] callen: sockpuppets are fun.
[21:31] mscdex: tjholowaychuk: yep
[21:31] callen: so who else is tired of this? because I definitely am.
[21:31] mape: are there any plans on __noSuchMethod__?
[21:32] callen: mape: duck-typing'ish?
[21:32] tmpvar: callen, I think you are alone on this one, bud
[21:32] tjholowaychuk: haha wow writing a book for packt sucks
[21:32] tjholowaychuk: will never do it again
[21:32] callen: tmpvar: I'm just sitting here, he keeps coming back and attacking. *shrugs*
[21:32] JimBastard has joined the channel
[21:32] callen: JimBastard: again, really?
[21:32] tjholowaychuk: 1800$ === lame, terrible royalties
[21:32] mscdex: mape: dunno, but would be nice to have some more es5 added in sooner than later
[21:32] JimBastard: im tired of you callen ya. patorjk can sue me all fucking day. i paid money to a 3rd party engineer to white room the whole thing from the OG spec. im completely protected.
[21:33] JimBastard: you know nothing
[21:33] JimBastard: and assert all this stuff
[21:33] JimBastard: its laughable
[21:33] mape: callen: wouldn't know what that is
[21:33] tjholowaychuk: assert.ok(letsStopFighting)
[21:33] callen: mape: n/m
[21:33] JimBastard: i really take offense to people being retarded
[21:33] callen: mape: type discipline for ruby/python
[21:33] mape: mscdex: yeah
[21:33] tjholowaychuk: uncaughtException ASDASDFASDFsf
[21:33] callen: JimBastard: I take offense to self-promoting blowhards who steal code.
[21:33] callen: JimBastard: so, I guess we're at an impasse.
[21:34] mape: are there any stats on the speed increases of V8 over time?
[21:34] JimBastard: callen: and what did i steal?
[21:34] callen: mape: like PyPy's chart?
[21:34] JimBastard: Figlet?
[21:34] JimBastard: Figlet is OSS
[21:34] JimBastard: Javascript?
[21:34] JimBastard: did i steal javascript?
[21:34] callen: ...
[21:34] mape: callen: well just a graph of benchmark results shown over versions
[21:35] mcai8sh4: mape: error not found in registry
[21:35] mape: mcai8sh4: hmm that is a npm error?
[21:35] callen: mape: right, like pypy. uh, I'm not aware of one at the moment, it's mostly browser centric stuff I'm afraid.
[21:35] tjholowaychuk: with MIT cant they legally steal / re-brand code as their own?
[21:35] tjholowaychuk: does not seem to happen much but that is what I got from that
[21:35] callen: mape: you could write a script that iterates over the revisions, runs a benchmark, saves it, and then continues until it hits trunk.
[21:35] mape: Think you still have to leave it in or something
[21:35] callen: tjholowaychuk: well it's a question two versus three clause BSD then
[21:35] mape: but you can sell/alter/redistro
[21:36] callen: tjholowaychuk: 3 clause requires attribution, 2 clause does not.
[21:36] mape: callen: hehe yeah, not that curious, just a little
[21:36] callen: tjholowaychuk: regardless the original code involved was under full copyright.
[21:36] callen: mape: I'm almost bored enough.
[21:36] tjholowaychuk: hm
[21:36] tjholowaychuk: that shit confuses me
[21:36] tjholowaychuk: i dont like reading licenses lol just MIT everything
[21:36] callen: tjholowaychuk: law is like formulating a finite state machine.
[21:36] cloudhead has joined the channel
[21:36] callen: tjholowaychuk: it's either broken or it isn't, and you fall to your conclusions like a pachinko machine.
[21:36] mape: I find it easier to just write code not worth stealing
[21:37] tjholowaychuk: we should write a ragel FSM for that
[21:37] tjholowaychuk: haha
[21:37] mcai8sh4: mape: yes
[21:37] mjr_: mape: better start suckifying your code then.
[21:37] tjholowaychuk: %%{ machine law;
[21:37] mscdex: that's not a word!
[21:37] mape: mjr_: Did that quite some time ago
[21:37] mape: mcai8sh4: what is the exact command?
[21:37] mjr_: add more suck
[21:37] callen: mape: hahahahaha
[21:37] mjr_: still too good
[21:38] shimondoodkin: you know i read all licenses i use and i choose for my code Public Domain
[21:38] callen: shimondoodkin: that's tricky, because not all countries have Public Domain
[21:38] mcai8sh4: sudo npm install node-websocket-server
[21:38] callen: shimondoodkin: Germany in particular has a fucky Public Domain situation
[21:38] mape: mcai8sh4: drop the node-
[21:38] stride: we do?
[21:38] shimondoodkin: what does it mean?
[21:38] callen: shimondoodkin: public domain doesn't protect the right of anyone to use the code as they see fit, you have to use BSD/MIT to accomplish that, otherwise the national gov't can restrict/license/charge for the use of public domain code.
[21:39] ithinkihaveacat has joined the channel
[21:39] mape: mcai8sh4: sudo npm install websocket-server
[21:39] callen: shimondoodkin: so by public domaining your code, you're preventing some people from being able to legally make use of it freely.
[21:39] mape: no npm packages prefix with node- since it is all node :)
[21:39] callen: mape: yeah I thought the style guide told people not to do that?
[21:39] mape: or well some do, but most don't
[21:39] tjholowaychuk: mape: haha what you mean no node-express-redis-client
[21:39] tjholowaychuk: :D
[21:39] mape: CO CO COMBO BREAK
[21:39] callen: tjholowaychuk: getting people to just pick a noun is hard sometimes.
[21:39] shimondoodkin: so i need like one close bsd
[21:40] callen: shimondoodkin: it needs to actually be under a license that guarantees the freedom of the user/programmer, yes.
[21:40] mape: MIT?
[21:40] mape: Isn't MIT pretty much BSD?
[21:40] callen: mape: it's equivalent to 2-clause, not 3-clause.
[21:40] shimondoodkin: bsd=mit
[21:40] callen: shimondoodkin: not...quite.
[21:40] callen: mit = 2-clause
[21:40] callen: 3-clause BSD requires attribution
[21:40] shimondoodkin: same words just longer
[21:40] tjholowaychuk: markdown inline docs == the shit
[21:41] shimondoodkin: which is like open ssl license?
[21:41] mape: mcai8sh4: does it play?
[21:42] shimondoodkin: open ssl is like bsd but you must write to the end user that it used open ssl
[21:43] mcai8sh4: mape: I think it's installed ok (seems to have worked) but wunning the wargamez example still raises the error : Error: Cannot find module 'node-websocket-server/lib/ws'
[21:44] mape: yeah just do require('websocket-server') or require('node-websocket-server')
[21:44] mape: one of them should work
[21:45] benburkert has joined the channel
[21:47] rauchg_: does someone here want to be follower #1000 http://twitter.com/rauchg ?
[21:47] technoweenie: what do we get
[21:47] rauchg_: cookies
[21:47] tjholowaychuk: rauchq_: I win :D
[21:47] chilts: I'm good thanks, saving my 1,000th for someone special :)
[21:48] khug has joined the channel
[21:48] mape: tjholowaychuk: I unfollowed
[21:48] rauchg_: tjholowaychuk won
[21:48] mape: HAH!
[21:48] rauchg_: he can claim his cookies soon
[21:48] rauchg_: noooooo
[21:48] tjholowaychuk: wahoo
[21:48] rauchg_: noooooooooooo manveru
[21:48] rauchg_: mape:
[21:48] rauchg_: nooooooooo
[21:48] rauchg_: :P
[21:48] mape: now I follow
[21:48] mape: And I get cookies
[21:48] tjholowaychuk: ACTION needs twitter bg
[21:48] mape: the ole switch a roo
[21:48] tjholowaychuk: white is lame
[21:48] rauchg_: haha
[21:49] tjholowaychuk: rauchq_: I think im pushing the connect branch of express pretty soon
[21:49] tjholowaychuk: maybe tomorrow
[21:49] mape: so ajaxian is going down in flames?
[21:49] mostlygeek has joined the channel
[21:49] LionMadeOfLions has joined the channel
[21:49] mtodd has joined the channel
[21:49] riottaba has joined the channel
[21:49] rednul has joined the channel
[21:49] geojeff has joined the channel
[21:49] chewbranca has joined the channel
[21:49] mape: hopefully someone fixes their site..
[21:50] tjholowaychuk: just realized someone donated money to express haha
[21:50] tjholowaychuk: yay
[21:50] tjholowaychuk: thank you whoever you are
[21:50] Ori_P has joined the channel
[21:50] mape: enough for a beer?
[21:50] mostlygeek has joined the channel
[21:50] tjholowaychuk: 50 beans
[21:50] rauchg_: tjholowaychuk: sweet man
[21:50] mape: snassy
[21:51] mape: guess I should add flattr to my code
[21:51] tmpvar: tjholowaychuk, you know of anyone using express in prod?
[21:51] mape: mrdoob said he got some love
[21:51] tjholowaychuk: I dont drink beer, but I am sure I could get myself a 60 :D
[21:51] tjholowaychuk: tmpvar: hmm I use it for some semi-production stuff, but not like public facing sites
[21:51] mikeal: man
[21:51] geojeff_ has joined the channel
[21:51] mikeal: is extjs the no-beer company :P
[21:51] tjholowaychuk: tmpvar: gotta be some out there though
[21:51] mape: No beer? As in budweiser?
[21:51] mikeal: tj and tim both abstain
[21:52] tjholowaychuk: I just dont like the taste, I am more of a vodka person (ukranians ?)
[21:52] tmpvar: hah
[21:52] tmpvar: you like the taste of vodka?
[21:52] mape: mikeal: They probly have awsome company get-togethers
[21:52] mape: potato vodka?
[21:52] mikeal: i love cocktails, and whisky, and gin, and mexcal
[21:52] mape: or the grain ones?
[21:52] mikeal: basically all of it
[21:53] mikeal: hate vodka tho
[21:53] maushu: redis and node.js async is making me go mad.
[21:53] pquerna: has anyone made a little spinner class for cli node apps?
[21:53] saikat has joined the channel
[21:53] mape: Gin is like licking on fir
[21:53] mtodd has joined the channel
[21:53] tjholowaychuk: pff.. Buffer.byteLength() should at least handle a Buffer
[21:54] mcai8sh4: mape: no luck I'm afraid - I'll have to leave it for now. I'll do a bit of reading and let you know how I get on. Thanks for the help
[21:54] tjholowaychuk: mape: haha ya gin is so nasty
[21:54] tmpvar: gin is nice :)
[21:54] mikeal: good gin is great
[21:54] tmpvar: its just vodka with the spices
[21:54] mikeal: bad gin is the worse
[21:54] mape: mcai8sh4: Ok, give me a shout if you need more help
[21:54] mikeal: er worst
[21:54] tjholowaychuk: pquerna: spinner?
[21:55] mape: like the ones on wheels?
[21:55] mape: and tires?
[21:55] pquerna: |/-\-/
[21:55] tjholowaychuk: I think he means like taking 5-ish chars and mod
[21:55] tmpvar: oh, lol
[21:55] pquerna: you know, like the spinner while things are uploading
[21:55] tjholowaychuk: yeah ive done that
[21:55] tjholowaychuk: %
[21:55] mape: progressbar?
[21:55] tjholowaychuk: is your friend
[21:55] pquerna: i guess its like 10 lines fo code
[21:55] mape: mde: box-sizing? :)
[21:56] tjholowaychuk: pquerna: I had a ruby lib for benchmarks that had a spinner:
[21:56] tjholowaychuk: s = '|', '/', '-', '\\'
[21:56] tjholowaychuk: print " \e[1m" + s[count % s.length] + "\e[0m #{string} "
[21:56] tjholowaychuk: $stdout.flush
[21:56] tjholowaychuk: erase_line
[21:56] mcai8sh4 has left the channel
[21:56] pquerna: yeah
[21:56] tjholowaychuk: something like that
[21:56] mde: mape: Yeah, I have this big ball of CSS written by other people that tries to mix percent widths and padding.
[21:56] pquerna: its just an array, erase, and a tick() function
[21:56] mape: mde: does the code support ie?
[21:56] maushu: Ok, I need to split and organize the code...
[21:56] pquerna: i'll write it, was just trying to be exceptionally lazy.
[21:57] tjholowaychuk: ah :D
[21:57] mde: Thanks to padding-outside-width, you literally can't have autosizing with padding in a textbox.
[21:57] tjholowaychuk: blah ruby looks nasty after you dont write it for a while
[21:57] mape: with box-sizing you can, if the browser supports it
[21:57] mde: mape: Of course, we have actual, paying corporate customers. It's the good and bad of that.
[21:57] pquerna: it still reminds me of perl, far too much :)
[21:57] Ori_P has joined the channel
[21:57] technoweenie: hey mikeal: i think you can tweak the fsync timer in mongo to less than 60s
[21:57] technoweenie: re: your post
[21:57] mape: or you wrap it in a div
[21:57] mikeal: that's new
[21:57] technoweenie: not that it changes much about the conclusion :)
[21:58] mikeal: it wasn't that long ago that they added the time
[21:58] mikeal: er timer
[21:58] mape: and get divitis
[21:58] mde: No, you can't if you don't want to hand-code focus behavior.
[21:58] technoweenie: mikeal: well ok. just sayin :)
[21:58] mikeal: technoweenie: yeah, if i was going to try and attempt a side by side perf comparison that's useful info
[21:58] mikeal: and i might do that
[21:59] mape: mde: can't you just set 100%, padding: 10px and offset the extra 20px with a padding/margin on the right of the containing div?
[21:59] mikeal: it's just that without all of this durability context it's hard to say "i'm going to test default configurations of 4 databases and then a wildly no default configuration of mongodb to make it at least a little bit durable"
[21:59] riottaba has joined the channel
[21:59] rednul has joined the channel
[21:59] chewbranca has joined the channel
[22:00] mattly has joined the channel
[22:00] rednul has joined the channel
[22:00] technoweenie: sure
[22:01] satori has joined the channel
[22:01] mape: mikeal: have the mongo peeps ever countered the complaints?
[22:02] mikeal: they have the attitude that MySQL had in 1995
[22:02] mikeal: "you don't need durability"
[22:02] mikeal: meanwhile they are clamoring to fix the problem
[22:02] mikeal: it's a little dishonest
[22:02] mape: Guess the bad press is bad for bizz
[22:02] technoweenie: works for apple
[22:02] mikeal: especially when their whole effort it geared towards generically replacing durable databases
[22:03] technoweenie: stop holding the database like that
[22:03] mikeal: technoweenie: haha
[22:03] mikeal: the worst product apple has is MobileMe
[22:03] MattJ: "You're inserting the wrong kind of data"
[22:03] mikeal: it loses data all the f'ing time
[22:03] pquerna: mikeal: hence, use cassandra
[22:04] mape: isn't cassandra a pita to use?
[22:04] mape: unless you really need it
[22:04] pquerna: not really.
[22:04] mikeal: use cassandra for it's use case
[22:04] technoweenie: mongo's feature set is so sweet though
[22:04] mikeal: the Cassandra people are awesome, email their list and tell them what you want to do
[22:04] pquerna: i mean, its in the JVM; Its pretty easy as far as most java apps go for setup.
[22:04] technoweenie: surely someone can make a reliable mongo
[22:04] mikeal: they'll tell you if Cassandra is a good fit or not
[22:05] creationix has joined the channel
[22:05] mikeal: mongo's featureset makes sense if you're just trying to replace MySQL
[22:05] mikeal: but without the durability it's kind of useless
[22:05] pquerna: well, my issue with mongo is exactly what you are talking about, I can already use lots of unreliable fast datastores, its the auto-sharding/multi-master thats the hard part :)
[22:05] aubergine_ has joined the channel
[22:06] mikeal: and if it was durable, it would be comparible in performance to MySQL and Postgres
[22:06] mikeal: Cassandra does that but their focus isn't just providing it, it's providing all the assurance that come along with it
[22:06] mikeal: calling Cassandra "slow" would be kind of silly
[22:06] rauchg_: mikeal:
[22:06] mikeal: of course the writes are slow when you tell it to fsync to 3 nodes :)
[22:07] rauchg_: comparing it to postgress and mysql considering its feature set
[22:07] rauchg_: and only looking at speed
[22:07] rauchg_: is kind of pointless
[22:07] mde: mape: You might expect using padding in the container to offset it would work, but no. Something about the way it does the original width calculation, then applies padding to it.
[22:07] rauchg_: and also, 1.8 will have single-server durability
[22:07] rauchg_: it's part of the roadmap
[22:07] rauchg_: :)
[22:07] mikeal: rauchg_: did you see the article i wrote?
[22:07] technoweenie: rauchg_: cool, cant wait
[22:07] mikeal: rauchg_: durability isn't something you can just put on a feature list
[22:07] pquerna: yes, but Cassandra has the right architecture to keep scaling writes out, so when you go to 20 nodes, its still working.
[22:07] rauchg_: i did, tell me how adding a write log to mongodb makes it similar to postgress
[22:07] rauchg_: cause that's what you've been repeating to no end here.
[22:07] mikeal: mongodb's durability issues are architectural and they don't have plans to alter their architecture
[22:08] mape: mde: hmm, have a example somehwere?
[22:08] mikeal: no, keeping *anything* append-only would provide some durability
[22:08] MrTopf: mikeal, where is that article?
[22:08] rauchg_: http://jira.mongodb.org/browse/SERVER-980
[22:08] rauchg_: no plans ?
[22:08] rauchg_: Priority: Major
[22:08] mikeal: a log is what Redis and most SQL databases use
[22:08] rauchg_: Fix Version/s: 1.7.x
[22:08] mikeal: that's a bug!
[22:09] mikeal: not an architectural change
[22:09] rauchg_: http://blog.mongodb.org/post/381927266/what-about-durability
[22:09] mikeal: rauchg_: this is what I'm trying to explain, a lot of databases have been down this road
[22:09] rauchg_: please read that re: architecture
[22:09] _announcer: Twitter: "Tremendo experiment 'collaborative design' with websockets node.js + + HTML 5 canvas http://mrdoob.com/projects/multiuserpad/" [es] -- Omar Pera. http://twitter.com/ompemi/status/17985054611
[22:09] mikeal: and the bugs are endless without somethign append-only
[22:09] mikeal: that's why fuckign *everyone* does it
[22:09] mikeal: not just postgres or mysql
[22:09] shimondoodkin: if the memory you use is good and you use some servers that are with ups you willhave that at last 15 of minutes to shutdown mongodb and save the data
[22:10] mikeal: rauchg_: yeah, this post is the same kind of stuff MySQL used to float when they were corrupting people's data
[22:10] mikeal: it's bullshit
[22:10] rauchg_: and look at how long it's come ;)
[22:11] mikeal: it's not just a matter of single node durability
[22:11] mape: So if I want redundancy I should run multiple dbs on the same machine?
[22:11] mde: mape: http://gist.github.com/467367
[22:11] mikeal: if you *only* write out your mem-mapped file
[22:11] mape: Then I have a better chance of not loosing data?
[22:11] rauchg_: anyways, i gotta go later guys, no time for nosql wars today
[22:11] rauchg_: :D
[22:11] mape: hehe
[22:11] mikeal: and a btree node corrupts, all the nodes below it corrupt
[22:12] pquerna: well, to be fair, most on disk btree formats don't corrupt themselves anymore, but it does make them slower than most of the newer SSTable-like designs.
[22:12] mikeal: so if high level nodes are corrupting it's very hard to keep a system available even with mutiple slave replicas if you're restoring large selections of the btree and very likely that even with slave replicas corruption could happen in two places that are effected in the same btree branch and you will lose data
[22:13] mape: mde: form{margin-left:-10px;} something like that?
[22:13] maritz has joined the channel
[22:13] mikeal: well, when you write your own binary format in C++ it's not that hard to accidentally write bad data
[22:13] mikeal: but the issue isn't just that
[22:13] mikeal: discs corrupt sections of data all the time
[22:13] mikeal: writes fail mid-write
[22:14] pquerna: hey, I agree with you :)
[22:15] mde: mape: You'd have to display: block, but no, even that just starts the textarea on the far-left, still protrudes from the div on the right by 10px.
[22:15] mde: mape: This is informative: http://stackoverflow.com/questions/271067/how-can-i-make-a-textarea-100-width-without-overflowing-when-padding-is-present
[22:15] mde: There's no way to do it without faking the border with something else.
[22:16] mde: And then you get no normal focus behavior.
[22:17] benburkert has joined the channel
[22:17] mde: Seriously, padding-outside is one of the most broken things I know of in web standards.
[22:18] mape: hehe, probly sounded like a good idea sitting in a meeting
[22:18] mde: Exactly. :)
[22:19] mde: Hence the need for a massive cock-punch.
[22:19] jbr has joined the channel
[22:19] markwubben_ has joined the channel
[22:20] Dmitry1 has joined the channel
[22:21] technoweenie: http://www.deanwelsh.com/coppermine/albums/24/24_dean_page_2.jpg
[22:22] streblo has joined the channel
[22:23] _announcer: Twitter: "At @coworkingroc learning about @jQuery mobile, and Node.js" -- Steven Smith. http://twitter.com/StevenLukeSmith/status/17985838628
[22:24] mephux_ has joined the channel
[22:24] mape: mde: http://mape.me/boxmodel.html this doesn't do what you want?
[22:26] riottaba_ has joined the channel
[22:26] mscdex: that's a mesmerizing animation
[22:26] tmpvar: lol
[22:27] mikeal: these comments are hilarious
[22:27] stride: mape: have you ever tested wargamez on a really big channel with a lot of noise?
[22:27] mikeal: "they are totally upfront about how they corrupt their database"
[22:27] mape: stride: the ruby on rails channel has it running
[22:27] Tim_Smart has joined the channel
[22:28] bradleymeck1: woot i drag resized the text box
[22:28] mape: stride: http://rails-wargames.peepcode.com/
[22:28] stride: ah, thanks
[22:28] mde: mape: That looks like that could very well be it.
[22:28] tmpvar: nobody is battling
[22:28] mape: Virtual high five /**\
[22:28] tmpvar: lame.
[22:28] mape: tmpvar: they don't know how to tab so they just don't
[22:29] mde: Oh, it's the display:inline that's the key. Right on.
[22:29] mde: I was totally wrong about wanting block there.
[22:29] hammerdr has joined the channel
[22:29] mape: css works in strange ways
[22:29] tmpvar: lol @RailsMaster
[22:30] mape: He probly knows the DungeonMaster
[22:30] mde: Have to keep the padding in sync, but better than using fucking fixed px widths everywhere.
[22:31] mape: yeah the margin offsets the padding
[22:31] mape: and border
[22:31] mscdex: yup
[22:31] mscdex: i'm still watching that animation
[22:32] mde: Thanks for the solution there, that might make things in this code suck a lot less.
[22:32] mape: hmm either he restarted the wargames in ruby.. or this channel has 7.3x more activity these last 40min
[22:32] mape: mde: :)
[22:33] mape: nothing you can't solve by wrapping more crap around stuff
[22:33] mscdex: slow down on the 40..... minutes
[22:34] mape: hmm 24 now
[22:34] mape: anyone here idle in the rails channel?
[22:35] mscdex: nowai
[22:36] TommyM has joined the channel
[22:36] mape: well it doesn't seem broken
[22:36] TommyM1 has joined the channel
[22:36] mape: just find it very strange that this channel is much more active then the rails one
[22:36] tjholowaychuk: because rails is not exciting
[22:37] mape: it's usually this slow?
[22:37] tmpvar: haha
[22:37] mape: seems like more people join but don't say anything
[22:38] mape: 22 messages on Ruby, 252 here
[22:38] tmpvar: i'd say toss it into the ubutnu channel heh
[22:38] malkomalko has joined the channel
[22:38] aurynn: There's a lot of lurking going on
[22:38] TommyM has joined the channel
[22:38] ajpiano has joined the channel
[22:39] _announcer: Twitter: "Yes! Just got in on the Heroku node.js beta...now I have no excuse to put off my server-side coding..." -- Jason J. Gullickson. http://twitter.com/jasongullickson/status/17986727987
[22:39] TommyM has joined the channel
[22:39] aubergine has joined the channel
[22:42] benburkert has joined the channel
[22:44] athenot has joined the channel
[22:45] xer0xM has joined the channel
[22:46] _announcer: Twitter: "Awesome, I got accepted onto heroku's node.js trial. Now to find something to do with it :)" -- Michael Brunton-Spal. http://twitter.com/bruntonspall/status/17987135846
[22:46] mde: mape: Yeah, looks like negative margin on an inline element adds a bunch of extra whitespace at the bottom.
[22:46] teemow has joined the channel
[22:46] mde: In Firefox.
[22:46] mape: hmm
[22:46] mde: Check out your example, see how there's a bunch of extra space?
[22:47] mde: I was kind of mystified by the idea of margins on an inline.
[22:48] mde: Ah, and it breaks in yet a different way in IE. The box shrink-wraps to fit, but is 10px too wide on the right.
[22:48] mape: well you can do margins on inline, just horizontaly
[22:48] _announcer: Twitter: "Just got my node.js beta account access on #heroku - schuchwing!" -- Tim Dysinger. http://twitter.com/dysinger/status/17987287171
[22:48] mape: not vert
[22:49] mde: Ah, I guess that makes sense. But there does seem to be some brokenness with it.
[22:49] topfunky has joined the channel
[22:50] mde: It would have been nice to get away with just a wrapper div and coordinating the padding size.
[22:50] mape: Yeah, seems broken.. adding bottom margin/padding for container when adding left margin seems strange
[22:51] mape: should try aligning a box that has dynamic height verticaly in a container, just ridiculous they didn't think of stuff like that
[22:52] mde: Yeah, it's not reported as padding or margin or anything. It's just rendered.
[22:52] mde: Vertical alignment is so broken in CSS.
[22:52] mape: works fine in chrome
[22:53] mde: Tables are bad ... but we'll add display: table and play let's pretend, because it's a model that actually works.
[22:53] mde: Yeah, it looks great in Chrome.
[22:53] athenot has joined the channel
[22:53] mde: Which is like 3% of our users. :)
[22:53] mape: :/
[22:53] mde: That what we get for having businessey customers.
[22:54] mape: I still don't get why microsoft won't throw google chrome frame thingy into ie6/7
[22:54] mape: just force update, and IF site has metatag weHandlezTehCss3 use the new rendering
[22:54] mape: otherwise just use the old shitty one
[22:54] mde: Because they hate Google with the heat of a thousand suns? :)
[22:54] mape: well they can roll their own for all I care
[22:55] mape: just enable it so that if the site has a meta tag that states we are ok with using new stuff the latest rendering engine kicks in
[22:55] satori: ...because they are scared html5 will make office obselete and destroy thir mega office profits
[22:55] mape: otherwise everything stays normal
[22:55] freshtonic has joined the channel
[22:56] mape: I just wish for a way to bill MS for all the time spend on IE6/7
[22:56] mde: Well, actually part of the problem isn't MS, it's IT departments that don't want to roll out changes.
[22:56] mape: mde: haven't "security tested" it yet?
[22:56] mde: A huge portion of our users are still on IE6.
[22:56] mde: Right, dude, the US State Dept. just finally started upgrading from IE6.
[22:56] satori: wow.
[22:56] mde: To ... you'll love this ... IE7!
[22:57] mape: one step at a time? :P
[22:57] satori: Do they get pwned often via their browesers?
[22:57] mde: Laugh so you don't cry, pretty much.
[22:57] mape: mde: hmm does seem like it breaks chrome as well..
[22:57] mape: http://mape.me/boxmodel.html
[22:57] mde: Change is just really hard to manage in big organizations.
[22:57] mape: the red shouldn't show
[22:57] mde: mape: Right, there's s tiny extra bit there.
[22:57] mde: But it's massive in FF.
[22:58] mde: I could get away with that small amouunt. Check it in IE.
[22:58] mape: yeah
[22:58] [[zz]] has joined the channel
[22:58] mape: but same symptom
[22:58] mde: Differently BrokenTM.
[22:58] mape: hmm
[22:58] mape: if you refresh now
[22:58] mape: stays in chrome but not in ff..
[22:59] mde: Oh, the -0?
[23:00] mde: That's weird.
[23:00] mape: well now it is gone all together
[23:00] mape: still same
[23:00] stride: do you mean the red under the textarea?
[23:00] _announcer: Twitter: "Also considering the node.js/github thing just to be more geeky." -- Mike Cravey. http://twitter.com/craveytrain/status/17987974621
[23:00] mape: its the fontsize..
[23:00] stride: in my chrome it's of fixed height and in firefox invisible
[23:00] mscdex: DivideByNegativeZero Error!
[23:00] mape: wtf :/
[23:01] hassox has joined the channel
[23:01] mde: Freaky, so any deviation from zero, even minus-zero, break it.
[23:01] mape: mde: there you go
[23:01] mape: for some reason its saving space for text
[23:02] mape: so if you set font-size to 1..
[23:02] mape: you gots yourself something working
[23:02] mde: Oh, maybe in the wrapper, right on.
[23:03] mattly has joined the channel
[23:03] mape: at least it works now, but stinks of nasty things
[23:03] mde: Dude, web UI work is composed almost exclusively of nasty things.
[23:03] mape: Not if you stay away for legacy browsers :D
[23:04] satori: web UI work is the reason I moved to serverside js
[23:04] mde: Dude, this is the latest Firefox. :)
[23:04] tjholowaychuk: satori: ditto
[23:04] mde: The fundamental problem is the broken padding-outsideness.
[23:04] tjholowaychuk: that shit is so fucked up i dont even know what SHOULD work anymore
[23:04] mape: mde: well if it was only new browsers you would use box-sizing: padding-box and be done with it
[23:05] qbit_ has joined the channel
[23:05] qbit_: hola
[23:05] mde: Ah, right on. And speaking of which.
[23:05] mape: its like throwing shit in a stew, it won't taste good just because 90% is good
[23:05] mde: I'm going to try to hammer this now into something that works on IE.
[23:05] mape: qbit_: hey
[23:05] mape: mde: its broken in its current state?
[23:05] mape: my page that is
[23:06] qbit_: anyone have any experience on openbsd 4.7 ( I am getting a build error )
[23:06] satori: details?
[23:06] qbit_: node-v0.1.100/deps/v8/src/ia32/codegen-ia32.cc:6634: error: cannot call member function `v8::internal:
[23:06] athenot_ has joined the channel
[23:06] qbit_: :Scope*
[23:06] qbit_: that's the first error i believe
[23:07] mde: mape: Yeah, IE6 -- it shrink-wraps and adds padding on the right.
[23:07] shimondoodkin has joined the channel
[23:07] qbit_: http://pastebin.com/h4tji8GF
[23:07] qbit_: :D
[23:08] satori: qbit_: sry. thats over my head
[23:08] qbit_: cool - thanks for looking anyway :)
[23:09] kylezoa has joined the channel
[23:09] mikeal has joined the channel
[23:09] tekky has joined the channel
[23:10] mape: mde: if you refresh
[23:10] mape: seems to work in ie
[23:10] mape: *6
[23:11] mde: Is it the same width as the bottom div?
[23:11] mde: I think it's expanding the container.
[23:12] mape: mde: http://mape.me/mde.png
[23:13] mape: http://mape.me/mde2.png
[23:13] mde: What I mean is, either I did something different, or it's actually making the container wider than it should be.
[23:14] mde: http://gist.github.com/467367
[23:14] mape: nah if you check the first pic at the very back the textarea is snug fit inside the form
[23:15] mape: yeah that seems broken
[23:15] mde: Right, it doesn't overflow, but it's not the right width.
[23:15] mde: It's the IE shrink-wrap by default behavior.
[23:15] mape: shrink-wrap? overflow: scroll?
[23:16] mde: Ah, I should have pulled out that overflow: auto there. But the behavior is the same.
[23:17] ryah: 19:17 -!- Irssi: #node.js: Total of 247 nicks [0 ops, 0 halfops, 0 voices, 247 normal]
[23:17] ryah: crazy
[23:17] stride: qbit_: not to familiar with openbsd either but did you try an older version of node.js / v8? I'd suggest "2010.05.29, Version 0.1.97, 0c1aa36835fa6a3557843dcbc6ed6714d353a783
[23:17] mscdex: :-D
[23:17] ryah: also - fuck spain
[23:17] stride: as that one contains "Port to OpenBSD" in the changelog
[23:17] mscdex: 0.1.97?
[23:17] satori: build it and they will come
[23:17] mscdex: :S
[23:18] satori: fuck spain? really? I think barcelona has the prettiest girls on earth.
[23:18] stride: mscdex: bad idea? :D
[23:18] mjr_: argentina is even better, IMO
[23:18] mscdex: it''s an old version is all
[23:18] ryah: scheiss egal... scheiss egal...
[23:18] satori: I was married to an Argentinian for ten years.
[23:19] satori: ...so I'd have to agree :P
[23:19] malkomalko: heh yah, I remember when there was like 15 people in this channel.. 245!! woot
[23:19] mscdex: i remember when there was just 200
[23:20] mape: ryah: hehe feeling the german rage after watching the match?
[23:20] stride: rage? they went completely silent :D
[23:20] satori: Nah, just couldnt hear them over vuvuzelas
[23:21] efcjoe_ has joined the channel
[23:21] malkomalko: 1-0! viva la spain!
[23:21] mde: Okay, I think it's time to use absolute px widths, and move on with my life. Thanks for the ideas on this anyhow, mape.
[23:21] malkomalko: sorry, couldn't stand watching Germany trounce over every opponent
[23:21] mape: mde: hehe no worrys
[23:25] mscdex: qbit_: what version of openbsd are you using?
[23:26] _announcer: Twitter: "@julielerman @MattyinAK We plan to talk about node.js with you... awwwkkkkkkward." -- Scott Koon. http://twitter.com/lazycoder/status/17989477750
[23:26] TommyM has joined the channel
[23:27] mape: mde: not to bother, but think I found something that works for all browsers, http://mape.me/boxmodel.html
[23:28] mscdex: qbit_: also, what version of gcc/g++ do you have installed/are you using?
[23:28] tmpvar: what is a good way to get the memory usage of node?
[23:28] mscdex: !api memoryusage
[23:28] tmpvar: on osx*
[23:28] _api: mscdex: (process) method: memoryUsage() -- Returns an object describing the memory usage of the Node process. [ http://nodejs.org/api.html#process-memoryusage-73 ]
[23:28] mscdex: d'oh
[23:28] mscdex: :P
[23:28] JimBastard has joined the channel
[23:28] mape: tmpvar: activity monitor?
[23:29] mscdex: hrmm.. looks like a patch is in order for openbsd
[23:29] JimBastard: anyone have any more unprovoked personal attacks for me today? :-)
[23:29] satori: Do you want some?
[23:30] JimBastard: i think im good, but id like to get it over with now instead of later
[23:30] mape: tmpvar: Do you want the deltas?
[23:30] tmpvar: mape, activity monitor worked
[23:30] tmpvar: I was just curious.. processing an 11gb file
[23:30] mape: you can right click to get deltas
[23:31] tmpvar: and im an osx nub
[23:31] mape: or somewhere in the menues
[23:32] _announcer: Twitter: "So, the coffeescript, nodejs, and libv8 debs from maverick install cleanly on lucid" -- Alan Harper. http://twitter.com/aussiegeek/status/17989804728
[23:32] mape: menu -> view -> show deltas for process
[23:32] athenot has joined the channel
[23:32] mape: makes it easier to see the change from when it started
[23:32] huyhong has joined the channel
[23:32] polotek has joined the channel
[23:33] tmpvar: mape, cool
[23:33] tmpvar: thanks man
[23:33] mape: np
[23:33] mscdex has left the channel
[23:33] mscdex has joined the channel
[23:36] kylezoa has left the channel
[23:39] _announcer: Twitter: "@lazycoder so I'm going to patch in @RyanKDahl to cover my ass when you start asking node.js questions, k? (Ryan, just kidding, don't worry)" -- Julie Lerman. http://twitter.com/julielerman/status/17990244655
[23:40] mscdex: ryah: i thought your ReleaseStore patch for *BSD made it into v8?
[23:40] shimondoodkin: is ther an option to have longer call stack?
[23:40] _announcer: Twitter: "@julielerman That's good, 'cuz that guy don't know NOTHING about node.js. ;)" -- Scott Koon. http://twitter.com/lazycoder/status/17990320510
[23:41] JimBastard: !tweet @julielerman don't worry, the node.js irc is listening :-)
[23:41] stride: hrhr
[23:41] JimBastard: !tweet @lazycoder don't worry, the node.js irc is listening :-)
[23:41] satori: heh
[23:42] JimBastard: its not stalking!
[23:42] JimBastard: i swear
[23:42] satori: c++ question... Can memory leaks survive process exit?
[23:42] mscdex: qbit_: i just compiled node head on 64-bit openbsd 4.7 just fine (after applying a patch related to an undefined ReleaseStore)
[23:42] JimBastard: someone did freak out mildly the other day, ohh no my tweet are public?!?!
[23:42] mscdex: satori: no
[23:43] satori: hmm wierd. I have a lib function that says this...
[23:43] mscdex: not as far as i know anyway
[23:43] satori: cleanup(): The method must be called before the application exits, or before the UDT DLL is released, otherwise memory leak could happen.
[23:43] mape: Didn't ryan just say that v8 is broken on x64?
[23:44] mscdex: i just build node head on x64 linux
[23:44] satori: Is it possible to leak shared mem after process exit maybe?
[23:44] mscdex: *built
[23:44] mape: hm k
[23:44] mscdex: satori: who knows with windows *shrugs*
[23:44] Ori_P_ has joined the channel
[23:44] mape: 19:59 < ryah> damn the v8 is broke on x64
[23:44] mape: 19:59 < ryah> first time i don't check the build before committing :(
[23:44] mape: he might have fixed it though
[23:45] mscdex: he did add a fix after committing the new version of v8
[23:45] mape: k
[23:46] _announcer: Twitter: "the node.js list on google is really interesting. Lot's of things going on http://groups.google.com/group/nodejs/topics" -- Hernan Garcia. http://twitter.com/theprogrammer/status/17990631929
[23:47] mscdex: guess i should check freebsd too
[23:48] LionMadeOfLions has joined the channel
[23:53] steadicat has joined the channel
[23:57] spot__: Nice: http://bit.ly/chCVew
[23:57] sveimac has joined the channel