[00:00] Lerchmo: yeah, that may be a better way of doing it
[00:00] SirLucas: ok. well.... I guess google is more helpful than you guys.
[00:00] mjr_: tjholowaychuk: I renamed redis.js to index.js, but it is sad in npm for me.
[00:00] Lerchmo: I do like MyController.enable('/users/:operation/:params?', app)
[00:01] Lerchmo: and MyController delegates based on :operation
[00:01] tjholowaychuk: mjr_: even with "main": "./index.js" ?
[00:01] tjholowaychuk: should be fine
[00:01] SirLucas: anyone interested, I had installed cygwin on a different directory, had to use /bin/rebaseall from the ash command line to make it work.
[00:01] SirLucas: thanks anyway... I guesss.
[00:02] eazyigz has joined the channel
[00:02] SirLucas has left the channel
[00:03] mjr_: tjholowaychuk: OK, I think it works with npm now.
[00:03] JimBastard: does every since http.Client connection require a FD?
[00:03] JimBastard: every single*
[00:03] mjr_: JimBastard: it does
[00:03] JimBastard: thats what i thought
[00:03] JimBastard: trying to help someone on list >.<
[00:04] mjr_: Most modern computers can get lots of them, but you have to ask nicely with ulimit, /etc/security/something, etc.
[00:04] Egbert9e9 has joined the channel
[00:05] mikeal has joined the channel
[00:06] jpld has joined the channel
[00:07] mjr_: I went and boldly called my Redis library "redis" in npm.
[00:08] tjholowaychuk: hahah :) sweet
[00:08] tjholowaychuk: at least something is in npm now
[00:08] mjr_: Yeah, that's what I was thinking.
[00:08] tjholowaychuk: it requires eyes?
[00:08] tjholowaychuk: or was that for debugging n stuff
[00:08] mjr_: oh shit, no
[00:08] tjholowaychuk: k fewf haha
[00:09] lakin has joined the channel
[00:09] tjholowaychuk: I just added support for ndistro to install $mod/index.js as $mod.js so this will work fine now
[00:09] mjr_: pushed new version with no eyes ref
[00:09] Tim_Smart: mjr_: If you can prove that your library is faster than that other one, I'll use it :p
[00:10] tjholowaychuk: mjr_: its still in index
[00:10] tjholowaychuk: require('eyes')
[00:10] mjr_: Hopefully other people that write redis libs won't be offended. The only one I knew about was fictorial's, and it was not working for me.
[00:10] technoweenie: wait you have a redis client now too?
[00:10] technoweenie: you beat fictorial and bnoguchi to 'redis'
[00:11] Tim_Smart: technoweenie: They had a really long time to take it :p
[00:11] technoweenie: mjr_: wheres your client
[00:11] Tim_Smart: http://github.com/mranney/redis
[00:12] tjholowaychuk: i like mjr_'s implementation so far, nice and clean
[00:12] nerdEd has joined the channel
[00:12] technoweenie: i dont care for the api
[00:13] mjr_: tjholowaychuk: removed both eyes refs.
[00:13] eazyigz has joined the channel
[00:13] tjholowaychuk: dope
[00:13] tjholowaychuk: technoweenie / mjr_: I kinda agree there, I think the implementation is cleaner than what I have seen
[00:13] tjholowaychuk: but
[00:13] mjr_: technoweenie: you mean that you need to supply an array even if there's only one element?
[00:13] tjholowaychuk: the api I prefer to have vargs
[00:13] tjholowaychuk: vs array
[00:13] technoweenie: mjr_: yea, that and having to listen to 'connect'
[00:13] Tim_Smart: I want to know the performance comparison rawr.
[00:13] tjholowaychuk: even if it is somewhat slower
[00:14] mjr_: I want to clean up that array business and let you use a more natural argument list. It was just easier to get it right this way.
[00:14] technoweenie: cah fee script
[00:14] mjr_: technoweenie: what would be a better way than listening for connect? Just queue up commands until the first connection shows up?
[00:14] technoweenie: mjr_: yea
[00:15] technoweenie: http://github.com/felixge/node-mysql
[00:15] technoweenie: mjr_: if you dig that ^ than i'll implement that part
[00:16] technoweenie: basically, commands are queued internally so there arent race conditions
[00:16] mjr_: I don't have strong feelings about either of those things.
[00:16] technoweenie: and you can do things like connect and select a redis db without nesting 2 levels deep
[00:16] mjr_: Commands are always queued anyway, so that'd be really easy.
[00:16] Tim_Smart: I'm kinda digging http://github.com/bnoguchi/redis-node atm.
[00:16] technoweenie: the redis protocol is serial anyway? you dont have multiple commands open at a time
[00:17] mjr_: I just wanted to know that things were working, mostly for a test. For normal use, blindly sending them should be fine.
[00:17] mjr_: The redis protocol lets you pipeline commands.
[00:17] mjr_: You just blast them down the wire and keep track of the responses to match them up.
[00:17] technoweenie: oh ok
[00:17] Tim_Smart: technoweenie: Maybe we can work on a higher level library with connection pooling...
[00:18] technoweenie: well that works too i guess
[00:19] mjr_: The pipelining thing seems to work really well. It naturally coalesces into larger TCP packets for both queries and replies.
[00:19] technoweenie: cool
[00:19] technoweenie: i tried writing some node/redis drunk last week, and it didnt go well.
[00:20] the_giver2: people going to the node.js meetup? i assume it will mostly be talks and the sort.. no workshops or like shdh, so no real need to bring a laptop
[00:21] derferman has joined the channel
[00:22] eazyigz has joined the channel
[00:24] hsuh has joined the channel
[00:24] tjholowaychuk: w/ jquery can you not handle a 500 with $.get() ? :s
[00:24] jashkenas: tjholowaychuk: you have to use $.ajax ... it's pretty fucked up.
[00:24] tjholowaychuk: :(
[00:24] tjholowaychuk: yikes
[00:25] tjholowaychuk: that makes me want to die
[00:25] ehaas: yep...i dont even use the post/get convenience methods anymore
[00:25] jashkenas: tjholowaychuk: same goes for getJSON.
[00:25] ehaas: b/c it's too depressing
[00:25] tjholowaychuk: eeek
[00:25] jamescarr_: tjholowaychuk, yeah, I usually create a shortcut
[00:25] Egbert9e9 has joined the channel
[00:25] jamescarr_: ideally, I'd prefer something like $.get(url, cb).on(500, otherCb)
[00:25] jashkenas: I think it goes along with $('garbage in here').chained().functions().after(); not throwing an exception when it fails to match a dom element.
[00:26] jashkenas: Like, jQuery never goes wrong, y'know?
[00:26] technoweenie: is that really an error? $('garbage') is an empty set
[00:26] jamescarr_: yep
[00:26] swaj has joined the channel
[00:26] technoweenie: [].each(function() { })
[00:26] jamescarr_: I think jquery follows the convention of do the right thing and handle it yourself if you expect it to possibly fail
[00:26] Tobsn has joined the channel
[00:27] softdrink has joined the channel
[00:27] jamescarr_: versus "throw an exception whenever possible" like java does
[00:27] jashkenas: technoweenie: just personally -- don't you find that it causes endless headaches and sanity checks for !!$('rule').length ? especially when calling functions against it?
[00:27] technoweenie: jashkenas: ah i dont write jquery man :)
[00:27] jashkenas: technoweenie: is github on prototype?
[00:27] technoweenie: but when i do, i just expect empty sets not to do shit
[00:27] jamescarr_: because anything is better than some of core java's "call this and catch these 5 checked exceptions I might throw"
[00:27] technoweenie: jashkenas: no, its jquery. i just dont do any of it
[00:28] technoweenie: damnit mjr
[00:28] jashkenas: jamescarr_: checked exceptions are a whole nother story, man. $('div.account').hide(); should throw an error if the .hide() bit never happens, IMO.
[00:28] technoweenie: i already have a 'redis' project in my projects dir. you know, the REmote DIctionary Server thing
[00:29] tjholowaychuk: haha
[00:29] mjr_: technoweenie: oh yeah, I saw that on your computer earlier. Sorry about that.
[00:29] rcy has joined the channel
[00:29] tjholowaychuk: ya i forked it and it was trying to go over my real redis fork or something
[00:29] jamescarr_: jashkenas, my preference would be to have it fire some event with the exception, or provide an optional callback
[00:29] mjr_: hmm, I guess the repo should be called node_redis or something
[00:29] technoweenie: mjr_: `git clone mranney/redis mjr-redis` SOLVED
[00:30] technoweenie: but no one can fork your project and redis at the same time
[00:30] mjr_: can you rename a repo on gh, or do you have to take it down and put up a new one?
[00:30] technoweenie: you can rename it in the admi
[00:30] jamescarr_: tjholowaychuk, any simple way to plug validation into expressjs?
[00:30] dilvie: What are your favorite JavaScript documentation tools (like jdoc)
[00:30] jamescarr_: I'm guessing it's mostly DIY, but just curious
[00:30] tjholowaychuk: jamescarr_: for what? models?
[00:30] tjholowaychuk: yeah nothing specific
[00:30] Tim_Smart: dilvie: docco is cool.
[00:31] jamescarr_: yeah... so far I've been rolling my own, checking for xhr and returning a json object or rendering the page with errors
[00:31] jesusabdullah: dilvie: markdown :v
[00:31] tjholowaychuk: jamescarr_: yeah, I try not to assume what people want to do with things
[00:31] tjholowaychuk: so
[00:31] jashkenas: dilvie: and mr. chuk here has a more JS-friendly cousin called dox: http://visionmedia.github.com/dox/
[00:31] tjholowaychuk: I still consider Express a framework framework
[00:32] eazyigz has joined the channel
[00:32] cardona507 has joined the channel
[00:32] tjholowaychuk: dilvie: beware though, it requires you actually document each block of code lol
[00:32] jamescarr_: tjholowaychuk, good point... I keep thinking I might start spinning off a few plugins for stuff I find myself doing frequently
[00:32] tjholowaychuk: the comment parsing is just a flipflop so it sucks ass right now
[00:32] jamescarr_: tjholowaychuk, although connect is nice in that it provides a lot of that
[00:32] tjholowaychuk: but worked for my needs since I comment a lot
[00:32] gthb has joined the channel
[00:33] tjholowaychuk: jamescarr_: yeah connect is kinda the aftermath of the old express plugins
[00:33] tjholowaychuk: there was no reason to have them combined
[00:33] tjholowaychuk: but
[00:33] mjr_: OK, renamed to http://github.com/mranney/node_redis
[00:33] tjholowaychuk: jamescarr_: but if you feel they are common maybe commit to express-contrib
[00:33] jamescarr_: tjholowaychuk, yeah, I keep finding myself wanting to make taglib like addons, guess it's a result of my java background :)
[00:33] tjholowaychuk: mjr_: woah! it kept me as a follower
[00:33] tjholowaychuk: oh wait
[00:33] tjholowaychuk: nvm
[00:34] jashkenas: tjholowaychuk: didn't know that ... uh oh. dilvie: there's a whole little family of the darn things... docco, pycco, rocco, shocco. .... tj -- you shoulda named dox, jsocco
[00:34] tjholowaychuk: that was when I close-sourced by accident that it fucked up the followers
[00:34] mjr_: Those gitub fellows sure are clever.
[00:34] marcostoledo has joined the channel
[00:34] jashkenas: but I don't know how you'd pronounce that.
[00:34] technoweenie: yea all it does is renames the git repo
[00:34] technoweenie: filesystems, bitches dont know about it
[00:34] tjholowaychuk: jashkenas: haha :D
[00:35] muk_mb has joined the channel
[00:36] Zuardi has joined the channel
[00:37] jamescarr_: man... .anyone ever noticed that ruby, gems, etc is always a hassle the first time through on ubuntu?
[00:37] jamescarr_: even with rvm... I always find some gotcha I got to fumble through
[00:38] dilvie: tjholowaychuk: I document most of my functions. Is it aware of object literals? Can it document my API interfaces well?
[00:38] tjholowaychuk: ewww jquery's $.each() starts with the index
[00:38] Tim_Smart: tjholowaychuk: Yeah, and `this` is the element.
[00:38] tjholowaychuk: dilvie: it just expects a multiline comment per chunk of code
[00:38] jashkenas: tjholowaychuck: yeah -- it's not ECMA-compatible.
[00:39] eazyigz has joined the channel
[00:39] tjholowaychuk: dilvie: but it takes JSdoc and converts it to markdown before rendering the markup
[00:39] mirko_ has joined the channel
[00:39] Tim_Smart: But, it was probably done before ES5 starting strutting their stuff.
[00:39] jashkenas: tjholowaychuk: jquery.each is also slow... delegate to a native, if you have the option.
[00:39] tjholowaychuk: dilvie: which was the main thing I wanted, otherwise I would have just used one of the existing things
[00:39] danielzilla has joined the channel
[00:40] dilvie: hmm
[00:41] jamescarr_: jashkenas, is that true? I know there are a lot of optimizations that jquery does behind the scenes to use browser features if they're available
[00:41] tjholowaychuk: jashkenas: yeah fuck that, this does not need to be cross browser anyways
[00:41] tjholowaychuk: jamescarr_: I imagine they feature creep, but either way the callback params are the wrong order lol
[00:41] jamescarr_: jashkenas, I'd like to see some hard numbers behind it's performance being slow
[00:42] jashkenas: jamescarr_: your wish is my command -- you can bench it yourself...: http://documentcloud.github.com/underscore/test/test.html
[00:42] jashkenas: jamescarr_: down towards the bottom of the page.
[00:43] jashkenas: _.each is 11785 iterations versus jQuery.each at 3541 iterations, over a thousand-element array. (for me, Safari)
[00:43] jamescarr_: jashkenas, nvm, I googled and found a few more
[00:43] jamescarr_: it looks like the consensus is that it is 10x slower
[00:43] jamescarr_: booo
[00:43] tjholowaychuk: blah i havent touched jquery in so long
[00:44] tjholowaychuk: its pretty ... ugh though
[00:44] jamescarr_: well, it is open source
[00:44] jamescarr_: so if anyone wants to improve the performance, they can :)
[00:44] jashkenas: jamescarr_: jQuery can't change the iteration performance, because they can't change their method signature without breaking all existing jQuery code.
[00:44] jamescarr_: I'm wondering if a check for Array.prototype.forEach would fix the issue
[00:45] jamescarr_: ah I see
[00:45] tjholowaychuk: yeah they have to wrap it
[00:45] jamescarr_: because you'll have to change the callback behavior
[00:45] jashkenas: bingo.
[00:45] bradleymeck has joined the channel
[00:45] jamescarr_: took awhile for it to sink in :)
[00:45] webr3: they could wrap it though
[00:46] tjgillies: how do i use test in expressjs?
[00:47] jamescarr_: tjgillies, you mean test the actions?
[00:47] tjholowaychuk: tjgillies: expresso (a little TDD framework) or use something like vows
[00:47] tjgillies: jamescarr_: yes, does it come with a testing suite?
[00:47] tjholowaychuk: tjgillies: nope
[00:47] jamescarr_: tjgillies, no, see tjholowaychuk's response
[00:47] tjgillies: tjholowaychuk: ok thnx
[00:47] tjholowaychuk: but the generated code starts you off with a little bit of http://github.com/visionmedia/expresso
[00:47] tjholowaychuk: that
[00:47] Anti-X: wot, jquery iterates 3.5 times over each element in an array? how silly
[00:48] tjgillies: im trying to do TDD but with libs that are on top of libs its kinda intimidating
[00:48] jamescarr_: tjholowaychuk, heh, my first foray into node.js and express had me trying to get jspec to test drive it
[00:48] eazyigz has joined the channel
[00:48] jamescarr_: worked fine till I ran into some async behavior
[00:48] tjholowaychuk: haha
[00:48] tjholowaychuk: yeah jspec ... is not so well suited to async
[00:48] jamescarr_: then it got a bit messy
[00:48] tjholowaychuk: unfortunately
[00:48] tjholowaychuk: I had thought for a while about adding it
[00:48] tjholowaychuk: but it just becomes a big ugly hack
[00:48] tjholowaychuk: so meh
[00:49] jamescarr_: I really like it's style though... I'd love to see the feature added
[00:49] jamescarr_: yeah I know... I was going to try and do it myself ;)
[00:49] jamescarr_: I still don't like expresso and vows style compared to jspec
[00:50] cognominal has joined the channel
[00:51] tjgillies: tjholowaychuk: if i have app.get("/some/path", function(req,res){ this.foo = "fum"; }); how would i test that in expresso?
[00:52] tjholowaychuk: tjgillies: assert.response()
[00:52] tjholowaychuk: tjgillies: docs still suck, but http://visionmedia.github.com/expresso/
[00:52] tjgillies: im there
[00:53] tjgillies: oh
[00:53] tjgillies: thats a webpage
[00:53] tjgillies: was on the github repo
[00:54] eazyigz has joined the channel
[00:54] ChrisPart has joined the channel
[00:54] jamescarr_: sigh... somehow I managed to completely fuck up my rvm install... at this point it might be easier to wipe it clean and re-install
[00:55] JimBastard: saikat: you around at all? im trying to test the node_mailer stuff. it seems to be working on the stub server, but gmail is acting funny, as usual >.<
[00:56] JimBastard: could use someone else to test
[00:56] tjgillies: tjholowaychuk: how do i get my server var into my testfile?
[00:56] tjholowaychuk: tjgillies: just require('../app') or wherever it is
[00:57] tjgillies: tjholowaychuk: oh so on its own line do require('./myapp');?
[00:57] mjr_: And now, to stick all of my packets into redis
[00:59] eazyigz has joined the channel
[01:00] JimBastard: can anyone test http://chat.nodejitsu.com/ real quick?
[01:01] ChrisPartridge: JimBastard: doesnt appear accessible
[01:01] JimBastard: hrmmm
[01:01] JimBastard: interesting
[01:01] JimBastard: thanks
[01:02] JimBastard: im gonna have to take _frankie down for a bit
[01:02] jamescarr_: JimBastard, I got in
[01:02] webr3: works for me too
[01:02] Tim_Smart: Works here
[01:02] ChrisPartridge: Works now
[01:03] jamescarr_: JimBastard, does not work in my browser of choice
[01:03] mtodd_ has joined the channel
[01:03] jamescarr_: IE5 Mac
[01:03] JimBastard: doing broodmother refactors
[01:03] Tim_Smart: /kick jamescarr
[01:04] jamescarr_: Tim_Smart, sadly, I once had a client back in 05 where I had to make the site's features work perfectly on IE5 Mac
[01:04] jamescarr_: I cried
[01:04] dilvie: hmm.. I don't use classes or constructors or new in javascript. JSDoc doesn't seem to be proto-literate.
[01:04] dilvie: =)
[01:04] JimBastard: dilvie: lol, fuck prototype
[01:07] tjgillies: in my main app i have var app = express.createServer(express.logger(), express.bodyDecoder()); then in my expresso test file i have console.log(app); but its saying app is not defined
[01:07] eazyigz has joined the channel
[01:08] JimBastard: so like if i had a Error: Parse Error at Client.ondata (http:899:22) at IOWatcher.callback (net:494:29) at node.js:764:9 somewhere in a huge code base.....i could catch it using uncaughtException...but what happens to the http.Client? is it going to end? will the browser hang?
[01:08] jashkenas: dilvie: if you don't use "new" and constructors in javascript, you're doing it wrong... sorry. I feel like it's a public service announcement that needs to be read aloud every once in a while...
[01:09] ehaas: what about object.create
[01:09] ehaas: Object.create i mean
[01:09] Tim_Smart: ehaas: Object.create is the proper way of doing it, but it is really slow...
[01:10] jashkenas: Object.create is ok, if you can rely on EMCA5.
[01:10] ehaas: is the slowness a fundamental property of Object.create or just a problem with current implementations
[01:10] Tim_Smart: Probably both?
[01:10] lucideer has joined the channel
[01:11] paulwe has joined the channel
[01:12] atourino has joined the channel
[01:12] JimBastard: does anyone know how to force a Error: Parse Error at Client.ondata (http:899:22) at IOWatcher.callback (net:494:29) at node.js:764:9 to fire on an http.Client ?
[01:12] lucideer has joined the channel
[01:13] tjgillies: tjgillies: are there any apps that use expresso that i can look at for example?
[01:13] tjgillies: doh
[01:13] rauchg_: ryah: ping
[01:14] jashkenas: Tim_Smart: it's not too too slow. Here's a bench for a klass with three properties, versus new: http://jsperf.com/new-vs-object-create
[01:15] jashkenas: oops. 89% slower in Chrome.
[01:15] Tim_Smart: jashkenas: 91% slower in v8 :p
[01:16] webr3: hmm.. you seen the huge difference w/ chrome 7?
[01:16] eisd has joined the channel
[01:16] webr3: nvm, i inverted
[01:18] Tim_Smart: jashkenas: Object.create is even slower in Chromium (Chrome 7 atm)
[01:19] Tim_Smart: Or maybe it is just proportionally slower...
[01:20] mtodd has joined the channel
[01:20] jashkenas: yeah, well, the more important thing is not using the factory object pattern ... which is what I think dilvie was talking about originally.
[01:20] onar_ has joined the channel
[01:21] digitalsanctum has joined the channel
[01:21] Tim_Smart: Yeah using prototypes is fast and good for the HC
[01:21] Tim_Smart: s/HC/GC/
[01:21] tjgillies: if i have var foo = "bar" in one file, can i get foo in a differnt file?
[01:22] jamescarr_: you have to export it
[01:22] jbenesch has joined the channel
[01:22] Tim_Smart: tjgillies: exports.foo = foo;
[01:22] jamescarr_: exports.foo = foo
[01:22] tjgillies: jamescarr_: Tim_Smartbut if i want to run tests does that mean i have to prefix each of my functions with exports.?
[01:22] jamescarr_: Tim_Smartbutt
[01:22] jamescarr_: hahahaha
[01:23] tjgillies: that was an awesome typo
[01:26] eisd|away has left the channel
[01:27] jesusabdullah: How does .prototype work?
[01:27] pedrobelo has joined the channel
[01:27] sirevanhaas has joined the channel
[01:28] ben_alman has joined the channel
[01:28] JimBastard: are there any node projects that emulate monit
[01:29] tjgillies: jesusabdullah: prototype sets methods on a parent object
[01:30] ben_alman has joined the channel
[01:30] tjgillies: jesusabdullah: me = new Person(); Person.prototype.sing = function(){ console.log("fa la la") }; me.sing();
[01:31] Tim_Smart: jesusabdullah: prototype is just a property on a function like any other property, except it will proxy to all `new` instances.
[01:32] tjgillies: its also "living" meaning it gets proxied to objects already instantiated
[01:33] jamescarr_ has joined the channel
[01:33] ditesh|cassini has joined the channel
[01:34] ceej_ has joined the channel
[01:34] softdrink has joined the channel
[01:35] jesusabdullah: I see. Cool
[01:37] steadicat has joined the channel
[01:40] kaichen has joined the channel
[01:41] Tim_Smart: jesusabdullah: It is almost the same as going: instance = Parent.prototype;
[01:41] Tim_Smart: Except creating new properties on the instance do not affect the parent.
[01:42] Tim_Smart: (Modifying does however. E.g. pushing a value to an array on the prototype)
[01:43] jesusabdullah: function Astronaut (stuff) {this.g = 9.81;}
[01:43] jesusabdullah: buzz_aldrin = new Astronaut(stuff);
[01:43] jesusabdullah: buzz_aldrin.prototype.g = 0.166*9.81
[01:43] jesusabdullah: and if there was already a
[01:44] jesusabdullah: var neil_armstrong = new Astronaut(stuff)
[01:44] jesusabdullah: then buzz_aldrin.g === neil_armstrong.g ?
[01:45] jashkenas: jesusabdullah: http://www.packtpub.com/article/using-prototype-property-in-javascript
[01:45] c4milo has joined the channel
[01:46] jesusabdullah: I meant Astronaut.prototype
[01:46] jesusabdullah: :D
[01:46] jesusabdullah: Huh
[01:46] jesusabdullah: That's kinda cool
[01:47] jesusabdullah: Too bad I hardly do the object-oriented programming thing :/
[01:48] marcostoledo has joined the channel
[01:50] Tim_Smart: And that is why prototypes save memory, as there will always only be one instance of an function no matter how many instances you have.
[01:50] wattz: evening 'gents
[01:51] ehaas: hello wattz
[01:51] ivong has joined the channel
[01:52] prettyrobots: How do you do SSH from node?
[01:52] prettyrobots: I'm looking at replacing a bunch of Ruby EC2 + SSH stuff with node.
[01:52] rauchg_: prettyrobots: node-control
[01:53] c4milo has joined the channel
[01:53] prettyrobots: Does anyone have a node-ec2 or would that be a nice thing offer?
[01:53] rauchg_: http://github.com/tsmith/node-control
[01:53] prettyrobots: rauchg_: Sweet.
[01:54] prettyrobots: node-ec2 ?
[01:54] prettyrobots: Such a thing?
[01:54] jesusabdullah: Doubt it
[01:54] jesusabdullah: but you could make it
[01:54] prettyrobots: Okay.
[01:54] jesusabdullah: and everyone would love you
[01:54] prettyrobots: I will.
[01:54] jesusabdullah: :D
[01:54] prettyrobots: Here's a question to impelment node-ec2...
[01:54] prettyrobots: How do you do polling?
[01:55] Tim_Smart: setInterval
[01:55] wattz: why do you need to poll?
[01:55] prettyrobots: Okay.
[01:55] wattz: you can use native sockets
[01:55] marcostoledo_ has joined the channel
[01:55] prettyrobots: Launch ec2 instance, is is running? Attach volume. Is volume attached? Do stuff.
[01:56] gf3 has joined the channel
[01:56] prettyrobots: That requires polling the EC2 API.
[01:56] Tim_Smart: I'm not sure on the interface for the ec2, but event based stuff > polling.
[01:56] jesusabdullah: ec2 should have their api documented
[01:56] jesusabdullah: From there, it depends on how it works
[01:56] prettyrobots: That is, polling, in do GET on ec2, see status, if not ready, sleep.
[01:56] jesusabdullah: If it's http requests, then
[01:57] Tim_Smart: Well node.js never sleeps/
[01:57] prettyrobots: But, Tim_Smart said setInterval and that sounds about right.
[01:57] Tim_Smart: s/\//s/
[01:57] Tim_Smart: s/\//./
[01:57] jesusabdullah: http://github.com/jesusabdullah/lulzbot/blob/master/plugins/lns.js
[01:57] jesusabdullah: This is an example of something that http posts to a url shortener
[01:58] prettyrobots: For me? Yes. I know how to do HTTP client requests and the like in Node.js.
[01:58] prettyrobots: I'll put this in my queue. Thanks for your help.
[01:58] jesusabdullah: hah
[01:58] junya has joined the channel
[02:01] Tim_Smart: Hmm the EC2 api doesn't hold the connection open until something happens, which is annoying I guess.
[02:01] Twelve-60 has joined the channel
[02:01] dipser_ has joined the channel
[02:01] Tim_Smart: Dam web fails at real-time stuff.
[02:01] Tim_Smart: Except for twitter and the like...
[02:02] derferman has joined the channel
[02:02] prettyrobots: That would be a long time to hold a conneciton open, don't you think?
[02:02] mikew3c: so upstream trunk of v8 has now been updated to v2.4.3 but node copy of v8 is still at v2.4.2 … wondering when that might get synced to upstream trunk
[02:02] prettyrobots: The duration of an operating system boot.
[02:03] prettyrobots: Okay, next question:
[02:03] prettyrobots: How do parse XML. The EC2 Query response stuff is all XML.
[02:03] prettyrobots: ?
[02:03] Tim_Smart: prettyrobots: Not really... Node.js servers and handles them just fine.
[02:03] prettyrobots: What is your favorite Node.js XML parsing solution.
[02:03] abiraja_ has joined the channel
[02:04] prettyrobots: Tim_Smart: Really, just hanging there? Seems like something would get blocked up somewhere. HTTP is performant because it is stateless.
[02:05] c4milo1 has joined the channel
[02:05] pplante has joined the channel
[02:05] prettyrobots: XML parser suggestions for Node.js?
[02:05] Tim_Smart: prettyrobots: HTTP is just a TCP socket with some specs attached...
[02:05] jesusabdullah: prettyrobots: http://github.com/ry/node/wiki/modules
[02:05] zith_: what happens when you have a too many users and run out of ports for all of those connections?
[02:06] Egbert9e9 has joined the channel
[02:06] Tim_Smart: zith_: Huh? You don't open a new port per connection.
[02:06] jesusabdullah: prettyrobots: I've heard good things about libxmljs I think
[02:06] zith_: Tim_Smart: right
[02:06] drudge has joined the channel
[02:07] Tim_Smart: You open a new socket per connection, but the OS can handle a heap of those.
[02:07] prettyrobots: jesusabdullah: Yeah. That's the way I'm leaning. libxmljs
[02:07] zith_: i should stop ircing after 4 am :/
[02:07] jesusabdullah: haha
[02:07] prettyrobots: Ugh. How do you test something like this?
[02:07] Tim_Smart: prettyrobots: http://github.com/astro/node-expat
[02:07] Tim_Smart: For performance.
[02:08] prettyrobots: Gak.
[02:08] prettyrobots: I want programmer performance.
[02:08] jesusabdullah: "performance"
[02:08] jesusabdullah: hurr hurr
[02:08] saikat has joined the channel
[02:09] MikhX has joined the channel
[02:09] prettyrobots: Isn't expat a dependency?
[02:10] jesusabdullah: Indeed
[02:10] prettyrobots: Hmm...
[02:10] prettyrobots: http://github.com/robrighter/node-xml
[02:10] jesusabdullah: dependencies aren't bad though
[02:10] Tim_Smart: Then my second choice might be http://github.com/polotek/libxmljs
[02:10] gsmcwhirter has joined the channel
[02:10] prettyrobots: libxmljs looks nice.
[02:10] webr3: then check the speed difference ;) nothing wrong with a dependency in application code, slightly different for a lib, but then I'd be inclined to go wit the 100* faster lib from all stances.
[02:11] prettyrobots: If I wanted to do SAX node-xml looks nice because it is pure JavaScript, no dependencies.
[02:11] prettyrobots: Yes. But, we're talking about parsing really tiny messages, in a client library, that launches server instances, that cost money.
[02:12] prettyrobots: So, I don't believe I need to process 10k a second messages from the library.
[02:12] prettyrobots: Right?
[02:12] wattz: anyone recommend a good "what's around me" location webservice?
[02:12] webr3: are they fixed scheme?
[02:12] webr3: schema*
[02:12] jesusabdullah: wattz: google maps?
[02:12] wattz: i don't need a map or anything, i just need a list of a certain type of business around the user
[02:12] prettyrobots: ACTION Looks around the empty coffee cups. Wonders why he needs a web service for that.
[02:13] Tim_Smart: wattz: Just type "pizza in new york" into google maps
[02:13] webr3: prettyrobots, if messages are always the same, then parser is overkill and a simple split or regex will do the trick better
[02:13] wattz: ...
[02:13] prettyrobots: webr3: Err... Naw. Always best to just parse XML. It's not *that* hard to parse.
[02:14] prettyrobots: Anyway, thanks for your help. I found the three best options.
[02:14] prettyrobots: XML wise.
[02:14] jesusabdullah: webr3: Many people would argue that regexping xml is always a bad idea.
[02:16] Tim_Smart: Most sane people would argue XML is a bad idea.
[02:16] Tim_Smart: Unless you like over-complicating your data.
[02:16] jesusabdullah: I don't really like xml either
[02:16] jesusabdullah: but it's out there!
[02:17] atourino: the truth is out there
[02:17] webr3: jesusabdulla, including me :) but if it's just in here then it can't hurt, if you're getting a packet with nested elements and properties then of course to use a parser which is compliant with the spec is a much better idea!
[02:17] webr3: can't you change the packets to be json?
[02:17] webr3: :p
[02:17] mjr_ has joined the channel
[02:21] c4milo1 has left the channel
[02:23] rauchg_ has joined the channel
[02:23] tk has joined the channel
[02:24] lakin has joined the channel
[02:26] mikew3c_ has joined the channel
[02:27] tjgillies: damn i can't find anything written in express that has tests
[02:28] bradleymeck: dum dee doo
[02:31] mjr_: Pretty quiet in here when everybody is at the node meetup.
[02:31] bradleymeck: shhh ive got coding going on, dont wake the baby
[02:33] In-A-Teapot has joined the channel
[02:33] In-A-Teapot: hi
[02:33] bradleymeck: jello
[02:34] In-A-Teapot: i have a question about compiling node.js.
[02:35] Validatorian: can anyone tell me why I get: "TypeError: Second argument should be a buffer" with this code? http://gist.github.com/580150
[02:36] In-A-Teapot: i keep getting this error when using ./configure: /home//node/deps/libeio/wscript:17: error: the configuration failed (see '/home//node/build/config.log')
[02:36] mtodd has joined the channel
[02:36] bradleymeck: validatorian, could you point us to a line in all that code
[02:36] bradleymeck: in-a-teapot whats the log say
[02:37] John9e9 has joined the channel
[02:37] Validatorian: bradleymeck: it doesn't specify -- this is the full error: http://gist.github.com/580155
[02:38] mjr_: Line 11 is not right
[02:38] mjr_: Just do: auctionRequest.write(handshakeJSON);
[02:38] In-A-Teapot: http://pastebin.com/4V7krnap <-- pastebin of config.log
[02:38] mjr_: You can actually do auctionRequest.end(handshakeJSON);
[02:38] Validatorian: mjr_: that's what I had first -- I added the additional bit attempting to debug
[02:38] mjr_: if you only have to send one thing and end it, you can do it in one go
[02:39] mjr_: Oh
[02:39] Validatorian: mjr_: same error
[02:39] mjr_: Also, you aren't sending JSON, you are passing an Object. Do:
[02:39] Validatorian: but good to know about adding it to end
[02:39] mjr_: auctionRequest.end(JSON.stringify(handshakeJSON));
[02:40] Validatorian: aha!
[02:40] mjr_: handshakeJSON isn't really JSON, it's an Object.
[02:40] Validatorian: that was it :)
[02:40] mjr_: I'd call it handshakeObj or something.
[02:40] webr3: mjr_, nice catch
[02:40] Validatorian: thanks mjr_
[02:40] mjr_: JSON is literally a String.
[02:40] bradleymeck: in-a-teapot you are missing some libs, rt , pthread, dl . idk anything about cygwin though
[02:40] stepheneb has joined the channel
[02:41] meso has joined the channel
[02:41] stepheneb has joined the channel
[02:41] In-A-Teapot: so, do i need to install stuff into cygwin, or is something missing in the src?
[02:42] bradleymeck: cygwin libs need installin
[02:42] satori_ has joined the channel
[02:42] In-A-Teapot: ah, aw... :(
[02:42] In-A-Teapot: it takes so long to install. v-v
[02:42] mikew3c_ has joined the channel
[02:43] bradleymeck: windows needs to get some love but no one loves win32 api
[02:44] webr3: this room has some of the best /nick's I've seen yet
[02:45] webr3: mikew3c, do you know if there's a mapping between DOM types and XSD types, would it not make sense to have the two joined and mapped fully?
[02:47] webr3: ACTION asks on list, actually which list?
[02:47] bradleymeck: and there is a mapping of CSS properties to logical graphic design somewhere... somewhere...
[02:48] mirko_ has joined the channel
[02:48] JimBastard_ has joined the channel
[02:48] Tim_Smart: In-A-Teapot: Go install Ubuntu or something, and your life will be complete.
[02:48] bradleymeck: cascading is nice though
[02:48] robotarmy has joined the channel
[02:48] In-A-Teapot: is there an example of how i can get the ping of the server, the client, and other clients?
[02:49] webr3: In-A-Teapot, Tim's advice is great btw, maybe go for a quick virtual box ;)
[02:50] In-A-Teapot: do i have to install anything on a VB computer?
[02:50] bradleymeck: does ubu come w/ python?
[02:51] wattz has joined the channel
[02:54] Tim_Smart: bradleymeck: I think so, some of the tray indicators use it.
[02:55] davidwalsh has joined the channel
[02:55] jacobolus has joined the channel
[02:57] crodas has joined the channel
[02:58] amuck has joined the channel
[02:58] lucideer has left the channel
[03:01] arlolra has joined the channel
[03:03] ako has joined the channel
[03:04] ivong has joined the channel
[03:08] meso has joined the channel
[03:13] eazyigz has joined the channel
[03:17] keeto has joined the channel
[03:19] siculars has joined the channel
[03:20] prettyrobots has joined the channel
[03:26] benburkert has joined the channel
[03:27] bradleymeck: where is that template bench
[03:30] Tobsn has joined the channel
[03:34] dgathright has joined the channel
[03:36] hayeah has joined the channel
[03:41] prettyrobots has joined the channel
[03:42] prettyrobots: Anyone using libxmljs on OS X?
[03:42] prettyrobots: It doesn't build with the default libxml2.
[03:43] ysinopsys has joined the channel
[03:43] prettyrobots: So, I used brew.
[03:43] prettyrobots: But, now I can't get it to find the right libxml2 from my scripts.
[03:43] prettyrobots: s/scripts/programs/
[03:43] AAA_awright has joined the channel
[03:46] arlolra has joined the channel
[03:48] Aria: ... It works for me on snow leopard, prettyrobots
[03:48] Aria: (stock)
[03:48] prettyrobots: Yeah. I found th eissue.
[03:48] prettyrobots: http://github.com/polotek/libxmljs/issues#issue/13
[03:49] Aria: Aah! /Not a compile problem.
[03:50] noahcampbell has joined the channel
[03:51] matschaffer has joined the channel
[03:52] prettyrobots: It just looks bad.
[03:54] Zuardi has joined the channel
[04:04] amuck_ has joined the channel
[04:04] amuck has joined the channel
[04:04] amuck_ has joined the channel
[04:06] nroot7 has joined the channel
[04:06] langworthy has joined the channel
[04:07] eck has joined the channel
[04:07] eck has joined the channel
[04:07] overra has joined the channel
[04:13] hsuh has joined the channel
[04:13] nroot7 has left the channel
[04:14] nroot7 has joined the channel
[04:20] danielzilla has joined the channel
[04:20] matt_c_ has joined the channel
[04:23] bpot has joined the channel
[04:27] ajpiano has joined the channel
[04:36] saikat has joined the channel
[04:36] Validatorian: anyone familiar with long-polling know how I can send the request this is expecting? It is waiting for something, but I can't see what it's waiting for on www.skoreit.com -- code: http://gist.github.com/580181
[04:38] sechrist: Any decent XML parsers for node?
[04:38] sechrist: speed is of the essence
[04:39] mjr_: speed of answer or speed of XML parser?
[04:41] Aria: libxml works with node
[04:41] eyeofhell_: Hello. Are where any guides available how to debug node.js in Eclipse?
[04:41] dilvie has joined the channel
[04:42] kjeldahl_ has joined the channel
[04:44] cloudhead has joined the channel
[04:45] lachlanhardy has joined the channel
[04:45] Tim_Smart: sechrist: libxmljs or expat
[04:46] mitkok has joined the channel
[04:52] mitkok has joined the channel
[04:53] guybrush: hmm is there way to "mount" a connect-staticProvider into a fake-directory?
[04:54] nroot7: Is there a middleware in connect to do basic authentication ?
[04:55] guybrush: nroot7: http://github.com/ciaranj/connect-auth
[04:58] bradleymeck: fake-directory?
[05:01] MikhX has joined the channel
[05:01] bradleymeck: by the POWER OF EVAL http://jsperf.com/dom-vs-innerhtml-based-templating/7 , note: pistachio is highly optimized using Function (ie6 will barf probably), cmon guys we can make these template engines faster if i can rip that out in 24 hrs
[05:05] mu-hannibal has joined the channel
[05:06] guybrush: bradleymeck: i.e. i want to provide 'public/moo' on http://doma.in/foo
[05:07] bradleymeck: guybrush. use a router, and replace the req.url with the tail you want to keep
[05:07] bradleymeck: (keep the /)
[05:07] keeto has joined the channel
[05:07] bradleymeck: connect.router*
[05:07] bradleymeck: not with it tonight...
[05:07] mikeal has joined the channel
[05:08] hb_ has joined the channel
[05:08] guybrush: bradleymeck: thx
[05:09] Tim_Smart: bradleymeck: What is pistachio?
[05:09] bradleymeck: its a template engine im building to compete w/ mustache.js
[05:10] bradleymeck: might lost 10% or so the speed once done
[05:10] bradleymeck: lose*
[05:10] bradleymeck: i am using it internally so heh
[05:11] Tim_Smart: Well the idea with jade and haml is that you compile once, then cache the html-generator function.
[05:11] bradleymeck: yep, and the test does that
[05:11] bradleymeck: i just abusively inline references
[05:12] bradleymeck: they do some odd stuff with string concats that takes up a lot of time compared to just dumbing the data out to a stream
[05:12] bradleymeck: dump*
[05:15] iwasbiggs has joined the channel
[05:17] bradleymeck1 has joined the channel
[05:17] bradleymeck1: yay netsplit
[05:20] dilvie: fear the stachio
[05:21] bradleymeck1: yea, trying to make the test case more real and it still hits pretty high making the stream take a +"" per incremental push to it
[05:22] bradleymeck1: not built for that but it does fair
[05:23] dilvie: hrm
[05:28] MikhX has joined the channel
[05:29] keeto_ has joined the channel
[05:30] mitkok has joined the channel
[05:32] Aaron1 has joined the channel
[05:35] Validatorian: anyone have a few moments to help me with a long-polling issue? I'm completely lost
[05:37] ryah: i wonder if node should /window 13
[05:38] ryah: damn it
[05:38] mjr_: node should totally /window 13
[05:38] Validatorian: +1 for node /window 13ing
[05:39] bradleymeck has joined the channel
[05:39] jimmybaker has joined the channel
[05:41] Tim_Smart: /window 13?
[05:41] nroot7 has joined the channel
[05:43] mu-hannibal has left the channel
[05:43] Aria: IRSSI command to switch windows
[05:44] amuck has joined the channel
[05:44] SamuraiJack has joined the channel
[05:45] saikat has joined the channel
[05:45] jetienne has joined the channel
[05:45] mtodd has joined the channel
[05:46] Validatorian: http://gist.github.com/580181 -- anyone know how to complete this request? Should have something to do with a channel... no idea what it's expecting
[05:46] saikat_ has joined the channel
[05:48] SubStack: heh, globals everywhere
[05:48] Validatorian: just test code for now :)
[05:50] Validatorian: I can tell that it's waiting for something -- but when I firebug what's going on at skoreit.com, I can't see anything else
[05:50] Validatorian: there needs to be some way to say which channel to subscribe to
[05:51] hassox has joined the channel
[05:53] Aaron1 has left the channel
[05:53] admc has joined the channel
[05:54] Yuffster_ has joined the channel
[05:55] SubStack: beh I hate it when modules throw strings
[05:55] SubStack: no stacktrace
[05:58] ph^ has joined the channel
[06:03] kriszyp_ has joined the channel
[06:04] mirko_ has joined the channel
[06:04] CIA-77: node: 03Ryan Dahl 07master * rfeea133 10/ (src/node.js test/simple/test-global-leak.js):
[06:04] CIA-77: node: Make a list of known globals
[06:04] CIA-77: node: And fix missing var!
[06:04] CIA-77: node: It would be good to get this script running at the end of every test, so we
[06:04] CIA-77: node: know that modules aren't leaking either - but it will require a lot
[06:04] CIA-77: node: modification of the tests so that they themselves aren't leaking globals. - http://bit.ly/d4P9aE
[06:05] mjr_: ryah: how did the Palm talk go?
[06:05] ryah: mjr_: great - they gave some neat demos
[06:05] ryah: gave away some phones
[06:05] mjr_: wow, cool
[06:11] nroot7 has joined the channel
[06:11] CrabDude has joined the channel
[06:13] CrabDude: sooo.... i might be smoking something, but I think I'm having issues with the Content-Length being innacurate in the following code: http://pastebin.com/QBzk4fd4
[06:14] HAITI has joined the channel
[06:14] HAITI has joined the channel
[06:14] Egbert9e9 has joined the channel
[06:15] mikeal has joined the channel
[06:15] zomgbie has joined the channel
[06:16] dgathright: First time dealing with Node addons... so I have a few that I'd like to include in my app, and lets say they are located in /my/node/stuff/ as foo.node and bar.node. So, I just need to update $NODE_PATH to include /my/node/stuff/, then add var foo = require('foo'); var bar = require('bar'); ? Apparently I'm doing something wrong, as it isn't working.
[06:16] Validatorian: Anyone have any ideas on my issue?
[06:21] CrabDude: dgathright I know almost nothing about modules, but I know they have to call export in order to return anything
[06:22] CrabDude: and if they are .node, I think they have to have the node shebang as well
[06:22] CrabDude: might be wrong about that one
[06:22] CrabDude: try just using .js?
[06:22] hayeah has joined the channel
[06:23] dgathright: I'm familiar with modules, those are just JS. "Addons" on the other hand are C/C++
[06:23] CrabDude: oh, ha, nm then
[06:23] saikat: dgathright: output require.paths?
[06:23] jhoweb has joined the channel
[06:24] saikat: start up node, then console.log(require.paths)
[06:25] dgathright: saikat: Ah hah! Good call. it's not reading $NODE_PATH properly. Should be able to fix this just fine.
[06:25] saikat: might have forgotten to source your .profile or whatever
[06:26] sh1mmer has joined the channel
[06:27] dgathright: saikat: Got it working now :)
[06:28] saikat: nice
[06:32] silentrob has joined the channel
[06:36] ivong has left the channel
[06:39] ph^ has joined the channel
[06:40] jbenesch has joined the channel
[06:41] stagas has joined the channel
[06:46] daglees has joined the channel
[06:48] evilhackerdude: mjr_: thx for a great new redis lib (with multi) :-)
[06:48] ivanfi has joined the channel
[06:49] al-maisan has joined the channel
[06:50] gerred has joined the channel
[06:54] peol has joined the channel
[06:55] freeall has joined the channel
[07:00] MikhX has joined the channel
[07:01] prettyrobots: Got response parsing done:
[07:01] prettyrobots: http://github.com/bigeasy/node-ec2
[07:01] prettyrobots: Now to do some requests.
[07:04] SubStack: prettyrobots: hooray, now I don't have to write my own ec2 client \o/
[07:04] prettyrobots: I'm thinking that, it would be nice to have a queue for events.
[07:05] prettyrobots: Launch this instance, mount this, mount that, then call me back.
[07:05] prettyrobots: Most of my EC2 scripting is waiting for stuff to become available.
[07:07] jesusabdullah: SubStack: I thought you'd like that >:P
[07:07] JimBastard has joined the channel
[07:08] SubStack: jesusabdullah: nah, I love it when people write stuff that I was planning on writing anyways
[07:08] jesusabdullah: Yeah, it's pretty awesome isn't it?
[07:09] JimBastard: huzaaah
[07:09] FuzzYspo0N has joined the channel
[07:10] prettyrobots: Yeah. It is pretty amazing. Node.js projects have a lot of contributors.
[07:10] SubStack: I blame github
[07:10] prettyrobots: I mean, its cool that, if I don't get to it first, there's still ways to contribute with patches.
[07:11] JimBastard: hell yeah
[07:11] JimBastard: as long as things dont get coupled together that shouldnt, im happy
[07:11] prettyrobots: GitHub!
[07:12] ChrisPart has joined the channel
[07:12] SubStack: library driven development \m/
[07:13] mrbrdo has joined the channel
[07:13] prettyrobots: http://kiloblog.com/post/sharing-code-for-what-its-worth/
[07:14] prettyrobots: I wrote that a while back, about how and why GitHub is important.
[07:14] SubStack: github is by far my favorite social networking site
[07:15] SubStack: because using it makes me more productive, not less
[07:15] pquerna: oh, it makes me less productive :)
[07:16] mies has joined the channel
[07:17] tahu has joined the channel
[07:18] ahc has joined the channel
[07:18] SubStack: prettyrobots: hahaha I love this quote:
[07:18] SubStack: The nature of open source on the SourceForge model is academia at it’s most petty, because the stakes could not be lower.
[07:20] Anti-X has joined the channel
[07:21] Nohryb has joined the channel
[07:22] prettyrobots: That was in response to someone saying that SourceForge was for serious projects.
[07:22] prettyrobots: A lot has changed in two years.
[07:22] prettyrobots: Hey:
[07:23] prettyrobots: Calculate an RFC 2104-compliant HMAC with the string you just created,
[07:23] prettyrobots: That is in the Amazon docs. Someone please tell me I don't have to understand what that menas.
[07:24] jetienne: :)
[07:25] SubStack: hmac looks like some padding around a key to tell what type of hashing function it was computed with
[07:25] jetienne: hmac is cool as it reduce the attack :)
[07:25] jetienne: you can compute it with openssl cmdline
[07:25] prettyrobots: crypto.createHmac(algorithm, key)
[07:25] prettyrobots: I love Node.js.
[07:26] SubStack: oh it is entirely not that
[07:26] hellp has joined the channel
[07:26] prettyrobots: Not what?
[07:26] SubStack: what I said
[07:27] zefhemel has joined the channel
[07:28] jetienne: base64 -w0 policy.txt | openssl dgst -sha1 -hmac 'uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o' -binary | openssl base64
[07:28] prettyrobots: Oh. I see. Lost it.
[07:28] pplante has joined the channel
[07:29] MikhX_ has joined the channel
[07:30] xla has joined the channel
[07:33] adambeynon has joined the channel
[07:34] ooooPsss has joined the channel
[07:35] shockie has joined the channel
[07:37] karboh has joined the channel
[07:37] mbrochh has joined the channel
[07:39] gthb has joined the channel
[07:40] mikew3c has joined the channel
[07:42] mirko_ has joined the channel
[07:42] prettyrobots: Dumb question.
[07:42] prettyrobots: When I do an HTTP client request with a query string...
[07:43] prettyrobots: ... is it a header or do I append it to the path?
[07:44] pplante: append to path
[07:44] jetienne: prettyrobots: http://github.com/mikeal/node-utils/tree/master/request/ you can use this. this is for http get made simple
[07:44] pplante: something.com/blah?query=string¶ms=here
[07:44] dgathright: prettyrobots: As a GET request? Yeah, part of the path
[07:48] JimBastard: i fucking knew it!
[07:48] JimBastard: once http://github.com/mikeal/proxypool hits its connection pool limit shit stops working!
[07:49] JimBastard: :-)
[07:49] JimBastard: its good to confirm assumptions
[07:50] pplante: unless it makes an ass out of u
[07:53] JimBastard: im use to that
[07:56] Mikeee has joined the channel
[07:57] Mikeee: g'morning
[07:58] JimBastard: morning
[07:58] tisba has joined the channel
[07:58] Mikeee: JimBastard: do you not sleep?
[07:58] JimBastard: Mikeee: ehhh
[07:58] JimBastard: im kinda on the 36 hour day lately
[07:58] JimBastard: so, yes at times
[07:58] Mikeee: Ah.
[07:59] hassox has joined the channel
[08:00] Mikeee: Right then, back to rtmp.
[08:05] hassox_ has joined the channel
[08:05] jetienne: rtmp? as in flash stuff
[08:06] Mikeee: Yeah...
[08:06] Mikeee: trying to get a rtmp server working in node.js
[08:06] jetienne: Mikeee: i did this in c++ this is crap. why do you need this
[08:06] Mikeee: fun/experiment
[08:06] jetienne: arf not my kind of fun :)
[08:07] jetienne: i needed this to receive flash webcam in my p2p webpeer and i suffered
[08:07] Mikeee: Ahh well it's going to be more for just messaging and shared objects
[08:07] Mikeee: hoping to eventually use it for my unity3d game
[08:07] Mikeee: (moving a c# rtmp client over to that)
[08:08] prettyrobots: My Amazon request works form curl but not from EC2.
[08:08] prettyrobots: Er, Node.js.
[08:08] prettyrobots: It says the signature is off.
[08:08] prettyrobots: Does Node.js reparse the get request?
[08:09] prettyrobots: Bah. Moer tomorrow.
[08:11] hassox has joined the channel
[08:13] Yuffster_work has joined the channel
[08:15] Throlkim has joined the channel
[08:16] Mikeee: Hmm will my connection by default close the moment no more data is being sent?
[08:16] SubStack: hmm doesn't seem to be a nice high-level http client lib like WWW::Mechanize for node
[08:19] SubStack: hmmm, request looks pretty sweet
[08:19] SubStack: what is it doing all packed up in this node-utils thing
[08:21] prettyrobots: Got a request working.
[08:21] JimBastard: SubStack: npm install request
[08:21] JimBastard: boom
[08:22] JimBastard: we use it all over the place
[08:22] SubStack: yeah but the github is all odd
[08:22] royi has joined the channel
[08:22] royi has left the channel
[08:23] JimBastard: im sure if you prodded mikeal he would make it a separate repo. i think there might have been talk about getting request and the connection pool stuff into core
[08:23] virtuo has joined the channel
[08:23] papandreou has joined the channel
[08:24] papandreou has left the channel
[08:27] prettyrobots: I wish sprtinf was part of Node.js.
[08:30] mies has joined the channel
[08:30] iwasbiggs: console.log('hi %j', {a: true});
[08:30] iwasbiggs: hm
[08:31] iwasbiggs: sprintf though, i am not sure
[08:39] zum: iwasbiggs: check out 'format' in http://github.com/ry/node/blob/master/src/node.js, that's what console.log uses
[08:39] zum: tough I don't think it's exported
[08:40] crohr has joined the channel
[08:41] iwasbiggs: hmm, that is a little lackluster i suppose. then again printf is a little massive
[08:41] iwasbiggs: heh
[08:43] Epeli: Does node.js have something similar to pdb of Python? ex. import pdb; pdb.set_trace()
[08:44] zefhemel: There's node-inspector for debugging
[08:45] abhinay has joined the channel
[08:46] Epeli: wow, that's way cooler!
[08:46] zefhemel: quite neat indeed :)
[08:46] prettyrobots: Epeli: Or you can debug using Eclipse. That's how I do and that is in the WIki.
[08:47] zefhemel: prettyrobots: where?
[08:47] prettyrobots: A binding to sprintf would be cheap, cheap in the core.
[08:47] prettyrobots: http://github.com/ry/node/wiki/Using-Eclipse-as-Node-Applications-Debugger
[08:47] prettyrobots: And it would save me from having to write `pad` again.
[08:50] prettyrobots: Okay.
[08:50] prettyrobots: http://github.com/bigeasy/node-ec2
[08:50] prettyrobots: Got request logic. Will try to get a Node.js API going tomorrow.
[08:50] prettyrobots: Night.
[08:50] prettyrobots has left the channel
[08:51] V1 has joined the channel
[08:52] teemow has joined the channel
[09:00] dgathright has joined the channel
[09:00] tekky has joined the channel
[09:01] Epeli: Another Node.js question: Is there anything like Virtualenv in Python?
[09:02] mirko__ has joined the channel
[09:04] TomY has joined the channel
[09:11] V1: Epeli: You can have modules execute in there own "context" and "global" so I guess that's node.js equiv for Virtualenv
[09:14] Gruni has joined the channel
[09:15] sideshowcoder has joined the channel
[09:15] omarkj has joined the channel
[09:20] sveimac has joined the channel
[09:22] herbySk has joined the channel
[09:22] Mikeee: Oh bloody hell.. http://en.wikipedia.org/wiki/Real_Time_Media_Flow_Protocol didnt evne know that existed.
[09:23] jetienne: V1: how do you do that ?
[09:25] captain_morgan has joined the channel
[09:25] theBigZ has joined the channel
[09:25] captain_morgan has left the channel
[09:25] V1: jetienne: Add NODE_MODULE_CONTEXTS=1 when building node
[09:26] V1: See nodejs changelog: 2010.07.16, Version 0.1.101, 0174ceb6b24caa0bdfc523934c56af9600fa9b58
[09:26] V1: o wait
[09:26] V1: It's a "evn" variable :p
[09:26] jetienne: http://groups.google.com/group/nodejs/browse_thread/thread/a4b7dd0ef99704d1 <- some more info about it
[09:26] jetienne: V1: thanks :)
[09:27] V1: yw
[09:31] overra: jetienne: i updated that favicon a little
[09:31] overra: unread count just wont look good at such a small size
[09:31] jetienne: overra: yep sharper now
[09:32] jetienne: overra: understandable. what is the exact size of favicon ?
[09:32] overra: 16x16
[09:33] overra: jetienne: if @cramforce really wants the unread count in the favicon, that's fine, i can try to come up with something else.
[09:34] jetienne: overra: hmm thinking about it... i like the blue water... is it possible to get the water + 2drops as normal
[09:34] overra: ah, like halfway
[09:35] jetienne: overra: i dont think he will. he may just think it is cool to get this notification. but thinking more of something larger. like the size chrome extension icon.
[09:35] jetienne: overra: more like current "notification" become "normal"
[09:35] jetienne: favicon are too small for subtle :)
[09:35] jetienne: not sure
[09:36] overra: jetienne: whatever he wants to do :)
[09:37] pdelgallego has joined the channel
[09:37] teemow has joined the channel
[09:37] V1: I just completely crashed my no.de hosting by updating one whole row in my application wtf :))
[09:37] saikat has joined the channel
[09:37] overra: i need to go back, there are tiny lines in between the sections of each blue part, stupid anti-alias :P
[09:37] V1: terminate called after throwing an instance of 'std::bad_alloc' what(): St9bad_alloc 0_____0
[09:37] adambeynon has joined the channel
[09:38] V1: I have no clue if it's node.js related or to no.de.. but the 'std::bad_alloc' points to c++ libraries
[09:39] aliem has joined the channel
[09:41] SamuraiJack_ has joined the channel
[09:43] Nohryb has joined the channel
[09:44] rnewson has joined the channel
[09:45] path[l] has joined the channel
[09:45] sideshowcoder has joined the channel
[09:46] V1: Seems to be http://no.de/ related as when I run it on my local server, I'm unable to reproduce it :9
[09:50] ahc has joined the channel
[09:54] delapouite has joined the channel
[09:57] path[l]2 has joined the channel
[09:58] jacobolus has joined the channel
[09:59] mies has joined the channel
[10:00] jacobolus has joined the channel
[10:03] tobiassjosten has joined the channel
[10:06] overra: jetienne: around?
[10:07] jetienne: overra: kinda
[10:08] overra: jetienne: :) one last update, overwrote the last
[10:08] overra: jetienne: doh, forgot transparency lol
[10:09] jetienne: overra: ok will look later today. im trying desperatly to focus :)
[10:10] overra: jetienne: no hurry, i'll catch you around later
[10:15] gthb has joined the channel
[10:22] romainhuet has joined the channel
[10:25] hassox has joined the channel
[10:32] aubergine has joined the channel
[10:38] sugardave has joined the channel
[10:39] ctp has joined the channel
[10:41] Mikeee: ah bollocks to rtmp
[10:41] ctp has joined the channel
[10:41] Mikeee: ACTION invents a new one
[10:41] captain_morgan has joined the channel
[10:42] fermion has joined the channel
[10:43] ryan[WIN] has joined the channel
[10:44] rnewson has joined the channel
[10:44] rnewson has joined the channel
[10:44] ajpiano has joined the channel
[10:45] allengeorge has joined the channel
[10:50] abhinay has joined the channel
[10:52] aubergine_ has joined the channel
[10:59] adambeynon has joined the channel
[11:00] mirko_ has joined the channel
[11:00] digitalsanctum has joined the channel
[11:00] weepy has joined the channel
[11:00] weepy: hello
[11:00] weepy: i wan't to nuke my npm folder
[11:00] weepy: and start from scratch
[11:01] weepy: how do i do this anyone ?
[11:02] micheil: there's a directory in your home directory
[11:02] micheil: it's a hidden directory
[11:02] micheil: rm it and you'll nuke your npm
[11:02] SubStack: npm config get root
[11:03] micheil: or that.
[11:03] micheil: and then rm that directory
[11:03] _tableton has joined the channel
[11:03] weepy: micheil thanks
[11:03] DoNaLd`: weepy: propably try nDistro
[11:03] DoNaLd`: http://github.com/visionmedia/ndistro
[11:03] micheil: ndistro's for distribution, iirc.
[11:04] weepy: the weird thing is that if I do npm ls - i get *loads* more packages than seem to be in .node_libraries
[11:04] Akufen has joined the channel
[11:04] Akufen has joined the channel
[11:04] micheil: for instance, for deploying to 100 servers or something like that
[11:05] micheil: This command will print to stdout all the versions of packages that are either installed or available in the registry, with their tags
[11:05] micheil: and whether or not they're active and/or stable.
[11:05] micheil: weepy: ^^
[11:05] micheil: npm ls @installed
[11:06] weepy: thanks
[11:06] micheil: erm
[11:06] micheil: npm ls installed
[11:06] micheil: that's a typo in the docs.
[11:10] rwaldron has joined the channel
[11:11] royi has joined the channel
[11:11] boaz has joined the channel
[11:11] figital has joined the channel
[11:11] crohr has joined the channel
[11:11] zorzar has joined the channel
[11:12] royi has left the channel
[11:13] aubergine has joined the channel
[11:28] evanpro has joined the channel
[11:30] bcg has joined the channel
[11:33] leitgebj has joined the channel
[11:34] siculars has joined the channel
[11:34] captain_morgan has joined the channel
[11:34] abiraja has joined the channel
[11:36] d0k has joined the channel
[11:36] okuryu has joined the channel
[11:39] bxjx has joined the channel
[11:40] qwe has joined the channel
[11:42] bxjx: Is there a Buffer like class that implements Writable Stream?
[11:45] trotter has joined the channel
[11:48] path[l] has joined the channel
[11:54] Akufen has joined the channel
[11:54] Akufen has joined the channel
[11:55] atourino has joined the channel
[11:57] sveimac has joined the channel
[11:58] ahc has joined the channel
[12:05] marcostoledo has joined the channel
[12:06] mies has joined the channel
[12:08] ker2x has joined the channel
[12:08] ker2x: friendly greetings \o/
[12:12] abhinay_ has joined the channel
[12:13] stepheneb has joined the channel
[12:14] ben_alman_ has joined the channel
[12:15] c4milo has joined the channel
[12:26] dnolen_ has joined the channel
[12:28] nerdEd has joined the channel
[12:30] mikew3c has joined the channel
[12:31] daglees has joined the channel
[12:32] mikew3c has joined the channel
[12:32] kaichen has joined the channel
[12:34] V1 has joined the channel
[12:36] mattikus has joined the channel
[12:42] Zuardi has joined the channel
[12:48] q_no has joined the channel
[12:51] q_no: is there a way to configure node to be more fault tolerant?
[12:51] ysinopsys has joined the channel
[12:51] q_no: my server just crashed due to an indefined array index
[12:51] q_no: *undefined
[12:52] q_no: of course...it's a bug in the code but I'd rater have an error.log than a crashing script
[12:54] xla has joined the channel
[12:54] trotter has joined the channel
[12:56] elliottkember has joined the channel
[12:58] teemow has joined the channel
[12:59] herbySk: q_no: process.on('uncaughtException', function () ...), or maybe it's process.on('error', ...)
[12:59] omarkj: herbySk: The first part was right.
[12:59] q_no: ok, thank you ;)
[12:59] ehaas has joined the channel
[13:00] omarkj: But you server should crash on internal errors. Again, that's a discussion for another time. :)
[13:00] rcy has joined the channel
[13:00] royi1 has joined the channel
[13:01] royi1 has left the channel
[13:06] ooooPsss has joined the channel
[13:10] Neverender has joined the channel
[13:19] ejpbruel has joined the channel
[13:19] teemow has joined the channel
[13:19] ejpbruel: hey there
[13:19] ejpbruel: i just clone the node repo from github
[13:19] ejpbruel: but i cannot get it to build
[13:19] ejpbruel: ./configure succeeds
[13:20] ejpbruel: but make fails on building v8
[13:20] ejpbruel: i get the following error
[13:20] ejpbruel: scons: warning: Ignoring missing SConscript 'obj/release/SConscript'
[13:20] ejpbruel: File "/Users/ejpbruel/Projects/o3/deps/node/deps/v8/SConstruct", line 1043, in BuildSpecific
[13:20] ejpbruel: TypeError: 'NoneType' object is not iterable:
[13:20] christophsturm has joined the channel
[13:20] ejpbruel: anybody have a clue what im doing wrong?
[13:21] evanpro has joined the channel
[13:21] ehaas: what version of python/scons do you have
[13:21] ejpbruel: let me check that
[13:21] ejpbruel: SCons by Steven Knight et al.:
[13:21] ejpbruel: script: v1.2.0.r3842, 2008/12/20 22:59:52, by scons on scons-dev
[13:22] ejpbruel: engine: v1.2.0.r3842, 2008/12/20 22:59:52, by scons on scons-dev
[13:22] jherdman has joined the channel
[13:23] proppy has joined the channel
[13:23] proppy: mape: hi, any luck with you file upload probleme ?
[13:23] proppy: -e
[13:23] mape: proppy: Jup! Got it working by adding the filename
[13:23] mape: couldn't figure the other wonky stuff out
[13:23] proppy: mape: nice
[13:23] proppy: so you fixed the glazio client
[13:23] proppy: ?
[13:24] mape: yeah
[13:24] proppy: was it accepted upstream, just curious ?
[13:25] mape: Oh no I just modded it
[13:25] mape: It is just a ruby script so very easy to modify
[13:25] ooooPsss: is there anything like Capistrano for node?
[13:25] proppy: oh ok, I thought that you wanted your ocr to work with any glazio client thought, I know they are on github that's why iasked
[13:26] proppy: mape: got a demo ?
[13:27] mape: The OCR worked awful need to head home from work, will bring source when I get back :)
[13:29] davidsklar has joined the channel
[13:30] mikew3c_ has joined the channel
[13:31] ejpbruel: i updated my version of scons to the latest one, but the problem with v8 persists
[13:39] Gruni has joined the channel
[13:40] matt_c has joined the channel
[13:45] amrnt has joined the channel
[13:46] lakin has joined the channel
[13:51] elliottkember has left the channel
[13:53] hp|mittagschlaf has joined the channel
[13:54] ajpiano has joined the channel
[13:54] femtoo has joined the channel
[13:56] matt_c has joined the channel
[13:56] amrnt has left the channel
[13:56] genbit1 has joined the channel
[13:57] davidwalsh has joined the channel
[14:03] DRMacIver has joined the channel
[14:05] jherdman has joined the channel
[14:07] mikekelly: hello internet friends
[14:07] mikekelly: behold, Resauce.js - http://github.com/restafari/Resauce.js
[14:08] maushu has joined the channel
[14:08] mikekelly: (because the world obviously needs another web framework for node)
[14:12] daniellindsley has joined the channel
[14:13] technoweenie has joined the channel
[14:15] bvleur has joined the channel
[14:17] Nohryb has joined the channel
[14:19] cardona507 has joined the channel
[14:21] digitals1aghetti: mikekelly: doesn't look too bad
[14:22] digitals1aghetti: kinda reminds me of cakephp a bit
[14:23] cardona507: has anyone done or seen anything interesting with node and the foursquare api?
[14:23] digitals1aghetti: nope, but then i don't use 4square anymore
[14:24] nodechild has joined the channel
[14:24] cardona507: why not?
[14:24] digitals1aghetti: no one needs to know where I am :D
[14:25] gerred has joined the channel
[14:25] digitals1aghetti: and anyway, when i tweet it attaches my location, that's enough for me - didn't need another social network to handle that
[14:25] overra has joined the channel
[14:25] cardona507: but badges....
[14:25] nodechild has left the channel
[14:26] digitals1aghetti: "Master of nodejs" is what I am leveling up for :p
[14:26] cardona507: heh
[14:26] ehaas has joined the channel
[14:26] cardona507: how's that going for you?
[14:27] digitals1aghetti: slowly
[14:27] mikekelly: thanks digitals1aghetti :-)
[14:27] cferris has joined the channel
[14:27] cardona507: not as slowly as me :p
[14:27] digitals1aghetti: only release one proper module so far, and the nodemodules twitter bot (but i'm about to re-write it)
[14:28] ben_alman has joined the channel
[14:28] restfulAmf has joined the channel
[14:28] mikew3c has joined the channel
[14:28] Egbert9e9 has joined the channel
[14:29] nefD: hrm.. noob question.. i have an array which contains objects.. i'd like to remove a given object from this array without knowing its index.. any suggestions on the best way to go about it?
[14:29] mape: nefD: filter?
[14:29] sirevanhaas has joined the channel
[14:30] mape: might be heavy on a huge array though
[14:30] restfulAmf: problem: I cant run the mvc sample of express fs module error
[14:30] aliem has joined the channel
[14:32] nefD: mape: Hmm ok, yeah, filter might work.. It looks like underscore might provide some functionality that'll help me with this problem too.. is underscore ported to a node module anywhere, do you know?
[14:32] mape: not sure
[14:33] nefD: i *might* not actually need an array, I suppose.. its being used to keep track of currently connected socket.io clients
[14:33] nefD: I can't really use the built-in client list, since it sets disconnected clients to null rather than removing their entries
[14:34] technoweenie: underscore works on node
[14:35] nefD: technoweenie: I had tried to require the un-min'ed script from the git repo, but it didn't work for me (didn't look like it was exporting anything, anyway, which makes sense as i think its intended for browser usage)
[14:35] technoweenie: oh, i'm pretty sure i've used it. oh well
[14:36] technoweenie: its not hard to filter an array yourself
[14:36] mikew3c has joined the channel
[14:36] nefD: technoweenie: yeah, and im guessing the functionality underscore provides perhaps uses those sorts of functions anyway? its just providing nicely wrapped functions?
[14:38] digitalspaghetti: grrr site has gone down again
[14:38] Lerchmo has joined the channel
[14:38] gsmcwhirter has joined the channel
[14:38] digitalspaghetti: can anyone suggest a node restarting tool that isn't upstart & monit
[14:38] digitalspaghetti: because i can't run them on my webfaction account
[14:40] nefD: hmm
[14:40] digitalspaghetti: infact i'll just run it in screen and see what happens when it crashes, if anything
[14:40] nefD: maybe daemonize your script with node-damon?
[14:40] nefD: er, node-daemon
[14:40] restfulAmf: hello can any one help me out on how to deploy node.js on a local server for production?
[14:41] digitalspaghetti: maybe nefD
[14:41] wink_: digitalspaghetti: just run this in your screen: while true; do node app.js; done
[14:41] wink_: lol
[14:41] wink_: if it crashes, it'll just restart :>
[14:41] digitalspaghetti: yea, i'm using spark so i'll just do the same :)
[14:42] nefD: digitalsanctum: I know you can spawn child processes from a node script.. at one point I had kind of a demo script that would launch a process, and then relaunch if the program terminated unexpectedly.. ill try and dig it up in a bit for you if youd like
[14:42] digitalspaghetti: so far nodemodules hasn't crashed yet, it's been running for several days now :)
[14:42] digitalspaghetti: that's my own code, the website is on express :(
[14:42] arlolra has joined the channel
[14:43] bcg_ has joined the channel
[14:43] KungFuHamster has joined the channel
[14:43] digitalsanctum: nefD: that would be sweet. thanks!
[14:45] Dan0 has joined the channel
[14:45] Dan0: hi
[14:45] matt_c has joined the channel
[14:46] Dan0: anyone up?
[14:47] Dan0: need help with node.js :( lol
[14:48] EyePulp has joined the channel
[14:48] Dan0: can't connect remotely
[14:48] mtodd has joined the channel
[14:49] sirevanhaas: what do you mean
[14:49] Dan0: works locally and on lan
[14:49] sirevanhaas: connect to a running instance of node http server?
[14:49] Dan0: but not over internet lol
[14:49] Dan0: such a noob >.< i am
[14:49] mtodd has joined the channel
[14:49] Dan0: I'm running node.js with webserver lib
[14:49] sirevanhaas: i would guess you're not listening on the right ip address or you have a NAT between you and the server
[14:50] aheckmann has joined the channel
[14:50] V1 has joined the channel
[14:50] Dan0: i listen on port 7999, i forwarded on my router
[14:50] stepheneb has joined the channel
[14:50] Dan0: wierd thing is that the client connects but no messages will get sent/recieved and after a while the server crashes with an erorr
[14:50] technoweenie has left the channel
[14:51] Dan0: node.js:63 throw e; ^ Error: Uncaught, unspecified 'error' event.
[14:52] nefD: huh.. got underscore working now.. mustve been doing something wrong last time
[14:53] Dan0: soo im not sure what i'm doing wrong :???
[14:53] restfulAmf: can any one point me to a great framework which is which express or geddy?
[14:53] restfulAmf: I know both are great but need to knwo your opinions on express and geddy
[14:55] nefD: restfulAmf: I haven't tried geddy, but ive been using express.. i like it a lot..
[14:55] Dan0: sirevanhass do u have an idea?
[14:55] rwaldron has joined the channel
[14:55] ben_alman has joined the channel
[14:55] figital has joined the channel
[14:55] nefD: restfulAmf: If you decide to go with express, I highly reccomend checking out the node-boilerplate git repo.. really helps speed up deployment and setup of an express + socket.io application (you can remove socket.io if you dont need it).. its at: http://github.com/robrighter/node-boilerplate
[14:56] restfulAmf: nefD ok I'm studying express currently but I cant run the mvc example any idea? it returns fs: 303 error
[14:56] boaz has joined the channel
[14:56] Dan0: here is a question.. socket.io vs websocket-server
[14:56] nefD: restfulAmf: Not sure, sorry.. I hadn't really messed with the examples too much
[14:56] jakehow has joined the channel
[14:56] nefD: Dan0: socket.io is pretty great.. i havent tried websocket-server, myself
[14:57] Dan0: im using websocket-server because aparently socket.io JSONs everything
[14:57] restfulAmf: nefD thanks I will check on node-boilerplate
[14:57] Dan0: if your making many requests its slow and heavy
[14:57] ooooPsss: nefD: node-boilerplate sounds very good! what else can you recommend to help using express? ;)
[14:57] ben_alman has joined the channel
[14:58] digitalsanctum: nefD: just realized your msg wasn't meant for me. duh
[14:58] rwaldron has joined the channel
[14:58] bradleymeck has joined the channel
[14:58] Dan0: i still can't connect to my chat over IP
[14:58] nefD: digitalsanctum: haha, my bad.. hit tab on the nick completion too early :P
[14:58] boaz has joined the channel
[14:58] figital has joined the channel
[14:58] ejpbruel has left the channel
[14:59] nefD: ooooPsss: Hmm.. obviously the official docs are great.. and make sure to check out the express repo if you havent already (ie: went for the download instead), as it comes with some helpful examples and demos
[14:59] ooooPsss: ok! ty
[14:59] nefD: ooooPsss: Also remember to check out the site and docs for connect, as express is based on connect anyway, so the docs for connect all apply, for the most part
[15:00] sveisvei has joined the channel
[15:00] Dan0: this is so weird.. www.dan0.net/chat/chat.html - everyone can connect and see new connections, but not send messages and after 2 mins node.js crashes with an unhandled error
[15:01] Dan0: www.http://dan0.net/temp/chat/chat.html sorry
[15:01] Dan0: agrh http://dan0.net/temp/chat/chat.html
[15:01] Dan0: lol
[15:01] nefD: Dan0: wrap the code block thats causing the crash in a try/catch and sys.inspect'ing the error to the console? that way you'll have a little better understanding of whats happening
[15:02] Dan0: the error is in node.js itself
[15:02] softdrink has joined the channel
[15:02] Dan0: i am listening on :7999
[15:02] Dan0: and i connect to :7999
[15:02] ooooPsss: nefD: thanks ;) where are you hosting your node apps?
[15:02] Dan0: on my computers lol
[15:03] Dan0: oh sorry >.>
[15:03] nefD: ooooPsss: I've been using Linode.. love them :) pricing is good, you get a good amount of resources for your money, and i've never really had downtime to speak of
[15:04] Dan0: wow Linode looks better than slicehost
[15:04] nefD: Dan0: Yeah, i've used both and i prefer linode, personally
[15:04] Dan0: cool
[15:04] ooooPsss: nefD: ok ;) tell me something. when you have a websocket server running, it's always connected to that server instead of the express.server?
[15:06] nefD: ooooPsss: Actually, the socket.io server piggybacks the express server, and filters out requests that contain a particular string in the query, so its kind of intertwined with the express server
[15:06] ivanfi has left the channel
[15:07] ooooPsss: nefD: in the node-boilerplate example, you setup an express server on port 8081. when you connect it goes to "/", how does it knows that should call the socket.io server?
[15:08] shockie: websockets send extra info to the server, i thought Upgrade: header?
[15:08] nefD: ooooPsss: What you should check out is the /static/js/script/js file
[15:09] nefD: ooooPsss: Notice the path its using when specifying the url where it should attempt a connection is /client/
[15:09] ooooPsss: ok, got it
[15:09] ooooPsss: so when you click "send message" it's actually calling that path, right?
[15:10] nefD: ooooPsss: Also, a quick gotcha.. if you decide to run on a port other than 8081, youll need to change the port in script.js file as well! that one stumped me for a little while the other fay :)
[15:10] bryanl has joined the channel
[15:10] nefD: ooooPsss: Well, its only calling that path in the beginning to establish a connection.. after the connection is established, it doesn't need to call that path again, it merely sends the message to the server, which then gets picked up in socket's event handlers
[15:10] ph^ has joined the channel
[15:10] ooooPsss: ok, I see. ty
[15:10] Me1000 has joined the channel
[15:10] q_no: does anyone know this message " Data incorrectly framed by UA. Dropping connection"?
[15:11] bradleymeck: for a websocket?
[15:11] halfhalo has joined the channel
[15:12] Dan0: anyone know how to find out the remote address of a client?
[15:12] q_no: bradleymeck: yeah, using socket.io
[15:12] bradleymeck: probably draft mismatch
[15:12] Dan0: i know its in the header somewhere but i don't get how to user the headers object ( i dont even know js)
[15:12] ooooPsss: nefD: is there any documentation for socket.io? more than the examples in the website?
[15:12] bradleymeck: Dan0, conn.remoteaddress (forget casing)
[15:13] Dan0: ok thanks :)
[15:13] Dan0: oh doesn't work with webserver
[15:15] bradleymeck: mmm?
[15:17] bradleymeck: f it got renamed it looks like
[15:17] mattikus has joined the channel
[15:18] bradleymeck: request.socket.remoteAddress for http
[15:18] Dan0: omg i suck. how can i just output in a string all the contents of the headers object in node?
[15:18] nefD: ooooPsss: Hmm, theres http://socket.io , but beyond that there isn't a ton of documentation out there..
[15:18] bradleymeck: Dan0 which direction
[15:19] daniellindsley has joined the channel
[15:19] Dan0: direction?
[15:19] genbit1 has left the channel
[15:19] ooooPsss: nefD: node-boilerplate is pretty good ;) have you done that yourself?
[15:19] nefD: ooooPsss: Nope, not me :D But yeah, its extremely helpful
[15:19] Dan0: bradleymeck direction?
[15:20] ooooPsss: nefD: you can really trust what they setup for you right? :p I've never used html-boilerplate before
[15:20] bradleymeck: client to server or server to client
[15:20] nefD: ooooPsss: One of the nicest things about the boilerplate is that you can simply git clone a module repo into /lib/ and require it from your server (or any other script) without worrying about paths
[15:20] Dan0: when a client connects i just want to output all the information in the header to console
[15:20] Dan0: so I can debug why my thing isn't working
[15:21] nefD: ooooPsss: Well, there are bits and pieces I go back through and tweak or remove depending on the application, but it doesn't make *too* many assumptions with regards to configuration
[15:21] jtsnow has joined the channel
[15:21] ooooPsss: ok ;)
[15:22] bradleymeck: console.log(request.headers); is enough for me
[15:23] mtodd has joined the channel
[15:24] loincloth has joined the channel
[15:25] Dan0: just outputs [object Object] for me bradleymeck
[15:25] mtodd has joined the channel
[15:25] bradleymeck: dont tostring it
[15:25] Dan0: i havent
[15:25] shockie: upgrade node?
[15:25] bradleymeck: dont concat onto it
[15:26] Dan0: sys.log(conn.headers);
[15:26] bradleymeck: sys.log?
[15:26] Dan0: omg ok xD
[15:27] tj has joined the channel
[15:27] bradleymeck: the sys commands are ooold, console has more niceties
[15:27] bradleymeck: tjholowaychuk~ /hug
[15:27] tjholowaychuk: ahaha? hug? bradleymeck /hug
[15:28] Dan0: no its a require("sys");
[15:28] Dan0: from node.. i think
[15:28] Dan0: omg i dont even know JS let alone node let alone webserver lol
[15:29] Dan0: im just struggling getting it to connect over the internet
[15:29] bradleymeck: Dan0 : type this exactly "console.log(require('sys').inspect(conn.headers))"
[15:29] bradleymeck: do not deviate
[15:30] Dan0: yes it works
[15:30] Dan0: console.log was working aswell :)
[15:30] Dan0: by itself
[15:30] bradleymeck: cool
[15:30] Dan0: thanks a lot
[15:31] tjholowaychuk: it does inspect() and some other funky stuff
[15:31] Dan0: just got a problem connecting to my chat server and I was trying to use headers to diagnose it but they don't give you the remote IP .. oh well
[15:31] jpld has joined the channel
[15:31] Dan0: my server works locally and over lan but not over the internet
[15:31] bradleymeck: conn.socket.remoteAddress
[15:32] zomgbie has joined the channel
[15:32] bradleymeck: request*
[15:32] ooooPsss: nefD: to change the modules you just need to add them to the lib directory?
[15:32] nefD: ooooPsss: Right, you can do a 'git clone ' or just copy the module dir, into the /lib/ dir
[15:33] ooooPsss: ok, but I can fork the project and add modules for new projects.
[15:33] Dan0: oh god it worked lol thank you
[15:33] sideshowcoder has joined the channel
[15:33] mbrochh has joined the channel
[15:34] mbrochh has joined the channel
[15:34] Dan0: ok so its connecting from my ip to my ip
[15:34] Dan0: and the client recieves messages but won't send them
[15:35] Dan0: http://dan0.net/temp/chat/chat.html - test it out
[15:35] hayeah has joined the channel
[15:37] Dan0: hmm somone did connect :)
[15:37] Dan0: and it worked
[15:37] Dan0: so its just a problem on my network
[15:38] Dan0: the person's ip begins with 72 and ends in 11
[15:39] benburkert has joined the channel
[15:39] Dan0: so i can't connect to myself over the internet i have to connect locally but everyone else can use my IP
[15:40] langworthy has joined the channel
[15:40] Dan0: bradleymeck thanks again for your help
[15:40] bradleymeck: anytime
[15:41] pwrfail has joined the channel
[15:41] Dan0: tbh im not really sure what these libraries do like socket.io and webserver is it really that hard to code it from the ground up?
[15:42] tjholowaychuk: Dan0: you wouldnt want to reproduce that code
[15:42] Dan0: also what is the difference between http.Server and net.Server
[15:42] wink_: daniellindsley: its no exceptionally hard, it is however exceptionally tedious to get correct
[15:42] tjholowaychuk: one is tcp one is http
[15:42] wink_: erm
[15:42] daniellindsley: Hahaha.
[15:42] bradleymeck: /shudders at draft determination
[15:42] wink_: silly nick completion, gets me everytime ;>
[15:43] silentrob has joined the channel
[15:43] captain_morgan has joined the channel
[15:43] Dan0: ok so basically it determins the draft (which i dont even understand 100%)
[15:43] bradleymeck: thats one of many things
[15:43] Dan0: ok but why would you use an http.Sever when u could user net.Server without the overheads - such a stupid question i know sorry
[15:44] wink_: Dan0: because if you need http, implmenting that on top of a tcp socket would be silly
[15:44] nerdEd has joined the channel
[15:44] tjholowaychuk: Dan0: net.Server is there for stuff like talking to redis
[15:44] tjholowaychuk: sorry not server
[15:44] tjholowaychuk: haha
[15:44] tjholowaychuk: but net
[15:45] Dan0: to put it into perspective i have built a tcp server in java to connect to flash, but know nothing about http
[15:45] wink_: if you want just a raw socket, use net
[15:46] nefD: real men use carrier pigeons!
[15:46] Dan0: oh yeh i heard that javascript wasnt so good for doing byte operations and buffers etc
[15:46] wink_: if you wanted to say, make an xmlhttprequest from javascript running in a browser, you'd want to use http
[15:46] Dan0: but if i was sending x,y coords im using net
[15:46] bradleymeck: Dan0 bitwise ops are bad juju but piping data around is just fine
[15:47] KungFuHamster has joined the channel
[15:47] matschaffer has joined the channel
[15:47] Dan0: http://en.wikipedia.org/wiki/Juju - lol
[15:47] hsuh has joined the channel
[15:47] jashkenas has joined the channel
[15:48] phiggins: anyone based in amsterdam?
[15:48] Dan0: ill admit i was trying to emulate mrdoob app here - http://mrdoob.com/125/Multiuser_Sketchpad_HTML5 just to learn
[15:48] Aria has joined the channel
[15:48] wink_: bradleymeck: whats wrong with using bitops? are they just slow?
[15:48] softdrink: "bad juju" is a super common phrase in southern louisiana :)
[15:48] bradleymeck: wink_ ya
[15:49] nefD: hrm.. shame about bitops.. i rather like using them
[15:49] trotter has joined the channel
[15:49] softdrink: the only time i ever really use bit ops in js is for the double bitwise not trick
[15:50] hsuh has left the channel
[15:50] stephank has joined the channel
[15:51] nefD: softdrink: Huh! Just read about that, hadn't heard of it before.. i'm using a good number of Math.floors in my current project, may just have to replace them with '~~'s :D
[15:52] softdrink: it has some nifty side effects (provided you *want* them)… like coercing the value to a number, and unpoisoning NaN
[15:53] softdrink: ~~NaN == 0
[15:55] nefD: ahh nice
[15:55] wink_: http://jsperf.com/rounding-numbers-down
[15:56] wink_: yeah, thats a neat trick for sure :p
[15:56] mitkok has joined the channel
[15:56] Yuffster_work has joined the channel
[15:57] Dan0: 83% slower parseInt
[15:57] Dan0: i feel like a sucker but Chrome is my fav browser now
[15:58] wink_: sucker...
[15:58] nefD: Dan0: chrome has been my browser of choice for quite a long time now :P
[15:58] wink_: jk ;>
[15:58] Dan0: 3 reasons, easy to sync bookmarks, best support of html5, FAST
[15:58] nefD: side note: ~~(x + 1) = ceil, ~~(x + 0.5) = round
[15:58] softdrink: speed is the main reason i use chrome
[15:58] softdrink: firefox is such a dog compared to it
[15:59] Dan0: yeh also chrome has developer tools inbuilt that don't kill it unlike safari/firefox
[15:59] Dan0: tbh i have a fetish for ie
[15:59] Dan0: but dont tell anyone!
[15:59] restfulAmf: nefD: another question what is the best way to deploy node.js locally? I'm currently looking on upstart and monit procedure
[15:59] Dan0: (especially the 64bit version)
[15:59] Aria: nefD: those would work!
[16:00] nefD: restfulAmf: Not sure what you mean? Are you talking the best way to keep an instance running locally?
[16:00] Aria: (Also, inetd works with some tweaking)
[16:00] bradleymeck has joined the channel
[16:00] restfulAmf: nefD: Yes more or less... I'm developing a local system and it will only run locally
[16:01] ooooPsss: when you want to update a module that has been commited with new changes, the solution is to make git clone again?
[16:01] nefD: restfulAmf: Upstart is a dead simple way to keep a process running, imho.. deamon-izing your script is also a good option, as it gives you more control over how to handle crashes and relaunches
[16:02] nefD: ooooPsss: Just do a 'git pull'
[16:02] ooooPsss: ok! ;)
[16:02] micheil has joined the channel
[16:03] aheckmann has joined the channel
[16:03] ben_alman has joined the channel
[16:03] restfulAmf: nefD, thanks
[16:04] nefD: restfulAmf: no problem
[16:04] dgathright has joined the channel
[16:05] rwaldron has joined the channel
[16:05] figital has joined the channel
[16:06] ben_alman has joined the channel
[16:07] boaz has joined the channel
[16:08] AAA_awright has joined the channel
[16:10] steadicat has joined the channel
[16:13] nerdEd has joined the channel
[16:13] confoocious has joined the channel
[16:15] ooooPsss: nefD: is there a capistrano for node?
[16:15] nefD: ooooPsss: Hmm, not to sure, sorry
[16:15] tjholowaychuk: ooooPsss: you could use cap with node
[16:15] tjholowaychuk: i guess
[16:15] tjholowaychuk: but its kinda lame
[16:15] lianj: why?
[16:16] nefD: ooooPsss: Might want to peruse the modules list at: http://github.com/ry/node/wiki/modules
[16:16] ooooPsss: nefD: ty
[16:16] ooooPsss: tjholowaychuk: why?
[16:16] mikeal has joined the channel
[16:16] tjholowaychuk: ooooPsss: I just use makefiles for everything still, I hate rake
[16:16] jesusabdullah: Man, if I ever start playing with rails, I'm totally gonna ask how to do things like it's node
[16:16] nerdEd_ has joined the channel
[16:17] ooooPsss: ok
[16:19] jimmybaker has joined the channel
[16:20] bradleymeck: anyone know of a good way to test if a lib is installed from bash?
[16:21] jesusabdullah: ls /usr/lib | grep lapack
[16:21] jesusabdullah: ?
[16:21] jashkenas: ooooPsss: there is a "cake" rake-ish command that comes with coffeescript, if that's your cup of tea. Here's an example of a Cakefile ... http://github.com/documentcloud/pixel-ping/blob/master/Cakefile
[16:21] jesusabdullah: or
[16:21] jesusabdullah: su -c'yum install lapack-devel'
[16:22] jesusabdullah: cute project, jashkenas
[16:22] robotarmy: ooooPsss: capistrano - would work find with node
[16:23] jesusabdullah: Hmm
[16:23] robotarmy: ooooPsss: it's basically just the ability to segment releases into specific stages and have before/after hooks + a run command that executes on remote boxes in paralell
[16:23] jesusabdullah: I could use capistrano to run computations in parallel
[16:23] jesusabdullah: >:)
[16:23] jchris has joined the channel
[16:24] jashkenas: If you did it with node ... it would be parallel by default...
[16:24] jesusabdullah: Indeed
[16:24] jesusabdullah: except I can't run one node on 6 computers
[16:24] jesusabdullah: That's more what I mean
[16:24] jesusabdullah: I have like 1000 simulations I'm wanting to run
[16:24] jesusabdullah: each which takes like half an hour
[16:24] robotarmy: i know Make, Rake, Ant and have used others - as long as they manage dependencies and let execute thins nice it don't matter.
[16:25] robotarmy: - s/thins/things/
[16:25] jesusabdullah: I steer clear of make
[16:25] jesusabdullah: have changed a rake file once
[16:25] aubergine has joined the channel
[16:25] jesusabdullah: which was hard, cause I don't know ruby
[16:25] jesusabdullah: never had to mess with ant
[16:25] jesusabdullah: Wrote a waf file once
[16:25] jesusabdullah: that wasn't too bad
[16:25] robotarmy: jashkenas: not parallel by default - event based with callbacks and non-blocking
[16:25] robotarmy: there is a difference
[16:26] robotarmy: I learned Make when i was a c coder - i don't know the extent of it's powre
[16:26] robotarmy: but i can use it for what i need
[16:27] jesusabdullah: Do you know configure scripts?
[16:27] jesusabdullah: configure.in and that shit?
[16:27] robotarmy: i know how to work them and modify them - but not generate them or write them
[16:27] jesusabdullah: http://github.com/jesusabdullah/Puff-UAF/issues#issue/1 Fix this for me
[16:28] jesusabdullah: Gogogo
[16:28] robotarmy: hehe - i'll look
[16:28] jesusabdullah: (disclaimer: I think it may actually require modifications to the actual codebase)
[16:28] jesusabdullah: (but idk c or c++ really)
[16:28] jesusabdullah: Also has nothing to do with node
[16:29] deepthawtz has joined the channel
[16:29] figital has joined the channel
[16:29] rwaldron has joined the channel
[16:29] bpot has joined the channel
[16:29] robotarmy: jesusabdullah: you are trying to link udunits2 instead of 1 ?
[16:29] aurynn has joined the channel
[16:29] jesusabdullah: robotarmy: Yeah, that'd be the idea--porting Puff to use udunits2 instead of the original
[16:29] jesusabdullah: but udunits2 made some non-trivial changes
[16:30] jesusabdullah: hence the major version
[16:30] robotarmy: right
[16:30] jesusabdullah: There's a udunits1-style header, but even then I don't think it's a drop-in replacement
[16:30] robotarmy: is the linker for the library -ludunits2 ?
[16:30] jesusabdullah: I dunno
[16:31] rwaldron_ has joined the channel
[16:31] jesusabdullah: idk nothin' :S
[16:31] jesusabdullah: What's a linker
[16:31] jesusabdullah: ?
[16:31] robotarmy: ahh
[16:31] robotarmy: ok:
[16:31] robotarmy: good question
[16:31] jesusabdullah: Thanks? :S
[16:31] jesusabdullah: That's actually the only error besides checking for udunits.dat
[16:32] jesusabdullah: which is pretty easy to fix
[16:33] ben_alman has joined the channel
[16:33] robotarmy: compiled C/C++ ===> *.o , | linker takes all the .o files and makes a mashup -> It is aware of the symbols that are being used by the .o - external Library headers - they won't be in the .o's | you will have undefined symbols - that's where *.so 's come in (or *.a) libraries | these are linked in with -l
[16:33] robotarmy: a good example
[16:33] robotarmy: is math.h
[16:33] boaz has joined the channel
[16:33] jesusabdullah: Hmm
[16:33] robotarmy: write a small c program with math.h and compile it - no work - unless you compile and link with -lmath
[16:34] robotarmy: AC_CHECK_LIB([udunits], [utInit],,puff_have_libudunits=no)
[16:34] jesusabdullah: I just tried naively changing that to say udunits2
[16:34] jesusabdullah: gonna see what happens
[16:34] jesusabdullah: XD
[16:34] robotarmy: this line is looking for the function utInit in lib udunits
[16:34] wink_: on ubuntu at least you have to link math with -lm :>
[16:34] robotarmy: jesusabdullah: :D good thought
[16:34] robotarmy: wink_: thanks - :D
[16:34] jesusabdullah: Because there's a udunits.h for compatability
[16:34] robotarmy: wink_: i learned on bsd - :D
[16:35] jesusabdullah: that looks like udunits1 but uses udunits2
[16:35] wink_: fair enough :>
[16:35] robotarmy: jesusabdullah: i would also try that first
[16:35] jesusabdullah: ahh D:
[16:35] jesusabdullah: How do you figure out what linker to use?
[16:36] wink_: by linker you mean '-l' ?
[16:36] Aria: Usually you let the compiler call the linker.
[16:36] robotarmy: jesusabdullah: well - that - i don't know - you might try to find the library in the lib dir and see what it is named
[16:37] qFox has joined the channel
[16:37] robotarmy: jesusabdullah: http://www.unidata.ucar.edu/software/udunits/udunits-2/udunits2lib.html
[16:37] wink_: thats exactly what you'll want to do
[16:37] robotarmy: i googled for 'linking udunits2'
[16:37] langworthy has joined the channel
[16:37] robotarmy: -Llibdir -ludunits2
[16:37] robotarmy: and i saw that
[16:38] wink_: check out the man page for ld and read the -l/--library documentation
[16:38] robotarmy: so - that confirms it
[16:38] robotarmy: wink_: great suggestion!
[16:39] robotarmy: -lx This option tells the linker to search for libx.dylib or libx.a in the library search path. If string x is of the form y.o, then that file is searched for in the same places, but without
[16:39] robotarmy: prepending `lib' or appending `.a' or `.dylib' to the filename.
[16:39] robotarmy: (os x)
[16:39] robotarmy: the man will be different on yours
[16:40] jesusabdullah: thanks robotarmy
[16:40] wink_: and in fairness i had never actually read that part of the docs before, i just guessed until i got it right :>
[16:40] wink_: luckily its pretty intuitive
[16:40] robotarmy: exploration is one of the properties of a good hacker - as is willingness to guess
[16:41] robotarmy: (and test)
[16:43] matt_c has joined the channel
[16:44] jesusabdullah: I'm trying just commenting out the checks and seeing if it makes okay >:)
[16:44] bradleymeck: exploitation is one of the properties of a ...?
[16:44] voxpelli has joined the channel
[16:45] jesusabdullah: lolnope XD
[16:46] stagas has joined the channel
[16:46] MikhX has joined the channel
[16:47] TheEnd2012 has joined the channel
[16:50] BrianTheCoder has joined the channel
[16:52] isaacs has joined the channel
[16:53] rlotun has joined the channel
[16:55] noahcampbell has joined the channel
[16:55] rwaldron has joined the channel
[16:56] ben_alman_ has joined the channel
[16:58] mikeal has joined the channel
[17:00] digitalspaghetti: http://www.yuiblog.com/blog/2010/09/14/yui-open-hours-wed-15th/ starting now
[17:00] nerdEd has joined the channel
[17:02] mies has joined the channel
[17:03] dgathright has joined the channel
[17:04] bradleymeck: that is an interesting idea in ie9 compiling js on a different core from execution
[17:05] benv has joined the channel
[17:06] pkrumins: _announcer is dead again
[17:06] pkrumins: let me tweet my tweet myself to this channel
[17:06] pkrumins: Peteris Krumins: "Just released a new node.js module called supermarket-cart -- http://bit.ly/bm441f -- now you can store connect sessions in supermarket db."
[17:06] pkrumins: =^_^=
[17:07] nefD: pkrumins: nice :D
[17:11] ivong has joined the channel
[17:15] tisba has joined the channel
[17:20] softdrink has joined the channel
[17:20] stagas has joined the channel
[17:22] visnup has joined the channel
[17:23] jesusabdullah has joined the channel
[17:23] [[zz]] has joined the channel
[17:24] femtoo has joined the channel
[17:24] fictorial has joined the channel
[17:26] fictorial: anyone have issues installing jade for use in express? I thought I'd finally look at express and the git repo installation process does not work. maybe a problem with the submodule?
[17:27] benburkert has joined the channel
[17:27] stagas has joined the channel
[17:27] tjholowaychuk: fictorial: jade isnt a dependency, but you should be able to just npm install jade
[17:27] tjholowaychuk: and it should just work
[17:27] fictorial: yeah I did that - no dice
[17:28] aurynn has joined the channel
[17:28] isaacs: grr. ircretary is too ditzy. i need ot build her a memory or something.
[17:28] onar has joined the channel
[17:29] tjholowaychuk: fictorial: any exceptions?
[17:29] fictorial: cannot find module jade
[17:29] peteatolia has joined the channel
[17:29] b_erb has joined the channel
[17:29] tjholowaychuk: that might be an npm issue then
[17:30] isaacs: fictorial: wtf?
[17:30] isaacs: fictorial: works for me?
[17:30] isaacs: fictorial: `npm view jade@latest` shows me thejson for version 0.4.1
[17:30] mattikus has joined the channel
[17:30] fictorial: hang on, this vm might have an ancient version of node
[17:31] tjholowaychuk: woah i didnt push 0.5.0? shit
[17:31] isaacs: fictorial: yes, update node to 0.2.1, and npm to 0.2.0, and then it should work
[17:31] isaacs: tjholowaychuk: nope
[17:32] tjholowaychuk: there we go
[17:32] tjholowaychuk: weird
[17:32] _o has joined the channel
[17:32] CrazyGoogle has joined the channel
[17:33] CrazyGoogle: hallo, taking part on Open Hours
[17:35] lakin has joined the channel
[17:35] nwhite has joined the channel
[17:35] onar has joined the channel
[17:35] the_giver2 has joined the channel
[17:36] the_giver2: Hi, how do you guys recommend to unit test node.js? especially things like "post". Write a small server and test as a client?
[17:37] silentrob has joined the channel
[17:37] evilhackerdude: expresso has assert.response
[17:37] reuss has joined the channel
[17:37] the_giver2: evilhackerdude, i'll look into that, i'm using expresso
[17:37] evilhackerdude: the_giver2: i'm looking for something i can use with vows
[17:38] the_giver2: =/ yeah the paradigm of callbacks makes unit testing a bit different
[17:38] tahu has joined the channel
[17:38] fictorial: isaacs: yeah I didn't realize I was running an old version in this vm I'm using for testing. too much environment hopping... sorry for the bother.
[17:38] fictorial: tjholowaychuk: thanks also
[17:38] isaacs: fictorial: np
[17:38] tjholowaychuk: fictorial: np let me know if you run into other troubles
[17:38] isaacs: fictorial: hopefully that'll be less of an issue moving forward with the 0.2.x branch
[17:39] fictorial: ACTION hopes to code again soon; paternity leave ends soon :)
[17:39] isaacs: fictorial: yeah, it's good to pay attention to all your sides. human stuff as well as the robot coder side.
[17:40] fictorial: yeah I am much more inclined to robotism than people. :)
[17:40] fictorial: people are hard, let's go coding
[17:40] fictorial: :)
[17:40] isaacs: hahaha
[17:40] isaacs: ACTION can relate
[17:41] isaacs: sometimes it's good to be forced to take a little break, though. i find it makes me remember why i like it.
[17:41] fictorial: yes, indeed.
[17:42] isaacs: i went on a cruise back in April for a week with zero internet access. when i got back, I spent about 24 hours glued to my computer just catching up with the world. it was great.
[17:42] fictorial: heh
[17:43] fictorial: an iphone + reeder app = brain crack. I'm a news feed addict.
[17:43] the_giver2: for the POST method at line 48.. here: http://github.com/visionmedia/expresso/blob/master/test/http.test.js I'm assuming that you pass in data 'bar baz' and you get a response like '/foo bar baz'
[17:43] patientfox has joined the channel
[17:44] Dan0 has joined the channel
[17:44] Dan0: hey guys
[17:44] Dan0: can i ask a questioin?
[17:44] the_giver2: How would you guys test something if you are using twitter to authenticate users ?.... so essentially the user needs to login to user to use the site
[17:44] fictorial: in the middle of all of this I'm trying to launch playrelay. one of the things it does is host your js code and run it to referee games. one of the things I was interested in express for was the github oauth2 integration... with the idea that I could make it like heroku; you push to your repo, playrelay gets a webhook, and playrelay pulls your code and deploys it... thoughts?
[17:44] the_giver2: i should look at my http live headers i suppose
[17:44] jesusabdullah: Dan0: Go for it.
[17:45] Dan0: ok well its basically http vs net
[17:45] onar has joined the channel
[17:45] Dan0: im using node + node-webserver and I understand how to make an http.Server for something like a chat room
[17:45] rauchg_ has joined the channel
[17:45] Dan0: but I really want to understand how to emulate something like this http://mrdoob.com/125/Multiuser_Sketchpad_HTML5 on the server side (i understand the client side)
[17:46] stephank has joined the channel
[17:46] Dan0: but i'm not 100% sure how to do it or what the pros/cons of http/net are...?
[17:46] CrazyGoogle: after that YUI open hour, i would like to hear, what node.js people think about all that stuff :D
[17:47] CrazyGoogle: basicaly thay duplicate and overload stuff, you already can do in native node.js
[17:47] mjr_ has joined the channel
[17:48] Aria has joined the channel
[17:50] Dan0: ok jesusabdullah i asked my question >.>
[17:50] jesusabdullah: gj!
[17:50] jesusabdullah: I don't actually know
[17:50] jesusabdullah: but the only way to get answers is to ask!
[17:50] Dan0: haha ok thanks
[17:51] prettyrobots has joined the channel
[17:51] jesusabdullah: by http vs. net, do you mean using node's http vs. using node-webserver?
[17:51] sechrist: jesus christ i'm new to SF
[17:51] sechrist: I'm currently in a clud
[17:51] sechrist: cloud*
[17:51] jesusabdullah: SF?
[17:51] jesusabdullah: sci-fi?
[17:51] sechrist: i'm on eye level with clouds
[17:51] sechrist: san fransisco
[17:51] jesusabdullah: Ah
[17:51] jesusabdullah: Not sci-fi :(
[17:51] cognominal has joined the channel
[17:51] prettyrobots: Someone I know just told me that they can't read their D Drive.
[17:52] mjr_: sechrist: it's usually foggy like this, but this summer has been without heat of any kind.
[17:52] Dan0: anyone know about net vs http?
[17:52] prettyrobots: And they are willing to pay me to help them fix it.
[17:52] mjr_: prettyrobots: check for extra TSRs.
[17:52] mjr_: Dan0: what's your question about net vs. http?
[17:52] prettyrobots: mjr_: I just explained to them that I've made a point of not knowing what they are talking about.
[17:53] hp|mittagschlaf has joined the channel
[17:53] mjr_: prettyrobots: you could ask them to pay to you to explain why they shouldn't care either. win-win.
[17:53] scnd has joined the channel
[17:53] Dan0: what are the pros / cons of each type and how would u implement net
[17:53] jesusabdullah: Dan0: It looks like http is for http in particular, whereas net is more low-level.
[17:53] Dan0: at the moment im using node-webserver (which I think only uses http?)
[17:53] jesusabdullah: Yeah, if you're doing http stuff, you're probably using the http stuff
[17:54] jesusabdullah: Or, something higher-level
[17:54] prettyrobots: mjr_: Yeah, really. If you use a computer, it is worth it to just have a recent one.
[17:54] prettyrobots: Anyway.
[17:54] jesusabdullah: socket.io, for example
[17:54] jesusabdullah: or dnode
[17:54] Dan0: ok but doing like mrdoob on his site, parsing many x,y coords wouldnt net be better?
[17:54] jesusabdullah: What does parsing have to do with communication?
[17:54] mjr_: HTTP is really quite fast in node.
[17:54] sechrist: mjr_: yeah. I'm from Texas and this is like super cold for me
[17:54] jesusabdullah: If you're trying to communicate over http, then use the http module right?
[17:55] jesusabdullah: How warm is it sechrist?
[17:55] Dan0: ok so net is not much faster?
[17:55] mjr_: sechrist: I've lived here for 12 years, and this is super unusually cold.
[17:55] jesusabdullah: Why would it be faster?
[17:55] mjr_: I haven't taken the liner out of my motorcycle jacket all summer. That's just bizarre.
[17:55] prettyrobots: mjr_: What is a TSR? Teminate and Stay Resident?
[17:55] Dan0: well can i not communicate over tcp from a webpage?
[17:55] Dan0: *im a noob sorry
[17:56] mjr_: prettyrobots: that's the one. Those will eat up all of your 640KB.
[17:56] prettyrobots: mjr_: Oh, you're making a joke.
[17:56] prettyrobots: ACTION Remembers those days. Shudders.
[17:56] jesusabdullah: Dan0: You have these layers here. tcp is a base protocol that you do stuff on top of. http is something you do on top of that.
[17:56] jesusabdullah: Web pages use http
[17:57] mjr_: Dan0: my advice to use HTTP for everything, unless you find a compelling reason not to do so.
[17:57] jesusabdullah: Things like irc or computer games wouldn't use the http protocol, and would use something else--therefore, they would use the net module
[17:57] stagas has joined the channel
[17:57] mjr_: Just start with HTTP, and I bet things will be fine. You'll then have the advantage of not needing to deal with framing.
[17:57] sechrist: I've used http for all sorts of local services that don't even leave the machine
[17:57] sechrist: it just simplifies a lot of things
[17:58] mjr_: Yeah, the simplification is worth the tiny bit of extra overhead, IMO.
[17:58] mjr_: Sending JSON messages over HTTP is a wonderful protocol.
[17:58] jesusabdullah: Indeed
[17:58] Dan0: tbh i don't mind handling bytes but apparently is a nightmare in javascript
[17:59] boaz_ has joined the channel
[17:59] sechrist: Dan0: yes
[17:59] fermion has joined the channel
[17:59] sechrist: because there's no alignment/packing structure
[17:59] sechrist: this isn't C dawg
[17:59] mjr_: Dan0: you can make peace with the binary parts using node's Buffer objects, but for sure avoid binary data if you can.
[18:00] prettyrobots: Yes there is:
[18:00] prettyrobots: http://github.com/bigeasy/node-packet/wiki
[18:01] mjr_: prettyrobots: for some reason, I assume you are a good recipient for my "old guy" jokes, but I'm not sure why I think this.
[18:01] b_erb has left the channel
[18:01] Dan0: cool but dealing with bytes is only going to help me with tcp not really on http
[18:01] sechrist: Dan0: what is your use case?
[18:01] sechrist: why do you need binary protocol?
[18:01] prettyrobots: mjr_: Sure. Keep them coming.
[18:01] Dan0: emulating something like this http://mrdoob.com/125/Multiuser_Sketchpad_HTML5
[18:02] prettyrobots: I'm venting, because it doesn't feel good to tell people no, I can't bring your dead puppy back to life.
[18:02] Dan0: it looks cool so i picked it to through myself into js/html5 etc
[18:02] sechrist: Dan0: the only way you're getting TCP is if you use flash
[18:02] gwoo has joined the channel
[18:02] mjr_: holy shit, that multi sketch thing is beautiful.
[18:02] sechrist: I mean like raw TCP
[18:02] Dan0: well that is why im asking :)
[18:02] prettyrobots: But, they think I really can. They think that working with computers means sitting in a room taking computers apart and putting them back together.
[18:02] sechrist: websockets will get you json with the same speed
[18:02] sechrist: use websockets bro
[18:03] Dan0: i have made a server in java and game client in flash - this is why im thinking about tcp instead of http lol
[18:03] sechrist: yeah
[18:03] sechrist: just consider raw TCP not an option
[18:03] sechrist: because it requires flash.
[18:03] Dan0: ok >.<
[18:03] sechrist: look into websockets.
[18:03] Dan0: so in a webpage in html im stuck with http anyway
[18:03] sechrist: well
[18:03] sechrist: no
[18:03] sechrist: websockets
[18:03] prettyrobots: Dan0: You are being noobish.
[18:03] mjr_: prettyrobots: non-computer people think that there is just one kind of computer person, you know, like a person that knows about computers.
[18:03] sechrist: json over websockets
[18:03] Dan0: im using websockets + node.js
[18:04] sechrist: what is the problem with websockets?
[18:04] sechrist: it's not XHR-LP
[18:04] onar has joined the channel
[18:04] sechrist: it's pretty much the same as a raw TCP socket if implemented properly
[18:04] sechrist: minus the tiny overhead on both parties
[18:04] mjr_: Dan0: moving JSON over WebSocket is a fine way to go also if your browser supports it.
[18:04] prettyrobots: mjr_: The best I've heard it explained: I work with computers, not on computers. Like Oprah. She works in television, not on televisions.
[18:04] mjr_: prettyrobots: ha
[18:04] huyhong has joined the channel
[18:05] sechrist: That's a good quote right there
[18:05] mjr_: people are sketching some fantastic stuff on this thing. It's amazing.
[18:05] Dan0: ok but in terms of emulating mrdoobs experiment here is a quote:
[18:05] Dan0: "Ok, there are a bunch of node.js libraries to handle websockets. At first I was using socket.io but it seemed to use a lot of cpu. After a looking at the code a bit we find out that they JSON all the data that gets sent all the time. That can be useful but in this case it was quite a bit of overhead (and I think they're working to fix that). So I ended up using miksago's node-websocket-server which broadcasts the data to all the conne
[18:05] prettyrobots: Dan0: You are being noobish in the way of attempting to attack a problem that a lot of people have solved (which is fine) but making it is novel by adding some redciulous complexity (which is silly).
[18:05] Dan0: that is not the reason for me being a noob
[18:06] jesusabdullah: Dan0: Why not start with the obvious and if it's too slow start switching things out?
[18:06] Dan0: im a noob because i understand tcp but not http and am wondering eth
[18:06] q_no has joined the channel
[18:06] sechrist: people in that drawing thing are cheating
[18:06] sechrist: they have wacoms!!!!!
[18:06] jesusabdullah: I don't
[18:06] jesusabdullah: I added Batman's blunt
[18:06] micheil: ACTION is the author there for node-websocket-server
[18:06] Dan0: yeh its funny people draw so well
[18:07] Dan0: cool
[18:07] micheil: one thing to watch out for is that JSON encoding data can add lag to the client/server
[18:07] Dan0: hey micheil :)
[18:08] prettyrobots: Dan0: HTTP is a protocol built on top of TCP. It is stateless. It obtains a payload from the server, optionally sending a payload to the server. It is very simple and very efficient.
[18:08] micheil: node-websocket-server doesn't actually interpret data or anything like that; it's like niode's http.Server, but for websockets
[18:08] Dan0: yep thats what doob is saying and websocket-server doesnt json yes?
[18:08] sechrist: udp,tcp,and http
[18:08] sechrist: what doesn't belong?
[18:08] Dan0: udp
[18:08] micheil: Dan0: other servers do stuff with the data
[18:08] prettyrobots: http
[18:08] Dan0: lol
[18:08] sechrist: ACTION facepalm
[18:08] sechrist: I send http over ICMP
[18:08] sechrist: that's how baller I am
[18:08] ThePub has joined the channel
[18:09] Dan0: other servers like socket.io?
[18:09] jesusabdullah: I send http over CARRIER PIGEON
[18:09] jesusabdullah: WHAT
[18:09] prettyrobots: sechrist: That is badass.
[18:09] nefD: omg me too!
[18:09] micheil: Dan0: yeah
[18:09] sechrist: jesusabdullah: how are the headers represented?
[18:09] sechrist: like on paper
[18:09] sechrist: before the meat?
[18:09] jesusabdullah: Stickers.
[18:09] nefD: s/paper/parchment
[18:09] sechrist: stickers eh?
[18:09] jesusabdullah: Yeah
[18:09] sechrist: parchment lol
[18:09] jesusabdullah: and rubber stamps
[18:09] Dan0: but if we wanted we could json the data even using your library before we send it, i think this is correct?
[18:09] micheil: actually, transfering a 1gb file from regional australia to sydney is faster via carrier pidgeon
[18:10] jesusabdullah: God, I believe it
[18:10] micheil: Dan0: if http.Server can do it, node-websocket-server can.
[18:10] Dan0: ok ^,^
[18:10] jesusabdullah: "Where did you get those two hard drives?"
[18:10] nefD: in regional australia, carrier pigeon sends YOU
[18:10] jesusabdullah: "Swallows?"
[18:10] micheil: and if it can't, then it's a bug and I'll try to fix it.
[18:11] sechrist: jesusabdullah: is socket.io's implementation of websockets on par with yours?
[18:11] Vekz has joined the channel
[18:11] WALoeIII has joined the channel
[18:12] sechrist: oh well I meant node-websocket-server
[18:12] sechrist: I've only messed with socket.io
[18:12] micheil: sechrist: heh
[18:12] jesusabdullah: wait what?
[18:12] jesusabdullah: I never implemented websockets
[18:12] micheil: yeah, basically node-websocket-server does just websockets.
[18:12] sechrist: err
[18:12] Dan0: micheil ill give it a go and let u know :)
[18:12] sechrist: I meant to @micheil
[18:12] micheil: sockets.io does a bunch of fallbacks
[18:12] bradleymeck: node-websocket-server is faster for xfer socket.io has fallbacks
[18:12] sechrist: yeah yeah
[18:12] sechrist: ah okay
[18:12] bmavity has joined the channel
[18:12] micheil: I'm actually working on making node-websocket-server faster
[18:13] sechrist: so ideally.. a socket.io fork with node-websocket-server powering the websocket transport
[18:13] sechrist: would be ideal
[18:13] micheil: like, currently it gets slow at about 1000m/s
[18:13] micheil: sechrist: yes
[18:13] BrianTheCoder has joined the channel
[18:13] micheil: sechrist: talk to rauchg_ about it.
[18:13] sechrist: it was the same case 4 months ago
[18:13] sechrist: yeah yeah
[18:13] micheil: ACTION knows stuff but can't say it.
[18:14] rtomayko has joined the channel
[18:14] ooooPsss has joined the channel
[18:14] rauchg_: yep
[18:14] rauchg_: we already talked about it
[18:14] rauchg_: abstracing the node-websocket-server codebase
[18:14] rauchg_: so that socket.io could leverage it
[18:15] q_no: I sometimes have the issue that socket.io doesn't seem to close connections until I restart the server
[18:15] micheil: yeah, and part of it was rewriting the websocket parser
[18:15] q_no: that's pretty annoying but I couldn't figure what's causis this yet
[18:15] sechrist: I've chopped up socket.io.. the way transports are implemented doesn't sound that difficult to replace websockets in
[18:15] aubergine has joined the channel
[18:15] rauchg_: remember it's evented though, it's not as easy as it sounds
[18:16] CrabDude has joined the channel
[18:17] maushu has joined the channel
[18:17] sechrist: well all of the websocket implementations should take on the socket -> individual events for it
[18:17] sechrist: partial parsing and what not
[18:19] sh1mmer has joined the channel
[18:20] HAITI has joined the channel
[18:21] prettyrobots: Here's my doodle for today:
[18:21] prettyrobots: http://github.com/bigeasy/node-ec2
[18:22] stagas has joined the channel
[18:22] fermion has joined the channel
[18:22] stepheneb has joined the channel
[18:22] micheil: sechrist: in theory, it is highly possible to be able to have nws running, and then hijack the standard http calls to which fallbacks can work
[18:22] sechrist: well since multiple things can use the same socket
[18:22] sechrist: sure
[18:23] sechrist: I need to start putting little projects I do up on github
[18:23] jesusabdullah: Indeed
[18:23] jesusabdullah: It makes me look way more prolific than I actually am
[18:23] sechrist: thing is they're usually for contract work so that complicates it
[18:23] sechrist: hehe
[18:23] jesusabdullah: http://github.com/jesusabdullah
[18:23] jesusabdullah: Most of these are like half-baked toys
[18:23] jesusabdullah: but I *look* busy!
[18:24] q_no: is there a JS event when the socket.io client loses the connection?
[18:24] sechrist: q_no: yeah
[18:24] sechrist: disconnect callback fires
[18:24] rcy has joined the channel
[18:24] prettyrobots: I'm going to do a really simple API.
[18:25] prettyrobots: Tiny library. Worse is better.
[18:25] jesusabdullah: Worse is better?
[18:25] jesusabdullah: Gurl u crazy
[18:25] stagas_ has joined the channel
[18:25] q_no: hmm..the event doesn't seem to get triggered when the server crashes
[18:25] q_no: at least not in my case
[18:25] Me1000 has joined the channel
[18:25] q_no: perhaps I'm overlooking something
[18:25] saikat: q_no: are you on latest
[18:26] q_no: I think so, installed it on saturday
[18:26] saikat: he's done a lot of work to make that callback more reliable
[18:26] q_no: or is there already a newer release?
[18:26] saikat: which transport
[18:26] q_no: websocket
[18:26] q_no: in chrome
[18:26] saikat: strange, it fires for me pretty consistently
[18:26] Validatorian: http://gist.github.com/580181 -- anyone know how to complete this request? Should have something to do with a channel... no idea what it's expecting. You can see the two requests I am sending in firebug when on skoreit.com, but I don't see where it's sending the 'join channel' bit...
[18:26] q_no: but unfortuntely I have to leave now..got a phone call ;)
[18:26] q_no: will get back to that topic later...thanks anyways ;)
[18:27] justinlilly: isaacs, mape: ping? I'd like to talk, if you have some time, w/r/t an article I'm writing.
[18:28] sechrist: omg I didn't expect to come to SF and be freezing
[18:28] sechrist: I need a parka or something
[18:28] mape: justinlilly: ?
[18:29] sh1mmer has joined the channel
[18:31] jesusabdullah: sechrist: No, you just need to MAN UP
[18:31] jesusabdullah: ;)
[18:31] sechrist: I'm used to 104F back home
[18:32] sechrist: that would kill sanfranies
[18:32] jesusabdullah: I'll actually most likely going to be in San Fran for a short period of time in December for a conference
[18:32] jesusabdullah: <--Alaskan
[18:32] jesusabdullah: That would destroy me
[18:32] jesusabdullah: I was in Austin in July
[18:32] jesusabdullah: lucked out with "cool" weather
[18:32] jesusabdullah: but Jesus that shit was humid
[18:32] sechrist: try Houston
[18:32] sechrist: it's more humid
[18:32] jesusabdullah: all that muggy-ass gulf air
[18:32] jesusabdullah: just miserable
[18:32] bradleymeck: austin is lovely! how dare you
[18:33] Validatorian: why is it so hard to get free help for my complicated problems around here? ;)
[18:33] Nohryb has joined the channel
[18:33] jesusabdullah: hah
[18:34] jesusabdullah: I just missed it Validatorian
[18:34] jesusabdullah: I don't see anything obvious, but then again I suck at that sort of thing
[18:34] Validatorian: jesusabdullah: only a few lines up, if you want to take a stab at it :)
[18:34] Validatorian: I also suck at it. Seems like I should be able to see what is going on in firebug, but I can't :-/
[18:34] CrazyGoogle: YUI will push self with this serverside rendering stuff in to node.js But i dont think that community will go that way so easy...
[18:35] Validatorian: I even tried using a proxy debugger, didn't see anything special
[18:35] huyhong has left the channel
[18:35] sechrist: CrazyGoogle: serverside rendering as in html generation on the serverside?
[18:35] bradleymeck: crazygoogle, unless it can match an innerHTML for speed, idk if its worth it
[18:36] CrazyGoogle: yes
[18:36] jesusabdullah: Yeah, what are we discussing here? :S
[18:36] the_giver2: is there a way to send a raw POST header is what i want to send...
[18:36] bradleymeck: raw?
[18:36] sechrist: RAW
[18:36] sechrist: like
[18:36] sechrist: uncooked
[18:36] bradleymeck: they dont really get fudged
[18:36] wink_: watch out for ecoli
[18:37] the_giver2: right now i'm doing something like http.createClient(80, 'url').request('POST', 'path', {'host' : 'blah'},
[18:37] the_giver2: etc
[18:37] femtoo has joined the channel
[18:37] the_giver2: but i just want to copy and paste something from like firefox's http live feed and not have to format it
[18:37] mjr_: Validatorian: what's the issue with that gist? The outgoing request doesn't finish, or the incoming response doesn't finish?
[18:38] Pilate has joined the channel
[18:38] wink_: the_giver2: are you wanting to do it programmatically or just for testing stuff?
[18:38] wink_: if the latter, check out the poster addon for firefox
[18:38] the_giver2: programmatically
[18:39] Validatorian: mjr_: It's expecting another request, specifiying a channel to subscribe to (if you look at the firbug, you'll see that the second request responds with auction data) -- the second request takes a long time to finish, because it was waiting
[18:39] [[zz]] has joined the channel
[18:39] brianmario has joined the channel
[18:40] the_giver2: unless i'm moving something in POST requests.. right now nginx is responding witha Length Required error.. even though i include that
[18:40] pengwynn has joined the channel
[18:40] the_giver2: so i'm not exactly sure whats going on
[18:40] the_giver2: {'Content-Length': '0'},
[18:40] the_giver2: no ''?
[18:40] Zuardi has joined the channel
[18:41] admc has joined the channel
[18:41] mjr_: Validatorian: I'd suggest that you move lines 29 through 59 into another function. That way you can try the two requests independently
[18:41] Mikeee has joined the channel
[18:41] CrazyGoogle: for proper POST
[18:41] the_giver2: yeah?
[18:41] CrazyGoogle: you have to set propert Conten-Length of data send as post
[18:41] Mikeee: ACTION waves
[18:41] Validatorian: mjr_: I need the response from request 1 (which contains the subscriber id) to make the second request
[18:41] creationix has joined the channel
[18:41] the_giver2: well i'm just copying exactly what firefox is sending
[18:42] the_giver2: and it seems to accept the firefox version
[18:42] stagas has joined the channel
[18:42] the_giver2: firefox seems to get a 200 OK
[18:42] the_giver2: i get a 411
[18:42] mjr_: Validatorian: just pass the subscriber ID as an argument.
[18:42] Validatorian: mjr_: I can do that, but what would that do, other than move some code around? I'm still calling it at the same time, with the same info
[18:42] Validatorian: (I'm not being argumentative, just trying to understand :) )
[18:43] mjr_: Validatorian: it might expose odd scoping issues, if there are any. You are getting pretty deep with the nesting.
[18:43] mjr_: But sure, it's not "wrong" the way you have it.
[18:43] mjr_: Also, then you could run the second request independently for testing.
[18:44] mjr_: Once you know the ID, just hard-code it and run the second request with it.
[18:44] mjr_: You'll probably figure out the issue pretty quickly that way.
[18:45] CrazyGoogle: the_giver2: as i sed, you need to send proper Content-Length calculated on string length of your post data you send to server
[18:46] mjr_: Two other things I'd suggest, and then I must get back to work: 1) if youstill can't get it to work in node, try using curl for the second request. 2) It might help to use my http_trace program to see what's being sent in both directions.
[18:46] the_giver2: CrazyGoogle, i see
[18:46] Validatorian: thanks for the advice, mjr_
[18:46] Mikeee: Anyone know what the final set of the rtmp handshake is after the client issues the connect call?
[18:46] the_giver2: CrazyGoogle, what if i'm not trying to send any data
[18:48] CrazyGoogle: the_giver2: content-length should be 0 ?
[18:48] CrazyGoogle: the_giver2: i just had same problem with node.js calling nginx server
[18:48] the_giver2: CrazyGoogle, yes according to live headers, i'm downloading wireshark now
[18:48] the_giver2: to see what is actually being sent
[18:48] the_giver2: :(
[18:48] mu-hannibal has joined the channel
[18:48] CrazyGoogle: the_giver2: after i start sanding Content-length HTTP header, stuff started to work
[18:49] the_giver2: CrazyGoogle, can you give me an example?
[18:49] the_giver2: {'Content-length' : '20030'} or osmething?
[18:49] the_giver2: is that what you mean
[18:50] the_giver2: and 20030 is based on what you include as data?
[18:51] CrazyGoogle: the_giver2: sek
[18:52] the_giver2: ?
[18:52] the_giver2: in node how do you usually include "data/'payload"? the clientRequest example doesnt really show this
[18:52] the_giver2: it just shows a simple GET request and how to hande the response
[18:52] the_giver2: but not a POST example on there
[18:52] CrazyGoogle: the_giver2: i write you small example
[18:52] the_giver2: okay thanks
[18:52] gsmcwhirter: anyone happen to know why I might be getting stray headers thrown into a response? http://gist.github.com/581224
[18:53] Validatorian: anyone know what mjr_'s github account is, or where to find his http_trace program?
[18:54] mjr_: Validatorian: npm install pcap
[18:54] bronson has joined the channel
[18:54] mirko_ has joined the channel
[18:54] mjr_: I should really move http_trace to its own repo and have it depend on pcap.
[18:55] CrazyGoogle: the_giver2: http://pastie.org/1161180
[18:55] CrazyGoogle: the_giver2: check this example
[18:55] qFox has joined the channel
[18:56] the_giver2: CrazyGoogle, thank you
[18:56] CrazyGoogle: the_giver2: worked for me to send XML to server (used for xml-rpc)
[18:56] Gruni has joined the channel
[18:56] bradleymeck: oh wow, thats a nasty hack
[18:56] bradleymeck: v8 ["x<-",,"y<-"]
[18:56] v8bot: bradleymeck: ["x<-", undefined, "y<-"]
[18:56] the_giver2: i'll give it a try
[18:56] the_giver2: :)
[18:57] the_giver2: CrazyGoogle, did you have any luck doing a blank POST?
[18:57] the_giver2: so just the header stuff
[18:57] the_giver2: i'll try
[18:57] the_giver2: thanks either way
[18:57] CrazyGoogle: the_giver2: didnt tryed, but should work similary. Just set Content-Length to 0 and remove req.write(reqString); line
[18:58] cloudhead has joined the channel
[18:59] prettyrobots has left the channel
[18:59] halfhalo has joined the channel
[19:01] killfill: hey guys.. whats a cool way to ensure my node processes are up an running?
[19:02] jbenesch has joined the channel
[19:04] cardona507 has joined the channel
[19:05] tjholowaychuk has joined the channel
[19:05] bradleymeck: isaacs anything you need done on the search bit?
[19:11] tapwater has joined the channel
[19:13] prettyrobots has joined the channel
[19:14] evilhackerdude: is there something like npm cleanup that removes old versions?
[19:14] isaacs: evilhackerdude: npm update
[19:14] isaacs: bradleymeck: i'm gonna take a look through all that this afternoon
[19:15] bradleymeck: cool
[19:17] Lerchmo has joined the channel
[19:18] zemanel has joined the channel
[19:19] sechrist: k I asked this last night but don't remember the response
[19:19] micheil: who was geddy? mde ?
[19:19] sechrist: best xml parser for node?
[19:19] bradleymeck: sechrist, how much flex do you need in the parser?
[19:19] digitalspaghetti: micheil: yes
[19:19] micheil: k
[19:19] sechrist: bradleymeck: define "flex"
[19:19] sechrist: parsing RSS feeds for links
[19:19] bradleymeck: handling poorly formed xml
[19:19] sechrist: eh
[19:20] siculars has joined the channel
[19:20] sechrist: not that much I'm assuming.. I would hope most site's RSS feeds are well formed? (haha?)
[19:20] bradleymeck: expat worked fine for me, was a little odd setting up, but was nice once it got going
[19:20] vnguyen has joined the channel
[19:21] sechrist: I built libxmljs.node and the tests run
[19:21] wink_: sechrist use yahoo pipes and convert the rss to json
[19:21] sechrist: then I get flooded with memory errors
[19:21] wink_: :D
[19:21] sechrist: wink_: yahoo pipes?
[19:21] sechrist: btw I need to handle potentially thousands
[19:21] sechrist: without caching
[19:21] sechrist: so
[19:21] wink_: yeah, look into 'em they're awesome
[19:21] sechrist: that's another thing to consider
[19:21] wink_: i dunno how it'd do with thousands
[19:21] wink_: however they do aggregate them and allow you to request in json instead of xml
[19:22] _numbers has joined the channel
[19:22] sechrist: this pipes thing looks amazing
[19:22] sechrist: but yeah I don't think I can utilize this
[19:23] digitalspaghetti: If none of you watched the YUI + node.js talk that was just on, prepare to have your mind {blown} when the recording is up
[19:23] wink_: yeah the pipes are badass :>
[19:24] _numbers: i love yahoo pipes. i use them to funnel a bunch of job sources into my google reader
[19:24] wink_: yeah if you're looking at thousands of feeds, its probably no good
[19:24] bradleymeck: i do want to see that, im wondering if they can beat the dumb pistachio
[19:24] gsmcwhirter: ah, figured out my headers issue. connect doesn't like arrays of headers, even though the node http server is fine with it
[19:24] deepthawtz has joined the channel
[19:24] _numbers: how can i insert html into the HEAD tag from my template body in Picard with Haml.js? anyone have relative experience here?
[19:25] marshall_law has joined the channel
[19:25] sechrist: I think my mbp likes to kill hard drives
[19:26] sechrist: I put a new drive in it like last week
[19:26] sechrist: and it's already making retarded noises
[19:26] bradleymeck: digitalspaghetti is it going to be up somewhere?
[19:27] digitalspaghetti: http://yuilibrary.com/forum/viewtopic.php?f=18&t=4889
[19:27] digitalspaghetti: he talked about none of the stuff in the OP
[19:27] digitalspaghetti: and just showed how yui3 is going to make nodejs just so muchs sweeter :)
[19:27] halfhalo has joined the channel
[19:28] tilgovi has joined the channel
[19:29] dgathright_ has joined the channel
[19:30] mikew3c_ has joined the channel
[19:31] bradleymeck: one day imma find crockford and teach him about not making generalized statements
[19:31] Anti-X: all generalized statments suck!
[19:32] Anti-X: who's crockford and what did he do
[19:32] bradleymeck: he made JSLint, is one of the fathers of JS
[19:32] digitalspaghetti: bradleymeck: it's the same with this 4N crap
[19:33] bradleymeck: 4n?
[19:33] the_giver2 has joined the channel
[19:33] Anti-X: non-windows, nosql, nginx and node?
[19:33] digitalspaghetti: nodejs, nginx, nosql and no-windows
[19:33] digitalspaghetti: instead of LAMP
[19:33] the_giver2: anybody have any references to the correct way of implementing sessions? just conceptually
[19:33] digitalspaghetti: a) it makes assumptions that nodejs == nosql
[19:33] the_giver2: given that node.js doesnt really fully support ssl right now.. i'm just wondering how sessions usually work
[19:33] the_giver2: is it usually 1) you have a cookie tied to a users ip/port?
[19:34] digitalspaghetti: and that people will run it behind nginx
[19:34] Anti-X: i run node on its own
[19:34] pgriess has joined the channel
[19:34] bradleymeck: the_giver2 how secure do you want it?
[19:34] pgriess has joined the channel
[19:35] the_giver2: bradleymeck, i'm just using some library for twitter auth and i'm wondering how sessions are usually implemented
[19:35] bradleymeck: twitter auth is a different beast
[19:35] the_giver2: I see
[19:35] the_giver2: do you mind summarizing how sessions are usually done ?
[19:36] bradleymeck: oauth1 does some funky stuff where you need to take roundabout requests to get a public/private key
[19:36] wink_: twitter seems to have really dropped the ball on their authing mechanism
[19:37] digitalspaghetti: i wrote a little script to help with twitter auth
[19:37] voodootikigod: qq, accepting buffer or string shouldn't testing if buffer also catch string?
[19:37] danielqo has joined the channel
[19:37] voodootikigod: in c lib
[19:37] voodootikigod: 0.2.x
[19:37] Anti-X: there is a twitter lib available, doesn't it have auth?
[19:37] digitalspaghetti: http://gist.github.com/575303
[19:38] digitalspaghetti: uses OAuth to let you get access tokens for your app
[19:38] digitalspaghetti: you need to save them, but then you can just use the OAuth lib to do requests
[19:39] bradleymeck: ironclad -> conceptually, hold onto cookie, more secure: hold onto ip (maybe port)
[19:40] bradleymeck: and for, lols secure : inject a hidden variable to request a inside singleusesite sync ajax down a permutation function + public/private key encode the data you generate into ajax requests, encode the permutation iteration you want as cookies you send down per page load
[19:40] elliottkember has joined the channel
[19:42] Anti-X: yeah if you're a bank
[19:43] bradleymeck: pff no, its not secure for that, man in the middle the async ajax and its doomed
[19:43] Anti-X: i'm always amazed at how people exaggerate security for simple shit
[19:43] bradleymeck: ACTION cries again at "strict mode"
[19:43] nefD: #1 rule of javascript club: You can never trust your clients script. ever. you just can't. sorry.
[19:44] c4milo has joined the channel
[19:44] bradleymeck: yep
[19:44] nefD: something i've fought with for a while :P
[19:44] nefD: seeing as how im into browser based gaming
[19:45] dkasper has joined the channel
[19:45] wink_: yikes...
[19:45] lolninja has joined the channel
[19:45] lolninja: Hello
[19:46] Anti-X: nefD, you make them?
[19:46] bradleymeck: yo
[19:46] nefD: best solution ive come up with so far as designing my game mechanics in such a way that events play out in control of the client, but then get recorded and 'played back' by the server, who acts as a play-by-play referee
[19:46] nefD: Anti-X: Yeah
[19:46] ph^ has joined the channel
[19:46] Anti-X: i've got an audio lib you might wanna check out, http://github.com/torvalamo/htmlaudio
[19:46] Anti-X: html5 only, it doesn't do that flash thing and all that backup shit
[19:47] Anti-X: but it's aimed at games
[19:47] ph^ has joined the channel
[19:47] lolninja: I'm trying to access a php based rest service that requires http authentication that populates the $_SERVER['php_auth_user'] and $_SERVER['php_auth_pw'] but I cannot figure out how to set this using nodes http.createClient, I assumed that I just needed to set auth in the headers but its not playing ball, any ideas?
[19:47] stephank: Anti-X: have you tried that on chrome? I'm curious, because all my audio attempts ended up in chrome poking the server everytime I play an effect.
[19:48] nefD: Anti-X: Ah, nice! I'll definitely check it out! My opinion on the matter of audio is that it should be a secondary concern.. don't rely on it :) but if the users browser supports it, great! not worth the time it would take to ensure all browsers are working with it 100% though, not yet
[19:48] stephank: wondering if you figured some way around that
[19:48] programble has joined the channel
[19:48] bradleymeck: lolninja, idk how php populates those values
[19:48] Anti-X: nefD, there is a check (htmlaudio.supportsType()) where you can see if the browser supports audio and your file format..
[19:49] lolninja: using curl its just the CURLOPT_USERPWD operation
[19:49] nefD: Anti-X: Nice :D so that way I can simply ignore playback calls if they aren't supported
[19:49] nefD: Anti-X: Watching it on github, will definitely give it a shot
[19:49] jashkenas has left the channel
[19:49] stephank: nefD: what kind of game were/are you building?
[19:49] Anti-X: it's not there yet, it's more of a "if the browser doesn't support audio, i won't start setting up audio for the game"
[19:49] shockie has joined the channel
[19:50] Anti-X: the simple version does that though, it can take playback calls, but then just fails silently if it's not supported
[19:50] nefD: stephank: I had built an rpg called Heroic Ages a couple years ago that I ended up selling to another company.. Where im working now we used to develop and maintain facebook applications and games.. these days, im looking to get back to my original rpg vision, but amp it up to the featureset I always wanted
[19:50] wink_: lolninja: one sec
[19:50] digitalspaghetti: ooh, IE9 beta out
[19:51] shockie: hooray
[19:51] Sami_ZzZ has joined the channel
[19:51] pplante has joined the channel
[19:51] maushu: The horror.
[19:51] stephank: nefD: that sounds like an awesome job. Is it? :)
[19:51] maushu: announcer, clean the tubes!
[19:51] _announcer: Cleaning the tubes for great justice!
[19:51] shockie: microsoft woke up
[19:52] wink_: lolninja: can you pastebin your createClient call?
[19:52] dnolen has joined the channel
[19:52] bradleymeck: did they fix the tbody bug?
[19:52] nefD: steadicat: It has its moments, yeah! Facebook is an absolute nightmare, and I hate it, though. The kinds of games which tend to do well there are so generic and overly casual that they hardly pass as games, in my mind.. im much more into making detailed, slightly more complex games
[19:52] nefD: er, that was meant for stephank, not steadicat :P
[19:53] lolninja: wink_: http://pastebin.com/UdWHQQi9
[19:53] muk_mb: Is there ever a time where you'd want to use long-polling?
[19:53] stephank: nefD: okay, that's understandable. I don't even have a facebook account, which sortof reflects my opinion of it. :)
[19:53] grahamalot has joined the channel
[19:54] nefD: stephank: Some of the things i'm looking forward to implementing are movement along large grid style maps, RPAS line of sight/fov visibility, A* pathfinding for long distance travelling, more indepth puzzle style quests, that kind of thing.. more like a browse rbased roguelike
[19:54] shockie: stephank facebook know you ain't got a account, it's like skynet
[19:54] wink_: lolninja: k one sec
[19:54] stephank: shockie: hah :)
[19:55] stephank: nefD: Oompf. It all rings a bell, but sounds like voodoo too. Good luck. :)
[19:55] phiggins: okay randomly, any #ams locals we'll be doing a js.beer() thing in ams saturday w/ ppk, nonken, ilinsky and some other folks. WG Cafe 18:00
[19:56] wink_: lolninja: on the php side, can you print_r($_SERVER) and pastebin whats in it?
[19:56] nefD: stephank: hehe, thanks
[19:56] stephank: nefD: It sure seems like fun to me to work on games professionally. Definitely something I'd like to try someday. :)
[19:56] shockie: ams is amsterdam?:)
[19:57] Me1000 has joined the channel
[19:57] Anti-X: btw nefD, i'd love some improvement or feature requests, should you try it out or even use it.
[19:57] nefD: Anti-X: Yeah, absolutely
[19:57] lolninja: wink_: http://pastebin.com/MmaewRQ3
[19:58] nefD: stephank: It can be incredible and it can be soulcrushing, depending on when you ask :)
[19:58] Anti-X: i'm in the process of making a game myself but im still in preprod :p
[19:58] nefD: Anti-X: Ah, cool! What sort of game?
[19:58] Anti-X: so i haven't had it tested "in the wild"
[19:58] _announcer: Twitter: "As @drbadbytes AKA binh diesel would state: "oh my word;followed by, holler http://bennolan.com/2010/08/13/pushstate-and-nodejs.html" -- Paul Nelson. http://twitter.com/iampnelson/status/24599134114
[19:58] sudoer has joined the channel
[19:59] wink_: lolninja: what are you authing against?
[19:59] Anti-X: nefD, it's a risk game. i already made one version for a competition some months ago, had 3 weeks, and the result showed it.. so after people suddenly started playing it (despite being buggy as hell) i thought why not just use node and all that and make an awesomer version, so i'm doing that
[19:59] nefD: Anti-X: OOOOooh, nice!!
[20:00] lolninja: wink_: a custom php script
[20:00] nefD: Anti-X: Keep me posted on that..! And keep me in mind if you need more guinea pigs :D
[20:00] Anti-X: i remember in the first version i had to cut down an options list of 10 options down to about 6... and now i just made an options list yesterday of about 25
[20:00] Anti-X: so
[20:00] Anti-X: it's gonna take a while
[20:00] lolninja: wink_: should I just modify the script to use the header I'm sending, or should I mess about and try getting it working right?
[20:01] nefD: Anti-X: Ahhh, hehe.. what modules/technologies are you using?
[20:01] wink_: lolninja: well, it depends :>, obviously the easy way is to mod your script, but understanding how to get the header right is probably not a bad thing either
[20:02] Anti-X: mostly on the client side, i was thinking of using angularjs, but it's very new and i haven't actually tested it yet, and also i'm gonna be using raphael for drawing
[20:02] wink_: lolninja: it looks like you're probably not too far off, but you'll want to read up on what the header should be to be properly formed
[20:02] wink_: just auth: user:pass isn't it
[20:03] nefD: Anti-X: Raphael.. svg right? I haven't messed with that too much.. I've tinkered with canvas, but i'm on the fence about actually using it for my main map display and navigation
[20:03] lolninja: yeah I got 'auth': 'username:password' in the 3rd param for database.request
[20:03] lolninja: basebase being the instance of http.createClient
[20:03] wink_: right, anything in that 3rd param will end up as part of the headers
[20:03] nefD: I already have a demo using canvas with the A* pathfinding and the shadowcasting line of site code, and it runs decently, so thats a good sign
[20:03] mirko_ has joined the channel
[20:03] Anti-X: nefD, the current version uses canvas and stuff, which excluded IE.. though it was really cool seeing my canvas things animate when clicking stuff.. very satisfying
[20:03] cardona507 has joined the channel
[20:03] stephank: nefD, Anti-X: Mozilla has this web game building competition coming up. Is that something you guys have heard of / are following?
[20:04] wink_: you can see it in your php side, its coming across as auth, however php isnt gonna jam that into its _SERVER stuff unless its actually a proper auth header
[20:04] Anti-X: haven't heard of
[20:04] sechrist: wink_: how often do these pipes fire?
[20:04] sechrist: or is that settable?
[20:04] sechrist: this is really cool
[20:04] wink_: lolninja: check out http://en.wikipedia.org/wiki/Basic_access_authentication and scroll down to the section header Client request (user name.....)
[20:04] nefD: stephank: I've heard of it, but im not sure if i'll be entering yet.. I do have a fairly simple express + socket.io version of Acrophobia (Acronode) ive been messing with though, maybe i can submit that :P
[20:04] wink_: it'll show you what the header should look like
[20:04] Anti-X: nefD, raphael is svg yeah, and vml for IE
[20:04] ben_alman has joined the channel
[20:04] wink_: sechrist: to be honest, im not entirely sure
[20:05] rwaldron has joined the channel
[20:05] boaz has joined the channel
[20:05] wink_: im sure it's documented somewhere though
[20:06] wink_: and yeah they're really awesome for consuming web content, its a shame it cant be self hosted
[20:06] stephank: Anti-X: I'm no spokesperson or anything, but I'm hoping it's going be great, as I missed NodeKO. Anyways, just so you've heard of it, they'll be announcing it here end of the month: https://gaming.mozillalabs.com/
[20:06] figital has joined the channel
[20:06] lolninja: wink_: ah thanks, will take a look see if I can get it working
[20:06] nefD: stephank: Sounds really cool.. we should get a #nodejs team together for an entry :D
[20:06] stephank: nefD: It would definitely make things less complicated if we could enter existing projects. ;)
[20:07] dgathright has joined the channel
[20:07] nefD: stephank: heh, indeed..
[20:07] wink_: lolninja: do you follow what im saying? your 'auth' key needs to be 'Authorization' and then your 'pass' needs to be your credentials, base64 encoded prefixed with 'Basic' or whatever auth type you're expecting
[20:07] bradleymeck: i could use another competition
[20:07] Anti-X: stephank, thanks if it's not too tight of a schedule i might enter.. or join the nodejs team of nefD
[20:07] Anti-X: :P
[20:07] lolninja: wink_: ahh right ok cool
[20:07] nefD: lol
[20:07] stephank: Hehe, sounds like a plan. :)
[20:08] wink_: lolninja: also, if your authentication is digest instead of basic, it needs more data, but you can find it http://en.wikipedia.org/wiki/Digest_access_authentication
[20:08] nefD: stephank: I see lots of games on your github account..!
[20:08] ceej_ has joined the channel
[20:09] stephank: nefD: spying on me, eh?
[20:09] Anti-X: that may be how he knows about the competition
[20:09] stephank: None are really finished, tbh.
[20:09] Anti-X: hehe
[20:09] mitkok has joined the channel
[20:10] Eber has joined the channel
[20:10] stephank: None are really original either. I just bring back old Macintosh games I happen to find source code for. ;)
[20:11] nefD: i've been wanting to do a shiny missle command remake
[20:11] dkasper: it would be nice if base64 encoding/decoding was built in to node.js, there are like a zillion different snippets of how to do it with varying quality
[20:11] stephank: dkasper: But is it built in. :)
[20:11] bradleymeck: (new Buffer('test','utf8')).toString('base64')
[20:11] dkasper: niice, I'm an idiot, how did I not know about that
[20:12] bradleymeck: cause its hidden inside buffer :)
[20:12] bretts has joined the channel
[20:12] _numbers: http://www.odesk.com/jobs/Node-MongoDB-Expert-Needed_~~1949233d72e0c5ad
[20:12] stephank: dkasper: Don't worry. I just today discovered I was going months without `sys.inspect`, until jashkenas finally pointed it out to me.
[20:13] nefD: Anti-X: angularjs looks interesting.. have you had a chance to use it much?
[20:13] _numbers: is it ok to post jobs here?
[20:13] inimino: stephank ⋱ sys.p is still around too, I believe
[20:13] Adora has joined the channel
[20:13] Anti-X: no i haven't tested it at all, i just watched the google tech talk about it
[20:13] Anti-X: nefD
[20:13] _announcer: Twitter: "my favorite #nodejs pastime lately : google "BLAHmodule1 VS BLAHmodule2" and reading posts from whoever compared them. Then, read the code" -- Peter C. Host. http://twitter.com/PeterHost/status/24600107403
[20:13] Anti-X: it looked applicable
[20:13] stephank: inimino: Hah! That's neat. Prints a large deprecation warning, though. :)
[20:14] inimino: stephank ⋱ Oh, that's new :-)
[20:15] dgathright: What would happen if someone wrote a web browser in SSJS? Space-time collapse? Black hole?
[20:16] tjholowaychuk: dgathright: write an os with your browser, then a browser in your os, and an os within that browser/os
[20:16] tjholowaychuk: recursive browser os!
[20:16] tjholowaychuk: wooo
[20:16] stephank: dgathright: It'd be rad. A text-based browser sounds not too impossible. :)
[20:17] stephank: And then, you could call it Jinx ;)
[20:17] dgathright: Yeah, a port of lynx could be do-able.
[20:17] dgathright: haha, Jinx ftw
[20:17] bradleymeck: lyx
[20:17] tjholowaychuk: when is assert.throws() going to let me supply an expected msg :)(
[20:17] tjholowaychuk: :(
[20:17] patientfox has joined the channel
[20:17] bradleymeck: Witch on github is an old one that works somewhat
[20:20] dkasper: this is awesome, now that I figured out how to make https requests with basic auth using httpclient I can get rid of my rails backend :)
[20:21] jesusabdullah: Man, a browser in javascript? Shit sounds nuts
[20:21] jesusabdullah: but you could probably do it, what with jsdom and html parsers and such
[20:21] jesusabdullah: it'd be shitty, but the tools are there
[20:21] jesusabdullah: oh, and node-ncurses
[20:21] tjholowaychuk: anyone here use s3 frequently? is it typical to work from just one bucket? (of course with sub directories or "buckets" as well)
[20:22] mattly has joined the channel
[20:22] prettyrobots has joined the channel
[20:22] dkasper: that's what I do, but I have no idea if it's typical
[20:24] ceej_ has joined the channel
[20:25] softdrink has joined the channel
[20:25] twoism has joined the channel
[20:25] digitalspaghetti: Holy crap, Biolab Disaster runs at nearly full speed in IE9 :o
[20:26] ceej_ has joined the channel
[20:26] dgathright has joined the channel
[20:26] emmanueloga has joined the channel
[20:27] jimmybaker has joined the channel
[20:27] jacobolus has joined the channel
[20:28] tjholowaychuk: digitalspaghetti: hehe that game is cool
[20:29] digitalspaghetti: yea, wish i had time to hack something like it together
[20:30] herbySk: ryah: around?
[20:31] bradleymeck: jesusabdullah, github.com/bmeck/Witch <- proof of concept, but it hasnt been changed in a while
[20:31] langworthy: tjholowaychuk: is it okay to use the framework for the mastering node book to create other documentation? it would be incredibly useful to our team.
[20:31] tjholowaychuk: langworthy: yeah go nuts
[20:31] bradleymeck: MIT = win
[20:31] _announcer: Twitter: "Don't forget: next monday talks about #couchdb and #nodejs at @mangrove check: http://bit.ly/b5DfuY" -- Sander van de Graaf. http://twitter.com/svdgraaf/status/24601321974
[20:32] zemanel has joined the channel
[20:32] langworthy: tjholowaychuk: I saw the book was licensed CC but was unsure about the code to generate it. thanks.
[20:32] _announcer: Twitter: "Node.js + MongoDB Expert Needed - oDesk: Candidate must have demonstratable experience with both Node and Mongo, o... http://bit.ly/b4P6qm" -- cebu iphone. http://twitter.com/cebu_iphone/status/24601380539
[20:33] eck has joined the channel
[20:33] eck has joined the channel
[20:33] eck has left the channel
[20:38] saikat has joined the channel
[20:38] _announcer: Twitter: "plays with nodeJS. JavaScript running on the server, pretty cool:)" [de] -- Martin Kuckert. http://twitter.com/MKuckert/status/24601783030
[20:39] reid has joined the channel
[20:39] digitalspaghetti: _announcer: should look for anyone saying "playing with nodejs", replace it with "playing with myself" and re-tweet it :p
[20:40] hayeah has joined the channel
[20:40] reid: isaacs: I've figured out why npm barfs on RHEL 4
[20:40] isaacs: oh>
[20:40] isaacs: ?
[20:40] reid: GNU tar 1.14.
[20:40] isaacs: interesting...
[20:40] reid: It uses strip-path instead of strip-components
[20:41] reid: Then, sys.pump keeps trying to pipe gunzip to tar, which is dead.
[20:41] reid: Yay, EPIPE!
[20:41] isaacs: wait a sec.... it does strip-PATH?
[20:41] isaacs: wtf?
[20:41] reid: yeah.
[20:41] reid: it works the same.
[20:41] reid: i have a patch for cache.js
[20:41] Aria: Changed in 1.14.90
[20:41] reid: but, i can't figure out the sys.pump deal.
[20:42] reid: yup. GNU tar, that is.
[20:42] reid: BSD tar is sane afaik.
[20:42] sixtus42 has joined the channel
[20:42] isaacs: reid: so, either GNU or BSD tar should both support --strip-components=1. GNU tar also supports --strip 1
[20:42] ivong has joined the channel
[20:42] reid: hmm
[20:42] isaacs: reid: if tar is dying, then that's why it's failing
[20:43] reid: yup, i've established that. it works great with strip-path.
[20:43] Aria: GNU tar < 1.14.90 uses strip-path, not strip-components
[20:43] mies has joined the channel
[20:43] isaacs: every day, implementing zip in js makes more sense.
[20:43] Aria: Hehe.
[20:43] reid: ay
[20:43] lolninja: wink_: thanks a ton, got Basic auth working now
[20:43] isaacs: i fucking hate tar
[20:43] Aria: Hehe. CPIO for the win!
[20:43] digitalspaghetti: zip is nice and clean and has pretty much universal support
[20:44] isaacs: well, really, i fucking hate opinionated unix religions
[20:44] digitalspaghetti: Unix Teabaggers?
[20:44] isaacs: seriously, it's just a commandline API naming. just everybody use the same one. jeez.
[20:44] isaacs: digitalsanctum: yes
[20:44] isaacs: digitalspaghetti: ^
[20:44] Aria: Hehe. They did. They just botched it in the old days.
[20:44] Validatorian: mjr_: any idea what's going on here? http://gist.github.com/581448
[20:44] Aria: Backward compatibility is the real bear.
[20:44] reid: what i don't understand is that GNU tar 1.14.90+ *broke* the existing API.
[20:44] Aria: To make it work with the more agreed-upon one.
[20:44] reid: so i can't just use strip-path everywhere,
[20:45] reid: blagh.
[20:45] Aria: But --strip works in both.
[20:45] isaacs: reid: BSD doesn't support --strip-path or --strip
[20:45] isaacs: Aria: ^
[20:45] Aria: But not BSD ;-)
[20:45] isaacs: don't even get me started on Solaris tar.
[20:45] emmanueloga has joined the channel
[20:45] isaacs: i <3 solaris, but srsly, people, can we be a LITTLE less religious about the cli?
[20:46] reid: isaacs: I can't figure out how to get sys.pump to stop.
[20:46] isaacs: reid: when the tar crashes, it stops with EPIPE
[20:46] reid: well
[20:47] reid: ok. i was thinking sys.pump was trying to write to an unwritable stream
[20:47] isaacs: reid: can you point the --tar config to a tar that supports --strip-components
[20:47] isaacs: ?
[20:47] isaacs: TAR=/some/tar/that/works npm do-something
[20:47] isaacs: that'll also work
[20:47] reid: blah
[20:48] the_giver2 has joined the channel
[20:48] reid: i may be misunderstanding sys.pump, and i'd like to figure that out...
[20:48] Validatorian: isaacs: I must have borked permissions somehow, do you know what I did to cause this? http://gist.github.com/581456
[20:49] isaacs: Validatorian: sudo chown -R $USER /usr/local/lib/node
[20:49] reid: isaacs: if a process dies when using NPM's util/exec.pipe, it should keep throwing "Stream not writable" errors
[20:49] the_giver2: lets say i make a function like: function foo(){ } and want to call that within another function for expmle a get('blah', function(token){ });
[20:49] reid: isaacs: i think i should be able to recover from that a bit more gracefully...
[20:49] reid: i.e. retry with a new command.
[20:49] MikhX has joined the channel
[20:49] reid: er, it should NOT ^
[20:50] Validatorian: isaacs: now it's saying I don't have access to '/usr/local/bin/http_trace@0.2.1' -- should I chown /usr/local as well?
[20:51] isaacs: Validatorian: sure
[20:51] Zuardi has joined the channel
[20:52] reid: isaacs: I'm supposed to get a callback on sys.pump when the writableStream goes away— yet I don't think there's a way to stop the pump
[20:52] vvsh has joined the channel
[20:52] Validatorian: seems to have worked -- I think there's a bug in pcap causing an issue now: http://gist.github.com/581463
[20:52] isaacs: reid: the pump should already be stopped at that point, becaus the error propagates back
[20:52] _announcer: Twitter: "If only node.js had something like Mongoid or MongoMapper ..." -- Tom de Grunt. http://twitter.com/tdegrunt/status/24602692641
[20:53] reid: isaacs: yeah, i get about 4-7 "Stream is not writable" tracebacks
[20:53] isaacs: oh, ok
[20:53] reid: all from IOWatcher.callback
[20:54] reid: basically, it would be cool to tell node to stop trying since it's dead...
[20:55] reid: isaacs: here's what i'm looking at: http://gist.github.com/581469
[20:56] reid: on line 6, i'm trying to restart the unpack process, but i still have errors spewing from the old pump, i think.
[20:58] isaacs: wow, that's lame
[20:58] sh1mmer has joined the channel
[20:59] isaacs: reid: so, basically, in lib/utils/exec.js, the pipe() function should just kill both cp's when either of them exit with failure.
[20:59] reid: isaacs: well, it is already
[20:59] langworthy: tjholowaychuk: thanks again. http://github.com/sprice/book-gen
[20:59] reid: ^ they are already
[21:00] tjholowaychuk: langworthy: cool thanks for the cred :)
[21:02] _announcer: Twitter: "learning node.js http://nodeknockout.com/" -- Max Langensiepen. http://twitter.com/mlangensiepen/status/24603283049
[21:03] tg has joined the channel
[21:04] SubStack: !tweet @tdegrunt http://www.learnboost.com/mongoose/
[21:05] nwhite has joined the channel
[21:06] sechrist: node-expat is weird
[21:06] dkasper: my node server seems to randomly hang about once per day, it's driving me crazy
[21:08] maushu has joined the channel
[21:11] hayeah has joined the channel
[21:15] sh1mmer has joined the channel
[21:15] Vekz: dkasper you should setup some processes management and some logs to see whats killing it
[21:16] jimmybaker has joined the channel
[21:17] thijser has joined the channel
[21:18] _announcer: Twitter: "@davglass - Can't wait for your release tomorrow of the YUI + nodejs stuff. EJS Templates are pissing me off" -- Tane Piper. http://twitter.com/tanepiper/status/24604311682
[21:18] patientfox has joined the channel
[21:18] digitalspaghetti: tjholowaychuk: ping
[21:18] thijser: hi, I do quite a few http client calls to a number of services and it keeps crashing (http://gist.github.com/581502)
[21:18] tjholowaychuk: digitalspaghetti: pong
[21:18] thijser: sometimes dns returns an ipv6 address
[21:19] sudoer has joined the channel
[21:19] digitalspaghetti: On express, if my EJS templates don't have a var in them, i get an exception rather than a graceful fail, is there any way around this?
[21:19] thijser: kinda weird that it apparently does a dns request every time I try to connect instead of caching? (or does it?)
[21:20] digitalspaghetti: for example, if a user is logged in, there will be a session var in locals, otherwise there won't
[21:20] tjholowaychuk: digitalspaghetti: typeof, or locals.myLocal
[21:20] digitalspaghetti: basically I want to do if (session) session.username || null
[21:20] thijser: and I don't see how I can give a type to connect here: http://github.com/ry/node/blob/master/lib/net.js#L886
[21:21] digitalspaghetti: i tried typeof
[21:21] digitalspaghetti: http://pastebin.com/KwUXTiwD is in my template
[21:21] tjholowaychuk: digitalspaghetti: <% if (locals.session) { %><%= session.username %>
<% } %>
[21:22] tjholowaychuk: digitalspaghetti: typeof session !== 'undefined'
[21:22] digitalspaghetti: of course
[21:22] tjholowaychuk: js is annoying like that w/ templates
[21:22] _announcer: Twitter: "@tanepiper The code is all here: http://github.com/davglass/nodejs-yui3 just clone, cd nodejs-yui3, npm install ." -- Dav Glass. http://twitter.com/davglass/status/24604624007
[21:22] digitalspaghetti: it's weird writing that kind of logic in templates
[21:23] tjholowaychuk: yup
[21:24] digitalspaghetti: oh never mind, davglass has released his Express + YUI example, so I'll use than instead :D
[21:24] digitalspaghetti: DOM on the server side FTW
[21:24] tjholowaychuk: sounds slow
[21:24] micheil: tjholowaychuk: hmm.. has jade changed recently?
[21:25] micheil: actually stupid question.
[21:25] tjholowaychuk: micheil: I did a big refactor
[21:25] micheil: ACTION goes to the githubs
[21:25] tjholowaychuk: hehe
[21:25] micheil: okay, cool
[21:25] digitalspaghetti: http://github.com/davglass/nodejs-yui3/blob/master/examples/express/express.js
[21:25] micheil: I'll have to update the browser version
[21:25] digitalspaghetti: from what i've seen tjholowaychuk not that slow
[21:25] digitalspaghetti: and will only improved with a better c implementation of the DOM
[21:25] tjholowaychuk: micheil: logic should be the same but some of the text whitespace weirdness is normalized, the compiler treats all text the same now, so might be a little varied w/ existing templates
[21:26] micheil: tjholowaychuk: no worries
[21:26] evilhackerdude: shouldnt connect.bodyDecoder() be able to handle a standard